https://clickhouse-test-reports.s3.yandex.net/0/624cb43f7f85b576dc2831e20623a5cf5b878792/fuzzer_ubsan/report.html

```
SELECT max(intDiv(1048575, NULL)) OVER (ORDER BY mod(number, 1024) DESC NULLS LAST RANGE BETWEEN 1 PRECEDING AND CURRENT ROW), 0, number, nth_value(toNullable(number), -9223372036854775808) OVER w AS firstValue, nth_value(toNullable(number), NULL) OVER w AS thridValue FROM numbers(1) WINDOW w AS (ORDER BY number ASC)
```
{ return argument_types[0]; }
    bool allocatesMemoryInArena() const override { return false; }
    void windowInsertResultInto(const WindowTransform * transform,
        size_t function_index) override
    {
        const auto & current_block = transform->blockAt(transform->current_row);
        IColumn & to = *(current_block.output_columns[function_index]);
        const auto & workspace = transform->workspaces[function_index];
        int64_t offset = (*current_block.input_columns[
                workspace.argument_column_indices[1]])[
            transform->current_row.row].get<Int64>() - 1;
        if (offset < 0)
        {
            throw Exception(ErrorCodes::BAD_ARGUMENTS,
                "The offset for function {} must be non-negative, {} given",
                getName(), offset);