private String readName() throws JSONException {
        byte[] bytes = new byte[65536];
        int length = 0;
        if (!bit()) {
            while (true) {
                int c = this.namehuff.read(this.bitreader);
                if (c == end) {
                    break;
                }
                bytes[length] = (byte) c;
                length += 1;
            }
            if (length == 0) {
                return "";
            }
            Kim kim = new Kim(bytes, length);
            this.namekeep.register(kim);
            return kim.toString();
        }
        return getAndTick(this.namekeep, this.bitreader).toString();
    }