package com.l7tech.common.ftp;

public enum FtpCommand {
   APPE,
   STOR,
   STOU,
   RETR,
   LIST,
   MLSD,
   NLST,
   CDUP,
   CWD,
   DELE,
   MDTM,
   MLST,
   MKD,
   NOOP,
   PWD,
   RMD,
   SIZE;

   private final String description;
   private final boolean argumentAccepted;
   private final boolean argumentRequired;

   FtpCommand(String var3, boolean var4, boolean var5) {
      this.description = var3;
      this.argumentAccepted = var4;
      this.argumentRequired = var5;
   }

   public String getDescription() {
      return this.description;
   }

   public boolean isArgumentAccepted() {
      return this.argumentAccepted;
   }

   public boolean isArgumentRequired() {
      return this.argumentRequired;
   }

   // $VF: Failed to inline enum fields
   // 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!)
   static {
      String[] var0 = new String[34];
      int var4 = 0;
      String var3 = "ks\b(b\u0003jJ#\u001a{o\u00064`tbLhG*fc'VsG>nc'[s\b(~\fks\b(b17Vn\u0016/b\u0004kS(\b\u0004uK4\u001e\u0004kS(\u000f\u0004tN4\u000e\u0003{P#\u0003hP#\u0017hu\u000e4s15Wu\f3ivb\\n\u0015?de-J~\u0004tn\u0014.\u0004jB3\b\fvhG5wt0Ys\u000e5i\u0004{C2\n\u0018{o\u00064`tbOh\u00151n\u007f%\u0018c\u000e(br6Wu\u001e\u0004kN=\u001f\u0004vH(\n\u0016uf\u00042n\u007f'\u0018k\u000e)s1&Qu\u00029s~0A\fkn\u001d?'~$\u0018a\u000e6b\u0004uK4\u000e\u0004yW7\u001f\u0004|B+\u001f\u0011uh\u00033ax!Ys\u000e5i16Qj\u0002\fuf\u00042n\u007f'\u0018k\u000e)s\u0010jb\n5qtb\\n\u0015?de-J~\bjb\u0013(nt4]\u0006|b\u000b?st\u000euf\f?'u+Jb\u0004.hc;\tvf\n?'}+Ks\u0003uL#\u0004uC3\u0017";
      int var5 = "ks\b(b\u0003jJ#\u001a{o\u00064`tbLhG*fc'VsG>nc'[s\b(~\fks\b(b17Vn\u0016/b\u0004kS(\b\u0004uK4\u001e\u0004kS(\u000f\u0004tN4\u000e\u0003{P#\u0003hP#\u0017hu\u000e4s15Wu\f3ivb\\n\u0015?de-J~\u0004tn\u0014.\u0004jB3\b\fvhG5wt0Ys\u000e5i\u0004{C2\n\u0018{o\u00064`tbOh\u00151n\u007f%\u0018c\u000e(br6Wu\u001e\u0004kN=\u001f\u0004vH(\n\u0016uf\u00042n\u007f'\u0018k\u000e)s1&Qu\u00029s~0A\fkn\u001d?'~$\u0018a\u000e6b\u0004uK4\u000e\u0004yW7\u001f\u0004|B+\u001f\u0011uh\u00033ax!Ys\u000e5i16Qj\u0002\fuf\u00042n\u007f'\u0018k\u000e)s\u0010jb\n5qtb\\n\u0015?de-J~\bjb\u0013(nt4]\u0006|b\u000b?st\u000euf\f?'u+Jb\u0004.hc;\tvf\n?'}+Ks\u0003uL#\u0004uC3\u0017"
         .length();
      char var2 = 5;
      int var7 = -1;

      label25:
      while (true) {
         byte var10000 = 69;
         String var10001 = var3.substring(++var7, var7 + var2);
         byte var10002 = -1;

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var0[var4++] = var8;
                  if ((var7 += var2) >= var5) {
                     APPE = new FtpCommand(var0[32], true, true);
                     STOR = new FtpCommand(var0[0], true, true);
                     STOU = new FtpCommand(var0[3], true, false);
                     RETR = new FtpCommand(var0[26], true, true);
                     LIST = new FtpCommand(var0[11], true, false);
                     MLSD = new FtpCommand(var0[18], true, false);
                     NLST = new FtpCommand(var0[29], true, false);
                     CDUP = new FtpCommand(var0[2], false, false);
                     CWD = new FtpCommand(var0[15], true, true);
                     DELE = new FtpCommand(var0[27], true, true);
                     MDTM = new FtpCommand(var0[23], true, true);
                     MLST = new FtpCommand(var0[24], true, false);
                     MKD = new FtpCommand(var0[28], true, true);
                     NOOP = new FtpCommand(var0[13], false, false);
                     PWD = new FtpCommand(var0[10], false, false);
                     RMD = new FtpCommand(var0[25], true, true);
                     SIZE = new FtpCommand(var0[19], true, true);
                     return;
                  }

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

                  var3 = "\",Ld2.\u0004-\u0010oU";
                  var5 = "\",Ld2.\u0004-\u0010oU".length();
                  var2 = 6;
                  var7 = -1;
            }

            var10000 = 30;
            var10001 = var3.substring(++var7, var7 + var2);
            var10002 = 0;
         }
      }
   }

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

      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 -> 125;
            case 1 -> 66;
            case 2 -> 34;
            case 3 -> 31;
            case 4 -> 66;
            case 5 -> 84;
            default -> 7;
         });
      }

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