#if defined(__clang__)
    #pragma nounroll
#endif
    while (true)
    {
        size_t length;
        auto continue_read_length = [&]
        {
            unsigned s;
            do
            {
                s = *ip++;
                length += s;
            } while (unlikely(s == 255 && ip < input_end));
        };
        
        if (unlikely(ip >= input_end))
            return false;
        const unsigned token = *ip++;
        length = token >> 4;
        UInt8 * copy_end;
        size_t real_length;
        
        
        
        
        if constexpr (copy_amount == 8)
            if (length == 0)
                goto decompress_match;
        if (length == 0x0F)