private boolean matchletMagicCompare(int offset, byte [] data) {
		int rangeStart = content.getInt(offset);
		int rangeLength = content.getInt(offset + 4);
		int dataLength = content.getInt(offset + 12);
		int dataOffset = content.getInt(offset + 16);
		int maskOffset = content.getInt(offset + 20);

		for(int i = rangeStart; i <= rangeStart + rangeLength; i++)  {
			boolean validMatch = true;
			if(i + dataLength > data.length) {
				return false;
			}
			if(maskOffset != 0) {
				for(int j = 0; j < dataLength; j++) {
					if((content.get(dataOffset + j) & content.get(maskOffset + j)) !=
						(data[j+i] & content.get(maskOffset + j))) {
						validMatch = false;
						break;
					}
				}
			} else {
				for(int j = 0; j < dataLength; j++) {
					if(content.get(dataOffset + j) != data[j + i]) {
						validMatch = false;
						break;
					}
				}
			}

			if(validMatch) {
				return true;
			}
		}
		return false;
	}