static void render_line(int x0, uint8_t y0, int x1, int y1, float *buf)

{

    int dy  = y1 - y0;

    int adx = x1 - x0;

    int ady = FFABS(dy);

    int sy  = dy < 0 ? -1 : 1;

    buf[x0] = ff_vorbis_floor1_inverse_db_table[y0];

    if (ady*2 <= adx) { // optimized common case

        render_line_unrolled(x0, y0, x1, sy, ady, adx, buf);

    } else {

        int base  = dy / adx;

        int x     = x0;

        uint8_t y = y0;

        int err   = -adx;

        ady -= FFABS(base) * adx;

        while (++x < x1) {

            y += base;

            err += ady;

            if (err >= 0) {

                err -= adx;

                y   += sy;

            }

            buf[x] = ff_vorbis_floor1_inverse_db_table[y];

        }

    }

}

static void render_line(int x0, uint8_t y0, int x1, int y1, float *buf)

{

    int dy  = y1 - y0;

    int adx = x1 - x0;

    int ady = FFABS(dy);

    int sy  = dy < 0 ? -1 : 1;

    buf[x0] = ff_vorbis_floor1_inverse_db_table[y0];

    if (ady*2 <= adx) { 

        render_line_unrolled(x0, y0, x1, sy, ady, adx, buf);

    } else {

        int base  = dy / adx;

        int x     = x0;

        uint8_t y = y0;

        int err   = -adx;

        ady -= FFABS(base) * adx;

        while (++x < x1) {

            y += base;

            err += ady;

            if (err >= 0) {

                err -= adx;

                y   += sy;

            }

            buf[x] = ff_vorbis_floor1_inverse_db_table[y];

        }

    }

}

static void render_line(int x0, uint8_t y0, int x1, int y1, float *buf)     buf[x0] = ff_vorbis_floor1_inverse_db_table[y0];         uint8_t y = y0;             buf[x] = ff_vorbis_floor1_inverse_db_table[y];
static void FUNC_0(int VAR_0, uint8_t VAR_1, int VAR_2, int VAR_3, float *VAR_4)

{

    int VAR_5  = VAR_3 - VAR_1;

    int VAR_6 = VAR_2 - VAR_0;

    int VAR_7 = FFABS(VAR_5);

    int VAR_8  = VAR_5 < 0 ? -1 : 1;

    VAR_4[VAR_0] = ff_vorbis_floor1_inverse_db_table[VAR_1];

    if (VAR_7*2 <= VAR_6) { 

        render_line_unrolled(VAR_0, VAR_1, VAR_2, VAR_8, VAR_7, VAR_6, VAR_4);

    } else {

        int VAR_9  = VAR_5 / VAR_6;

        int VAR_10     = VAR_0;

        uint8_t y = VAR_1;

        int VAR_11   = -VAR_6;

        VAR_7 -= FFABS(VAR_9) * VAR_6;

        while (++VAR_10 < VAR_2) {

            y += VAR_9;

            VAR_11 += VAR_7;

            if (VAR_11 >= 0) {

                VAR_11 -= VAR_6;

                y   += VAR_8;

            }

            VAR_4[VAR_10] = ff_vorbis_floor1_inverse_db_table[y];

        }

    }

}

static void FUNC_0(int VAR_0, uint8_t VAR_1, int VAR_2, int VAR_3, float *VAR_4)
{ int VAR_5  = VAR_3 - VAR_1; int VAR_6 = VAR_2 - VAR_0; int VAR_7 = FFABS(VAR_5); int VAR_8  = VAR_5 < 0 ? -1 : 1; VAR_4[VAR_0] = ff_vorbis_floor1_inverse_db_table[VAR_1]; if (VAR_7*2 <= VAR_6) { render_line_unrolled(VAR_0, VAR_1, VAR_2, VAR_8, VAR_7, VAR_6, VAR_4); } else { int VAR_9  = VAR_5 / VAR_6; int VAR_10     = VAR_0; uint8_t y = VAR_1; int VAR_11   = -VAR_6; VAR_7 -= FFABS(VAR_9) * VAR_6; while (++VAR_10 < VAR_2) { y += VAR_9; VAR_11 += VAR_7; if (VAR_11 >= 0) { VAR_11 -= VAR_6; y   += VAR_8; } VAR_4[VAR_10] = ff_vorbis_floor1_inverse_db_table[y]; } } }