private void loadAssetFileAsGAF() {
        try {
            File cache = new File(GameApplication.getGameDir() + File.separator + "assetCache");
            if (!cache.exists()) {
                cache.mkdirs();
            }

            FileInputStream in = new FileInputStream(assetFile);
            FileOutputStream out = new FileOutputStream(new File(cache + File.separator + "temp.dat"));

            byte[] b = new byte[1024];
            int length;
            while ((length = in.read(b)) > 0) {
                for (int i = 0; i < b.length; i++) {
                    byte b1 = b[i];
                    b[i] = (byte) (b1 ^ 1);
                }
                out.write(b, 0, length);
            }

            in.close();
            out.close();

            loadZIP(new File(cache + File.separator + "temp.dat"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }