/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: September 24, 1992 12:03:38 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: BasicsImpl, module: BasicsImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#ifdef sparc
#define AssemblyMoveAndFillWordsHelp() 1
#define Basics←MoveWords Basics←MoveWords←Soft
#define Basics←FillWords Basics←FillWords←Soft
#else
#define AssemblyMoveAndFillWordsHelp() 0
#endif
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
#define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITXOR(x, y) (((word)(x)) ↑ ((word)(y)))
static char versionStamp[] = "@(#)mob←version [328260979,740860657] BasicsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2;} W3;
#define SOURCE(p, l) /* source p, l */
#define INEG(x)  ( (word) ( - ((int) (word) (x)) ) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
static void NoName←Q6744();
static void BasicsImpl←P0();
extern void Basics←CopyWords();
extern void Basics←MoveWords();
extern void Basics←FillWords();
extern void Basics←CopyBytes();
extern void Basics←MoveBytes();
extern void Basics←FillBytes();
extern void Basics←RegisterLogMisalign();
extern void Basics←CopyBits();
extern void Basics←CopyBitsDecreasing();
extern void Basics←MoveBits();
extern void Basics←FillBits();
extern word Basics←CompareBits();
extern word Basics←BITSHIFT();
extern word Basics←ByteBlt();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\023\220\335\163\300\054\050\242\361\100\164\000\000"};
static struct {
   word f0[6]; word f6; word f7; word f8; 
   word f9; word f10; word f11; word f12; 
   word f13; word f14; word f15; word f16; 
   word f17; word f18; word f19; word f20; 
   word f21; word f22; word f23; word f24; 
   word f25; word f26; word f27; word f28; 
   word f29; word f30; word f31; word f32; 
   word f33; word f34; word f35; 
   } globalframe = {
   {0}, (word) Basics←ByteBlt, 0, (word) Basics←BITSHIFT, 
   0, (word) Basics←CompareBits, 0, (word) Basics←FillBits, 
   0, (word) Basics←MoveBits, 0, (word) Basics←CopyBitsDecreasing, 
   0, (word) Basics←CopyBits, 0, (word) Basics←RegisterLogMisalign, 
   0, (word) Basics←FillBytes, 0, (word) Basics←MoveBytes, 
   0, (word) Basics←CopyBytes, 0, (word) Basics←FillWords, 
   0, (word) Basics←MoveWords, 0, (word) Basics←CopyWords, 
   0, (word) BasicsImpl←P0, 0
   };

static void NoName←Q6744()
   {
   register ptr gf←c0435 =  (ptr) &globalframe;
   (void) XR←DeclareGlobalFrame((word) "BasicsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c0435)+136)
      /* var←c17592 */ );
   }

static void BasicsImpl←P0(formal←c019, formal←c018)
   word formal←c019;
   word formal←c018;
   {
   register ptr gf←c24216 =  (ptr) &globalframe;
   /* BasicsImpl: */ 
SOURCE(19, 17807)
SOURCE(717, 59)
   (* (( (ptr) gf←c24216)+4)/* assemblyMoveAndFillWords←v2468 */  ) = (word) AssemblyMoveAndFillWordsHelp();
   }

extern void Basics←CopyWords(dst←v3964, src←v3992, count←v4020)
   word dst←v3964;
   word src←v3992;
   word count←v4020;
   {
   /* CopyWords: */ 
SOURCE(1807, 160)
SOURCE(1908, 59)
   {
      register word i←v6240 = 0;
      register word noName←c17624;
      noName←c17624 = count←v4020;
      if ((i←v6240 >= noName←c17624)) {
         goto lab←L100000;
         };
      lab←L100003: ;
SOURCE(1949, 18)
SOURCE(1951, 16)
      (* (( (ptr) dst←v3964)+i←v6240) ) = (* (( (ptr) src←v3992)+i←v6240) );
      i←v6240 = (i←v6240 + 1);
      if ((i←v6240 < noName←c17624)) {
         goto lab←L100003;
         };
      lab←L100000: ;
      };
   }

extern void Basics←MoveWords(dst←v4104, src←v4132, count←v4160)
   word dst←v4104;
   word src←v4132;
   word count←v4160;
   {
   /* MoveWords: */ 
SOURCE(1983, 299)
SOURCE(2084, 198)
   if ((dst←v4104 < src←v4132)) {
SOURCE(2134, 58)
      {
         register word i←v6284 = 0;
         register word noName←c17656;
         noName←c17656 = count←v4160;
         if ((i←v6284 >= noName←c17656)) {
            goto lab←L100004;
            };
         lab←L100007: ;
SOURCE(2174, 18)
SOURCE(2176, 16)
         (* (( (ptr) dst←v4104)+i←v6284) ) = (* (( (ptr) src←v4132)+i←v6284) );
         i←v6284 = (i←v6284 + 1);
         if ((i←v6284 < noName←c17656)) {
            goto lab←L100007;
            };
         lab←L100004: ;
         };
      }
   else {
SOURCE(2213, 69)
      {
         register word i←v6328;
         i←v6328 = count←v4160;
         if ((0 >= i←v6328)) {
            goto lab←L100008;
            };
         i←v6328 = (i←v6328 - 1);
         lab←L100011: ;
SOURCE(2264, 18)
SOURCE(2266, 16)
         (* (( (ptr) dst←v4104)+i←v6328) ) = (* (( (ptr) src←v4132)+i←v6328) );
         if ((0 >= i←v6328)) {
            goto lab←L100008;
            };
         i←v6328 = (i←v6328 - 1);
         goto lab←L100011;
         lab←L100008: ;
         };
      };
   }

extern void Basics←FillWords(dst←v4244, count←v4272, value←v4300)
   word dst←v4244;
   word count←v4272;
   word value←v4300;
   {
   word p←v6372;
   /* FillWords: */ 
SOURCE(2301, 412)
SOURCE(2398, 55)
   p←v6372 = dst←v4244;
SOURCE(2455, 129)
   lab←L100014: ;
   if ((count←v4272 >= 4)) {
      }
   else {
      goto lab←L100012;
      };
SOURCE(2475, 12)
   (*  (ptr) p←v6372 ) = value←v4300;
SOURCE(2489, 12)
   (* (( (ptr) p←v6372)+1) ) = value←v4300;
SOURCE(2503, 12)
   (* (( (ptr) p←v6372)+2) ) = value←v4300;
SOURCE(2517, 12)
   (* (( (ptr) p←v6372)+3) ) = value←v4300;
SOURCE(2531, 34)
   p←v6372 = (p←v6372 + 16);
SOURCE(2567, 17)
   count←v4272 = (count←v4272 - 4);
   goto lab←L100014;
   lab←L100012: ;
SOURCE(2595, 24)
   if ((count←v4272 == 0)) {
SOURCE(2613, 6)
      return;
      };
SOURCE(2621, 12)
   (*  (ptr) p←v6372 ) = value←v4300;
SOURCE(2635, 24)
   if ((count←v4272 == 1)) {
SOURCE(2653, 6)
      return;
      };
SOURCE(2661, 12)
   (* (( (ptr) p←v6372)+1) ) = value←v4300;
SOURCE(2675, 24)
   if ((count←v4272 == 2)) {
SOURCE(2693, 6)
      return;
      };
SOURCE(2701, 12)
   (* (( (ptr) p←v6372)+2) ) = value←v4300;
   }

extern void Basics←CopyBytes(dstBase←v4372, dstStart←v4400, srcBase←v4428, srcStart←v4456, count←v4484)
   word dstBase←v4372;
   word dstStart←v4400;
   word srcBase←v4428;
   word srcStart←v4456;
   word count←v4484;
   {
   /* CopyBytes: */ 
SOURCE(2718, 475)
SOURCE(2867, 53)
   if ((count←v4484 > ( (word) -1 - dstStart←v4400))) {
SOURCE(2902, 18)
      (void) XR←RaiseBoundsFault();
      };
SOURCE(2922, 53)
   if ((count←v4484 > ( (word) -1 - srcStart←v4456))) {
SOURCE(2957, 18)
      (void) XR←RaiseBoundsFault();
      };
SOURCE(2977, 61)
   if ((count←v4484 >= 16777216)) {
SOURCE(3020, 18)
      (void) XR←RaiseBoundsFault();
      };
SOURCE(3040, 153)
   (void) Basics←CopyBits(dstBase←v4372, (dstStart←v4400 << 3), srcBase←v4428, (srcStart←v4456 << 3), (count←v4484 << 3));
   }

extern void Basics←MoveBytes(dstBase←v4568, dstStart←v4596, srcBase←v4624, srcStart←v4652, count←v4680)
   word dstBase←v4568;
   word dstStart←v4596;
   word srcBase←v4624;
   word srcStart←v4652;
   word count←v4680;
   {
   word d0←v6500;
   word s0←v6528;
   /* MoveBytes: */ 
SOURCE(3199, 756)
SOURCE(3340, 55)
   d0←v6500 = (dstBase←v4568 + dstStart←v4596);
SOURCE(3397, 55)
   s0←v6528 = (srcBase←v4624 + srcStart←v4652);
SOURCE(3454, 53)
   if ((count←v4680 > ( (word) -1 - dstStart←v4596))) {
SOURCE(3489, 18)
      (void) XR←RaiseBoundsFault();
      };
SOURCE(3509, 53)
   if ((count←v4680 > ( (word) -1 - srcStart←v4652))) {
SOURCE(3544, 18)
      (void) XR←RaiseBoundsFault();
      };
SOURCE(3564, 61)
   if ((count←v4680 >= 16777216)) {
SOURCE(3607, 18)
      (void) XR←RaiseBoundsFault();
      };
SOURCE(3627, 328)
   if ( ( (d0←v6500 > s0←v6528) ? (d0←v6500 < (s0←v6528 + count←v4680)) : 0 ) ) {
SOURCE(3676, 95)
      {
         register word i←v6572;
         i←v6572 = count←v4680;
         if ((0 >= i←v6572)) {
            goto lab←L100015;
            };
         i←v6572 = (i←v6572 - 1);
         lab←L100018: ;
SOURCE(3727, 44)
SOURCE(3729, 42)
         (* (( (bPt) dstBase←v4568)+(dstStart←v4596 + i←v6572)) ) = (word) (* (( (bPt) srcBase←v4624)+(srcStart←v4652 + i←v6572)) );
         if ((0 >= i←v6572)) {
            goto lab←L100015;
            };
         i←v6572 = (i←v6572 - 1);
         goto lab←L100018;
         lab←L100015: ;
         };
      }
   else {
SOURCE(3798, 157)
SOURCE(3800, 153)
      (void) Basics←CopyBits(dstBase←v4568, (dstStart←v4596 << 3), srcBase←v4624, (srcStart←v4652 << 3), (count←v4680 << 3));
      };
   }

extern void Basics←FillBytes(dstBase←v4764, dstStart←v4792, count←v4820, value←v4848)
   word dstBase←v4764;
   word dstStart←v4792;
   word count←v4820;
   word value←v4848;
   {
   word wordValue←v6616;
   /* FillBytes: */ 
SOURCE(3962, 315)
SOURCE(4077, 36)
   wordValue←v6616 = (value←v4848 + (value←v4848 << 8));
SOURCE(4115, 36)
   wordValue←v6616 = (wordValue←v6616 + (value←v4848 << 16));
SOURCE(4161, 116)
SOURCE(4163, 112)
   (void) Basics←FillBits(dstBase←v4764, (dstStart←v4792 << 3), (count←v4820 << 3), wordValue←v6616);
   }

extern void Basics←RegisterLogMisalign(p←v4936)
   word p←v4936;
   {
   register ptr gf←c24248 =  (ptr) &globalframe;
   /* RegisterLogMisalign: */ 
SOURCE(4308, 55)
SOURCE(4348, 15)
   (* (( (ptr) gf←c24248)+5)/* logMisalign←v2916 */  ) = XR←CheckProc(p←v4936);
   }

extern void Basics←CopyBits(dstBase←v5012, dstStart←v5040, srcBase←v5068, srcStart←v5096, count←v5124)
   word dstBase←v5012;
   word dstStart←v5040;
   word srcBase←v5068;
   word srcStart←v5096;
   word count←v5124;
   {
   register ptr gf←c24280 =  (ptr) &globalframe;
   word dstCorr←v6660;
   word srcCorr←v6688;
   /* CopyBits: */ 
SOURCE(4368, 3505)
SOURCE(4514, 55)
   dstCorr←v6660 = (dstBase←v5012 & 3);
SOURCE(4571, 55)
   srcCorr←v6688 = (srcBase←v5068 & 3);
SOURCE(4628, 214)
   if (((dstCorr←v6660 + srcCorr←v6688) != 0)) {
SOURCE(4656, 188)
      {
         word p←v6732;
SOURCE(4658, 21)
         p←v6732 = (* (( (ptr) gf←c24280)+5)/* logMisalign←v2916 */  );
SOURCE(4681, 19)
         if ((p←v6732 != 0)) {
SOURCE(4697, 3)
            (void) ( *( (fPt) ((*  (ptr) p←v6732 ))))(p←v6732);
            };
SOURCE(4702, 27)
         dstBase←v5012 = (dstBase←v5012 - dstCorr←v6660);
SOURCE(4731, 40)
         dstStart←v5040 = (dstStart←v5040 + (dstCorr←v6660 << 3));
SOURCE(4773, 27)
         srcBase←v5068 = (srcBase←v5068 - srcCorr←v6688);
SOURCE(4802, 40)
         srcStart←v5096 = (srcStart←v5096 + (srcCorr←v6688 << 3));
         };
      };
SOURCE(4847, 3026)
   if ((count←v5124 != 0)) {
SOURCE(4865, 3016)
      {
         word dst←v6792;
         word dstBit←v6820;
         word src←v6848;
         word srcBit←v6876;
         word ndw←v6904;
         word lMask←v6932;
         word rMask←v6960;
SOURCE(4867, 58)
         {
            word base←v12804;
            base←v12804 = dstBase←v5012;
SOURCE(1634, 64)
            dst←v6792 = (base←v12804 + ((dstStart←v5040 >> 5) << 2));
            };
SOURCE(4927, 33)
         dstBit←v6820 = (dstStart←v5040 & 037);
SOURCE(4962, 58)
         {
            word base←v12756;
            base←v12756 = srcBase←v5068;
SOURCE(1634, 64)
            src←v6848 = (base←v12756 + ((srcStart←v5096 >> 5) << 2));
            };
SOURCE(5022, 33)
         srcBit←v6876 = (srcStart←v5096 & 037);
SOURCE(5057, 40)
         {
            word bits←v12084;
            bits←v12084 = (dstBit←v6820 + count←v5124);
SOURCE(1262, 32)
            ndw←v6904 = ((bits←v12084 + 31) >> 5);
            };
SOURCE(5099, 44)
         {
            word n←v12276;
            n←v12276 = (32 - dstBit←v6820);
SOURCE(1363, 45)
            lMask←v6932 = (((word) XRM←BITLSHIFT(1, (n←v12276 & 037)) - 1) - (n←v12276 >> 5));
            };
SOURCE(5145, 77)
         {
            word n←v12468;
            n←v12468 = (((32 - dstBit←v6820) - count←v5124) & 037);
SOURCE(1476, 43)
            rMask←v6960 = INEG((word) XRM←BITRSHIFT(2147483648, (31 - n←v12468)));
            };
SOURCE(5224, 2649)
         if ((dstBit←v6820 == srcBit←v6876)) {
SOURCE(5277, 809)
            {
               word var←c17912;
               var←c17912 = ndw←v6904;
               switch (var←c17912) {
                  case 1: 
SOURCE(5306, 53)
SOURCE(5308, 49)
                     {
                        word var←c17944;
                        {
                           word var←c17976;
                           word d←v15340;
                           word s←v15368;
                           word mask←v15396;
                           d←v15340 = (*  (ptr) dst←v6792 );
                           s←v15368 = (*  (ptr) src←v6848 );
                           mask←v15396 = (word) XRM←BITAND(lMask←v6932, rMask←v6960);
SOURCE(1756, 47)
                           {
/*1*/   word var←c18040;
/*1*/   {
/*1*/      word var←c18072;
/*1*/      var←c18072 = (word) XRM←BITXOR(s←v15368, d←v15340);
/*1*/      var←c18040 = (word) XRM←BITAND(var←c18072, mask←v15396);
/*1*/      };
/*1*/   var←c17976 = (word) XRM←BITXOR(var←c18040, d←v15340);
/*1*/   };
                           var←c17944 = var←c17976;
                           };
                        (*  (ptr) dst←v6792 ) = var←c17944;
                        };
                     break;
                  case 2: 
SOURCE(5375, 74)
SOURCE(5377, 34)
                     {
                        word var←c18104;
                        {
                           word var←c18136;
                           word d←v15264;
                           word s←v15292;
                           d←v15264 = (*  (ptr) dst←v6792 );
                           s←v15292 = (*  (ptr) src←v6848 );
SOURCE(1756, 47)
                           {
/*1*/   word var←c18200;
/*1*/   {
/*1*/      word var←c18232;
/*1*/      var←c18232 = (word) XRM←BITXOR(s←v15292, d←v15264);
/*1*/      var←c18200 = (word) XRM←BITAND(var←c18232, lMask←v6932);
/*1*/      };
/*1*/   var←c18136 = (word) XRM←BITXOR(var←c18200, d←v15264);
/*1*/   };
                           var←c18104 = var←c18136;
                           };
                        (*  (ptr) dst←v6792 ) = var←c18104;
                        };
SOURCE(5413, 34)
                     {
                        word var←c18264;
                        {
                           word var←c18296;
                           word d←v15188;
                           word s←v15216;
                           d←v15188 = (* (( (ptr) dst←v6792)+1) );
                           s←v15216 = (* (( (ptr) src←v6848)+1) );
SOURCE(1756, 47)
                           {
/*1*/   word var←c18360;
/*1*/   {
/*1*/      word var←c18392;
/*1*/      var←c18392 = (word) XRM←BITXOR(s←v15216, d←v15188);
/*1*/      var←c18360 = (word) XRM←BITAND(var←c18392, rMask←v6960);
/*1*/      };
/*1*/   var←c18296 = (word) XRM←BITXOR(var←c18360, d←v15188);
/*1*/   };
                           var←c18264 = var←c18296;
                           };
                        (* (( (ptr) dst←v6792)+1) ) = var←c18264;
                        };
                     break;
                  case 3: 
SOURCE(5465, 92)
SOURCE(5467, 34)
                     {
                        word var←c18424;
                        {
                           word var←c18456;
                           word d←v15112;
                           word s←v15140;
                           d←v15112 = (*  (ptr) dst←v6792 );
                           s←v15140 = (*  (ptr) src←v6848 );
SOURCE(1756, 47)
                           {
/*1*/   word var←c18520;
/*1*/   {
/*1*/      word var←c18552;
/*1*/      var←c18552 = (word) XRM←BITXOR(s←v15140, d←v15112);
/*1*/      var←c18520 = (word) XRM←BITAND(var←c18552, lMask←v6932);
/*1*/      };
/*1*/   var←c18456 = (word) XRM←BITXOR(var←c18520, d←v15112);
/*1*/   };
                           var←c18424 = var←c18456;
                           };
                        (*  (ptr) dst←v6792 ) = var←c18424;
                        };
SOURCE(5503, 16)
                     (* (( (ptr) dst←v6792)+1) ) = (* (( (ptr) src←v6848)+1) );
SOURCE(5521, 34)
                     {
                        word var←c18584;
                        {
                           word var←c18616;
                           word d←v15036;
                           word s←v15064;
                           d←v15036 = (* (( (ptr) dst←v6792)+2) );
                           s←v15064 = (* (( (ptr) src←v6848)+2) );
SOURCE(1756, 47)
                           {
/*1*/   word var←c18680;
/*1*/   {
/*1*/      word var←c18712;
/*1*/      var←c18712 = (word) XRM←BITXOR(s←v15064, d←v15036);
/*1*/      var←c18680 = (word) XRM←BITAND(var←c18712, rMask←v6960);
/*1*/      };
/*1*/   var←c18616 = (word) XRM←BITXOR(var←c18680, d←v15036);
/*1*/   };
                           var←c18584 = var←c18616;
                           };
                        (* (( (ptr) dst←v6792)+2) ) = var←c18584;
                        };
                     break;
                  default: 
SOURCE(5579, 509)
                     {
                        word nw←v7028;
SOURCE(5581, 32)
                        nw←v7028 = (ndw←v6904 - 2);
SOURCE(5615, 34)
                        {
                           word var←c18744;
                           {
/*1*/   word var←c18776;
/*1*/   word d←v14960;
/*1*/   word s←v14988;
/*1*/   d←v14960 = (*  (ptr) dst←v6792 );
/*1*/   s←v14988 = (*  (ptr) src←v6848 );
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c18840;
/*1*/      {
/*1*/         word var←c18872;
/*1*/         var←c18872 = (word) XRM←BITXOR(s←v14988, d←v14960);
/*1*/         var←c18840 = (word) XRM←BITAND(var←c18872, lMask←v6932);
/*1*/         };
/*1*/      var←c18776 = (word) XRM←BITXOR(var←c18840, d←v14960);
/*1*/      };
/*1*/   var←c18744 = var←c18776;
/*1*/   };
                           (*  (ptr) dst←v6792 ) = var←c18744;
                           };
SOURCE(5651, 21)
                        dst←v6792 = (dst←v6792 + 4);
SOURCE(5674, 21)
                        src←v6848 = (src←v6848 + 4);
SOURCE(5697, 146)
                        lab←L100032: ;
                        if ((nw←v7028 >= 4)) {
                           }
                        else {
                           goto lab←L100030;
                           };
SOURCE(5714, 15)
                        (*  (ptr) dst←v6792 ) = (*  (ptr) src←v6848 );
SOURCE(5731, 15)
                        (* (( (ptr) dst←v6792)+1) ) = (* (( (ptr) src←v6848)+1) );
SOURCE(5748, 15)
                        (* (( (ptr) dst←v6792)+2) ) = (* (( (ptr) src←v6848)+2) );
SOURCE(5765, 15)
                        (* (( (ptr) dst←v6792)+3) ) = (* (( (ptr) src←v6848)+3) );
SOURCE(5782, 23)
                        dst←v6792 = (dst←v6792 + 16);
SOURCE(5807, 23)
                        src←v6848 = (src←v6848 + 16);
SOURCE(5832, 11)
                        nw←v7028 = (nw←v7028 - 4);
                        goto lab←L100032;
                        lab←L100030: ;
SOURCE(5854, 111)
                        if ((nw←v7028 >= 2)) {
SOURCE(5872, 15)
                           (*  (ptr) dst←v6792 ) = (*  (ptr) src←v6848 );
SOURCE(5889, 15)
                           (* (( (ptr) dst←v6792)+1) ) = (* (( (ptr) src←v6848)+1) );
SOURCE(5906, 22)
                           dst←v6792 = (dst←v6792 + 8);
SOURCE(5930, 22)
                           src←v6848 = (src←v6848 + 8);
SOURCE(5954, 11)
                           nw←v7028 = (nw←v7028 - 2);
                           };
SOURCE(5970, 77)
                        if ((nw←v7028 != 0)) {
SOURCE(5987, 16)
                           (*  (ptr) dst←v6792 ) = (*  (ptr) src←v6848 );
SOURCE(6005, 20)
                           dst←v6792 = (dst←v6792 + 4);
SOURCE(6027, 20)
                           src←v6848 = (src←v6848 + 4);
                           };
SOURCE(6052, 34)
                        {
                           word var←c18904;
                           {
/*1*/   word var←c18936;
/*1*/   word d←v14884;
/*1*/   word s←v14912;
/*1*/   d←v14884 = (*  (ptr) dst←v6792 );
/*1*/   s←v14912 = (*  (ptr) src←v6848 );
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c19000;
/*1*/      {
/*1*/         word var←c19032;
/*1*/         var←c19032 = (word) XRM←BITXOR(s←v14912, d←v14884);
/*1*/         var←c19000 = (word) XRM←BITAND(var←c19032, rMask←v6960);
/*1*/         };
/*1*/      var←c18936 = (word) XRM←BITXOR(var←c19000, d←v14884);
/*1*/      };
/*1*/   var←c18904 = var←c18936;
/*1*/   };
                           (*  (ptr) dst←v6792 ) = var←c18904;
                           };
                        };
                     break;
                  };
               };
            }
         else {
SOURCE(6098, 1780)
            {
               word w←v7072 = 0;
               word hi←v7100;
               word lo←v7128 = 0;
               word lSA←v7156;
               word rSA←v7184;
               word nsw←v7212;
               word fetchLastWord←v7240;
SOURCE(6258, 55)
               lSA←v7156 = ((srcBit←v6876 - dstBit←v6820) & 037);
SOURCE(6336, 51)
               rSA←v7184 = ((32 - lSA←v7156) & 037);
SOURCE(6443, 40)
               {
                  word bits←v12036;
                  bits←v12036 = (srcBit←v6876 + count←v5124);
SOURCE(1262, 32)
                  nsw←v7212 = ((bits←v12036 + 31) >> 5);
                  };
SOURCE(6485, 72)
               fetchLastWord←v7240 =  ( (srcBit←v6876 >= dstBit←v6820) ? (nsw←v7212 > ndw←v6904) : (nsw←v7212 >= ndw←v6904) ) ;
SOURCE(6971, 36)
               if ((srcBit←v6876 >= dstBit←v6820)) {
SOURCE(6996, 11)
SOURCE(6586, 7)
                  hi←v7100 = lo←v7128;
SOURCE(6603, 12)
SOURCE(6604, 11)
                  lo←v7128 = (*  (ptr) src←v6848 );
SOURCE(6618, 20)
                  src←v6848 = (src←v6848 + 4);
SOURCE(6640, 42)
                  w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
                  };
SOURCE(7009, 864)
               {
                  word var←c19096;
                  var←c19096 = ndw←v6904;
                  switch (var←c19096) {
                     case 1: 
SOURCE(7038, 104)
                        {
                           word bothMask←v7532;
SOURCE(7040, 37)
                           bothMask←v7532 = (word) XRM←BITAND(lMask←v6932, rMask←v6960);
SOURCE(7079, 27)
SOURCE(6879, 22)
                           w←v7072 = (word) XRM←BITLSHIFT(lo←v7128, lSA←v7156);
SOURCE(6903, 62)
                           if ((0 != fetchLastWord←v7240)) {
SOURCE(6925, 40)
SOURCE(6926, 39)
/*1*/   w←v7072 = (w←v7072 + (word) XRM←BITRSHIFT((*  (ptr) src←v6848 ), rSA←v7184));
/*1*/   };
SOURCE(7108, 32)
                           {
/*1*/   word var←c19128;
/*1*/   {
/*1*/      word var←c19160;
/*1*/      word d←v14808;
/*1*/      word s←v14836;
/*1*/      d←v14808 = (*  (ptr) dst←v6792 );
/*1*/      s←v14836 = w←v7072;
SOURCE(1756, 47)
/*1*/      {
/*1*/         word var←c19224;
/*1*/         {
/*1*/            word var←c19256;
/*1*/            var←c19256 = (word) XRM←BITXOR(s←v14836, d←v14808);
/*1*/            var←c19224 = (word) XRM←BITAND(var←c19256, bothMask←v7532);
/*1*/            };
/*1*/         var←c19160 = (word) XRM←BITXOR(var←c19224, d←v14808);
/*1*/         };
/*1*/      var←c19128 = var←c19160;
/*1*/      };
/*1*/   (*  (ptr) dst←v6792 ) = var←c19128;
/*1*/   };
                           };
                        break;
                     case 2: 
SOURCE(7158, 110)
SOURCE(7160, 15)
SOURCE(6734, 7)
                        hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
                        lo←v7128 = (*  (ptr) src←v6848 );
SOURCE(6775, 42)
                        w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7177, 29)
                        {
                           word var←c19288;
                           {
/*1*/   word var←c19320;
/*1*/   word d←v14732;
/*1*/   word s←v14760;
/*1*/   d←v14732 = (*  (ptr) dst←v6792 );
/*1*/   s←v14760 = w←v7072;
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c19384;
/*1*/      {
/*1*/         word var←c19416;
/*1*/         var←c19416 = (word) XRM←BITXOR(s←v14760, d←v14732);
/*1*/         var←c19384 = (word) XRM←BITAND(var←c19416, lMask←v6932);
/*1*/         };
/*1*/      var←c19320 = (word) XRM←BITXOR(var←c19384, d←v14732);
/*1*/      };
/*1*/   var←c19288 = var←c19320;
/*1*/   };
                           (*  (ptr) dst←v6792 ) = var←c19288;
                           };
SOURCE(7208, 27)
SOURCE(6879, 22)
                        w←v7072 = (word) XRM←BITLSHIFT(lo←v7128, lSA←v7156);
SOURCE(6903, 62)
                        if ((0 != fetchLastWord←v7240)) {
SOURCE(6925, 40)
SOURCE(6926, 39)
                           w←v7072 = (w←v7072 + (word) XRM←BITRSHIFT((* (( (ptr) src←v6848)+1) ), rSA←v7184));
                           };
SOURCE(7237, 29)
                        {
                           word var←c19448;
                           {
/*1*/   word var←c19480;
/*1*/   word d←v14656;
/*1*/   word s←v14684;
/*1*/   d←v14656 = (* (( (ptr) dst←v6792)+1) );
/*1*/   s←v14684 = w←v7072;
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c19544;
/*1*/      {
/*1*/         word var←c19576;
/*1*/         var←c19576 = (word) XRM←BITXOR(s←v14684, d←v14656);
/*1*/         var←c19544 = (word) XRM←BITAND(var←c19576, rMask←v6960);
/*1*/         };
/*1*/      var←c19480 = (word) XRM←BITXOR(var←c19544, d←v14656);
/*1*/      };
/*1*/   var←c19448 = var←c19480;
/*1*/   };
                           (* (( (ptr) dst←v6792)+1) ) = var←c19448;
                           };
                        break;
                     case 3: 
SOURCE(7284, 140)
SOURCE(7286, 15)
SOURCE(6734, 7)
                        hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
                        lo←v7128 = (*  (ptr) src←v6848 );
SOURCE(6775, 42)
                        w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7303, 29)
                        {
                           word var←c19608;
                           {
/*1*/   word var←c19640;
/*1*/   word d←v14580;
/*1*/   word s←v14608;
/*1*/   d←v14580 = (*  (ptr) dst←v6792 );
/*1*/   s←v14608 = w←v7072;
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c19704;
/*1*/      {
/*1*/         word var←c19736;
/*1*/         var←c19736 = (word) XRM←BITXOR(s←v14608, d←v14580);
/*1*/         var←c19704 = (word) XRM←BITAND(var←c19736, lMask←v6932);
/*1*/         };
/*1*/      var←c19640 = (word) XRM←BITXOR(var←c19704, d←v14580);
/*1*/      };
/*1*/   var←c19608 = var←c19640;
/*1*/   };
                           (*  (ptr) dst←v6792 ) = var←c19608;
                           };
SOURCE(7334, 15)
SOURCE(6734, 7)
                        hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
                        lo←v7128 = (* (( (ptr) src←v6848)+1) );
SOURCE(6775, 42)
                        w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7351, 11)
                        (* (( (ptr) dst←v6792)+1) ) = w←v7072;
SOURCE(7364, 27)
SOURCE(6879, 22)
                        w←v7072 = (word) XRM←BITLSHIFT(lo←v7128, lSA←v7156);
SOURCE(6903, 62)
                        if ((0 != fetchLastWord←v7240)) {
SOURCE(6925, 40)
SOURCE(6926, 39)
                           w←v7072 = (w←v7072 + (word) XRM←BITRSHIFT((* (( (ptr) src←v6848)+2) ), rSA←v7184));
                           };
SOURCE(7393, 29)
                        {
                           word var←c19768;
                           {
/*1*/   word var←c19800;
/*1*/   word d←v14504;
/*1*/   word s←v14532;
/*1*/   d←v14504 = (* (( (ptr) dst←v6792)+2) );
/*1*/   s←v14532 = w←v7072;
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c19864;
/*1*/      {
/*1*/         word var←c19896;
/*1*/         var←c19896 = (word) XRM←BITXOR(s←v14532, d←v14504);
/*1*/         var←c19864 = (word) XRM←BITAND(var←c19896, rMask←v6960);
/*1*/         };
/*1*/      var←c19800 = (word) XRM←BITXOR(var←c19864, d←v14504);
/*1*/      };
/*1*/   var←c19768 = var←c19800;
/*1*/   };
                           (* (( (ptr) dst←v6792)+2) ) = var←c19768;
                           };
                        break;
                     default: 
SOURCE(7446, 429)
                        {
                           word nw←v7576;
SOURCE(7448, 32)
                           nw←v7576 = (ndw←v6904 - 2);
SOURCE(7482, 15)
SOURCE(6734, 7)
                           hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
                           lo←v7128 = (*  (ptr) src←v6848 );
SOURCE(6775, 42)
                           w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7499, 29)
                           {
/*1*/   word var←c19928;
/*1*/   {
/*1*/      word var←c19960;
/*1*/      word d←v14428;
/*1*/      word s←v14456;
/*1*/      d←v14428 = (*  (ptr) dst←v6792 );
/*1*/      s←v14456 = w←v7072;
SOURCE(1756, 47)
/*1*/      {
/*1*/         word var←c20024;
/*1*/         {
/*1*/            word var←c20056;
/*1*/            var←c20056 = (word) XRM←BITXOR(s←v14456, d←v14428);
/*1*/            var←c20024 = (word) XRM←BITAND(var←c20056, lMask←v6932);
/*1*/            };
/*1*/         var←c19960 = (word) XRM←BITXOR(var←c20024, d←v14428);
/*1*/         };
/*1*/      var←c19928 = var←c19960;
/*1*/      };
/*1*/   (*  (ptr) dst←v6792 ) = var←c19928;
/*1*/   };
SOURCE(7530, 20)
                           dst←v6792 = (dst←v6792 + 4);
SOURCE(7552, 20)
                           src←v6848 = (src←v6848 + 4);
SOURCE(7574, 136)
                           lab←L100043: ;
                           if ((nw←v7576 >= 2)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100041;
/*1*/   };
SOURCE(7591, 15)
SOURCE(6734, 7)
                           hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
                           lo←v7128 = (*  (ptr) src←v6848 );
SOURCE(6775, 42)
                           w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7608, 11)
                           (*  (ptr) dst←v6792 ) = w←v7072;
SOURCE(7621, 15)
SOURCE(6734, 7)
                           hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
                           lo←v7128 = (* (( (ptr) src←v6848)+1) );
SOURCE(6775, 42)
                           w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7638, 11)
                           (* (( (ptr) dst←v6792)+1) ) = w←v7072;
SOURCE(7651, 22)
                           dst←v6792 = (dst←v6792 + 8);
SOURCE(7675, 22)
                           src←v6848 = (src←v6848 + 8);
SOURCE(7699, 11)
                           nw←v7576 = (nw←v7576 - 2);
                           goto lab←L100043;
                           lab←L100041: ;
SOURCE(7721, 89)
                           if ((nw←v7576 != 0)) {
SOURCE(7738, 15)
SOURCE(6734, 7)
/*1*/   hi←v7100 = lo←v7128;
SOURCE(6751, 21)
SOURCE(6752, 20)
/*1*/   lo←v7128 = (*  (ptr) src←v6848 );
SOURCE(6775, 42)
/*1*/   w←v7072 = ((word) XRM←BITLSHIFT(hi←v7100, lSA←v7156) + (word) XRM←BITRSHIFT(lo←v7128, rSA←v7184));
SOURCE(7755, 11)
/*1*/   (*  (ptr) dst←v6792 ) = w←v7072;
SOURCE(7768, 20)
/*1*/   dst←v6792 = (dst←v6792 + 4);
SOURCE(7790, 20)
/*1*/   src←v6848 = (src←v6848 + 4);
/*1*/   };
SOURCE(7815, 27)
SOURCE(6879, 22)
                           w←v7072 = (word) XRM←BITLSHIFT(lo←v7128, lSA←v7156);
SOURCE(6903, 62)
                           if ((0 != fetchLastWord←v7240)) {
SOURCE(6925, 40)
SOURCE(6926, 39)
/*1*/   w←v7072 = (w←v7072 + (word) XRM←BITRSHIFT((*  (ptr) src←v6848 ), rSA←v7184));
/*1*/   };
SOURCE(7844, 29)
                           {
/*1*/   word var←c20088;
/*1*/   {
/*1*/      word var←c20120;
/*1*/      word d←v14352;
/*1*/      word s←v14380;
/*1*/      d←v14352 = (*  (ptr) dst←v6792 );
/*1*/      s←v14380 = w←v7072;
SOURCE(1756, 47)
/*1*/      {
/*1*/         word var←c20184;
/*1*/         {
/*1*/            word var←c20216;
/*1*/            var←c20216 = (word) XRM←BITXOR(s←v14380, d←v14352);
/*1*/            var←c20184 = (word) XRM←BITAND(var←c20216, rMask←v6960);
/*1*/            };
/*1*/         var←c20120 = (word) XRM←BITXOR(var←c20184, d←v14352);
/*1*/         };
/*1*/      var←c20088 = var←c20120;
/*1*/      };
/*1*/   (*  (ptr) dst←v6792 ) = var←c20088;
/*1*/   };
                           };
                        break;
                     };
                  };
               };
            };
         };
      };
   }

extern void Basics←CopyBitsDecreasing(dstBase←v5208, dstStart←v5236, srcBase←v5264, srcStart←v5292, count←v5320)
   word dstBase←v5208;
   word dstStart←v5236;
   word srcBase←v5264;
   word srcStart←v5292;
   word count←v5320;
   {
   register ptr gf←c24312 =  (ptr) &globalframe;
   word dstCorr←v7620;
   word srcCorr←v7648;
   /* CopyBitsDecreasing: */ 
SOURCE(7888, 3414)
SOURCE(8044, 55)
   dstCorr←v7620 = (dstBase←v5208 & 3);
SOURCE(8101, 55)
   srcCorr←v7648 = (srcBase←v5264 & 3);
SOURCE(8158, 214)
   if (((dstCorr←v7620 + srcCorr←v7648) != 0)) {
SOURCE(8186, 188)
      {
         word p←v7692;
SOURCE(8188, 21)
         p←v7692 = (* (( (ptr) gf←c24312)+5)/* logMisalign←v2916 */  );
SOURCE(8211, 19)
         if ((p←v7692 != 0)) {
SOURCE(8227, 3)
            (void) ( *( (fPt) ((*  (ptr) p←v7692 ))))(p←v7692);
            };
SOURCE(8232, 27)
         dstBase←v5208 = (dstBase←v5208 - dstCorr←v7620);
SOURCE(8261, 40)
         dstStart←v5236 = (dstStart←v5236 + (dstCorr←v7620 << 3));
SOURCE(8303, 27)
         srcBase←v5264 = (srcBase←v5264 - srcCorr←v7648);
SOURCE(8332, 40)
         srcStart←v5292 = (srcStart←v5292 + (srcCorr←v7648 << 3));
         };
      };
SOURCE(8377, 2925)
   if ((count←v5320 != 0)) {
SOURCE(8395, 2915)
      {
         word dst←v7752;
         word dstBit←v7780;
         word src←v7808;
         word srcBit←v7836;
         word ndw←v7864;
         word lMask←v7892;
         word rMask←v7920;
SOURCE(8397, 58)
         {
            word base←v12708;
            base←v12708 = dstBase←v5208;
SOURCE(1634, 64)
            dst←v7752 = (base←v12708 + ((dstStart←v5236 >> 5) << 2));
            };
SOURCE(8457, 33)
         dstBit←v7780 = (dstStart←v5236 & 037);
SOURCE(8492, 58)
         {
            word base←v12660;
            base←v12660 = srcBase←v5264;
SOURCE(1634, 64)
            src←v7808 = (base←v12660 + ((srcStart←v5292 >> 5) << 2));
            };
SOURCE(8552, 33)
         srcBit←v7836 = (srcStart←v5292 & 037);
SOURCE(8587, 40)
         {
            word bits←v11988;
            bits←v11988 = (dstBit←v7780 + count←v5320);
SOURCE(1262, 32)
            ndw←v7864 = ((bits←v11988 + 31) >> 5);
            };
SOURCE(8629, 44)
         {
            word n←v12228;
            n←v12228 = (32 - dstBit←v7780);
SOURCE(1363, 45)
            lMask←v7892 = (((word) XRM←BITLSHIFT(1, (n←v12228 & 037)) - 1) - (n←v12228 >> 5));
            };
SOURCE(8675, 77)
         {
            word n←v12420;
            n←v12420 = (((32 - dstBit←v7780) - count←v5320) & 037);
SOURCE(1476, 43)
            rMask←v7920 = INEG((word) XRM←BITRSHIFT(2147483648, (31 - n←v12420)));
            };
SOURCE(8754, 2548)
         if ((dstBit←v7780 == srcBit←v7836)) {
SOURCE(8807, 894)
            {
               word var←c20472;
               var←c20472 = ndw←v7864;
               switch (var←c20472) {
                  case 1: 
SOURCE(8836, 53)
SOURCE(8838, 49)
                     {
                        word var←c20504;
                        {
                           word var←c20536;
                           word d←v14248;
                           word s←v14276;
                           word mask←v14304;
                           d←v14248 = (*  (ptr) dst←v7752 );
                           s←v14276 = (*  (ptr) src←v7808 );
                           mask←v14304 = (word) XRM←BITAND(lMask←v7892, rMask←v7920);
SOURCE(1756, 47)
                           {
/*1*/   word var←c20600;
/*1*/   {
/*1*/      word var←c20632;
/*1*/      var←c20632 = (word) XRM←BITXOR(s←v14276, d←v14248);
/*1*/      var←c20600 = (word) XRM←BITAND(var←c20632, mask←v14304);
/*1*/      };
/*1*/   var←c20536 = (word) XRM←BITXOR(var←c20600, d←v14248);
/*1*/   };
                           var←c20504 = var←c20536;
                           };
                        (*  (ptr) dst←v7752 ) = var←c20504;
                        };
                     break;
                  case 2: 
SOURCE(8905, 74)
SOURCE(8907, 34)
                     {
                        word var←c20664;
                        {
                           word var←c20696;
                           word d←v14172;
                           word s←v14200;
                           d←v14172 = (* (( (ptr) dst←v7752)+1) );
                           s←v14200 = (* (( (ptr) src←v7808)+1) );
SOURCE(1756, 47)
                           {
/*1*/   word var←c20760;
/*1*/   {
/*1*/      word var←c20792;
/*1*/      var←c20792 = (word) XRM←BITXOR(s←v14200, d←v14172);
/*1*/      var←c20760 = (word) XRM←BITAND(var←c20792, rMask←v7920);
/*1*/      };
/*1*/   var←c20696 = (word) XRM←BITXOR(var←c20760, d←v14172);
/*1*/   };
                           var←c20664 = var←c20696;
                           };
                        (* (( (ptr) dst←v7752)+1) ) = var←c20664;
                        };
SOURCE(8943, 34)
                     {
                        word var←c20824;
                        {
                           word var←c20856;
                           word d←v14096;
                           word s←v14124;
                           d←v14096 = (*  (ptr) dst←v7752 );
                           s←v14124 = (*  (ptr) src←v7808 );
SOURCE(1756, 47)
                           {
/*1*/   word var←c20920;
/*1*/   {
/*1*/      word var←c20952;
/*1*/      var←c20952 = (word) XRM←BITXOR(s←v14124, d←v14096);
/*1*/      var←c20920 = (word) XRM←BITAND(var←c20952, lMask←v7892);
/*1*/      };
/*1*/   var←c20856 = (word) XRM←BITXOR(var←c20920, d←v14096);
/*1*/   };
                           var←c20824 = var←c20856;
                           };
                        (*  (ptr) dst←v7752 ) = var←c20824;
                        };
                     break;
                  case 3: 
SOURCE(8995, 92)
SOURCE(8997, 34)
                     {
                        word var←c20984;
                        {
                           word var←c21016;
                           word d←v14020;
                           word s←v14048;
                           d←v14020 = (* (( (ptr) dst←v7752)+2) );
                           s←v14048 = (* (( (ptr) src←v7808)+2) );
SOURCE(1756, 47)
                           {
/*1*/   word var←c21080;
/*1*/   {
/*1*/      word var←c21112;
/*1*/      var←c21112 = (word) XRM←BITXOR(s←v14048, d←v14020);
/*1*/      var←c21080 = (word) XRM←BITAND(var←c21112, rMask←v7920);
/*1*/      };
/*1*/   var←c21016 = (word) XRM←BITXOR(var←c21080, d←v14020);
/*1*/   };
                           var←c20984 = var←c21016;
                           };
                        (* (( (ptr) dst←v7752)+2) ) = var←c20984;
                        };
SOURCE(9033, 16)
                     (* (( (ptr) dst←v7752)+1) ) = (* (( (ptr) src←v7808)+1) );
SOURCE(9051, 34)
                     {
                        word var←c21144;
                        {
                           word var←c21176;
                           word d←v13944;
                           word s←v13972;
                           d←v13944 = (*  (ptr) dst←v7752 );
                           s←v13972 = (*  (ptr) src←v7808 );
SOURCE(1756, 47)
                           {
/*1*/   word var←c21240;
/*1*/   {
/*1*/      word var←c21272;
/*1*/      var←c21272 = (word) XRM←BITXOR(s←v13972, d←v13944);
/*1*/      var←c21240 = (word) XRM←BITAND(var←c21272, lMask←v7892);
/*1*/      };
/*1*/   var←c21176 = (word) XRM←BITXOR(var←c21240, d←v13944);
/*1*/   };
                           var←c21144 = var←c21176;
                           };
                        (*  (ptr) dst←v7752 ) = var←c21144;
                        };
                     break;
                  default: 
SOURCE(9109, 594)
                     {
                        word nw←v7988;
SOURCE(9111, 32)
                        nw←v7988 = (ndw←v7864 - 2);
SOURCE(9145, 39)
                        dst←v7752 = ((dst←v7752 + (ndw←v7864 << 2)) - 4);
SOURCE(9186, 39)
                        src←v7808 = ((src←v7808 + (ndw←v7864 << 2)) - 4);
SOURCE(9227, 34)
                        {
                           word var←c21304;
                           {
/*1*/   word var←c21336;
/*1*/   word d←v13868;
/*1*/   word s←v13896;
/*1*/   d←v13868 = (*  (ptr) dst←v7752 );
/*1*/   s←v13896 = (*  (ptr) src←v7808 );
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c21400;
/*1*/      {
/*1*/         word var←c21432;
/*1*/         var←c21432 = (word) XRM←BITXOR(s←v13896, d←v13868);
/*1*/         var←c21400 = (word) XRM←BITAND(var←c21432, rMask←v7920);
/*1*/         };
/*1*/      var←c21336 = (word) XRM←BITXOR(var←c21400, d←v13868);
/*1*/      };
/*1*/   var←c21304 = var←c21336;
/*1*/   };
                           (*  (ptr) dst←v7752 ) = var←c21304;
                           };
SOURCE(9263, 146)
                        lab←L100058: ;
                        if ((nw←v7988 >= 4)) {
                           }
                        else {
                           goto lab←L100056;
                           };
SOURCE(9280, 23)
                        dst←v7752 = (dst←v7752 - 16);
SOURCE(9305, 23)
                        src←v7808 = (src←v7808 - 16);
SOURCE(9330, 15)
                        (* (( (ptr) dst←v7752)+3) ) = (* (( (ptr) src←v7808)+3) );
SOURCE(9347, 15)
                        (* (( (ptr) dst←v7752)+2) ) = (* (( (ptr) src←v7808)+2) );
SOURCE(9364, 15)
                        (* (( (ptr) dst←v7752)+1) ) = (* (( (ptr) src←v7808)+1) );
SOURCE(9381, 15)
                        (*  (ptr) dst←v7752 ) = (*  (ptr) src←v7808 );
SOURCE(9398, 11)
                        nw←v7988 = (nw←v7988 - 4);
                        goto lab←L100058;
                        lab←L100056: ;
SOURCE(9420, 113)
                        if ((nw←v7988 >= 2)) {
SOURCE(9438, 23)
                           dst←v7752 = (dst←v7752 - 8);
SOURCE(9463, 23)
                           src←v7808 = (src←v7808 - 8);
SOURCE(9488, 15)
                           (* (( (ptr) dst←v7752)+1) ) = (* (( (ptr) src←v7808)+1) );
SOURCE(9505, 15)
                           (*  (ptr) dst←v7752 ) = (*  (ptr) src←v7808 );
SOURCE(9522, 11)
                           nw←v7988 = (nw←v7988 - 2);
                           };
SOURCE(9538, 78)
                        if ((nw←v7988 != 0)) {
SOURCE(9555, 21)
                           dst←v7752 = (dst←v7752 - 4);
SOURCE(9578, 21)
                           src←v7808 = (src←v7808 - 4);
SOURCE(9601, 15)
                           (*  (ptr) dst←v7752 ) = (*  (ptr) src←v7808 );
                           };
SOURCE(9621, 21)
                        dst←v7752 = (dst←v7752 - 4);
SOURCE(9644, 21)
                        src←v7808 = (src←v7808 - 4);
SOURCE(9667, 34)
                        {
                           word var←c21464;
                           {
/*1*/   word var←c21496;
/*1*/   word d←v13792;
/*1*/   word s←v13820;
/*1*/   d←v13792 = (*  (ptr) dst←v7752 );
/*1*/   s←v13820 = (*  (ptr) src←v7808 );
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c21560;
/*1*/      {
/*1*/         word var←c21592;
/*1*/         var←c21592 = (word) XRM←BITXOR(s←v13820, d←v13792);
/*1*/         var←c21560 = (word) XRM←BITAND(var←c21592, lMask←v7892);
/*1*/         };
/*1*/      var←c21496 = (word) XRM←BITXOR(var←c21560, d←v13792);
/*1*/      };
/*1*/   var←c21464 = var←c21496;
/*1*/   };
                           (*  (ptr) dst←v7752 ) = var←c21464;
                           };
                        };
                     break;
                  };
               };
            }
         else {
SOURCE(9713, 1594)
            {
               word w←v8032 = 0;
               word hi←v8060 = 0;
               word lo←v8088;
               word lSA←v8116;
               word rSA←v8144;
               word nsw←v8172;
               word fetchLeftmost←v8200;
               word fetchRightmost←v8228;
SOURCE(9873, 55)
               lSA←v8116 = ((srcBit←v7836 - dstBit←v7780) & 037);
SOURCE(9951, 51)
               rSA←v8144 = ((32 - lSA←v8116) & 037);
SOURCE(10058, 40)
               {
                  word bits←v11940;
                  bits←v11940 = (srcBit←v7836 + count←v5320);
SOURCE(1262, 32)
                  nsw←v8172 = ((bits←v11940 + 31) >> 5);
                  };
SOURCE(10100, 38)
               fetchLeftmost←v8200 = (srcBit←v7836 >= dstBit←v7780);
SOURCE(10140, 70)
               fetchRightmost←v8228 =  ( (0 != fetchLeftmost←v8200) ? (nsw←v8172 > ndw←v7864) : (nsw←v8172 >= ndw←v7864) ) ;
SOURCE(10477, 41)
               src←v7808 = ((src←v7808 + (nsw←v8172 << 2)) - 4);
SOURCE(10520, 34)
               if ((0 != fetchRightmost←v8228)) {
SOURCE(10543, 11)
SOURCE(10239, 7)
                  lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
                  hi←v8060 = (*  (ptr) src←v7808 );
SOURCE(10271, 21)
                  src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
                  w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
                  };
SOURCE(10556, 746)
               {
                  word var←c21656;
                  var←c21656 = ndw←v7864;
                  switch (var←c21656) {
                     case 1: 
SOURCE(10585, 88)
                        {
                           word bothMask←v8360;
SOURCE(10587, 37)
                           bothMask←v8360 = (word) XRM←BITAND(lMask←v7892, rMask←v7920);
SOURCE(10626, 11)
SOURCE(10366, 7)
                           lo←v8088 = hi←v8060;
SOURCE(10375, 55)
                           if ((0 != fetchLeftmost←v8200)) {
SOURCE(10405, 12)
SOURCE(10406, 11)
/*1*/   hi←v8060 = (*  (ptr) src←v7808 );
/*1*/   }
                           else {
SOURCE(10424, 6)
/*1*/   hi←v8060 = 0;
/*1*/   };
SOURCE(10432, 42)
                           w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10639, 32)
                           {
/*1*/   word var←c21688;
/*1*/   {
/*1*/      word var←c21720;
/*1*/      word d←v13716;
/*1*/      word s←v13744;
/*1*/      d←v13716 = (*  (ptr) dst←v7752 );
/*1*/      s←v13744 = w←v8032;
SOURCE(1756, 47)
/*1*/      {
/*1*/         word var←c21784;
/*1*/         {
/*1*/            word var←c21816;
/*1*/            var←c21816 = (word) XRM←BITXOR(s←v13744, d←v13716);
/*1*/            var←c21784 = (word) XRM←BITAND(var←c21816, bothMask←v8360);
/*1*/            };
/*1*/         var←c21720 = (word) XRM←BITXOR(var←c21784, d←v13716);
/*1*/         };
/*1*/      var←c21688 = var←c21720;
/*1*/      };
/*1*/   (*  (ptr) dst←v7752 ) = var←c21688;
/*1*/   };
                           };
                        break;
                     case 2: 
SOURCE(10689, 90)
SOURCE(10691, 11)
SOURCE(10239, 7)
                        lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
                        hi←v8060 = (*  (ptr) src←v7808 );
SOURCE(10271, 21)
                        src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
                        w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10704, 29)
                        {
                           word var←c21848;
                           {
/*1*/   word var←c21880;
/*1*/   word d←v13640;
/*1*/   word s←v13668;
/*1*/   d←v13640 = (* (( (ptr) dst←v7752)+1) );
/*1*/   s←v13668 = w←v8032;
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c21944;
/*1*/      {
/*1*/         word var←c21976;
/*1*/         var←c21976 = (word) XRM←BITXOR(s←v13668, d←v13640);
/*1*/         var←c21944 = (word) XRM←BITAND(var←c21976, rMask←v7920);
/*1*/         };
/*1*/      var←c21880 = (word) XRM←BITXOR(var←c21944, d←v13640);
/*1*/      };
/*1*/   var←c21848 = var←c21880;
/*1*/   };
                           (* (( (ptr) dst←v7752)+1) ) = var←c21848;
                           };
SOURCE(10735, 11)
SOURCE(10366, 7)
                        lo←v8088 = hi←v8060;
SOURCE(10375, 55)
                        if ((0 != fetchLeftmost←v8200)) {
SOURCE(10405, 12)
SOURCE(10406, 11)
                           hi←v8060 = (*  (ptr) src←v7808 );
                           }
                        else {
SOURCE(10424, 6)
                           hi←v8060 = 0;
                           };
SOURCE(10432, 42)
                        w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10748, 29)
                        {
                           word var←c22008;
                           {
/*1*/   word var←c22040;
/*1*/   word d←v13564;
/*1*/   word s←v13592;
/*1*/   d←v13564 = (*  (ptr) dst←v7752 );
/*1*/   s←v13592 = w←v8032;
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c22104;
/*1*/      {
/*1*/         word var←c22136;
/*1*/         var←c22136 = (word) XRM←BITXOR(s←v13592, d←v13564);
/*1*/         var←c22104 = (word) XRM←BITAND(var←c22136, lMask←v7892);
/*1*/         };
/*1*/      var←c22040 = (word) XRM←BITXOR(var←c22104, d←v13564);
/*1*/      };
/*1*/   var←c22008 = var←c22040;
/*1*/   };
                           (*  (ptr) dst←v7752 ) = var←c22008;
                           };
                        break;
                     case 3: 
SOURCE(10795, 115)
SOURCE(10797, 11)
SOURCE(10239, 7)
                        lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
                        hi←v8060 = (*  (ptr) src←v7808 );
SOURCE(10271, 21)
                        src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
                        w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10810, 29)
                        {
                           word var←c22168;
                           {
/*1*/   word var←c22200;
/*1*/   word d←v13488;
/*1*/   word s←v13516;
/*1*/   d←v13488 = (* (( (ptr) dst←v7752)+2) );
/*1*/   s←v13516 = w←v8032;
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c22264;
/*1*/      {
/*1*/         word var←c22296;
/*1*/         var←c22296 = (word) XRM←BITXOR(s←v13516, d←v13488);
/*1*/         var←c22264 = (word) XRM←BITAND(var←c22296, rMask←v7920);
/*1*/         };
/*1*/      var←c22200 = (word) XRM←BITXOR(var←c22264, d←v13488);
/*1*/      };
/*1*/   var←c22168 = var←c22200;
/*1*/   };
                           (* (( (ptr) dst←v7752)+2) ) = var←c22168;
                           };
SOURCE(10841, 11)
SOURCE(10239, 7)
                        lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
                        hi←v8060 = (*  (ptr) src←v7808 );
SOURCE(10271, 21)
                        src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
                        w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10854, 10)
                        (* (( (ptr) dst←v7752)+1) ) = w←v8032;
SOURCE(10866, 11)
SOURCE(10366, 7)
                        lo←v8088 = hi←v8060;
SOURCE(10375, 55)
                        if ((0 != fetchLeftmost←v8200)) {
SOURCE(10405, 12)
SOURCE(10406, 11)
                           hi←v8060 = (*  (ptr) src←v7808 );
                           }
                        else {
SOURCE(10424, 6)
                           hi←v8060 = 0;
                           };
SOURCE(10432, 42)
                        w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10879, 29)
                        {
                           word var←c22328;
                           {
/*1*/   word var←c22360;
/*1*/   word d←v13412;
/*1*/   word s←v13440;
/*1*/   d←v13412 = (*  (ptr) dst←v7752 );
/*1*/   s←v13440 = w←v8032;
SOURCE(1756, 47)
/*1*/   {
/*1*/      word var←c22424;
/*1*/      {
/*1*/         word var←c22456;
/*1*/         var←c22456 = (word) XRM←BITXOR(s←v13440, d←v13412);
/*1*/         var←c22424 = (word) XRM←BITAND(var←c22456, lMask←v7892);
/*1*/         };
/*1*/      var←c22360 = (word) XRM←BITXOR(var←c22424, d←v13412);
/*1*/      };
/*1*/   var←c22328 = var←c22360;
/*1*/   };
                           (*  (ptr) dst←v7752 ) = var←c22328;
                           };
                        break;
                     default: 
SOURCE(10932, 372)
                        {
                           word nw←v8404;
SOURCE(10934, 32)
                           nw←v8404 = (ndw←v7864 - 2);
SOURCE(10968, 11)
SOURCE(10239, 7)
                           lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
                           hi←v8060 = (*  (ptr) src←v7808 );
SOURCE(10271, 21)
                           src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
                           w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(10981, 41)
                           dst←v7752 = ((dst←v7752 + (ndw←v7864 << 2)) - 4);
SOURCE(11024, 29)
                           {
/*1*/   word var←c22488;
/*1*/   {
/*1*/      word var←c22520;
/*1*/      word d←v13336;
/*1*/      word s←v13364;
/*1*/      d←v13336 = (*  (ptr) dst←v7752 );
/*1*/      s←v13364 = w←v8032;
SOURCE(1756, 47)
/*1*/      {
/*1*/         word var←c22584;
/*1*/         {
/*1*/            word var←c22616;
/*1*/            var←c22616 = (word) XRM←BITXOR(s←v13364, d←v13336);
/*1*/            var←c22584 = (word) XRM←BITAND(var←c22616, rMask←v7920);
/*1*/            };
/*1*/         var←c22520 = (word) XRM←BITXOR(var←c22584, d←v13336);
/*1*/         };
/*1*/      var←c22488 = var←c22520;
/*1*/      };
/*1*/   (*  (ptr) dst←v7752 ) = var←c22488;
/*1*/   };
SOURCE(11055, 103)
                           lab←L100069: ;
                           if ((nw←v8404 >= 2)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100067;
/*1*/   };
SOURCE(11072, 23)
                           dst←v7752 = (dst←v7752 - 8);
SOURCE(11097, 11)
SOURCE(10239, 7)
                           lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
                           hi←v8060 = (*  (ptr) src←v7808 );
SOURCE(10271, 21)
                           src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
                           w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(11110, 10)
                           (* (( (ptr) dst←v7752)+1) ) = w←v8032;
SOURCE(11122, 11)
SOURCE(10239, 7)
                           lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
                           hi←v8060 = (*  (ptr) src←v7808 );
SOURCE(10271, 21)
                           src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
                           w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(11135, 10)
                           (*  (ptr) dst←v7752 ) = w←v8032;
SOURCE(11147, 11)
                           nw←v8404 = (nw←v8404 - 2);
                           goto lab←L100069;
                           lab←L100067: ;
SOURCE(11169, 63)
                           if ((nw←v8404 != 0)) {
SOURCE(11186, 21)
/*1*/   dst←v7752 = (dst←v7752 - 4);
SOURCE(11209, 11)
SOURCE(10239, 7)
/*1*/   lo←v8088 = hi←v8060;
SOURCE(10256, 12)
SOURCE(10257, 11)
/*1*/   hi←v8060 = (*  (ptr) src←v7808 );
SOURCE(10271, 21)
/*1*/   src←v7808 = (src←v7808 - 4);
SOURCE(10294, 42)
/*1*/   w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(11222, 10)
/*1*/   (*  (ptr) dst←v7752 ) = w←v8032;
/*1*/   };
SOURCE(11237, 21)
                           dst←v7752 = (dst←v7752 - 4);
SOURCE(11260, 11)
SOURCE(10366, 7)
                           lo←v8088 = hi←v8060;
SOURCE(10375, 55)
                           if ((0 != fetchLeftmost←v8200)) {
SOURCE(10405, 12)
SOURCE(10406, 11)
/*1*/   hi←v8060 = (*  (ptr) src←v7808 );
/*1*/   }
                           else {
SOURCE(10424, 6)
/*1*/   hi←v8060 = 0;
/*1*/   };
SOURCE(10432, 42)
                           w←v8032 = ((word) XRM←BITLSHIFT(hi←v8060, lSA←v8116) + (word) XRM←BITRSHIFT(lo←v8088, rSA←v8144));
SOURCE(11273, 29)
                           {
/*1*/   word var←c22648;
/*1*/   {
/*1*/      word var←c22680;
/*1*/      word d←v13260;
/*1*/      word s←v13288;
/*1*/      d←v13260 = (*  (ptr) dst←v7752 );
/*1*/      s←v13288 = w←v8032;
SOURCE(1756, 47)
/*1*/      {
/*1*/         word var←c22744;
/*1*/         {
/*1*/            word var←c22776;
/*1*/            var←c22776 = (word) XRM←BITXOR(s←v13288, d←v13260);
/*1*/            var←c22744 = (word) XRM←BITAND(var←c22776, lMask←v7892);
/*1*/            };
/*1*/         var←c22680 = (word) XRM←BITXOR(var←c22744, d←v13260);
/*1*/         };
/*1*/      var←c22648 = var←c22680;
/*1*/      };
/*1*/   (*  (ptr) dst←v7752 ) = var←c22648;
/*1*/   };
                           };
                        break;
                     };
                  };
               };
            };
         };
      };
   }

extern void Basics←MoveBits(dstBase←v5404, dstStart←v5432, srcBase←v5460, srcStart←v5488, count←v5516)
   word dstBase←v5404;
   word dstStart←v5432;
   word srcBase←v5460;
   word srcStart←v5488;
   word count←v5516;
   {
   word d0←v8448;
   word s0←v8476;
   /* MoveBits: */ 
SOURCE(11317, 572)
SOURCE(11462, 54)
   d0←v8448 = ((dstBase←v5404 << 3) + dstStart←v5432);
SOURCE(11518, 54)
   s0←v8476 = ((srcBase←v5460 << 3) + srcStart←v5488);
SOURCE(11574, 315)
   if ( ( (d0←v8448 > s0←v8476) ? (d0←v8448 < (s0←v8476 + count←v5516)) : 0 ) ) {
SOURCE(11664, 96)
      {
         register word i←v8520;
         i←v8520 = count←v5516;
         if ((0 >= i←v8520)) {
            goto lab←L100071;
            };
         i←v8520 = (i←v8520 - 1);
         lab←L100074: ;
SOURCE(11716, 44)
SOURCE(11718, 42)
         {
            word x2;
            word x3;
            x2 = (word) (( (ptr) dstBase←v5404) + ((dstStart←v5432 + i←v8520) >> 5));
            x3 = 32 - (((dstStart←v5432 + i←v8520) & 037)+1);
            (*  (ptr) x2 ) = ((*  (ptr) x2 ) & ( ~ (1 << x3))) | (((((*  (ptr) (( (ptr) srcBase←v5460) + ((srcStart←v5488 + i←v8520) >> 5)) ) >> (31 - (((srcStart←v5488 + 
                  i←v8520) & 037)))) & 1)) << x3);
            };
         if ((0 >= i←v8520)) {
            goto lab←L100071;
            };
         i←v8520 = (i←v8520 - 1);
         goto lab←L100074;
         lab←L100071: ;
         };
      }
   else {
SOURCE(11787, 102)
SOURCE(11789, 98)
      (void) Basics←CopyBits(dstBase←v5404, dstStart←v5432, srcBase←v5460, srcStart←v5488, count←v5516);
      };
   }

extern void Basics←FillBits(dstBase←v5600, dstStart←v5628, count←v5656, value←v5684)
   word dstBase←v5600;
   word dstStart←v5628;
   word count←v5656;
   word value←v5684;
   {
   register ptr gf←c24344 =  (ptr) &globalframe;
   word dstCorr←v8564;
   /* FillBits: */ 
SOURCE(11896, 1187)
SOURCE(12008, 55)
   dstCorr←v8564 = (dstBase←v5600 & 3);
SOURCE(12065, 135)
   if ((dstCorr←v8564 != 0)) {
SOURCE(12085, 117)
      {
         word p←v8608;
SOURCE(12087, 21)
         p←v8608 = (* (( (ptr) gf←c24344)+5)/* logMisalign←v2916 */  );
SOURCE(12110, 19)
         if ((p←v8608 != 0)) {
SOURCE(12126, 3)
            (void) ( *( (fPt) ((*  (ptr) p←v8608 ))))(p←v8608);
            };
SOURCE(12131, 27)
         dstBase←v5600 = (dstBase←v5600 - dstCorr←v8564);
SOURCE(12160, 40)
         dstStart←v5628 = (dstStart←v5628 + (dstCorr←v8564 << 3));
         };
      };
SOURCE(12205, 878)
   if ((count←v5656 != 0)) {
SOURCE(12223, 865)
      {
         word dst←v8668;
         word dstBit←v8696;
         word ndw←v8724;
         word lMask←v8752;
         word rMask←v8780;
SOURCE(12225, 58)
         {
            word base←v12612;
            base←v12612 = dstBase←v5600;
SOURCE(1634, 64)
            dst←v8668 = (base←v12612 + ((dstStart←v5628 >> 5) << 2));
            };
SOURCE(12285, 33)
         dstBit←v8696 = (dstStart←v5628 & 037);
SOURCE(12320, 40)
         {
            word bits←v11892;
            bits←v11892 = (dstBit←v8696 + count←v5656);
SOURCE(1262, 32)
            ndw←v8724 = ((bits←v11892 + 31) >> 5);
            };
SOURCE(12362, 44)
         {
            word n←v12180;
            n←v12180 = (32 - dstBit←v8696);
SOURCE(1363, 45)
            lMask←v8752 = (((word) XRM←BITLSHIFT(1, (n←v12180 & 037)) - 1) - (n←v12180 >> 5));
            };
SOURCE(12408, 77)
         {
            word n←v12372;
            n←v12372 = (((32 - dstBit←v8696) - count←v5656) & 037);
SOURCE(1476, 43)
            rMask←v8780 = INEG((word) XRM←BITRSHIFT(2147483648, (31 - n←v12372)));
            };
SOURCE(12487, 596)
         {
            word var←c23000;
            var←c23000 = ndw←v8724;
            if ((var←c23000 == 1)) {
SOURCE(12516, 52)
SOURCE(12518, 48)
               {
                  word var←c23032;
                  {
                     word var←c23064;
                     word d←v13156;
                     word s←v13184;
                     word mask←v13212;
                     d←v13156 = (*  (ptr) dst←v8668 );
                     s←v13184 = value←v5684;
                     mask←v13212 = (word) XRM←BITAND(lMask←v8752, rMask←v8780);
SOURCE(1756, 47)
                     {
                        word var←c23128;
                        {
                           word var←c23160;
                           var←c23160 = (word) XRM←BITXOR(s←v13184, d←v13156);
                           var←c23128 = (word) XRM←BITAND(var←c23160, mask←v13212);
                           };
                        var←c23064 = (word) XRM←BITXOR(var←c23128, d←v13156);
                        };
                     var←c23032 = var←c23064;
                     };
                  (*  (ptr) dst←v8668 ) = var←c23032;
                  };
               }
            else {
               if ((var←c23000 == 2)) {
SOURCE(12584, 72)
SOURCE(12586, 33)
                  {
                     word var←c23192;
                     {
                        word var←c23224;
                        word d←v13080;
                        word s←v13108;
                        d←v13080 = (*  (ptr) dst←v8668 );
                        s←v13108 = value←v5684;
SOURCE(1756, 47)
                        {
                           word var←c23288;
                           {
/*1*/   word var←c23320;
/*1*/   var←c23320 = (word) XRM←BITXOR(s←v13108, d←v13080);
/*1*/   var←c23288 = (word) XRM←BITAND(var←c23320, lMask←v8752);
/*1*/   };
                           var←c23224 = (word) XRM←BITXOR(var←c23288, d←v13080);
                           };
                        var←c23192 = var←c23224;
                        };
                     (*  (ptr) dst←v8668 ) = var←c23192;
                     };
SOURCE(12621, 33)
                  {
                     word var←c23352;
                     {
                        word var←c23384;
                        word d←v13004;
                        word s←v13032;
                        d←v13004 = (* (( (ptr) dst←v8668)+1) );
                        s←v13032 = value←v5684;
SOURCE(1756, 47)
                        {
                           word var←c23448;
                           {
/*1*/   word var←c23480;
/*1*/   var←c23480 = (word) XRM←BITXOR(s←v13032, d←v13004);
/*1*/   var←c23448 = (word) XRM←BITAND(var←c23480, rMask←v8780);
/*1*/   };
                           var←c23384 = (word) XRM←BITXOR(var←c23448, d←v13004);
                           };
                        var←c23352 = var←c23384;
                        };
                     (* (( (ptr) dst←v8668)+1) ) = var←c23352;
                     };
                  }
               else {
SOURCE(12678, 407)
                  {
                     word nw←v8836;
SOURCE(12680, 32)
                     nw←v8836 = (ndw←v8724 - 2);
SOURCE(12714, 33)
                     {
                        word var←c23512;
                        {
                           word var←c23544;
                           word d←v12928;
                           word s←v12956;
                           d←v12928 = (*  (ptr) dst←v8668 );
                           s←v12956 = value←v5684;
SOURCE(1756, 47)
                           {
/*1*/   word var←c23608;
/*1*/   {
/*1*/      word var←c23640;
/*1*/      var←c23640 = (word) XRM←BITXOR(s←v12956, d←v12928);
/*1*/      var←c23608 = (word) XRM←BITAND(var←c23640, lMask←v8752);
/*1*/      };
/*1*/   var←c23544 = (word) XRM←BITXOR(var←c23608, d←v12928);
/*1*/   };
                           var←c23512 = var←c23544;
                           };
                        (*  (ptr) dst←v8668 ) = var←c23512;
                        };
SOURCE(12749, 21)
                     dst←v8668 = (dst←v8668 + 4);
SOURCE(12772, 117)
                     lab←L100085: ;
                     if ((nw←v8836 >= 4)) {
                        }
                     else {
                        goto lab←L100083;
                        };
SOURCE(12789, 14)
                     (*  (ptr) dst←v8668 ) = value←v5684;
SOURCE(12805, 14)
                     (* (( (ptr) dst←v8668)+1) ) = value←v5684;
SOURCE(12821, 14)
                     (* (( (ptr) dst←v8668)+2) ) = value←v5684;
SOURCE(12837, 14)
                     (* (( (ptr) dst←v8668)+3) ) = value←v5684;
SOURCE(12853, 23)
                     dst←v8668 = (dst←v8668 + 16);
SOURCE(12878, 11)
                     nw←v8836 = (nw←v8836 - 4);
                     goto lab←L100085;
                     lab←L100083: ;
SOURCE(12900, 86)
                     if ((nw←v8836 >= 2)) {
SOURCE(12918, 14)
                        (*  (ptr) dst←v8668 ) = value←v5684;
SOURCE(12934, 14)
                        (* (( (ptr) dst←v8668)+1) ) = value←v5684;
SOURCE(12950, 23)
                        dst←v8668 = (dst←v8668 + 8);
SOURCE(12975, 11)
                        nw←v8836 = (nw←v8836 - 2);
                        };
SOURCE(12991, 54)
                     if ((nw←v8836 != 0)) {
SOURCE(13008, 15)
                        (*  (ptr) dst←v8668 ) = value←v5684;
SOURCE(13025, 20)
                        dst←v8668 = (dst←v8668 + 4);
                        };
SOURCE(13050, 33)
                     {
                        word var←c23672;
                        {
                           word var←c23704;
                           word d←v12852;
                           word s←v12880;
                           d←v12852 = (*  (ptr) dst←v8668 );
                           s←v12880 = value←v5684;
SOURCE(1756, 47)
                           {
/*1*/   word var←c23768;
/*1*/   {
/*1*/      word var←c23800;
/*1*/      var←c23800 = (word) XRM←BITXOR(s←v12880, d←v12852);
/*1*/      var←c23768 = (word) XRM←BITAND(var←c23800, rMask←v8780);
/*1*/      };
/*1*/   var←c23704 = (word) XRM←BITXOR(var←c23768, d←v12852);
/*1*/   };
                           var←c23672 = var←c23704;
                           };
                        (*  (ptr) dst←v8668 ) = var←c23672;
                        };
                     };
                  };
               };
            };
         };
      };
   }

extern word Basics←CompareBits(aBase←v5756, aStart←v5784, bBase←v5812, bStart←v5840, count←v5868)
   word aBase←v5756;
   word aStart←v5784;
   word bBase←v5812;
   word bStart←v5840;
   word count←v5868;
   {
   register ptr gf←c24376 =  (ptr) &globalframe;
   word var←c5936;
   word aCorr←v8880;
   word bCorr←v8908;
   /* CompareBits: */ 
SOURCE(13095, 4091)
SOURCE(13256, 51)
   aCorr←v8880 = (aBase←v5756 & 3);
SOURCE(13309, 51)
   bCorr←v8908 = (aBase←v5756 & 3);
SOURCE(13362, 186)
   if (((aCorr←v8880 + bCorr←v8908) != 0)) {
SOURCE(13386, 164)
      {
         word p←v8952;
SOURCE(13388, 21)
         p←v8952 = (* (( (ptr) gf←c24376)+5)/* logMisalign←v2916 */  );
SOURCE(13411, 19)
         if ((p←v8952 != 0)) {
SOURCE(13427, 3)
            (void) ( *( (fPt) ((*  (ptr) p←v8952 ))))(p←v8952);
            };
SOURCE(13432, 21)
         aBase←v5756 = (aBase←v5756 - aCorr←v8880);
SOURCE(13455, 34)
         aStart←v5784 = (aStart←v5784 + (aCorr←v8880 << 3));
SOURCE(13491, 21)
         bBase←v5812 = (bBase←v5812 - bCorr←v8908);
SOURCE(13514, 34)
         bStart←v5840 = (bStart←v5840 + (bCorr←v8908 << 3));
         };
      };
SOURCE(13553, 3613)
   if ((count←v5868 != 0)) {
SOURCE(13571, 3598)
      {
         word a←v9012;
         word aBit←v9040;
         word b←v9068;
         word bBit←v9096;
         word ndw←v9124;
         word lMask←v9152;
         word rMask←v9180;
         word aWord←v9208 = 0;
         word bWord←v9236 = 0;
SOURCE(13573, 52)
         {
            word base←v12564;
            base←v12564 = aBase←v5756;
SOURCE(1634, 64)
            a←v9012 = (base←v12564 + ((aStart←v5784 >> 5) << 2));
            };
SOURCE(13627, 29)
         aBit←v9040 = (aStart←v5784 & 037);
SOURCE(13658, 52)
         {
            word base←v12516;
            base←v12516 = bBase←v5812;
SOURCE(1634, 64)
            b←v9068 = (base←v12516 + ((bStart←v5840 >> 5) << 2));
            };
SOURCE(13712, 29)
         bBit←v9096 = (bStart←v5840 & 037);
SOURCE(13743, 38)
         {
            word bits←v11844;
            bits←v11844 = (aBit←v9040 + count←v5868);
SOURCE(1262, 32)
            ndw←v9124 = ((bits←v11844 + 31) >> 5);
            };
SOURCE(13783, 42)
         {
            word n←v12132;
            n←v12132 = (32 - aBit←v9040);
SOURCE(1363, 45)
            lMask←v9152 = (((word) XRM←BITLSHIFT(1, (n←v12132 & 037)) - 1) - (n←v12132 >> 5));
            };
SOURCE(13827, 75)
         {
            word n←v12324;
            n←v12324 = (((32 - aBit←v9040) - count←v5868) & 037);
SOURCE(1476, 43)
            rMask←v9180 = INEG((word) XRM←BITRSHIFT(2147483648, (31 - n←v12324)));
            };
SOURCE(14084, 3082)
SOURCE(14086, 2984)
         if ((aBit←v9040 == bBit←v9096)) {
SOURCE(14135, 899)
            {
               word var←c24056;
               var←c24056 = ndw←v9124;
               switch (var←c24056) {
                  case 1: 
SOURCE(14164, 74)
SOURCE(14166, 35)
                     {
                        word aW←v16432;
                        word bW←v16460;
                        word m←v16488;
                        aW←v16432 = (*  (ptr) a←v9012 );
                        bW←v16460 = (*  (ptr) b←v9068 );
                        m←v16488 = (word) XRM←BITAND(lMask←v9152, rMask←v9180);
SOURCE(13975, 21)
                        aWord←v9208 = (word) XRM←BITAND(aW←v16432, m←v16488);
SOURCE(13998, 21)
                        bWord←v9236 = (word) XRM←BITAND(bW←v16460, m←v16488);
                        };
SOURCE(14203, 22)
                     if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14225, 11)
                        goto lab←L100092;
                        };
                     break;
                  case 2: 
SOURCE(14254, 116)
SOURCE(14256, 20)
                     {
                        word aW←v16356;
                        word bW←v16384;
                        aW←v16356 = (*  (ptr) a←v9012 );
                        bW←v16384 = (*  (ptr) b←v9068 );
SOURCE(13975, 21)
                        aWord←v9208 = (word) XRM←BITAND(aW←v16356, lMask←v9152);
SOURCE(13998, 21)
                        bWord←v9236 = (word) XRM←BITAND(bW←v16384, lMask←v9152);
                        };
SOURCE(14278, 22)
                     if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14300, 11)
                        goto lab←L100092;
                        };
SOURCE(14313, 20)
                     {
                        word aW←v16280;
                        word bW←v16308;
                        aW←v16280 = (* (( (ptr) a←v9012)+1) );
                        bW←v16308 = (* (( (ptr) b←v9068)+1) );
SOURCE(13975, 21)
                        aWord←v9208 = (word) XRM←BITAND(aW←v16280, rMask←v9180);
SOURCE(13998, 21)
                        bWord←v9236 = (word) XRM←BITAND(bW←v16308, rMask←v9180);
                        };
SOURCE(14335, 22)
                     if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14357, 11)
                        goto lab←L100092;
                        };
                     break;
                  case 3: 
SOURCE(14386, 166)
SOURCE(14388, 20)
                     {
                        word aW←v16204;
                        word bW←v16232;
                        aW←v16204 = (*  (ptr) a←v9012 );
                        bW←v16232 = (*  (ptr) b←v9068 );
SOURCE(13975, 21)
                        aWord←v9208 = (word) XRM←BITAND(aW←v16204, lMask←v9152);
SOURCE(13998, 21)
                        bWord←v9236 = (word) XRM←BITAND(bW←v16232, lMask←v9152);
                        };
SOURCE(14410, 22)
                     if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14432, 11)
                        goto lab←L100092;
                        };
SOURCE(14445, 13)
                     {
                        word aW←v17068;
                        word bW←v17096;
                        aW←v17068 = (* (( (ptr) a←v9012)+1) );
                        bW←v17096 = (* (( (ptr) b←v9068)+1) );
SOURCE(14058, 10)
                        aWord←v9208 = aW←v17068;
SOURCE(14070, 11)
                        bWord←v9236 = bW←v17096;
                        };
SOURCE(14460, 22)
                     if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14482, 11)
                        goto lab←L100092;
                        };
SOURCE(14495, 20)
                     {
                        word aW←v16128;
                        word bW←v16156;
                        aW←v16128 = (* (( (ptr) a←v9012)+2) );
                        bW←v16156 = (* (( (ptr) b←v9068)+2) );
SOURCE(13975, 21)
                        aWord←v9208 = (word) XRM←BITAND(aW←v16128, rMask←v9180);
SOURCE(13998, 21)
                        bWord←v9236 = (word) XRM←BITAND(bW←v16156, rMask←v9180);
                        };
SOURCE(14517, 22)
                     if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14539, 11)
                        goto lab←L100092;
                        };
                     break;
                  default: 
SOURCE(14574, 473)
                     {
                        word nw←v9564;
SOURCE(14576, 32)
                        nw←v9564 = (ndw←v9124 - 2);
SOURCE(14610, 20)
                        {
                           word aW←v16052;
                           word bW←v16080;
                           aW←v16052 = (*  (ptr) a←v9012 );
                           bW←v16080 = (*  (ptr) b←v9068 );
SOURCE(13975, 21)
                           aWord←v9208 = (word) XRM←BITAND(aW←v16052, lMask←v9152);
SOURCE(13998, 21)
                           bWord←v9236 = (word) XRM←BITAND(bW←v16080, lMask←v9152);
                           };
SOURCE(14632, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14654, 11)
                           goto lab←L100092;
                           };
SOURCE(14667, 17)
                        a←v9012 = (a←v9012 + 4);
SOURCE(14686, 17)
                        b←v9068 = (b←v9068 + 4);
SOURCE(14705, 168)
                        lab←L100095: ;
                        if ((nw←v9564 >= 2)) {
                           }
                        else {
                           goto lab←L100093;
                           };
SOURCE(14722, 13)
                        {
                           word aW←v16992;
                           word bW←v17020;
                           aW←v16992 = (*  (ptr) a←v9012 );
                           bW←v17020 = (*  (ptr) b←v9068 );
SOURCE(14058, 10)
                           aWord←v9208 = aW←v16992;
SOURCE(14070, 11)
                           bWord←v9236 = bW←v17020;
                           };
SOURCE(14737, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14759, 11)
                           goto lab←L100092;
                           };
SOURCE(14772, 13)
                        {
                           word aW←v16916;
                           word bW←v16944;
                           aW←v16916 = (* (( (ptr) a←v9012)+1) );
                           bW←v16944 = (* (( (ptr) b←v9068)+1) );
SOURCE(14058, 10)
                           aWord←v9208 = aW←v16916;
SOURCE(14070, 11)
                           bWord←v9236 = bW←v16944;
                           };
SOURCE(14787, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14809, 11)
                           goto lab←L100092;
                           };
SOURCE(14822, 18)
                        a←v9012 = (a←v9012 + 8);
SOURCE(14842, 18)
                        b←v9068 = (b←v9068 + 8);
SOURCE(14862, 11)
                        nw←v9564 = (nw←v9564 - 2);
                        goto lab←L100095;
                        lab←L100093: ;
SOURCE(14884, 101)
                        if ((nw←v9564 != 0)) {
SOURCE(14901, 13)
                           {
/*1*/   word aW←v16840;
/*1*/   word bW←v16868;
/*1*/   aW←v16840 = (*  (ptr) a←v9012 );
/*1*/   bW←v16868 = (*  (ptr) b←v9068 );
SOURCE(14058, 10)
/*1*/   aWord←v9208 = aW←v16840;
SOURCE(14070, 11)
/*1*/   bWord←v9236 = bW←v16868;
/*1*/   };
SOURCE(14916, 22)
                           if ((aWord←v9208 != bWord←v9236)) {
SOURCE(14938, 11)
/*1*/   goto lab←L100092;
/*1*/   };
SOURCE(14951, 16)
                           a←v9012 = (a←v9012 + 4);
SOURCE(14969, 16)
                           b←v9068 = (b←v9068 + 4);
                           };
SOURCE(14990, 20)
                        {
                           word aW←v15976;
                           word bW←v16004;
                           aW←v15976 = (*  (ptr) a←v9012 );
                           bW←v16004 = (*  (ptr) b←v9068 );
SOURCE(13975, 21)
                           aWord←v9208 = (word) XRM←BITAND(aW←v15976, rMask←v9180);
SOURCE(13998, 21)
                           bWord←v9236 = (word) XRM←BITAND(bW←v16004, rMask←v9180);
                           };
SOURCE(15012, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(15034, 11)
                           goto lab←L100092;
                           };
                        };
                     break;
                  };
               };
            }
         else {
SOURCE(15057, 2029)
            {
               word w←v9608 = 0;
               word hi←v9636;
               word lo←v9664 = 0;
               word lSA←v9692;
               word rSA←v9720;
               word nsw←v9748;
               word fetchLastWord←v9776;
SOURCE(15217, 51)
               lSA←v9692 = ((bBit←v9096 - aBit←v9040) & 037);
SOURCE(15291, 51)
               rSA←v9720 = ((32 - lSA←v9692) & 037);
SOURCE(15398, 38)
               {
                  word bits←v11796;
                  bits←v11796 = (bBit←v9096 + count←v5868);
SOURCE(1262, 32)
                  nsw←v9748 = ((bits←v11796 + 31) >> 5);
                  };
SOURCE(15438, 68)
               fetchLastWord←v9776 =  ( (bBit←v9096 >= aBit←v9040) ? (nsw←v9748 > ndw←v9124) : (nsw←v9748 >= ndw←v9124) ) ;
SOURCE(15910, 32)
               if ((bBit←v9096 >= aBit←v9040)) {
SOURCE(15931, 11)
SOURCE(15535, 7)
                  hi←v9636 = lo←v9664;
SOURCE(15552, 10)
SOURCE(15553, 9)
                  lo←v9664 = (*  (ptr) b←v9068 );
SOURCE(15565, 16)
                  b←v9068 = (b←v9068 + 4);
SOURCE(15583, 42)
                  w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
                  };
SOURCE(15944, 1126)
               {
                  word var←c24120;
                  var←c24120 = ndw←v9124;
                  switch (var←c24120) {
                     case 1: 
SOURCE(15973, 127)
                        {
                           word bothMask←v10068;
SOURCE(15975, 37)
                           bothMask←v10068 = (word) XRM←BITAND(lMask←v9152, rMask←v9180);
SOURCE(16014, 27)
SOURCE(15820, 22)
                           w←v9608 = (word) XRM←BITLSHIFT(lo←v9664, lSA←v9692);
SOURCE(15844, 60)
                           if ((0 != fetchLastWord←v9776)) {
SOURCE(15866, 38)
SOURCE(15867, 37)
/*1*/   w←v9608 = (w←v9608 + (word) XRM←BITRSHIFT((*  (ptr) b←v9068 ), rSA←v9720));
/*1*/   };
SOURCE(16043, 20)
                           {
/*1*/   word aW←v15900;
/*1*/   word bW←v15928;
/*1*/   aW←v15900 = (*  (ptr) a←v9012 );
/*1*/   bW←v15928 = w←v9608;
SOURCE(13975, 21)
/*1*/   aWord←v9208 = (word) XRM←BITAND(aW←v15900, bothMask←v10068);
SOURCE(13998, 21)
/*1*/   bWord←v9236 = (word) XRM←BITAND(bW←v15928, bothMask←v10068);
/*1*/   };
SOURCE(16065, 22)
                           if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16087, 11)
/*1*/   goto lab←L100092;
/*1*/   };
                           };
                        break;
                     case 2: 
SOURCE(16116, 156)
SOURCE(16118, 15)
SOURCE(15677, 7)
                        hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
                        lo←v9664 = (*  (ptr) b←v9068 );
SOURCE(15716, 42)
                        w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16135, 17)
                        {
                           word aW←v15824;
                           word bW←v15852;
                           aW←v15824 = (*  (ptr) a←v9012 );
                           bW←v15852 = w←v9608;
SOURCE(13975, 21)
                           aWord←v9208 = (word) XRM←BITAND(aW←v15824, lMask←v9152);
SOURCE(13998, 21)
                           bWord←v9236 = (word) XRM←BITAND(bW←v15852, lMask←v9152);
                           };
SOURCE(16154, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16176, 11)
                           goto lab←L100092;
                           };
SOURCE(16189, 27)
SOURCE(15820, 22)
                        w←v9608 = (word) XRM←BITLSHIFT(lo←v9664, lSA←v9692);
SOURCE(15844, 60)
                        if ((0 != fetchLastWord←v9776)) {
SOURCE(15866, 38)
SOURCE(15867, 37)
                           w←v9608 = (w←v9608 + (word) XRM←BITRSHIFT((* (( (ptr) b←v9068)+1) ), rSA←v9720));
                           };
SOURCE(16218, 17)
                        {
                           word aW←v15748;
                           word bW←v15776;
                           aW←v15748 = (* (( (ptr) a←v9012)+1) );
                           bW←v15776 = w←v9608;
SOURCE(13975, 21)
                           aWord←v9208 = (word) XRM←BITAND(aW←v15748, rMask←v9180);
SOURCE(13998, 21)
                           bWord←v9236 = (word) XRM←BITAND(bW←v15776, rMask←v9180);
                           };
SOURCE(16237, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16259, 11)
                           goto lab←L100092;
                           };
                        break;
                     case 3: 
SOURCE(16288, 220)
SOURCE(16290, 15)
SOURCE(15677, 7)
                        hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
                        lo←v9664 = (*  (ptr) b←v9068 );
SOURCE(15716, 42)
                        w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16307, 17)
                        {
                           word aW←v15672;
                           word bW←v15700;
                           aW←v15672 = (*  (ptr) a←v9012 );
                           bW←v15700 = w←v9608;
SOURCE(13975, 21)
                           aWord←v9208 = (word) XRM←BITAND(aW←v15672, lMask←v9152);
SOURCE(13998, 21)
                           bWord←v9236 = (word) XRM←BITAND(bW←v15700, lMask←v9152);
                           };
SOURCE(16326, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16348, 11)
                           goto lab←L100092;
                           };
SOURCE(16361, 15)
SOURCE(15677, 7)
                        hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
                        lo←v9664 = (* (( (ptr) b←v9068)+1) );
SOURCE(15716, 42)
                        w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16378, 10)
                        {
                           word aW←v16764;
                           word bW←v16792;
                           aW←v16764 = (* (( (ptr) a←v9012)+1) );
                           bW←v16792 = w←v9608;
SOURCE(14058, 10)
                           aWord←v9208 = aW←v16764;
SOURCE(14070, 11)
                           bWord←v9236 = bW←v16792;
                           };
SOURCE(16390, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16412, 11)
                           goto lab←L100092;
                           };
SOURCE(16425, 27)
SOURCE(15820, 22)
                        w←v9608 = (word) XRM←BITLSHIFT(lo←v9664, lSA←v9692);
SOURCE(15844, 60)
                        if ((0 != fetchLastWord←v9776)) {
SOURCE(15866, 38)
SOURCE(15867, 37)
                           w←v9608 = (w←v9608 + (word) XRM←BITRSHIFT((* (( (ptr) b←v9068)+2) ), rSA←v9720));
                           };
SOURCE(16454, 17)
                        {
                           word aW←v15596;
                           word bW←v15624;
                           aW←v15596 = (* (( (ptr) a←v9012)+2) );
                           bW←v15624 = w←v9608;
SOURCE(13975, 21)
                           aWord←v9208 = (word) XRM←BITAND(aW←v15596, rMask←v9180);
SOURCE(13998, 21)
                           bWord←v9236 = (word) XRM←BITAND(bW←v15624, rMask←v9180);
                           };
SOURCE(16473, 22)
                        if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16495, 11)
                           goto lab←L100092;
                           };
                        break;
                     default: 
SOURCE(16530, 553)
                        {
                           word nw←v10112;
SOURCE(16532, 32)
                           nw←v10112 = (ndw←v9124 - 2);
SOURCE(16566, 15)
SOURCE(15677, 7)
                           hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
                           lo←v9664 = (*  (ptr) b←v9068 );
SOURCE(15716, 42)
                           w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16583, 17)
                           {
/*1*/   word aW←v15520;
/*1*/   word bW←v15548;
/*1*/   aW←v15520 = (*  (ptr) a←v9012 );
/*1*/   bW←v15548 = w←v9608;
SOURCE(13975, 21)
/*1*/   aWord←v9208 = (word) XRM←BITAND(aW←v15520, lMask←v9152);
SOURCE(13998, 21)
/*1*/   bWord←v9236 = (word) XRM←BITAND(bW←v15548, lMask←v9152);
/*1*/   };
SOURCE(16602, 22)
                           if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16624, 11)
/*1*/   goto lab←L100092;
/*1*/   };
SOURCE(16637, 16)
                           a←v9012 = (a←v9012 + 4);
SOURCE(16655, 16)
                           b←v9068 = (b←v9068 + 4);
SOURCE(16673, 196)
                           lab←L100099: ;
                           if ((nw←v10112 >= 2)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100097;
/*1*/   };
SOURCE(16690, 15)
SOURCE(15677, 7)
                           hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
                           lo←v9664 = (*  (ptr) b←v9068 );
SOURCE(15716, 42)
                           w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16707, 10)
                           {
/*1*/   word aW←v16688;
/*1*/   word bW←v16716;
/*1*/   aW←v16688 = (*  (ptr) a←v9012 );
/*1*/   bW←v16716 = w←v9608;
SOURCE(14058, 10)
/*1*/   aWord←v9208 = aW←v16688;
SOURCE(14070, 11)
/*1*/   bWord←v9236 = bW←v16716;
/*1*/   };
SOURCE(16719, 22)
                           if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16741, 11)
/*1*/   goto lab←L100092;
/*1*/   };
SOURCE(16754, 15)
SOURCE(15677, 7)
                           hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
                           lo←v9664 = (* (( (ptr) b←v9068)+1) );
SOURCE(15716, 42)
                           w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16771, 10)
                           {
/*1*/   word aW←v16612;
/*1*/   word bW←v16640;
/*1*/   aW←v16612 = (* (( (ptr) a←v9012)+1) );
/*1*/   bW←v16640 = w←v9608;
SOURCE(14058, 10)
/*1*/   aWord←v9208 = aW←v16612;
SOURCE(14070, 11)
/*1*/   bWord←v9236 = bW←v16640;
/*1*/   };
SOURCE(16783, 22)
                           if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16805, 11)
/*1*/   goto lab←L100092;
/*1*/   };
SOURCE(16818, 18)
                           a←v9012 = (a←v9012 + 8);
SOURCE(16838, 18)
                           b←v9068 = (b←v9068 + 8);
SOURCE(16858, 11)
                           nw←v10112 = (nw←v10112 - 2);
                           goto lab←L100099;
                           lab←L100097: ;
SOURCE(16880, 115)
                           if ((nw←v10112 != 0)) {
SOURCE(16897, 15)
SOURCE(15677, 7)
/*1*/   hi←v9636 = lo←v9664;
SOURCE(15694, 19)
SOURCE(15695, 18)
/*1*/   lo←v9664 = (*  (ptr) b←v9068 );
SOURCE(15716, 42)
/*1*/   w←v9608 = ((word) XRM←BITLSHIFT(hi←v9636, lSA←v9692) + (word) XRM←BITRSHIFT(lo←v9664, rSA←v9720));
SOURCE(16914, 10)
/*1*/   {
/*1*/      word aW←v16536;
/*1*/      word bW←v16564;
/*1*/      aW←v16536 = (*  (ptr) a←v9012 );
/*1*/      bW←v16564 = w←v9608;
SOURCE(14058, 10)
/*1*/      aWord←v9208 = aW←v16536;
SOURCE(14070, 11)
/*1*/      bWord←v9236 = bW←v16564;
/*1*/      };
SOURCE(16926, 22)
/*1*/   if ((aWord←v9208 != bWord←v9236)) {
SOURCE(16948, 11)
/*1*/      goto lab←L100092;
/*1*/      };
SOURCE(16961, 16)
/*1*/   a←v9012 = (a←v9012 + 4);
SOURCE(16979, 16)
/*1*/   b←v9068 = (b←v9068 + 4);
/*1*/   };
SOURCE(17000, 27)
SOURCE(15820, 22)
                           w←v9608 = (word) XRM←BITLSHIFT(lo←v9664, lSA←v9692);
SOURCE(15844, 60)
                           if ((0 != fetchLastWord←v9776)) {
SOURCE(15866, 38)
SOURCE(15867, 37)
/*1*/   w←v9608 = (w←v9608 + (word) XRM←BITRSHIFT((*  (ptr) b←v9068 ), rSA←v9720));
/*1*/   };
SOURCE(17029, 17)
                           {
/*1*/   word aW←v15444;
/*1*/   word bW←v15472;
/*1*/   aW←v15444 = (*  (ptr) a←v9012 );
/*1*/   bW←v15472 = w←v9608;
SOURCE(13975, 21)
/*1*/   aWord←v9208 = (word) XRM←BITAND(aW←v15444, rMask←v9180);
SOURCE(13998, 21)
/*1*/   bWord←v9236 = (word) XRM←BITAND(bW←v15472, rMask←v9180);
/*1*/   };
SOURCE(17048, 22)
                           if ((aWord←v9208 != bWord←v9236)) {
SOURCE(17070, 11)
/*1*/   goto lab←L100092;
/*1*/   };
                           };
                        break;
                     };
                  };
               };
            };
         goto lab←L100100;
         lab←L100092: ;
SOURCE(17106, 57)
         if ((aWord←v9208 < bWord←v9236)) {
SOURCE(17128, 19)
            return(0);
            }
         else {
SOURCE(17147, 16)
            return(2);
            };
         lab←L100100: ;
         };
      };
SOURCE(17172, 14)
   return(1);
   }

extern word Basics←BITSHIFT(value←v5996, count←v6024)
   word value←v5996;
   word count←v6024;
   {
   word var←c6068;
   word c←v10156;
   /* BITSHIFT: */ 
SOURCE(17192, 302)
SOURCE(17277, 45)
   c←v10156 = (count←v6024 & 037);
SOURCE(17324, 46)
   if (( (int)count←v6024 ==  (int)c←v10156)) {
SOURCE(17342, 28)
      return((word) XRM←BITLSHIFT(value←v5996, c←v10156));
      };
SOURCE(17372, 14)
   count←v6024 = INEG(count←v6024);
SOURCE(17388, 45)
   c←v10156 = (count←v6024 & 037);
SOURCE(17435, 46)
   if (( (int)count←v6024 ==  (int)c←v10156)) {
SOURCE(17453, 28)
      return((word) XRM←BITRSHIFT(value←v5996, c←v10156));
      };
SOURCE(17483, 11)
   return(0);
   }

extern word Basics←ByteBlt(to←v6128, from←v6156)
   W3 to←v6128;
   W3 from←v6156;
   {
   word nBytes←v6200;
   /* ByteBlt: */ 
SOURCE(17497, 307)
SOURCE(17575, 134)
   {
      word x4;
      word x5;
      word x6;
      word x7;
      word x8;
      word x9;
      nBytes←v6200 = (x6 = ((x4 = to←v6128.f1,
            x5 = to←v6128.f2,
            MAX( (unsigned) , x4, x5)) - to←v6128.f1),
         x9 = ((x7 = from←v6156.f1,
            x8 = from←v6156.f2,
            MAX( (unsigned) , x7, x8)) - from←v6156.f1),
         MIN( (unsigned) , x6, x9));
      };
SOURCE(17718, 86)
SOURCE(17719, 85)
   (void) Basics←MoveBytes(to←v6128.f0, to←v6128.f1, from←v6156.f0, from←v6156.f1, nBytes←v6200);
SOURCE(17497, 307)
   return(nBytes←v6200);
   }

/* file: BasicsImpl, module: BasicsImpl, compiled at: September 24, 1992 12:03:36 pm PDT */ 
extern void XR←install←BasicsImpl() {
   NoName←Q6744();
   }
extern void XR←run←BasicsImpl() { XR←Start(&globalframe); }