package com.l7tech.security.cert;

import com.l7tech.common.io.CertGenParams;
import com.l7tech.common.io.CertificateGeneratorException;
import com.l7tech.common.io.ParamsCertificateGenerator;
import com.l7tech.common.io.X509GeneralName;
import com.l7tech.common.io.X509GeneralName.Type;
import com.l7tech.security.prov.CertificateRequest;
import com.l7tech.security.prov.JceProvider;
import com.l7tech.security.prov.bc.BouncyCastleCertificateRequest;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import java.io.IOException;
import java.security.KeyPair;
import java.security.Provider;
import java.security.SignatureException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.logging.Logger;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1OctetString;
import org.bouncycastle.asn1.ASN1String;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.Extensions;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.GeneralNames;
import org.bouncycastle.operator.ContentSigner;
import org.bouncycastle.operator.OperatorCreationException;
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
import org.bouncycastle.pkcs.PKCS10CertificationRequest;
import org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequestBuilder;
import org.jetbrains.annotations.NotNull;

public class BouncyCastleCertUtils {
   private static final boolean a;
   private static final Logger b;
   private static final String[] c;

   public static X509Certificate generateSelfSignedCertificate(CertGenParams var0, KeyPair var1) throws CertificateGeneratorException {
      return new ParamsCertificateGenerator(var0).generateCertificate(var1.getPublic(), var1.getPrivate(), null);
   }

   public static CertificateRequest makeCertificateRequest(CertGenParams param0, KeyPair param1) throws SignatureException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokevirtual com/l7tech/common/io/CertGenParams.getSubjectDn ()Ljavax/security/auth/x500/X500Principal;
      // 04: ifnonnull 19
      // 07: new java/lang/IllegalArgumentException
      // 0a: dup
      // 0b: getstatic com/l7tech/security/cert/BouncyCastleCertUtils.c [Ljava/lang/String;
      // 0e: bipush 14
      // 10: aaload
      // 11: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 14: athrow
      // 15: invokestatic com/l7tech/security/cert/BouncyCastleCertUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 18: athrow
      // 19: invokestatic com/l7tech/security/prov/JceProvider.getInstance ()Lcom/l7tech/security/prov/JceProvider;
      // 1c: getstatic com/l7tech/security/cert/BouncyCastleCertUtils.c [Ljava/lang/String;
      // 1f: astore 9
      // 21: aload 9
      // 23: bipush 1
      // 24: aaload
      // 25: invokevirtual com/l7tech/security/prov/JceProvider.getProviderFor (Ljava/lang/String;)Ljava/security/Provider;
      // 28: astore 2
      // 29: aload 0
      // 2a: invokevirtual com/l7tech/common/io/CertGenParams.getSubjectDn ()Ljavax/security/auth/x500/X500Principal;
      // 2d: astore 3
      // 2e: aload 0
      // 2f: invokestatic com/l7tech/security/cert/BouncyCastleCertUtils.getSubjectAlternativeNamesExtensions (Lcom/l7tech/common/io/CertGenParams;)Lorg/bouncycastle/asn1/x509/Extensions;
      // 32: astore 4
      // 34: aload 0
      // 35: invokevirtual com/l7tech/common/io/CertGenParams.getSignatureAlgorithm ()Ljava/lang/String;
      // 38: astore 5
      // 3a: aload 5
      // 3c: ifnonnull 51
      // 3f: aload 1
      // 40: invokevirtual java/security/KeyPair.getPublic ()Ljava/security/PublicKey;
      // 43: aload 0
      // 44: invokevirtual com/l7tech/common/io/CertGenParams.getHashAlgorithm ()Ljava/lang/String;
      // 47: aload 2
      // 48: aconst_null
      // 49: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.getSigAlg (Ljava/security/PublicKey;Ljava/lang/String;Ljava/security/Provider;Ljava/lang/String;)Ljava/lang/String;
      // 4c: astore 5
      // 4e: goto 6c
      // 51: getstatic com/l7tech/common/io/KeyGenParams.SIG_ALGORITHM_RSASSAPSS Ljava/lang/String;
      // 54: aload 5
      // 56: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 59: ifeq 6c
      // 5c: aload 1
      // 5d: invokevirtual java/security/KeyPair.getPublic ()Ljava/security/PublicKey;
      // 60: aload 0
      // 61: invokevirtual com/l7tech/common/io/CertGenParams.getHashAlgorithm ()Ljava/lang/String;
      // 64: aload 2
      // 65: aload 5
      // 67: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.getSigAlg (Ljava/security/PublicKey;Ljava/lang/String;Ljava/security/Provider;Ljava/lang/String;)Ljava/lang/String;
      // 6a: astore 5
      // 6c: new org/bouncycastle/asn1/x500/X500Name
      // 6f: dup
      // 70: aload 3
      // 71: getstatic com/l7tech/security/cert/BouncyCastleCertUtils.c [Ljava/lang/String;
      // 74: astore 9
      // 76: aload 9
      // 78: bipush 12
      // 7a: aaload
      // 7b: invokevirtual javax/security/auth/x500/X500Principal.getName (Ljava/lang/String;)Ljava/lang/String;
      // 7e: invokespecial org/bouncycastle/asn1/x500/X500Name.<init> (Ljava/lang/String;)V
      // 81: astore 6
      // 83: new org/bouncycastle/pkcs/jcajce/JcaPKCS10CertificationRequestBuilder
      // 86: dup
      // 87: aload 6
      // 89: aload 1
      // 8a: invokevirtual java/security/KeyPair.getPublic ()Ljava/security/PublicKey;
      // 8d: invokespecial org/bouncycastle/pkcs/jcajce/JcaPKCS10CertificationRequestBuilder.<init> (Lorg/bouncycastle/asn1/x500/X500Name;Ljava/security/PublicKey;)V
      // 90: astore 7
      // 92: getstatic com/l7tech/security/cert/BouncyCastleCertUtils.a Z
      // 95: ifne b6
      // 98: aload 4
      // 9a: ifnull b6
      // 9d: goto a4
      // a0: invokestatic com/l7tech/security/cert/BouncyCastleCertUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // a3: athrow
      // a4: aload 7
      // a6: getstatic org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers.pkcs_9_at_extensionRequest Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // a9: aload 4
      // ab: invokevirtual org/bouncycastle/pkcs/PKCS10CertificationRequestBuilder.addAttribute (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/pkcs/PKCS10CertificationRequestBuilder;
      // ae: pop
      // af: goto b6
      // b2: invokestatic com/l7tech/security/cert/BouncyCastleCertUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // b5: athrow
      // b6: aload 5
      // b8: aload 1
      // b9: aload 2
      // ba: invokestatic com/l7tech/security/cert/BouncyCastleCertUtils.a (Ljava/lang/String;Ljava/security/KeyPair;Ljava/security/Provider;)Lorg/bouncycastle/operator/ContentSigner;
      // bd: astore 8
      // bf: new com/l7tech/security/prov/bc/BouncyCastleCertificateRequest
      // c2: dup
      // c3: aload 7
      // c5: aload 8
      // c7: invokevirtual org/bouncycastle/pkcs/PKCS10CertificationRequestBuilder.build (Lorg/bouncycastle/operator/ContentSigner;)Lorg/bouncycastle/pkcs/PKCS10CertificationRequest;
      // ca: aload 1
      // cb: invokevirtual java/security/KeyPair.getPublic ()Ljava/security/PublicKey;
      // ce: invokespecial com/l7tech/security/prov/bc/BouncyCastleCertificateRequest.<init> (Lorg/bouncycastle/pkcs/PKCS10CertificationRequest;Ljava/security/PublicKey;)V
      // d1: areturn
      // d2: astore 8
      // d4: new java/security/SignatureException
      // d7: dup
      // d8: aload 8
      // da: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // dd: getstatic com/l7tech/security/cert/BouncyCastleCertUtils.c [Ljava/lang/String;
      // e0: bipush 8
      // e2: aaload
      // e3: swap
      // e4: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // e9: invokespecial java/security/SignatureException.<init> (Ljava/lang/String;)V
      // ec: athrow
      // try (72 -> 82): 83 org/bouncycastle/operator/OperatorCreationException
      // try (70 -> 74): 75 org/bouncycastle/operator/OperatorCreationException
      // try (0 -> 10): 10 org/bouncycastle/operator/OperatorCreationException
      // try (85 -> 98): 99 org/bouncycastle/operator/OperatorCreationException
   }

   protected static Extensions getSubjectAlternativeNamesExtensions(CertGenParams param0) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokevirtual com/l7tech/common/io/CertGenParams.getSubjectAlternativeNames ()Ljava/util/List;
      // 04: astore 1
      // 05: aload 1
      // 06: ifnull 19
      // 09: aload 1
      // 0a: invokeinterface java/util/List.isEmpty ()Z 1
      // 0f: ifeq 1f
      // 12: goto 19
      // 15: invokestatic com/l7tech/security/cert/BouncyCastleCertUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 18: athrow
      // 19: aconst_null
      // 1a: areturn
      // 1b: invokestatic com/l7tech/security/cert/BouncyCastleCertUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1e: athrow
      // 1f: new java/util/ArrayList
      // 22: dup
      // 23: invokespecial java/util/ArrayList.<init> ()V
      // 26: astore 2
      // 27: aload 1
      // 28: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 2d: astore 3
      // 2e: aload 3
      // 2f: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 34: ifeq 60
      // 37: aload 3
      // 38: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 3d: checkcast com/l7tech/common/io/X509GeneralName
      // 40: astore 4
      // 42: aload 2
      // 43: new org/bouncycastle/asn1/x509/GeneralName
      // 46: dup
      // 47: aload 4
      // 49: invokevirtual com/l7tech/common/io/X509GeneralName.getType ()Lcom/l7tech/common/io/X509GeneralName$Type;
      // 4c: invokevirtual com/l7tech/common/io/X509GeneralName$Type.getTag ()I
      // 4f: aload 4
      // 51: invokevirtual com/l7tech/common/io/X509GeneralName.getStringVal ()Ljava/lang/String;
      // 54: invokespecial org/bouncycastle/asn1/x509/GeneralName.<init> (ILjava/lang/String;)V
      // 57: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 5c: pop
      // 5d: goto 2e
      // 60: new org/bouncycastle/asn1/DERSequence
      // 63: dup
      // 64: aload 2
      // 65: bipush 0
      // 66: anewarray 89
      // 69: invokeinterface java/util/List.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 6e: checkcast [Lorg/bouncycastle/asn1/ASN1Encodable;
      // 71: invokespecial org/bouncycastle/asn1/DERSequence.<init> ([Lorg/bouncycastle/asn1/ASN1Encodable;)V
      // 74: invokestatic org/bouncycastle/asn1/x509/GeneralNames.getInstance (Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/GeneralNames;
      // 77: astore 3
      // 78: new org/bouncycastle/asn1/x509/ExtensionsGenerator
      // 7b: dup
      // 7c: invokespecial org/bouncycastle/asn1/x509/ExtensionsGenerator.<init> ()V
      // 7f: astore 4
      // 81: aload 4
      // 83: getstatic org/bouncycastle/asn1/x509/Extension.subjectAlternativeName Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 86: bipush 0
      // 87: aload 3
      // 88: invokevirtual org/bouncycastle/asn1/x509/ExtensionsGenerator.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)V
      // 8b: goto b0
      // 8e: astore 5
      // 90: getstatic com/l7tech/security/cert/BouncyCastleCertUtils.b Ljava/util/logging/Logger;
      // 93: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 96: aload 5
      // 98: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 9b: getstatic com/l7tech/security/cert/BouncyCastleCertUtils.c [Ljava/lang/String;
      // 9e: bipush 0
      // 9f: aaload
      // a0: swap
      // a1: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // a6: aload 5
      // a8: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // ab: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // ae: aconst_null
      // af: areturn
      // b0: aload 4
      // b2: invokevirtual org/bouncycastle/asn1/x509/ExtensionsGenerator.generate ()Lorg/bouncycastle/asn1/x509/Extensions;
      // b5: areturn
      // try (5 -> 13): 13 java/io/IOException
      // try (3 -> 8): 9 java/io/IOException
      // try (55 -> 60): 61 java/io/IOException
   }

   public static CertificateRequest makeCertificateRequest(String var0, KeyPair var1, Provider var2) throws SignatureException {
      String[] var6 = c;
      X500Name var3 = new X500Name(var6[13] + var0);

      try {
         JcaPKCS10CertificationRequestBuilder var4 = new JcaPKCS10CertificationRequestBuilder(var3, var1.getPublic());
         ContentSigner var5 = a(JceProvider.DEFAULT_CSR_SIG_ALG, var1, var2);
         return new BouncyCastleCertificateRequest(var4.build(var5), var1.getPublic());
      } catch (OperatorCreationException var7) {
         throw new SignatureException(c[3] + ExceptionUtils.getMessage(var7));
      }
   }

   private static ContentSigner a(String var0, KeyPair var1, Provider var2) throws OperatorCreationException {
      try {
         if (var2 == null) {
            return new JcaContentSignerBuilder(var0).build(var1.getPrivate());
         }
      } catch (OperatorCreationException var3) {
         throw a(var3);
      }

      return new JcaContentSignerBuilder(var0).setProvider(var2).build(var1.getPrivate());
   }

   public static List<X509GeneralName> extractSubjectAlternativeNamesFromCertRequest(PKCS10CertificationRequest var0) throws IOException {
      Extensions var1 = var0.getRequestedExtensions();
      GeneralNames var2 = GeneralNames.fromExtensions(var1, Extension.subjectAlternativeName);

      try {
         if (var2 == null) {
            return Collections.emptyList();
         }
      } catch (IOException var4) {
         throw a(var4);
      }

      ArrayList var3 = new ArrayList();
      a(var2, var3);
      return Collections.unmodifiableList(var3);
   }

   private static void a(@NotNull GeneralNames var0, List<X509GeneralName> var1) throws IOException {
      try {
         if (var0 == null) {
            a(0);
         }
      } catch (IOException var10) {
         throw a(var10);
      }

      GeneralName[] var2 = var0.getNames();

      for (GeneralName var6 : var2) {
         Type var7 = X509GeneralName.getTypeFromTag(var6.getTagNo());

         label41: {
            label40: {
               label39: {
                  try {
                     switch (var6.getTagNo()) {
                        case 0:
                        case 3:
                        case 5:
                           var1.add(new X509GeneralName(var7, var6.getEncoded(c[6])));
                           continue;
                        case 1:
                        case 2:
                        case 6:
                           break label40;
                        case 4:
                           break label41;
                        case 7:
                           break;
                        case 8:
                           break label39;
                        default:
                           throw new IOException(c[4] + var6.getTagNo());
                     }
                  } catch (IOException var9) {
                     throw a(var9);
                  }

                  ASN1OctetString var10004 = DEROctetString.getInstance(var6.getName());
                  String[] var8 = c;
                  var1.add(new X509GeneralName(var7, var10004.getEncoded(var8[5])));
                  continue;
               }

               var1.add(new X509GeneralName(var7, ASN1ObjectIdentifier.getInstance(var6.getName()).getId()));
               continue;
            }

            var1.add(new X509GeneralName(var7, ((ASN1String)var6.getName()).getString()));
            continue;
         }

         var1.add(new X509GeneralName(var7, X500Name.getInstance(var6.getName()).toString()));
      }
   }

   static {
      String[] var5 = new String[15];
      int var3 = 0;
      String var2 = "]\u0011{oEs)j\fjeD 0v\u0004)oU9<{\u00173 \u001fK\nnnV',j\u0006'BX&7{\u001aJaD'5} zrd:>v\u0006{&{\fd.[d-}\u0000a.D6:m\u0011`tN}:}\u0011}.T +6\fdiC\u0012-l\u0011z#L\u000bl T<7l\u0006gt\u0017 0\u007f\rlr\u001758q\u000fld\u0017'68\u0001|i[7w\u0010Z\u0002m C2>8\r|mU6+\"C\u0003\\&[\u0003\\&[\u0018y\u0007mX\u0002c`_\u0006geE25V\u0002dec<\u0015q\u0010}#L\u000bl T<7l\u0006gt\u0017 0\u007f\rlr\u001758q\u000fld\u0017'68\u0001|i[7w\b\u007f\u0006gNV><k.{\fd/[d-}\u0000a/D6:m\u0011`tN|:}\u0011}/u<,v\u0000pCV -t\u0006JeE'\fl\nes>Y\u0011nuZ67lCooEs\u0019V\f}NB?58\u0013hrV><l\u0006{ \u0010v*?Cff\u0017v*6Fz Z&*lCgoCs;}Cgu[?\u0007J%J2\u0005fj";
      int var4 = "]\u0011{oEs)j\fjeD 0v\u0004)oU9<{\u00173 \u001fK\nnnV',j\u0006'BX&7{\u001aJaD'5} zrd:>v\u0006{&{\fd.[d-}\u0000a.D6:m\u0011`tN}:}\u0011}.T +6\fdiC\u0012-l\u0011z#L\u000bl T<7l\u0006gt\u0017 0\u007f\rlr\u001758q\u000fld\u0017'68\u0001|i[7w\u0010Z\u0002m C2>8\r|mU6+\"C\u0003\\&[\u0003\\&[\u0018y\u0007mX\u0002c`_\u0006geE25V\u0002dec<\u0015q\u0010}#L\u000bl T<7l\u0006gt\u0017 0\u007f\rlr\u001758q\u000fld\u0017'68\u0001|i[7w\b\u007f\u0006gNV><k.{\fd/[d-}\u0000a/D6:m\u0011`tN|:}\u0011}/u<,v\u0000pCV -t\u0006JeE'\fl\nes>Y\u0011nuZ67lCooEs\u0019V\f}NB?58\u0013hrV><l\u0006{ \u0010v*?Cff\u0017v*6Fz Z&*lCgoCs;}Cgu[?\u0007J%J2\u0005fj"
         .length();
      char var1 = 25;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 86;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     c = var5;
                     a = ConfigFactory.getBooleanProperty(c[2], false);
                     b = Logger.getLogger(BouncyCastleCertUtils.class.getName());
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "Q'\u001e3Q,Q^Z\u001c\u001db(QKp\nS_<P^=\u0010\u001dQ%VNxY\u0012\u0012:VHw\u001c\u0010Figd=\u001f\u001c@iWBxY0a\u001b";
                  var4 = "Q'\u001e3Q,Q^Z\u001c\u001db(QKp\nS_<P^=\u0010\u001dQ%VNxY\u0012\u0012:VHw\u001c\u0010Figd=\u001f\u001c@iWBxY0a\u001b".length();
                  var1 = 3;
                  var7 = -1;
            }

            var10000 = 124;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static Exception a(Exception var0) {
      return var0;
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 15);
      }

      return var10000;
   }

   private static String a(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 78;
            case 1 -> 53;
            case 2 -> 95;
            case 3 -> 86;
            case 4 -> 97;
            case 5 -> 5;
            default -> 15;
         });
      }

      return new String(var10001).intern();
   }
}
