void updateMMXDitherTables(SwsContext *c, int dstY, int lumBufIndex, int chrBufIndex,
                           int lastInLumBuf, int lastInChrBuf)
{
    const int dstH= c->dstH;
    const int flags= c->flags;
    int16_t **lumPixBuf= c->lumPixBuf;
    int16_t **chrUPixBuf= c->chrUPixBuf;
    int16_t **alpPixBuf= c->alpPixBuf;
    const int vLumBufSize= c->vLumBufSize;
    const int vChrBufSize= c->vChrBufSize;
    int16_t *vLumFilterPos= c->vLumFilterPos;
    int16_t *vChrFilterPos= c->vChrFilterPos;
    int16_t *vLumFilter= c->vLumFilter;
    int16_t *vChrFilter= c->vChrFilter;
    int32_t *lumMmxFilter= c->lumMmxFilter;
    int32_t *chrMmxFilter= c->chrMmxFilter;
    int32_t av_unused *alpMmxFilter= c->alpMmxFilter;
    const int vLumFilterSize= c->vLumFilterSize;
    const int vChrFilterSize= c->vChrFilterSize;
    const int chrDstY= dstY>>c->chrDstVSubSample;
    const int firstLumSrcY= vLumFilterPos[dstY]; //First line needed as input
    const int firstChrSrcY= vChrFilterPos[chrDstY]; //First line needed as input
    c->blueDither= ff_dither8[dstY&1];
    if (c->dstFormat == PIX_FMT_RGB555 || c->dstFormat == PIX_FMT_BGR555)
        c->greenDither= ff_dither8[dstY&1];
    else
        c->greenDither= ff_dither4[dstY&1];
    c->redDither= ff_dither8[(dstY+1)&1];
    if (dstY < dstH - 2) {
        const int16_t **lumSrcPtr= (const int16_t **) lumPixBuf + lumBufIndex + firstLumSrcY - lastInLumBuf + vLumBufSize;
        const int16_t **chrUSrcPtr= (const int16_t **) chrUPixBuf + chrBufIndex + firstChrSrcY - lastInChrBuf + vChrBufSize;
        const int16_t **alpSrcPtr= (CONFIG_SWSCALE_ALPHA && alpPixBuf) ? (const int16_t **) alpPixBuf + lumBufIndex + firstLumSrcY - lastInLumBuf + vLumBufSize : NULL;
        int i;
        if (flags & SWS_ACCURATE_RND) {
            int s= APCK_SIZE / 8;
            for (i=0; i<vLumFilterSize; i+=2) {
                *(const void**)&lumMmxFilter[s*i              ]= lumSrcPtr[i  ];
                *(const void**)&lumMmxFilter[s*i+APCK_PTR2/4  ]= lumSrcPtr[i+(vLumFilterSize>1)];
                lumMmxFilter[s*i+APCK_COEF/4  ]=
                lumMmxFilter[s*i+APCK_COEF/4+1]= vLumFilter[dstY*vLumFilterSize + i    ]
                + (vLumFilterSize>1 ? vLumFilter[dstY*vLumFilterSize + i + 1]<<16 : 0);
                if (CONFIG_SWSCALE_ALPHA && alpPixBuf) {
                    *(const void**)&alpMmxFilter[s*i              ]= alpSrcPtr[i  ];
                    *(const void**)&alpMmxFilter[s*i+APCK_PTR2/4  ]= alpSrcPtr[i+(vLumFilterSize>1)];
                    alpMmxFilter[s*i+APCK_COEF/4  ]=
                    alpMmxFilter[s*i+APCK_COEF/4+1]= lumMmxFilter[s*i+APCK_COEF/4  ];
            for (i=0; i<vChrFilterSize; i+=2) {
                *(const void**)&chrMmxFilter[s*i              ]= chrUSrcPtr[i  ];
                *(const void**)&chrMmxFilter[s*i+APCK_PTR2/4  ]= chrUSrcPtr[i+(vChrFilterSize>1)];
                chrMmxFilter[s*i+APCK_COEF/4  ]=
                chrMmxFilter[s*i+APCK_COEF/4+1]= vChrFilter[chrDstY*vChrFilterSize + i    ]
                + (vChrFilterSize>1 ? vChrFilter[chrDstY*vChrFilterSize + i + 1]<<16 : 0);
        } else {
            for (i=0; i<vLumFilterSize; i++) {
                *(const void**)&lumMmxFilter[4*i+0]= lumSrcPtr[i];
                lumMmxFilter[4*i+2]=
                lumMmxFilter[4*i+3]=
                ((uint16_t)vLumFilter[dstY*vLumFilterSize + i])*0x10001;
                if (CONFIG_SWSCALE_ALPHA && alpPixBuf) {
                    *(const void**)&alpMmxFilter[4*i+0]= alpSrcPtr[i];
                    alpMmxFilter[4*i+2]=
                    alpMmxFilter[4*i+3]= lumMmxFilter[4*i+2];
            for (i=0; i<vChrFilterSize; i++) {
                *(const void**)&chrMmxFilter[4*i+0]= chrUSrcPtr[i];
                chrMmxFilter[4*i+2]=
                chrMmxFilter[4*i+3]=
                ((uint16_t)vChrFilter[chrDstY*vChrFilterSize + i])*0x10001;
void updateMMXDitherTables(SwsContext *c, int dstY, int lumBufIndex, int chrBufIndex,
                           int lastInLumBuf, int lastInChrBuf)
{
    const int dstH= c->dstH;
    const int flags= c->flags;
    int16_t **lumPixBuf= c->lumPixBuf;
    int16_t **chrUPixBuf= c->chrUPixBuf;
    int16_t **alpPixBuf= c->alpPixBuf;
    const int vLumBufSize= c->vLumBufSize;
    const int vChrBufSize= c->vChrBufSize;
    int16_t *vLumFilterPos= c->vLumFilterPos;
    int16_t *vChrFilterPos= c->vChrFilterPos;
    int16_t *vLumFilter= c->vLumFilter;
    int16_t *vChrFilter= c->vChrFilter;
    int32_t *lumMmxFilter= c->lumMmxFilter;
    int32_t *chrMmxFilter= c->chrMmxFilter;
    int32_t av_unused *alpMmxFilter= c->alpMmxFilter;
    const int vLumFilterSize= c->vLumFilterSize;
    const int vChrFilterSize= c->vChrFilterSize;
    const int chrDstY= dstY>>c->chrDstVSubSample;
    const int firstLumSrcY= vLumFilterPos[dstY]; 
    const int firstChrSrcY= vChrFilterPos[chrDstY]; 
    c->blueDither= ff_dither8[dstY&1];
    if (c->dstFormat == PIX_FMT_RGB555 || c->dstFormat == PIX_FMT_BGR555)
        c->greenDither= ff_dither8[dstY&1];
    else
        c->greenDither= ff_dither4[dstY&1];
    c->redDither= ff_dither8[(dstY+1)&1];
    if (dstY < dstH - 2) {
        const int16_t **lumSrcPtr= (const int16_t **) lumPixBuf + lumBufIndex + firstLumSrcY - lastInLumBuf + vLumBufSize;
        const int16_t **chrUSrcPtr= (const int16_t **) chrUPixBuf + chrBufIndex + firstChrSrcY - lastInChrBuf + vChrBufSize;
        const int16_t **alpSrcPtr= (CONFIG_SWSCALE_ALPHA && alpPixBuf) ? (const int16_t **) alpPixBuf + lumBufIndex + firstLumSrcY - lastInLumBuf + vLumBufSize : NULL;
        int i;
        if (flags & SWS_ACCURATE_RND) {
            int s= APCK_SIZE / 8;
            for (i=0; i<vLumFilterSize; i+=2) {
                *(const void**)&lumMmxFilter[s*i              ]= lumSrcPtr[i  ];
                *(const void**)&lumMmxFilter[s*i+APCK_PTR2/4  ]= lumSrcPtr[i+(vLumFilterSize>1)];
                lumMmxFilter[s*i+APCK_COEF/4  ]=
                lumMmxFilter[s*i+APCK_COEF/4+1]= vLumFilter[dstY*vLumFilterSize + i    ]
                + (vLumFilterSize>1 ? vLumFilter[dstY*vLumFilterSize + i + 1]<<16 : 0);
                if (CONFIG_SWSCALE_ALPHA && alpPixBuf) {
                    *(const void**)&alpMmxFilter[s*i              ]= alpSrcPtr[i  ];
                    *(const void**)&alpMmxFilter[s*i+APCK_PTR2/4  ]= alpSrcPtr[i+(vLumFilterSize>1)];
                    alpMmxFilter[s*i+APCK_COEF/4  ]=
                    alpMmxFilter[s*i+APCK_COEF/4+1]= lumMmxFilter[s*i+APCK_COEF/4  ];
            for (i=0; i<vChrFilterSize; i+=2) {
                *(const void**)&chrMmxFilter[s*i              ]= chrUSrcPtr[i  ];
                *(const void**)&chrMmxFilter[s*i+APCK_PTR2/4  ]= chrUSrcPtr[i+(vChrFilterSize>1)];
                chrMmxFilter[s*i+APCK_COEF/4  ]=
                chrMmxFilter[s*i+APCK_COEF/4+1]= vChrFilter[chrDstY*vChrFilterSize + i    ]
                + (vChrFilterSize>1 ? vChrFilter[chrDstY*vChrFilterSize + i + 1]<<16 : 0);
        } else {
            for (i=0; i<vLumFilterSize; i++) {
                *(const void**)&lumMmxFilter[4*i+0]= lumSrcPtr[i];
                lumMmxFilter[4*i+2]=
                lumMmxFilter[4*i+3]=
                ((uint16_t)vLumFilter[dstY*vLumFilterSize + i])*0x10001;
                if (CONFIG_SWSCALE_ALPHA && alpPixBuf) {
                    *(const void**)&alpMmxFilter[4*i+0]= alpSrcPtr[i];
                    alpMmxFilter[4*i+2]=
                    alpMmxFilter[4*i+3]= lumMmxFilter[4*i+2];
            for (i=0; i<vChrFilterSize; i++) {
                *(const void**)&chrMmxFilter[4*i+0]= chrUSrcPtr[i];
                chrMmxFilter[4*i+2]=
                chrMmxFilter[4*i+3]=
                ((uint16_t)vChrFilter[chrDstY*vChrFilterSize + i])*0x10001;
void FUNC_0(SwsContext *VAR_0, int VAR_1, int VAR_2, int VAR_3,
                           int VAR_4, int VAR_5)
{
    const int VAR_6= VAR_0->VAR_6;
    const int VAR_7= VAR_0->VAR_7;
    int16_t **lumPixBuf= VAR_0->lumPixBuf;
    int16_t **chrUPixBuf= VAR_0->chrUPixBuf;
    int16_t **alpPixBuf= VAR_0->alpPixBuf;
    const int VAR_8= VAR_0->VAR_8;
    const int VAR_9= VAR_0->VAR_9;
    int16_t *vLumFilterPos= VAR_0->vLumFilterPos;
    int16_t *vChrFilterPos= VAR_0->vChrFilterPos;
    int16_t *vLumFilter= VAR_0->vLumFilter;
    int16_t *vChrFilter= VAR_0->vChrFilter;
    int32_t *lumMmxFilter= VAR_0->lumMmxFilter;
    int32_t *chrMmxFilter= VAR_0->chrMmxFilter;
    int32_t av_unused *alpMmxFilter= VAR_0->alpMmxFilter;
    const int VAR_10= VAR_0->VAR_10;
    const int VAR_11= VAR_0->VAR_11;
    const int VAR_12= VAR_1>>VAR_0->chrDstVSubSample;
    const int VAR_13= vLumFilterPos[VAR_1]; 
    const int VAR_14= vChrFilterPos[VAR_12]; 
    VAR_0->blueDither= ff_dither8[VAR_1&1];
    if (VAR_0->dstFormat == PIX_FMT_RGB555 || VAR_0->dstFormat == PIX_FMT_BGR555)
        VAR_0->greenDither= ff_dither8[VAR_1&1];
    else
        VAR_0->greenDither= ff_dither4[VAR_1&1];
    VAR_0->redDither= ff_dither8[(VAR_1+1)&1];
    if (VAR_1 < VAR_6 - 2) {
        const int16_t **VAR_15= (const int16_t **) lumPixBuf + VAR_2 + VAR_13 - VAR_4 + VAR_8;
        const int16_t **VAR_16= (const int16_t **) chrUPixBuf + VAR_3 + VAR_14 - VAR_5 + VAR_9;
        const int16_t **VAR_17= (CONFIG_SWSCALE_ALPHA && alpPixBuf) ? (const int16_t **) alpPixBuf + VAR_2 + VAR_13 - VAR_4 + VAR_8 : NULL;
        int VAR_18;
        if (VAR_7 & SWS_ACCURATE_RND) {
            int VAR_19= APCK_SIZE / 8;
            for (VAR_18=0; VAR_18<VAR_10; VAR_18+=2) {
                *(const void**)&lumMmxFilter[VAR_19*VAR_18              ]= VAR_15[VAR_18  ];
                *(const void**)&lumMmxFilter[VAR_19*VAR_18+APCK_PTR2/4  ]= VAR_15[VAR_18+(VAR_10>1)];
                lumMmxFilter[VAR_19*VAR_18+APCK_COEF/4  ]=
                lumMmxFilter[VAR_19*VAR_18+APCK_COEF/4+1]= vLumFilter[VAR_1*VAR_10 + VAR_18    ]
                + (VAR_10>1 ? vLumFilter[VAR_1*VAR_10 + VAR_18 + 1]<<16 : 0);
                if (CONFIG_SWSCALE_ALPHA && alpPixBuf) {
                    *(const void**)&alpMmxFilter[VAR_19*VAR_18              ]= VAR_17[VAR_18  ];
                    *(const void**)&alpMmxFilter[VAR_19*VAR_18+APCK_PTR2/4  ]= VAR_17[VAR_18+(VAR_10>1)];
                    alpMmxFilter[VAR_19*VAR_18+APCK_COEF/4  ]=
                    alpMmxFilter[VAR_19*VAR_18+APCK_COEF/4+1]= lumMmxFilter[VAR_19*VAR_18+APCK_COEF/4  ];
            for (VAR_18=0; VAR_18<VAR_11; VAR_18+=2) {
                *(const void**)&chrMmxFilter[VAR_19*VAR_18              ]= VAR_16[VAR_18  ];
                *(const void**)&chrMmxFilter[VAR_19*VAR_18+APCK_PTR2/4  ]= VAR_16[VAR_18+(VAR_11>1)];
                chrMmxFilter[VAR_19*VAR_18+APCK_COEF/4  ]=
                chrMmxFilter[VAR_19*VAR_18+APCK_COEF/4+1]= vChrFilter[VAR_12*VAR_11 + VAR_18    ]
                + (VAR_11>1 ? vChrFilter[VAR_12*VAR_11 + VAR_18 + 1]<<16 : 0);
        } else {
            for (VAR_18=0; VAR_18<VAR_10; VAR_18++) {
                *(const void**)&lumMmxFilter[4*VAR_18+0]= VAR_15[VAR_18];
                lumMmxFilter[4*VAR_18+2]=
                lumMmxFilter[4*VAR_18+3]=
                ((uint16_t)vLumFilter[VAR_1*VAR_10 + VAR_18])*0x10001;
                if (CONFIG_SWSCALE_ALPHA && alpPixBuf) {
                    *(const void**)&alpMmxFilter[4*VAR_18+0]= VAR_17[VAR_18];
                    alpMmxFilter[4*VAR_18+2]=
                    alpMmxFilter[4*VAR_18+3]= lumMmxFilter[4*VAR_18+2];
            for (VAR_18=0; VAR_18<VAR_11; VAR_18++) {
                *(const void**)&chrMmxFilter[4*VAR_18+0]= VAR_16[VAR_18];
                chrMmxFilter[4*VAR_18+2]=
                chrMmxFilter[4*VAR_18+3]=
                ((uint16_t)vChrFilter[VAR_12*VAR_11 + VAR_18])*0x10001;
void FUNC_0(SwsContext *VAR_0, int VAR_1, int VAR_2, int VAR_3,
int VAR_4, int VAR_5)
{ const int VAR_6= VAR_0->VAR_6; const int VAR_7= VAR_0->VAR_7; int16_t **lumPixBuf= VAR_0->lumPixBuf; int16_t **chrUPixBuf= VAR_0->chrUPixBuf; int16_t **alpPixBuf= VAR_0->alpPixBuf; const int VAR_8= VAR_0->VAR_8; const int VAR_9= VAR_0->VAR_9; int16_t *vLumFilterPos= VAR_0->vLumFilterPos; int16_t *vChrFilterPos= VAR_0->vChrFilterPos; int16_t *vLumFilter= VAR_0->vLumFilter; int16_t *vChrFilter= VAR_0->vChrFilter; int32_t *lumMmxFilter= VAR_0->lumMmxFilter; int32_t *chrMmxFilter= VAR_0->chrMmxFilter; int32_t av_unused *alpMmxFilter= VAR_0->alpMmxFilter; const int VAR_10= VAR_0->VAR_10; const int VAR_11= VAR_0->VAR_11; const int VAR_12= VAR_1>>VAR_0->chrDstVSubSample; const int VAR_13= vLumFilterPos[VAR_1]; const int VAR_14= vChrFilterPos[VAR_12]; VAR_0->blueDither= ff_dither8[VAR_1&1]; if (VAR_0->dstFormat == PIX_FMT_RGB555 || VAR_0->dstFormat == PIX_FMT_BGR555)
VAR_0->greenDither= ff_dither8[VAR_1&1]; else
VAR_0->greenDither= ff_dither4[VAR_1&1]; VAR_0->redDither= ff_dither8[(VAR_1+1)&1]; if (VAR_1 < VAR_6 - 2) { const int16_t **VAR_15= (const int16_t **) lumPixBuf + VAR_2 + VAR_13 - VAR_4 + VAR_8; const int16_t **VAR_16= (const int16_t **) chrUPixBuf + VAR_3 + VAR_14 - VAR_5 + VAR_9; const int16_t **VAR_17= (CONFIG_SWSCALE_ALPHA && alpPixBuf) ? (const int16_t **) alpPixBuf + VAR_2 + VAR_13 - VAR_4 + VAR_8 : NULL; int VAR_18; if (VAR_7 & SWS_ACCURATE_RND) { int VAR_19= APCK_SIZE / 8; for (VAR_18=0; VAR_18<VAR_10; VAR_18+=2) { *(const void**)&lumMmxFilter[VAR_19*VAR_18              ]= VAR_15[VAR_18  ]; *(const void**)&lumMmxFilter[VAR_19*VAR_18+APCK_PTR2/4  ]= VAR_15[VAR_18+(VAR_10>1)]; lumMmxFilter[VAR_19*VAR_18+APCK_COEF/4  ]=
lumMmxFilter[VAR_19*VAR_18+APCK_COEF/4+1]= vLumFilter[VAR_1*VAR_10 + VAR_18    ]
+ (VAR_10>1 ? vLumFilter[VAR_1*VAR_10 + VAR_18 + 1]<<16 : 0); if (CONFIG_SWSCALE_ALPHA && alpPixBuf) { *(const void**)&alpMmxFilter[VAR_19*VAR_18              ]= VAR_17[VAR_18  ]; *(const void**)&alpMmxFilter[VAR_19*VAR_18+APCK_PTR2/4  ]= VAR_17[VAR_18+(VAR_10>1)]; alpMmxFilter[VAR_19*VAR_18+APCK_COEF/4  ]=
alpMmxFilter[VAR_19*VAR_18+APCK_COEF/4+1]= lumMmxFilter[VAR_19*VAR_18+APCK_COEF/4  ]; for (VAR_18=0; VAR_18<VAR_11; VAR_18+=2) { *(const void**)&chrMmxFilter[VAR_19*VAR_18              ]= VAR_16[VAR_18  ]; *(const void**)&chrMmxFilter[VAR_19*VAR_18+APCK_PTR2/4  ]= VAR_16[VAR_18+(VAR_11>1)]; chrMmxFilter[VAR_19*VAR_18+APCK_COEF/4  ]=
chrMmxFilter[VAR_19*VAR_18+APCK_COEF/4+1]= vChrFilter[VAR_12*VAR_11 + VAR_18    ]
+ (VAR_11>1 ? vChrFilter[VAR_12*VAR_11 + VAR_18 + 1]<<16 : 0); } else { for (VAR_18=0; VAR_18<VAR_10; VAR_18++) { *(const void**)&lumMmxFilter[4*VAR_18+0]= VAR_15[VAR_18]; lumMmxFilter[4*VAR_18+2]=
lumMmxFilter[4*VAR_18+3]=
((uint16_t)vLumFilter[VAR_1*VAR_10 + VAR_18])*0x10001; if (CONFIG_SWSCALE_ALPHA && alpPixBuf) { *(const void**)&alpMmxFilter[4*VAR_18+0]= VAR_17[VAR_18]; alpMmxFilter[4*VAR_18+2]=
alpMmxFilter[4*VAR_18+3]= lumMmxFilter[4*VAR_18+2]; for (VAR_18=0; VAR_18<VAR_11; VAR_18++) { *(const void**)&chrMmxFilter[4*VAR_18+0]= VAR_16[VAR_18]; chrMmxFilter[4*VAR_18+2]=
chrMmxFilter[4*VAR_18+3]=
((uint16_t)vChrFilter[VAR_12*VAR_11 + VAR_18])*0x10001;