/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 28, 1993 10:21:33 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerPixelArrayImpl, module: ImagerPixelArrayImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1694920047,569234878] ImagerPixelArrayImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W4 r;} W12;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {W8 f; W6 r;} W14;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; word r;} W17;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q4176();
static void ImagerPixelArrayImpl←P0();
static word GetClass←P120();
static word MaxSampleValue←P180();
static word Get←P240();
static void GetSamples←P300();
static void GetPixels←P360();
static void Transfer←P420();
static word BitsPerSampleFromMaxSample←P480();
static word Copy←P540();
static word GetViaGetSamples←P600();
static void action←P2412();
static word GetViaTransfer←P660();
static void action←P2472();
static void GetSamplesViaGet←P720();
static void GetSamplesViaTransfer←P780();
static void action←P2580();
static void TransferViaGet←P840();
static void TransferViaGetSamples←P900();
static void action←P2784();
static word NewClass←P960();
static word New←P1020();
static void ExtractedLayer←P1080();
static word ExtractedMaxSampleValue←P1140();
static word ExtractedGet←P1200();
static void ExtractedGetSamples←P1260();
static void ExtractedTransfer←P1320();
static word Extract←P1380();
static void JoinedLayer←P1440();
static word JoinedMaxSampleValue←P1500();
static word JoinedGet←P1560();
static void JoinedGetSamples←P1620();
static void JoinedTransfer←P1680();
static word Join←P1740();
static word Join3←P1800();
static word PixelMapMaxSampleValue←P1860();
static word PixelMapGet←P1920();
static void PixelMapGetSamples←P1980();
static void PixelMapTransfer←P2040();
static word PixelMapCopy←P2100();
static word FromPixelMap←P2160();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\170\002\151\000\300\332\212\147\067\100\324\000\000"};
static struct {unsigned f; char r[4];} string2 = {196611, "\004@A"};
static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[48];} string6 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\230\052\311\306\300\242\375\035\324\100\164\005\004\162\145\163\164\214\216\257\300\230\052\311\306\300\242\375\035\324\100\164\261\000\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\260\302\146\322\300\075\027\134\123\100\354\000\000"};
static struct {unsigned f; char r[12];} string9 = {589833, "\011\000\004\100\240\040\001\030\001\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\164\000\000"};
static struct {unsigned f; char r[4];} string11 = {196611, "\004@\360"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\145\006\155\157\300\041\355\325\276\101\334\000\000"};
static struct {unsigned f; char r[12];} string13 = {524300, "PixelMap\000\000\000"};
static struct {unsigned f; char r[20];} string14 = {1048596, "incompatibleJoin\000\000\000"};
static struct {unsigned f; char r[8];} string15 = {393224, "Joined\000"};
static struct {unsigned f; char r[12];} string16 = {589836, "Extracted\000\000"};
static struct {unsigned f; char r[20];} string17 = {1179668, "Sizes do not match\000"};
static struct {unsigned f; char r[32];} string18 = {1835040, "Transformations do not match\000\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\145\006\155\157\300\041\355\325\276\100\164\000\000"};
static struct {unsigned f; char r[16];} string20 = {786444, "\006\004\020\001\024\001\030\001\100\110\004\077\000\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\150\000\000"};
static struct {unsigned f; char r[32];} string26 = {2031648, "\211\023\022\120\151\170\145\154\101\162\162\141\171\103\154\141\163\163\122\145\160\300\230\052\311\306\300\242\375\035\324"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\170\002\151\000\300\332\212\147\067\100\150\000\000"};
static struct {
   word f0[25]; word f25; word f26; word f27; 
   word f28; word f29; word f30; word f31; 
   word f32; word f33; word f34; word f35; 
   word f36; word f37; word f38; word f39; 
   word f40; word f41; word f42; word f43; 
   word f44; word f45; word f46; word f47; 
   word f48; word f49; word f50; word f51; 
   word f52; word f53; word f54; word f55; 
   word f56; word f57; word f58; word f59; 
   word f60; word f61; word f62; word f63; 
   word f64; word f65; word f66; word f67; 
   word f68; word f69; word f70; word f71; 
   word f72; word f73; word f74; word f75; 
   word f76; word f77; word f78; word f79; 
   word f80; word f81; word f82; word f83; 
   word f84; word f85; word f86; word f87; 
   word f88; word f89; word f90; word f91; 
   word f92; word f93; word f94; word f95; 
   word f96[3]; word f99; word f100; word f101; 
   word f102; word f103; word f104; word f105[6]; 
   } globalframe = {
   {0}, (word) FromPixelMap←P2160, 0, (word) PixelMapCopy←P2100, 
   0, (word) PixelMapTransfer←P2040, 0, (word) PixelMapGetSamples←P1980, 
   0, (word) PixelMapGet←P1920, 0, (word) PixelMapMaxSampleValue←P1860, 
   0, (word) Join3←P1800, 0, (word) Join←P1740, 
   0, (word) JoinedTransfer←P1680, 0, (word) JoinedGetSamples←P1620, 
   0, (word) JoinedGet←P1560, 0, (word) JoinedMaxSampleValue←P1500, 
   0, (word) JoinedLayer←P1440, 0, (word) Extract←P1380, 
   0, (word) ExtractedTransfer←P1320, 0, (word) ExtractedGetSamples←P1260, 
   0, (word) ExtractedGet←P1200, 0, (word) ExtractedMaxSampleValue←P1140, 
   0, (word) ExtractedLayer←P1080, 0, (word) New←P1020, 
   0, (word) NewClass←P960, 0, (word) TransferViaGetSamples←P900, 
   0, (word) TransferViaGet←P840, 0, (word) GetSamplesViaTransfer←P780, 
   0, (word) GetSamplesViaGet←P720, 0, (word) GetViaTransfer←P660, 
   0, (word) GetViaGetSamples←P600, 0, (word) Copy←P540, 
   0, (word) BitsPerSampleFromMaxSample←P480, 0, (word) Transfer←P420, 
   0, (word) GetPixels←P360, 0, (word) GetSamples←P300, 
   0, (word) Get←P240, 0, (word) MaxSampleValue←P180, 
   0, (word) GetClass←P120, 0, (word) ImagerPixelArrayImpl←P0, 
   {0}, (word) 1, (word) 1, (word) 2147483648, 
   (word) 2147483648, (word) 2147483647, (word) 2147483647, {0}
   };

static void NoName←Q4176()
   {
   register ptr gf←c0432 =  (ptr) &globalframe;
   word var←c32416;
   (* (( (ptr) gf←c0432)+7) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0432)+8) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0432)+9) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string4);
   (* (( (ptr) gf←c0432)+12) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0432)+14) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (* (( (ptr) gf←c0432)+16) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0432)+17) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string4);
   (*  (ptr) (( (bPt) gf←c0432)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0432)+8) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0432)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0432)+8) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0432)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0432)+8) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0432)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0432)+8) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0432)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0432)+9) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0432)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0432)+9) ), (word) &string18);
   (void) XR←DeclareGlobalFrame((word) "ImagerPixelArrayImpl", &globalframe, (word) XR←GetTypeIndex((word) &string19, 0, (word) &string20)
      , (word) (( (bPt) gf←c0432)+380)/* var←c29280 */ );
   var←c32416 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string21)), 60);
   (* (( (ptr) gf←c0432)+107)/* var←c30336 */  ) = var←c32416;
   (void) XR←ImportProcS(var←c32416, 68949507);
   (void) XR←ImportProcS(var←c32416, 68948227);
   (void) XR←ImportProcS(var←c32416, 2370822);
   (void) XR←ImportProcS(var←c32416, 2370311);
   (void) XR←ImportProcS(var←c32416, 1320708);
   (void) XR←ImportProcS(var←c32416, 2107398);
   (void) XR←ImportProcS(var←c32416, 67905026);
   (void) XR←ImportProcS(var←c32416, 1577987);
   (void) XR←ImportProcS(var←c32416, 525314);
   (void) XR←ImportProcS(var←c32416, 68685571);
   var←c32416 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string22)), 55);
   (* (( (ptr) gf←c0432)+108)/* var←c31584 */  ) = var←c32416;
   (void) XR←ImportProcS(var←c32416, 67897091);
   (void) XR←ImportProcS(var←c32416, 67645698);
   var←c32416 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string23)), 27);
   (* (( (ptr) gf←c0432)+105)/* var←c29504 */  ) = var←c32416;
   var←c32416 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string24)), 19);
   (* (( (ptr) gf←c0432)+106)/* var←c30144 */  ) = var←c32416;
   (void) XR←ImportProcS(var←c32416, 135270145);
   (void) XR←ImportProcS(var←c32416, 134742273);
   (void) XR←ImportProcS(var←c32416, 69210370);
   (void) XR←ImportProcS(var←c32416, 135267330);
   (void) XR←ImportProcS(var←c32416, 135267074);
   var←c32416 = (word) XR←ExportInterface((word) "ImagerPixelArray", (word) XR←GetTypeIndexS((word) (&string25)), 13);
   (* (( (ptr) gf←c0432)+109)/* var←c32448 */  ) = var←c32416;
   (void) XR←ExportType((word) "PixelArrayClassRep", (word) XR←GetTypeIndexS((word) (&string26)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   (void) XR←ExportVar(var←c32416, 1, (word) (( (bPt) gf←c0432)+96)/* var←c28128 */ );
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+372)/* var←c29248 */ , 67371521, (word) "GetClass");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+364)/* var←c29216 */ , 67633922, (word) "MaxSampleValue");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+356)/* var←c29184 */ , 68158468, (word) "Get");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+348)/* var←c29152 */ , 1836295, (word) "GetSamples");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+340)/* var←c29120 */ , 1574406, (word) "GetPixels");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+332)/* var←c29088 */ , 2623240, (word) "Transfer");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+316)/* var←c29024 */ , 67373057, (word) "Copy");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+204)/* var←c28576 */ , 67897603, (word) "Extract");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+156)/* var←c28384 */ , 67373569, (word) "Join");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+148)/* var←c28352 */ , 67898115, (word) "Join3");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+100)/* var←c28160 */ , 68946948, (word) "FromPixelMap");
   var←c32416 = (word) XR←ExportInterface((word) "ImagerPixelArrayPrivate", (word) XR←GetTypeIndexS((word) (&string27)), 2);
   (* (( (ptr) gf←c0432)+110)/* var←c32480 */  ) = var←c32416;
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+260)/* var←c28800 */ , 68681734, (word) "NewClass");
   (void) XR←ExportProcS(var←c32416, (word) (( (bPt) gf←c0432)+252)/* var←c28768 */ , 68944135, (word) "New");
   }

static void ImagerPixelArrayImpl←P0(formal←c053, formal←c052)
   word formal←c053;
   word formal←c052;
   {
   register ptr gf←c32512 =  (ptr) &globalframe;
   /* ImagerPixelArrayImpl: */ 
SOURCE(758, 14354)
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
SOURCE(8620, 186)
   (* (( (ptr) gf←c32512)+4)/* extractedClass←v3672 */  ) = (word) NewClass←P960((* (( (ptr) gf←c32512)+21) ), (word) (( (bPt) gf←c32512)+236)
      /* var←c28704 */ , (word) (( (bPt) gf←c32512)+228)/* var←c28672 */ , (word) (( (bPt) gf←c32512)+220)/* var←c28640 */ , (word) (
         ( (bPt) gf←c32512)+212)/* var←c28608 */ , 0);
SOURCE(10541, 168)
   (* (( (ptr) gf←c32512)+5)/* joinedClass←v3924 */  ) = (word) NewClass←P960((* (( (ptr) gf←c32512)+20) ), (word) (( (bPt) gf←c32512)+188)
      /* var←c28512 */ , (word) (( (bPt) gf←c32512)+180)/* var←c28480 */ , (word) (( (bPt) gf←c32512)+172)/* var←c28448 */ , (word) (
         ( (bPt) gf←c32512)+164)/* var←c28416 */ , 0);
SOURCE(12949, 200)
   (* (( (ptr) gf←c32512)+6)/* pixelMapClass←v4176 */  ) = (word) NewClass←P960((* (( (ptr) gf←c32512)+18) ), (word) (( (bPt) gf←c32512)+140)
      /* var←c28320 */ , (word) (( (bPt) gf←c32512)+132)/* var←c28288 */ , (word) (( (bPt) gf←c32512)+124)/* var←c28256 */ , (word) (
         ( (bPt) gf←c32512)+116)/* var←c28224 */ , (word) (( (bPt) gf←c32512)+108)/* var←c28192 */ );
   }

static word GetClass←P120(pa←v4644)
   word pa←v4644;
   {
   word var←c4688;
   word class←v9156;
   /* GetClass: */ 
SOURCE(1835, 111)
SOURCE(1893, 33)
   class←v9156 = (* (( (ptr) pa←v4644)+5) );
SOURCE(1928, 18)
   return((*  (ptr) class←v9156 ));
   }

static word MaxSampleValue←P180(pa←v4748, i←v4776)
   word pa←v4748;
   word i←v4776;
   {
   register ptr gf←c32544 =  (ptr) &globalframe;
   word var←c4820;
   word class←v9200;
   /* MaxSampleValue: */ 
SOURCE(1952, 183)
SOURCE(2026, 33)
   class←v9200 = (* (( (ptr) pa←v4748)+5) );
SOURCE(2061, 74)
   {
      word var←c29472;
      word arg←v27572;
      word limit←v27600;
      word var←c29440;
      arg←v27572 = i←v4776;
      limit←v27600 = (* (( (ptr) pa←v4748)+1) );
SOURCE(1743, 73)
      if ((arg←v27572 >= limit←v27600)) {
SOURCE(1786, 30)
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c32544)+105)/* var←c29504 */  ))+8) ), 0);
         };
SOURCE(1818, 13)
      var←c29472 = SGNCK(arg←v27572);
      var←c29440 = (var←c29472
      );
      {
         word pd28;
         pd28 = (* (( (ptr) class←v9200)+1) );
         return((word) ( *( (fPt) ((*  (ptr) pd28 ))))(pa←v4748, var←c29440, pd28));
         };
      };
   }

static word Get←P240(pa←v4880, i←v4908, s←v4936, f←v4964)
   word pa←v4880;
   word i←v4908;
   word s←v4936;
   word f←v4964;
   {
   register ptr gf←c32576 =  (ptr) &globalframe;
   word var←c5008;
   word class←v9244;
   word iCheck←v9272;
   word sRem←v9300;
   word fRem←v9328;
   /* Get: */ 
SOURCE(2141, 395)
SOURCE(2215, 33)
   class←v9244 = (* (( (ptr) pa←v4880)+5) );
SOURCE(2250, 48)
   {
      word arg←v27496;
      word limit←v27524;
      arg←v27496 = i←v4908;
      limit←v27524 = (* (( (ptr) pa←v4880)+1) );
SOURCE(1743, 73)
      if ((arg←v27496 >= limit←v27524)) {
SOURCE(1786, 30)
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c32576)+105)/* var←c29504 */  ))+8) ), 0);
         };
SOURCE(1818, 13)
      iCheck←v9272 = SGNCK(arg←v27496);
      };
SOURCE(2300, 62)
   {
      word value←v28080;
      value←v28080 = ((* (( (ptr) pa←v4880)+2) ) - s←v4936);
      sRem←v9300 = SGNCK(value←v28080);
      };
SOURCE(2364, 62)
   {
      word value←v28032;
      value←v28032 = ((* (( (ptr) pa←v4880)+3) ) - f←v4964);
      fRem←v9328 = SGNCK(value←v28032);
      };
SOURCE(2428, 31)
   {
      word var←c29664;
      {
         word value←v27984;
         value←v27984 = (sRem←v9300 - 1);
         var←c29664 = SGNCK(value←v27984);
         };
      };
SOURCE(2461, 31)
   {
      word var←c29728;
      {
         word value←v27936;
         value←v27936 = (fRem←v9328 - 1);
         var←c29728 = SGNCK(value←v27936);
         };
      };
SOURCE(2494, 42)
   {
      word pd29;
      pd29 = (* (( (ptr) class←v9244)+2) );
      return((word) ( *( (fPt) ((*  (ptr) pd29 ))))(pa←v4880, i←v4908, s←v4936, f←v4964, pd29));
      };
   }

static void GetSamples←P300(pa←v5068, i←v5096, s←v5124, f←v5152, buffer←v5180, start←v5208, count←v5236)
   word pa←v5068;
   word i←v5096;
   word s←v5124;
   word f←v5152;
   word buffer←v5180;
   word start←v5208;
   word count←v5236;
   {
   register ptr gf←c32608 =  (ptr) &globalframe;
   word class←v9372;
   word iCheck←v9400;
   word sRem←v9428;
   word fRem←v9456;
   word actualCount←v9484;
   /* GetSamples: */ 
SOURCE(2542, 567)
SOURCE(2676, 33)
   class←v9372 = (* (( (ptr) pa←v5068)+5) );
SOURCE(2711, 48)
   {
      word arg←v27420;
      word limit←v27448;
      arg←v27420 = i←v5096;
      limit←v27448 = (* (( (ptr) pa←v5068)+1) );
SOURCE(1743, 73)
      if ((arg←v27420 >= limit←v27448)) {
SOURCE(1786, 30)
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c32608)+105)/* var←c29504 */  ))+8) ), 0);
         };
SOURCE(1818, 13)
      iCheck←v9400 = SGNCK(arg←v27420);
      };
SOURCE(2761, 62)
   {
      word value←v27888;
      value←v27888 = ((* (( (ptr) pa←v5068)+2) ) - s←v5124);
      sRem←v9428 = SGNCK(value←v27888);
      };
SOURCE(2825, 62)
   {
      word value←v27840;
      value←v27840 = ((* (( (ptr) pa←v5068)+3) ) - f←v5152);
      fRem←v9456 = SGNCK(value←v27840);
      };
SOURCE(2889, 50)
   {
      word x30;
      actualCount←v9484 = (x30 = ((*  (ptr) buffer←v5180 ) - start←v5208),
         MIN((int)(word), x30, count←v5236));
      };
SOURCE(2941, 31)
   {
      word var←c29888;
      {
         word value←v27792;
         value←v27792 = (sRem←v9428 - 1);
         var←c29888 = SGNCK(value←v27792);
         };
      };
SOURCE(2974, 41)
   {
      word var←c29952;
      {
         word value←v27744;
         value←v27744 = (fRem←v9456 - actualCount←v9484);
         var←c29952 = SGNCK(value←v27744);
         };
      };
SOURCE(3017, 92)
   {
      word pd31;
      pd31 = (* (( (ptr) class←v9372)+3) );
      (void) ( *( (fPt) ((*  (ptr) pd31 ))))(pa←v5068, i←v5096, s←v5124, f←v5152, buffer←v5180, start←v5208
         , actualCount←v9484, pd31);
      };
   }

static void GetPixels←P360(pa←v5296, s←v5324, f←v5352, pixels←v5380, start←v5408, count←v5436)
   word pa←v5296;
   word s←v5324;
   word f←v5352;
   word pixels←v5380;
   word start←v5408;
   word count←v5436;
   {
   /* GetPixels: */ 
SOURCE(3115, 217)
SOURCE(3235, 97)
   {
      register word i←v9528 = 0;
      register word noName←c29984;
      noName←c29984 = (* (( (ptr) pa←v5296)+1) );
      if ((i←v9528 >= noName←c29984)) {
         goto lab←L100011;
         };
      lab←L100014: ;
SOURCE(3275, 57)
      {
         word limit32;
         (void) GetSamples←P300(pa←v5296, i←v9528, s←v5324, f←v5352, (* ((( (ptr) pixels←v5380)+2)+(
                  limit32 = (* (( (ptr) pixels←v5380)+1) ),
                  BCK(i←v9528, limit32)
                  )) ), start←v5408
            , count←v5436);
         };
      i←v9528 = (i←v9528 + 1);
      if ((i←v9528 < noName←c29984)) {
         goto lab←L100014;
         };
      lab←L100011: ;
      };
   }

static void Transfer←P420(pa←v5496, i←v5524, s←v5552, f←v5580, dst←v5608, dstMin←v5636, size←v5664, function←v5692)
   word pa←v5496;
   word i←v5524;
   word s←v5552;
   word f←v5580;
   word dst←v5608;
   W2 dstMin←v5636;
   W2 size←v5664;
   word function←v5692;
   {
   register ptr gf←c32640 =  (ptr) &globalframe;
   word class←v9572;
   word iCheck←v9600;
   word sRem←v9628;
   word fRem←v9656;
   W4 dstBox←v9684;
   W2 actualSize←v9712;
   /* Transfer: */ 
SOURCE(3336, 670)
SOURCE(3500, 33)
   class←v9572 = (* (( (ptr) pa←v5496)+5) );
SOURCE(3535, 48)
   {
      word arg←v27344;
      word limit←v27372;
      arg←v27344 = i←v5524;
      limit←v27372 = (* (( (ptr) pa←v5496)+1) );
SOURCE(1743, 73)
      if ((arg←v27344 >= limit←v27372)) {
SOURCE(1786, 30)
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c32640)+105)/* var←c29504 */  ))+8) ), 0);
         };
SOURCE(1818, 13)
      iCheck←v9600 = SGNCK(arg←v27344);
      };
SOURCE(3585, 62)
   {
      word value←v27696;
      value←v27696 = ((* (( (ptr) pa←v5496)+2) ) - s←v5552);
      sRem←v9628 = SGNCK(value←v27696);
      };
SOURCE(3649, 62)
   {
      word value←v27648;
      value←v27648 = ((* (( (ptr) pa←v5496)+3) ) - f←v5580);
      fRem←v9656 = SGNCK(value←v27648);
      };
SOURCE(3713, 41)
   dstBox←v9684 = (*  (W4Pt) dst←v5608 );
SOURCE(3756, 50)
   {
      W2 var←c30112;
      {
         word pd33;
         pd33 = (* (( (ptr) (* (( (ptr) gf←c32640)+106)/* var←c30144 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd33 ))))((word) &var←c30112, (*  (W2Pt) (( (ptr) &dstBox←v9684)+2) ), dstMin←v5636, pd33);
         };
      {
         W2 var←c0130;
         {
            word pd34;
            pd34 = (* (( (ptr) (* (( (ptr) gf←c32640)+106)/* var←c30144 */  ))+8) );
            (void) ( *( (fPt) ((*  (ptr) pd34 ))))((word) &var←c0130, var←c30112, size←v5664, pd34);
            };
         actualSize←v9712 = var←c0130;
         };
      };
SOURCE(3808, 45)
   if (( (int)sRem←v9628 <  (int)actualSize←v9712.f0)) {
SOURCE(3834, 19)
      actualSize←v9712.f0 = sRem←v9628;
      };
SOURCE(3855, 45)
   if (( (int)fRem←v9656 <  (int)actualSize←v9712.f1)) {
SOURCE(3881, 19)
      actualSize←v9712.f1 = fRem←v9656;
      };
SOURCE(3902, 104)
   {
      word pd35;
      pd35 = (* (( (ptr) class←v9572)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd35 ))))(pa←v5496, i←v5524, s←v5552, f←v5580, dst←v5608, dstMin←v5636
         , actualSize←v9712, function←v5692, pd35);
      };
   }

static word BitsPerSampleFromMaxSample←P480(maxSample←v5752)
   word maxSample←v5752;
   {
   word bitsPerSample←v5796;
   /* BitsPerSampleFromMaxSample: */ 
SOURCE(4012, 171)
SOURCE(4012, 171)
   bitsPerSample←v5796 = 0;
SOURCE(4100, 83)
   lab←L100020: ;
   if ((maxSample←v5752 != 0)) {
      }
   else {
      goto lab←L100018;
      };
SOURCE(4123, 33)
   bitsPerSample←v5796 = (bitsPerSample←v5796 + 1);
SOURCE(4158, 25)
   maxSample←v5752 = ((word) maxSample←v5752 >> 1);
   goto lab←L100020;
   lab←L100018: ;
SOURCE(4012, 171)
   return(bitsPerSample←v5796);
   }

static word Copy←P540(pa←v5856)
   word pa←v5856;
   {
   register ptr gf←c32672 =  (ptr) &globalframe;
   word var←c5900;
   word class←v9756;
   /* Copy: */ 
SOURCE(4198, 758)
SOURCE(4258, 33)
   class←v9756 = (* (( (ptr) pa←v5856)+5) );
   if ((0 != (*  (ptr) pa←v5856 ))) {
SOURCE(4326, 11)
      return(pa←v5856);
      }
   else {
      if (((* (( (ptr) class←v9756)+5) ) != 0)) {
SOURCE(4357, 23)
         {
            word pd36;
            pd36 = (* (( (ptr) class←v9756)+5) );
            return((word) ( *( (fPt) ((*  (ptr) pd36 ))))(pa←v5856, pd36));
            };
         }
      else {
SOURCE(4393, 565)
         {
            word samplesPerPixel←v9800;
            word pm←v9828;
            word sSize←v9856;
            word fSize←v9884;
SOURCE(4395, 41)
            samplesPerPixel←v9800 = (* (( (ptr) pa←v5856)+1) );
SOURCE(4438, 52)
            {
               word var←c30208;
               word var←c30240;
               word var←c30272;
               var←c30208 = BCK(samplesPerPixel←v9800, 67108863);
               var←c30240 = ((word) var←c30208 << 2);
               var←c30272 = XR←NewObject((24 + var←c30240), (* (( (ptr) gf←c32672)+14) ));
               (* (( (ptr) var←c30272)+5) ) = var←c30208;
               pm←v9828 = var←c30272;
               };
SOURCE(4492, 21)
            sSize←v9856 = (* (( (ptr) pa←v5856)+2) );
SOURCE(4515, 21)
            fSize←v9884 = (* (( (ptr) pa←v5856)+3) );
SOURCE(4538, 36)
            (* (( (ptr) pm←v9828)+1) ) = 0;
            (* (( (ptr) pm←v9828)+2) ) = 0;
            (* (( (ptr) pm←v9828)+3) ) = sSize←v9856;
            (* (( (ptr) pm←v9828)+4) ) = fSize←v9884;
SOURCE(4576, 238)
            {
               register word i←v9928 = 0;
               if ((i←v9928 >= samplesPerPixel←v9800)) {
                  goto lab←L100021;
                  };
               lab←L100024: ;
               {
                  word bitsPerSample←v9972;
                  word sm←v10000;
SOURCE(4613, 70)
                  {
                     word var←c30304;
                     var←c30304 = (word) MaxSampleValue←P180(pa←v5856, i←v9928);
                     bitsPerSample←v9972 = (word) BitsPerSampleFromMaxSample←P480(var←c30304);
                     };
SOURCE(4685, 84)
                  {
                     word pd37;
                     pd37 = (* (( (ptr) (* (( (ptr) gf←c32672)+107)/* var←c30336 */  ))+19) );
                     sm←v10000 = (word) ( *( (fPt) ((*  (ptr) pd37 ))))((*  (W4Pt) (( (ptr) pm←v9828)+1) ), BCK(bitsPerSample←v9972, 33), 0, pd37)
                     ;
                     };
SOURCE(4771, 31)
                  {
                     W2 var←c30368;
                     W2 var←c30400;
                     var←c30368.f0 = 0;
                     var←c30368.f1 = 0;
                     var←c30400.f0 = 2147483647;
                     var←c30400.f1 = 2147483647;
                     (void) Transfer←P420(pa←v5856, i←v9928, 0, 0, sm←v10000, var←c30368
                        , var←c30400, 0);
                     };
SOURCE(4804, 10)
                  {
                     word limit38;
                     (* ((( (ptr) pm←v9828)+6)+(
                           limit38 = (* (( (ptr) pm←v9828)+5) ),
                           BCK(i←v9928, limit38)
                           )) ) = sm←v10000;
                     };
                  };
               i←v9928 = (i←v9928 + 1);
               if ((i←v9928 < samplesPerPixel←v9800)) {
                  goto lab←L100024;
                  };
               lab←L100021: ;
               };
SOURCE(4825, 131)
            return((word) New←P1020((* (( (ptr) gf←c32672)+6)/* pixelMapClass←v4176 */  ), pm←v9828, 1, samplesPerPixel←v9800, sSize←v9856, fSize←v9884
               , (* (( (ptr) pa←v5856)+4) )));
            };
         };
      };
   }

static word GetViaGetSamples←P600(formal←c0478, formal←c0479, formal←c0480, formal←c0481)
   word formal←c0478;
   word formal←c0479;
   word formal←c0480;
   word formal←c0481;
   {
   W12 var←c32704;
   /* declaration of pa←v5960 skipped */ 
   /* declaration of i←v5988 skipped */ 
   /* declaration of s←v6016 skipped */ 
   /* declaration of f←v6044 skipped */ 
   register ptr gf←c32736 =  (ptr) &globalframe;
   word var←c6088;
   /* declaration of var←c30464 skipped */ 
   /* declaration of class←v10044 skipped */ 
   /* declaration of value←v10072 skipped */ 
   (* (( (ptr) &var←c32704)+4)/* pa←v5960 */  ) = formal←c0478;
   (* (( (ptr) &var←c32704)+5)/* i←v5988 */  ) = formal←c0479;
   (* (( (ptr) &var←c32704)+6)/* s←v6016 */  ) = formal←c0480;
   (* (( (ptr) &var←c32704)+7)/* f←v6044 */  ) = formal←c0481;
   /* GetViaGetSamples: */ 
SOURCE(4967, 335)
   {
      word tmpAddr39;
      tmpAddr39 = (word) (( (ptr) &var←c32704)+8)/* var←c30464 */ ;
      (*  (ptr) tmpAddr39 ) = ( ((word)  (fPt) action←P2412) );
      (* (( (ptr) tmpAddr39) + 1) ) = 1;
      };
SOURCE(5047, 33)
   (* (( (ptr) &var←c32704)+10)/* class←v10044 */  ) = (* (( (ptr) (* (( (ptr) &var←c32704)+4)/* pa←v5960 */  ))+5) );
SOURCE(5082, 17)
   (* (( (ptr) &var←c32704)+11)/* value←v10072 */  ) = 0;
SOURCE(5243, 44)
   {
      word pd40;
      pd40 = (* (( (ptr) (* (( (ptr) gf←c32736)+107)/* var←c30336 */  ))+8) );
      (void) ( *( (fPt) ((*  (ptr) pd40 ))))(1, (word) (( (bPt) &var←c32704)+32)/* var←c30464 */ , pd40);
      };
SOURCE(5289, 13)
   return((* (( (ptr) &var←c32704)+11)/* value←v10072 */  ));
   }

static void action←P2412(buffer←v10176, formal←c32768)
   word buffer←v10176;
   word formal←c32768;
   {
   formal←c32768 = (formal←c32768 - 32);
   /* action: */ 
SOURCE(5101, 137)
SOURCE(5141, 78)
   {
      word pd41;
      pd41 = (* (( (ptr) (* (( (ptr) formal←c32768)+10) ))+3) );
      (void) ( *( (fPt) ((*  (ptr) pd41 ))))((* (( (ptr) formal←c32768)+4) ), (* (( (ptr) formal←c32768)+5) ), (* (( (ptr) formal←c32768)+6)
          ), (* (( (ptr) formal←c32768)+7) ), buffer←v10176, 0
         , 1, pd41);
      };
SOURCE(5221, 17)
   {
      word limit42;
      (* (( (ptr) formal←c32768)+11) ) = (* ((( (ptr) buffer←v10176)+2)+(
            limit42 = (* (( (ptr) buffer←v10176)+1) ),
            BCK(0, limit42)
            )) );
      };
   }

static word GetViaTransfer←P660(formal←c0482, formal←c0483, formal←c0484, formal←c0485)
   word formal←c0482;
   word formal←c0483;
   word formal←c0484;
   word formal←c0485;
   {
   W12 var←c32800;
   /* declaration of pa←v6148 skipped */ 
   /* declaration of i←v6176 skipped */ 
   /* declaration of s←v6204 skipped */ 
   /* declaration of f←v6232 skipped */ 
   register ptr gf←c32832 =  (ptr) &globalframe;
   word var←c6276;
   /* declaration of var←c30496 skipped */ 
   /* declaration of class←v10204 skipped */ 
   /* declaration of value←v10232 skipped */ 
   (* (( (ptr) &var←c32800)+4)/* pa←v6148 */  ) = formal←c0482;
   (* (( (ptr) &var←c32800)+5)/* i←v6176 */  ) = formal←c0483;
   (* (( (ptr) &var←c32800)+6)/* s←v6204 */  ) = formal←c0484;
   (* (( (ptr) &var←c32800)+7)/* f←v6232 */  ) = formal←c0485;
   /* GetViaTransfer: */ 
SOURCE(5308, 427)
   {
      word tmpAddr43;
      tmpAddr43 = (word) (( (ptr) &var←c32800)+8)/* var←c30496 */ ;
      (*  (ptr) tmpAddr43 ) = ( ((word)  (fPt) action←P2472) );
      (* (( (ptr) tmpAddr43) + 1) ) = 1;
      };
SOURCE(5386, 33)
   (* (( (ptr) &var←c32800)+10)/* class←v10204 */  ) = (* (( (ptr) (* (( (ptr) &var←c32800)+4)/* pa←v6148 */  ))+5) );
SOURCE(5421, 17)
   (* (( (ptr) &var←c32800)+11)/* value←v10232 */  ) = 0;
SOURCE(5635, 85)
   {
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c32832)+107)/* var←c30336 */  ))+24) );
      (void) ( *( (fPt) ((*  (ptr) pd44 ))))((*  (W4Pt) (( (ptr) gf←c32832)+97)/* var←c29344 */  ), 32, (word) (( (bPt) &var←c32800)+32)
         /* var←c30496 */ , pd44);
      };
SOURCE(5722, 13)
   return((* (( (ptr) &var←c32800)+11)/* value←v10232 */  ));
   }

static void action←P2472(map←v10336, formal←c32896)
   word map←v10336;
   word formal←c32896;
   {
   register ptr gf←c32864 =  (ptr) &globalframe;
   formal←c32896 = (formal←c32896 - 32);
   /* action: */ 
SOURCE(5440, 190)
SOURCE(5474, 105)
   {
      W2 var←c30528;
      W2 var←c30560;
      var←c30528.f0 = 0;
      var←c30528.f1 = 0;
      var←c30560.f0 = 1;
      var←c30560.f1 = 1;
      {
         word pd45;
         pd45 = (* (( (ptr) (* (( (ptr) formal←c32896)+10) ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd45 ))))((* (( (ptr) formal←c32896)+4) ), (* (( (ptr) formal←c32896)+5) ), (* (( (ptr) formal←c32896)+6)
             ), (* (( (ptr) formal←c32896)+7) ), map←v10336, var←c30528
            , var←c30560, 0, pd45);
         };
      };
SOURCE(5581, 49)
   {
      W2 var←c30592;
      var←c30592.f0 = 0;
      var←c30592.f1 = 0;
      {
         word pd46;
         pd46 = (* (( (ptr) (* (( (ptr) gf←c32864)+107)/* var←c30336 */  ))+42) );
         (* (( (ptr) formal←c32896)+11) ) = (word) ( *( (fPt) ((*  (ptr) pd46 ))))(map←v10336, var←c30592, pd46);
         };
      };
   }

static void GetSamplesViaGet←P720(pa←v6336, i←v6364, s←v6392, f←v6420, buffer←v6448, start←v6476, count←v6504)
   word pa←v6336;
   word i←v6364;
   word s←v6392;
   word f←v6420;
   word buffer←v6448;
   word start←v6476;
   word count←v6504;
   {
   word class←v10364;
   /* GetSamplesViaGet: */ 
SOURCE(5741, 227)
SOURCE(5851, 33)
   class←v10364 = (* (( (ptr) pa←v6336)+5) );
SOURCE(5886, 82)
   {
      register word k←v10408 = 0;
      register word noName←c30624;
      noName←c30624 = count←v6504;
      if ((k←v10408 >= noName←c30624)) {
         goto lab←L100025;
         };
      lab←L100028: ;
SOURCE(5913, 55)
      {
         word var←c30656;
         {
            word pd47;
            pd47 = (* (( (ptr) class←v10364)+2) );
            var←c30656 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))(pa←v6336, i←v6364, s←v6392, (f←v6420 + k←v10408), pd47);
            };
         {
            word var←c30688;
            var←c30688 = (start←v6476 + k←v10408);
            {
               word limit48;
               (* ((( (ptr) buffer←v6448)+2)+(
                     limit48 = (* (( (ptr) buffer←v6448)+1) ),
                     BCK(var←c30688, limit48)
                     )) ) = var←c30656;
               };
            };
         };
      k←v10408 = (k←v10408 + 1);
      if ((k←v10408 < noName←c30624)) {
         goto lab←L100028;
         };
      lab←L100025: ;
      };
   }

static void GetSamplesViaTransfer←P780(formal←c0486, formal←c0487, formal←c0488, formal←c0489, formal←c0490, formal←c0491, formal←c0492)
   word formal←c0486;
   word formal←c0487;
   word formal←c0488;
   word formal←c0489;
   word formal←c0490;
   word formal←c0491;
   word formal←c0492;
   {
   W14 var←c32928;
   /* declaration of pa←v6564 skipped */ 
   /* declaration of i←v6592 skipped */ 
   /* declaration of s←v6620 skipped */ 
   /* declaration of f←v6648 skipped */ 
   /* declaration of buffer←v6676 skipped */ 
   /* declaration of start←v6704 skipped */ 
   /* declaration of count←v6732 skipped */ 
   register ptr gf←c32960 =  (ptr) &globalframe;
   /* declaration of var←c30720 skipped */ 
   /* declaration of class←v10452 skipped */ 
   (* (( (ptr) &var←c32928)+4)/* pa←v6564 */  ) = formal←c0486;
   (* (( (ptr) &var←c32928)+5)/* i←v6592 */  ) = formal←c0487;
   (* (( (ptr) &var←c32928)+6)/* s←v6620 */  ) = formal←c0488;
   (* (( (ptr) &var←c32928)+7)/* f←v6648 */  ) = formal←c0489;
   (* (( (ptr) &var←c32928)+8)/* buffer←v6676 */  ) = formal←c0490;
   (* (( (ptr) &var←c32928)+9)/* start←v6704 */  ) = formal←c0491;
   (* (( (ptr) &var←c32928)+10)/* count←v6732 */  ) = formal←c0492;
   /* GetSamplesViaTransfer: */ 
SOURCE(5983, 479)
   {
      word tmpAddr49;
      tmpAddr49 = (word) (( (ptr) &var←c32928)+11)/* var←c30720 */ ;
      (*  (ptr) tmpAddr49 ) = ( ((word)  (fPt) action←P2580) );
      (* (( (ptr) tmpAddr49) + 1) ) = 1;
      };
SOURCE(6098, 33)
   (* (( (ptr) &var←c32928)+13)/* class←v10452 */  ) = (* (( (ptr) (* (( (ptr) &var←c32928)+4)/* pa←v6564 */  ))+5) );
SOURCE(6366, 96)
   {
      W4 var←c30752;
      var←c30752.f0 = 0;
      var←c30752.f1 = 0;
      var←c30752.f2 = 1;
      var←c30752.f3 = (* (( (ptr) &var←c32928)+10)/* count←v6732 */  );
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c32960)+107)/* var←c30336 */  ))+24) );
         (void) ( *( (fPt) ((*  (ptr) pd50 ))))(var←c30752, 32, (word) (( (bPt) &var←c32928)+44)/* var←c30720 */ , pd50);
         };
      };
   }

static void action←P2580(map←v10556, formal←c33024)
   word map←v10556;
   word formal←c33024;
   {
   register ptr gf←c32992 =  (ptr) &globalframe;
   formal←c33024 = (formal←c33024 - 44);
   /* action: */ 
SOURCE(6133, 228)
SOURCE(6167, 115)
   {
      W2 var←c30784;
      W2 var←c30816;
      var←c30784.f0 = 0;
      var←c30784.f1 = 0;
      var←c30816.f0 = 1;
      var←c30816.f1 = (* (( (ptr) formal←c33024)+10) );
      {
         word pd51;
         pd51 = (* (( (ptr) (* (( (ptr) formal←c33024)+13) ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd51 ))))((* (( (ptr) formal←c33024)+4) ), (* (( (ptr) formal←c33024)+5) ), (* (( (ptr) formal←c33024)+6)
             ), (* (( (ptr) formal←c33024)+7) ), map←v10556, var←c30784
            , var←c30816, 0, pd51);
         };
      };
SOURCE(6284, 77)
   {
      W2 var←c30848;
      W2 var←c30880;
      var←c30848.f0 = 0;
      var←c30848.f1 = 0;
      var←c30880.f0 = 0;
      var←c30880.f1 = 1;
      {
         word pd52;
         pd52 = (* (( (ptr) (* (( (ptr) gf←c32992)+107)/* var←c30336 */  ))+44) );
         (void) ( *( (fPt) ((*  (ptr) pd52 ))))(map←v10556, var←c30848, var←c30880, (* (( (ptr) formal←c33024)+8) ), (* (( (ptr) formal←c33024)+9)
             ), (* (( (ptr) formal←c33024)+10) ), pd52);
         };
      };
   }

static void TransferViaGet←P840(pa←v6792, i←v6820, s←v6848, f←v6876, dst←v6904, dstMin←v6932, size←v6960, function←v6988)
   word pa←v6792;
   word i←v6820;
   word s←v6848;
   word f←v6876;
   word dst←v6904;
   W2 dstMin←v6932;
   W2 size←v6960;
   word function←v6988;
   {
   register ptr gf←c33056 =  (ptr) &globalframe;
   word class←v10584;
   /* TransferViaGet: */ 
SOURCE(6468, 375)
SOURCE(6590, 33)
   class←v10584 = (* (( (ptr) pa←v6792)+5) );
SOURCE(6625, 218)
   {
      register word ks←v10628 = 0;
      register word noName←c30912;
      {
         word idx53;
         noName←c30912 = (
            idx53 = (word) size←v6960.f0,
            SGNCK(idx53)
            );
         };
      if ((ks←v10628 >= noName←c30912)) {
         goto lab←L100029;
         };
      lab←L100032: ;
SOURCE(6654, 189)
      {
         register word kf←v10672 = 0;
         register word noName←c30944;
         {
            word idx54;
            noName←c30944 = (
               idx54 = (word) size←v6960.f1,
               SGNCK(idx54)
               );
            };
         if ((kf←v10672 >= noName←c30944)) {
            goto lab←L100033;
            };
         lab←L100036: ;
         {
            word value←v10716;
SOURCE(6683, 57)
            {
               word pd55;
               pd55 = (* (( (ptr) class←v10584)+2) );
               value←v10716 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))(pa←v6792, i←v6820, (s←v6848 + ks←v10628), (f←v6876 + kf←v10672), pd55)
               ;
               };
SOURCE(6742, 101)
            {
               W2 var←c30976;
               var←c30976.f0 = (dstMin←v6932.f0 + ks←v10628);
               var←c30976.f1 = (dstMin←v6932.f1 + kf←v10672);
               {
                  word pd56;
                  pd56 = (* (( (ptr) (* (( (ptr) gf←c33056)+107)/* var←c30336 */  ))+43) );
                  (void) ( *( (fPt) ((*  (ptr) pd56 ))))(dst←v6904, var←c30976, value←v10716, function←v6988, pd56);
                  };
               };
            };
         kf←v10672 = (kf←v10672 + 1);
         if ((kf←v10672 < noName←c30944)) {
            goto lab←L100036;
            };
         lab←L100033: ;
         };
      ks←v10628 = (ks←v10628 + 1);
      if ((ks←v10628 < noName←c30912)) {
         goto lab←L100032;
         };
      lab←L100029: ;
      };
   }

static void TransferViaGetSamples←P900(formal←c0493, formal←c0494, formal←c0495, formal←c0496, formal←c0497, formal←c0498, formal←c0499, formal←c0500)
   word formal←c0493;
   word formal←c0494;
   word formal←c0495;
   word formal←c0496;
   word formal←c0497;
   W2 formal←c0498;
   W2 formal←c0499;
   word formal←c0500;
   {
   W17 var←c33088;
   /* declaration of pa←v7048 skipped */ 
   /* declaration of i←v7076 skipped */ 
   /* declaration of s←v7104 skipped */ 
   /* declaration of f←v7132 skipped */ 
   /* declaration of dst←v7160 skipped */ 
   /* declaration of dstMin←v7188 skipped */ 
   /* declaration of size←v7216 skipped */ 
   /* declaration of function←v7244 skipped */ 
   register ptr gf←c33120 =  (ptr) &globalframe;
   /* declaration of var←c31008 skipped */ 
   /* declaration of class←v10760 skipped */ 
   (* (( (ptr) &var←c33088)+4)/* pa←v7048 */  ) = formal←c0493;
   (* (( (ptr) &var←c33088)+5)/* i←v7076 */  ) = formal←c0494;
   (* (( (ptr) &var←c33088)+6)/* s←v7104 */  ) = formal←c0495;
   (* (( (ptr) &var←c33088)+7)/* f←v7132 */  ) = formal←c0496;
   (* (( (ptr) &var←c33088)+8)/* dst←v7160 */  ) = formal←c0497;
   (*  (W2Pt) (( (ptr) &var←c33088)+9)/* dstMin←v7188 */  ) = formal←c0498;
   (*  (W2Pt) (( (ptr) &var←c33088)+11)/* size←v7216 */  ) = formal←c0499;
   (* (( (ptr) &var←c33088)+13)/* function←v7244 */  ) = formal←c0500;
   /* TransferViaGetSamples: */ 
SOURCE(6867, 513)
   {
      word tmpAddr57;
      tmpAddr57 = (word) (( (ptr) &var←c33088)+14)/* var←c31008 */ ;
      (*  (ptr) tmpAddr57 ) = ( ((word)  (fPt) action←P2784) );
      (* (( (ptr) tmpAddr57) + 1) ) = 1;
      };
SOURCE(6996, 33)
   (* (( (ptr) &var←c33088)+16)/* class←v10760 */  ) = (* (( (ptr) (* (( (ptr) &var←c33088)+4)/* pa←v7048 */  ))+5) );
SOURCE(7331, 49)
   {
      word pd58;
      word idx59;
      pd58 = (* (( (ptr) (* (( (ptr) gf←c33120)+107)/* var←c30336 */  ))+8) );
      (void) ( *( (fPt) ((*  (ptr) pd58 ))))((
            idx59 = (* (( (ptr) &var←c33088)+12) ),
            SGNCK(idx59)
            ), (word) (( (bPt) &var←c33088)+56)/* var←c31008 */ , pd58);
      };
   }

static void action←P2784(buffer←v10864, formal←c33184)
   word buffer←v10864;
   word formal←c33184;
   {
   register ptr gf←c33152 =  (ptr) &globalframe;
   formal←c33184 = (formal←c33184 - 56);
   /* action: */ 
SOURCE(7031, 286)
SOURCE(7071, 246)
   {
      register word k←v10892 = 0;
      register word noName←c31040;
      {
         word idx60;
         noName←c31040 = (
            idx60 = (* (( (ptr) formal←c33184)+11) ),
            SGNCK(idx60)
            );
         };
      if ((k←v10892 >= noName←c31040)) {
         goto lab←L100037;
         };
      lab←L100040: ;
SOURCE(7099, 85)
      {
         word pd61;
         word idx62;
         pd61 = (* (( (ptr) (* (( (ptr) formal←c33184)+16) ))+3) );
         (void) ( *( (fPt) ((*  (ptr) pd61 ))))((* (( (ptr) formal←c33184)+4) ), (* (( (ptr) formal←c33184)+5) ), ((* (( (ptr) formal←c33184)+6)
             ) + k←v10892), (* (( (ptr) formal←c33184)+7) ), buffer←v10864, 0
            , (
               idx62 = (* (( (ptr) formal←c33184)+12) ),
               SGNCK(idx62)
               ), pd61);
         };
SOURCE(7186, 131)
      {
         W2 var←c31072;
         W2 var←c31104;
         var←c31072.f0 = ((* (( (ptr) formal←c33184)+9) ) + k←v10892);
         var←c31072.f1 = (* (( (ptr) formal←c33184)+10) );
         var←c31104.f0 = 0;
         var←c31104.f1 = 1;
         {
            word pd63;
            pd63 = (* (( (ptr) (* (( (ptr) gf←c33152)+107)/* var←c30336 */  ))+47) );
            (void) ( *( (fPt) ((*  (ptr) pd63 ))))((* (( (ptr) formal←c33184)+8) ), var←c31072, var←c31104, buffer←v10864, 0, 2147483647
               , (* (( (ptr) formal←c33184)+13) ), pd63);
            };
         };
      k←v10892 = (k←v10892 + 1);
      if ((k←v10892 < noName←c31040)) {
         goto lab←L100040;
         };
      lab←L100037: ;
      };
   }

static word NewClass←P960(type←v7304, MaxSampleValue←v7332, Get←v7360, GetSamples←v7388, Transfer←v7416, Copy←v7444)
   word type←v7304;
   word MaxSampleValue←v7332;
   word Get←v7360;
   word GetSamples←v7388;
   word Transfer←v7416;
   word Copy←v7444;
   {
   register ptr gf←c33216 =  (ptr) &globalframe;
   word var←c7488;
   word class←v10936;
   /* NewClass: */ 
SOURCE(7386, 829)
SOURCE(7599, 163)
   class←v10936 = XR←NewObject(28, (* (( (ptr) gf←c33216)+7) ));
   (*  (ptr) class←v10936 ) = type←v7304;
   (* (( (ptr) class←v10936)+1) ) = XR←CheckProc(MaxSampleValue←v7332);
   (* (( (ptr) class←v10936)+2) ) = XR←CheckProc(Get←v7360);
   (* (( (ptr) class←v10936)+3) ) = XR←CheckProc(GetSamples←v7388);
   (* (( (ptr) class←v10936)+4) ) = XR←CheckProc(Transfer←v7416);
   (* (( (ptr) class←v10936)+5) ) = XR←CheckProc(Copy←v7444);
SOURCE(7764, 123)
   if ((Get←v7360 == 0)) {
      if ((GetSamples←v7388 != 0)) {
SOURCE(7815, 28)
         (* (( (ptr) class←v10936)+2) ) = (word) (( (bPt) gf←c33216)+308)/* var←c28992 */ ;
         }
      else {
         if ((Transfer←v7416 != 0)) {
SOURCE(7861, 26)
            (* (( (ptr) class←v10936)+2) ) = (word) (( (bPt) gf←c33216)+300)/* var←c28960 */ ;
            };
         };
      };
SOURCE(7898, 144)
   if ((GetSamples←v7388 == 0)) {
      if ((Transfer←v7416 != 0)) {
SOURCE(7954, 40)
         (* (( (ptr) class←v10936)+3) ) = (word) (( (bPt) gf←c33216)+284)/* var←c28896 */ ;
         }
      else {
         if ((Get←v7360 != 0)) {
SOURCE(8007, 35)
            (* (( (ptr) class←v10936)+3) ) = (word) (( (bPt) gf←c33216)+292)/* var←c28928 */ ;
            };
         };
      };
SOURCE(8053, 138)
   if ((Transfer←v7416 == 0)) {
      if ((GetSamples←v7388 != 0)) {
SOURCE(8109, 38)
         (* (( (ptr) class←v10936)+4) ) = (word) (( (bPt) gf←c33216)+268)/* var←c28832 */ ;
         }
      else {
         if ((Get←v7360 != 0)) {
SOURCE(8160, 31)
            (* (( (ptr) class←v10936)+4) ) = (word) (( (bPt) gf←c33216)+276)/* var←c28864 */ ;
            };
         };
      };
SOURCE(8202, 13)
   return(class←v10936);
   }

static word New←P1020(class←v7548, data←v7576, immutable←v7604, samplesPerPixel←v7632, sSize←v7660, fSize←v7688, m←v7716)
   word class←v7548;
   word data←v7576;
   word immutable←v7604;
   word samplesPerPixel←v7632;
   word sSize←v7660;
   word fSize←v7688;
   word m←v7716;
   {
   register ptr gf←c33248 =  (ptr) &globalframe;
   word var←c7776;
   /* New: */ 
SOURCE(8221, 342)
SOURCE(8376, 187)
   {
      word var←c31200;
      var←c31200 = XR←NewObject(32, (* (( (ptr) gf←c33248)+16) ));
      (*  (ptr) var←c31200 ) = immutable←v7604;
      (* (( (ptr) var←c31200)+1) ) = samplesPerPixel←v7632;
      (* (( (ptr) var←c31200)+2) ) = sSize←v7660;
      (* (( (ptr) var←c31200)+3) ) = fSize←v7688;
      (* (( (ptr) var←c31200)+4) ) = m←v7716;
      (* (( (ptr) var←c31200)+5) ) = class←v7548;
      (* (( (ptr) var←c31200)+6) ) = data←v7576;
      return(var←c31200);
      };
   }

static void ExtractedLayer←P1080(formal←c0249, data←v8040, i←v8068)
   word formal←c0249;
   word data←v8040;
   word i←v8068;
   {
   W2 var←c8112;
   /* ExtractedLayer: */ 
SOURCE(8954, 115)
SOURCE(9025, 44)
   {
      W2 var←c31264;
      {
         W2 var←c31232;
         var←c31232.f0 = (*  (ptr) data←v8040 );
         {
            word limit64;
            var←c31232.f1 = (* ((( (ptr) data←v8040)+2)+(
                  limit64 = (* (( (ptr) data←v8040)+1) ),
                  BCK(i←v8068, limit64)
                  )) );
            };
         var←c31264 = var←c31232;
         };
      var←c8112 = var←c31264;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0249 ) = var←c8112;
   return;
   }

static word ExtractedMaxSampleValue←P1140(pa←v20668, i←v20696)
   word pa←v20668;
   word i←v20696;
   {
   register ptr gf←c33280 =  (ptr) &globalframe;
   word var←c20740;
   word data←v10980;
   W2 layer←v11008;
   word class←v11036;
   /* ExtractedMaxSampleValue: */ 
SOURCE(9076, 225)
SOURCE(9124, 37)
   data←v10980 = XR←Narrow((* (( (ptr) pa←v20668)+6) ), (* (( (ptr) gf←c33280)+17) ));
SOURCE(9163, 38)
   (void) ExtractedLayer←P1080((word) &layer←v11008, data←v10980, i←v20696);
SOURCE(9203, 41)
   class←v11036 = (* (( (ptr) layer←v11008.f0)+5) );
SOURCE(9246, 55)
   {
      word pd65;
      pd65 = (* (( (ptr) class←v11036)+1) );
      return((word) ( *( (fPt) ((*  (ptr) pd65 ))))(layer←v11008.f0, layer←v11008.f1, pd65));
      };
   }

static word ExtractedGet←P1200(pa←v20800, i←v20828, s←v20856, f←v20884)
   word pa←v20800;
   word i←v20828;
   word s←v20856;
   word f←v20884;
   {
   register ptr gf←c33312 =  (ptr) &globalframe;
   word var←c20928;
   word data←v11080;
   W2 layer←v11108;
   word class←v11136;
   /* ExtractedGet: */ 
SOURCE(9307, 204)
SOURCE(9333, 37)
   data←v11080 = XR←Narrow((* (( (ptr) pa←v20800)+6) ), (* (( (ptr) gf←c33312)+17) ));
SOURCE(9372, 38)
   (void) ExtractedLayer←P1080((word) &layer←v11108, data←v11080, i←v20828);
SOURCE(9412, 41)
   class←v11136 = (* (( (ptr) layer←v11108.f0)+5) );
SOURCE(9455, 56)
   {
      word pd66;
      pd66 = (* (( (ptr) class←v11136)+2) );
      return((word) ( *( (fPt) ((*  (ptr) pd66 ))))(layer←v11108.f0, layer←v11108.f1, s←v20856, f←v20884, pd66));
      };
   }

static void ExtractedGetSamples←P1260(pa←v20988, i←v21016, s←v21044, f←v21072, buffer←v21100, start←v21128, count←v21156)
   word pa←v20988;
   word i←v21016;
   word s←v21044;
   word f←v21072;
   word buffer←v21100;
   word start←v21128;
   word count←v21156;
   {
   register ptr gf←c33344 =  (ptr) &globalframe;
   word data←v11180;
   W2 layer←v11208;
   word class←v11236;
   /* ExtractedGetSamples: */ 
SOURCE(9517, 263)
SOURCE(9557, 37)
   data←v11180 = XR←Narrow((* (( (ptr) pa←v20988)+6) ), (* (( (ptr) gf←c33344)+17) ));
SOURCE(9596, 38)
   (void) ExtractedLayer←P1080((word) &layer←v11208, data←v11180, i←v21016);
SOURCE(9636, 41)
   class←v11236 = (* (( (ptr) layer←v11208.f0)+5) );
SOURCE(9679, 101)
   {
      word pd67;
      pd67 = (* (( (ptr) class←v11236)+3) );
      (void) ( *( (fPt) ((*  (ptr) pd67 ))))(layer←v11208.f0, layer←v11208.f1, s←v21044, f←v21072, buffer←v21100, start←v21128
         , count←v21156, pd67);
      };
   }

static void ExtractedTransfer←P1320(pa←v21216, i←v21244, s←v21272, f←v21300, dst←v21328, dstMin←v21356, size←v21384, function←v21412)
   word pa←v21216;
   word i←v21244;
   word s←v21272;
   word f←v21300;
   word dst←v21328;
   W2 dstMin←v21356;
   W2 size←v21384;
   word function←v21412;
   {
   register ptr gf←c33376 =  (ptr) &globalframe;
   word data←v11280;
   W2 layer←v11308;
   word class←v11336;
   /* ExtractedTransfer: */ 
SOURCE(9786, 271)
SOURCE(9822, 37)
   data←v11280 = XR←Narrow((* (( (ptr) pa←v21216)+6) ), (* (( (ptr) gf←c33376)+17) ));
SOURCE(9861, 38)
   (void) ExtractedLayer←P1080((word) &layer←v11308, data←v11280, i←v21244);
SOURCE(9901, 41)
   class←v11336 = (* (( (ptr) layer←v11308.f0)+5) );
SOURCE(9944, 113)
   {
      word pd68;
      pd68 = (* (( (ptr) class←v11336)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd68 ))))(layer←v11308.f0, layer←v11308.f1, s←v21272, f←v21300, dst←v21328, dstMin←v21356
         , size←v21384, function←v21412, pd68);
      };
   }

static word Extract←P1380(old←v8172, samplesPerPixel←v8200, select←v8228)
   word old←v8172;
   word samplesPerPixel←v8200;
   word select←v8228;
   {
   register ptr gf←c33408 =  (ptr) &globalframe;
   word new←v8376;
   word data←v11380;
   /* Extract: */ 
SOURCE(10063, 471)
SOURCE(10063, 471)
   new←v8376 = 0;
SOURCE(10189, 60)
   {
      word var←c31296;
      word var←c31328;
      word var←c31360;
      var←c31296 = BCK(samplesPerPixel←v8200, 67108863);
      var←c31328 = ((word) var←c31296 << 2);
      var←c31360 = XR←NewObject((8 + var←c31328), (* (( (ptr) gf←c33408)+17) ));
      (* (( (ptr) var←c31360)+1) ) = var←c31296;
      data←v11380 = var←c31360;
      };
SOURCE(10251, 15)
   (*  (ptr) data←v11380 ) = old←v8172;
SOURCE(10268, 103)
   {
      register word i←v11424 = 0;
      register word noName←c31392;
      noName←c31392 = (* (( (ptr) data←v11380)+1) );
      if ((i←v11424 >= noName←c31392)) {
         goto lab←L100042;
         };
      lab←L100045: ;
SOURCE(10311, 60)
      {
         word var←c31424;
         {
            word var←c31456;
            word arg←v27268;
            word limit←v27296;
            arg←v27268 = (word) ( *( (fPt) ((*  (ptr) select←v8228 ))))(i←v11424, select←v8228);
            limit←v27296 = (* (( (ptr) old←v8172)+1) );
SOURCE(1743, 73)
            if ((arg←v27268 >= limit←v27296)) {
SOURCE(1786, 30)
               (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c33408)+105)/* var←c29504 */  ))+8) ), 0);
               };
SOURCE(1818, 13)
            var←c31456 = SGNCK(arg←v27268);
            var←c31424 = var←c31456;
            };
         {
            word limit69;
            (* ((( (ptr) data←v11380)+2)+(
                  limit69 = (* (( (ptr) data←v11380)+1) ),
                  BCK(i←v11424, limit69)
                  )) ) = var←c31424;
            };
         };
      i←v11424 = (i←v11424 + 1);
      if ((i←v11424 < noName←c31392)) {
         goto lab←L100045;
         };
      lab←L100042: ;
      };
SOURCE(10382, 152)
   return((word) New←P1020((* (( (ptr) gf←c33408)+4)/* extractedClass←v3672 */  ), data←v11380, (*  (ptr) old←v8172 ), samplesPerPixel←v8200, (* (
         ( (ptr) old←v8172)+2) ), (* (( (ptr) old←v8172)+3) )
      , (* (( (ptr) old←v8172)+4) )));
   }

static void JoinedLayer←P1440(formal←c0308, data←v8520, i←v8548)
   word formal←c0308;
   word data←v8520;
   word i←v8548;
   {
   W2 var←c8592;
   /* JoinedLayer: */ 
SOURCE(10752, 250)
SOURCE(10817, 185)
   {
      register word each←v11468;
      each←v11468 = data←v8520;
      lab←L100051: ;
      if ((each←v11468 != 0)) {
         }
      else {
         goto lab←L100048;
         };
      {
         word base←v11596;
SOURCE(10882, 29)
         base←v11596 = (*  (ptr) each←v11468 );
SOURCE(10913, 89)
         if ((i←v8548 < (* (( (ptr) base←v11596)+1) ))) {
SOURCE(10944, 32)
            var←c8592.f0 = base←v11596;
            var←c8592.f1 = i←v8548;
            goto lab←L100047;
            }
         else {
SOURCE(10976, 26)
            i←v8548 = (i←v8548 - (* (( (ptr) base←v11596)+1) ));
            };
         };
      each←v11468 = (* (( (ptr) each←v11468)+1) );
      goto lab←L100051;
      lab←L100048: ;
      };
SOURCE(11013, 5)
   (void) XR←RaiseUnnamedError();
   lab←L100047: ;
   (*  (W2Pt) formal←c0308 ) = var←c8592;
   return;
   }

static word JoinedMaxSampleValue←P1500(pa←v21472, i←v21500)
   word pa←v21472;
   word i←v21500;
   {
   register ptr gf←c33440 =  (ptr) &globalframe;
   word var←c21544;
   word data←v11640;
   W2 layer←v11668;
   word class←v11696;
   /* JoinedMaxSampleValue: */ 
SOURCE(11058, 216)
SOURCE(11103, 34)
   data←v11640 = XR←Narrow((* (( (ptr) pa←v21472)+6) ), (* (( (ptr) gf←c33440)+12) ));
SOURCE(11139, 35)
   (void) JoinedLayer←P1440((word) &layer←v11668, data←v11640, i←v21500);
SOURCE(11176, 41)
   class←v11696 = (* (( (ptr) layer←v11668.f0)+5) );
SOURCE(11219, 55)
   {
      word pd70;
      pd70 = (* (( (ptr) class←v11696)+1) );
      return((word) ( *( (fPt) ((*  (ptr) pd70 ))))(layer←v11668.f0, layer←v11668.f1, pd70));
      };
   }

static word JoinedGet←P1560(pa←v21604, i←v21632, s←v21660, f←v21688)
   word pa←v21604;
   word i←v21632;
   word s←v21660;
   word f←v21688;
   {
   register ptr gf←c33472 =  (ptr) &globalframe;
   word var←c21732;
   word data←v11740;
   W2 layer←v11768;
   word class←v11796;
   /* JoinedGet: */ 
SOURCE(11280, 195)
SOURCE(11303, 34)
   data←v11740 = XR←Narrow((* (( (ptr) pa←v21604)+6) ), (* (( (ptr) gf←c33472)+12) ));
SOURCE(11339, 35)
   (void) JoinedLayer←P1440((word) &layer←v11768, data←v11740, i←v21632);
SOURCE(11376, 41)
   class←v11796 = (* (( (ptr) layer←v11768.f0)+5) );
SOURCE(11419, 56)
   {
      word pd71;
      pd71 = (* (( (ptr) class←v11796)+2) );
      return((word) ( *( (fPt) ((*  (ptr) pd71 ))))(layer←v11768.f0, layer←v11768.f1, s←v21660, f←v21688, pd71));
      };
   }

static void JoinedGetSamples←P1620(pa←v21792, i←v21820, s←v21848, f←v21876, buffer←v21904, start←v21932, count←v21960)
   word pa←v21792;
   word i←v21820;
   word s←v21848;
   word f←v21876;
   word buffer←v21904;
   word start←v21932;
   word count←v21960;
   {
   register ptr gf←c33504 =  (ptr) &globalframe;
   word data←v11840;
   W2 layer←v11868;
   word class←v11896;
   /* JoinedGetSamples: */ 
SOURCE(11481, 254)
SOURCE(11518, 34)
   data←v11840 = XR←Narrow((* (( (ptr) pa←v21792)+6) ), (* (( (ptr) gf←c33504)+12) ));
SOURCE(11554, 35)
   (void) JoinedLayer←P1440((word) &layer←v11868, data←v11840, i←v21820);
SOURCE(11591, 41)
   class←v11896 = (* (( (ptr) layer←v11868.f0)+5) );
SOURCE(11634, 101)
   {
      word pd72;
      pd72 = (* (( (ptr) class←v11896)+3) );
      (void) ( *( (fPt) ((*  (ptr) pd72 ))))(layer←v11868.f0, layer←v11868.f1, s←v21848, f←v21876, buffer←v21904, start←v21932
         , count←v21960, pd72);
      };
   }

static void JoinedTransfer←P1680(pa←v22020, i←v22048, s←v22076, f←v22104, dst←v22132, dstMin←v22160, size←v22188, function←v22216)
   word pa←v22020;
   word i←v22048;
   word s←v22076;
   word f←v22104;
   word dst←v22132;
   W2 dstMin←v22160;
   W2 size←v22188;
   word function←v22216;
   {
   register ptr gf←c33536 =  (ptr) &globalframe;
   word data←v11940;
   W2 layer←v11968;
   word class←v11996;
   /* JoinedTransfer: */ 
SOURCE(11741, 262)
SOURCE(11774, 34)
   data←v11940 = XR←Narrow((* (( (ptr) pa←v22020)+6) ), (* (( (ptr) gf←c33536)+12) ));
SOURCE(11810, 35)
   (void) JoinedLayer←P1440((word) &layer←v11968, data←v11940, i←v22048);
SOURCE(11847, 41)
   class←v11996 = (* (( (ptr) layer←v11968.f0)+5) );
SOURCE(11890, 113)
   {
      word pd73;
      pd73 = (* (( (ptr) class←v11996)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd73 ))))(layer←v11968.f0, layer←v11968.f1, s←v22076, f←v22104, dst←v22132, dstMin←v22160
         , size←v22188, function←v22216, pd73);
      };
   }

static word Join←P1740(list←v8652)
   word list←v8652;
   {
   register ptr gf←c33568 =  (ptr) &globalframe;
   word var←c8780;
   word immutable←v12040 = 1;
   word samplesPerPixel←v12068 = 0;
   word sSize←v12096 = 0;
   word fSize←v12124 = 0;
   word m←v12152 = 0;
   /* Join: */ 
SOURCE(12009, 823)
SOURCE(12177, 508)
   {
      register word each←v12196;
      each←v12196 = list←v8652;
      lab←L100055: ;
      if ((each←v12196 != 0)) {
         }
      else {
         goto lab←L100052;
         };
      {
         word pa←v12324;
SOURCE(12242, 27)
         pa←v12324 = (*  (ptr) each←v12196 );
SOURCE(12271, 38)
         if ((0 != immutable←v12040)) {
            immutable←v12040 =  (unsigned) (0 != (*  (ptr) pa←v12324 ));
            }
         else {
            immutable←v12040 =  (unsigned) 0;
            };
SOURCE(12311, 52)
         {
            word idx74;
            samplesPerPixel←v12068 = (
               idx74 = (word) (samplesPerPixel←v12068 + (* (( (ptr) pa←v12324)+1) )),
               SGNCK(idx74)
               );
            };
SOURCE(12365, 320)
         if ((each←v12196 == list←v8652)) {
SOURCE(12385, 16)
            sSize←v12096 = (* (( (ptr) pa←v12324)+2) );
SOURCE(12403, 16)
            fSize←v12124 = (* (( (ptr) pa←v12324)+3) );
SOURCE(12421, 9)
            m←v12152 = (* (( (ptr) pa←v12324)+4) );
            }
         else {
SOURCE(12452, 121)
            if (( (int)(* (( (ptr) pa←v12324)+2) ) !=  (int)sSize←v12096) || ( (int)(* (( (ptr) pa←v12324)+3) ) !=  (int)fSize←v12124)) {
SOURCE(12499, 74)
               {
                  W2 var←c0358;
                  var←c0358.f0 = (* (( (ptr) gf←c33568)+19) );
                  var←c0358.f1 = (* (( (ptr) gf←c33568)+22) );
                  (void) XR←RaiseError((word) (( (bPt) gf←c33568)+96)/* var←c28128 */ , (word) &var←c0358);
                  };
               };
SOURCE(12575, 110)
            {
               word pd75;
               pd75 = (* (( (ptr) (* (( (ptr) gf←c33568)+108)/* var←c31584 */  ))+53) );
               if ((0 == (word) ( *( (fPt) ((*  (ptr) pd75 ))))((* (( (ptr) pa←v12324)+4) ), m←v12152, pd75))) {
SOURCE(12601, 84)
                  {
                     W2 var←c0360;
                     var←c0360.f0 = (* (( (ptr) gf←c33568)+19) );
                     var←c0360.f1 = (* (( (ptr) gf←c33568)+23) );
                     (void) XR←RaiseError((word) (( (bPt) gf←c33568)+96)/* var←c28128 */ , (word) &var←c0360);
                     };
                  };
               };
            };
         };
      each←v12196 = (* (( (ptr) each←v12196)+1) );
      goto lab←L100055;
      lab←L100052: ;
      };
SOURCE(12699, 133)
   return((word) New←P1020((* (( (ptr) gf←c33568)+5)/* joinedClass←v3924 */  ), list←v8652, immutable←v12040, samplesPerPixel←v12068, sSize←v12096, fSize←v12124
      , m←v12152));
   }

static word Join3←P1800(pa1←v8840, pa2←v8868, pa3←v8896)
   word pa1←v8840;
   word pa2←v8868;
   word pa3←v8896;
   {
   register ptr gf←c33600 =  (ptr) &globalframe;
   word var←c8940;
   /* Join3: */ 
SOURCE(12837, 105)
SOURCE(12909, 33)
   {
      word var←c31744;
      word var←c31776;
      word var←c31712;
      var←c31744 = XR←NewObject(8, (* (( (ptr) gf←c33600)+12) ));
      var←c31776 = var←c31744;
      (*  (ptr) var←c31776 ) = pa1←v8840;
      (* (( (ptr) var←c31776)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c33600)+12) ));
      var←c31776 = (* (( (ptr) var←c31776)+1) );
      (*  (ptr) var←c31776 ) = pa2←v8868;
      (* (( (ptr) var←c31776)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c33600)+12) ));
      var←c31776 = (* (( (ptr) var←c31776)+1) );
      (*  (ptr) var←c31776 ) = pa3←v8896;
      var←c31712 = var←c31744;
      return((word) Join←P1740(var←c31712));
      };
   }

static word PixelMapMaxSampleValue←P1860(pa←v22276, i←v22304)
   word pa←v22276;
   word i←v22304;
   {
   register ptr gf←c33632 =  (ptr) &globalframe;
   word var←c22348;
   word data←v12368;
   word map←v12396;
   /* PixelMapMaxSampleValue: */ 
SOURCE(13184, 175)
SOURCE(13231, 36)
   data←v12368 = XR←Narrow((* (( (ptr) pa←v22276)+6) ), (* (( (ptr) gf←c33632)+14) ));
SOURCE(13269, 24)
   {
      word limit76;
      map←v12396 = (* ((( (ptr) data←v12368)+6)+(
            limit76 = (* (( (ptr) data←v12368)+5) ),
            BCK(i←v22304, limit76)
            )) );
      };
SOURCE(13295, 64)
   return(((word) Basics←BITSHIFT(1, (* (( (ptr) map←v12396)+5) )) - 1));
   }

static word PixelMapGet←P1920(pa←v22408, i←v22436, s←v22464, f←v22492)
   word pa←v22408;
   word i←v22436;
   word s←v22464;
   word f←v22492;
   {
   register ptr gf←c33664 =  (ptr) &globalframe;
   word var←c22536;
   word data←v12440;
   word map←v12468;
   W2 index←v12496;
   /* PixelMapGet: */ 
SOURCE(13365, 138)
SOURCE(13390, 36)
   data←v12440 = XR←Narrow((* (( (ptr) pa←v22408)+6) ), (* (( (ptr) gf←c33664)+14) ));
SOURCE(13428, 24)
   {
      word limit77;
      map←v12468 = (* ((( (ptr) data←v12440)+6)+(
            limit77 = (* (( (ptr) data←v12440)+5) ),
            BCK(i←v22436, limit77)
            )) );
      };
SOURCE(13454, 25)
   index←v12496.f0 = s←v22464;
   index←v12496.f1 = f←v22492;
SOURCE(13481, 22)
   {
      word pd78;
      pd78 = (* (( (ptr) (* (( (ptr) gf←c33664)+107)/* var←c30336 */  ))+42) );
      return((word) ( *( (fPt) ((*  (ptr) pd78 ))))(map←v12468, index←v12496, pd78));
      };
   }

static void PixelMapGetSamples←P1980(pa←v22596, i←v22624, s←v22652, f←v22680, buffer←v22708, start←v22736, count←v22764)
   word pa←v22596;
   word i←v22624;
   word s←v22652;
   word f←v22680;
   word buffer←v22708;
   word start←v22736;
   word count←v22764;
   {
   register ptr gf←c33696 =  (ptr) &globalframe;
   word data←v12540;
   word map←v12568;
   W2 index←v12596;
   /* PixelMapGetSamples: */ 
SOURCE(13509, 225)
SOURCE(13548, 36)
   data←v12540 = XR←Narrow((* (( (ptr) pa←v22596)+6) ), (* (( (ptr) gf←c33696)+14) ));
SOURCE(13586, 24)
   {
      word limit79;
      map←v12568 = (* ((( (ptr) data←v12540)+6)+(
            limit79 = (* (( (ptr) data←v12540)+5) ),
            BCK(i←v22624, limit79)
            )) );
      };
SOURCE(13612, 25)
   index←v12596.f0 = s←v22652;
   index←v12596.f1 = f←v22680;
SOURCE(13639, 95)
   {
      W2 var←c31936;
      var←c31936.f0 = 0;
      var←c31936.f1 = 1;
      {
         word pd80;
         pd80 = (* (( (ptr) (* (( (ptr) gf←c33696)+107)/* var←c30336 */  ))+44) );
         (void) ( *( (fPt) ((*  (ptr) pd80 ))))(map←v12568, index←v12596, var←c31936, buffer←v22708, start←v22736, count←v22764, pd80)
         ;
         };
      };
   }

static void PixelMapTransfer←P2040(pa←v22824, i←v22852, s←v22880, f←v22908, dst←v22936, dstMin←v22964, size←v22992, function←v23020)
   word pa←v22824;
   word i←v22852;
   word s←v22880;
   word f←v22908;
   word dst←v22936;
   W2 dstMin←v22964;
   W2 size←v22992;
   word function←v23020;
   {
   register ptr gf←c33728 =  (ptr) &globalframe;
   word data←v12640;
   word map←v12668;
   W2 index←v12696;
   /* PixelMapTransfer: */ 
SOURCE(13740, 235)
SOURCE(13775, 36)
   data←v12640 = XR←Narrow((* (( (ptr) pa←v22824)+6) ), (* (( (ptr) gf←c33728)+14) ));
SOURCE(13813, 24)
   {
      word limit81;
      map←v12668 = (* ((( (ptr) data←v12640)+6)+(
            limit81 = (* (( (ptr) data←v12640)+5) ),
            BCK(i←v22852, limit81)
            )) );
      };
SOURCE(13839, 25)
   index←v12696.f0 = s←v22880;
   index←v12696.f1 = f←v22908;
SOURCE(13866, 109)
   {
      word pd82;
      pd82 = (* (( (ptr) (* (( (ptr) gf←c33728)+107)/* var←c30336 */  ))+49) );
      (void) ( *( (fPt) ((*  (ptr) pd82 ))))(dst←v22936, map←v12668, dstMin←v22964, index←v12696, size←v22992, function←v23020, pd82)
      ;
      };
   }

static word PixelMapCopy←P2100(pa←v23080)
   word pa←v23080;
   {
   register ptr gf←c33760 =  (ptr) &globalframe;
   word var←c23124;
   word data0←v12740;
   word data1←v12768;
   /* PixelMapCopy: */ 
SOURCE(13981, 386)
SOURCE(14008, 37)
   data0←v12740 = XR←Narrow((* (( (ptr) pa←v23080)+6) ), (* (( (ptr) gf←c33760)+14) ));
SOURCE(14047, 61)
   {
      word var←c32000;
      word var←c32032;
      word var←c32064;
      {
         word idx83;
         var←c32000 = (
            idx83 = (* (( (ptr) data0←v12740)+5) ),
            BCK(idx83, 67108863)
            );
         };
      var←c32032 = ((word) var←c32000 << 2);
      var←c32064 = XR←NewObject((24 + var←c32032), (* (( (ptr) gf←c33760)+14) ));
      (* (( (ptr) var←c32064)+5) ) = var←c32000;
      data1←v12768 = var←c32064;
      };
SOURCE(14110, 21)
   (*  (W4Pt) (( (ptr) data1←v12768)+1) ) = (*  (W4Pt) (( (ptr) data0←v12740)+1) );
SOURCE(14133, 89)
   {
      register word i←v12812 = 0;
      register word noName←c32096;
      noName←c32096 = (* (( (ptr) data1←v12768)+5) );
      if ((i←v12812 >= noName←c32096)) {
         goto lab←L100056;
         };
      lab←L100059: ;
SOURCE(14176, 46)
      {
         word var←c32128;
         {
            W2 var←c32160;
            var←c32160.f0 = 0;
            var←c32160.f1 = 0;
            {
               word pd84;
               word limit85;
               pd84 = (* (( (ptr) (* (( (ptr) gf←c33760)+107)/* var←c30336 */  ))+21) );
               var←c32128 = (word) ( *( (fPt) ((*  (ptr) pd84 ))))((* ((( (ptr) data0←v12740)+6)+(
                        limit85 = (* (( (ptr) data0←v12740)+5) ),
                        BCK(i←v12812, limit85)
                        )) ), var←c32160, (*  (W4Pt) (( (ptr) gf←c33760)+101)/* var←c29408 */  ), pd84);
               };
            };
         {
            word limit86;
            (* ((( (ptr) data1←v12768)+6)+(
                  limit86 = (* (( (ptr) data1←v12768)+5) ),
                  BCK(i←v12812, limit86)
                  )) ) = var←c32128;
            };
         };
      i←v12812 = (i←v12812 + 1);
      if ((i←v12812 < noName←c32096)) {
         goto lab←L100059;
         };
      lab←L100056: ;
      };
SOURCE(14224, 143)
   return((word) New←P1020((* (( (ptr) gf←c33760)+6)/* pixelMapClass←v4176 */  ), data1←v12768, 1, (* (( (ptr) pa←v23080)+1)
       ), (* (( (ptr) pa←v23080)+2) ), (* (( (ptr) pa←v23080)+3) )
      , (* (( (ptr) pa←v23080)+4) )));
   }

static word FromPixelMap←P2160(pixelMap←v9000, box←v9028, scanMode←v9056, immutable←v9084)
   word pixelMap←v9000;
   W4 box←v9028;
   word scanMode←v9056;
   word immutable←v9084;
   {
   register ptr gf←c33792 =  (ptr) &globalframe;
   word var←c9128;
   word samplesPerPixel←v12856;
   /* FromPixelMap: */ 
SOURCE(14373, 739)
SOURCE(14496, 47)
   samplesPerPixel←v12856 = (* (( (ptr) pixelMap←v9000)+5) );
SOURCE(14545, 532)
   {
      word pd87;
      pd87 = (* (( (ptr) (* (( (ptr) gf←c33792)+106)/* var←c30144 */  ))+21) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd87 ))))(box←v9028, (*  (W4Pt) (( (ptr) pixelMap←v9000)+1) ), pd87))) {
SOURCE(14582, 497)
         {
            W2 delta←v12900;
            W2 size←v12928;
            word m←v12956;
            word new←v12984;
SOURCE(14584, 28)
            {
               word pd88;
               pd88 = (* (( (ptr) (* (( (ptr) gf←c33792)+106)/* var←c30144 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd88 ))))((word) &delta←v12900, (*  (W2Pt) &box←v9028 ), pd88);
               };
SOURCE(14614, 24)
            {
               word pd89;
               pd89 = (* (( (ptr) (* (( (ptr) gf←c33792)+106)/* var←c30144 */  ))+19) );
               (void) ( *( (fPt) ((*  (ptr) pd89 ))))((word) &size←v12928, box←v9028, pd89);
               };
SOURCE(14640, 97)
            {
               word pd90;
               pd90 = (* (( (ptr) (* (( (ptr) gf←c33792)+108)/* var←c31584 */  ))+11) );
               m←v12956 = (word) ( *( (fPt) ((*  (ptr) pd90 ))))(scanMode←v9056, size←v12928.f0, size←v12928.f1, pd90);
               };
SOURCE(14739, 49)
            {
               word var←c32224;
               word var←c32256;
               word var←c32288;
               var←c32224 = BCK(samplesPerPixel←v12856, 67108863);
               var←c32256 = ((word) var←c32224 << 2);
               var←c32288 = XR←NewObject((24 + var←c32256), (* (( (ptr) gf←c33792)+14) ));
               (* (( (ptr) var←c32288)+5) ) = var←c32224;
               new←v12984 = var←c32288;
               };
SOURCE(14790, 21)
            (* (( (ptr) new←v12984)+1) ) = 0;
            (* (( (ptr) new←v12984)+2) ) = 0;
            (*  (W2Pt) (( (ptr) new←v12984)+3) ) = size←v12928;
SOURCE(14813, 117)
            {
               register word j←v13028 = 0;
               if ((j←v13028 >= samplesPerPixel←v12856)) {
                  goto lab←L100060;
                  };
               lab←L100063: ;
SOURCE(14851, 79)
               {
                  word var←c32320;
                  {
                     W4 var←c32352;
                     var←c32352.f0 = 0;
                     var←c32352.f1 = 0;
                     (*  (W2Pt) (( (ptr) &var←c32352)+2) ) = size←v12928;
                     {
                        word pd91;
                        word limit92;
                        pd91 = (* (( (ptr) (* (( (ptr) gf←c33792)+107)/* var←c30336 */  ))+26) );
                        var←c32320 = (word) ( *( (fPt) ((*  (ptr) pd91 ))))((* ((( (ptr) pixelMap←v9000)+6)+(
/*1*/      limit92 = (* (( (ptr) pixelMap←v9000)+5) ),
/*1*/      BCK(j←v13028, limit92)
/*1*/      )) ), delta←v12900, var←c32352, pd91);
                        };
                     };
                  {
                     word limit93;
                     (* ((( (ptr) new←v12984)+6)+(
                           limit93 = (* (( (ptr) new←v12984)+5) ),
                           BCK(j←v13028, limit93)
                           )) ) = var←c32320;
                     };
                  };
               j←v13028 = (j←v13028 + 1);
               if ((j←v13028 < samplesPerPixel←v12856)) {
                  goto lab←L100063;
                  };
               lab←L100060: ;
               };
SOURCE(14941, 136)
            return((word) New←P1020((* (( (ptr) gf←c33792)+6)/* pixelMapClass←v4176 */  ), new←v12984, immutable←v9084, samplesPerPixel←v12856, size←v12928.f0, size←v12928.f1
               , m←v12956));
            };
         };
      };
SOURCE(15082, 30)
   (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c33792)+105)/* var←c29504 */  ))+8) ), 0);
   }

/* file: ImagerPixelArrayImpl, module: ImagerPixelArrayImpl, compiled at: July 28, 1993 10:21:31 am PDT */ 
extern void XR←install←ImagerPixelArrayImpl() {
   NoName←Q4176();
   }
extern void XR←run←ImagerPixelArrayImpl() { XR←Start(&globalframe); }