/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: March 10, 1992 11:56:50 am PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: ImagerPixelArrayAISImpl, module: ImagerPixelArrayAISImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1597582896,954321430] ImagerPixelArrayAISImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W16 r;} W32;
typedef struct {W32 f; W32 r;} W64;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W64 f; W7 r;} W71;
typedef struct {word f0, f1;} W2;
typedef W3 *W3Pt;
typedef W2 *W2Pt;
typedef W8 *W8Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W4 r;} W12;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef W4 *W4Pt;
#define SOURCE(p, l) /* source p, l */
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#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←Q2652();
static void ImagerPixelArrayAISImpl←P0();
static void ProduceError←P180();
static void Assert←P240();
static void ReadBytes←P360();
static word FromAIS←P420();
static word p←P1044();
static word MaxSampleValueAIS←P480();
static void GetSamplesAIS←P540();
static void entryGetSamplesAIS←P1152();
static word NoName←Q2712();
static word Join3AIS←P600();
static void NoName←Q2772();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[48];} string3 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\363\223\326\161\300\017\164\046\072\104\350\005\004\162\145\163\164\214\216\257\300\363\223\326\161\300\017\164\046\072\104\350\261\000\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\004\003\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[16];} string6 = {851984, "\257\300\071\045\144\167\300\145\377\112\006\100\310\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\360\267\030\234\300\056\314\125\176\100\164\000\000"};
static struct {unsigned f; char r[8];} string8 = {262148, "\004\200\203\360\000\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\071\045\144\167\300\145\377\112\006\100\274\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\071\045\144\167\300\145\377\112\006\100\260\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\071\045\144\167\300\145\377\112\006\100\230\000\000"};
static struct {unsigned f; char r[32];} string12 = {1835040, "AIS password value is wrong.\000\000\000"};
static struct {unsigned f; char r[28];} string13 = {1572892, "Unknown AIS coding type.\000\000\000"};
static struct {unsigned f; char r[20];} string14 = {1048596, "File not found: \000\000\000"};
static struct {unsigned f; char r[36];} string15 = {2293796, "AIS file structure is inconsistent."};
static struct {unsigned f; char r[4];} string16 = {196612, "AIS"};
static struct {unsigned f; char r[16];} string17 = {983056, "Bug in FromAIS."};
static struct {unsigned f; char r[44];} string18 = {2621484, "AIS file has unimplemented scanDirection\000\000\000"};
static struct {unsigned f; char r[32];} string19 = {1835040, "AIS file has no raster part.\000\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\137\071\056\060\300\070\341\312\026\100\200\000\000"};
static struct {unsigned f; char r[12];} string21 = {589833, "\006\002\024\001\100\144\004\100\377\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\170\002\151\000\300\332\212\147\067\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\041\257\203\366\300\322\161\356\007\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\056\204\102\044\300\111\366\033\137\100\150\000\000"};
static struct {
   word f0[4]; word f4; word f5[28]; 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[10]; 
   } globalframe = {
   {0}, 16, {0}, (word) Join3AIS←P600, 
   0, (word) GetSamplesAIS←P540, 0, (word) MaxSampleValueAIS←P480, 
   0, (word) FromAIS←P420, 0, (word) ReadBytes←P360, 
   0, (word) Assert←P240, 0, (word) ProduceError←P180, 
   0, (word) ImagerPixelArrayAISImpl←P0, {0}
   };

static void NoName←Q2652()
   {
   register ptr gf←c0162 =  (ptr) &globalframe;
   word var←c24736;
   (* (( (ptr) gf←c0162)+6) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0162)+7) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0162)+11) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string2);
   (* (( (ptr) gf←c0162)+12) ) = (word) XR←GetTypeIndexS((word) (&string6));
   (* (( (ptr) gf←c0162)+13) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0162)+22) ) = (word) XR←GetTypeIndexS((word) (&string9));
   (* (( (ptr) gf←c0162)+23) ) = (word) XR←GetTypeIndexS((word) (&string10));
   (* (( (ptr) gf←c0162)+24) ) = (word) XR←GetTypeIndexS((word) (&string11));
   (*  (ptr) (( (bPt) gf←c0162)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0162)+11) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0162)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0162)+11) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0162)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0162)+11) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0162)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0162)+11) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0162)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0162)+6) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0162)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0162)+11) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0162)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0162)+11) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0162)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0162)+11) ), (word) &string19);
   (void) XR←DeclareGlobalFrame((word) "ImagerPixelArrayAISImpl", &globalframe, (word) XR←GetTypeIndex((word) &string20, 0, (word) &string21)
      , (word) (( (bPt) gf←c0162)+188)/* var←c22368 */ );
   var←c24736 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string22)), 3);
   (* (( (ptr) gf←c0162)+50)/* var←c22432 */  ) = var←c24736;
   var←c24736 = (word) XR←ImportInterface((word) "ImagerPixelArray", (word) XR←GetTypeIndexS((word) (&string23)), 13);
   (* (( (ptr) gf←c0162)+56)/* var←c24704 */  ) = var←c24736;
   (void) XR←ImportProcS(var←c24736, 67898115);
   var←c24736 = (word) XR←ImportInterface((word) "ImagerPixelArrayPrivate", (word) XR←GetTypeIndexS((word) (&string24)), 2);
   (* (( (ptr) gf←c0162)+49)/* var←c22400 */  ) = var←c24736;
   (void) XR←ImportProcS(var←c24736, 68944135);
   (void) XR←ImportProcS(var←c24736, 68681734);
   var←c24736 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string25)), 60);
   (* (( (ptr) gf←c0162)+54)/* var←c24032 */  ) = var←c24736;
   (void) XR←ImportProcS(var←c24736, 2107398);
   (void) XR←ImportProcS(var←c24736, 68685571);
   var←c24736 = (word) XR←ImportInterface((word) "ImagerSys", (word) XR←GetTypeIndexS((word) (&string26)), 15);
   (* (( (ptr) gf←c0162)+52)/* var←c22592 */  ) = var←c24736;
   (void) XR←ImportProcS(var←c24736, 67373313);
   var←c24736 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string27)), 55);
   (* (( (ptr) gf←c0162)+55)/* var←c24224 */  ) = var←c24736;
   (void) XR←ImportProcS(var←c24736, 67897091);
   var←c24736 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string28)), 103);
   (* (( (ptr) gf←c0162)+51)/* var←c22528 */  ) = var←c24736;
   (void) XR←ImportProcS(var←c24736, 530946);
   (void) XR←ImportProcS(var←c24736, 67377409);
   (void) XR←ImportProcS(var←c24736, 68160002);
   var←c24736 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string29)), 43);
   (* (( (ptr) gf←c0162)+53)/* var←c22688 */  ) = var←c24736;
   (void) XR←ImportProcS(var←c24736, 67902211);
   (void) XR←ImportProcS(var←c24736, 67633666);
   var←c24736 = (word) XR←ExportInterface((word) "ImagerPixelArrayAIS", (word) XR←GetTypeIndexS((word) (&string30)), 2);
   (* (( (ptr) gf←c0162)+57)/* var←c24768 */  ) = var←c24736;
   (void) XR←ExportProcS(var←c24736, (word) (( (bPt) gf←c0162)+156)/* var←c22240 */ , 67371009);
   (void) XR←ExportProcS(var←c24736, (word) (( (bPt) gf←c0162)+132)/* var←c22144 */ , 67895555);
   }

static void ImagerPixelArrayAISImpl←P0(formal←c024, formal←c023)
   word formal←c024;
   word formal←c023;
   {
   register ptr gf←c24800 =  (ptr) &globalframe;
   /* ImagerPixelArrayAISImpl: */ 
SOURCE(956, 8758)
   /* moved to installation proc */ 
SOURCE(8100, 160)
   {
      word pd31;
      pd31 = (* (( (ptr) (* (( (ptr) gf←c24800)+49)/* var←c22400 */  ))+4) );
      (* (( (ptr) gf←c24800)+5)/* classAIS←v3448 */  ) = (word) ( *( (fPt) ((*  (ptr) pd31 ))))((* (( (ptr) gf←c24800)+29) ), (word) (
            ( (bPt) gf←c24800)+148)/* var←c22208 */ , 0, (word) (( (bPt) gf←c24800)+140)/* var←c22176 */ , 0, 0, pd31);
      };
   }

static void ProduceError←P180(explanation←v3820)
   word explanation←v3820;
   {
   register ptr gf←c24832 =  (ptr) &globalframe;
   /* ProduceError: */ 
SOURCE(1644, 109)
SOURCE(1687, 66)
   {
      W3 var←c027;
      var←c027.f0 = 40;
      var←c027.f1 = explanation←v3820;
      var←c027.f2 = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c24832)+50)/* var←c22432 */  ))+4) ), (word) &var←c027);
      };
   }

static void Assert←P240(assertion←v3880)
   word assertion←v3880;
   {
   register ptr gf←c24864 =  (ptr) &globalframe;
   /* Assert: */ 
SOURCE(1759, 108)
SOURCE(1794, 73)
   if ((0 == assertion←v3880)) {
SOURCE(1816, 51)
      (void) ProduceError←P180((* ((( (ptr) gf←c24864)+28)) ));
      };
   }

static void ReadBytes←P360(stream←v4044, base←v4072, bytes←v4100)
   word stream←v4044;
   word base←v4072;
   word bytes←v4100;
   {
   register ptr gf←c24896 =  (ptr) &globalframe;
   word actualBytes←v4404;
   /* ReadBytes: */ 
SOURCE(1995, 224)
SOURCE(2081, 82)
   {
      W3 var←c22496;
      var←c22496.f0 = base←v4072;
      var←c22496.f1 = 0;
      var←c22496.f2 = bytes←v4100;
      {
         word pd32;
         pd32 = (* (( (ptr) (* (( (ptr) gf←c24896)+51)/* var←c22528 */  ))+14) );
         actualBytes←v4404 = (word) ( *( (fPt) ((*  (ptr) pd32 ))))(stream←v4044, var←c22496, pd32);
         };
      };
SOURCE(2165, 54)
   if (( (int)actualBytes←v4404 !=  (int)bytes←v4100)) {
SOURCE(2191, 28)
      {
         word var←c034;
         var←c034 = stream←v4044;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c24896)+51)/* var←c22528 */  ))+4) ), (word) &var←c034);
         };
      };
   }

static word FromAIS←P420(name←v4172)
   word name←v4172;
   {
   W71 var←c24928;
   register ptr gf←c24960 =  (ptr) &globalframe;
   word var←c4216;
   /* declaration of var←c22560 skipped */ 
   word stream←v4448;
   word data←v4476;
   word header←v4504;
   word m←v4532 = 0;
   /* FromAIS: */ 
SOURCE(2244, 5849)
   {
      word tmpAddr33;
      tmpAddr33 = (word) (( (ptr) &var←c24928)+4)/* var←c22560 */ ;
      (*  (ptr) tmpAddr33 ) = ( ((word)  (fPt) p←P1044) );
      (* (( (ptr) tmpAddr33) + 1) ) = 1;
      };
SOURCE(2323, 46)
   {
      word pd34;
      pd34 = (* (( (ptr) (* (( (ptr) gf←c24960)+52)/* var←c22592 */  ))+13) );
      stream←v4448 = (word) ( *( (fPt) ((*  (ptr) pd34 ))))(name←v4172, pd34);
      };
SOURCE(2371, 44)
   data←v4476 = XR←NewObject(64, (* (( (ptr) gf←c24960)+13) ));
   (* (( (ptr) data←v4476)+4) ) = stream←v4448;
SOURCE(2644, 119)
   if ((stream←v4448 == 0)) {
SOURCE(2665, 98)
      {
         word var←c22656;
         {
            word pd35;
            pd35 = (* (( (ptr) (* (( (ptr) gf←c24960)+53)/* var←c22688 */  ))+6) );
            var←c22656 = (word) ( *( (fPt) ((*  (ptr) pd35 ))))((* (( (ptr) gf←c24960)+27) ), name←v4172, pd35);
            };
         {
            W3 var←c044;
            var←c044.f0 = 20;
            var←c044.f1 = var←c22656;
            var←c044.f2 = 0;
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c24960)+50)/* var←c22432 */  ))+4) ), (word) &var←c044);
            };
         };
      };
SOURCE(2773, 54)
SOURCE(2775, 52)
   (void) ReadBytes←P360(stream←v4448, (word) &header←v4504, 4);
SOURCE(2830, 84)
   if (((*  (hPt) &header←v4504 ) != 33962)) {
SOURCE(2870, 44)
      (void) ProduceError←P180((* ((( (ptr) gf←c24960)+25)) ));
      };
SOURCE(2916, 81)
   {
      word tc36;
      if ((( (((unsigned)header←v4504 << 16) >> 16) ) > 0)) {
         tc36 =  (word) ((( (((unsigned)header←v4504 << 16) >> 16) ) & 01777) == 0);
         }
      else {
         tc36 =  (word) 0;
         };
      (void) Assert←P240(tc36);
      };
SOURCE(2999, 65)
   {
      word aisWords←v21812;
      aisWords←v21812 = ( (((unsigned)header←v4504 << 16) >> 16) );
SOURCE(1937, 52)
      (* (( (ptr) data←v4476)+10) ) = IOP2( * ,  (int)2,  (int)aisWords←v21812);
      };
SOURCE(3066, 3661)
   {
      register word firstPart←v4704;
      firstPart←v4704 = 1;
      lab←L100004: ;
      {
         word partHeader←v4748;
         word startIndex←v4776;
         word stopIndex←v4804;
SOURCE(3253, 37)
         {
            word pd37;
            pd37 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+29) );
            startIndex←v4776 = (word) ( *( (fPt) ((*  (ptr) pd37 ))))(stream←v4448, pd37);
            };
SOURCE(3316, 53)
SOURCE(3318, 51)
         (void) ReadBytes←P360(stream←v4448, (word) &partHeader←v4748, 2);
SOURCE(3372, 88)
         {
            word var←c22784;
            word aisWords←v21764;
            aisWords←v21764 = (((((unsigned)partHeader←v4748 << 6) >> 30) << 8) + (* (( (bPt) &partHeader←v4748)+1) ));
SOURCE(1937, 52)
            var←c22784 = IOP2( * ,  (int)2,  (int)aisWords←v21764);
            stopIndex←v4804 = (startIndex←v4776 + var←c22784);
            };
SOURCE(3462, 42)
         (void) Assert←P240(( (int)stopIndex←v4804 <=  (int)(* (( (ptr) data←v4476)+10) )));
SOURCE(3506, 3074)
         {
            word var←c22816;
            var←c22816 = ((unsigned)partHeader←v4748 >> 26);
            switch (var←c22816) {
               case 0: 
SOURCE(3545, 59)
                  {
                     word tc38;
                     if (((((unsigned)partHeader←v4748 << 6) >> 30) == 0)) {
                        tc38 =  (word) ((* (( (bPt) &partHeader←v4748)+1) ) == 0);
                        }
                     else {
                        tc38 =  (word) 0;
                        };
                     (void) Assert←P240(tc38);
                     };
SOURCE(3606, 5)
                  goto lab←L100002;
               case 1: 
SOURCE(3649, 1231)
                  {
                     W3 raster←v4976;
SOURCE(3797, 17)
                     (void) Assert←P240(firstPart←v4704);
SOURCE(3853, 49)
SOURCE(3855, 47)
                     (void) ReadBytes←P360(stream←v4448, (word) &raster←v4976, 10);
SOURCE(3905, 38)
                     {
                        word var←c22848;
                        {
                           word pd39;
                           pd39 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+29) );
                           var←c22848 = ( (int)(word) ( *( (fPt) ((*  (ptr) pd39 ))))(stream←v4448, pd39) <=  (int)stopIndex←v4804);
                           };
                        (void) Assert←P240(var←c22848);
                        };
SOURCE(3945, 103)
                     {
                        word tc40;
                        word tc41;
                        if (((*  (hPt) &raster←v4976 ) > 0)) {
                           tc41 =  (word) ((* (( (hPt) &raster←v4976)+1) ) > 0);
                           }
                        else {
                           tc41 =  (word) 0;
                           };
                        if (tc41) {
                           tc40 =  (word) ((* (( (hPt) &raster←v4976)+3) ) > 0);
                           }
                        else {
                           tc40 =  (word) 0;
                           };
                        (void) Assert←P240(tc40);
                        };
SOURCE(4050, 40)
                     {
                        word var←c22880;
                        var←c22880 = XR←NewObject(12, (* (( (ptr) gf←c24960)+24) ));
                        (*  (W3Pt) var←c22880 ) = raster←v4976;
                        (* (( (ptr) data←v4476)+5) ) = var←c22880;
                        };
SOURCE(4092, 786)
                     {
                        word var←c22912;
                        var←c22912 = (* (( (bPt) &raster←v4976)+9) );
                        if ((var←c22912 == 1)) {
SOURCE(4131, 693)
                           {
/*1*/   W2 uca←v5148;
/*1*/   word byteSizeCoding←v5176;
SOURCE(4274, 51)
/*1*/   {
/*1*/      word pd42;
/*1*/      pd42 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+29) );
/*1*/      byteSizeCoding←v5176 = (stopIndex←v4804 - (word) ( *( (fPt) ((*  (ptr) pd42 ))))(stream←v4448, pd42));
/*1*/      };
SOURCE(4327, 41)
/*1*/   (void) Assert←P240(( (int)byteSizeCoding←v5176 <=  (int)8));
SOURCE(4378, 42)
SOURCE(4380, 40)
/*1*/   (void) ReadBytes←P360(stream←v4448, (word) &uca←v5148, byteSizeCoding←v5176);
SOURCE(4423, 62)
/*1*/   if (((*  (hPt) &uca←v5148 ) == 0)) {
SOURCE(4459, 26)
/*1*/      (* (( (bPt) &uca←v5148)+1) ) = 1;
/*1*/      };
SOURCE(4497, 178)
/*1*/   {
/*1*/      word var←c22944;
/*1*/      {
/*1*/         word var←c22976;
/*1*/         word aisWords←v21716;
/*1*/         word var←c0175;
/*1*/         aisWords←v21716 = (* (( (hPt) &uca←v5148)+1) );
SOURCE(1937, 52)
/*1*/         var←c22976 = IOP2( * ,  (int)2,  (int)aisWords←v21716);
/*1*/         var←c0175 = IOP2( * ,  (int)8,  (int)var←c22976);
/*1*/         var←c22944 = ( (int)IOP2( * ,  (int)IOP2( * ,  (int)(*  (hPt) &uca←v5148 ),  (int)(* (( (hPt) &raster←v4976)+3) )),  (int)(* (
/*1*/               ( (hPt) &raster←v4976)+1) )) <=  (int)var←c0175);
/*1*/         };
/*1*/      (void) Assert←P240(var←c22944);
/*1*/      };
SOURCE(4677, 107)
/*1*/   if (( (int)byteSizeCoding←v5176 <  (int)8)) {
SOURCE(4720, 35)
/*1*/      (void) Assert←P240(((* (( (hPt) &uca←v5148)+2) ) == 65535));
SOURCE(4757, 27)
/*1*/      (* (( (hPt) &uca←v5148)+3) ) = 65535;
/*1*/      };
SOURCE(4789, 33)
/*1*/   {
/*1*/      word var←c23008;
/*1*/      var←c23008 = XR←NewObject(8, (* (( (ptr) gf←c24960)+23) ));
/*1*/      (*  (W2Pt) var←c23008 ) = uca←v5148;
/*1*/      (* (( (ptr) data←v4476)+6) ) = var←c23008;
/*1*/      };
/*1*/   };
                           }
                        else {
SOURCE(4838, 40)
                           (void) ProduceError←P180((* ((( (ptr) gf←c24960)+26)) ));
                           };
                        };
                     };
                  break;
               case 2: 
SOURCE(4896, 552)
                  {
                     W2 placement←v5348;
                     word var←c23072;
                     word temp←v21908;
                     word var←c23136;
                     word temp←v7972;
                     word var←c23200;
                     word temp←v22084;
                     word var←c23264;
                     word temp←v22040;
SOURCE(5061, 55)
SOURCE(5063, 53)
                     (void) ReadBytes←P360(stream←v4448, (word) &placement←v5348, 8);
SOURCE(5119, 37)
                     {
                        word var←c23040;
                        {
                           word pd43;
                           pd43 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+29) );
                           var←c23040 = ( (int)(word) ( *( (fPt) ((*  (ptr) pd43 ))))(stream←v4448, pd43) ==  (int)stopIndex←v4804);
                           };
                        (void) Assert←P240(var←c23040);
                        };
SOURCE(5158, 209)
                     {
                        word tc44;
                        word tc45;
                        word tc46;
                        temp←v21908 = (*  (hPt) &placement←v5348 );
                        var←c23072 =  (int) ( short )( (((unsigned)temp←v21908 << 16) >> 16) );
                        if (( (int)var←c23072 ==  (int) (word) -1)) {
                           temp←v7972 = (* (( (hPt) &placement←v5348)+1) );
                           var←c23136 =  (int) ( short )( (((unsigned)temp←v7972 << 16) >> 16) );
                           tc46 =  (word) ( (int)var←c23136 ==  (int) (word) -1);
                           }
                        else {
                           tc46 =  (word) 0;
                           };
                        if (tc46) {
                           temp←v22084 = (* (( (hPt) &placement←v5348)+2) );
                           var←c23200 =  (int) ( short )( (((unsigned)temp←v22084 << 16) >> 16) );
                           tc45 =  (word) ( (int)var←c23200 ==  (int) (word) -1);
                           }
                        else {
                           tc45 =  (word) 0;
                           };
                        if (tc45) {
                           temp←v22040 = (* (( (hPt) &placement←v5348)+3) );
                           var←c23264 =  (int) ( short )( (((unsigned)temp←v22040 << 16) >> 16) );
                           tc44 =  (word) ( (int)var←c23264 ==  (int) (word) -1);
                           }
                        else {
                           tc44 =  (word) 0;
                           };
                        if (tc44) {
                           }
                        else {
SOURCE(5301, 66)
                           {
/*1*/   word var←c23328;
/*1*/   word var←c23360;
/*1*/   word temp←v21996;
/*1*/   temp←v21996 = (* (( (hPt) &placement←v5348)+2) );
/*1*/   var←c23360 =  (int) ( short )( (((unsigned)temp←v21996 << 16) >> 16) );
/*1*/   if (( (int)var←c23360 >  (int)0)) {
/*1*/      {
/*1*/         word var←c23424;
/*1*/         word temp←v21952;
/*1*/         temp←v21952 = (* (( (hPt) &placement←v5348)+3) );
/*1*/         var←c23424 =  (int) ( short )( (((unsigned)temp←v21952 << 16) >> 16) );
/*1*/         var←c23328 = ( (int)var←c23424 >  (int)0);
/*1*/         };
/*1*/      }
/*1*/   else {
/*1*/      var←c23328 = 0;
/*1*/      };
/*1*/   (void) Assert←P240(var←c23328);
/*1*/   };
                           };
                        };
SOURCE(5369, 26)
                     (void) Assert←P240(((* (( (ptr) data←v4476)+7) ) == 0));
SOURCE(5397, 49)
                     {
                        word var←c23488;
                        var←c23488 = XR←NewObject(8, (* (( (ptr) gf←c24960)+22) ));
                        (*  (W2Pt) var←c23488 ) = placement←v5348;
                        (* (( (ptr) data←v4476)+7) ) = var←c23488;
                        };
                     };
                  break;
               case 3: 
SOURCE(5465, 411)
                  {
                     W8 photometry←v5520;
SOURCE(5467, 39)
                     XR←FillWords(&photometry←v5520, 8, 0);
                     photometry←v5520.f5 =  (word) -1;
                     photometry←v5520.f6 =  (word) -1;
SOURCE(5633, 57)
SOURCE(5635, 55)
                     (void) ReadBytes←P360(stream←v4448, (word) &photometry←v5520, 30);
SOURCE(5693, 38)
                     {
                        word var←c23552;
                        {
                           word pd47;
                           pd47 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+29) );
                           var←c23552 = ( (int)(word) ( *( (fPt) ((*  (ptr) pd47 ))))(stream←v4448, pd47) <=  (int)stopIndex←v4804);
                           };
                        (void) Assert←P240(var←c23552);
                        };
SOURCE(5733, 30)
                     {
                        word pd48;
                        pd48 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+30) );
                        (void) ( *( (fPt) ((*  (ptr) pd48 ))))(stream←v4448, stopIndex←v4804, pd48);
                        };
SOURCE(5793, 27)
                     (void) Assert←P240(((* (( (ptr) data←v4476)+8) ) == 0));
SOURCE(5822, 52)
                     {
                        word var←c23584;
                        var←c23584 = XR←NewObject(32, (* (( (ptr) gf←c24960)+12) ));
                        (*  (W8Pt) var←c23584 ) = photometry←v5520;
                        (* (( (ptr) data←v4476)+8) ) = var←c23584;
                        };
                     };
                  break;
               case 4: 
SOURCE(5890, 646)
                  {
                     /* declaration of comment←v5692 skipped */ 
                     word byteSizeComment←v5720;
                     word length←v5748 = 0;
                     word rope←v5776 = 0;
SOURCE(6041, 52)
                     {
                        word pd49;
                        pd49 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+29) );
                        byteSizeComment←v5720 = (stopIndex←v4804 - (word) ( *( (fPt) ((*  (ptr) pd49 ))))(stream←v4448, pd49));
                        };
SOURCE(6168, 50)
                     (void) Assert←P240( ( ( (int)byteSizeComment←v5720 >=  (int)1) ? ( (int)byteSizeComment←v5720 <=  (int)256) : 0 ) );
SOURCE(6228, 47)
SOURCE(6230, 45)
                     (void) ReadBytes←P360(stream←v4448, (word) (( (bPt) &var←c24928)+24)/* comment←v5692 */ , byteSizeComment←v5720);
SOURCE(6278, 26)
                     length←v5748 = (* (( (bPt) &var←c24928)+24) );
SOURCE(6306, 38)
                     (void) Assert←P240(( (int)byteSizeComment←v5720 >=  (int)SGNCK((length←v5748 + 1))));
SOURCE(6346, 144)
                     {
                        /* declaration of i←v5948 skipped */ 
SOURCE(6380, 10)
                        (* (( (ptr) &var←c24928)+70)/* i←v5948 */  ) = 0;
SOURCE(6449, 39)
                        {
                           word pd50;
                           pd50 = (* (( (ptr) (* (( (ptr) gf←c24960)+53)/* var←c22688 */  ))+31) );
                           rope←v5776 = (word) ( *( (fPt) ((*  (ptr) pd50 ))))(length←v5748, (word) (( (bPt) &var←c24928)+16)/* var←c22560 */ , 2147483647, pd50)
                           ;
                           };
                        };
SOURCE(6493, 41)
                     {
                        word var←c23616;
                        var←c23616 = XR←NewObject(8, (* (( (ptr) gf←c24960)+7) ));
                        (*  (ptr) var←c23616 ) = rope←v5776;
                        (* (( (ptr) var←c23616)+1) ) = (* (( (ptr) data←v4476)+9) );
                        (* (( (ptr) data←v4476)+9) ) = var←c23616;
                        };
                     };
                  break;
               default: 
SOURCE(6550, 30)
                  {
                     word pd51;
                     pd51 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+30) );
                     (void) ( *( (fPt) ((*  (ptr) pd51 ))))(stream←v4448, stopIndex←v4804, pd51);
                     };
                  break;
               };
            };
SOURCE(6610, 117)
         {
            word pd52;
            pd52 = (* (( (ptr) (* (( (ptr) gf←c24960)+51)/* var←c22528 */  ))+29) );
            if (( (int)(word) ( *( (fPt) ((*  (ptr) pd52 ))))(stream←v4448, pd52) ==  (int)stopIndex←v4804)) {
               }
            else {
SOURCE(6658, 69)
               {
                  W3 var←c089;
                  var←c089.f0 = 10;
                  var←c089.f1 = (* (( (ptr) gf←c24960)+30) );
                  var←c089.f2 = 0;
                  (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c24960)+50)/* var←c22432 */  ))+4) ), (word) &var←c089);
                  };
               };
            };
         };
      firstPart←v4704 = 0;
      goto lab←L100004;
      lab←L100002: ;
      };
SOURCE(6738, 1355)
   if ( ( ((* (( (ptr) data←v4476)+5) ) != 0) ? ((* (( (ptr) data←v4476)+6) ) != 0) : 0 ) ) {
SOURCE(6779, 1247)
      {
         word samplesPerPixel←v6080;
         word sSize←v6108;
         word fSize←v6136;
         word linesPerBlock←v6164;
         word bytesPadding←v6192 = 0;
         word scanMode←v6220;
SOURCE(6781, 56)
         {
            word h←v21572;
            h←v21572 = (* (( (hPt) (* (( (ptr) data←v4476)+5) ))+3) );
SOURCE(1429, 31)
            samplesPerPixel←v6080 = h←v21572;
            };
SOURCE(6839, 45)
         {
            word h←v21524;
            h←v21524 = (*  (hPt) (* (( (ptr) data←v4476)+5) ) );
SOURCE(1429, 31)
            sSize←v6108 = h←v21524;
            };
SOURCE(6886, 46)
         {
            word h←v21476;
            h←v21476 = (* (( (hPt) (* (( (ptr) data←v4476)+5) ))+1) );
SOURCE(1429, 31)
            fSize←v6136 = h←v21476;
            };
SOURCE(6934, 58)
         {
            word h←v21428;
            h←v21428 = (* (( (hPt) (* (( (ptr) data←v4476)+6) ))+2) );
SOURCE(1429, 31)
            linesPerBlock←v6164 = h←v21428;
            };
SOURCE(7017, 39)
         scanMode←v6220 = 0;
SOURCE(7058, 69)
         {
            word var←c23808;
            word aisWords←v21668;
            {
               word h←v21380;
               h←v21380 = (* (( (hPt) (* (( (ptr) data←v4476)+6) ))+1) );
SOURCE(1429, 31)
               aisWords←v21668 = h←v21380;
               };
SOURCE(1937, 52)
            var←c23808 = IOP2( * ,  (int)2,  (int)aisWords←v21668);
            (* (( (ptr) data←v4476)+12) ) = var←c23808;
            };
SOURCE(7129, 156)
         if (((* (( (hPt) (* (( (ptr) data←v4476)+6) ))+2) ) == 65535)) {
SOURCE(7168, 54)
            {
               word x53;
               linesPerBlock←v6164 = (x53 = (* (( (ptr) gf←c24960)+4)/* defaultLinesPerBlock←v3280 */  ),
                  MIN( (unsigned) , x53, sSize←v6108));
               };
            }
         else {
SOURCE(7222, 63)
            {
               word var←c23872;
               word aisWords←v21620;
               {
                  word h←v21332;
                  h←v21332 = (* (( (hPt) (* (( (ptr) data←v4476)+6) ))+3) );
SOURCE(1429, 31)
                  aisWords←v21620 = h←v21332;
                  };
SOURCE(1937, 52)
               var←c23872 = IOP2( * ,  (int)2,  (int)aisWords←v21620);
               bytesPadding←v6192 = var←c23872;
               };
            };
SOURCE(7287, 65)
         (* (( (ptr) data←v4476)+11) ) = (IOP2( * ,  (int)(* (( (ptr) data←v4476)+12) ),  (int)linesPerBlock←v6164) + bytesPadding←v6192);
SOURCE(7354, 213)
         {
            word var←c23936;
            {
               word var←c23968;
               word h←v21284;
               h←v21284 = (*  (hPt) (* (( (ptr) data←v4476)+6) ) );
SOURCE(1429, 31)
               var←c23968 = h←v21284;
               var←c23936 = BCK(var←c23968, 33);
               };
            {
               W4 var←c24000;
               var←c24000.f0 = 0;
               var←c24000.f1 = 0;
               var←c24000.f2 = SGNCK(linesPerBlock←v6164);
               {
                  word idx54;
                  var←c24000.f3 = (
                     idx54 = (word) (samplesPerPixel←v6080 * fSize←v6136),
                     SGNCK(idx54)
                     );
                  };
               {
                  word pd55;
                  pd55 = (* (( (ptr) (* (( (ptr) gf←c24960)+54)/* var←c24032 */  ))+19) );
                  (* (( (ptr) data←v4476)+15) ) = (word) ( *( (fPt) ((*  (ptr) pd55 ))))(var←c24000, var←c23936, IOP2( * ,  (int)8,  (int)(* (
                           ( (ptr) data←v4476)+12) )), pd55);
                  };
               };
            };
SOURCE(7569, 228)
         {
            word var←c24096;
            {
               word var←c24064;
               word h←v21236;
               h←v21236 = (* (( (hPt) (* (( (ptr) data←v4476)+5) ))+2) );
SOURCE(1429, 31)
               var←c24064 = h←v21236;
               var←c24096 = var←c24064;
               };
            switch (var←c24096) {
               case 0: case 8: 
SOURCE(7621, 34)
                  scanMode←v6220 = 6;
                  break;
               case 3: 
SOURCE(7662, 36)
                  scanMode←v6220 = 13;
                  break;
               default: 
SOURCE(7711, 86)
                  {
                     W3 var←c0114;
                     var←c0114.f0 = 103;
                     var←c0114.f1 = (* (( (ptr) gf←c24960)+31) );
                     var←c0114.f2 = 0;
                     (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c24960)+50)/* var←c22432 */  ))+4) ), (word) &var←c0114);
                     };
                  break;
               };
            };
SOURCE(7799, 225)
         {
            word var←c24192;
            {
               word pd56;
               pd56 = (* (( (ptr) (* (( (ptr) gf←c24960)+55)/* var←c24224 */  ))+11) );
               var←c24192 = (word) ( *( (fPt) ((*  (ptr) pd56 ))))(scanMode←v6220, SGNCK(sSize←v6108), SGNCK(fSize←v6136), pd56);
               };
            {
               word pd57;
               pd57 = (* (( (ptr) (* (( (ptr) gf←c24960)+49)/* var←c22400 */  ))+5) );
               return((word) ( *( (fPt) ((*  (ptr) pd57 ))))((* (( (ptr) gf←c24960)+5)/* classAIS←v3448 */  ), data←v4476, 1, samplesPerPixel←v6080, SGNCK(
                     sSize←v6108), SGNCK(fSize←v6136)
                  , var←c24192, pd57));
               };
            };
         };
      }
   else {
SOURCE(8035, 44)
      (void) ProduceError←P180((* ((( (ptr) gf←c24960)+32)) ));
SOURCE(8081, 12)
      return(0);
      };
   }

static word p←P1044(formal←c24992)
   word formal←c24992;
   {
   word var←c6052;
   formal←c24992 = (formal←c24992 - 16);
   /* p: */ 
SOURCE(6392, 17)
SOURCE(6419, 27)
   {
      word var←c0177;
      {
         word var←c0176;
         {
            word idx58;
            (* (( (ptr) formal←c24992)+70) ) = ((* (( (ptr) formal←c24992)+70) ) + 1);
            var←c0176 = (var←c0176 & 4294967040) | ((word) (* ((( (bPt) formal←c24992)+24)+(
                     idx58 = (* (( (ptr) formal←c24992)+70) ),
                     BCK(idx58, 256)
                     )) ));
            };
         var←c0177 = (var←c0176 & 0377);
         };
      return(var←c0177);
      };
   }

static word MaxSampleValueAIS←P480(pa←v14768, i←v14796)
   word pa←v14768;
   word i←v14796;
   {
   register ptr gf←c25024 =  (ptr) &globalframe;
   word var←c14840;
   word data←v6264;
   /* MaxSampleValueAIS: */ 
SOURCE(8263, 154)
SOURCE(8329, 28)
   data←v6264 = XR←Narrow((* (( (ptr) pa←v14768)+6) ), (* (( (ptr) gf←c25024)+13) ));
SOURCE(8359, 58)
   {
      word var←c0178;
      {
         word var←c24288;
         {
            word var←c24320;
            word h←v21188;
            h←v21188 = (*  (hPt) (* (( (ptr) data←v6264)+6) ) );
SOURCE(1429, 31)
            var←c24320 = h←v21188;
            var←c24288 = var←c24320;
            };
         var←c0178 = ((word) Basics←BITSHIFT(1, var←c24288) - 1);
         };
      return(var←c0178);
      };
   }

static void GetSamplesAIS←P540(pa←v14900, formal←c0186, formal←c0187, formal←c0188, formal←c0189, formal←c0190, formal←c0191)
   word pa←v14900;
   word formal←c0186;
   word formal←c0187;
   word formal←c0188;
   word formal←c0189;
   word formal←c0190;
   word formal←c0191;
   {
   W12 var←c25056;
   /* declaration of i←v14928 skipped */ 
   /* declaration of s←v14956 skipped */ 
   /* declaration of f←v14984 skipped */ 
   /* declaration of buffer←v15012 skipped */ 
   /* declaration of start←v15040 skipped */ 
   /* declaration of count←v15068 skipped */ 
   register ptr gf←c25088 =  (ptr) &globalframe;
   /* declaration of var←c24352 skipped */ 
   word data←v6308;
   (* (( (ptr) &var←c25056)+4)/* i←v14928 */  ) = formal←c0186;
   (* (( (ptr) &var←c25056)+5)/* s←v14956 */  ) = formal←c0187;
   (* (( (ptr) &var←c25056)+6)/* f←v14984 */  ) = formal←c0188;
   (* (( (ptr) &var←c25056)+7)/* buffer←v15012 */  ) = formal←c0189;
   (* (( (ptr) &var←c25056)+8)/* start←v15040 */  ) = formal←c0190;
   (* (( (ptr) &var←c25056)+9)/* count←v15068 */  ) = formal←c0191;
   /* GetSamplesAIS: */ 
SOURCE(8423, 1131)
   {
      word tmpAddr59;
      tmpAddr59 = (word) (( (ptr) &var←c25056)+10)/* var←c24352 */ ;
      (*  (ptr) tmpAddr59 ) = ( ((word)  (fPt) entryGetSamplesAIS←P1152) );
      (* (( (ptr) tmpAddr59) + 1) ) = 1;
      };
SOURCE(8481, 28)
   data←v6308 = XR←Narrow((* (( (ptr) pa←v14900)+6) ), (* (( (ptr) gf←c25088)+13) ));
SOURCE(9530, 24)
   (void) entryGetSamplesAIS←P1152(data←v6308, (word) (( (bPt) &var←c25056)+40)/* var←c24352 */ );
   }

static void entryGetSamplesAIS←P1152(formal←c0192, formal←c25152)
   word formal←c0192;
   word formal←c25152;
   {
   W5 var←c25120;
   /* declaration of data←v6412 skipped */ 
   formal←c25152 = (formal←c25152 - 40);
   var←c25120.f4/* data←v6412 */  = formal←c0192;
   var←c25120.f0 = formal←c25152;
   /* entryGetSamplesAIS: */ 
SOURCE(8511, 1014)
   (void) (XR←MonitorEntry(var←c25120.f4/* data←v6412 */ ));
SOURCE(8559, 966)
   {
      word var←c0179;
      var←c0179 = (word) &var←c25120;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2712) ), ( ((word)  (fPt) NoName←Q2772) ), var←c0179);
      };
SOURCE(8511, 1014)
   (void) (XR←MonitorExit(var←c25120.f4/* data←v6412 */ ));
   return;
   }

static word NoName←Q2712(formal←c0173)
   word formal←c0173;
   {
   register ptr gf←c0172 =  (ptr) &globalframe;
SOURCE(8582, 16)
   {
      word s0←v6440;
      word f0←v6468;
      word samplesPerPixel←v6496;
      word bufferMap←v6524;
      W2 bufferSize←v6552;
SOURCE(8582, 16)
      {
         word idx60;
         s0←v6440 = (
            idx60 = (* (( (ptr) (*  (ptr) formal←c0173 ))+5) ),
            SGNCK(idx60)
            );
         };
SOURCE(8600, 16)
      {
         word idx61;
         f0←v6468 = (
            idx61 = (* (( (ptr) (*  (ptr) formal←c0173 ))+6) ),
            SGNCK(idx61)
            );
         };
SOURCE(8618, 61)
      {
         word h←v21140;
         h←v21140 = (* (( (hPt) (* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+5) ))+3) );
SOURCE(1429, 31)
         samplesPerPixel←v6496 = h←v21140;
         };
SOURCE(8681, 56)
      bufferMap←v6524 = (* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+15) );
SOURCE(8739, 52)
      {
         word map←v21860;
         map←v21860 = bufferMap←v6524;
         {
            W4 b←v12368;
            b←v12368 = (*  (W4Pt) map←v21860 );
            bufferSize←v6552.f0 = (b←v12368.f2 - b←v12368.f0);
            bufferSize←v6552.f1 = (b←v12368.f3 - b←v12368.f1);
            };
         };
SOURCE(8793, 551)
      if ((s0←v6440 < (* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+13) )) || (s0←v6440 >= (* (( (ptr) (* (( (ptr) formal←c0173)+4)
          ))+14) ))) {
SOURCE(8834, 513)
         {
            word linesPerBlock←v6596;
            word block←v6624;
            word byteIndex←v6652;
            word byteCount←v6680 = 0;
SOURCE(8836, 33)
            {
               word idx62;
               linesPerBlock←v6596 = (
                  idx62 = (word) bufferSize←v6552.f0,
                  SGNCK(idx62)
                  );
               };
SOURCE(8871, 29)
            {
               word idx63;
               block←v6624 = (
                  idx63 = (word) (s0←v6440 / linesPerBlock←v6596),
                  SGNCK(idx63)
                  );
               };
SOURCE(8932, 65)
            byteIndex←v6652 = ((* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+10) ) + IOP2( * ,  (int)block←v6624,  (int)(* (( (ptr) (* (
                     ( (ptr) formal←c0173)+4) ))+11) )));
SOURCE(9019, 31)
            (* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+13) ) = (block←v6624 * linesPerBlock←v6596);
SOURCE(9080, 69)
            {
               word var←c24480;
               word h←v21092;
               h←v21092 = (*  (hPt) (* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+5) ) );
SOURCE(1429, 31)
               var←c24480 = h←v21092;
               {
                  word x64;
                  (* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+14) ) = (x64 = ((* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+13) ) + linesPerBlock←v6596),
                     MIN( (unsigned) , x64, var←c24480));
                  };
               };
SOURCE(9151, 51)
            byteCount←v6680 = IOP2( * ,  (int)((* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+14) ) - (* (( (ptr) (* (( (ptr) formal←c0173)+4)
                   ))+13) )),  (int)(* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+12) ));
SOURCE(9204, 35)
            {
               word pd65;
               pd65 = (* (( (ptr) (* (( (ptr) gf←c0172)+51)/* var←c22528 */  ))+30) );
               (void) ( *( (fPt) ((*  (ptr) pd65 ))))((* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+4) ), byteIndex←v6652, pd65);
               };
SOURCE(9249, 95)
SOURCE(9251, 93)
            (void) ReadBytes←P360((* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+4) ), (* (( (ptr) bufferMap←v6524)+8) ), byteCount←v6680)
            ;
            };
         };
SOURCE(9350, 175)
      {
         W2 var←c24512;
         W2 var←c24544;
         var←c24512.f0 = (s0←v6440 - (* (( (ptr) (* (( (ptr) formal←c0173)+4) ))+13) ));
         {
            word idx66;
            var←c24512.f1 = (
               idx66 = (word) ((f0←v6468 * samplesPerPixel←v6496) + (* (( (ptr) (*  (ptr) formal←c0173 ))+4) )),
               SGNCK(idx66)
               );
            };
         var←c24544.f0 = 0;
         var←c24544.f1 = SGNCK(samplesPerPixel←v6496);
         {
            word pd67;
            pd67 = (* (( (ptr) (* (( (ptr) gf←c0172)+54)/* var←c24032 */  ))+44) );
            (void) ( *( (fPt) ((*  (ptr) pd67 ))))(bufferMap←v6524, var←c24512, var←c24544, (* (( (ptr) (*  (ptr) formal←c0173 ))+7) ), (* (
                  ( (ptr) (*  (ptr) formal←c0173 ))+8) ), (* (( (ptr) (*  (ptr) formal←c0173 ))+9) ), pd67);
            };
         };
      };
   return(0);
   }

static word Join3AIS←P600(name1←v4276, name2←v4304, name3←v4332)
   word name1←v4276;
   word name2←v4304;
   word name3←v4332;
   {
   register ptr gf←c25184 =  (ptr) &globalframe;
   word var←c4376;
   /* Join3AIS: */ 
SOURCE(9561, 153)
SOURCE(9636, 78)
   {
      word var←c24608;
      word var←c24640;
      word var←c24672;
      var←c24608 = (word) FromAIS←P420(name1←v4276);
      var←c24640 = (word) FromAIS←P420(name2←v4304);
      var←c24672 = (word) FromAIS←P420(name3←v4332);
      {
         word pd68;
         pd68 = (* (( (ptr) (* (( (ptr) gf←c25184)+56)/* var←c24704 */  ))+15) );
         return((word) ( *( (fPt) ((*  (ptr) pd68 ))))(var←c24608, var←c24640, var←c24672, pd68));
         };
      };
   }

static void NoName←Q2772(formal←c0161, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0161;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   if ((formal←c200001 == XR←Unwind)) {
      (void) (XR←MonitorExit(* (( (ptr) formal←c200000)+4) ));
      };
   (*  (ptr) formal←c0161 ) = 0;
   (* (( (ptr) formal←c0161)+1) ) = 0;
   return;
   }

/* file: ImagerPixelArrayAISImpl, module: ImagerPixelArrayAISImpl, compiled at: March 10, 1992 11:56:49 am PST */ 
extern void XR←install←ImagerPixelArrayAISImpl() {
   NoName←Q2652();
   }
extern void XR←run←ImagerPixelArrayAISImpl() { XR←Start(&globalframe); }