final class com.sun.crypto.provider.GaloisCounterMode$DecryptOp implements com.sun.crypto.provider.GaloisCounterMode$GCMOperation
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.crypto.provider.GaloisCounterMode$DecryptOp
  super_class: java.lang.Object
{
  com.sun.crypto.provider.GCTR gctr;
    descriptor: Lcom/sun/crypto/provider/GCTR;
    flags: (0x0000) 

  com.sun.crypto.provider.GHASH ghash;
    descriptor: Lcom/sun/crypto/provider/GHASH;
    flags: (0x0000) 

  void <init>(com.sun.crypto.provider.GCTR, com.sun.crypto.provider.GHASH);
    descriptor: (Lcom/sun/crypto/provider/GCTR;Lcom/sun/crypto/provider/GHASH;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
        start local 1 // com.sun.crypto.provider.GCTR c
        start local 2 // com.sun.crypto.provider.GHASH g
         0: .line 1769
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1770
            aload 0 /* this */
            aload 1 /* c */
            putfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.gctr:Lcom/sun/crypto/provider/GCTR;
         2: .line 1771
            aload 0 /* this */
            aload 2 /* g */
            putfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.ghash:Lcom/sun/crypto/provider/GHASH;
         3: .line 1772
            return
        end local 2 // com.sun.crypto.provider.GHASH g
        end local 1 // com.sun.crypto.provider.GCTR c
        end local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/crypto/provider/GaloisCounterMode$DecryptOp;
            0    4     1     c  Lcom/sun/crypto/provider/GCTR;
            0    4     2     g  Lcom/sun/crypto/provider/GHASH;
    MethodParameters:
      Name  Flags
      c     
      g     

  public int update(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
        start local 4 // byte[] out
        start local 5 // int outOfs
         0: .line 1777
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.ghash:Lcom/sun/crypto/provider/GHASH;
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            invokevirtual com.sun.crypto.provider.GHASH.update:([BII)I
            pop
         1: .line 1778
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.gctr:Lcom/sun/crypto/provider/GCTR;
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            aload 4 /* out */
            iload 5 /* outOfs */
            invokevirtual com.sun.crypto.provider.GCTR.update:([BII[BI)I
            ireturn
        end local 5 // int outOfs
        end local 4 // byte[] out
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/crypto/provider/GaloisCounterMode$DecryptOp;
            0    2     1      in  [B
            0    2     2   inOfs  I
            0    2     3   inLen  I
            0    2     4     out  [B
            0    2     5  outOfs  I
    MethodParameters:
        Name  Flags
      in      
      inOfs   
      inLen   
      out     
      outOfs  

  public int update(byte[], int, int, java.nio.ByteBuffer);
    descriptor: ([BIILjava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
        start local 4 // java.nio.ByteBuffer dst
         0: .line 1783
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.ghash:Lcom/sun/crypto/provider/GHASH;
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            invokevirtual com.sun.crypto.provider.GHASH.update:([BII)I
            pop
         1: .line 1784
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.gctr:Lcom/sun/crypto/provider/GCTR;
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            aload 4 /* dst */
            invokevirtual com.sun.crypto.provider.GCTR.update:([BIILjava/nio/ByteBuffer;)I
            ireturn
        end local 4 // java.nio.ByteBuffer dst
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/crypto/provider/GaloisCounterMode$DecryptOp;
            0    2     1     in  [B
            0    2     2  inOfs  I
            0    2     3  inLen  I
            0    2     4    dst  Ljava/nio/ByteBuffer;
    MethodParameters:
       Name  Flags
      in     
      inOfs  
      inLen  
      dst    

  public int update(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // java.nio.ByteBuffer dst
         0: .line 1789
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.mark:()Ljava/nio/ByteBuffer;
            pop
         1: .line 1790
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.ghash:Lcom/sun/crypto/provider/GHASH;
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual com.sun.crypto.provider.GHASH.update:(Ljava/nio/ByteBuffer;I)I
            pop
         2: .line 1791
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.reset:()Ljava/nio/ByteBuffer;
            pop
         3: .line 1792
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.gctr:Lcom/sun/crypto/provider/GCTR;
            aload 1 /* src */
            aload 2 /* dst */
            invokevirtual com.sun.crypto.provider.GCTR.update:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
            ireturn
        end local 2 // java.nio.ByteBuffer dst
        end local 1 // java.nio.ByteBuffer src
        end local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/crypto/provider/GaloisCounterMode$DecryptOp;
            0    4     1   src  Ljava/nio/ByteBuffer;
            0    4     2   dst  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      src   
      dst   

  public int doFinal(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=7, args_size=6
        start local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
        start local 1 // byte[] in
        start local 2 // int inOfs
        start local 3 // int inLen
        start local 4 // byte[] out
        start local 5 // int outOfs
         0: .line 1798
            iconst_0
            istore 6 /* len */
        start local 6 // int len
         1: .line 1799
            iload 3 /* inLen */
            sipush 8192
            if_icmplt 5
         2: .line 1800
            iload 6 /* len */
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 3 /* inLen */
            aload 1 /* in */
            iload 2 /* inOfs */
            aload 4 /* out */
            iload 5 /* outOfs */
         3: .line 1801
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.gctr:Lcom/sun/crypto/provider/GCTR;
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.ghash:Lcom/sun/crypto/provider/GHASH;
         4: .line 1800
            invokestatic com.sun.crypto.provider.GaloisCounterMode.implGCMCrypt:([BII[BI[BILcom/sun/crypto/provider/GCTR;Lcom/sun/crypto/provider/GHASH;)I
            iadd
            istore 6 /* len */
         5: .line 1803
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.ghash:Lcom/sun/crypto/provider/GHASH;
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 6 /* len */
            iadd
            iload 3 /* inLen */
            iload 6 /* len */
            isub
            invokevirtual com.sun.crypto.provider.GHASH.doFinal:([BII)I
            pop
         6: .line 1804
            iload 6 /* len */
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.gctr:Lcom/sun/crypto/provider/GCTR;
            aload 1 /* in */
            iload 2 /* inOfs */
            iload 6 /* len */
            iadd
            iload 3 /* inLen */
            iload 6 /* len */
            isub
            aload 4 /* out */
         7: .line 1805
            iload 5 /* outOfs */
            iload 6 /* len */
            iadd
         8: .line 1804
            invokevirtual com.sun.crypto.provider.GCTR.doFinal:([BII[BI)I
            iadd
            ireturn
        end local 6 // int len
        end local 5 // int outOfs
        end local 4 // byte[] out
        end local 3 // int inLen
        end local 2 // int inOfs
        end local 1 // byte[] in
        end local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lcom/sun/crypto/provider/GaloisCounterMode$DecryptOp;
            0    9     1      in  [B
            0    9     2   inOfs  I
            0    9     3   inLen  I
            0    9     4     out  [B
            0    9     5  outOfs  I
            1    9     6     len  I
    MethodParameters:
        Name  Flags
      in      
      inOfs   
      inLen   
      out     
      outOfs  

  public int doFinal(java.nio.ByteBuffer, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // java.nio.ByteBuffer dst
         0: .line 1810
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.mark:()Ljava/nio/ByteBuffer;
            pop
         1: .line 1811
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.ghash:Lcom/sun/crypto/provider/GHASH;
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual com.sun.crypto.provider.GHASH.doFinal:(Ljava/nio/ByteBuffer;I)I
            pop
         2: .line 1812
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.reset:()Ljava/nio/ByteBuffer;
            pop
         3: .line 1813
            aload 0 /* this */
            getfield com.sun.crypto.provider.GaloisCounterMode$DecryptOp.gctr:Lcom/sun/crypto/provider/GCTR;
            aload 1 /* src */
            aload 2 /* dst */
            invokevirtual com.sun.crypto.provider.GCTR.doFinal:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
            ireturn
        end local 2 // java.nio.ByteBuffer dst
        end local 1 // java.nio.ByteBuffer src
        end local 0 // com.sun.crypto.provider.GaloisCounterMode$DecryptOp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/crypto/provider/GaloisCounterMode$DecryptOp;
            0    4     1   src  Ljava/nio/ByteBuffer;
            0    4     2   dst  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      src   
      dst   
}
SourceFile: "GaloisCounterMode.java"
NestHost: com.sun.crypto.provider.GaloisCounterMode
InnerClasses:
  final DecryptOp = com.sun.crypto.provider.GaloisCounterMode$DecryptOp of com.sun.crypto.provider.GaloisCounterMode
  public abstract GCMOperation = com.sun.crypto.provider.GaloisCounterMode$GCMOperation of com.sun.crypto.provider.GaloisCounterMode