public class org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest extends org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest
  super_class: org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest
{
  private final byte[] input;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  java.security.AlgorithmParameters algorithmParameters;
    descriptor: Ljava/security/AlgorithmParameters;
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
         0: .line 51
            aload 0 /* this */
            invokespecial org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest.<init>:()V
         1: .line 52
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.readClassfile16:(Ljava/lang/Class;)[B
            putfield org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.input:[B
         2: .line 53
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
    Exceptions:
      throws java.lang.Exception

  private void testEncryptDecrypt(java.lang.String, java.lang.String, java.lang.String, int, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=12, args_size=6
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
        start local 1 // java.lang.String className
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.String generatorAlgorithm
        start local 4 // int keySize
        start local 5 // java.lang.String algorithm
         0: .line 56
            aconst_null
            astore 6 /* klass */
        start local 6 // java.lang.Class klass
         1: .line 58
            aload 1 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* klass */
         2: .line 59
            goto 5
      StackMap locals: org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
         3: pop
         4: .line 62
            return
         5: .line 64
      StackMap locals:
      StackMap stack:
            aload 3 /* generatorAlgorithm */
            invokestatic javax.crypto.KeyGenerator.getInstance:(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
            astore 7 /* gen */
        start local 7 // javax.crypto.KeyGenerator gen
         6: .line 65
            aload 7 /* gen */
            iload 4 /* keySize */
            invokevirtual javax.crypto.KeyGenerator.init:(I)V
         7: .line 66
            aload 7 /* gen */
            invokevirtual javax.crypto.KeyGenerator.generateKey:()Ljavax/crypto/SecretKey;
            astore 8 /* key */
        start local 8 // javax.crypto.SecretKey key
         8: .line 67
            aload 0 /* this */
            aload 8 /* key */
            aload 5 /* algorithm */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runEncryptDecrypt:(Ljavax/crypto/SecretKey;Ljava/lang/String;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            astore 9 /* expected */
        start local 9 // org.graalvm.compiler.core.test.GraalCompilerTest$Result expected
         9: .line 68
            aload 0 /* this */
            aload 6 /* klass */
            aload 2 /* methodName */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.compileAndInstallSubstitution:(Ljava/lang/Class;Ljava/lang/String;)Ljdk/vm/ci/code/InstalledCode;
            astore 10 /* intrinsic */
        start local 10 // jdk.vm.ci.code.InstalledCode intrinsic
        10: .line 69
            aload 10 /* intrinsic */
            ifnull 14
        11: .line 70
            aload 0 /* this */
            aload 8 /* key */
            aload 5 /* algorithm */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runEncryptDecrypt:(Ljavax/crypto/SecretKey;Ljava/lang/String;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            astore 11 /* actual */
        start local 11 // org.graalvm.compiler.core.test.GraalCompilerTest$Result actual
        12: .line 71
            aload 0 /* this */
            aload 9 /* expected */
            aload 11 /* actual */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.assertEquals:(Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;)V
        13: .line 72
            aload 10 /* intrinsic */
            invokevirtual jdk.vm.ci.code.InstalledCode.invalidate:()V
        end local 11 // org.graalvm.compiler.core.test.GraalCompilerTest$Result actual
        14: .line 74
      StackMap locals: org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.Class javax.crypto.KeyGenerator javax.crypto.SecretKey org.graalvm.compiler.core.test.GraalCompilerTest$Result jdk.vm.ci.code.InstalledCode
      StackMap stack:
            return
        end local 10 // jdk.vm.ci.code.InstalledCode intrinsic
        end local 9 // org.graalvm.compiler.core.test.GraalCompilerTest$Result expected
        end local 8 // javax.crypto.SecretKey key
        end local 7 // javax.crypto.KeyGenerator gen
        end local 6 // java.lang.Class klass
        end local 5 // java.lang.String algorithm
        end local 4 // int keySize
        end local 3 // java.lang.String generatorAlgorithm
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.String className
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0                this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
            0   15     1           className  Ljava/lang/String;
            0   15     2          methodName  Ljava/lang/String;
            0   15     3  generatorAlgorithm  Ljava/lang/String;
            0   15     4             keySize  I
            0   15     5           algorithm  Ljava/lang/String;
            1   15     6               klass  Ljava/lang/Class<*>;
            6   15     7                 gen  Ljavax/crypto/KeyGenerator;
            8   15     8                 key  Ljavax/crypto/SecretKey;
            9   15     9            expected  Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
           10   15    10           intrinsic  Ljdk/vm/ci/code/InstalledCode;
           12   14    11              actual  Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.ClassNotFoundException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
                    Name  Flags
      className           
      methodName          
      generatorAlgorithm  
      keySize             
      algorithm           

  public void testAESencryptBlock();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
         0: .line 78
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useAESIntrinsics:Z
            invokestatic org.junit.Assume.assumeTrue:(Z)V
         1: .line 79
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            ldc "com/sun/crypto/provider/AESCrypt"
            ldc "implEncryptBlock"
            ldc "encryptBlock"
            invokestatic org.graalvm.compiler.hotspot.meta.HotSpotGraphBuilderPlugins.lookupIntrinsicName:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* aesEncryptName */
        start local 1 // java.lang.String aesEncryptName
         2: .line 80
            aload 0 /* this */
            ldc "com.sun.crypto.provider.AESCrypt"
            aload 1 /* aesEncryptName */
            ldc "AES"
            sipush 128
            ldc "AES/CBC/NoPadding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         3: .line 81
            aload 0 /* this */
            ldc "com.sun.crypto.provider.AESCrypt"
            aload 1 /* aesEncryptName */
            ldc "AES"
            sipush 128
            ldc "AES/CBC/PKCS5Padding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         4: .line 82
            return
        end local 1 // java.lang.String aesEncryptName
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
            2    5     1  aesEncryptName  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testAESDecryptBlock();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
         0: .line 86
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useAESIntrinsics:Z
            invokestatic org.junit.Assume.assumeTrue:(Z)V
         1: .line 87
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            ldc "com/sun/crypto/provider/AESCrypt"
            ldc "implDecryptBlock"
            ldc "decryptBlock"
            invokestatic org.graalvm.compiler.hotspot.meta.HotSpotGraphBuilderPlugins.lookupIntrinsicName:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* aesDecryptName */
        start local 1 // java.lang.String aesDecryptName
         2: .line 88
            aload 0 /* this */
            ldc "com.sun.crypto.provider.AESCrypt"
            aload 1 /* aesDecryptName */
            ldc "AES"
            sipush 128
            ldc "AES/CBC/NoPadding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         3: .line 89
            aload 0 /* this */
            ldc "com.sun.crypto.provider.AESCrypt"
            aload 1 /* aesDecryptName */
            ldc "AES"
            sipush 128
            ldc "AES/CBC/PKCS5Padding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         4: .line 90
            return
        end local 1 // java.lang.String aesDecryptName
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
            2    5     1  aesDecryptName  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCipherBlockChainingEncrypt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
         0: .line 94
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useAESIntrinsics:Z
            invokestatic org.junit.Assume.assumeTrue:(Z)V
         1: .line 95
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            ldc "com/sun/crypto/provider/CipherBlockChaining"
            ldc "implEncrypt"
            ldc "encrypt"
            invokestatic org.graalvm.compiler.hotspot.meta.HotSpotGraphBuilderPlugins.lookupIntrinsicName:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* cbcEncryptName */
        start local 1 // java.lang.String cbcEncryptName
         2: .line 96
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CipherBlockChaining"
            aload 1 /* cbcEncryptName */
            ldc "AES"
            sipush 128
            ldc "AES/CBC/NoPadding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         3: .line 97
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CipherBlockChaining"
            aload 1 /* cbcEncryptName */
            ldc "AES"
            sipush 128
            ldc "AES/CBC/PKCS5Padding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         4: .line 98
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CipherBlockChaining"
            aload 1 /* cbcEncryptName */
            ldc "DESede"
            sipush 168
            ldc "DESede/CBC/NoPadding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         5: .line 99
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CipherBlockChaining"
            aload 1 /* cbcEncryptName */
            ldc "DESede"
            sipush 168
            ldc "DESede/CBC/PKCS5Padding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         6: .line 100
            return
        end local 1 // java.lang.String cbcEncryptName
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
            2    7     1  cbcEncryptName  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCipherBlockChainingDecrypt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
         0: .line 104
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useAESIntrinsics:Z
            invokestatic org.junit.Assume.assumeTrue:(Z)V
         1: .line 105
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            ldc "com/sun/crypto/provider/CipherBlockChaining"
            ldc "implDecrypt"
            ldc "decrypt"
            invokestatic org.graalvm.compiler.hotspot.meta.HotSpotGraphBuilderPlugins.lookupIntrinsicName:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* cbcDecryptName */
        start local 1 // java.lang.String cbcDecryptName
         2: .line 106
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CipherBlockChaining"
            aload 1 /* cbcDecryptName */
            ldc "AES"
            sipush 128
            ldc "AES/CBC/NoPadding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         3: .line 107
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CipherBlockChaining"
            aload 1 /* cbcDecryptName */
            ldc "AES"
            sipush 128
            ldc "AES/CBC/PKCS5Padding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         4: .line 108
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CipherBlockChaining"
            aload 1 /* cbcDecryptName */
            ldc "DESede"
            sipush 168
            ldc "DESede/CBC/NoPadding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         5: .line 109
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CipherBlockChaining"
            aload 1 /* cbcDecryptName */
            ldc "DESede"
            sipush 168
            ldc "DESede/CBC/PKCS5Padding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         6: .line 110
            return
        end local 1 // java.lang.String cbcDecryptName
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
            2    7     1  cbcDecryptName  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCounterModeEncrypt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
         0: .line 114
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.runtime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useAESCTRIntrinsics:Z
            invokestatic org.junit.Assume.assumeTrue:(Z)V
         1: .line 115
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CounterMode"
            ldc "implCrypt"
            ldc "AES"
            sipush 128
            ldc "AES/CTR/NoPadding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         2: .line 116
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CounterMode"
            ldc "implCrypt"
            ldc "AES"
            sipush 128
            ldc "AES/CTR/PKCS5Padding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         3: .line 117
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CounterMode"
            ldc "implCrypt"
            ldc "DESede"
            sipush 168
            ldc "DESede/CTR/NoPadding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         4: .line 118
            aload 0 /* this */
            ldc "com.sun.crypto.provider.CounterMode"
            ldc "implCrypt"
            ldc "DESede"
            sipush 168
            ldc "DESede/CTR/PKCS5Padding"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.testEncryptDecrypt:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
         5: .line 119
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private byte[] encrypt(byte[], javax.crypto.SecretKey, java.lang.String);
    descriptor: ([BLjavax/crypto/SecretKey;Ljava/lang/String;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
        start local 1 // byte[] indata
        start local 2 // javax.crypto.SecretKey key
        start local 3 // java.lang.String algorithm
         0: .line 124
            aload 1 /* indata */
            astore 4 /* result */
        start local 4 // byte[] result
         1: .line 126
            aload 3 /* algorithm */
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 5 /* c */
        start local 5 // javax.crypto.Cipher c
         2: .line 127
            aload 5 /* c */
            iconst_1
            aload 2 /* key */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
         3: .line 128
            aload 0 /* this */
            aload 5 /* c */
            invokevirtual javax.crypto.Cipher.getParameters:()Ljava/security/AlgorithmParameters;
            putfield org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.algorithmParameters:Ljava/security/AlgorithmParameters;
         4: .line 130
            aload 5 /* c */
            aload 4 /* result */
            invokevirtual javax.crypto.Cipher.update:([B)[B
            astore 6 /* r1 */
        start local 6 // byte[] r1
         5: .line 131
            aload 5 /* c */
            invokevirtual javax.crypto.Cipher.doFinal:()[B
            astore 7 /* r2 */
        start local 7 // byte[] r2
         6: .line 133
            aload 6 /* r1 */
            arraylength
            aload 7 /* r2 */
            arraylength
            iadd
            newarray 8
            astore 4 /* result */
         7: .line 134
            aload 6 /* r1 */
            iconst_0
            aload 4 /* result */
            iconst_0
            aload 6 /* r1 */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 135
            aload 7 /* r2 */
            iconst_0
            aload 4 /* result */
            aload 6 /* r1 */
            arraylength
            aload 7 /* r2 */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 137
            aload 4 /* result */
            areturn
        end local 7 // byte[] r2
        end local 6 // byte[] r1
        end local 5 // javax.crypto.Cipher c
        end local 4 // byte[] result
        end local 3 // java.lang.String algorithm
        end local 2 // javax.crypto.SecretKey key
        end local 1 // byte[] indata
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
            0   10     1     indata  [B
            0   10     2        key  Ljavax/crypto/SecretKey;
            0   10     3  algorithm  Ljava/lang/String;
            1   10     4     result  [B
            2   10     5          c  Ljavax/crypto/Cipher;
            5   10     6         r1  [B
            6   10     7         r2  [B
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      indata     
      key        
      algorithm  

  private byte[] decrypt(byte[], javax.crypto.SecretKey, java.lang.String);
    descriptor: ([BLjavax/crypto/SecretKey;Ljava/lang/String;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
        start local 1 // byte[] indata
        start local 2 // javax.crypto.SecretKey key
        start local 3 // java.lang.String algorithm
         0: .line 141
            aload 1 /* indata */
            astore 4 /* result */
        start local 4 // byte[] result
         1: .line 143
            aload 3 /* algorithm */
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 5 /* c */
        start local 5 // javax.crypto.Cipher c
         2: .line 144
            aload 5 /* c */
            iconst_2
            aload 2 /* key */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.algorithmParameters:Ljava/security/AlgorithmParameters;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
         3: .line 146
            aload 5 /* c */
            aload 4 /* result */
            invokevirtual javax.crypto.Cipher.update:([B)[B
            astore 6 /* r1 */
        start local 6 // byte[] r1
         4: .line 147
            aload 5 /* c */
            invokevirtual javax.crypto.Cipher.doFinal:()[B
            astore 7 /* r2 */
        start local 7 // byte[] r2
         5: .line 149
            aload 6 /* r1 */
            arraylength
            aload 7 /* r2 */
            arraylength
            iadd
            newarray 8
            astore 4 /* result */
         6: .line 150
            aload 6 /* r1 */
            iconst_0
            aload 4 /* result */
            iconst_0
            aload 6 /* r1 */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 151
            aload 7 /* r2 */
            iconst_0
            aload 4 /* result */
            aload 6 /* r1 */
            arraylength
            aload 7 /* r2 */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 152
            aload 4 /* result */
            areturn
        end local 7 // byte[] r2
        end local 6 // byte[] r1
        end local 5 // javax.crypto.Cipher c
        end local 4 // byte[] result
        end local 3 // java.lang.String algorithm
        end local 2 // javax.crypto.SecretKey key
        end local 1 // byte[] indata
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
            0    9     1     indata  [B
            0    9     2        key  Ljavax/crypto/SecretKey;
            0    9     3  algorithm  Ljava/lang/String;
            1    9     4     result  [B
            2    9     5          c  Ljavax/crypto/Cipher;
            4    9     6         r1  [B
            5    9     7         r2  [B
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      indata     
      key        
      algorithm  

  private static byte[] readClassfile16(java.lang.Class<? extends org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest>);
    descriptor: (Ljava/lang/Class;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.Class c
         0: .line 156
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* classFilePath */
        start local 1 // java.lang.String classFilePath
         1: .line 157
            aload 0 /* c */
            aload 1 /* classFilePath */
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* stream */
        start local 2 // java.io.InputStream stream
         2: .line 158
            aload 2 /* stream */
            invokevirtual java.io.InputStream.available:()I
            istore 3 /* bytesToRead */
        start local 3 // int bytesToRead
         3: .line 159
            iload 3 /* bytesToRead */
            iload 3 /* bytesToRead */
            bipush 16
            irem
            isub
            istore 3 /* bytesToRead */
         4: .line 160
            iload 3 /* bytesToRead */
            newarray 8
            astore 4 /* classFile */
        start local 4 // byte[] classFile
         5: .line 161
            new java.io.DataInputStream
            dup
            aload 2 /* stream */
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            aload 4 /* classFile */
            invokevirtual java.io.DataInputStream.readFully:([B)V
         6: .line 162
            aload 4 /* classFile */
            areturn
        end local 4 // byte[] classFile
        end local 3 // int bytesToRead
        end local 2 // java.io.InputStream stream
        end local 1 // java.lang.String classFilePath
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0              c  Ljava/lang/Class<+Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;>;
            1    7     1  classFilePath  Ljava/lang/String;
            2    7     2         stream  Ljava/io/InputStream;
            3    7     3    bytesToRead  I
            5    7     4      classFile  [B
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<+Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;>;)[B
    MethodParameters:
      Name  Flags
      c     

  public org.graalvm.compiler.core.test.GraalCompilerTest$Result runEncryptDecrypt(javax.crypto.SecretKey, java.lang.String);
    descriptor: (Ljavax/crypto/SecretKey;Ljava/lang/String;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
        start local 1 // javax.crypto.SecretKey key
        start local 2 // java.lang.String algorithm
         0: .line 167
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.input:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* indata */
        start local 3 // byte[] indata
         1: .line 168
            aload 0 /* this */
            aload 3 /* indata */
            aload 1 /* key */
            aload 2 /* algorithm */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.encrypt:([BLjavax/crypto/SecretKey;Ljava/lang/String;)[B
            astore 4 /* cipher */
        start local 4 // byte[] cipher
         2: .line 169
            aload 0 /* this */
            aload 4 /* cipher */
            aload 1 /* key */
            aload 2 /* algorithm */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest.decrypt:([BLjavax/crypto/SecretKey;Ljava/lang/String;)[B
            astore 5 /* plain */
        start local 5 // byte[] plain
         3: .line 170
            aload 3 /* indata */
            aload 5 /* plain */
            invokestatic org.junit.Assert.assertArrayEquals:([B[B)V
         4: .line 171
            new org.graalvm.compiler.core.test.GraalCompilerTest$Result
            dup
            aload 5 /* plain */
            aconst_null
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest$Result.<init>:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         5: areturn
        end local 5 // byte[] plain
        end local 4 // byte[] cipher
        end local 3 // byte[] indata
         6: .line 172
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 3 /* e */
        start local 3 // java.security.NoSuchAlgorithmException e
         7: .line 173
            new org.graalvm.compiler.core.test.GraalCompilerTest$Result
            dup
            aconst_null
            aload 3 /* e */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest$Result.<init>:(Ljava/lang/Object;Ljava/lang/Throwable;)V
            areturn
        end local 3 // java.security.NoSuchAlgorithmException e
        end local 2 // java.lang.String algorithm
        end local 1 // javax.crypto.SecretKey key
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotCryptoSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest;
            0    8     1        key  Ljavax/crypto/SecretKey;
            0    8     2  algorithm  Ljava/lang/String;
            1    6     3     indata  [B
            2    6     4     cipher  [B
            3    6     5      plain  [B
            7    8     3          e  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           0     5       6  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      key        
      algorithm  
}
SourceFile: "HotSpotCryptoSubstitutionTest.java"
InnerClasses:
  public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest