public static synchronized RegionFile createOrLoadRegionFile(File var0, int var1, int var2) {
      File var3 = new File(var0, "region");
      File var4 = new File(var3, "r." + (var1 >> 5) + "." + (var2 >> 5) + ".mcr");
      Reference var5 = (Reference)regionsByFilename.get(var4);
      RegionFile var6;
      if(var5 != null) {
         var6 = (RegionFile)var5.get();
         if(var6 != null) {
            return var6;
         }
      }

      if(!var3.exists()) {
         var3.mkdirs();
      }

      if(regionsByFilename.size() >= 256) {
         clearRegionFileReferences();
      }

      var6 = new RegionFile(var4);
      regionsByFilename.put(var4, new SoftReference(var6));
      return var6;
   }