package com.l7tech.server.secureconversation;

import com.l7tech.common.io.NonCloseableOutputStream;
import com.l7tech.common.io.XmlUtil;
import com.l7tech.identity.User;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.util.Config;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.HexUtils;
import com.l7tech.util.PoolByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.logging.Logger;

public class OutboundSecureConversationContextManager extends SecureConversationContextManager<OutboundSecureConversationContextManager.OutboundSessionKey> {
   private static final Logger m;
   private final StoredSecureConversationSessionManager n;
   private static final String[] p;

   public OutboundSecureConversationContextManager(Config var1, StoredSecureConversationSessionManager var2) {
      super(m, var1, false);
      this.n = var2;
   }

   public static OutboundSecureConversationContextManager.OutboundSessionKey newSessionKey(User var0, String var1) {
      return new OutboundSecureConversationContextManager.OutboundSessionKey(var0, var1);
   }

   public SecureConversationSession createContextForUser(
      User var1,
      OutboundSecureConversationContextManager.OutboundSessionKey var2,
      String var3,
      String var4,
      long var5,
      long var7,
      byte[] var9,
      byte[] var10,
      byte[] var11,
      int var12
   ) throws SessionCreationException {
      try {
         if (var1 == null) {
            throw new SessionCreationException(p[3]);
         }
      } catch (SessionCreationException var14) {
         throw a(var14);
      }

      try {
         if (var2 == null) {
            throw new SessionCreationException(p[0]);
         }
      } catch (SessionCreationException var16) {
         throw a(var16);
      }

      SecureConversationSession var13 = this.getSession(var2);

      try {
         if (var13 != null) {
            this.cancelSession(var2);
            m.warning(p[4] + var13.getIdentifier() + p[5]);
         }
      } catch (SessionCreationException var15) {
         throw a(var15);
      }

      return super.createContextForUser(var1, var2, var3, var4, var5, var7, var9, var10, var11, var12, null);
   }

   protected void validateSessionKey(OutboundSecureConversationContextManager.OutboundSessionKey param1, User param2) throws SessionCreationException {
      // $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 1
      // 01: invokevirtual com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.isValid ()Z
      // 04: ifne 18
      // 07: new com/l7tech/server/secureconversation/SessionCreationException
      // 0a: dup
      // 0b: getstatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager.p [Ljava/lang/String;
      // 0e: bipush 2
      // 0f: aaload
      // 10: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 13: athrow
      // 14: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 17: athrow
      // 18: aload 2
      // 19: ifnull 5b
      // 1c: aload 2
      // 1d: invokeinterface com/l7tech/identity/User.getProviderId ()Lcom/l7tech/objectmodel/Goid; 1
      // 22: aload 1
      // 23: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.providerId Lcom/l7tech/objectmodel/Goid;
      // 26: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
      // 29: ifeq 4a
      // 2c: goto 33
      // 2f: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 32: athrow
      // 33: aload 1
      // 34: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.userId Ljava/lang/String;
      // 37: aload 2
      // 38: invokeinterface com/l7tech/identity/User.getId ()Ljava/lang/String; 1
      // 3d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 40: ifne 5b
      // 43: goto 4a
      // 46: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 49: athrow
      // 4a: new com/l7tech/server/secureconversation/SessionCreationException
      // 4d: dup
      // 4e: getstatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager.p [Ljava/lang/String;
      // 51: bipush 1
      // 52: aaload
      // 53: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 56: athrow
      // 57: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5a: athrow
      // 5b: return
      // try (0 -> 10): 10 com/l7tech/server/secureconversation/SessionCreationException
      // try (12 -> 20): 21 com/l7tech/server/secureconversation/SessionCreationException
      // try (14 -> 29): 30 com/l7tech/server/secureconversation/SessionCreationException
      // try (23 -> 39): 39 com/l7tech/server/secureconversation/SessionCreationException
   }

   protected void storeSession(OutboundSecureConversationContextManager.OutboundSessionKey var1, SecureConversationSession var2) throws SaveException {
      this.n.save(this.a(var1, var2));
   }

   protected SecureConversationSession loadSession(OutboundSecureConversationContextManager.OutboundSessionKey var1) throws FindException {
      StoredSecureConversationSession var2 = this.n.findOutboundSessionByUserAndService(var1.providerId, var1.userId, var1.serviceUrl);

      try {
         if (var2 == null) {
            return null;
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return this.fromStored(var2, this.n.decryptSessionKey(var2.getEncryptedKey()));
   }

   protected void deleteSession(OutboundSecureConversationContextManager.OutboundSessionKey var1) throws DeleteException {
      this.n.deleteOutboundSessionByUserAndService(var1.providerId, var1.userId, var1.serviceUrl);
   }

   private StoredSecureConversationSession a(OutboundSecureConversationContextManager.OutboundSessionKey var1, SecureConversationSession var2) throws SaveException {
      try {
         StoredSecureConversationSession var10000;
         StoredSecureConversationSession var10001;
         String var10002;
         Goid var10003;
         String var10004;
         String var10005;
         String var10006;
         long var10007;
         long var10008;
         String var10009;
         String var10010;
         label19: {
            try {
               var10000 = new StoredSecureConversationSession;
               var10001 = var10000;
               var10002 = var1.serviceUrl;
               var10003 = var2.getUsedBy().getProviderId();
               var10004 = var2.getUsedBy().getId();
               var10005 = var2.getUsedBy().getLogin();
               var10006 = var2.getIdentifier();
               var10007 = var2.getCreation();
               var10008 = var2.getExpiration();
               var10009 = var2.getSCNamespace();
               if (var2.getElement() != null) {
                  var10010 = XmlUtil.nodeToString(var2.getElement());
                  break label19;
               }
            } catch (IOException var4) {
               throw a(var4);
            }

            var10010 = null;
         }

         var10001./* $VF: Unable to resugar constructor */<init>(
            var10002, var10003, var10004, var10005, var10006, var10007, var10008, var10009, var10010, this.n.encryptSessionKey(var2.getSecretKey())
         );
         return var10000;
      } catch (IOException var5) {
         throw new SaveException(p[6] + ExceptionUtils.getMessage(var5), var5);
      }
   }

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "Q{\tl[\u0017H\u0002u\u001ff\u0012\u0011U\u0002l\u001fnG\u0011TGz<wp\u001b}^\u001d\u0006VqZ|@\u001dGV{ZlW\u000bUKq\u0014?T\u0017T\u0002k\tz@X\u000eKp\f~^\u0011B\u0002k\tz@X@MlZlW\u000bUKq\u00146=wp\u001b}^\u001d\u0006VqZ|@\u001dGV{ZlW\u000bUKq\u0014?T\u0017T\u0002k\tz@X\u000eLq\u000e?SXVGl\tvA\fCLjZvV\u001dHVw\u000ef\u001b\u0019Q{\tl[\u0017H\u0002q\rqW\n\u0006KmZmW\tSKl\u001f{9q{\u0019j@\u001d\u0006aq\u0014iW\nUCj\u0013p\\XuGm\tv]\u0016\u0006Uw\u000ew\u0012\fNG>\tzA\u000bOMpZvV\u001dHVw\u001cvW\n\u0006\u0005";
      int var4 = "Q{\tl[\u0017H\u0002u\u001ff\u0012\u0011U\u0002l\u001fnG\u0011TGz<wp\u001b}^\u001d\u0006VqZ|@\u001dGV{ZlW\u000bUKq\u0014?T\u0017T\u0002k\tz@X\u000eKp\f~^\u0011B\u0002k\tz@X@MlZlW\u000bUKq\u00146=wp\u001b}^\u001d\u0006VqZ|@\u001dGV{ZlW\u000bUKq\u0014?T\u0017T\u0002k\tz@X\u000eLq\u000e?SXVGl\tvA\fCLjZvV\u001dHVw\u000ef\u001b\u0019Q{\tl[\u0017H\u0002q\rqW\n\u0006KmZmW\tSKl\u001f{9q{\u0019j@\u001d\u0006aq\u0014iW\nUCj\u0013p\\XuGm\tv]\u0016\u0006Uw\u000ew\u0012\fNG>\tzA\u000bOMpZvV\u001dHVw\u001cvW\n\u0006\u0005"
         .length();
      char var1 = 23;
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     p = var5;
                     m = Logger.getLogger(OutboundSecureConversationContextManager.class.getName());
                     return;
                  }

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

                  var2 = "2\t%IvospL#\bj9tg^?Aq;t{\u0007)@G,Ji*1aFm[`=xtE$R`obpZ>Aj!1sF?\bv;~gH*M?o";
                  var4 = "2\t%IvospL#\bj9tg^?Aq;t{\u0007)@G,Ji*1aFm[`=xtE$R`obpZ>Aj!1sF?\bv;~gH*M?o".length();
                  var1 = 23;
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String b(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 -> 66;
            case 1 -> 126;
            case 2 -> 26;
            case 3 -> 127;
            case 4 -> 82;
            case 5 -> 24;
            default -> 70;
         });
      }

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

   public static final class OutboundSessionKey implements Serializable {
      private final Goid providerId;
      private final String userId;
      private final String serviceUrl;
      static final long serialVersionUID = 7165464867192739512L;
      private static final String[] a;

      private OutboundSessionKey(User var1, String var2) {
         if (var1 == null) {
            String[] var3 = a;
            throw new IllegalArgumentException(var3[2]);
         }

         try {
            if (var2 == null) {
               throw new IllegalArgumentException(a[0]);
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }

         this.providerId = var1.getProviderId();
         this.userId = var1.getId();
         this.serviceUrl = var2;
      }

      public static OutboundSecureConversationContextManager.OutboundSessionKey fromStringIdentifier(String var0) {
         try {
            ObjectInputStream var1 = new ObjectInputStream(new ByteArrayInputStream(HexUtils.decodeBase64(var0)));
            Object var2 = var1.readObject();
            if (var2 instanceof OutboundSecureConversationContextManager.OutboundSessionKey) {
               return (OutboundSecureConversationContextManager.OutboundSessionKey)var2;
            }

            String[] var6 = a;
            throw new IllegalArgumentException(var6[3]);
         } catch (IOException var4) {
            String[] var3 = a;
            throw new IllegalArgumentException(var3[1], var4);
         } catch (ClassNotFoundException var5) {
            throw new IllegalArgumentException(a[1], var5);
         }
      }

      public String toStringIdentifier() {
         PoolByteArrayOutputStream var2 = new PoolByteArrayOutputStream();

         String var1;
         try {
            ObjectOutputStream var3 = new ObjectOutputStream(new NonCloseableOutputStream(var2));
            var3.writeObject(this);
            var3.close();
            var1 = HexUtils.encodeBase64(var2.toByteArray(), true);
         } catch (IOException var7) {
            throw new IllegalStateException(var7);
         } finally {
            var2.close();
         }

         return var1;
      }

      boolean isValid() {
         try {
            if (this.userId != null) {
               return true;
            }
         } catch (IllegalArgumentException var1) {
            throw a(var1);
         }

         return false;
      }

      @Override
      public boolean equals(Object param1) {
         // $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: aload 1
         // 02: if_acmpne 0b
         // 05: bipush 1
         // 06: ireturn
         // 07: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 0a: athrow
         // 0b: aload 1
         // 0c: ifnull 21
         // 0f: aload 0
         // 10: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
         // 13: aload 1
         // 14: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
         // 17: if_acmpeq 27
         // 1a: goto 21
         // 1d: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 20: athrow
         // 21: bipush 0
         // 22: ireturn
         // 23: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 26: athrow
         // 27: aload 1
         // 28: checkcast com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey
         // 2b: astore 2
         // 2c: aload 0
         // 2d: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.providerId Lcom/l7tech/objectmodel/Goid;
         // 30: ifnull 4f
         // 33: aload 0
         // 34: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.providerId Lcom/l7tech/objectmodel/Goid;
         // 37: aload 2
         // 38: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.providerId Lcom/l7tech/objectmodel/Goid;
         // 3b: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
         // 3e: ifne 5c
         // 41: goto 48
         // 44: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 47: athrow
         // 48: goto 56
         // 4b: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 4e: athrow
         // 4f: aload 2
         // 50: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.providerId Lcom/l7tech/objectmodel/Goid;
         // 53: ifnull 5c
         // 56: bipush 0
         // 57: ireturn
         // 58: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 5b: athrow
         // 5c: aload 0
         // 5d: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.serviceUrl Ljava/lang/String;
         // 60: aload 2
         // 61: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.serviceUrl Ljava/lang/String;
         // 64: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 67: ifne 70
         // 6a: bipush 0
         // 6b: ireturn
         // 6c: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 6f: athrow
         // 70: aload 0
         // 71: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.userId Ljava/lang/String;
         // 74: ifnull 93
         // 77: aload 0
         // 78: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.userId Ljava/lang/String;
         // 7b: aload 2
         // 7c: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.userId Ljava/lang/String;
         // 7f: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 82: ifne a0
         // 85: goto 8c
         // 88: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 8b: athrow
         // 8c: goto 9a
         // 8f: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 92: athrow
         // 93: aload 2
         // 94: getfield com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.userId Ljava/lang/String;
         // 97: ifnull a0
         // 9a: bipush 0
         // 9b: ireturn
         // 9c: invokestatic com/l7tech/server/secureconversation/OutboundSecureConversationContextManager$OutboundSessionKey.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 9f: athrow
         // a0: bipush 1
         // a1: ireturn
         // try (0 -> 5): 5 java/lang/IllegalArgumentException
         // try (7 -> 14): 15 java/lang/IllegalArgumentException
         // try (9 -> 19): 19 java/lang/IllegalArgumentException
         // try (24 -> 33): 34 java/lang/IllegalArgumentException
         // try (27 -> 37): 37 java/lang/IllegalArgumentException
         // try (39 -> 44): 44 java/lang/IllegalArgumentException
         // try (46 -> 54): 54 java/lang/IllegalArgumentException
         // try (56 -> 65): 66 java/lang/IllegalArgumentException
         // try (59 -> 69): 69 java/lang/IllegalArgumentException
         // try (71 -> 76): 76 java/lang/IllegalArgumentException
      }

      @Override
      public int hashCode() {
         int var10000;
         label30: {
            try {
               if (this.providerId != null) {
                  var10000 = this.providerId.hashCode();
                  break label30;
               }
            } catch (IllegalArgumentException var3) {
               throw a(var3);
            }

            var10000 = 0;
         }

         int var1 = var10000;

         int var10001;
         label22: {
            try {
               var10000 = 31 * var1;
               if (this.userId != null) {
                  var10001 = this.userId.hashCode();
                  break label22;
               }
            } catch (IllegalArgumentException var2) {
               throw a(var2);
            }

            var10001 = 0;
         }

         var1 = var10000 + var10001;
         return 31 * var1 + this.serviceUrl.hashCode();
      }

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

      static {
         String[] var5 = new String[4];
         int var3 = 0;
         String var2 = "Dv\\f \u0010]\u0017f\\|i\u001aK\u0017aKa<\u001aJRw\u0012~}Xq%\u001a\\\u0017zJu'\u0007QQzKb";
         int var4 = "Dv\\f \u0010]\u0017f\\|i\u001aK\u0017aKa<\u001aJRw\u0012~}Xq%\u001a\\\u0017zJu'\u0007QQzKb".length();
         char var1 = 23;
         int var7 = -1;

         label24:
         while (true) {
            byte var10000 = 17;
            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) {
                        a = var5;
                        return;
                     }

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

                     var2 = "3\u0011:\u0013\u0018k:f\u0010:\u0010Mk;#\u0006\u0012\u000f\f)\u0000Tk-f\u000b;\u0004Vv  \u000b:\u0013";
                     var4 = "3\u0011:\u0013\u0018k:f\u0010:\u0010Mk;#\u0006\u0012\u000f\f)\u0000Tk-f\u000b;\u0004Vv  \u000b:\u0013".length();
                     var1 = 16;
                     var7 = -1;
               }

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

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

         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 -> 38;
               case 1 -> 2;
               case 2 -> 63;
               case 3 -> 1;
               case 4 -> 88;
               case 5 -> 98;
               default -> 41;
            });
         }

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