package com.l7tech.server.identity.ldap;

import com.l7tech.identity.BadCredentialsException;
import com.l7tech.identity.UserBean;
import com.l7tech.identity.ldap.LdapIdentityProviderConfig;
import com.l7tech.identity.ldap.LdapUser;
import com.l7tech.identity.ldap.UserMappingConfig;
import com.l7tech.objectmodel.EntityHeaderSet;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.IdentityHeader;
import com.l7tech.util.ExceptionUtils;
import java.util.Collection;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.AuthenticationException;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;

@LdapClassLoaderRequired
public class LdapUserManagerImpl implements LdapUserManager {
   private LdapIdentityProvider a;
   private LdapIdentityProviderConfig b;
   private LdapRuntimeConfig c;
   private ad d;
   private final Logger e = Logger.getLogger(this.getClass().getName());
   private static final String[] f;

   @Override
   public synchronized void configure(LdapIdentityProvider var1) {
      this.a = var1;
      this.b = this.a.getConfig();
      this.d = new ag(this, this.b.getSearchBase(), this.a());
   }

   public void setLdapRuntimeConfig(LdapRuntimeConfig var1) {
      this.c = var1;
   }

   public LdapUser findByPrimaryKey(String var1) throws FindException {
      LdapUser[] var2 = new LdapUser[1];

      try {
         this.d.a(var1, new ab(this, var2));
      } catch (NameNotFoundException var8) {
         if (this.e.isLoggable(Level.FINEST)) {
            Logger var12 = this.e;
            String var13 = this.c().getName();
            String var4 = ExceptionUtils.getMessage(var8);
            String var5 = var13;
            String var6 = var1;
            String[] var11 = f;
            var12.finest(var11[13] + var6 + var11[1] + var5 + var11[9] + var4 + ")");
         }
      } catch (AuthenticationException var9) {
         Logger var10000 = this.e;
         Level var10001 = Level.WARNING;
         String var10002 = ExceptionUtils.getMessage(var9);
         String[] var7 = f;
         var10000.log(var10001, var7[6] + var10002, ExceptionUtils.getDebugException(var9));
      } catch (NamingException var10) {
         this.e.log(Level.WARNING, f[4] + ExceptionUtils.getMessage(var10), ExceptionUtils.getDebugException(var10));
      }

      return var2[0];
   }

   public LdapUser findByLogin(String var1) throws FindException {
      LdapUser[] var2 = new LdapUser[1];

      try {
         LdapIdentityProviderConfig var3 = this.c();
         h var4 = new h();
         var4.or();
         UserMappingConfig[] var5 = var3.getUserMappings();

         for (UserMappingConfig var9 : var5) {
            var4.attrEquals(var9.getLoginAttrName(), var1);
         }

         try {
            var4.end();
            this.d.a(var4.buildFilter(), 1L, null, new ac(this, var2));
            if (var2[0] == null) {
               this.e.fine(var3.getName() + f[5] + var1);
            }
         } catch (AuthenticationException var11) {
            throw a(var11);
         }
      } catch (AuthenticationException var12) {
         Logger var10000 = this.e;
         Level var10001 = Level.WARNING;
         String var10002 = var12.getMessage();
         String[] var10 = f;
         var10000.log(var10001, var10[14] + var10002, ExceptionUtils.getDebugException(var12));
      } catch (NamingException var13) {
         this.e.log(Level.WARNING, f[2] + var13.getMessage(), ExceptionUtils.getDebugException(var13));
      }

      return var2[0];
   }

   private LdapUser a(String param1, Attributes param2) throws NamingException {
      // $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:
      // 000: aload 0
      // 001: getfield com/l7tech/server/identity/ldap/LdapUserManagerImpl.a Lcom/l7tech/server/identity/ldap/LdapIdentityProvider;
      // 004: aload 1
      // 005: aload 2
      // 006: invokeinterface com/l7tech/server/identity/ldap/LdapIdentityProvider.isValidEntryBasedOnUserAccountControlAttribute (Ljava/lang/String;Ljavax/naming/directory/Attributes;)Z 3
      // 00b: ifne 02e
      // 00e: aload 0
      // 00f: getfield com/l7tech/server/identity/ldap/LdapUserManagerImpl.e Ljava/util/logging/Logger;
      // 012: aload 1
      // 013: getstatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.f [Ljava/lang/String;
      // 016: bipush 7
      // 018: aaload
      // 019: swap
      // 01a: getstatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.f [Ljava/lang/String;
      // 01d: bipush 10
      // 01f: aaload
      // 020: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 025: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 028: aconst_null
      // 029: areturn
      // 02a: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 02d: athrow
      // 02e: aload 0
      // 02f: getfield com/l7tech/server/identity/ldap/LdapUserManagerImpl.a Lcom/l7tech/server/identity/ldap/LdapIdentityProvider;
      // 032: aload 1
      // 033: aload 2
      // 034: invokeinterface com/l7tech/server/identity/ldap/LdapIdentityProvider.checkExpiredMSADAccount (Ljava/lang/String;Ljavax/naming/directory/Attributes;)Z 3
      // 039: ifeq 05c
      // 03c: aload 0
      // 03d: getfield com/l7tech/server/identity/ldap/LdapUserManagerImpl.e Ljava/util/logging/Logger;
      // 040: aload 1
      // 041: getstatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.f [Ljava/lang/String;
      // 044: bipush 11
      // 046: aaload
      // 047: swap
      // 048: getstatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.f [Ljava/lang/String;
      // 04b: bipush 8
      // 04d: aaload
      // 04e: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 053: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 056: aconst_null
      // 057: areturn
      // 058: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05b: athrow
      // 05c: aload 0
      // 05d: invokevirtual com/l7tech/server/identity/ldap/LdapUserManagerImpl.c ()Lcom/l7tech/identity/ldap/LdapIdentityProviderConfig;
      // 060: astore 3
      // 061: aload 3
      // 062: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getUserMappings ()[Lcom/l7tech/identity/ldap/UserMappingConfig;
      // 065: astore 4
      // 067: aload 2
      // 068: getstatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.f [Ljava/lang/String;
      // 06b: astore 14
      // 06d: aload 14
      // 06f: bipush 12
      // 071: aaload
      // 072: invokeinterface javax/naming/directory/Attributes.get (Ljava/lang/String;)Ljavax/naming/directory/Attribute; 2
      // 077: astore 5
      // 079: aload 4
      // 07b: astore 6
      // 07d: aload 6
      // 07f: arraylength
      // 080: istore 7
      // 082: bipush 0
      // 083: istore 8
      // 085: iload 8
      // 087: iload 7
      // 089: if_icmpge 1f7
      // 08c: aload 6
      // 08e: iload 8
      // 090: aaload
      // 091: astore 9
      // 093: aload 9
      // 095: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getObjClass ()Ljava/lang/String;
      // 098: astore 10
      // 09a: aload 5
      // 09c: aload 10
      // 09e: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attribute;Ljava/lang/String;)Z
      // 0a1: ifeq 1f1
      // 0a4: new com/l7tech/identity/ldap/LdapUser
      // 0a7: dup
      // 0a8: invokespecial com/l7tech/identity/ldap/LdapUser.<init> ()V
      // 0ab: astore 11
      // 0ad: aload 11
      // 0af: aload 3
      // 0b0: invokevirtual com/l7tech/identity/ldap/LdapIdentityProviderConfig.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 0b3: invokevirtual com/l7tech/identity/ldap/LdapUser.setProviderId (Lcom/l7tech/objectmodel/Goid;)V
      // 0b6: aload 11
      // 0b8: aload 1
      // 0b9: invokevirtual com/l7tech/identity/ldap/LdapUser.setDn (Ljava/lang/String;)V
      // 0bc: aload 11
      // 0be: aload 2
      // 0bf: invokevirtual com/l7tech/identity/ldap/LdapUser.setAttributes (Ljavax/naming/directory/Attributes;)V
      // 0c2: aload 2
      // 0c3: aload 9
      // 0c5: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getEmailNameAttrName ()Ljava/lang/String;
      // 0c8: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 0cb: astore 12
      // 0cd: aload 12
      // 0cf: ifnull 0e3
      // 0d2: aload 11
      // 0d4: aload 12
      // 0d6: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 0d9: invokevirtual com/l7tech/identity/ldap/LdapUser.setEmail (Ljava/lang/String;)V
      // 0dc: goto 0e3
      // 0df: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e2: athrow
      // 0e3: aload 2
      // 0e4: aload 9
      // 0e6: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getFirstNameAttrName ()Ljava/lang/String;
      // 0e9: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 0ec: astore 12
      // 0ee: aload 12
      // 0f0: ifnull 104
      // 0f3: aload 11
      // 0f5: aload 12
      // 0f7: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 0fa: invokevirtual com/l7tech/identity/ldap/LdapUser.setFirstName (Ljava/lang/String;)V
      // 0fd: goto 104
      // 100: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 103: athrow
      // 104: aload 2
      // 105: aload 9
      // 107: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getLastNameAttrName ()Ljava/lang/String;
      // 10a: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 10d: astore 12
      // 10f: aload 12
      // 111: ifnull 125
      // 114: aload 11
      // 116: aload 12
      // 118: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 11b: invokevirtual com/l7tech/identity/ldap/LdapUser.setLastName (Ljava/lang/String;)V
      // 11e: goto 125
      // 121: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 124: athrow
      // 125: aload 2
      // 126: aload 9
      // 128: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getLoginAttrName ()Ljava/lang/String;
      // 12b: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 12e: astore 12
      // 130: aload 12
      // 132: ifnull 146
      // 135: aload 11
      // 137: aload 12
      // 139: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 13c: invokevirtual com/l7tech/identity/ldap/LdapUser.setLogin (Ljava/lang/String;)V
      // 13f: goto 146
      // 142: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 145: athrow
      // 146: aload 2
      // 147: aload 9
      // 149: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getNameAttrName ()Ljava/lang/String;
      // 14c: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 14f: astore 12
      // 151: aload 12
      // 153: ifnull 167
      // 156: aload 11
      // 158: aload 12
      // 15a: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 15d: invokevirtual com/l7tech/identity/ldap/LdapUser.setCn (Ljava/lang/String;)V
      // 160: goto 167
      // 163: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 166: athrow
      // 167: aload 2
      // 168: aload 9
      // 16a: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getPasswdAttrName ()Ljava/lang/String;
      // 16d: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 170: astore 12
      // 172: aload 12
      // 174: instanceof [B
      // 177: ifeq 18f
      // 17a: aload 12
      // 17c: checkcast [B
      // 17f: astore 13
      // 181: aload 11
      // 183: new java/lang/String
      // 186: dup
      // 187: aload 13
      // 189: invokespecial java/lang/String.<init> ([B)V
      // 18c: invokevirtual com/l7tech/identity/ldap/LdapUser.setPassword (Ljava/lang/String;)V
      // 18f: aload 9
      // 191: invokevirtual com/l7tech/identity/ldap/UserMappingConfig.getUserCertAttrName ()Ljava/lang/String;
      // 194: astore 13
      // 196: aload 13
      // 198: ifnonnull 1a7
      // 19b: getstatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.f [Ljava/lang/String;
      // 19e: astore 14
      // 1a0: aload 14
      // 1a2: bipush 16
      // 1a4: aaload
      // 1a5: astore 13
      // 1a7: aload 2
      // 1a8: aload 13
      // 1aa: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljavax/naming/directory/Attributes;Ljava/lang/String;)Ljava/lang/Object;
      // 1ad: astore 12
      // 1af: aload 12
      // 1b1: ifnull 1ee
      // 1b4: aload 12
      // 1b6: instanceof [B
      // 1b9: ifeq 1d4
      // 1bc: goto 1c3
      // 1bf: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c2: athrow
      // 1c3: aload 11
      // 1c5: aload 12
      // 1c7: checkcast [B
      // 1ca: invokevirtual com/l7tech/identity/ldap/LdapUser.setLdapCertBytes ([B)V
      // 1cd: goto 1ee
      // 1d0: invokestatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d3: athrow
      // 1d4: aload 0
      // 1d5: getfield com/l7tech/server/identity/ldap/LdapUserManagerImpl.e Ljava/util/logging/Logger;
      // 1d8: aload 12
      // 1da: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 1dd: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 1e0: getstatic com/l7tech/server/identity/ldap/LdapUserManagerImpl.f [Ljava/lang/String;
      // 1e3: bipush 3
      // 1e4: aaload
      // 1e5: swap
      // 1e6: 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" ]
      // 1eb: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 1ee: aload 11
      // 1f0: areturn
      // 1f1: iinc 8 1
      // 1f4: goto 085
      // 1f7: aconst_null
      // 1f8: areturn
      // try (0 -> 20): 20 javax/naming/NamingException
      // try (22 -> 42): 42 javax/naming/NamingException
      // try (98 -> 104): 105 javax/naming/NamingException
      // try (112 -> 118): 119 javax/naming/NamingException
      // try (126 -> 132): 133 javax/naming/NamingException
      // try (140 -> 146): 147 javax/naming/NamingException
      // try (154 -> 160): 161 javax/naming/NamingException
      // try (195 -> 200): 201 javax/naming/NamingException
      // try (197 -> 208): 208 javax/naming/NamingException
   }

   public void delete(LdapUser var1) {
      throw new UnsupportedOperationException();
   }

   public void deleteAll(Goid var1) {
      throw new UnsupportedOperationException();
   }

   public void delete(String var1) {
      throw new UnsupportedOperationException();
   }

   public void update(LdapUser var1) {
      throw new UnsupportedOperationException();
   }

   public String save(LdapUser var1, Set var2) {
      throw new UnsupportedOperationException();
   }

   public String save(Goid var1, LdapUser var2, Set var3) {
      throw new UnsupportedOperationException();
   }

   public LdapUser reify(UserBean var1) {
      throw new UnsupportedOperationException();
   }

   public void update(LdapUser var1, Set var2) {
      throw new UnsupportedOperationException();
   }

   public Class<LdapUser> getImpClass() {
      return LdapUser.class;
   }

   public EntityHeaderSet<IdentityHeader> findAllHeaders() throws FindException {
      LdapIdentityProvider var1 = this.b();
      return var1.search(new EntityType[]{EntityType.USER}, "*");
   }

   public EntityHeaderSet<IdentityHeader> search(String var1) throws FindException {
      LdapIdentityProvider var2 = this.b();
      return var2.search(new EntityType[]{EntityType.USER}, "*");
   }

   public IdentityHeader userToHeader(LdapUser var1) {
      return new IdentityHeader(var1.getProviderId(), var1.getId(), EntityType.USER, var1.getLogin(), var1.getName(), var1.getCn(), null);
   }

   public LdapUser headerToUser(IdentityHeader var1) {
      LdapUser var2 = new LdapUser();
      var2.setProviderId(this.b.getGoid());
      var2.setDn(var1.getStrId());
      var2.setCn(var1.getName());
      return var2;
   }

   @Override
   public boolean authenticateBasic(String var1, String var2) throws BadCredentialsException {
      return LdapUtils.authenticateBasic(this.b(), this.c(), this.c, this.e, var1, var2);
   }

   private String[] a() {
      String[] var1 = null;
      Collection var2 = this.a.getReturningAttributes();
      if (var2 != null) {
         var1 = var2.toArray(new String[var2.size()]);
      }

      return var1;
   }

   private LdapIdentityProvider b() {
      LdapIdentityProvider var1 = this.a;

      try {
         if (var1 == null) {
            throw new IllegalStateException(f[0]);
         } else {
            return var1;
         }
      } catch (UnsupportedOperationException var2) {
         throw a(var2);
      }
   }

   private LdapIdentityProviderConfig c() {
      LdapIdentityProviderConfig var1 = this.b;

      try {
         if (var1 == null) {
            throw new IllegalStateException(f[15]);
         } else {
            return var1;
         }
      } catch (UnsupportedOperationException var2) {
         throw a(var2);
      }
   }

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

   static {
      String[] var5 = new String[17];
      int var3 = 0;
      String var2 = "feI{~\u0002;NcZ.o\b1\t\u0012\bnR>nM;G~\u001d>e\u0004&\\*T5\fdN|\u000b=\b'ZeOa=K}yX)=\u000e0Z~T=t\u000e4\\o\u001d\u0017y\f%\bzO4m\b'\\s\u001d+r\u001d DkI>yM\"A~U{y\f!I*T5=\f;\b\u007fS>e\u001d0K~X?=\u000b:Zg\\/=\fdN|\u000b=\b'ZeOa=\u0010\bi\\5s\u0002!\blT5yM6F7\u001bdN|\u000b=\f \\bX5i\u00046I~T4sM0ZxR)'M\u0005}yX)=\u001c\bcN{x\u0015%AxX?3M\u0007M~H)s\u0004;O*S.q\u0001{\u0002\b\"'\bcN{q\u00026CoY{r\u001fuLcN:\u007f\u00010L$\u001d\tx\u0019 ZdT5zM;]fQu\bii^4h\u0003!\b\u000bGhW>~\u00196DkN(\u0005}yX)=\u001bdN|\u000b=\f \\bX5i\u00046I~T4sM0ZxR)'M";
      int var4 = "feI{~\u0002;NcZ.o\b1\t\u0012\bnR>nM;G~\u001d>e\u0004&\\*T5\fdN|\u000b=\b'ZeOa=K}yX)=\u000e0Z~T=t\u000e4\\o\u001d\u0017y\f%\bzO4m\b'\\s\u001d+r\u001d DkI>yM\"A~U{y\f!I*T5=\f;\b\u007fS>e\u001d0K~X?=\u000b:Zg\\/=\fdN|\u000b=\b'ZeOa=\u0010\bi\\5s\u0002!\blT5yM6F7\u001bdN|\u000b=\f \\bX5i\u00046I~T4sM0ZxR)'M\u0005}yX)=\u001c\bcN{x\u0015%AxX?3M\u0007M~H)s\u0004;O*S.q\u0001{\u0002\b\"'\bcN{q\u00026CoY{r\u001fuLcN:\u007f\u00010L$\u001d\tx\u0019 ZdT5zM;]fQu\bii^4h\u0003!\b\u000bGhW>~\u00196DkN(\u0005}yX)=\u001bdN|\u000b=\f \\bX5i\u00046I~T4sM0ZxR)'M"
         .length();
      char var1 = 15;
      int var7 = -1;

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

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

                  var2 = "mnBpu\t0EhQ%d\u0003:\u0002\u0016VrS\"U\u0003,WhP9u\u0007*F:T9x\u0007,Z";
                  var4 = "mnBpu\t0EhQ%d\u0003:\u0002\u0016VrS\"U\u0003,WhP9u\u0007*F:T9x\u0007,Z".length();
                  var1 = 15;
                  var7 = -1;
            }

            var10000 = 77;
            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] ^ 19);
      }

      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 -> 110;
            case 1 -> 76;
            case 2 -> 123;
            case 3 -> 29;
            case 4 -> 91;
            case 5 -> 43;
            default -> 19;
         });
      }

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