1void 2f (n, ppt, xrot) 3{ 4 int tileWidth; 5 int nlwSrc; 6 int srcx; 7 int v3, v4; 8 register unsigned long ca1, cx1, ca2, cx2; 9 unsigned long *pSrcLine; 10 register unsigned long *pDst; 11 register unsigned long *pSrc; 12 register unsigned long b, tmp; 13 unsigned long tileEndMask; 14 int v1, v2; 15 int tileEndPart; 16 int needFirst; 17 tileEndPart = 0; 18 v1 = tileEndPart << 5; 19 v2 = 32 - v1; 20 while (n--) 21 { 22 if ((srcx = (ppt - xrot) % tileWidth) < 0) 23 if (needFirst) 24 if (nlwSrc == 1) 25 { 26 tmp = b; 27 if (tileEndPart) 28 b = (*pSrc & tileEndMask) | (*pSrcLine >> v1); 29 } 30 if (tileEndPart) 31 b = (tmp << v1) | (b >> v2); 32 if (v4 != 32) 33 *pDst = (*pDst & ((tmp << v3) | (b >> v4) & ca1 ^ cx1) 34 ^ (((tmp << v3) | (b >> v4)) & ca2 ^ cx2)); 35 *pDst = *pDst & tmp; 36 } 37} 38