public byte[] getArchive(String name) {
        try {
            int nameHash = 0;
            name = name.toUpperCase();
            for(int j = 0; j < name.length(); j++)
                nameHash = (nameHash * 61 + name.charAt(j)) - 32;
            for(int i = 0; i < amountEntries; i++) {
                if(nameHashes[i] == nameHash) {
                    byte[] src = null;
                    if(entryData != null) {
                        src = new byte[entryData[i].length];
                        System.arraycopy(entryData[i], 0, src, 0, entryData[i].length);
                    } else {
                        src = new byte[uSizes[i]];
                        if(isCompressed) {
                            System.arraycopy(archiveData, archiveOffsets[i], src, 0, uSizes[i]);
                        } else {
                            DataInputStream is = new DataInputStream(new BZip2CompressorInputStream(new ByteArrayInputStream(archiveData, archiveOffsets[i], cSizes[i])));
                            is.readFully(src);
                        }
                    }
                    return src;
                }
            }
        } catch(IOException ioex) {}
        return null;
    }