static void store_slice16_c(uint16_t *dst, const uint16_t *src,

                            int dst_linesize, int src_linesize,

                            int width, int height, int log2_scale,

                            const uint8_t dither[8][8])

{

    int y, x;



#define STORE16(pos) do {                                                   \

    temp = ((src[x + y*src_linesize + pos] << log2_scale) + (d[pos]>>1)) >> 5;   \

    if (temp & 0x400)                                                       \

        temp = ~(temp >> 31);                                               \

    dst[x + y*dst_linesize + pos] = temp;                                   \

} while (0)



    for (y = 0; y < height; y++) {

        const uint8_t *d = dither[y];

        for (x = 0; x < width; x += 8) {

            int temp;

            STORE16(0);

            STORE16(1);

            STORE16(2);

            STORE16(3);

            STORE16(4);

            STORE16(5);

            STORE16(6);

            STORE16(7);

        }

    }

}

static void store_slice16_c(uint16_t *dst, const uint16_t *src,

                            int dst_linesize, int src_linesize,

                            int width, int height, int log2_scale,

                            const uint8_t dither[8][8])

{

    int y, x;



#define STORE16(pos) do {                                                   \

    temp = ((src[x + y*src_linesize + pos] << log2_scale) + (d[pos]>>1)) >> 5;   \

    if (temp & 0x400)                                                       \

        temp = ~(temp >> 31);                                               \

    dst[x + y*dst_linesize + pos] = temp;                                   \

} while (0)



    for (y = 0; y < height; y++) {

        const uint8_t *d = dither[y];

        for (x = 0; x < width; x += 8) {

            int temp;

            STORE16(0);

            STORE16(1);

            STORE16(2);

            STORE16(3);

            STORE16(4);

            STORE16(5);

            STORE16(6);

            STORE16(7);

        }

    }

}

static void store_slice16_c(uint16_t *dst, const uint16_t *src,                             const uint8_t dither[8][8])     if (temp & 0x400)                                                       \
static void FUNC_0(uint16_t *VAR_0, const uint16_t *VAR_1,

                            int VAR_2, int VAR_3,

                            int VAR_4, int VAR_5, int VAR_6,

                            const uint8_t VAR_7[8][8])

{

    int VAR_8, VAR_9;



#define STORE16(pos) do {                                                   \

    temp = ((VAR_1[VAR_9 + VAR_8*VAR_3 + pos] << VAR_6) + (d[pos]>>1)) >> 5;   \

    if (temp & 0x400)                                                       \

        temp = ~(temp >> 31);                                               \

    VAR_0[VAR_9 + VAR_8*VAR_2 + pos] = temp;                                   \

} while (0)



    for (VAR_8 = 0; VAR_8 < VAR_5; VAR_8++) {

        const uint8_t *d = VAR_7[VAR_8];

        for (VAR_9 = 0; VAR_9 < VAR_4; VAR_9 += 8) {

            int temp;

            STORE16(0);

            STORE16(1);

            STORE16(2);

            STORE16(3);

            STORE16(4);

            STORE16(5);

            STORE16(6);

            STORE16(7);

        }

    }

}

static void FUNC_0(uint16_t *VAR_0, const uint16_t *VAR_1,
int VAR_2, int VAR_3,
int VAR_4, int VAR_5, int VAR_6,
const uint8_t VAR_7[8][8])
{ int VAR_8, VAR_9; #define STORE16(pos) do {                                                   \ temp = ((VAR_1[VAR_9 + VAR_8*VAR_3 + pos] << VAR_6) + (d[pos]>>1)) >> 5;   \ if (temp & 0x400)                                                       \
temp = ~(temp >> 31);                                               \ VAR_0[VAR_9 + VAR_8*VAR_2 + pos] = temp;                                   \ } while (0) for (VAR_8 = 0; VAR_8 < VAR_5; VAR_8++) { const uint8_t *d = VAR_7[VAR_8]; for (VAR_9 = 0; VAR_9 < VAR_4; VAR_9 += 8) { int temp; STORE16(0); STORE16(1); STORE16(2); STORE16(3); STORE16(4); STORE16(5); STORE16(6); STORE16(7); } } }