1 void
f(int n,int ppt,int xrot)2 f (int n, int ppt, int 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