public class org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions this
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/replacements/CounterModeSubstitutions;

  static int implCrypt(java.lang.Object, byte[], int, int, byte[], int);
    descriptor: (Ljava/lang/Object;[BII[BI)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=20, args_size=6
        start local 0 // java.lang.Object receiver
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int len
        start local 4 // byte[] out
        start local 5 // int outOff
         0: .line 55
            aload 0 /* receiver */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.methodHolderClass:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokestatic org.graalvm.compiler.nodes.PiNode.piCastNonNull:(Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Object;
            astore 6 /* realReceiver */
        start local 6 // java.lang.Object realReceiver
         1: .line 56
            aload 6 /* realReceiver */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.CipherBlockChainingSubstitutions.embeddedCipherOffset:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)J
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljava/lang/Object;
            astore 7 /* embeddedCipher */
        start local 7 // java.lang.Object embeddedCipher
         2: .line 57
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.CipherBlockChainingSubstitutions.aesCryptType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 7 /* embeddedCipher */
            invokestatic org.graalvm.compiler.nodes.java.InstanceOfNode.doInstanceof:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Object;)Z
            ifeq 16
         3: .line 58
            aload 7 /* embeddedCipher */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.CipherBlockChainingSubstitutions.aesCryptType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokestatic org.graalvm.compiler.nodes.PiNode.piCastNonNull:(Ljava/lang/Object;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Object;
            astore 8 /* aesCipher */
        start local 8 // java.lang.Object aesCipher
         4: .line 60
            aload 1 /* in */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            iload 2 /* inOff */
            iadd
            i2l
            invokestatic org.graalvm.compiler.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 9 /* srcAddr */
        start local 9 // org.graalvm.compiler.word.Word srcAddr
         5: .line 61
            aload 4 /* out */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            iload 5 /* outOff */
            iadd
            i2l
            invokestatic org.graalvm.compiler.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 10 /* dstAddr */
        start local 10 // org.graalvm.compiler.word.Word dstAddr
         6: .line 62
            aload 6 /* realReceiver */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions.usedOffset:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)I
            i2l
            invokestatic org.graalvm.compiler.nodes.ComputeObjectAddressNode.get:(Ljava/lang/Object;J)J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 11 /* usedPtr */
        start local 11 // org.graalvm.compiler.word.Word usedPtr
         7: .line 64
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions.counterOffset:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)I
            istore 12 /* cntOffset */
        start local 12 // int cntOffset
         8: .line 65
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions.encCounterOffset:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)I
            istore 13 /* encCntOffset */
        start local 13 // int encCntOffset
         9: .line 66
            aload 8 /* aesCipher */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_INTRINSIC_CONTEXT:Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
            invokestatic org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions.kOffset:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)J
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljava/lang/Object;
            astore 14 /* kObject */
        start local 14 // java.lang.Object kObject
        10: .line 67
            aload 6 /* realReceiver */
            iload 12 /* cntOffset */
            i2l
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljava/lang/Object;
            astore 15 /* cntObj */
        start local 15 // java.lang.Object cntObj
        11: .line 68
            aload 6 /* realReceiver */
            iload 13 /* encCntOffset */
            i2l
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.RawLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;)Ljava/lang/Object;
            astore 16 /* encCntObj */
        start local 16 // java.lang.Object encCntObj
        12: .line 70
            aload 14 /* kObject */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 17 /* kPtr */
        start local 17 // org.graalvm.compiler.word.Word kPtr
        13: .line 71
            aload 15 /* cntObj */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 18 /* cntPtr */
        start local 18 // org.graalvm.compiler.word.Word cntPtr
        14: .line 72
            aload 16 /* encCntObj */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_METAACCESS:Ljdk/vm/ci/meta/MetaAccessProvider;
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.getArrayBaseOffset:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 19 /* encCntPtr */
        start local 19 // org.graalvm.compiler.word.Word encCntPtr
        15: .line 74
            aload 9 /* srcAddr */
            aload 10 /* dstAddr */
            aload 17 /* kPtr */
            aload 18 /* cntPtr */
            iload 3 /* len */
            aload 19 /* encCntPtr */
            aload 11 /* usedPtr */
            invokestatic org.graalvm.compiler.hotspot.HotSpotBackend.counterModeAESCrypt:(Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;ILorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;)I
            ireturn
        end local 19 // org.graalvm.compiler.word.Word encCntPtr
        end local 18 // org.graalvm.compiler.word.Word cntPtr
        end local 17 // org.graalvm.compiler.word.Word kPtr
        end local 16 // java.lang.Object encCntObj
        end local 15 // java.lang.Object cntObj
        end local 14 // java.lang.Object kObject
        end local 13 // int encCntOffset
        end local 12 // int cntOffset
        end local 11 // org.graalvm.compiler.word.Word usedPtr
        end local 10 // org.graalvm.compiler.word.Word dstAddr
        end local 9 // org.graalvm.compiler.word.Word srcAddr
        end local 8 // java.lang.Object aesCipher
        16: .line 76
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 6 /* realReceiver */
            aload 1 /* in */
            iload 2 /* inOff */
            iload 3 /* len */
            aload 4 /* out */
            iload 5 /* outOff */
            invokestatic org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions.implCrypt:(Ljava/lang/Object;[BII[BI)I
            ireturn
        end local 7 // java.lang.Object embeddedCipher
        end local 6 // java.lang.Object realReceiver
        end local 5 // int outOff
        end local 4 // byte[] out
        end local 3 // int len
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // java.lang.Object receiver
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0        receiver  Ljava/lang/Object;
            0   17     1              in  [B
            0   17     2           inOff  I
            0   17     3             len  I
            0   17     4             out  [B
            0   17     5          outOff  I
            1   17     6    realReceiver  Ljava/lang/Object;
            2   17     7  embeddedCipher  Ljava/lang/Object;
            4   16     8       aesCipher  Ljava/lang/Object;
            5   16     9         srcAddr  Lorg/graalvm/compiler/word/Word;
            6   16    10         dstAddr  Lorg/graalvm/compiler/word/Word;
            7   16    11         usedPtr  Lorg/graalvm/compiler/word/Word;
            8   16    12       cntOffset  I
            9   16    13    encCntOffset  I
           10   16    14         kObject  Ljava/lang/Object;
           11   16    15          cntObj  Ljava/lang/Object;
           12   16    16       encCntObj  Ljava/lang/Object;
           13   16    17            kPtr  Lorg/graalvm/compiler/word/Word;
           14   16    18          cntPtr  Lorg/graalvm/compiler/word/Word;
           15   16    19       encCntPtr  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.MethodSubstitution(isStatic = false)
    MethodParameters:
          Name  Flags
      receiver  
      in        
      inOff     
      len       
      out       
      outOff    

  static jdk.vm.ci.meta.ResolvedJavaType counterModeType(org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext context
         0: .line 81
            aload 0 /* context */
            ldc "Lcom/sun/crypto/provider/CounterMode;"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            areturn
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
    MethodParameters:
         Name  Flags
      context  

  static int counterOffset(org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext context
         0: .line 86
            aload 0 /* context */
            invokestatic org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions.counterModeType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)Ljdk/vm/ci/meta/ResolvedJavaType;
            ldc "counter"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getFieldOffset:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;)I
            ireturn
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
         Name  Flags
      context  

  static int encCounterOffset(org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext context
         0: .line 91
            aload 0 /* context */
            invokestatic org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions.counterModeType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)Ljdk/vm/ci/meta/ResolvedJavaType;
            ldc "encryptedCounter"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getFieldOffset:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;)I
            ireturn
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
         Name  Flags
      context  

  static int usedOffset(org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext context
         0: .line 96
            aload 0 /* context */
            invokestatic org.graalvm.compiler.hotspot.replacements.CounterModeSubstitutions.counterModeType:(Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)Ljdk/vm/ci/meta/ResolvedJavaType;
            ldc "used"
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.getFieldOffset:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;)I
            ireturn
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.api.replacements.Fold$InjectedParameter()
    MethodParameters:
         Name  Flags
      context  
}
SourceFile: "CounterModeSubstitutions.java"
InnerClasses:
  public abstract InjectedParameter = org.graalvm.compiler.api.replacements.Fold$InjectedParameter of org.graalvm.compiler.api.replacements.Fold
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.ClassSubstitution(className = {"com.sun.crypto.provider.CounterMode"}, optional = true)