pWorkrow = pData->pWorkrow + 1;
pWorkrow = pData->pWorkrow + pData->iPixelofs;
mng_retcode store_idx2 (mng_datap pData){  mng_imagedatap pBuf = (mng_imagedatap)pData->pStorebuf;  mng_uint8p     pWorkrow;  mng_uint8p     pOutrow;  mng_int32      iX;  mng_uint8      iB;  mng_uint8      iM;  mng_uint32     iS;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_STORE_IDX2, MNG_LC_START)#endif  pWorkrow = pData->pWorkrow + 1;      /* temporary work pointers */  pOutrow  = pBuf->pImgdata + (pData->iRow * pBuf->iRowsize   ) +                              (pData->iCol * pBuf->iSamplesize);  iM       = 0;                        /* start at pixel 0 */  iB       = 0;  iS       = 0;  for (iX = 0; iX < pData->iRowsamples; iX++)  {    if (!iM)                           /* mask underflow ? */    {      iB = *pWorkrow;                  /* get next input-byte */      pWorkrow++;      iM = 0xC0;      iS = 6;    }                                       /* store the index */    *pOutrow = (mng_uint8)((iB & iM) >> iS);    pOutrow += pData->iColinc;         /* next pixel */    iM >>= 2;    iS -= 2;  }#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_STORE_IDX2, MNG_LC_END)#endif  return MNG_NOERROR;}