/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: February 21, 1992 11:33:32 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: RasterOpGreenbayImpl, module: RasterOpGreenbayImpl */ 
/* switches: cfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITOR(x, y) (((word)(x)) | ((word)(y)))
#define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y))
static char versionStamp[] = "@(#)mob←version [2546705687,3216475025] RasterOpGreenbayImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q1392();
static void RasterOpGreenbayImpl←P0();
static void Pack←P60();
static void Unpack←P120();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\227\313\245\027\300\277\267\203\221\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\207\330\332\257\300\255\011\025\200\100\150\000\000"};
static struct {
   word f0[4]; word f4; word f5; word f6; 
   word f7; word f8; word f9[2]; 
   } globalframe = {
   {0}, (word) Unpack←P120, 0, (word) Pack←P60, 
   0, (word) RasterOpGreenbayImpl←P0, {0}
   };

static void NoName←Q1392()
   {
   register ptr gf←c0142 =  (ptr) &globalframe;
   word var←c9888;
   (void) XR←DeclareGlobalFrame((word) "RasterOpGreenbayImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (
         ( (bPt) gf←c0142)+32)/* var←c7296 */ );
   var←c9888 = (word) XR←ExportInterface((word) "RasterOp", (word) XR←GetTypeIndexS((word) (&string2)), 8);
   (* (( (ptr) gf←c0142)+10)/* var←c9856 */  ) = var←c9888;
   (void) XR←ExportProcS(var←c9888, (word) (( (bPt) gf←c0142)+24)/* var←c7264 */ , 1310724);
   (void) XR←ExportProcS(var←c9888, (word) (( (bPt) gf←c0142)+16)/* var←c7232 */ , 1310980);
   }

static void RasterOpGreenbayImpl←P0(formal←c07, formal←c06)
   word formal←c07;
   word formal←c06;
   {
   /* RasterOpGreenbayImpl: */ 
   }

static void Pack←P60(dst←v2604, src←v2632, bitsPerSample←v2660, nSamples←v2688)
   W2 dst←v2604;
   word src←v2632;
   word bitsPerSample←v2660;
   word nSamples←v2688;
   {
   word p←v2884;
   word h←v2912;
   word g←v2940;
   word j←v2968 = 0;
   word count←v2996;
   word bps←v3024;
   word m←v3052;
   word bitsPerSample2←v3080;
   word bitsPerSample4←v3108;
   word bitsPerSample8←v3136;
   /* Pack: */ 
SOURCE(186, 1964)
SOURCE(317, 60)
   p←v2884 = dst←v2604.f0;
SOURCE(379, 37)
   h←v2912 = (word) Basics←BITSHIFT((*  (ptr) p←v2884 ), (dst←v2604.f1 - 32));
SOURCE(418, 21)
   g←v2940 = dst←v2604.f1;
SOURCE(503, 26)
   count←v2996 = nSamples←v2688;
SOURCE(531, 29)
   bps←v3024 = bitsPerSample←v2660;
SOURCE(562, 29)
   m←v3052 = ((word) XRM←BITLSHIFT(1, bps←v3024) - 1);
SOURCE(593, 54)
   bitsPerSample2←v3080 = (bitsPerSample←v2660 + bitsPerSample←v2660);
SOURCE(649, 56)
   bitsPerSample4←v3108 = (bitsPerSample2←v3080 + bitsPerSample2←v3080);
SOURCE(707, 56)
   bitsPerSample8←v3136 = (bitsPerSample4←v3108 + bitsPerSample4←v3108);
SOURCE(875, 863)
   lab←L100002: ;
   if ((count←v2996 >= 8)) {
      }
   else {
      goto lab←L100000;
      };
SOURCE(895, 703)
   {
      word var←c7328;
      var←c7328 = (32 - g←v2940);
      if ((var←c7328 >= bitsPerSample8←v3136)) {
SOURCE(946, 22)
         {
            word var←c7360;
            word w←v7156;
            word s←v7184;
            w←v7156 = h←v2912;
            s←v7184 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
            {
               word var←c7424;
               word var←c7456;
               var←c7424 = (word) XRM←BITLSHIFT(w←v7156, bps←v3024);
               var←c7456 = (word) XRM←BITAND(s←v7184, m←v3052);
               var←c7360 = (word) XRM←BITOR(var←c7424, var←c7456);
               };
            h←v2912 = var←c7360;
            };
SOURCE(970, 24)
         {
            word var←c7488;
            word w←v7080;
            word s←v7108;
            w←v7080 = h←v2912;
            s←v7108 = (* (( (ptr) src←v2632)+(j←v2968 + 1)) );
SOURCE(824, 48)
            {
               word var←c7552;
               word var←c7584;
               var←c7552 = (word) XRM←BITLSHIFT(w←v7080, bps←v3024);
               var←c7584 = (word) XRM←BITAND(s←v7108, m←v3052);
               var←c7488 = (word) XRM←BITOR(var←c7552, var←c7584);
               };
            h←v2912 = var←c7488;
            };
SOURCE(996, 24)
         {
            word var←c7616;
            word w←v7004;
            word s←v7032;
            w←v7004 = h←v2912;
            s←v7032 = (* (( (ptr) src←v2632)+(j←v2968 + 2)) );
SOURCE(824, 48)
            {
               word var←c7680;
               word var←c7712;
               var←c7680 = (word) XRM←BITLSHIFT(w←v7004, bps←v3024);
               var←c7712 = (word) XRM←BITAND(s←v7032, m←v3052);
               var←c7616 = (word) XRM←BITOR(var←c7680, var←c7712);
               };
            h←v2912 = var←c7616;
            };
SOURCE(1022, 24)
         {
            word var←c7744;
            word w←v6928;
            word s←v6956;
            w←v6928 = h←v2912;
            s←v6956 = (* (( (ptr) src←v2632)+(j←v2968 + 3)) );
SOURCE(824, 48)
            {
               word var←c7808;
               word var←c7840;
               var←c7808 = (word) XRM←BITLSHIFT(w←v6928, bps←v3024);
               var←c7840 = (word) XRM←BITAND(s←v6956, m←v3052);
               var←c7744 = (word) XRM←BITOR(var←c7808, var←c7840);
               };
            h←v2912 = var←c7744;
            };
SOURCE(1048, 24)
         {
            word var←c7872;
            word w←v6852;
            word s←v6880;
            w←v6852 = h←v2912;
            s←v6880 = (* (( (ptr) src←v2632)+(j←v2968 + 4)) );
SOURCE(824, 48)
            {
               word var←c7936;
               word var←c7968;
               var←c7936 = (word) XRM←BITLSHIFT(w←v6852, bps←v3024);
               var←c7968 = (word) XRM←BITAND(s←v6880, m←v3052);
               var←c7872 = (word) XRM←BITOR(var←c7936, var←c7968);
               };
            h←v2912 = var←c7872;
            };
SOURCE(1074, 24)
         {
            word var←c8000;
            word w←v6776;
            word s←v6804;
            w←v6776 = h←v2912;
            s←v6804 = (* (( (ptr) src←v2632)+(j←v2968 + 5)) );
SOURCE(824, 48)
            {
               word var←c8064;
               word var←c8096;
               var←c8064 = (word) XRM←BITLSHIFT(w←v6776, bps←v3024);
               var←c8096 = (word) XRM←BITAND(s←v6804, m←v3052);
               var←c8000 = (word) XRM←BITOR(var←c8064, var←c8096);
               };
            h←v2912 = var←c8000;
            };
SOURCE(1100, 24)
         {
            word var←c8128;
            word w←v6700;
            word s←v6728;
            w←v6700 = h←v2912;
            s←v6728 = (* (( (ptr) src←v2632)+(j←v2968 + 6)) );
SOURCE(824, 48)
            {
               word var←c8192;
               word var←c8224;
               var←c8192 = (word) XRM←BITLSHIFT(w←v6700, bps←v3024);
               var←c8224 = (word) XRM←BITAND(s←v6728, m←v3052);
               var←c8128 = (word) XRM←BITOR(var←c8192, var←c8224);
               };
            h←v2912 = var←c8128;
            };
SOURCE(1126, 24)
         {
            word var←c8256;
            word w←v6624;
            word s←v6652;
            w←v6624 = h←v2912;
            s←v6652 = (* (( (ptr) src←v2632)+(j←v2968 + 7)) );
SOURCE(824, 48)
            {
               word var←c8320;
               word var←c8352;
               var←c8320 = (word) XRM←BITLSHIFT(w←v6624, bps←v3024);
               var←c8352 = (word) XRM←BITAND(s←v6652, m←v3052);
               var←c8256 = (word) XRM←BITOR(var←c8320, var←c8352);
               };
            h←v2912 = var←c8256;
            };
SOURCE(1152, 17)
         count←v2996 = (count←v2996 - 8);
SOURCE(1171, 9)
         j←v2968 = (j←v2968 + 8);
SOURCE(1182, 22)
         g←v2940 = (g←v2940 + bitsPerSample8←v3136);
         goto endif03;
         };
      if ((var←c7328 >= bitsPerSample4←v3108)) {
SOURCE(1232, 22)
         {
            word var←c8384;
            word w←v6548;
            word s←v6576;
            w←v6548 = h←v2912;
            s←v6576 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
            {
               word var←c8448;
               word var←c8480;
               var←c8448 = (word) XRM←BITLSHIFT(w←v6548, bps←v3024);
               var←c8480 = (word) XRM←BITAND(s←v6576, m←v3052);
               var←c8384 = (word) XRM←BITOR(var←c8448, var←c8480);
               };
            h←v2912 = var←c8384;
            };
SOURCE(1256, 24)
         {
            word var←c8512;
            word w←v6472;
            word s←v6500;
            w←v6472 = h←v2912;
            s←v6500 = (* (( (ptr) src←v2632)+(j←v2968 + 1)) );
SOURCE(824, 48)
            {
               word var←c8576;
               word var←c8608;
               var←c8576 = (word) XRM←BITLSHIFT(w←v6472, bps←v3024);
               var←c8608 = (word) XRM←BITAND(s←v6500, m←v3052);
               var←c8512 = (word) XRM←BITOR(var←c8576, var←c8608);
               };
            h←v2912 = var←c8512;
            };
SOURCE(1282, 24)
         {
            word var←c8640;
            word w←v6396;
            word s←v6424;
            w←v6396 = h←v2912;
            s←v6424 = (* (( (ptr) src←v2632)+(j←v2968 + 2)) );
SOURCE(824, 48)
            {
               word var←c8704;
               word var←c8736;
               var←c8704 = (word) XRM←BITLSHIFT(w←v6396, bps←v3024);
               var←c8736 = (word) XRM←BITAND(s←v6424, m←v3052);
               var←c8640 = (word) XRM←BITOR(var←c8704, var←c8736);
               };
            h←v2912 = var←c8640;
            };
SOURCE(1308, 24)
         {
            word var←c8768;
            word w←v6320;
            word s←v6348;
            w←v6320 = h←v2912;
            s←v6348 = (* (( (ptr) src←v2632)+(j←v2968 + 3)) );
SOURCE(824, 48)
            {
               word var←c8832;
               word var←c8864;
               var←c8832 = (word) XRM←BITLSHIFT(w←v6320, bps←v3024);
               var←c8864 = (word) XRM←BITAND(s←v6348, m←v3052);
               var←c8768 = (word) XRM←BITOR(var←c8832, var←c8864);
               };
            h←v2912 = var←c8768;
            };
SOURCE(1334, 17)
         count←v2996 = (count←v2996 - 4);
SOURCE(1353, 9)
         j←v2968 = (j←v2968 + 4);
SOURCE(1364, 22)
         g←v2940 = (g←v2940 + bitsPerSample4←v3108);
         goto endif03;
         };
      if ((var←c7328 >= bitsPerSample2←v3080)) {
SOURCE(1414, 22)
         {
            word var←c8896;
            word w←v6244;
            word s←v6272;
            w←v6244 = h←v2912;
            s←v6272 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
            {
               word var←c8960;
               word var←c8992;
               var←c8960 = (word) XRM←BITLSHIFT(w←v6244, bps←v3024);
               var←c8992 = (word) XRM←BITAND(s←v6272, m←v3052);
               var←c8896 = (word) XRM←BITOR(var←c8960, var←c8992);
               };
            h←v2912 = var←c8896;
            };
SOURCE(1438, 24)
         {
            word var←c9024;
            word w←v6168;
            word s←v6196;
            w←v6168 = h←v2912;
            s←v6196 = (* (( (ptr) src←v2632)+(j←v2968 + 1)) );
SOURCE(824, 48)
            {
               word var←c9088;
               word var←c9120;
               var←c9088 = (word) XRM←BITLSHIFT(w←v6168, bps←v3024);
               var←c9120 = (word) XRM←BITAND(s←v6196, m←v3052);
               var←c9024 = (word) XRM←BITOR(var←c9088, var←c9120);
               };
            h←v2912 = var←c9024;
            };
SOURCE(1464, 17)
         count←v2996 = (count←v2996 - 2);
SOURCE(1483, 9)
         j←v2968 = (j←v2968 + 2);
SOURCE(1494, 22)
         g←v2940 = (g←v2940 + bitsPerSample2←v3080);
         goto endif03;
         };
      if ((var←c7328 >= bps←v3024)) {
SOURCE(1533, 22)
         {
            word var←c9152;
            word w←v6092;
            word s←v6120;
            w←v6092 = h←v2912;
            s←v6120 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
            {
               word var←c9216;
               word var←c9248;
               var←c9216 = (word) XRM←BITLSHIFT(w←v6092, bps←v3024);
               var←c9248 = (word) XRM←BITAND(s←v6120, m←v3052);
               var←c9152 = (word) XRM←BITOR(var←c9216, var←c9248);
               };
            h←v2912 = var←c9152;
            };
SOURCE(1557, 17)
         count←v2996 = (count←v2996 - 1);
SOURCE(1576, 9)
         j←v2968 = (j←v2968 + 1);
SOURCE(1587, 11)
         g←v2940 = (g←v2940 + bps←v3024);
         goto endif03;
         };
SOURCE(1614, 4)
      goto lab←L100001;
      endif03: ;
      };
SOURCE(1685, 53)
   if ((g←v2940 == 32)) {
SOURCE(1703, 8)
      (*  (ptr) p←v2884 ) = h←v2912;
SOURCE(1713, 18)
      p←v2884 = (p←v2884 + 4);
SOURCE(1733, 5)
      g←v2940 = 0;
      };
   goto lab←L100002;
   lab←L100000: ;
   lab←L100001: ;
SOURCE(1752, 309)
   lab←L100020: ;
   if ((j←v2968 != nSamples←v2688)) {
      }
   else {
      goto lab←L100018;
      };
SOURCE(1774, 273)
   {
      word var←c9280;
      var←c9280 = (32 - g←v2940);
      if ((var←c9280 >= bps←v3024)) {
SOURCE(1804, 22)
         {
            word var←c9312;
            word w←v6016;
            word s←v6044;
            w←v6016 = h←v2912;
            s←v6044 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(824, 48)
            {
               word var←c9376;
               word var←c9408;
               var←c9376 = (word) XRM←BITLSHIFT(w←v6016, bps←v3024);
               var←c9408 = (word) XRM←BITAND(s←v6044, m←v3052);
               var←c9312 = (word) XRM←BITOR(var←c9376, var←c9408);
               };
            h←v2912 = var←c9312;
            };
SOURCE(1828, 11)
         g←v2940 = (g←v2940 + bps←v3024);
         }
      else {
         if ((var←c9280 == 0)) {
SOURCE(1853, 8)
            (*  (ptr) p←v2884 ) = h←v2912;
SOURCE(1863, 18)
            p←v2884 = (p←v2884 + 4);
SOURCE(1883, 10)
            h←v2912 = (* (( (ptr) src←v2632)+j←v2968) );
SOURCE(1895, 7)
            g←v2940 = bps←v3024;
            }
         else {
SOURCE(1918, 131)
            {
               word k←v3428;
SOURCE(1920, 27)
               k←v3428 = (word) XRM←BITAND((* (( (ptr) src←v2632)+j←v2968) ), m←v3052);
SOURCE(1949, 52)
               {
                  word var←c9440;
                  var←c9440 = ((word) XRM←BITLSHIFT(h←v2912, (32 - g←v2940)) + (word) XRM←BITRSHIFT(k←v3428, ((bps←v3024 + g←v2940) - 32)));
                  (*  (ptr) p←v2884 ) = var←c9440;
                  };
SOURCE(2003, 18)
               p←v2884 = (p←v2884 + 4);
SOURCE(2023, 5)
               h←v2912 = k←v3428;
SOURCE(2030, 17)
               g←v2940 = ((g←v2940 + bps←v3024) - 32);
               };
            };
         };
      };
SOURCE(2052, 9)
   j←v2968 = (j←v2968 + 1);
   goto lab←L100020;
   lab←L100018: ;
SOURCE(2072, 78)
   if ((g←v2940 != 0)) {
SOURCE(2088, 62)
      {
         word var←c9472;
         {
            word var←c9504;
            word var←c0143;
            var←c9504 = ((word) XRM←BITLSHIFT(1, (32 - g←v2940)) - 1);
            var←c0143 = (word) XRM←BITAND((*  (ptr) p←v2884 ), var←c9504);
            var←c9472 = ((word) XRM←BITLSHIFT(h←v2912, (32 - g←v2940)) + var←c0143);
            };
         (*  (ptr) p←v2884 ) = var←c9472;
         };
      };
   }

static void Unpack←P120(dst←v2760, src←v2788, bitsPerSample←v2816, nSamples←v2844)
   word dst←v2760;
   W2 src←v2788;
   word bitsPerSample←v2816;
   word nSamples←v2844;
   {
   /* Unpack: */ 
SOURCE(2159, 3466)
   if ((nSamples←v2844 == 0)) {
      }
   else {
      if ((bitsPerSample←v2816 == 1)) {
SOURCE(2356, 1453)
         {
            word wordPointer←v3472;
            word srcp←v3500;
            word bit←v3528;
            word word←v3556 = 0;
            word count←v3584;
SOURCE(2358, 45)
            wordPointer←v3472 = (word) dst←v2760;
SOURCE(2405, 37)
            srcp←v3500 = src←v2788.f0;
SOURCE(2444, 23)
            bit←v3528 = src←v2788.f1;
SOURCE(2485, 26)
            count←v3584 = nSamples←v2844;
SOURCE(2513, 223)
            if ((bit←v3528 != 0)) {
SOURCE(2529, 28)
               word←v3556 = (word) XRM←BITLSHIFT((*  (ptr) srcp←v3500 ), bit←v3528);
SOURCE(2559, 24)
               srcp←v3500 = (srcp←v3500 + 4);
SOURCE(2585, 151)
               lab←L100024: ;
               if ( ( (count←v3584 != 0) ? (bit←v3528 != 32) : 0 ) ) {
                  }
               else {
                  goto lab←L100022;
                  };
SOURCE(2614, 37)
               (*  (ptr) wordPointer←v3472 ) = (word) XRM←BITRSHIFT(word←v3556, 31);
SOURCE(2653, 15)
               count←v3584 = (count←v3584 - 1);
SOURCE(2670, 11)
               bit←v3528 = (bit←v3528 + 1);
SOURCE(2683, 13)
               word←v3556 = (word←v3556 << 1);
SOURCE(2698, 38)
               wordPointer←v3472 = (wordPointer←v3472 + 4);
               goto lab←L100024;
               lab←L100022: ;
               };
SOURCE(2750, 9)
            bit←v3528 = 32;
SOURCE(2761, 818)
            lab←L100027: ;
            if ((count←v3584 >= 32)) {
               }
            else {
               goto lab←L100025;
               };
            {
               word a←v3652;
               word lp←v3680;
               word b←v3708;
SOURCE(2780, 64)
               a←v3652 = wordPointer←v3472;
SOURCE(2846, 67)
               lp←v3680 = srcp←v3500;
SOURCE(2915, 39)
               b←v3708 = (*  (ptr) lp←v3680 );
SOURCE(2956, 13)
               (*  (ptr) a←v3652 ) = ((int)b←v3708<0);
SOURCE(2973, 13)
               (* (( (ptr) a←v3652)+1) ) = (((unsigned)b←v3708 << 1) >> 31);
SOURCE(2990, 13)
               (* (( (ptr) a←v3652)+2) ) = (((unsigned)b←v3708 << 2) >> 31);
SOURCE(3007, 11)
               (* (( (ptr) a←v3652)+3) ) = (((unsigned)b←v3708 << 3) >> 31);
SOURCE(3022, 13)
               (* (( (ptr) a←v3652)+4) ) = (((unsigned)b←v3708 << 4) >> 31);
SOURCE(3039, 13)
               (* (( (ptr) a←v3652)+5) ) = (((unsigned)b←v3708 << 5) >> 31);
SOURCE(3056, 13)
               (* (( (ptr) a←v3652)+6) ) = (((unsigned)b←v3708 << 6) >> 31);
SOURCE(3073, 11)
               (* (( (ptr) a←v3652)+7) ) = (((unsigned)b←v3708 << 7) >> 31);
SOURCE(3088, 13)
               (* (( (ptr) a←v3652)+8) ) = (((unsigned)b←v3708 << 8) >> 31);
SOURCE(3105, 13)
               (* (( (ptr) a←v3652)+9) ) = (((unsigned)b←v3708 << 9) >> 31);
SOURCE(3122, 13)
               (* (( (ptr) a←v3652)+10) ) = (((unsigned)b←v3708 << 10) >> 31);
SOURCE(3137, 13)
               (* (( (ptr) a←v3652)+11) ) = (((unsigned)b←v3708 << 11) >> 31);
SOURCE(3152, 13)
               (* (( (ptr) a←v3652)+12) ) = (((unsigned)b←v3708 << 12) >> 31);
SOURCE(3167, 13)
               (* (( (ptr) a←v3652)+13) ) = (((unsigned)b←v3708 << 13) >> 31);
SOURCE(3182, 13)
               (* (( (ptr) a←v3652)+14) ) = (((unsigned)b←v3708 << 14) >> 31);
SOURCE(3197, 13)
               (* (( (ptr) a←v3652)+15) ) = (((unsigned)b←v3708 << 15) >> 31);
SOURCE(3212, 13)
               (* (( (ptr) a←v3652)+16) ) = (((unsigned)b←v3708 << 16) >> 31);
SOURCE(3227, 13)
               (* (( (ptr) a←v3652)+17) ) = (((unsigned)b←v3708 << 17) >> 31);
SOURCE(3242, 13)
               (* (( (ptr) a←v3652)+18) ) = (((unsigned)b←v3708 << 18) >> 31);
SOURCE(3257, 13)
               (* (( (ptr) a←v3652)+19) ) = (((unsigned)b←v3708 << 19) >> 31);
SOURCE(3272, 13)
               (* (( (ptr) a←v3652)+20) ) = (((unsigned)b←v3708 << 20) >> 31);
SOURCE(3287, 13)
               (* (( (ptr) a←v3652)+21) ) = (((unsigned)b←v3708 << 21) >> 31);
SOURCE(3302, 13)
               (* (( (ptr) a←v3652)+22) ) = (((unsigned)b←v3708 << 22) >> 31);
SOURCE(3317, 13)
               (* (( (ptr) a←v3652)+23) ) = (((unsigned)b←v3708 << 23) >> 31);
SOURCE(3332, 13)
               (* (( (ptr) a←v3652)+24) ) = (((unsigned)b←v3708 << 24) >> 31);
SOURCE(3347, 13)
               (* (( (ptr) a←v3652)+25) ) = (((unsigned)b←v3708 << 25) >> 31);
SOURCE(3362, 13)
               (* (( (ptr) a←v3652)+26) ) = (((unsigned)b←v3708 << 26) >> 31);
SOURCE(3377, 13)
               (* (( (ptr) a←v3652)+27) ) = (((unsigned)b←v3708 << 27) >> 31);
SOURCE(3392, 13)
               (* (( (ptr) a←v3652)+28) ) = (((unsigned)b←v3708 << 28) >> 31);
SOURCE(3407, 13)
               (* (( (ptr) a←v3652)+29) ) = (((unsigned)b←v3708 << 29) >> 31);
SOURCE(3422, 13)
               (* (( (ptr) a←v3652)+30) ) = (((unsigned)b←v3708 << 30) >> 31);
SOURCE(3437, 13)
               (* (( (ptr) a←v3652)+31) ) = (b←v3708 & 1);
SOURCE(3452, 55)
               wordPointer←v3472 = (wordPointer←v3472 + 128);
SOURCE(3509, 18)
               count←v3584 = (count←v3584 - 32);
SOURCE(3529, 50)
               srcp←v3500 = (srcp←v3500 + 4);
               };
            goto lab←L100027;
            lab←L100025: ;
SOURCE(3590, 208)
            lab←L100030: ;
            if ((count←v3584 != 0)) {
               }
            else {
               goto lab←L100028;
               };
SOURCE(3607, 66)
            if ((bit←v3528 == 32)) {
SOURCE(3626, 7)
               bit←v3528 = 0;
SOURCE(3635, 12)
               word←v3556 = (*  (ptr) srcp←v3500 );
SOURCE(3649, 24)
               srcp←v3500 = (srcp←v3500 + 4);
               };
SOURCE(3676, 37)
            (*  (ptr) wordPointer←v3472 ) = (word) XRM←BITRSHIFT(word←v3556, 31);
SOURCE(3715, 15)
            count←v3584 = (count←v3584 - 1);
SOURCE(3732, 13)
            word←v3556 = (word←v3556 << 1);
SOURCE(3747, 38)
            wordPointer←v3472 = (wordPointer←v3472 + 4);
SOURCE(3787, 11)
            bit←v3528 = (bit←v3528 + 1);
            goto lab←L100030;
            lab←L100028: ;
            };
         }
      else {
         if ( ( (bitsPerSample←v2816 == 8) ? ((src←v2788.f1 & 7) == 0) : 0 ) ) {
SOURCE(3863, 1113)
            {
               word wordPointer←v4016;
               word srcp←v4072;
               word byte←v4100;
               word count←v4128;
SOURCE(3865, 45)
               wordPointer←v4016 = (word) dst←v2760;
SOURCE(4044, 78)
               srcp←v4072 = src←v2788.f0;
SOURCE(4124, 26)
               byte←v4100 = (src←v2788.f1 >> 3);
SOURCE(4152, 26)
               count←v4128 = nSamples←v2844;
SOURCE(4180, 228)
               if ((byte←v4100 != 0)) {
SOURCE(4197, 135)
                  lab←L100033: ;
                  if ( ( (count←v4128 != 0) ? (byte←v4100 != 8) : 0 ) ) {
                     }
                  else {
                     goto lab←L100031;
                     };
SOURCE(4233, 25)
                  (*  (ptr) wordPointer←v4016 ) = (word) (* (( (bPt) srcp←v4072)+byte←v4100) );
SOURCE(4260, 38)
                  wordPointer←v4016 = (wordPointer←v4016 + 4);
SOURCE(4300, 15)
                  byte←v4100 = (byte←v4100 + 1);
SOURCE(4317, 15)
                  count←v4128 = (count←v4128 - 1);
                  goto lab←L100033;
                  lab←L100031: ;
SOURCE(4343, 55)
                  srcp←v4072 = (srcp←v4072 + 8);
SOURCE(4400, 8)
                  byte←v4100 = 0;
                  };
SOURCE(4413, 425)
               lab←L100036: ;
               if ((count←v4128 >= 8)) {
                  }
               else {
                  goto lab←L100034;
                  };
               {
                  word a←v4268;
                  W2 b←v4296;
SOURCE(4439, 71)
                  a←v4268 = wordPointer←v4016;
SOURCE(4512, 46)
                  b←v4296 = (*  (W2Pt) srcp←v4072 );
SOURCE(4560, 13)
                  (*  (ptr) a←v4268 ) = (*  (bPt) &b←v4296 );
SOURCE(4577, 13)
                  (* (( (ptr) a←v4268)+1) ) = (* (( (bPt) &b←v4296)+1) );
SOURCE(4594, 13)
                  (* (( (ptr) a←v4268)+2) ) = (* (( (bPt) &b←v4296)+2) );
SOURCE(4611, 11)
                  (* (( (ptr) a←v4268)+3) ) = (* (( (bPt) &b←v4296)+3) );
SOURCE(4626, 13)
                  (* (( (ptr) a←v4268)+4) ) = (* (( (bPt) &b←v4296)+4) );
SOURCE(4643, 13)
                  (* (( (ptr) a←v4268)+5) ) = (* (( (bPt) &b←v4296)+5) );
SOURCE(4660, 13)
                  (* (( (ptr) a←v4268)+6) ) = (* (( (bPt) &b←v4296)+6) );
SOURCE(4677, 11)
                  (* (( (ptr) a←v4268)+7) ) = (* (( (bPt) &b←v4296)+7) );
SOURCE(4692, 62)
                  wordPointer←v4016 = (wordPointer←v4016 + 32);
SOURCE(4756, 25)
                  count←v4128 = (count←v4128 - 8);
SOURCE(4783, 55)
                  srcp←v4072 = (srcp←v4072 + 8);
                  };
               goto lab←L100036;
               lab←L100034: ;
SOURCE(4849, 116)
               lab←L100039: ;
               if ((count←v4128 != 0)) {
                  }
               else {
                  goto lab←L100037;
                  };
SOURCE(4866, 25)
               (*  (ptr) wordPointer←v4016 ) = (word) (* (( (bPt) srcp←v4072)+byte←v4100) );
SOURCE(4893, 38)
               wordPointer←v4016 = (wordPointer←v4016 + 4);
SOURCE(4933, 15)
               byte←v4100 = (byte←v4100 + 1);
SOURCE(4950, 15)
               count←v4128 = (count←v4128 - 1);
               goto lab←L100039;
               lab←L100037: ;
               };
            }
         else {
SOURCE(4990, 649)
            {
               word m←v4496;
               word p←v4524;
               word h←v4552;
               word g←v4580;
SOURCE(4992, 39)
               m←v4496 = ((word) XRM←BITLSHIFT(1, bitsPerSample←v2816) - 1);
SOURCE(5033, 60)
               p←v4524 = src←v2788.f0;
SOURCE(5095, 14)
               h←v4552 = (*  (ptr) p←v4524 );
SOURCE(5111, 24)
               g←v4580 = (32 - src←v2788.f1);
SOURCE(5182, 443)
               {
                  register word j←v4672 = 0;
                  register word noName←c9536;
                  noName←c9536 = nSamples←v2844;
                  if ((j←v4672 >= noName←c9536)) {
                     goto lab←L100040;
                     };
                  lab←L100043: ;
SOURCE(5218, 407)
                  {
                     word var←c9568;
                     var←c9568 = g←v4580;
                     if (( (int)var←c9568 >=  (int)bitsPerSample←v2816)) {
SOURCE(5254, 49)
                        {
                           word var←c9600;
                           {
/*1*/   word var←c9632;
/*1*/   var←c9632 = (word) XRM←BITRSHIFT(h←v4552, (g←v4580 - bitsPerSample←v2816));
/*1*/   var←c9600 = (word) XRM←BITAND(m←v4496, var←c9632);
/*1*/   };
                           (* (( (ptr) dst←v2760)+j←v4672) ) = var←c9600;
                           };
SOURCE(5305, 21)
                        g←v4580 = (g←v4580 - bitsPerSample←v2816);
                        }
                     else {
                        if (( (int)var←c9568 ==  (int)0)) {
SOURCE(5338, 18)
                           p←v4524 = (p←v4524 + 4);
SOURCE(5358, 8)
                           h←v4552 = (*  (ptr) p←v4524 );
SOURCE(5368, 51)
                           {
/*1*/   word var←c9664;
/*1*/   {
/*1*/      word var←c9696;
/*1*/      var←c9696 = (word) XRM←BITRSHIFT(h←v4552, (32 - bitsPerSample←v2816));
/*1*/      var←c9664 = (word) XRM←BITAND(m←v4496, var←c9696);
/*1*/      };
/*1*/   (* (( (ptr) dst←v2760)+j←v4672) ) = var←c9664;
/*1*/   };
SOURCE(5421, 23)
                           g←v4580 = (32 - bitsPerSample←v2816);
                           }
                        else {
SOURCE(5460, 167)
                           {
/*1*/   word k←v4716;
SOURCE(5462, 14)
/*1*/   k←v4716 = (* (( (ptr) p←v4524)+1) );
SOURCE(5478, 91)
/*1*/   {
/*1*/      word var←c9728;
/*1*/      {
/*1*/         word var←c9760;
/*1*/         {
/*1*/            word var←c9792;
/*1*/            word var←c9824;
/*1*/            var←c9792 = (word) XRM←BITLSHIFT(h←v4552, (bitsPerSample←v2816 - g←v4580));
/*1*/            var←c9824 = (word) XRM←BITRSHIFT(k←v4716, ((g←v4580 + 32) - bitsPerSample←v2816));
/*1*/            var←c9760 = (word) XRM←BITOR(var←c9792, var←c9824);
/*1*/            };
/*1*/         var←c9728 = (word) XRM←BITAND(m←v4496, var←c9760);
/*1*/         };
/*1*/      (* (( (ptr) dst←v2760)+j←v4672) ) = var←c9728;
/*1*/      };
SOURCE(5571, 5)
/*1*/   h←v4552 = k←v4716;
SOURCE(5578, 18)
/*1*/   p←v4524 = (p←v4524 + 4);
SOURCE(5598, 27)
/*1*/   g←v4580 = ((g←v4580 + 32) - bitsPerSample←v2816);
/*1*/   };
                           };
                        };
                     };
                  j←v4672 = (j←v4672 + 1);
                  if ((j←v4672 < noName←c9536)) {
                     goto lab←L100043;
                     };
                  lab←L100040: ;
                  };
               };
            };
         };
      };
   }

/* file: RasterOpGreenbayImpl, module: RasterOpGreenbayImpl, compiled at: February 21, 1992 11:33:32 pm PST */ 
extern void XR←install←RasterOpGreenbayImpl() {
   NoName←Q1392();
   }
extern void XR←run←RasterOpGreenbayImpl() { XR←Start(&globalframe); }