public class org.bouncycastle.crypto.digests.GOST3411Digest implements org.bouncycastle.crypto.ExtendedDigest
  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 268
            bipush 32
            newarray 8
            dup
            iconst_1
         1: .line 269
            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 270
            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 271
            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 272
            iconst_m1
            bastore
            dup
            bipush 28
            iconst_m1
            bastore
            dup
            bipush 29
            iconst_m1
            bastore
            dup
            bipush 31
            iconst_m1
            bastore
         5: .line 268
            putstatic org.bouncycastle.crypto.digests.GOST3411Digest.C2:[B
         6: .line 272
            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 33
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 19
            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 20
            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 21
            aload 0 /* this */
            iconst_4
            bipush 32
            multianewarray [[B 2
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
         4: .line 23
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
         5: .line 27
            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 129
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
         7: .line 145
            aload 0 /* this */
            bipush 8
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.a:[B
         8: .line 168
            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 179
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
        10: .line 180
            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 35
            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 36
            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 38
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:()V
        14: .line 39
            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 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 19
            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 20
            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 21
            aload 0 /* this */
            iconst_4
            bipush 32
            multianewarray [[B 2
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
         4: .line 23
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
         5: .line 27
            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 129
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
         7: .line 145
            aload 0 /* this */
            bipush 8
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.a:[B
         8: .line 168
            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 179
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
        10: .line 180
            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 47
            aload 0 /* this */
            aload 1 /* sBoxParam */
            invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
        12: .line 48
            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 50
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:()V
        14: .line 51
            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=6, 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 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 19
            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 20
            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 21
            aload 0 /* this */
            iconst_4
            bipush 32
            multianewarray [[B 2
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
         4: .line 23
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
         5: .line 27
            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 129
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
         7: .line 145
            aload 0 /* this */
            bipush 8
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.a:[B
         8: .line 168
            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 179
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
        10: .line 180
            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 59
            aload 0 /* this */
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
        12: .line 60
            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 62
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:()V
        14: .line 64
            aload 1 /* 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 1 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        15: .line 65
            aload 1 /* 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 1 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        16: .line 66
            aload 1 /* 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 1 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 67
            aload 1 /* 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 1 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        18: .line 68
            aload 1 /* 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 1 /* 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
        19: .line 69
            aload 1 /* 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 1 /* 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
        20: .line 70
            aload 1 /* 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 1 /* 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
        21: .line 71
            aload 1 /* 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 1 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        22: .line 73
            aload 0 /* this */
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
        23: .line 74
            aload 0 /* this */
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
        24: .line 75
            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   25     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0   25     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 79
            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 84
            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 89
            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 90
            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 92
            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 93
            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 94
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
         5: .line 96
      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 97
            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 101
            goto 4
         1: .line 103
      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 104
            iinc 2 /* inOff */ 1
         3: .line 105
            iinc 3 /* len */ -1
         4: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            ifeq 12
            iload 3 /* len */
            ifgt 1
         5: .line 108
            goto 12
         6: .line 110
      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 112
            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 113
            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 114
            iload 2 /* inOff */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            iadd
            istore 2 /* inOff */
        10: .line 115
            iload 3 /* len */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            isub
            istore 3 /* len */
        11: .line 116
            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 108
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            if_icmpgt 6
        13: .line 120
            goto 17
        14: .line 122
      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 123
            iinc 2 /* inOff */ 1
        16: .line 124
            iinc 3 /* len */ -1
        17: .line 120
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifgt 14
        18: .line 126
            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 133
            iconst_0
            istore 2 /* k */
        start local 2 // int k
         1: goto 7
         2: .line 135
      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 136
            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 137
            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 138
            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 133
            iinc 2 /* k */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* k */
            bipush 8
            if_icmplt 2
        end local 2 // int k
         8: .line 141
            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 148
            iconst_0
            istore 2 /* j */
        start local 2 // int j
         1: goto 4
         2: .line 150
      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 148
            iinc 2 /* j */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* j */
            bipush 8
            if_icmplt 2
        end local 2 // int j
         5: .line 153
            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 154
            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 156
            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 162
            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 164
            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 165
            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 172
            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 173
            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 174
            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 175
            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 176
            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 184
            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 190
            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 191
            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 192
            iconst_0
            istore 3 /* j */
        start local 3 // int j
         4: goto 7
         5: .line 194
      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 192
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* j */
            bipush 32
            if_icmplt 5
        end local 3 // int j
         8: .line 197
            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 200
            iconst_1
            istore 3 /* i */
        start local 3 // int i
        10: goto 25
        11: .line 202
      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 203
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        13: goto 16
        14: .line 205
      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 203
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* j */
            bipush 32
            if_icmplt 14
        end local 5 // int j
        17: .line 207
            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 208
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        19: goto 22
        20: .line 210
      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 208
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        22: iload 5 /* j */
            bipush 32
            if_icmplt 20
        end local 5 // int j
        23: .line 213
            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 200
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 3 /* i */
            iconst_4
            if_icmplt 11
        end local 3 // int i
        26: .line 217
            iconst_0
            istore 3 /* n */
        start local 3 // int n
        27: goto 30
        28: .line 219
      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 217
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        30: iload 3 /* n */
            bipush 12
            if_icmplt 28
        end local 3 // int n
        31: .line 221
            iconst_0
            istore 3 /* n */
        start local 3 // int n
        32: goto 35
        33: .line 223
      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 221
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        35: iload 3 /* n */
            bipush 32
            if_icmplt 33
        end local 3 // int n
        36: .line 226
            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 228
            iconst_0
            istore 3 /* n */
        start local 3 // int n
        38: goto 41
        39: .line 230
      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 228
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        41: iload 3 /* n */
            bipush 32
            if_icmplt 39
        end local 3 // int n
        42: .line 232
            iconst_0
            istore 3 /* n */
        start local 3 // int n
        43: goto 46
        44: .line 234
      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 232
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        46: iload 3 /* n */
            bipush 61
            if_icmplt 44
        end local 3 // int n
        47: .line 236
            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 237
            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 241
            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.crypto.util.Pack.longToLittleEndian:(J[BI)V
         1: .line 243
            goto 3
         2: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.update:(B)V
         3: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            ifne 2
         4: .line 248
            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 249
            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 250
            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 256
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.finish:()V
         1: .line 258
            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 260
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:()V
         3: .line 262
            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 276
            aload 0 /* this */
            lconst_0
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
         1: .line 277
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
         2: .line 279
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         3: goto 6
         4: .line 281
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iload 1 /* i */
            iconst_0
            bastore
         5: .line 279
            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 283
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         8: goto 11
         9: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            iload 1 /* i */
            iconst_0
            bastore
        10: .line 283
            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 287
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        13: goto 16
        14: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            iload 1 /* i */
            iconst_0
            bastore
        15: .line 287
            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 291
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        18: goto 21
        19: .line 293
      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 291
            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 295
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        23: goto 26
        24: .line 297
      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 295
            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 299
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        28: goto 31
        29: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            iload 1 /* i */
            iconst_0
            bastore
        30: .line 299
            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 303
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        33: goto 36
        34: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            iload 1 /* i */
            iconst_0
            bastore
        35: .line 303
            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 308
            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 309
            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 314
            iconst_0
            istore 2 /* carry */
        start local 2 // int carry
         1: .line 316
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 318
      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 320
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            iload 3 /* i */
            iload 4 /* sum */
            i2b
            bastore
         5: .line 322
            iload 4 /* sum */
            bipush 8
            iushr
            istore 2 /* carry */
        end local 4 // int sum
         6: .line 316
            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 324
            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 328
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 4
         2: .line 330
      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 328
            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 332
            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 336
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 5
         2: .line 338
      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 339
            aload 2 /* S */
            iload 3 /* i */
            iconst_2
            imul
            aload 1 /* wS */
            iload 3 /* i */
            saload
            i2b
            bastore
         4: .line 336
            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 341
            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 345
            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;
}
SourceFile: "GOST3411Digest.java"