import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

public class Class216 implements Interface57 {

   Hashtable aHashtable2557 = new Hashtable();
   Class253 aClass253_2558;
   String aString2559;
   Hashtable aHashtable2560 = new Hashtable();
   static Class179 aClass179_2561;


   public Class216(Class253 var1) {
      this.aClass253_2558 = var1;
      String var2 = "";
      if(!Class580.aString7622.startsWith("win") && !Class580.aString7622.startsWith("windows 7")) {
         if(Class580.aString7622.startsWith("linux")) {
            var2 = var2 + "linux/";
         } else if(Class580.aString7622.startsWith("mac")) {
            var2 = var2 + "macos/";
         }
      } else {
         var2 = var2 + "windows/";
      }

      if(!Class580.aString7623.startsWith("amd64") && !Class580.aString7623.startsWith("x86_64")) {
         if(!Class580.aString7623.startsWith("i386") && !Class580.aString7623.startsWith("i486") && !Class580.aString7623.startsWith("i586") && !Class580.aString7623.startsWith("x86")) {
            if(Class580.aString7623.startsWith("ppc")) {
               var2 = var2 + "ppc/";
            } else {
               var2 = var2 + "universal/";
            }
         } else {
            var2 = var2 + "x86/";
         }
      } else {
         var2 = var2 + "x86_64/";
      }

      this.aString2559 = var2;
   }

   boolean method3729(String var1, Class var2) {
      Class var3 = (Class)this.aHashtable2560.get(var1);
      if(var3 != null) {
         return var3.getClassLoader() == var2.getClassLoader();
      } else {
         File var4 = null;
         if(var4 == null) {
            var4 = (File)this.aHashtable2557.get(var1);
         }

         if(null != var4) {
            try {
               var4 = new File(var4.getCanonicalPath());
               Class var5 = Class.forName("java.lang.Runtime");
               Class var6 = Class.forName("java.lang.reflect.AccessibleObject");
               Method var7 = var6.getDeclaredMethod("setAccessible", new Class[]{Boolean.TYPE});
               Method var8 = var5.getDeclaredMethod("load0", new Class[]{Class.forName("java.lang.Class"), Class.forName("java.lang.String")});
               var7.invoke(var8, new Object[]{Boolean.TRUE});
               var8.invoke(Runtime.getRuntime(), new Object[]{var2, var4.getPath()});
               var7.invoke(var8, new Object[]{Boolean.FALSE});
               this.aHashtable2560.put(var1, var2);
               return true;
            } catch (NoSuchMethodException var9) {
               System.load(var4.getPath());
               this.aHashtable2560.put(var1, Class220.class);
               return true;
            } catch (Throwable var10) {
               ;
            }
         }

         return false;
      }
   }

   void method3730(String var1, File var2, int var3) {
      this.aHashtable2557.put(var1, var2);
   }

   public boolean method312(String var1, byte var2) {
      return this.aHashtable2557.containsKey(var1);
   }

   public boolean method3731(String var1, int var2) {
      return this.aHashtable2560.containsKey(var1);
   }

   public boolean method304(String var1) {
      return this.aHashtable2557.containsKey(var1);
   }

   boolean method3732(String var1, Class var2, int var3) {
      Class var4 = (Class)this.aHashtable2560.get(var1);
      if(var4 != null) {
         return var4.getClassLoader() == var2.getClassLoader();
      } else {
         File var5 = null;
         if(var5 == null) {
            var5 = (File)this.aHashtable2557.get(var1);
         }

         if(null != var5) {
            try {
               var5 = new File(var5.getCanonicalPath());
               Class var6 = Class.forName("java.lang.Runtime");
               Class var7 = Class.forName("java.lang.reflect.AccessibleObject");
               Method var8 = var7.getDeclaredMethod("setAccessible", new Class[]{Boolean.TYPE});
               Method var9 = var6.getDeclaredMethod("load0", new Class[]{Class.forName("java.lang.Class"), Class.forName("java.lang.String")});
               var8.invoke(var9, new Object[]{Boolean.TRUE});
               var9.invoke(Runtime.getRuntime(), new Object[]{var2, var5.getPath()});
               var8.invoke(var9, new Object[]{Boolean.FALSE});
               this.aHashtable2560.put(var1, var2);
               return true;
            } catch (NoSuchMethodException var10) {
               System.load(var5.getPath());
               this.aHashtable2560.put(var1, Class220.class);
               return true;
            } catch (Throwable var11) {
               ;
            }
         }

         return false;
      }
   }

   public boolean method311(byte var1) {
      Hashtable var2 = new Hashtable();
      Enumeration var3 = this.aHashtable2560.keys();

      while(var3.hasMoreElements()) {
         String var4 = (String)var3.nextElement();
         var2.put(var4, this.aHashtable2560.get(var4));
      }

      try {
         Class var25 = Class.forName("java.lang.reflect.AccessibleObject");
         Class var5 = Class.forName("java.lang.ClassLoader");
         Field var6 = var5.getDeclaredField("nativeLibraries");
         Method var7 = var25.getDeclaredMethod("setAccessible", new Class[]{Boolean.TYPE});
         var7.invoke(var6, new Object[]{Boolean.TRUE});

         try {
            var3 = this.aHashtable2560.keys();

            while(var3.hasMoreElements()) {
               String var8 = (String)var3.nextElement();

               try {
                  File var9 = (File)this.aHashtable2557.get(var8);
                  Class var10 = (Class)this.aHashtable2560.get(var8);
                  Vector var11 = (Vector)var6.get(var10.getClassLoader());

                  for(int var12 = 0; var12 < var11.size(); ++var12) {
                     try {
                        Object var13 = var11.elementAt(var12);
                        Field var14 = var13.getClass().getDeclaredField("name");
                        var7.invoke(var14, new Object[]{Boolean.TRUE});

                        try {
                           String var15 = (String)var14.get(var13);
                           if(var15 != null && var15.equalsIgnoreCase(var9.getCanonicalPath())) {
                              Field var16 = var13.getClass().getDeclaredField("handle");
                              Method var17 = var13.getClass().getDeclaredMethod("finalize", new Class[0]);
                              var7.invoke(var16, new Object[]{Boolean.TRUE});
                              var7.invoke(var17, new Object[]{Boolean.TRUE});

                              try {
                                 var17.invoke(var13, new Object[0]);
                                 var16.set(var13, new Integer(0));
                                 var2.remove(var8);
                              } catch (Throwable var19) {
                                 ;
                              }

                              var7.invoke(var17, new Object[]{Boolean.FALSE});
                              var7.invoke(var16, new Object[]{Boolean.FALSE});
                           }
                        } catch (Throwable var20) {
                           ;
                        }

                        var7.invoke(var14, new Object[]{Boolean.FALSE});
                     } catch (Throwable var21) {
                        ;
                     }
                  }
               } catch (Throwable var22) {
                  ;
               }
            }
         } catch (Throwable var23) {
            ;
         }

         var7.invoke(var6, new Object[]{Boolean.FALSE});
      } catch (Throwable var24) {
         ;
      }

      this.aHashtable2560 = var2;
      return this.aHashtable2560.isEmpty();
   }

   static String method3733(String var0) {
      return Class580.aString7622.startsWith("win")?var0 + ".dll":(Class580.aString7622.startsWith("linux")?"lib" + var0 + ".so":(Class580.aString7622.startsWith("mac")?"lib" + var0 + ".dylib":null));
   }

   public int method3734(String var1) {
      if(this.aHashtable2557.containsKey(var1)) {
         return 100;
      } else {
         String var2 = Class453.method7590(var1, (byte)-19);
         if(null == var2) {
            return -1;
         } else {
            String var3 = null;
            if(null == var3) {
               var3 = this.aString2559 + var2;
               if(!this.aClass253_2558.method4548(var3, "", (byte)46)) {
                  return -1;
               }
            }

            if(!this.aClass253_2558.method4530(var3, (byte)14)) {
               return this.aClass253_2558.method4527(var3, (byte)0);
            } else {
               byte[] var4 = this.aClass253_2558.method4573(var3, "", (byte)-52);
               File var5 = null;
               var5 = Class496.method8302(var2, (byte)16);
               if(var4 != null && var5 != null) {
                  boolean var6 = true;
                  byte[] var7 = Class334.method6174(var5, -153803522);
                  if(null != var7 && var7.length == var4.length) {
                     for(int var8 = 0; var8 < var7.length; ++var8) {
                        if(var7[var8] != var4[var8]) {
                           var6 = false;
                           break;
                        }
                     }
                  } else {
                     var6 = false;
                  }

                  try {
                     if(!var6) {
                        try {
                           FileOutputStream var11 = new FileOutputStream(var5);
                           var11.write(var4, 0, var4.length);
                           var11.close();
                        } catch (IOException var9) {
                           throw new RuntimeException();
                        }
                     }
                  } catch (Throwable var10) {
                     return -1;
                  }

                  this.method3730(var1, var5, -1535745958);
                  return 100;
               } else {
                  return -1;
               }
            }
         }
      }
   }

   public boolean method310(String var1, int var2) {
      return this.method3732(var1, Class220.class, -983107388);
   }

   public int method3735(String var1, int var2) {
      if(this.aHashtable2557.containsKey(var1)) {
         return 100;
      } else {
         String var3 = Class453.method7590(var1, (byte)-46);
         if(null == var3) {
            return -1;
         } else {
            String var4 = null;
            if(null == var4) {
               var4 = this.aString2559 + var3;
               if(!this.aClass253_2558.method4548(var4, "", (byte)-59)) {
                  return -1;
               }
            }

            if(!this.aClass253_2558.method4530(var4, (byte)14)) {
               return this.aClass253_2558.method4527(var4, (byte)0);
            } else {
               byte[] var5 = this.aClass253_2558.method4573(var4, "", (byte)-122);
               File var6 = null;
               var6 = Class496.method8302(var3, (byte)16);
               if(var5 != null && var6 != null) {
                  boolean var7 = true;
                  byte[] var8 = Class334.method6174(var6, 1666206613);
                  if(null != var8 && var8.length == var5.length) {
                     for(int var9 = 0; var9 < var8.length; ++var9) {
                        if(var8[var9] != var5[var9]) {
                           var7 = false;
                           break;
                        }
                     }
                  } else {
                     var7 = false;
                  }

                  try {
                     if(!var7) {
                        try {
                           FileOutputStream var12 = new FileOutputStream(var6);
                           var12.write(var5, 0, var5.length);
                           var12.close();
                        } catch (IOException var10) {
                           throw new RuntimeException();
                        }
                     }
                  } catch (Throwable var11) {
                     return -1;
                  }

                  this.method3730(var1, var6, -1041142194);
                  return 100;
               } else {
                  return -1;
               }
            }
         }
      }
   }

   public boolean method308(String var1) {
      return this.method3732(var1, Class220.class, -856663559);
   }

   void method3736(String var1, File var2) {
      this.aHashtable2557.put(var1, var2);
   }

   public boolean method303(String var1) {
      return this.aHashtable2557.containsKey(var1);
   }

   public boolean method309() {
      Hashtable var1 = new Hashtable();
      Enumeration var2 = this.aHashtable2560.keys();

      while(var2.hasMoreElements()) {
         String var3 = (String)var2.nextElement();
         var1.put(var3, this.aHashtable2560.get(var3));
      }

      try {
         Class var24 = Class.forName("java.lang.reflect.AccessibleObject");
         Class var4 = Class.forName("java.lang.ClassLoader");
         Field var5 = var4.getDeclaredField("nativeLibraries");
         Method var6 = var24.getDeclaredMethod("setAccessible", new Class[]{Boolean.TYPE});
         var6.invoke(var5, new Object[]{Boolean.TRUE});

         try {
            var2 = this.aHashtable2560.keys();

            while(var2.hasMoreElements()) {
               String var7 = (String)var2.nextElement();

               try {
                  File var8 = (File)this.aHashtable2557.get(var7);
                  Class var9 = (Class)this.aHashtable2560.get(var7);
                  Vector var10 = (Vector)var5.get(var9.getClassLoader());

                  for(int var11 = 0; var11 < var10.size(); ++var11) {
                     try {
                        Object var12 = var10.elementAt(var11);
                        Field var13 = var12.getClass().getDeclaredField("name");
                        var6.invoke(var13, new Object[]{Boolean.TRUE});

                        try {
                           String var14 = (String)var13.get(var12);
                           if(var14 != null && var14.equalsIgnoreCase(var8.getCanonicalPath())) {
                              Field var15 = var12.getClass().getDeclaredField("handle");
                              Method var16 = var12.getClass().getDeclaredMethod("finalize", new Class[0]);
                              var6.invoke(var15, new Object[]{Boolean.TRUE});
                              var6.invoke(var16, new Object[]{Boolean.TRUE});

                              try {
                                 var16.invoke(var12, new Object[0]);
                                 var15.set(var12, new Integer(0));
                                 var1.remove(var7);
                              } catch (Throwable var18) {
                                 ;
                              }

                              var6.invoke(var16, new Object[]{Boolean.FALSE});
                              var6.invoke(var15, new Object[]{Boolean.FALSE});
                           }
                        } catch (Throwable var19) {
                           ;
                        }

                        var6.invoke(var13, new Object[]{Boolean.FALSE});
                     } catch (Throwable var20) {
                        ;
                     }
                  }
               } catch (Throwable var21) {
                  ;
               }
            }
         } catch (Throwable var22) {
            ;
         }

         var6.invoke(var5, new Object[]{Boolean.FALSE});
      } catch (Throwable var23) {
         ;
      }

      this.aHashtable2560 = var1;
      return this.aHashtable2560.isEmpty();
   }

   public boolean method3737(String var1) {
      return this.aHashtable2560.containsKey(var1);
   }

   public int method3738(String var1) {
      if(this.aHashtable2557.containsKey(var1)) {
         return 100;
      } else {
         String var2 = Class453.method7590(var1, (byte)112);
         if(null == var2) {
            return -1;
         } else {
            String var3 = null;
            if(null == var3) {
               var3 = this.aString2559 + var2;
               if(!this.aClass253_2558.method4548(var3, "", (byte)-113)) {
                  return -1;
               }
            }

            if(!this.aClass253_2558.method4530(var3, (byte)14)) {
               return this.aClass253_2558.method4527(var3, (byte)0);
            } else {
               byte[] var4 = this.aClass253_2558.method4573(var3, "", (byte)-114);
               File var5 = null;
               var5 = Class496.method8302(var2, (byte)16);
               if(var4 != null && var5 != null) {
                  boolean var6 = true;
                  byte[] var7 = Class334.method6174(var5, 1841226180);
                  if(null != var7 && var7.length == var4.length) {
                     for(int var8 = 0; var8 < var7.length; ++var8) {
                        if(var7[var8] != var4[var8]) {
                           var6 = false;
                           break;
                        }
                     }
                  } else {
                     var6 = false;
                  }

                  try {
                     if(!var6) {
                        try {
                           FileOutputStream var11 = new FileOutputStream(var5);
                           var11.write(var4, 0, var4.length);
                           var11.close();
                        } catch (IOException var9) {
                           throw new RuntimeException();
                        }
                     }
                  } catch (Throwable var10) {
                     return -1;
                  }

                  this.method3730(var1, var5, 151496153);
                  return 100;
               } else {
                  return -1;
               }
            }
         }
      }
   }

   public boolean method305(String var1) {
      return this.method3732(var1, Class220.class, 1495208990);
   }

   public int method3739(String var1) {
      if(this.aHashtable2557.containsKey(var1)) {
         return 100;
      } else {
         String var2 = Class453.method7590(var1, (byte)37);
         if(null == var2) {
            return -1;
         } else {
            String var3 = null;
            if(null == var3) {
               var3 = this.aString2559 + var2;
               if(!this.aClass253_2558.method4548(var3, "", (byte)-117)) {
                  return -1;
               }
            }

            if(!this.aClass253_2558.method4530(var3, (byte)14)) {
               return this.aClass253_2558.method4527(var3, (byte)0);
            } else {
               byte[] var4 = this.aClass253_2558.method4573(var3, "", (byte)-83);
               File var5 = null;
               var5 = Class496.method8302(var2, (byte)16);
               if(var4 != null && var5 != null) {
                  boolean var6 = true;
                  byte[] var7 = Class334.method6174(var5, 1163058136);
                  if(null != var7 && var7.length == var4.length) {
                     for(int var8 = 0; var8 < var7.length; ++var8) {
                        if(var7[var8] != var4[var8]) {
                           var6 = false;
                           break;
                        }
                     }
                  } else {
                     var6 = false;
                  }

                  try {
                     if(!var6) {
                        try {
                           FileOutputStream var11 = new FileOutputStream(var5);
                           var11.write(var4, 0, var4.length);
                           var11.close();
                        } catch (IOException var9) {
                           throw new RuntimeException();
                        }
                     }
                  } catch (Throwable var10) {
                     return -1;
                  }

                  this.method3730(var1, var5, 569333985);
                  return 100;
               } else {
                  return -1;
               }
            }
         }
      }
   }

   public boolean method307(String var1) {
      return this.method3732(var1, Class220.class, 1590882111);
   }

   public boolean method300(String var1) {
      return this.method3732(var1, Class220.class, -678808725);
   }

   void method3740(String var1, File var2) {
      this.aHashtable2557.put(var1, var2);
   }

   public boolean method199() {
      Hashtable var1 = new Hashtable();
      Enumeration var2 = this.aHashtable2560.keys();

      while(var2.hasMoreElements()) {
         String var3 = (String)var2.nextElement();
         var1.put(var3, this.aHashtable2560.get(var3));
      }

      try {
         Class var24 = Class.forName("java.lang.reflect.AccessibleObject");
         Class var4 = Class.forName("java.lang.ClassLoader");
         Field var5 = var4.getDeclaredField("nativeLibraries");
         Method var6 = var24.getDeclaredMethod("setAccessible", new Class[]{Boolean.TYPE});
         var6.invoke(var5, new Object[]{Boolean.TRUE});

         try {
            var2 = this.aHashtable2560.keys();

            while(var2.hasMoreElements()) {
               String var7 = (String)var2.nextElement();

               try {
                  File var8 = (File)this.aHashtable2557.get(var7);
                  Class var9 = (Class)this.aHashtable2560.get(var7);
                  Vector var10 = (Vector)var5.get(var9.getClassLoader());

                  for(int var11 = 0; var11 < var10.size(); ++var11) {
                     try {
                        Object var12 = var10.elementAt(var11);
                        Field var13 = var12.getClass().getDeclaredField("name");
                        var6.invoke(var13, new Object[]{Boolean.TRUE});

                        try {
                           String var14 = (String)var13.get(var12);
                           if(var14 != null && var14.equalsIgnoreCase(var8.getCanonicalPath())) {
                              Field var15 = var12.getClass().getDeclaredField("handle");
                              Method var16 = var12.getClass().getDeclaredMethod("finalize", new Class[0]);
                              var6.invoke(var15, new Object[]{Boolean.TRUE});
                              var6.invoke(var16, new Object[]{Boolean.TRUE});

                              try {
                                 var16.invoke(var12, new Object[0]);
                                 var15.set(var12, new Integer(0));
                                 var1.remove(var7);
                              } catch (Throwable var18) {
                                 ;
                              }

                              var6.invoke(var16, new Object[]{Boolean.FALSE});
                              var6.invoke(var15, new Object[]{Boolean.FALSE});
                           }
                        } catch (Throwable var19) {
                           ;
                        }

                        var6.invoke(var13, new Object[]{Boolean.FALSE});
                     } catch (Throwable var20) {
                        ;
                     }
                  }
               } catch (Throwable var21) {
                  ;
               }
            }
         } catch (Throwable var22) {
            ;
         }

         var6.invoke(var5, new Object[]{Boolean.FALSE});
      } catch (Throwable var23) {
         ;
      }

      this.aHashtable2560 = var1;
      return this.aHashtable2560.isEmpty();
   }

   public boolean method301() {
      Hashtable var1 = new Hashtable();
      Enumeration var2 = this.aHashtable2560.keys();

      while(var2.hasMoreElements()) {
         String var3 = (String)var2.nextElement();
         var1.put(var3, this.aHashtable2560.get(var3));
      }

      try {
         Class var24 = Class.forName("java.lang.reflect.AccessibleObject");
         Class var4 = Class.forName("java.lang.ClassLoader");
         Field var5 = var4.getDeclaredField("nativeLibraries");
         Method var6 = var24.getDeclaredMethod("setAccessible", new Class[]{Boolean.TYPE});
         var6.invoke(var5, new Object[]{Boolean.TRUE});

         try {
            var2 = this.aHashtable2560.keys();

            while(var2.hasMoreElements()) {
               String var7 = (String)var2.nextElement();

               try {
                  File var8 = (File)this.aHashtable2557.get(var7);
                  Class var9 = (Class)this.aHashtable2560.get(var7);
                  Vector var10 = (Vector)var5.get(var9.getClassLoader());

                  for(int var11 = 0; var11 < var10.size(); ++var11) {
                     try {
                        Object var12 = var10.elementAt(var11);
                        Field var13 = var12.getClass().getDeclaredField("name");
                        var6.invoke(var13, new Object[]{Boolean.TRUE});

                        try {
                           String var14 = (String)var13.get(var12);
                           if(var14 != null && var14.equalsIgnoreCase(var8.getCanonicalPath())) {
                              Field var15 = var12.getClass().getDeclaredField("handle");
                              Method var16 = var12.getClass().getDeclaredMethod("finalize", new Class[0]);
                              var6.invoke(var15, new Object[]{Boolean.TRUE});
                              var6.invoke(var16, new Object[]{Boolean.TRUE});

                              try {
                                 var16.invoke(var12, new Object[0]);
                                 var15.set(var12, new Integer(0));
                                 var1.remove(var7);
                              } catch (Throwable var18) {
                                 ;
                              }

                              var6.invoke(var16, new Object[]{Boolean.FALSE});
                              var6.invoke(var15, new Object[]{Boolean.FALSE});
                           }
                        } catch (Throwable var19) {
                           ;
                        }

                        var6.invoke(var13, new Object[]{Boolean.FALSE});
                     } catch (Throwable var20) {
                        ;
                     }
                  }
               } catch (Throwable var21) {
                  ;
               }
            }
         } catch (Throwable var22) {
            ;
         }

         var6.invoke(var5, new Object[]{Boolean.FALSE});
      } catch (Throwable var23) {
         ;
      }

      this.aHashtable2560 = var1;
      return this.aHashtable2560.isEmpty();
   }

   public boolean method306() {
      Hashtable var1 = new Hashtable();
      Enumeration var2 = this.aHashtable2560.keys();

      while(var2.hasMoreElements()) {
         String var3 = (String)var2.nextElement();
         var1.put(var3, this.aHashtable2560.get(var3));
      }

      try {
         Class var24 = Class.forName("java.lang.reflect.AccessibleObject");
         Class var4 = Class.forName("java.lang.ClassLoader");
         Field var5 = var4.getDeclaredField("nativeLibraries");
         Method var6 = var24.getDeclaredMethod("setAccessible", new Class[]{Boolean.TYPE});
         var6.invoke(var5, new Object[]{Boolean.TRUE});

         try {
            var2 = this.aHashtable2560.keys();

            while(var2.hasMoreElements()) {
               String var7 = (String)var2.nextElement();

               try {
                  File var8 = (File)this.aHashtable2557.get(var7);
                  Class var9 = (Class)this.aHashtable2560.get(var7);
                  Vector var10 = (Vector)var5.get(var9.getClassLoader());

                  for(int var11 = 0; var11 < var10.size(); ++var11) {
                     try {
                        Object var12 = var10.elementAt(var11);
                        Field var13 = var12.getClass().getDeclaredField("name");
                        var6.invoke(var13, new Object[]{Boolean.TRUE});

                        try {
                           String var14 = (String)var13.get(var12);
                           if(var14 != null && var14.equalsIgnoreCase(var8.getCanonicalPath())) {
                              Field var15 = var12.getClass().getDeclaredField("handle");
                              Method var16 = var12.getClass().getDeclaredMethod("finalize", new Class[0]);
                              var6.invoke(var15, new Object[]{Boolean.TRUE});
                              var6.invoke(var16, new Object[]{Boolean.TRUE});

                              try {
                                 var16.invoke(var12, new Object[0]);
                                 var15.set(var12, new Integer(0));
                                 var1.remove(var7);
                              } catch (Throwable var18) {
                                 ;
                              }

                              var6.invoke(var16, new Object[]{Boolean.FALSE});
                              var6.invoke(var15, new Object[]{Boolean.FALSE});
                           }
                        } catch (Throwable var19) {
                           ;
                        }

                        var6.invoke(var13, new Object[]{Boolean.FALSE});
                     } catch (Throwable var20) {
                        ;
                     }
                  }
               } catch (Throwable var21) {
                  ;
               }
            }
         } catch (Throwable var22) {
            ;
         }

         var6.invoke(var5, new Object[]{Boolean.FALSE});
      } catch (Throwable var23) {
         ;
      }

      this.aHashtable2560 = var1;
      return this.aHashtable2560.isEmpty();
   }

   public boolean method3741(String var1) {
      return this.aHashtable2560.containsKey(var1);
   }

   public boolean method302() {
      Hashtable var1 = new Hashtable();
      Enumeration var2 = this.aHashtable2560.keys();

      while(var2.hasMoreElements()) {
         String var3 = (String)var2.nextElement();
         var1.put(var3, this.aHashtable2560.get(var3));
      }

      try {
         Class var24 = Class.forName("java.lang.reflect.AccessibleObject");
         Class var4 = Class.forName("java.lang.ClassLoader");
         Field var5 = var4.getDeclaredField("nativeLibraries");
         Method var6 = var24.getDeclaredMethod("setAccessible", new Class[]{Boolean.TYPE});
         var6.invoke(var5, new Object[]{Boolean.TRUE});

         try {
            var2 = this.aHashtable2560.keys();

            while(var2.hasMoreElements()) {
               String var7 = (String)var2.nextElement();

               try {
                  File var8 = (File)this.aHashtable2557.get(var7);
                  Class var9 = (Class)this.aHashtable2560.get(var7);
                  Vector var10 = (Vector)var5.get(var9.getClassLoader());

                  for(int var11 = 0; var11 < var10.size(); ++var11) {
                     try {
                        Object var12 = var10.elementAt(var11);
                        Field var13 = var12.getClass().getDeclaredField("name");
                        var6.invoke(var13, new Object[]{Boolean.TRUE});

                        try {
                           String var14 = (String)var13.get(var12);
                           if(var14 != null && var14.equalsIgnoreCase(var8.getCanonicalPath())) {
                              Field var15 = var12.getClass().getDeclaredField("handle");
                              Method var16 = var12.getClass().getDeclaredMethod("finalize", new Class[0]);
                              var6.invoke(var15, new Object[]{Boolean.TRUE});
                              var6.invoke(var16, new Object[]{Boolean.TRUE});

                              try {
                                 var16.invoke(var12, new Object[0]);
                                 var15.set(var12, new Integer(0));
                                 var1.remove(var7);
                              } catch (Throwable var18) {
                                 ;
                              }

                              var6.invoke(var16, new Object[]{Boolean.FALSE});
                              var6.invoke(var15, new Object[]{Boolean.FALSE});
                           }
                        } catch (Throwable var19) {
                           ;
                        }

                        var6.invoke(var13, new Object[]{Boolean.FALSE});
                     } catch (Throwable var20) {
                        ;
                     }
                  }
               } catch (Throwable var21) {
                  ;
               }
            }
         } catch (Throwable var22) {
            ;
         }

         var6.invoke(var5, new Object[]{Boolean.FALSE});
      } catch (Throwable var23) {
         ;
      }

      this.aHashtable2560 = var1;
      return this.aHashtable2560.isEmpty();
   }

   public static Class550 method3742(int var0, int var1, int var2, int var3, int var4, int var5) {
      Class235.aClass550_Sub5_2791.anInt7426 = -1970438059 * var0;
      Class235.aClass550_Sub5_2791.anInt7424 = var1 * -779311591;
      Class235.aClass550_Sub5_2791.anInt7425 = 1221545435 * var2;
      Class235.aClass550_Sub5_2791.anInt7423 = 1177895915 * var3;
      Class235.aClass550_Sub5_2791.anInt8507 = var4 * 900603421;
      return Class235.aClass550_Sub5_2791;
   }

   static final void method3743(Class124 var0, Class121 var1, Class508 var2, int var3) {
      var0.anInt1410 = -871586975;
      var0.anInt1411 = var2.anIntArray6027[(var2.anInt6003 -= 98312473) * -937710807] * 1431494067;
      Class460.method7767(var0, -1749888578);
      if(var0.anInt1369 * -875927841 == -1 && !var1.aBool1206) {
         Class477_Sub2.method12815(34646887 * var0.anInt1406, (byte)2);
      }

   }

   public static void method3744(String var0, boolean var1, int var2) {
      Class151.method2750(var0, var1, -1, -1, (byte)4);
   }

   static boolean method3745(Class545 var0, Class225_Sub11 var1, Class567 var2, int var3, int var4, byte var5) {
      int var6 = Integer.MAX_VALUE;
      int var7 = Integer.MIN_VALUE;
      int var8 = Integer.MAX_VALUE;
      int var9 = Integer.MIN_VALUE;
      if(null != var2.anIntArray7523) {
         var6 = (var2.anInt7512 * 1643163081 + var1.anInt8534 * 1454719779 - Class215_Sub1.anInt2549) * (Class215_Sub1.anInt2552 - Class215_Sub1.anInt2553) / (Class215_Sub1.anInt2516 - Class215_Sub1.anInt2549) + Class215_Sub1.anInt2553;
         var7 = (Class215_Sub1.anInt2552 - Class215_Sub1.anInt2553) * (1454719779 * var1.anInt8534 + var2.anInt7541 * 1153774845 - Class215_Sub1.anInt2549) / (Class215_Sub1.anInt2516 - Class215_Sub1.anInt2549) + Class215_Sub1.anInt2553;
         var9 = Class215_Sub1.anInt2525 - (87128757 * var1.anInt8531 + -1306540881 * var2.anInt7540 - Class215_Sub1.anInt2556) * (Class215_Sub1.anInt2525 - Class215_Sub1.anInt2554) / (Class215_Sub1.anInt2550 - Class215_Sub1.anInt2556);
         var8 = Class215_Sub1.anInt2525 - (87128757 * var1.anInt8531 + var2.anInt7550 * 447653981 - Class215_Sub1.anInt2556) * (Class215_Sub1.anInt2525 - Class215_Sub1.anInt2554) / (Class215_Sub1.anInt2550 - Class215_Sub1.anInt2556);
      }

      Class171 var10 = null;
      int var11 = 0;
      int var12 = 0;
      int var13 = 0;
      int var14 = 0;
      if(var2.anInt7513 * 478735571 != -1) {
         if(var1.aBool8530 && -1 != var2.anInt7516 * 361460033) {
            var10 = var2.method12028(var0, true, -1608029661);
         } else {
            var10 = var2.method12028(var0, false, -926034192);
         }

         if(var10 != null) {
            var11 = 449317387 * var1.anInt8532 - (var10.method94() + 1 >> 1);
            if(var11 < var6) {
               var6 = var11;
            }

            var12 = 449317387 * var1.anInt8532 + (var10.method94() + 1 >> 1);
            if(var12 > var7) {
               var7 = var12;
            }

            var13 = -1357162317 * var1.anInt8533 - (var10.method2969() + 1 >> 1);
            if(var13 < var8) {
               var8 = var13;
            }

            var14 = var1.anInt8533 * -1357162317 + (var10.method2969() + 1 >> 1);
            if(var14 > var9) {
               var9 = var14;
            }
         }
      }

      Class179 var15 = null;
      int var16 = 0;
      int var17 = 0;
      int var18 = 0;
      int var19 = 0;
      int var20 = 0;
      int var21 = 0;
      int var22 = 0;
      int var23 = 0;
      int var24;
      if(null != var2.aString7515) {
         var15 = Class483.method8121(var2.anInt7518 * 599615467, 1062354147);
         if(null != var15) {
            var16 = Class7.aClass405_128.method6842(var2.aString7515, (int[])null, Class215_Sub1.aStringArray8347, (Interface45[])null, 1143695614);
            var17 = var1.anInt8532 * 449317387 + (Class215_Sub1.anInt2552 - Class215_Sub1.anInt2553) * var2.anInt7547 * -897693677 / (Class215_Sub1.anInt2516 - Class215_Sub1.anInt2549);
            var18 = -1357162317 * var1.anInt8533 - var2.anInt7548 * -1217278425 * (Class215_Sub1.anInt2525 - Class215_Sub1.anInt2554) / (Class215_Sub1.anInt2550 - Class215_Sub1.anInt2556);
            if(null == var10) {
               var18 -= var15.method3169() * var16 / 2;
            } else {
               var18 -= (var10.method2969() >> 1) + var15.method3170() * var16;
            }

            for(var24 = 0; var24 < var16; ++var24) {
               String var25 = Class215_Sub1.aStringArray8347[var24];
               if(var24 < var16 - 1) {
                  var25 = var25.substring(0, var25.length() - 4);
               }

               int var26 = var15.method3171(var25);
               if(var26 > var19) {
                  var19 = var26;
               }
            }

            var20 = var17 - var19 / 2 + var3;
            if(var20 < var6) {
               var6 = var20;
            }

            var21 = var3 + var19 / 2 + var17;
            if(var21 > var7) {
               var7 = var21;
            }

            var22 = var18 + var4;
            if(var22 < var8) {
               var8 = var22;
            }

            var23 = var18 + var16 * var15.method3170() + var4;
            if(var23 > var9) {
               var9 = var23;
            }
         }
      }

      if(var7 >= Class215_Sub1.anInt2553 && var6 <= Class215_Sub1.anInt2552 && var9 >= Class215_Sub1.anInt2554 && var8 <= Class215_Sub1.anInt2525) {
         Class215_Sub1.method3690(var0, var1, var2);
         if(var10 != null) {
            if(Class260.anInt3053 * 1882486243 > 0 && (-438923573 * Class215_Sub1.anInt8342 != -1 && var1.anInt8528 * 922203033 == -438923573 * Class215_Sub1.anInt8342 || -2119435173 * Class215_Sub1.anInt8346 != -1 && Class215_Sub1.anInt8346 * -2119435173 == var2.anInt7552 * -2118985305)) {
               if(-1800646363 * Class215_Sub1.anInt8341 > 50) {
                  var24 = 200 - Class215_Sub1.anInt8341 * 693674570;
               } else {
                  var24 = 693674570 * Class215_Sub1.anInt8341;
               }

               int var28 = var24 << 24 | 16776960;
               var0.method11576(449317387 * var1.anInt8532, -1357162317 * var1.anInt8533, var10.method2944() / 2 + 7, var28, (short)23227);
               var0.method11576(var1.anInt8532 * 449317387, var1.anInt8533 * -1357162317, var10.method2944() / 2 + 5, var28, (short)14273);
               var0.method11576(var1.anInt8532 * 449317387, -1357162317 * var1.anInt8533, var10.method2944() / 2 + 3, var28, (short)28175);
               var0.method11576(var1.anInt8532 * 449317387, -1357162317 * var1.anInt8533, var10.method2944() / 2 + 1, var28, (short)25894);
               var0.method11576(449317387 * var1.anInt8532, var1.anInt8533 * -1357162317, var10.method2944() / 2, var28, (short)20499);
            }

            var10.method2926(449317387 * var1.anInt8532 - (var10.method94() >> 1), var1.anInt8533 * -1357162317 - (var10.method2969() >> 1));
         }

         if(var2.aString7515 != null && var15 != null) {
            Class50.method1207(var0, var1, var2, var16, var17, var18, var19, var15, 438371327);
         }

         if(-1 != 478735571 * var2.anInt7513 || null != var2.aString7515) {
            Class225_Sub51 var27 = new Class225_Sub51(var1);
            var27.anInt8891 = var11 * -519030947;
            var27.anInt8883 = var12 * -109264869;
            var27.anInt8884 = var13 * -971426595;
            var27.anInt8885 = var14 * 154484173;
            var27.anInt8886 = var20 * 1740192145;
            var27.anInt8887 = var21 * -427250157;
            var27.anInt8888 = var22 * 836131799;
            var27.anInt8889 = 1103986465 * var23;
            Class99.aClass456_1001.method7712(var27, (byte)116);
         }

         return false;
      } else {
         return true;
      }
   }

   static Class356 method3746(RS2Buffer var0, int var1) {
      Class382 var2 = Class573.method12190((byte)45)[var0.readUnsignedByte(-700559597)];
      Class365 var3 = Class55.method1262(-1826631075)[var0.readUnsignedByte(-700559597)];
      int var4 = var0.method13732(-1496293230);
      int var5 = var0.method13732(-1444948383);
      int var6 = var0.readUnsignedShort(-937710807);
      int var7 = var0.readUnsignedShort(-937710807);
      int var8 = var0.method13732(1418060893);
      int var9 = var0.readLargeSmart(1763401202);
      int var10 = var0.readInt_(-792767063);
      return new Class356(var2, var3, var4, var5, var6, var7, var8, var9, var10);
   }
}
