/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 6, 1993 9:43:30 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerHighlightContextImpl, module: ImagerHighlightContextImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y))
#define XRM←BITOR(x, y) (((word)(x)) | ((word)(y)))
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITNOT(x) (~((word)(x)))
static char versionStamp[] = "@(#)mob←version [3053736526,1954619951] ImagerHighlightContextImpl";
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;} W3;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef W3 *W3Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
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; W16 r;} W32;
typedef struct {W32 f; W32 r;} W64;
typedef struct {W64 f; W64 r;} W128;
typedef struct {W128 f; W128 r;} W256;
typedef struct {W256 f; W256 r;} W512;
typedef struct {W512 f; W512 r;} W1024;
typedef struct {W1024 f; W1024 r;} W2048;
typedef W2048 *W2048Pt;
typedef W32 *W32Pt;
typedef struct {W16 f; W3 r;} W19;
typedef struct {W64 f; W19 r;} W83;
typedef struct {W16 f; W4 r;} W20;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W16 f; W5 r;} W21;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc49 = 1.0;
static float fc50 = 0.0;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc57 = 5.656;
static float fc58 = 45.0;
static float fc59 = 0.48;
static float fc60 = 0.05;
static float fc68 = 2.0;
static float fc87 = 255.0;
static float fc89 = 0.5;
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define NCK(p) ( (void) p)
static float fc218 = 0.253;
static float fc221 = 0.684;
static float fc224 = 0.063;
static float fc232 = 4.0;
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
static float fc253 = 3.0;
#define FMIN(x, y, tx, ty)  ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
static void NoName←Q6240();
static void ImagerHighlightContextImpl←P0();
static word Create←P60();
static void SetSampleMap←P120();
static word GetSampleMap←P180();
static void SetColorLookupTable←P240();
static void SetDataHighlight←P300();
static void SetDataBrick←P360();
static word NewColorOperatorHighlight←P420();
static word mapper←P1728();
static word HiliteGetBufferColorOperator←P480();
static word PixelMapWords←P540();
static void HiliteSetHalftoneProperties←P600();
static void HiliteSetColor←P660();
static void Gen←P2076();
static word Compare←P2328();
static word GetColorTransform←P720();
static void HighlightTransform←P780();
static void CMYKTransform←P840();
static void IntensityTransform←P900();
static word Store←P1020();
static void PictorialTransform←P1080();
static void TableRGBTransform←P1140();
static word ComputeSource←P1200();
static void HiliteHalftone←P1260();
static word GetHBuffer←P2820();
static void Action←P2880();
static void HiliteMaskBoxes←P1320();
static void Src←P3192();
static void BoxAction←P3300();
static void BlackAction←P3456();
static void HiliteMaskBitmap←P1380();
static void FastTransfer←P3996();
static void HiliteMaskRawBitmaps←P1440();
static word MakeExpandArray2←P1500();
static void StoreWithColorMask2←P1560();
static word CreateClass←P1620();
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[16];} string3 = {851984, "\254\205\210\241\000\100\377\210\241\000\200\377\377\000\000"};
static struct {unsigned f; char r[44];} string4 = {2818092, "\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\207\164\301\163\300\327\135\041\305\104\334\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\012\000"};
static struct {unsigned f; char r[16];} string7 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\266\004\122\116\300\164\201\042\057\100\230\000\000"};
static struct {unsigned f; char r[4];} string9 = {131074, "\004\037\000"};
static struct {unsigned f; char r[44];} string10 = {2752556, "\260\006\005\146\151\162\163\164\257\300\207\164\301\163\300\327\135\041\305\104\130\005\004\162\145\163\164\214\257\300\207\164\301\163\300\327\135\041\305\104\130\261\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\241\011\366\176\300\127\130\105\301\100\274\000\000"};
static struct {unsigned f; char r[4];} string13 = {131074, "\003\016\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\266\004\122\116\300\164\201\042\057\100\214\000\000"};
static struct {unsigned f; char r[28];} string15 = {1769499, "\006\012\000\001\004\001\010\001\034\001\040\001\044\003\001\100\100\001\100\104\001\100\114\001\100\120\001"};
static struct {unsigned f; char r[64];} string16 = {3997760, "sampleMap must have 2 bits per sample for a Highlight context\000\000"};
static struct {unsigned f; char r[44];} string17 = {2818092, "Ignore setscreen on highlight color device."};
static struct {unsigned f; char r[48];} string18 = {2949168, "Unknown special color has no substitute value\000\000"};
static struct {unsigned f; char r[28];} string19 = {1572892, "ignorehighlightsetscreen\000\000\000"};
static struct {unsigned f; char r[12];} string20 = {524300, "HIGHLITE\000\000\000"};
static struct {unsigned f; char r[12];} string21 = {589836, "Highlight\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\266\004\122\116\300\164\201\042\057\100\164\000\000"};
static struct {unsigned f; char r[20];} string23 = {1179666, "\006\007\020\001\034\001\040\001\044\001\050\001\054\001\100\160\004\077\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\161\264\233\303\300\026\075\022\161\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\361\072\110\004\300\054\212\055\367\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300ZT?\010\300\370;=;@h\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\207\164\301\163\300\327\135\041\305\100\150\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\241\011\366\176\300\127\130\105\301\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\122\363\317\016\300\023\203\024\034\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\260\302\146\322\300\075\027\134\123\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\067\246\211\216\300\354\224\134\067\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\176\213\032\371\300\351\075\041\137\100\150\000\000"};
static struct {unsigned f; char r[16];} string39 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[12];} string41 = {720908, "\257\300/\002\345\247\245\243T@h"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\143\050\357\204\300\236\327\233\116\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\237\156\146\367\300\026\157\147\122\100\150\000\000"};
static struct {
   word f0[34]; 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[37]; 
   } globalframe = {
   {0}, (word) CreateClass←P1620, 0, (word) StoreWithColorMask2←P1560, 
   0, (word) MakeExpandArray2←P1500, 0, (word) HiliteMaskRawBitmaps←P1440, 
   0, (word) HiliteMaskBitmap←P1380, 0, (word) HiliteMaskBoxes←P1320, 
   0, (word) HiliteHalftone←P1260, 0, (word) ComputeSource←P1200, 
   0, (word) TableRGBTransform←P1140, 0, (word) PictorialTransform←P1080, 
   0, (word) Store←P1020, 0, (word) IntensityTransform←P900, 
   0, (word) CMYKTransform←P840, 0, (word) HighlightTransform←P780, 
   0, (word) GetColorTransform←P720, 0, (word) HiliteSetColor←P660, 
   0, (word) HiliteSetHalftoneProperties←P600, 0, (word) PixelMapWords←P540, 
   0, (word) HiliteGetBufferColorOperator←P480, 0, (word) NewColorOperatorHighlight←P420, 
   0, (word) SetDataBrick←P360, 0, (word) SetDataHighlight←P300, 
   0, (word) SetColorLookupTable←P240, 0, (word) GetSampleMap←P180, 
   0, (word) SetSampleMap←P120, 0, (word) Create←P60, 
   0, (word) ImagerHighlightContextImpl←P0, {0}
   };

static void NoName←Q6240()
   {
   register ptr gf←c0515 =  (ptr) &globalframe;
   word var←c57656;
   (* (( (ptr) gf←c0515)+12) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0515)+13) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0515)+16) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string2);
   (* (( (ptr) gf←c0515)+18) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0515)+20) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string2);
   (* (( (ptr) gf←c0515)+21) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (* (( (ptr) gf←c0515)+22) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0515)+23) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
   (* (( (ptr) gf←c0515)+26) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
   (*  (ptr) (( (bPt) gf←c0515)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0515)+20) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0515)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0515)+20) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0515)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0515)+20) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0515)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0515)+12) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0515)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0515)+16) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0515)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0515)+12) ), (word) &string21);
   (void) XR←DeclareGlobalFrame((word) "ImagerHighlightContextImpl", &globalframe, (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23)
      , (word) (( (bPt) gf←c0515)+344)/* var←c52344 */ );
   var←c57656 = (word) XR←ImportInterface((word) "FunctionCache", (word) XR←GetTypeIndexS((word) (&string24)), 14);
   (* (( (ptr) gf←c0515)+119)/* var←c54136 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 1311237);
   (void) XR←ImportProcS(var←c57656, 135005443);
   (void) XR←ImportProcS(var←c57656, 67112192);
   var←c57656 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string25)), 84);
   (* (( (ptr) gf←c0515)+114)/* var←c53368 */  ) = var←c57656;
   var←c57656 = (word) XR←ImportInterface((word) "ImagerBrick", (word) XR←GetTypeIndexS((word) (&string26)), 4);
   (* (( (ptr) gf←c0515)+112)/* var←c53112 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 203424264);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerColor", (word) XR←GetTypeIndexS((word) (&string27)), 32);
   (* (( (ptr) gf←c0515)+106)/* var←c52632 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 67635970);
   (void) XR←ImportProcS(var←c57656, 67372033);
   (void) XR←ImportProcS(var←c57656, 201593601);
   (void) XR←ImportProcS(var←c57656, 67378945);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerColorPrivate", (word) XR←GetTypeIndexS((word) (&string28)), 48);
   (* (( (ptr) gf←c0515)+107)/* var←c52664 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 67905795);
   (void) XR←ImportProcS(var←c57656, 67641090);
   (void) XR←ImportProcS(var←c57656, 67642882);
   (void) XR←ImportProcS(var←c57656, 67643138);
   (void) XR←ImportProcS(var←c57656, 67641602);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerDevice", (word) XR←GetTypeIndexS((word) (&string29)), 2);
   (* (( (ptr) gf←c0515)+110)/* var←c53016 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 69730569);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerDeviceProcs", (word) XR←GetTypeIndexS((word) (&string30)), 5);
   (* (( (ptr) gf←c0515)+122)/* var←c56536 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 2359557);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string31)), 3);
   (* (( (ptr) gf←c0515)+113)/* var←c53144 */  ) = var←c57656;
   var←c57656 = (word) XR←ImportInterface((word) "ImagerMaskCache", (word) XR←GetTypeIndexS((word) (&string32)), 21);
   (* (( (ptr) gf←c0515)+109)/* var←c52984 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 67375105);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerPixel", (word) XR←GetTypeIndexS((word) (&string33)), 9);
   (* (( (ptr) gf←c0515)+117)/* var←c53944 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 2361350);
   (void) XR←ImportProcS(var←c57656, 68420869);
   (void) XR←ImportProcS(var←c57656, 262657);
   (void) XR←ImportProcS(var←c57656, 67633410);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerPixelArray", (word) XR←GetTypeIndexS((word) (&string34)), 13);
   (* (( (ptr) gf←c0515)+120)/* var←c54360 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 67633922);
   (void) XR←ImportProcS(var←c57656, 2623240);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerRaster", (word) XR←GetTypeIndexS((word) (&string35)), 13);
   (* (( (ptr) gf←c0515)+111)/* var←c53048 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 67371009);
   (void) XR←ImportProcS(var←c57656, 67371521);
   (void) XR←ImportProcS(var←c57656, 1312514);
   (void) XR←ImportProcS(var←c57656, 68419845);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string36)), 60);
   (* (( (ptr) gf←c0515)+115)/* var←c53624 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 2370311);
   (void) XR←ImportProcS(var←c57656, 1324037);
   (void) XR←ImportProcS(var←c57656, 1062404);
   (void) XR←ImportProcS(var←c57656, 2370822);
   (void) XR←ImportProcS(var←c57656, 1321220);
   (void) XR←ImportProcS(var←c57656, 67896579);
   (void) XR←ImportProcS(var←c57656, 788739);
   (void) XR←ImportProcS(var←c57656, 268801);
   (void) XR←ImportProcS(var←c57656, 262913);
   (void) XR←ImportProcS(var←c57656, 70259976);
   (void) XR←ImportProcS(var←c57656, 67371521);
   (void) XR←ImportProcS(var←c57656, 68686339);
   (void) XR←ImportProcS(var←c57656, 68685571);
   (void) XR←ImportProcS(var←c57656, 1050372);
   (void) XR←ImportProcS(var←c57656, 267009);
   (void) XR←ImportProcS(var←c57656, 68161027);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string37)), 55);
   (* (( (ptr) gf←c0515)+108)/* var←c52888 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 270806278);
   (void) XR←ImportProcS(var←c57656, 68160004);
   (void) XR←ImportProcS(var←c57656, 67371777);
   var←c57656 = (word) XR←ImportInterface((word) "MaskWithColor", (word) XR←GetTypeIndexS((word) (&string38)), 7);
   (* (( (ptr) gf←c0515)+116)/* var←c53880 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 2621706);
   (void) XR←ImportProcS(var←c57656, 67633154);
   var←c57656 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string39)), 11);
   (* (( (ptr) gf←c0515)+118)/* var←c54008 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 67371521);
   var←c57656 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string40)), 19);
   (* (( (ptr) gf←c0515)+121)/* var←c54968 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 270012418);
   (void) XR←ImportProcS(var←c57656, 135270145);
   (void) XR←ImportProcS(var←c57656, 69210370);
   (void) XR←ImportProcS(var←c57656, 68160769);
   var←c57656 = (word) XR←ImportInterface((word) "ImagerSwitches", (word) XR←GetTypeIndexS((word) (&string41)), 8);
   (* (( (ptr) gf←c0515)+105)/* var←c52568 */  ) = var←c57656;
   (void) XR←ImportProcS(var←c57656, 68157444);
   var←c57656 = (word) XR←ExportInterface((word) "ImagerHighlightContext", (word) XR←GetTypeIndexS((word) (&string42)), 4);
   (* (( (ptr) gf←c0515)+123)/* var←c57688 */  ) = var←c57656;
   (void) XR←ExportVar(var←c57656, 0, (word) (( (bPt) gf←c0515)+16)/* classCode←v3784 */ );
   (void) XR←ExportProcS(var←c57656, (word) (( (bPt) gf←c0515)+336)/* var←c52312 */ , 69206278, (word) "Create");
   (void) XR←ExportProcS(var←c57656, (word) (( (bPt) gf←c0515)+328)/* var←c52280 */ , 524802, (word) "SetSampleMap");
   (void) XR←ExportProcS(var←c57656, (word) (( (bPt) gf←c0515)+320)/* var←c52248 */ , 67371777, (word) "GetSampleMap");
   var←c57656 = (word) XR←ExportInterface((word) "ImagerHighlightContextBackdoor", (word) XR←GetTypeIndexS((word) (&string43))
      , 1);
   (* (( (ptr) gf←c0515)+123)/* var←c57688 */  ) = var←c57656;
   (void) XR←ExportProcS(var←c57656, (word) (( (bPt) gf←c0515)+312)/* var←c52216 */ , 524290, (word) "SetColorLookupTable");
   }

static void ImagerHighlightContextImpl←P0(formal←c068, formal←c061)
   word formal←c068;
   word formal←c061;
   {
   register ptr gf←c57720 =  (ptr) &globalframe;
   /* ImagerHighlightContextImpl: */ 
SOURCE(377, 30248)
   (* (( (hPt) gf←c57720)+185) ) = 257;
   (* (( (ptr) gf←c57720)+93) ) = 33686018;
   (* (( (ptr) gf←c57720)+94) ) = 50529027;
   (* (( (ptr) gf←c57720)+95) ) = 50529027;
   (* (( (ptr) gf←c57720)+96) ) = 67372036;
   (* (( (ptr) gf←c57720)+97) ) = 67372036;
   (* (( (ptr) gf←c57720)+98) ) = 67372036;
   (* (( (ptr) gf←c57720)+99) ) = 67372036;
   (* (( (bPt) gf←c57720)+400) ) = 5;
   (* (( (ptr) gf←c57720)+101) ) = 2147483648;
   (* (( (ptr) gf←c57720)+102) ) = 2147483648;
   (* (( (ptr) gf←c57720)+103) ) = 2147483647;
   (* (( (ptr) gf←c57720)+104) ) = 2147483647;
SOURCE(911, 35)
   (* (( (ptr) gf←c57720)+4)/* classCode←v3784 */  ) = (* (( (ptr) gf←c57720)+33) );
SOURCE(6181, 145)
   {
      word pd44;
      word idx45;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c57720)+105)/* var←c52568 */  ))+4) );
      (* (( (ptr) gf←c57720)+5)/* ignoreHighlightSetScreen←v4680 */  ) = (
         idx45 = (word) ((word) ( *( (fPt) ((*  (ptr) pd44 ))))(7, (* (( (ptr) gf←c57720)+31) ), (* (( (ptr) gf←c57720)+29) ), 0, pd44)
          - 7),
         BCK(idx45, 1)
         );
      };
SOURCE(11179, 124)
   {
      word var←c52600;
      {
         word pd46;
         pd46 = (* (( (ptr) (* (( (ptr) gf←c57720)+106)/* var←c52632 */  ))+35) );
         var←c52600 = (word) ( *( (fPt) ((*  (ptr) pd46 ))))(255, pd46);
         };
      {
         word pd47;
         pd47 = (* (( (ptr) (* (( (ptr) gf←c57720)+107)/* var←c52664 */  ))+37) );
         (* (( (ptr) gf←c57720)+6)/* colorSpaceCMYK←v4764 */  ) = (word) ( *( (fPt) ((*  (ptr) pd47 ))))(var←c52600, 5, pd47);
         };
      };
SOURCE(11305, 20)
   {
      word var←c52696;
      word var←c52728;
      var←c52696 = XR←NewObject(8, (* (( (ptr) gf←c57720)+22) ));
      var←c52728 = var←c52696;
      (*  (ptr) var←c52728 ) = 4;
      (* (( (ptr) var←c52728)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c57720)+22) ));
      var←c52728 = (* (( (ptr) var←c52728)+1) );
      (*  (ptr) var←c52728 ) = 3;
      (* (( (ptr) var←c52728)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c57720)+22) ));
      var←c52728 = (* (( (ptr) var←c52728)+1) );
      (*  (ptr) var←c52728 ) = 1;
      (* (( (ptr) var←c52728)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c57720)+22) ));
      var←c52728 = (* (( (ptr) var←c52728)+1) );
      (* (( (ptr) gf←c57720)+7)/* allowedColorSpaces←v4792 */  ) = var←c52696;
      };
SOURCE(11399, 21)
   {
      word var←c52760;
      word var←c52792;
      var←c52760 = XR←NewObject(8, (* (( (ptr) gf←c57720)+22) ));
      var←c52792 = var←c52760;
      (*  (ptr) var←c52792 ) = 4;
      (* (( (ptr) var←c52792)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c57720)+22) ));
      var←c52792 = (* (( (ptr) var←c52792)+1) );
      (*  (ptr) var←c52792 ) = (* (( (ptr) gf←c57720)+6)/* colorSpaceCMYK←v4764 */  );
      (* (( (ptr) var←c52792)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c57720)+22) ));
      var←c52792 = (* (( (ptr) var←c52792)+1) );
      (*  (ptr) var←c52792 ) = 1;
      (* (( (ptr) var←c52792)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c57720)+22) ));
      var←c52792 = (* (( (ptr) var←c52792)+1) );
      (* (( (ptr) gf←c57720)+8)/* allowedColorSpaces2←v4820 */  ) = var←c52760;
      };
SOURCE(25785, 51)
   (* (( (ptr) gf←c57720)+9)/* expandArray2←v5268 */  ) = (word) MakeExpandArray2←P1500();
SOURCE(30139, 324)
   {
      word var←c52824;
      var←c52824 = XR←NewObject(60, (* (( (ptr) gf←c57720)+23) ));
      (*  (ptr) var←c52824 ) = (word) (( (bPt) gf←c57720)+256)/* var←c51992 */ ;
      (* (( (ptr) var←c52824)+2) ) = (word) (( (bPt) gf←c57720)+264)/* var←c52024 */ ;
      (* (( (ptr) var←c52824)+3) ) = (word) (( (bPt) gf←c57720)+176)/* var←c51672 */ ;
      (* (( (ptr) var←c52824)+4) ) = XR←CheckProc(0);
      (* (( (ptr) var←c52824)+5) ) = (word) (( (bPt) gf←c57720)+168)/* var←c51640 */ ;
      (* (( (ptr) var←c52824)+6) ) = XR←CheckProc(0);
      (* (( (ptr) var←c52824)+7) ) = (word) (( (bPt) gf←c57720)+160)/* var←c51608 */ ;
      (* (( (ptr) var←c52824)+8) ) = XR←CheckProc(0);
      (* (( (ptr) var←c52824)+9) ) = XR←CheckProc(0);
      (* (( (ptr) var←c52824)+10) ) = XR←CheckProc(0);
      (* (( (ptr) var←c52824)+11) ) = XR←CheckProc(0);
      (* (( (ptr) var←c52824)+12) ) = (word) (( (bPt) gf←c57720)+280)/* var←c52088 */ ;
      (* (( (ptr) var←c52824)+13) ) = XR←CheckProc(0);
      (* (( (ptr) gf←c57720)+10)/* deviceClass←v5380 */  ) = var←c52824;
      };
SOURCE(30466, 49)
   (* (( (ptr) gf←c57720)+11)/* contextClass←v5408 */  ) = (word) CreateClass←P1620();
   }

static word Create←P60(deviceSpaceSize←v6500, scanMode←v6528, surfaceUnitsPerInch←v6556, pixelUnits←v6584, fontCacheName←v6612, highlight←v6640)
   W2 deviceSpaceSize←v6500;
   word scanMode←v6528;
   W2 surfaceUnitsPerInch←v6556;
   word pixelUnits←v6584;
   word fontCacheName←v6612;
   word highlight←v6640;
   {
   register ptr gf←c57752 =  (ptr) &globalframe;
   word var←c6684;
   word data←v10392;
   word deviceParm←v10420;
   word context←v10448;
   /* Create: */ 
SOURCE(3127, 970)
SOURCE(3347, 73)
   {
      word var←c52856;
      word var←c52920;
      {
         word pd48;
         pd48 = (* (( (ptr) (* (( (ptr) gf←c57752)+108)/* var←c52888 */  ))+7) );
         var←c52856 = (word) ( *( (fPt) ((*  (ptr) pd48 ))))((*  (ptr) (&fc49) ), pd48);
         };
      var←c52920 = XR←NewObject(84, (* (( (ptr) gf←c57752)+26) ));
      (* (( (ptr) var←c52920)+3) ) = (*  (ptr) &fc50 );
      (* (( (ptr) var←c52920)+4) ) = (*  (ptr) &fc50 );
      (* (( (ptr) var←c52920)+5) ) = (*  (ptr) &fc50 );
      (* (( (ptr) var←c52920)+6) ) = (*  (ptr) &fc50 );
      (* (( (ptr) var←c52920)+19) ) = var←c52856;
      data←v10392 = var←c52920;
      };
SOURCE(3422, 320)
   {
      word var←c52952;
      {
         word pd51;
         if ((fontCacheName←v6612 == 0)) {
            var←c52952 = 0;
            }
         else {
            pd51 = (* (( (ptr) (* (( (ptr) gf←c57752)+109)/* var←c52984 */  ))+20) );
            var←c52952 = (word) ( *( (fPt) ((*  (ptr) pd51 ))))(fontCacheName←v6612, pd51);
            };
         };
      {
         word pd52;
         word idx53;
         word idx54;
         pd52 = (* (( (ptr) (* (( (ptr) gf←c57752)+110)/* var←c53016 */  ))+5) );
         deviceParm←v10420 = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) gf←c57752)+10)/* deviceClass←v5380 */  ), (
               idx53 = (word) deviceSpaceSize←v6500.f0,
               SGNCK(idx53)
               ), (
               idx54 = (word) deviceSpaceSize←v6500.f1,
               SGNCK(idx54)
               ), scanMode←v6528, surfaceUnitsPerInch←v6556, 1
            , var←c52952, 0, 0, pd52);
         };
      };
SOURCE(3744, 145)
   {
      word pd55;
      pd55 = (* (( (ptr) (* (( (ptr) gf←c57752)+111)/* var←c53048 */  ))+5) );
      context←v10448 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) gf←c57752)+11)/* contextClass←v5408 */  ), (* (( (ptr) gf←c57752)+10)
         /* deviceClass←v5380 */  ), deviceParm←v10420, data←v10392, pixelUnits←v6584, pd55);
      };
SOURCE(3891, 33)
   (void) SetDataHighlight←P300(data←v10392, highlight←v6640);
SOURCE(3926, 97)
   {
      W3 var←c53080;
      {
         word pd56;
         pd56 = (* (( (ptr) (* (( (ptr) gf←c57752)+112)/* var←c53112 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd56 ))))((word) &var←c53080, (*  (ptr) &fc57 ), (*  (ptr) &fc58 ), (*  (ptr) &fc59 ), (*  (ptr) &fc60 ), 16
            , 255, 0, 0, pd56);
         };
      (void) SetDataBrick←P360(data←v10392, var←c53080);
      };
SOURCE(4025, 54)
   {
      word pd61;
      pd61 = (* (( (ptr) (* (( (ptr) gf←c57752)+111)/* var←c53048 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd61 ))))(context←v10448, (*  (W4Pt) (( (ptr) gf←c57752)+88)/* var←c52408 */  ), pd61);
      };
SOURCE(4081, 16)
   return(context←v10448);
   }

static void SetSampleMap←P120(context←v6744, sampleMap←v6772)
   word context←v6744;
   word sampleMap←v6772;
   {
   register ptr gf←c57784 =  (ptr) &globalframe;
   word data←v10492;
   /* SetSampleMap: */ 
SOURCE(4103, 369)
SOURCE(4181, 57)
   {
      word pd62;
      pd62 = (* (( (ptr) (* (( (ptr) gf←c57784)+111)/* var←c53048 */  ))+6) );
      data←v10492 = XR←Narrow((* (( (ptr) ( *( (fPt) ((*  (ptr) pd62 ))))(context←v6744, pd62))+7) ), (* (( (ptr) gf←c57784)+26)
          ));
      };
SOURCE(4240, 132)
   if (((* (( (ptr) sampleMap←v6772)+5) ) != 2)) {
SOURCE(4279, 93)
      {
         W3 var←c088;
         var←c088.f0 = 1;
         var←c088.f1 = (* (( (ptr) gf←c57784)+28) );
         var←c088.f2 = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c57784)+113)/* var←c53144 */  ))+4) ), (word) &var←c088);
         };
      };
SOURCE(4374, 26)
   (*  (ptr) data←v10492 ) = sampleMap←v6772;
SOURCE(4402, 70)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c57784)+111)/* var←c53048 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd63 ))))(context←v6744, (*  (W4Pt) sampleMap←v6772 ), pd63);
      };
   }

static word GetSampleMap←P180(context←v6832)
   word context←v6832;
   {
   register ptr gf←c57816 =  (ptr) &globalframe;
   word var←c6876;
   word data←v10536;
   /* GetSampleMap: */ 
SOURCE(4478, 158)
SOURCE(4554, 57)
   {
      word pd64;
      pd64 = (* (( (ptr) (* (( (ptr) gf←c57816)+111)/* var←c53048 */  ))+6) );
      data←v10536 = XR←Narrow((* (( (ptr) ( *( (fPt) ((*  (ptr) pd64 ))))(context←v6832, pd64))+7) ), (* (( (ptr) gf←c57816)+26)
          ));
      };
SOURCE(4613, 23)
   return((*  (ptr) data←v10536 ));
   }

static void SetColorLookupTable←P240(context←v6936, colorLookupTable←v6964)
   word context←v6936;
   word colorLookupTable←v6964;
   {
   register ptr gf←c57848 =  (ptr) &globalframe;
   /* SetColorLookupTable: */ 
SOURCE(4642, 242)
SOURCE(4746, 138)
   {
      word var←c53208;
      {
         word pd65;
         pd65 = (* (( (ptr) (* (( (ptr) gf←c57848)+111)/* var←c53048 */  ))+6) );
         var←c53208 = (* (( (ptr) ( *( (fPt) ((*  (ptr) pd65 ))))(context←v6936, pd65))+7) );
         };
      if ((var←c53208 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) gf←c57848)+26) ) == XR←GetReferentType(var←c53208))) {
         {
            word data←v10580;
            data←v10580 = var←c53208;
SOURCE(4816, 40)
            (* (( (ptr) data←v10580)+2) ) = colorLookupTable←v6964;
SOURCE(4858, 26)
            (* (( (ptr) data←v10580)+8) ) = 0;
            };
         }
      else {
         lab←L100000: ;
         };
      };
   }

static void SetDataHighlight←P300(data←v7024, highlight←v7052)
   word data←v7024;
   word highlight←v7052;
   {
   register ptr gf←c57880 =  (ptr) &globalframe;
   /* SetDataHighlight: */ 
SOURCE(4900, 315)
SOURCE(4973, 26)
   (* (( (ptr) data←v7024)+1) ) = highlight←v7052;
SOURCE(5001, 104)
   {
      W3 var←c53272;
      {
         word var←c53240;
         {
            word pd66;
            pd66 = (* (( (ptr) (* (( (ptr) gf←c57880)+106)/* var←c52632 */  ))+8) );
            var←c53240 = (word) ( *( (fPt) ((*  (ptr) pd66 ))))(highlight←v7052, pd66);
            };
         {
            word pd67;
            pd67 = (* (( (ptr) (* (( (ptr) gf←c57880)+106)/* var←c52632 */  ))+23) );
            (void) ( *( (fPt) ((*  (ptr) pd67 ))))((word) &var←c53272, var←c53240, pd67);
            };
         };
      (* (( (ptr) data←v7024)+5) ) = var←c53272.f2;
      (* (( (ptr) data←v7024)+4) ) = var←c53272.f1;
      (* (( (ptr) data←v7024)+3) ) = var←c53272.f0;
      };
SOURCE(5107, 45)
   {
      word x69;
      word x70;
      float tf71;
      (* (( (ptr) data←v7024)+6) ) = XR←RealPwr((
            tf71 = (
               x69 = XR←RealPwr((* (( (ptr) data←v7024)+4) ), (*  (ptr) &fc68 )),  *(float*)&x69
               ) + (
               x70 = XR←RealPwr((* (( (ptr) data←v7024)+5) ), (*  (ptr) &fc68 )),  *(float*)&x70
               ),  *(word*)&tf71
            ), (*  (ptr) &fc68 ));
      };
SOURCE(5154, 61)
   (* (( (ptr) data←v7024)+7) ) = (word) NewColorOperatorHighlight←P420(highlight←v7052);
   }

static void SetDataBrick←P360(data←v7112, brick←v7140)
   word data←v7112;
   W3 brick←v7140;
   {
   /* SetDataBrick: */ 
SOURCE(5221, 163)
SOURCE(5283, 30)
   if ((brick←v7140.f0 != 255)) {
SOURCE(5313, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(5349, 18)
   (*  (W3Pt) (( (ptr) data←v7112)+9) ) = brick←v7140;
SOURCE(5369, 15)
   (* (( (ptr) data←v7112)+16) ) = 0;
   }

static word NewColorOperatorHighlight←P420(formal←c0581)
   word formal←c0581;
   {
   W7 var←c57912;
   /* declaration of highlight←v7200 skipped */ 
   register ptr gf←c57944 =  (ptr) &globalframe;
   word co←v7244;
   /* declaration of var←c53304 skipped */ 
   var←c57912.f4/* highlight←v7200 */  = formal←c0581;
   /* NewColorOperatorHighlight: */ 
SOURCE(5390, 320)
   {
      word tmpAddr72;
      tmpAddr72 = (word) (( (ptr) &var←c57912)+5)/* var←c53304 */ ;
      (*  (ptr) tmpAddr72 ) = ( ((word)  (fPt) mapper←P1728) );
      (* (( (ptr) tmpAddr72) + 1) ) = 1;
      };
SOURCE(5390, 320)
   co←v7244 = 0;
SOURCE(5663, 47)
   {
      word pd73;
      pd73 = (* (( (ptr) (* (( (ptr) gf←c57944)+106)/* var←c52632 */  ))+15) );
      co←v7244 = (word) ( *( (fPt) ((*  (ptr) pd73 ))))(3, (word) (( (bPt) &var←c57912)+20)/* var←c53304 */ , pd73);
      };
SOURCE(5390, 320)
   return(co←v7244);
   }

static word mapper←P1728(s←v10700, formal←c58008)
   word s←v10700;
   word formal←c58008;
   {
   register ptr gf←c57976 =  (ptr) &globalframe;
   word var←c10744;
   formal←c58008 = (formal←c58008 - 20);
   /* mapper: */ 
SOURCE(5500, 160)
SOURCE(5578, 82)
   {
      word var←c53336;
      var←c53336 = s←v10700;
      if ((var←c53336 == 0)) {
         return((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c57976)+114)/* var←c53368 */  ))+55) ) ));
         }
      else {
         if ((var←c53336 == 1)) {
            return((* (( (ptr) formal←c58008)+4) ));
            }
         else {
            return((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c57976)+114)/* var←c53368 */  ))+54) ) ));
            };
         };
      };
   }

static word HiliteGetBufferColorOperator←P480(device←v7304)
   word device←v7304;
   {
   register ptr gf←c58040 =  (ptr) &globalframe;
   word var←c7348;
   /* HiliteGetBufferColorOperator: */ 
SOURCE(5716, 183)
SOURCE(5796, 103)
   {
      word var←c53400;
      var←c53400 = (* (( (ptr) device←v7304)+7) );
      if ((var←c53400 == 0)) {
         goto lab←L100001;
         };
      if (((* (( (ptr) gf←c58040)+26) ) == XR←GetReferentType(var←c53400))) {
         {
            word data←v10772;
            data←v10772 = var←c53400;
SOURCE(5841, 32)
            return((* (( (ptr) data←v10772)+7) ));
            };
         }
      else {
         lab←L100001: ;
SOURCE(5887, 12)
         return(0);
         };
      };
   }

static word PixelMapWords←P540(pm←v7420)
   word pm←v7420;
   {
   register ptr gf←c58072 =  (ptr) &globalframe;
   word words←v7464;
   /* PixelMapWords: */ 
SOURCE(5933, 233)
SOURCE(5933, 233)
   words←v7464 = 0;
SOURCE(5997, 169)
   {
      register word i←v10816 = 0;
      register word noName←c53432;
      noName←c53432 = (* (( (ptr) pm←v7420)+5) );
      if ((i←v10816 >= noName←c53432)) {
         goto lab←L100002;
         };
      lab←L100005: ;
SOURCE(6038, 128)
      {
         W2 var←c53464;
         word var←c53560;
         word var←c0555;
         {
            W2 var←c53496;
            word map←v50888;
            {
               word limit74;
               map←v50888 = (* ((( (ptr) pm←v7420)+6)+(
                     limit74 = (* (( (ptr) pm←v7420)+5) ),
                     BCK(0, limit74)
                     )) );
               };
            {
               W4 b←v35348;
               b←v35348 = (*  (W4Pt) map←v50888 );
               var←c53496.f0 = (b←v35348.f2 - b←v35348.f0);
               var←c53496.f1 = (b←v35348.f3 - b←v35348.f1);
               };
            var←c53464 = var←c53496;
            };
         {
            word var←c53592;
            word map←v51464;
            {
               word limit75;
               map←v51464 = (* ((( (ptr) pm←v7420)+6)+(
                     limit75 = (* (( (ptr) pm←v7420)+5) ),
                     BCK(0, limit75)
                     )) );
               };
            var←c53592 = (* (( (ptr) map←v51464)+5) );
            var←c53560 = var←c53592;
            };
         {
            word pd76;
            pd76 = (* (( (ptr) (* (( (ptr) gf←c58072)+115)/* var←c53624 */  ))+18) );
            var←c0555 = (word) ( *( (fPt) ((*  (ptr) pd76 ))))(var←c53464, var←c53560, 0, pd76);
            };
         words←v7464 = (words←v7464 + var←c0555);
         };
      i←v10816 = (i←v10816 + 1);
      if ((i←v10816 < noName←c53432)) {
         goto lab←L100005;
         };
      lab←L100002: ;
      };
SOURCE(5933, 233)
   return(words←v7464);
   }

static void HiliteSetHalftoneProperties←P600(device←v7544, halftoneProperties←v7572)
   word device←v7544;
   word halftoneProperties←v7572;
   {
   register ptr gf←c58104 =  (ptr) &globalframe;
   word data←v10860;
   W3 brick←v10888;
   word var←c53656;
   word switch←v50840;
   /* HiliteSetHalftoneProperties: */ 
SOURCE(6329, 529)
SOURCE(6449, 32)
   data←v10860 = XR←Narrow((* (( (ptr) device←v7544)+7) ), (* (( (ptr) gf←c58104)+26) ));
SOURCE(6483, 37)
   brick←v10888 = (*  (W3Pt) (( (ptr) data←v10860)+9) );
SOURCE(6522, 65)
   switch←v50840 = ((* (( (ptr) gf←c58104)+5)/* ignoreHighlightSetScreen←v4680 */  ) + 7);
   var←c53656 =  (unsigned) ((* (( (ptr) (* (( (ptr) (* (( (ptr) gf←c58104)+105)/* var←c52568 */  ))+10) ))+switch←v50840) ) != 0);
   if ((0 != var←c53656)) {
SOURCE(6581, 6)
      return;
      };
SOURCE(6589, 71)
   if ((halftoneProperties←v7572 != 0)) {
SOURCE(6622, 38)
      brick←v10888 = (*  (W3Pt) (( (ptr) halftoneProperties←v7572)+2) );
      };
SOURCE(6662, 152)
   {
      register word tail←v10932;
      tail←v10932 = halftoneProperties←v7572;
      lab←L100012: ;
      if ((tail←v10932 != 0)) {
         }
      else {
         goto lab←L100009;
         };
SOURCE(6755, 59)
      if (((* (( (ptr) tail←v10932)+1) ) == 0)) {
SOURCE(6790, 24)
         brick←v10888 = (*  (W3Pt) (( (ptr) tail←v10932)+2) );
SOURCE(6816, 5)
         goto lab←L100010;
         };
      tail←v10932 = (* (( (ptr) tail←v10932)+6) );
      goto lab←L100012;
      lab←L100009: ;
      lab←L100010: ;
      };
SOURCE(6833, 25)
   (void) SetDataBrick←P360(data←v10860, brick←v10888);
   }

static void HiliteSetColor←P660(device←v7632, color←v7660, viewToDevice←v7688)
   word device←v7632;
   word color←v7660;
   word viewToDevice←v7688;
   {
   W14 var←c58136;
   register ptr gf←c58168 =  (ptr) &globalframe;
   /* declaration of var←c53688 skipped */ 
   /* declaration of var←c53720 skipped */ 
   /* declaration of data←v10976 skipped */ 
   word sampled←v11004 = 0;
   word allowed←v11032 = 3221225472;
   /* HiliteSetColor: */ 
SOURCE(6865, 4308)
   {
      word tmpAddr77;
      tmpAddr77 = (word) (( (ptr) &var←c58136)+4)/* var←c53688 */ ;
      (*  (ptr) tmpAddr77 ) = ( ((word)  (fPt) Compare←P2328) );
      (* (( (ptr) tmpAddr77) + 1) ) = 1;
      };
   {
      word tmpAddr78;
      tmpAddr78 = (word) (( (ptr) &var←c58136)+6)/* var←c53720 */ ;
      (*  (ptr) tmpAddr78 ) = ( ((word)  (fPt) Gen←P2076) );
      (* (( (ptr) tmpAddr78) + 1) ) = 1;
      };
SOURCE(6965, 33)
   (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ) = XR←Narrow((* (( (ptr) device←v7632)+7) ), (* (( (ptr) gf←c58168)+26) ))
   ;
SOURCE(7202, 15)
   (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+13) ) = 0;
SOURCE(7219, 98)
   if ( ( ((* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+20) ) != 0) ? (0 == (* (( (ptr) (* (( (ptr) &var←c58136)+8)
      /* data←v10976 */  ))+18) )) : 0 ) ) {
SOURCE(7271, 46)
      {
         word var←c53752;
         var←c53752 = (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+20) );
         {
            word pd79;
            word limit80;
            pd79 = (* (( (ptr) (* (( (ptr) gf←c58168)+115)/* var←c53624 */  ))+23) );
            (void) ( *( (fPt) ((*  (ptr) pd79 ))))((* (((( (ptr) var←c53752)+6)+(
                     limit80 = (* (( (ptr) var←c53752)+5) ),
                     BCK(0, limit80)
                     ))) ), pd79);
            };
         };
      };
SOURCE(7319, 17)
   (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+20) ) = 0;
SOURCE(7338, 3603)
   {
      word var←c53784;
      var←c53784 = color←v7660;
      if ((var←c53784 == 0)) {
         goto lab←L100013;
         };
      {
         word var←c54456;
         if ( ( ((*  (ptr) var←c53784 ) == 0) ? ((* (( (ptr) var←c53784)+1) ) == 0) : 0 ) ) {
            {
               word color←v11076;
               color←v11076 = var←c53784;
SOURCE(7399, 1436)
               {
                  word transform←v11120;
                  word point←v11148;
                  word black←v11176;
                  word hilite←v11204;
                  word blackBit←v11260;
                  word blackSolid←v11288;
                  word hiliteBit←v11316;
                  word hiliteSolid←v11344;
SOURCE(7401, 91)
                  transform←v11120 = (word) GetColorTransform←P720((* (( (ptr) &var←c58136)+8)/* data←v10976 */  ), (* (( (ptr) color←v11076)+2)
                      ));
SOURCE(7494, 95)
                  {
                     word pd82;
                     pd82 = (* (( (ptr) (* (( (ptr) gf←c58168)+107)/* var←c52664 */  ))+43) );
                     point←v11148 = (word) ( *( (fPt) ((*  (ptr) pd82 ))))(color←v11076, transform←v11120, pd82);
                     };
SOURCE(7591, 22)
                  {
                     word limit83;
                     black←v11176 = (* ((( (ptr) point←v11148)+2)+(
                           limit83 = (* (( (ptr) point←v11148)+1) ),
                           BCK(0, limit83)
                           )) );
                     };
SOURCE(7615, 54)
                  {
                     word tc84;
                     word limit85;
                     if (((* (( (ptr) point←v11148)+1) ) < 2)) {
                        tc84 =  (word) (*  (ptr) &fc50 );
                        }
                     else {
                        tc84 =  (word) (* ((( (ptr) point←v11148)+2)+(
/*1*/   limit85 = (* (( (ptr) point←v11148)+1) ),
/*1*/   BCK(1, limit85)
/*1*/   )) );
                        };
                     hilite←v11204 = tc84;
                     };
SOURCE(7694, 44)
                  {
                     word x86;
                     word x88;
                     word x90;
                     blackBit←v11260 =  (unsigned) ((
                        x86 = black←v11176,  *(float*)&x86
                        ) > (
                        x88 = (*  (ptr) &fc87 ),  *(float*)&x88
                        ) - (
                        x90 = (*  (ptr) &fc89 ),  *(float*)&x90
                        ));
                     };
SOURCE(7740, 50)
                  {
                     word x91;
                     word x92;
                     blackSolid←v11288 =  (unsigned)  ( (0 != blackBit←v11260) ? 1 : ((
                        x91 = black←v11176,  *(float*)&x91
                        ) < (
                        x92 = (*  (ptr) &fc89 ),  *(float*)&x92
                        )) ) ;
                     };
SOURCE(7792, 46)
                  {
                     word x93;
                     word x94;
                     word x95;
                     hiliteBit←v11316 =  (unsigned) ((
                        x93 = hilite←v11204,  *(float*)&x93
                        ) > (
                        x94 = (*  (ptr) &fc87 ),  *(float*)&x94
                        ) - (
                        x95 = (*  (ptr) &fc89 ),  *(float*)&x95
                        ));
                     };
SOURCE(7840, 53)
                  {
                     word x96;
                     word x97;
                     hiliteSolid←v11344 =  (unsigned)  ( (0 != hiliteBit←v11316) ? 1 : ((
                        x96 = hilite←v11204,  *(float*)&x96
                        ) < (
                        x97 = (*  (ptr) &fc89 ),  *(float*)&x97
                        )) ) ;
                     };
SOURCE(7895, 935)
                  if (((0 != blackSolid←v11288) && (0 != hiliteSolid←v11344))) {
SOURCE(7938, 193)
SOURCE(7940, 20)
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+13) ) = 1;
SOURCE(7962, 50)
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+14) ) = (((word) blackBit←v11260 << 1) + hiliteBit←v11316);
SOURCE(8014, 115)
                     {
                        word var←c53816;
                        {
                           word var←c0556;
                           word var←c53848;
                           word map←v51416;
                           map←v51416 = (*  (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ) );
                           var←c53848 = (* (( (ptr) map←v51416)+5) );
                           var←c0556 = (var←c0556 & 4294967040) | ((word) (word) (* ((( (bPt) gf←c58168)+368)/* var←c52472 */ +var←c53848) ));
                           {
/*1*/   word idx98;
/*1*/   var←c53816 =  (unsigned) (
/*1*/      idx98 = (word)  (unsigned) (var←c0556 & 0377),
/*1*/      BCK(idx98, 6)
/*1*/      );
/*1*/   };
                           };
                        {
                           word pd99;
                           pd99 = (* (( (ptr) (* (( (ptr) gf←c58168)+116)/* var←c53880 */  ))+4) );
                           (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+15) ) = (word) ( *( (fPt) ((*  (ptr) pd99 ))))((* (( (ptr) (* (
/*1*/         ( (ptr) &var←c58136)+8)/* data←v10976 */  ))+14) ), var←c53816, pd99);
                           };
                        };
                     }
                  else {
SOURCE(8138, 694)
                     {
                        /* declaration of box←v11388 skipped */ 
                        /* declaration of b←v11416 skipped */ 
SOURCE(8140, 55)
                        {
                           word map←v51176;
                           map←v51176 = (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+10) );
                           (*  (W4Pt) (( (ptr) &var←c58136)+9)/* box←v11388 */  ) = (*  (W4Pt) map←v51176 );
                           };
SOURCE(8197, 109)
                        {
                           word pd100;
                           word idx101;
                           pd100 = (* (( (ptr) (* (( (ptr) gf←c58168)+117)/* var←c53944 */  ))+5) );
                           (* (( (ptr) &var←c58136)+13)/* b←v11416 */  ) = (word) ( *( (fPt) ((*  (ptr) pd100 ))))(2, (
/*1*/      idx101 = (word) ((* (( (ptr) &var←c58136)+12) ) - (* (( (ptr) &var←c58136)+10) )),
/*1*/      SGNCK(idx101)
/*1*/      ), pd100);
                           };
SOURCE(8466, 49)
                        {
                           word var←c53976;
                           {
/*1*/   word pd102;
/*1*/   word idx103;
/*1*/   pd102 = (* (( (ptr) (* (( (ptr) gf←c58168)+118)/* var←c54008 */  ))+6) );
/*1*/   var←c53976 = (
/*1*/      idx103 = (word) ( *( (fPt) ((*  (ptr) pd102 ))))(black←v11176, pd102),
/*1*/      SGNCK(idx103)
/*1*/      );
/*1*/   };
                           {
/*1*/   word pd104;
/*1*/   word limit105;
/*1*/   pd104 = (* (( (ptr) (* (( (ptr) gf←c58168)+115)/* var←c53624 */  ))+11) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd104 ))))((* ((( (ptr) (* (( (ptr) &var←c58136)+13)/* b←v11416 */  ))+2)+(
/*1*/            limit105 = (* (( (ptr) (* (( (ptr) &var←c58136)+13)/* b←v11416 */  ))+1) ),
/*1*/            BCK(0, limit105)
/*1*/            )) ), var←c53976, 0, 2147483647, pd104);
/*1*/   };
                           };
SOURCE(8517, 50)
                        {
                           word var←c54040;
                           {
/*1*/   word pd106;
/*1*/   word idx107;
/*1*/   pd106 = (* (( (ptr) (* (( (ptr) gf←c58168)+118)/* var←c54008 */  ))+6) );
/*1*/   var←c54040 = (
/*1*/      idx107 = (word) ( *( (fPt) ((*  (ptr) pd106 ))))(hilite←v11204, pd106),
/*1*/      SGNCK(idx107)
/*1*/      );
/*1*/   };
                           {
/*1*/   word pd108;
/*1*/   word limit109;
/*1*/   pd108 = (* (( (ptr) (* (( (ptr) gf←c58168)+115)/* var←c53624 */  ))+11) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd108 ))))((* ((( (ptr) (* (( (ptr) &var←c58136)+13)/* b←v11416 */  ))+2)+(
/*1*/            limit109 = (* (( (ptr) (* (( (ptr) &var←c58136)+13)/* b←v11416 */  ))+1) ),
/*1*/            BCK(1, limit109)
/*1*/            )) ), var←c54040, 0, 2147483647, pd108);
/*1*/   };
                           };
SOURCE(8569, 16)
                        (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+13) ) = 2;
SOURCE(8587, 129)
                        if (((* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+16) ) == 0)) {
SOURCE(8613, 103)
                           {
/*1*/   W4 var←c54072;
/*1*/   {
/*1*/      W4 var←c54104;
/*1*/      word map←v51128;
/*1*/      map←v51128 = (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+10) );
/*1*/      var←c54104 = (*  (W4Pt) map←v51128 );
/*1*/      var←c54072 = var←c54104;
/*1*/      };
/*1*/   {
/*1*/      word pd110;
/*1*/      pd110 = (* (( (ptr) (* (( (ptr) gf←c58168)+115)/* var←c53624 */  ))+19) );
/*1*/      (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+16) ) = (word) ( *( (fPt) ((*  (ptr) pd110 ))))(var←c54072, 2, 0, pd110)
/*1*/      ;
/*1*/      };
/*1*/   };
                           };
SOURCE(8721, 72)
                        (void) HiliteHalftone←P1260((* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+16) ), (word) (( (bPt) &var←c58136)+24)
                           /* var←c53720 */ , (*  (W4Pt) (( (ptr) &var←c58136)+9)/* box←v11388 */  ), (*  (W3Pt) (( (ptr) (* (( (ptr) &var←c58136)+8)
/*1*/   /* data←v10976 */  ))+9) ));
SOURCE(8795, 35)
                        {
                           word pd111;
                           pd111 = (* (( (ptr) (* (( (ptr) gf←c58168)+117)/* var←c53944 */  ))+6) );
                           (void) ( *( (fPt) ((*  (ptr) pd111 ))))((* ((( (ptr) &var←c58136)+13)/* b←v11416 */ ) ), pd111);
                           };
                        };
                     };
                  };
               };
            goto endif081;
            };
         if (((
            var←c54456 = (*  (ptr) var←c53784 )
            ) == 1)) {
            {
               /* declaration of color←v11680 skipped */ 
               (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ) = var←c53784;
SOURCE(8861, 1382)
               {
                  word cache←v11724;
                  /* declaration of pa←v11752 skipped */ 
                  word um←v11780;
                  word colorOperator←v11808;
SOURCE(8863, 56)
                  {
                     word pd112;
                     pd112 = (* (( (ptr) (* (( (ptr) gf←c58168)+119)/* var←c54136 */  ))+17) );
                     cache←v11724 = (word) ( *( (fPt) ((*  (ptr) pd112 ))))(pd112);
                     };
SOURCE(8921, 25)
                  (* (( (ptr) &var←c58136)+10)/* pa←v11752 */  ) = (* (( (ptr) (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ))+1) );
SOURCE(8948, 29)
                  um←v11780 = (* (( (ptr) (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ))+2) );
SOURCE(8979, 50)
                  colorOperator←v11808 = (* (( (ptr) (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ))+3) );
SOURCE(9031, 72)
                  {
                     word pd113;
                     pd113 = (* (( (ptr) (* (( (ptr) gf←c58168)+108)/* var←c52888 */  ))+14) );
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+19) ) = (word) ( *( (fPt) ((*  (ptr) pd113 ))))((* (( (ptr) (* (
/*1*/   ( (ptr) &var←c58136)+10)/* pa←v11752 */  ))+4) ), (* (( (ptr) (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ))+2) ), viewToDevice←v7688, 0, pd113)
                     ;
                     };
SOURCE(9105, 227)
                  if ( (  ( (colorOperator←v11808 == (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+7) )) ? ((* (( (ptr) (* (
                        ( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+19) ))+9) ) == 3) : 0 )  ? (0 != (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c58136)+8)
                        /* data←v10976 */  ))+19) ))+8) )) : 0 ) ) {
SOURCE(9216, 22)
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+13) ) = 3;
SOURCE(9240, 20)
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+17) ) = (* (( (ptr) &var←c58136)+10)/* pa←v11752 */  );
SOURCE(9262, 32)
                     allowed←v11032 &= 3221225471;
SOURCE(9296, 28)
                     (*  (ptr) (* (( (ptr) device←v7632)+6) ) ) = allowed←v11032;
SOURCE(9326, 6)
                     return;
                     };
SOURCE(9337, 20)
                  (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+13) ) = 4;
SOURCE(9359, 14)
                  sampled←v11004 = 1;
SOURCE(9375, 863)
                  if ((0 != (*  (ptr) (* (( (ptr) &var←c58136)+10)/* pa←v11752 */  ) ))) {
SOURCE(9396, 745)
                     {
                        word scd←v11880;
SOURCE(9667, 78)
                        {
                           W2 var←c0168;
                           word var←c0557;
                           {
/*1*/   word pd114;
/*1*/   pd114 = (* (( (ptr) (* (( (ptr) gf←c58168)+119)/* var←c54136 */  ))+9) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd114 ))))((word) &var←c0168, cache←v11724, (word) (( (bPt) &var←c58136)+16)/* var←c53688 */ , (* (
/*1*/         ( (ptr) gf←c58168)+32) ), pd114);
/*1*/   };
                           var←c0557 = var←c0168.f0;
                           scd←v11880 = XR←Narrow(var←c0557, (* (( (ptr) gf←c58168)+21) ));
                           };
SOURCE(9747, 337)
                        if ((scd←v11880 == 0)) {
SOURCE(9765, 321)
                           {
/*1*/   word pixelMap←v11924;
/*1*/   word words←v11952;
SOURCE(9767, 68)
/*1*/   pixelMap←v11924 = (word) ComputeSource←P1200((* (( (ptr) &var←c58136)+8)/* data←v10976 */  ), (* (( (ptr) &var←c58136)+9)
/*1*/      /* color←v11680 */  ), (* (( (ptr) (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ))+3) ));
SOURCE(9837, 36)
/*1*/   words←v11952 = (word) PixelMapWords←P540(pixelMap←v11924);
SOURCE(9875, 123)
/*1*/   {
/*1*/      word var←c54168;
/*1*/      var←c54168 = XR←NewObject(20, (* (( (ptr) gf←c58168)+21) ));
/*1*/      (*  (ptr) var←c54168 ) = (* (( (ptr) &var←c58136)+10)/* pa←v11752 */  );
/*1*/      (* (( (ptr) var←c54168)+1) ) = (* (( (ptr) (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ))+3) );
/*1*/      (* (( (ptr) var←c54168)+2) ) = (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+1) );
/*1*/      (* (( (ptr) var←c54168)+4) ) = pixelMap←v11924;
/*1*/      scd←v11880 = var←c54168;
/*1*/      };
SOURCE(10000, 84)
/*1*/   {
/*1*/      word pd115;
/*1*/      pd115 = (* (( (ptr) (* (( (ptr) gf←c58168)+119)/* var←c54136 */  ))+6) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd115 ))))(cache←v11724, scd←v11880, scd←v11880, words←v11952, (* (( (ptr) gf←c58168)+32) ), pd115)
/*1*/      ;
/*1*/      };
/*1*/   };
                           };
SOURCE(10089, 24)
                        (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+20) ) = (* (( (ptr) scd←v11880)+4) );
SOURCE(10115, 24)
                        (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+18) ) = 1;
                        };
                     }
                  else {
SOURCE(10150, 61)
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+20) ) = (word) ComputeSource←P1200((* (( (ptr) &var←c58136)+8)
                        /* data←v10976 */  ), (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ), (* (( (ptr) (* (( (ptr) &var←c58136)+9)/* color←v11680 */  ))+3)
                         ));
SOURCE(10213, 25)
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+18) ) = 0;
                     };
                  };
               };
            goto endif081;
            };
         if ((var←c54456 == 2)) {
            {
               word color←v12040;
               color←v12040 = var←c53784;
SOURCE(10269, 394)
               {
                  word pa←v12084;
SOURCE(10271, 25)
                  pa←v12084 = (* (( (ptr) color←v12040)+1) );
SOURCE(10298, 67)
                  if ((0 != (* (( (ptr) color←v12040)+3) ))) {
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+13) ) = 6;
                     }
                  else {
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+13) ) = 5;
                     };
SOURCE(10367, 14)
                  sampled←v11004 = 1;
SOURCE(10383, 72)
                  {
                     word pd116;
                     pd116 = (* (( (ptr) (* (( (ptr) gf←c58168)+108)/* var←c52888 */  ))+14) );
                     (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+19) ) = (word) ( *( (fPt) ((*  (ptr) pd116 ))))((* (( (ptr) pa←v12084)+4)
                         ), (* (( (ptr) color←v12040)+2) ), viewToDevice←v7688, 0, pd116);
                     };
SOURCE(10457, 121)
                  {
                     word var←c54200;
                     {
                        W4 var←c54232;
                        var←c54232.f0 = 0;
                        var←c54232.f1 = 0;
                        var←c54232.f2 = (* (( (ptr) pa←v12084)+2) );
                        var←c54232.f3 = (* (( (ptr) pa←v12084)+3) );
                        {
                           word pd117;
                           pd117 = (* (( (ptr) (* (( (ptr) gf←c58168)+115)/* var←c53624 */  ))+22) );
                           var←c54200 = (word) ( *( (fPt) ((*  (ptr) pd117 ))))(var←c54232, 1, 0, pd117);
                           };
                        };
                     {
                        word pd118;
                        pd118 = (* (( (ptr) (* (( (ptr) gf←c58168)+117)/* var←c53944 */  ))+9) );
                        (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+20) ) = (word) ( *( (fPt) ((*  (ptr) pd118 ))))(var←c54200, 0, 0, 0, 0, pd118)
                        ;
                        };
                     };
SOURCE(10580, 54)
                  {
                     word var←c54264;
                     word var←c0558;
                     W2 var←c54296;
                     W2 var←c54328;
                     var←c54264 = (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+20) );
                     {
                        word limit119;
                        var←c0558 = (* ((( (ptr) var←c54264)+6)+(
/*1*/   limit119 = (* (( (ptr) var←c54264)+5) ),
/*1*/   BCK(0, limit119)
/*1*/   )) );
                        };
                     var←c54296.f0 = 0;
                     var←c54296.f1 = 0;
                     var←c54328.f0 = 2147483647;
                     var←c54328.f1 = 2147483647;
                     {
                        word pd120;
                        pd120 = (* (( (ptr) (* (( (ptr) gf←c58168)+120)/* var←c54360 */  ))+11) );
                        (void) ( *( (fPt) ((*  (ptr) pd120 ))))(pa←v12084, 0, 0, 0, var←c0558, var←c54296
                           , var←c54328, 0, pd120);
                        };
                     };
SOURCE(10636, 25)
                  (* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+18) ) = 0;
                  };
               };
            goto endif081;
            };
         if ( ( ((*  (ptr) var←c53784 ) == 0) ? ((* (( (ptr) var←c53784)+1) ) == 1) : 0 ) ) {
            {
               word color←v12128;
               color←v12128 = var←c53784;
SOURCE(10703, 238)
SOURCE(10739, 146)
               if (((* (( (ptr) color←v12128)+5) ) == 0)) {
SOURCE(10770, 115)
                  {
                     W3 var←c0181;
                     var←c0181.f0 = 63;
                     var←c0181.f1 = (* (( (ptr) gf←c58168)+30) );
                     var←c0181.f2 = 0;
                     (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c58168)+113)/* var←c53144 */  ))+4) ), (word) &var←c0181);
                     };
                  };
SOURCE(10887, 54)
               (void) HiliteSetColor←P660(device←v7632, (* (( (ptr) color←v12128)+5) ), viewToDevice←v7688);
               };
            goto endif081;
            };
         lab←L100013: ;
SOURCE(10960, 5)
         (void) XR←RaiseUnnamedError();
         goto endif081;
         endif081: ;
         };
      };
SOURCE(10992, 73)
   if (((* (( (ptr) (* (( (ptr) &var←c58136)+8)/* data←v10976 */  ))+13) ) == 1)) {
SOURCE(11023, 42)
      allowed←v11032 |= 402653184;
      };
SOURCE(11070, 73)
   if ((0 != sampled←v11004)) {
SOURCE(11086, 57)
      allowed←v11032 &= 1073741823;
      };
SOURCE(11145, 28)
   (*  (ptr) (* (( (ptr) device←v7632)+6) ) ) = allowed←v11032;
   }

static void Gen←P2076(action←v11520, formal←c58200)
   word action←v11520;
   word formal←c58200;
   {
   formal←c58200 = (formal←c58200 - 24);
   /* Gen: */ 
SOURCE(8308, 11)
SOURCE(8383, 69)
   {
      register word s←v11636;
      register word noName←c54488;
      s←v11636 = (* (( (ptr) formal←c58200)+9) );
      noName←c54488 = (* (( (ptr) formal←c58200)+11) );
      if (( (int)s←v11636 >=  (int)noName←c54488)) {
         goto lab←L100017;
         };
      lab←L100020: ;
SOURCE(8427, 25)
      {
         W2 var←c54520;
         var←c54520.f0 = s←v11636;
         var←c54520.f1 = (* (( (ptr) formal←c58200)+10) );
         (void) ( *( (fPt) ((*  (ptr) action←v11520 ))))((* (( (ptr) formal←c58200)+13) ), var←c54520, action←v11520);
         };
      s←v11636 = (s←v11636 + 1);
      if (( (int)s←v11636 <  (int)noName←c54488)) {
         goto lab←L100020;
         };
      lab←L100017: ;
      };
   }

static word Compare←P2328(argument←v39232, formal←c58264)
   word argument←v39232;
   word formal←c58264;
   {
   register ptr gf←c58232 =  (ptr) &globalframe;
   word good←v39276;
   formal←c58264 = (formal←c58264 - 16);
   /* Compare: */ 
SOURCE(9398, 37)
SOURCE(9437, 227)
   {
      word var←c54552;
      var←c54552 = argument←v39232;
      if ((var←c54552 == 0)) {
         goto lab←L100021;
         };
      if (((* (( (ptr) gf←c58232)+21) ) == XR←GetReferentType(var←c54552))) {
         {
            word scd←v11996;
            scd←v11996 = var←c54552;
SOURCE(9488, 148)
            {
               word tc121;
               if ( (  ( ((*  (ptr) scd←v11996 ) == (* (( (ptr) formal←c58264)+10) )) ? ((* (( (ptr) scd←v11996)+1) ) == (* (( (ptr) (* (
                     ( (ptr) formal←c58264)+9) ))+3) )) : 0 )  ? ((* (( (ptr) scd←v11996)+2) ) == (* (( (ptr) (* (( (ptr) formal←c58264)+8) ))+1)
                )) : 0 ) ) {
                  tc121 =  (word)  (unsigned) ((* (( (ptr) scd←v11996)+3) ) == (* (( (ptr) (* (( (ptr) formal←c58264)+8) ))+2) ));
                  }
               else {
                  tc121 =  (word)  (unsigned) 0;
                  };
               return(tc121);
               };
            };
         }
      else {
         lab←L100021: ;
SOURCE(9649, 15)
         return(0);
         };
      };
   }

static word GetColorTransform←P720(data←v7916, colorOperator←v7944)
   word data←v7916;
   word colorOperator←v7944;
   {
   register ptr gf←c58296 =  (ptr) &globalframe;
   word var←c7988;
   word allow←v12172;
   word colorSpace←v12200;
   /* GetColorTransform: */ 
SOURCE(11505, 1066)
SOURCE(11620, 7)
   allow←v12172 =  ( ((* (( (ptr) data←v7916)+2) ) != 0) ? (* (( (ptr) gf←c58296)+8)/* allowedColorSpaces2←v4820 */  ) : (* (
      ( (ptr) gf←c58296)+7)/* allowedColorSpaces←v4792 */  ) ) ;
SOURCE(11748, 101)
   {
      word pd122;
      pd122 = (* (( (ptr) (* (( (ptr) gf←c58296)+107)/* var←c52664 */  ))+42) );
      colorSpace←v12200 = (word) ( *( (fPt) ((*  (ptr) pd122 ))))(colorOperator←v7944, allow←v12172, pd122);
      };
SOURCE(11851, 686)
   if (((* (( (ptr) data←v7916)+8) ) == 0) || (colorSpace←v12200 != (*  (ptr) (* (( (ptr) data←v7916)+8) ) ))) {
SOURCE(11928, 611)
      {
         word domain←v12328;
         word dim←v12356;
         word rangeMax←v12384;
         word ct←v12412;
SOURCE(11930, 50)
         domain←v12328 = colorSpace←v12200;
SOURCE(11982, 39)
         dim←v12356 =  ( (domain←v12328 == 0) ? 1 : 2 ) ;
SOURCE(12023, 102)
         {
            word pd123;
            float tf124;
            pd123 = (* (( (ptr) (* (( (ptr) gf←c58296)+107)/* var←c52664 */  ))+35) );
            rangeMax←v12384 = (word) ( *( (fPt) ((*  (ptr) pd123 ))))(dim←v12356, (
                  tf124 = (float)(unsigned)(* (( (ptr) data←v7916)+9) ),  *(word*)&tf124
                  ), pd123);
            };
SOURCE(12127, 384)
         {
            word var←c54584;
            word var←c54648;
            {
               word var←c54616;
               var←c54616 = domain←v12328;
               if ((var←c54616 == 4)) {
                  var←c54584 = XR←CheckProc((word) (( (bPt) gf←c58296)+240)/* var←c51928 */ );
                  goto endif0125;
                  };
               if ((var←c54616 == 1)) {
                  if (((* (( (ptr) data←v7916)+2) ) != 0)) {
                     var←c54584 = XR←CheckProc((word) (( (bPt) gf←c58296)+200)/* var←c51768 */ );
                     }
                  else {
                     var←c54584 = XR←CheckProc((word) (( (bPt) gf←c58296)+208)/* var←c51800 */ );
                     };
                  goto endif0125;
                  };
               if ((var←c54616 == 3)) {
                  var←c54584 = XR←CheckProc((word) (( (bPt) gf←c58296)+208)/* var←c51800 */ );
                  goto endif0125;
                  };
               if ((var←c54616 == 0)) {
                  var←c54584 = XR←CheckProc((word) (( (bPt) gf←c58296)+224)/* var←c51864 */ );
                  goto endif0125;
                  };
               if ((var←c54616 == (* (( (ptr) gf←c58296)+6)/* colorSpaceCMYK←v4764 */  ))) {
                  var←c54584 = XR←CheckProc((word) (( (bPt) gf←c58296)+232)/* var←c51896 */ );
                  goto endif0125;
                  };
               var←c54584 = XR←CheckProc(
                  XR←RaiseUnnamedError(), 0
                  );
               goto endif0125;
               endif0125: ;
               };
            var←c54648 = XR←NewObject(16, (* (( (ptr) gf←c58296)+18) ));
            (*  (ptr) var←c54648 ) = domain←v12328;
            (* (( (ptr) var←c54648)+1) ) = rangeMax←v12384;
            (* (( (ptr) var←c54648)+2) ) = var←c54584;
            (* (( (ptr) var←c54648)+3) ) = data←v7916;
            ct←v12412 = var←c54648;
            };
SOURCE(12513, 24)
         (* (( (ptr) data←v7916)+8) ) = ct←v12412;
         };
      };
SOURCE(12542, 29)
   return((* (( (ptr) data←v7916)+8) ));
   }

static void HighlightTransform←P780(self←v8048, in←v8076, out←v8104)
   word self←v8048;
   word in←v8076;
   word out←v8104;
   {
   word b←v12456;
   word h←v12484;
   word outOfGamut←v12512 = 0;
   /* HighlightTransform: */ 
SOURCE(12575, 500)
SOURCE(12717, 38)
   {
      word limit126;
      word x127;
      word limit128;
      word x129;
      word x130;
      word x131;
      *(float*)&b←v12456 = ((( - (
         x127 = (* ((( (ptr) in←v8076)+2)+(
               limit126 = (* (( (ptr) in←v8076)+1) ),
               BCK(0, limit126)
               )) ),  *(float*)&x127
         )) - (
         x129 = (* ((( (ptr) in←v8076)+2)+(
               limit128 = (* (( (ptr) in←v8076)+1) ),
               BCK(1, limit128)
               )) ),  *(float*)&x129
         )) + (
         x130 = (*  (ptr) &fc49 ),  *(float*)&x130
         )) * (
         x131 = (*  (ptr) &fc87 ),  *(float*)&x131
         );
      };
SOURCE(12757, 27)
   {
      word limit132;
      word x133;
      word x134;
      *(float*)&h←v12484 = (
         x133 = (* ((( (ptr) in←v8076)+2)+(
               limit132 = (* (( (ptr) in←v8076)+1) ),
               BCK(1, limit132)
               )) ),  *(float*)&x133
         ) * (
         x134 = (*  (ptr) &fc87 ),  *(float*)&x134
         );
      };
SOURCE(12812, 43)
   {
      word x135;
      word x136;
      if (((
         x135 = b←v12456,  *(float*)&x135
         ) < (
         x136 = (*  (ptr) &fc50 ),  *(float*)&x136
         ))) {
SOURCE(12829, 17)
         outOfGamut←v12512 = 1;
SOURCE(12848, 7)
         b←v12456 = (*  (ptr) &fc50 );
         };
      };
SOURCE(12858, 55)
   {
      word x137;
      word x138;
      if (((
         x137 = b←v12456,  *(float*)&x137
         ) > (
         x138 = (*  (ptr) &fc87 ),  *(float*)&x138
         ))) {
SOURCE(12881, 17)
         outOfGamut←v12512 = 1;
SOURCE(12900, 13)
         b←v12456 = (*  (ptr) &fc87 );
         };
      };
SOURCE(12916, 43)
   {
      word x139;
      word x140;
      if (((
         x139 = h←v12484,  *(float*)&x139
         ) < (
         x140 = (*  (ptr) &fc50 ),  *(float*)&x140
         ))) {
SOURCE(12933, 17)
         outOfGamut←v12512 = 1;
SOURCE(12952, 7)
         h←v12484 = (*  (ptr) &fc50 );
         };
      };
SOURCE(12962, 59)
   {
      word x141;
      word x142;
      word x143;
      if (((
         x141 = h←v12484,  *(float*)&x141
         ) > (
         x142 = (*  (ptr) &fc87 ),  *(float*)&x142
         ) - (
         x143 = b←v12456,  *(float*)&x143
         ))) {
SOURCE(12987, 17)
         outOfGamut←v12512 = 1;
SOURCE(13006, 15)
         {
            word x144;
            word x145;
            *(float*)&h←v12484 = (
               x144 = (*  (ptr) &fc87 ),  *(float*)&x144
               ) - (
               x145 = b←v12456,  *(float*)&x145
               );
            };
         };
      };
SOURCE(13024, 10)
   {
      word limit146;
      (* ((( (ptr) out←v8104)+2)+(
            limit146 = (* (( (ptr) out←v8104)+1) ),
            BCK(0, limit146)
            )) ) = b←v12456;
      };
SOURCE(13036, 10)
   {
      word limit147;
      (* ((( (ptr) out←v8104)+2)+(
            limit147 = (* (( (ptr) out←v8104)+1) ),
            BCK(1, limit147)
            )) ) = h←v12484;
      };
SOURCE(13048, 27)
   (*  (ptr) out←v8104 ) = outOfGamut←v12512;
   }

static void CMYKTransform←P840(self←v8164, in←v8192, out←v8220)
   word self←v8164;
   word in←v8192;
   word out←v8220;
   {
   register ptr gf←c58328 =  (ptr) &globalframe;
   word data←v12556;
   word p←v12584;
   word C←v12612;
   word M←v12640;
   word Y←v12668;
   word K←v12696;
   word R←v12724;
   word G←v12752;
   word B←v12780;
   word outOfGamut←v12808 = 0;
   word r←v12864;
   word g←v12892;
   word b←v12920;
   word black←v12948;
   word highlight←v12976;
   /* CMYKTransform: */ 
SOURCE(13081, 1138)
SOURCE(13226, 30)
   data←v12556 = XR←Narrow((* (( (ptr) self←v8164)+3) ), (* (( (ptr) gf←c58328)+26) ));
SOURCE(13258, 98)
   p←v12584 = (* (( (ptr) (* (( (ptr) data←v12556)+2) ))+1) );
SOURCE(13358, 21)
   {
      word limit148;
      word x149;
      word x150;
      *(float*)&C←v12612 = (
         x149 = (* ((( (ptr) in←v8192)+2)+(
               limit148 = (* (( (ptr) in←v8192)+1) ),
               BCK(0, limit148)
               )) ),  *(float*)&x149
         ) / (
         x150 = (*  (ptr) &fc87 ),  *(float*)&x150
         );
      };
SOURCE(13381, 21)
   {
      word limit151;
      word x152;
      word x153;
      *(float*)&M←v12640 = (
         x152 = (* ((( (ptr) in←v8192)+2)+(
               limit151 = (* (( (ptr) in←v8192)+1) ),
               BCK(1, limit151)
               )) ),  *(float*)&x152
         ) / (
         x153 = (*  (ptr) &fc87 ),  *(float*)&x153
         );
      };
SOURCE(13404, 21)
   {
      word limit154;
      word x155;
      word x156;
      *(float*)&Y←v12668 = (
         x155 = (* ((( (ptr) in←v8192)+2)+(
               limit154 = (* (( (ptr) in←v8192)+1) ),
               BCK(2, limit154)
               )) ),  *(float*)&x155
         ) / (
         x156 = (*  (ptr) &fc87 ),  *(float*)&x156
         );
      };
SOURCE(13427, 21)
   {
      word limit157;
      word x158;
      word x159;
      *(float*)&K←v12696 = (
         x158 = (* ((( (ptr) in←v8192)+2)+(
               limit157 = (* (( (ptr) in←v8192)+1) ),
               BCK(3, limit157)
               )) ),  *(float*)&x158
         ) / (
         x159 = (*  (ptr) &fc87 ),  *(float*)&x159
         );
      };
SOURCE(13450, 21)
   {
      word x160;
      word x161;
      word x162;
      *(float*)&R←v12724 = (
         x160 = (*  (ptr) &fc49 ),  *(float*)&x160
         ) - ((
         x161 = C←v12612,  *(float*)&x161
         ) + (
         x162 = K←v12696,  *(float*)&x162
         ));
      };
SOURCE(13473, 21)
   {
      word x163;
      word x164;
      word x165;
      *(float*)&G←v12752 = (
         x163 = (*  (ptr) &fc49 ),  *(float*)&x163
         ) - ((
         x164 = M←v12640,  *(float*)&x164
         ) + (
         x165 = K←v12696,  *(float*)&x165
         ));
      };
SOURCE(13496, 21)
   {
      word x166;
      word x167;
      word x168;
      *(float*)&B←v12780 = (
         x166 = (*  (ptr) &fc49 ),  *(float*)&x166
         ) - ((
         x167 = Y←v12668,  *(float*)&x167
         ) + (
         x168 = K←v12696,  *(float*)&x168
         ));
      };
SOURCE(13638, 57)
   {
      word x169;
      float tf170;
      word x171;
      word idx172;
      word x173;
      r←v12864 = (x173 = (
            idx172 = (word) (x171 = (word) XR←REAL32←Round((
                     tf170 = (
                        x169 = R←v12724,  *(float*)&x169
                        ) * (float)(unsigned)63,  *(word*)&tf170
                     )),
               MAX((int)(word), x171, 0)),
            SGNCK(idx172)
            ),
         MIN( (unsigned) , x173, 63));
      };
SOURCE(13697, 57)
   {
      word x174;
      float tf175;
      word x176;
      word idx177;
      word x178;
      g←v12892 = (x178 = (
            idx177 = (word) (x176 = (word) XR←REAL32←Round((
                     tf175 = (
                        x174 = G←v12752,  *(float*)&x174
                        ) * (float)(unsigned)63,  *(word*)&tf175
                     )),
               MAX((int)(word), x176, 0)),
            SGNCK(idx177)
            ),
         MIN( (unsigned) , x178, 63));
      };
SOURCE(13756, 57)
   {
      word x179;
      float tf180;
      word x181;
      word idx182;
      word x183;
      b←v12920 = (x183 = (
            idx182 = (word) (x181 = (word) XR←REAL32←Round((
                     tf180 = (
                        x179 = B←v12780,  *(float*)&x179
                        ) * (float)(unsigned)63,  *(word*)&tf180
                     )),
               MAX((int)(word), x181, 0)),
            SGNCK(idx182)
            ),
         MIN( (unsigned) , x183, 63));
      };
SOURCE(13839, 49)
   {
      word var←c54680;
      var←c54680 =  (unsigned) (word) (* (( (hPt) (( (W32Pt) (( (W2048Pt) (
                  NCK((*  (bPt) p←v12584 )),
                  p←v12584
                  ))+r←v12864))+g←v12892))+b←v12920) );
      black←v12948 =  (unsigned) (var←c54680 & 0377);
      highlight←v12976 = ((unsigned)var←c54680 >> 8);
      };
SOURCE(13890, 331)
   {
      word b←v13092;
      word h←v13120;
      word outOfGamut←v13148 = 0;
SOURCE(13892, 15)
      {
         float tf184;
         b←v13092 = (
            tf184 = (float)(unsigned)black←v12948,  *(word*)&tf184
            );
         };
SOURCE(13909, 19)
      {
         float tf185;
         h←v13120 = (
            tf185 = (float)(unsigned)highlight←v12976,  *(word*)&tf185
            );
         };
SOURCE(13956, 43)
      {
         word x186;
         word x187;
         if (((
            x186 = b←v13092,  *(float*)&x186
            ) < (
            x187 = (*  (ptr) &fc50 ),  *(float*)&x187
            ))) {
SOURCE(13973, 17)
            outOfGamut←v13148 = 1;
SOURCE(13992, 7)
            b←v13092 = (*  (ptr) &fc50 );
            };
         };
SOURCE(14002, 55)
      {
         word x188;
         word x189;
         if (((
            x188 = b←v13092,  *(float*)&x188
            ) > (
            x189 = (*  (ptr) &fc87 ),  *(float*)&x189
            ))) {
SOURCE(14025, 17)
            outOfGamut←v13148 = 1;
SOURCE(14044, 13)
            b←v13092 = (*  (ptr) &fc87 );
            };
         };
SOURCE(14060, 43)
      {
         word x190;
         word x191;
         if (((
            x190 = h←v13120,  *(float*)&x190
            ) < (
            x191 = (*  (ptr) &fc50 ),  *(float*)&x191
            ))) {
SOURCE(14077, 17)
            outOfGamut←v13148 = 1;
SOURCE(14096, 7)
            h←v13120 = (*  (ptr) &fc50 );
            };
         };
SOURCE(14106, 59)
      {
         word x192;
         word x193;
         word x194;
         if (((
            x192 = h←v13120,  *(float*)&x192
            ) > (
            x193 = (*  (ptr) &fc87 ),  *(float*)&x193
            ) - (
            x194 = b←v13092,  *(float*)&x194
            ))) {
SOURCE(14131, 17)
            outOfGamut←v13148 = 1;
SOURCE(14150, 15)
            {
               word x195;
               word x196;
               *(float*)&h←v13120 = (
                  x195 = (*  (ptr) &fc87 ),  *(float*)&x195
                  ) - (
                  x196 = b←v13092,  *(float*)&x196
                  );
               };
            };
         };
SOURCE(14168, 10)
      {
         word limit197;
         (* ((( (ptr) out←v8220)+2)+(
               limit197 = (* (( (ptr) out←v8220)+1) ),
               BCK(0, limit197)
               )) ) = b←v13092;
         };
SOURCE(14180, 10)
      {
         word limit198;
         (* ((( (ptr) out←v8220)+2)+(
               limit198 = (* (( (ptr) out←v8220)+1) ),
               BCK(1, limit198)
               )) ) = h←v13120;
         };
SOURCE(14192, 27)
      (*  (ptr) out←v8220 ) = outOfGamut←v13148;
      };
   }

static void IntensityTransform←P900(self←v8280, in←v8308, out←v8336)
   word self←v8280;
   word in←v8308;
   word out←v8336;
   {
   word scaled←v13192;
   word clipped←v13220;
   /* IntensityTransform: */ 
SOURCE(14250, 327)
SOURCE(14392, 36)
   {
      word x199;
      word limit200;
      word x201;
      word x202;
      *(float*)&scaled←v13192 = ((
         x199 = (*  (ptr) &fc49 ),  *(float*)&x199
         ) - (
         x201 = (* ((( (ptr) in←v8308)+2)+(
               limit200 = (* (( (ptr) in←v8308)+1) ),
               BCK(0, limit200)
               )) ),  *(float*)&x201
         )) * (
         x202 = (*  (ptr) &fc87 ),  *(float*)&x202
         );
      };
SOURCE(14430, 94)
   {
      word x203;
      word x204;
      word x205;
      word x206;
      clipped←v13220 =  ( ((
         x203 = scaled←v13192,  *(float*)&x203
         ) < (
         x204 = (*  (ptr) &fc50 ),  *(float*)&x204
         )) ? (*  (ptr) &fc50 ) :  ( ((
         x205 = scaled←v13192,  *(float*)&x205
         ) > (
         x206 = (*  (ptr) &fc87 ),  *(float*)&x206
         )) ? (*  (ptr) &fc87 ) : scaled←v13192 )  ) ;
      };
SOURCE(14526, 16)
   {
      word limit207;
      (* ((( (ptr) out←v8336)+2)+(
            limit207 = (* (( (ptr) out←v8336)+1) ),
            BCK(0, limit207)
            )) ) = clipped←v13220;
      };
SOURCE(14544, 33)
   {
      word x208;
      word x209;
      (*  (ptr) out←v8336 ) =  (unsigned) ((
         x208 = clipped←v13220,  *(float*)&x208
         ) != (
         x209 = scaled←v13192,  *(float*)&x209
         ));
      };
   }

static word Store←P1020(out←v8612, i←v8640, x←v8668, limit←v8696)
   word out←v8612;
   word i←v8640;
   word x←v8668;
   word limit←v8696;
   {
   word var←c8740;
   word scaled←v13264;
   word clipped←v13292;
   /* Store: */ 
SOURCE(14730, 317)
SOURCE(14834, 45)
   {
      word x210;
      word x211;
      float tf212;
      scaled←v13264 = (word) XR←REAL32←Round((
            tf212 = (
               x210 = x←v8668,  *(float*)&x210
               ) * (
               x211 = (*  (ptr) &fc87 ),  *(float*)&x211
               ),  *(word*)&tf212
            ));
      };
SOURCE(14881, 81)
   clipped←v13292 =  ( ( (int)scaled←v13264 <  (int)0) ? 0 :  ( ( (int)scaled←v13264 >  (int)limit←v8696) ? limit←v8696 : scaled←v13264 )  ) ;
SOURCE(14964, 16)
   {
      word limit213;
      float tf214;
      (* ((( (ptr) out←v8612)+2)+(
            limit213 = (* (( (ptr) out←v8612)+1) ),
            BCK(i←v8640, limit213)
            )) ) = (
         tf214 = (float)(int)clipped←v13292,  *(word*)&tf214
         );
      };
SOURCE(14982, 46)
   if (( (int)clipped←v13292 !=  (int)scaled←v13264)) {
SOURCE(15007, 21)
      (*  (ptr) out←v8612 ) = 1;
      };
SOURCE(15030, 17)
   return(clipped←v13292);
   }

static void PictorialTransform←P1080(self←v8800, in←v8828, out←v8856)
   word self←v8800;
   word in←v8828;
   word out←v8856;
   {
   register ptr gf←c58360 =  (ptr) &globalframe;
   word data←v13336;
   word y←v13364;
   word e←v13392;
   word s←v13420;
   /* PictorialTransform: */ 
SOURCE(15051, 591)
SOURCE(15193, 30)
   data←v13336 = XR←Narrow((* (( (ptr) self←v8800)+3) ), (* (( (ptr) gf←c58360)+26) ));
SOURCE(15240, 123)
   if (((*  (ptr) self←v8800 ) == 1)) {
SOURCE(15269, 53)
      {
         W3 var←c54744;
         {
            word y←v49800;
            word e←v49828;
            word s←v49856;
            word r←v49888;
            word g←v49916;
            word b←v49944;
            {
               word limit215;
               r←v49888 = (* ((( (ptr) in←v8828)+2)+(
                     limit215 = (* (( (ptr) in←v8828)+1) ),
                     BCK(0, limit215)
                     )) );
               };
            {
               word limit216;
               g←v49916 = (* ((( (ptr) in←v8828)+2)+(
                     limit216 = (* (( (ptr) in←v8828)+1) ),
                     BCK(1, limit216)
                     )) );
               };
            {
               word limit217;
               b←v49944 = (* ((( (ptr) in←v8828)+2)+(
                     limit217 = (* (( (ptr) in←v8828)+1) ),
                     BCK(2, limit217)
                     )) );
               };
SOURCE(14651, 31)
            {
               word x219;
               word x220;
               word x222;
               word x223;
               word x225;
               word x226;
               *(float*)&y←v49800 = (((
                  x219 = (*  (ptr) &fc218 ),  *(float*)&x219
                  ) * (
                  x220 = r←v49888,  *(float*)&x220
                  )) + ((
                  x222 = (*  (ptr) &fc221 ),  *(float*)&x222
                  ) * (
                  x223 = g←v49916,  *(float*)&x223
                  ))) + ((
                  x225 = (*  (ptr) &fc224 ),  *(float*)&x225
                  ) * (
                  x226 = b←v49944,  *(float*)&x226
                  ));
               };
SOURCE(14684, 15)
            {
               word x227;
               word x228;
               word x229;
               *(float*)&e←v49828 = ((
                  x227 = r←v49888,  *(float*)&x227
                  ) - (
                  x228 = g←v49916,  *(float*)&x228
                  )) / (
                  x229 = (*  (ptr) &fc68 ),  *(float*)&x229
                  );
               };
SOURCE(14701, 23)
            {
               word x230;
               word x231;
               word x233;
               word x234;
               word x235;
               *(float*)&s←v49856 = (((
                  x230 = r←v49888,  *(float*)&x230
                  ) + (
                  x231 = g←v49916,  *(float*)&x231
                  )) / (
                  x233 = (*  (ptr) &fc232 ),  *(float*)&x233
                  )) - ((
                  x234 = b←v49944,  *(float*)&x234
                  ) / (
                  x235 = (*  (ptr) &fc68 ),  *(float*)&x235
                  ));
               };
SOURCE(14583, 141)
            (*  (ptr) (word) &var←c54744 ) = y←v49800;
            (* (( (ptr) (word) &var←c54744) + 1) ) = e←v49828;
            (* (( (ptr) (word) &var←c54744) + 2) ) = s←v49856;
            };
         s←v13420 = var←c54744.f2;
         e←v13392 = var←c54744.f1;
         y←v13364 = var←c54744.f0;
         };
      }
   else {
SOURCE(15331, 9)
      {
         word limit236;
         y←v13364 = (* ((( (ptr) in←v8828)+2)+(
               limit236 = (* (( (ptr) in←v8828)+1) ),
               BCK(0, limit236)
               )) );
         };
SOURCE(15342, 9)
      {
         word limit237;
         e←v13392 = (* ((( (ptr) in←v8828)+2)+(
               limit237 = (* (( (ptr) in←v8828)+1) ),
               BCK(1, limit237)
               )) );
         };
SOURCE(15353, 10)
      {
         word limit238;
         s←v13420 = (* ((( (ptr) in←v8828)+2)+(
               limit238 = (* (( (ptr) in←v8828)+1) ),
               BCK(2, limit238)
               )) );
         };
      };
SOURCE(15366, 278)
   {
      word denom←v13464;
      word h←v13492;
      word w←v13520;
SOURCE(15368, 46)
      {
         word x239;
         word x240;
         word x241;
         *(float*)&denom←v13464 = ((
            x239 = XR←RealPwr(e←v13392, (*  (ptr) &fc68 )),  *(float*)&x239
            ) + (
            x240 = XR←RealPwr(s←v13420, (*  (ptr) &fc68 )),  *(float*)&x240
            )) * (
            x241 = (* (( (ptr) data←v13336)+6) ),  *(float*)&x241
            );
         };
SOURCE(15416, 91)
      {
         word tc242;
         word x243;
         word x244;
         word x245;
         float tf246;
         float tf247;
         word x248;
         word x249;
         word x250;
         word x251;
         float tf252;
         word x254;
         word x255;
         float tf256;
         if (((
            x243 = denom←v13464,  *(float*)&x243
            ) == (
            x244 = (*  (ptr) &fc50 ),  *(float*)&x244
            ))) {
            tc242 =  (word) (*  (ptr) &fc50 );
            }
         else {
            tc242 =  (word) (
               tf256 = FMAX((
                     x245 = (*  (ptr) &fc50 ),  *(float*)&x245
                     ), ((
                     x254 = XR←RealPwr((
                           tf252 = ((
/*1*/   x248 = (* (( (ptr) data←v13336)+4) ),  *(float*)&x248
/*1*/   ) * (
/*1*/   x249 = e←v13392,  *(float*)&x249
/*1*/   )) + ((
/*1*/   x250 = (* (( (ptr) data←v13336)+5) ),  *(float*)&x250
/*1*/   ) * (
/*1*/   x251 = s←v13420,  *(float*)&x251
/*1*/   )),  *(word*)&tf252
                           ), (*  (ptr) &fc253 )),  *(float*)&x254
                     ) / (
                     x255 = denom←v13464,  *(float*)&x255
                     )), tf246, tf247),  *(word*)&tf256
               );
            };
         h←v13492 = tc242;
         };
SOURCE(15509, 39)
      {
         word x257;
         word x258;
         float tf259;
         float tf260;
         word x261;
         word x262;
         word x263;
         float tf264;
         w←v13520 = (
            tf264 = FMIN(((
                  x257 = (*  (ptr) &fc49 ),  *(float*)&x257
                  ) - (
                  x258 = h←v13492,  *(float*)&x258
                  )), ((
                  x261 = y←v13364,  *(float*)&x261
                  ) - ((
                  x262 = h←v13492,  *(float*)&x262
                  ) * (
                  x263 = (* (( (ptr) data←v13336)+3) ),  *(float*)&x263
                  ))), tf259, tf260),  *(word*)&tf264
            );
         };
SOURCE(15550, 22)
      (*  (ptr) out←v8856 ) = 0;
SOURCE(15574, 68)
      {
         word var←c54808;
         {
            word var←c54776;
            {
               word x265;
               word x266;
               word x267;
               float tf268;
               var←c54776 = (255 - (word) Store←P1020(out←v8856, 0, (
                     tf268 = ((
                        x265 = (*  (ptr) &fc49 ),  *(float*)&x265
                        ) - (
                        x266 = h←v13492,  *(float*)&x266
                        )) - (
                        x267 = w←v13520,  *(float*)&x267
                        ),  *(word*)&tf268
                     ), 255));
               };
            var←c54808 = (word) Store←P1020(out←v8856, 1, h←v13492, var←c54776);
            };
         };
      };
   }

static void TableRGBTransform←P1140(self←v8916, in←v8944, out←v8972)
   word self←v8916;
   word in←v8944;
   word out←v8972;
   {
   register ptr gf←c58392 =  (ptr) &globalframe;
   word data←v13564;
   word p←v13592;
   word r←v13648;
   word g←v13676;
   word b←v13704;
   word black←v13732;
   word highlight←v13760;
   /* TableRGBTransform: */ 
SOURCE(15651, 967)
SOURCE(15800, 30)
   data←v13564 = XR←Narrow((* (( (ptr) self←v8916)+3) ), (* (( (ptr) gf←c58392)+26) ));
SOURCE(15832, 98)
   p←v13592 = (* (( (ptr) (* (( (ptr) data←v13564)+2) ))+1) );
SOURCE(16025, 61)
   {
      word limit269;
      word x270;
      float tf271;
      word x272;
      word idx273;
      word x274;
      r←v13648 = (x274 = (
            idx273 = (word) (x272 = (word) XR←REAL32←Round((
                     tf271 = (
                        x270 = (* ((( (ptr) in←v8944)+2)+(
/*1*/   limit269 = (* (( (ptr) in←v8944)+1) ),
/*1*/   BCK(0, limit269)
/*1*/   )) ),  *(float*)&x270
                        ) * (float)(unsigned)63,  *(word*)&tf271
                     )),
               MAX((int)(word), x272, 0)),
            SGNCK(idx273)
            ),
         MIN( (unsigned) , x274, 63));
      };
SOURCE(16088, 61)
   {
      word limit275;
      word x276;
      float tf277;
      word x278;
      word idx279;
      word x280;
      g←v13676 = (x280 = (
            idx279 = (word) (x278 = (word) XR←REAL32←Round((
                     tf277 = (
                        x276 = (* ((( (ptr) in←v8944)+2)+(
/*1*/   limit275 = (* (( (ptr) in←v8944)+1) ),
/*1*/   BCK(1, limit275)
/*1*/   )) ),  *(float*)&x276
                        ) * (float)(unsigned)63,  *(word*)&tf277
                     )),
               MAX((int)(word), x278, 0)),
            SGNCK(idx279)
            ),
         MIN( (unsigned) , x280, 63));
      };
SOURCE(16151, 61)
   {
      word limit281;
      word x282;
      float tf283;
      word x284;
      word idx285;
      word x286;
      b←v13704 = (x286 = (
            idx285 = (word) (x284 = (word) XR←REAL32←Round((
                     tf283 = (
                        x282 = (* ((( (ptr) in←v8944)+2)+(
/*1*/   limit281 = (* (( (ptr) in←v8944)+1) ),
/*1*/   BCK(2, limit281)
/*1*/   )) ),  *(float*)&x282
                        ) * (float)(unsigned)63,  *(word*)&tf283
                     )),
               MAX((int)(word), x284, 0)),
            SGNCK(idx285)
            ),
         MIN( (unsigned) , x286, 63));
      };
SOURCE(16238, 49)
   {
      word var←c54840;
      var←c54840 =  (unsigned) (word) (* (( (hPt) (( (W32Pt) (( (W2048Pt) (
                  NCK((*  (bPt) p←v13592 )),
                  p←v13592
                  ))+r←v13648))+g←v13676))+b←v13704) );
      black←v13732 =  (unsigned) (var←c54840 & 0377);
      highlight←v13760 = ((unsigned)var←c54840 >> 8);
      };
SOURCE(16289, 331)
   {
      word b←v13876;
      word h←v13904;
      word outOfGamut←v13932 = 0;
SOURCE(16291, 15)
      {
         float tf287;
         b←v13876 = (
            tf287 = (float)(unsigned)black←v13732,  *(word*)&tf287
            );
         };
SOURCE(16308, 19)
      {
         float tf288;
         h←v13904 = (
            tf288 = (float)(unsigned)highlight←v13760,  *(word*)&tf288
            );
         };
SOURCE(16355, 43)
      {
         word x289;
         word x290;
         if (((
            x289 = b←v13876,  *(float*)&x289
            ) < (
            x290 = (*  (ptr) &fc50 ),  *(float*)&x290
            ))) {
SOURCE(16372, 17)
            outOfGamut←v13932 = 1;
SOURCE(16391, 7)
            b←v13876 = (*  (ptr) &fc50 );
            };
         };
SOURCE(16401, 55)
      {
         word x291;
         word x292;
         if (((
            x291 = b←v13876,  *(float*)&x291
            ) > (
            x292 = (*  (ptr) &fc87 ),  *(float*)&x292
            ))) {
SOURCE(16424, 17)
            outOfGamut←v13932 = 1;
SOURCE(16443, 13)
            b←v13876 = (*  (ptr) &fc87 );
            };
         };
SOURCE(16459, 43)
      {
         word x293;
         word x294;
         if (((
            x293 = h←v13904,  *(float*)&x293
            ) < (
            x294 = (*  (ptr) &fc50 ),  *(float*)&x294
            ))) {
SOURCE(16476, 17)
            outOfGamut←v13932 = 1;
SOURCE(16495, 7)
            h←v13904 = (*  (ptr) &fc50 );
            };
         };
SOURCE(16505, 59)
      {
         word x295;
         word x296;
         word x297;
         if (((
            x295 = h←v13904,  *(float*)&x295
            ) > (
            x296 = (*  (ptr) &fc87 ),  *(float*)&x296
            ) - (
            x297 = b←v13876,  *(float*)&x297
            ))) {
SOURCE(16530, 17)
            outOfGamut←v13932 = 1;
SOURCE(16549, 15)
            {
               word x298;
               word x299;
               *(float*)&h←v13904 = (
                  x298 = (*  (ptr) &fc87 ),  *(float*)&x298
                  ) - (
                  x299 = b←v13876,  *(float*)&x299
                  );
               };
            };
         };
SOURCE(16567, 10)
      {
         word limit300;
         (* ((( (ptr) out←v8972)+2)+(
               limit300 = (* (( (ptr) out←v8972)+1) ),
               BCK(0, limit300)
               )) ) = b←v13876;
         };
SOURCE(16579, 10)
      {
         word limit301;
         (* ((( (ptr) out←v8972)+2)+(
               limit301 = (* (( (ptr) out←v8972)+1) ),
               BCK(1, limit301)
               )) ) = h←v13904;
         };
SOURCE(16591, 27)
      (*  (ptr) out←v8972 ) = outOfGamut←v13932;
      };
   }

static word ComputeSource←P1200(data←v9032, sampledColor←v9060, colorOperator←v9088)
   word data←v9032;
   word sampledColor←v9060;
   word colorOperator←v9088;
   {
   register ptr gf←c58424 =  (ptr) &globalframe;
   word var←c9132;
   word pa←v13976;
   word transform←v14004;
   word pixelMap←v14032;
   /* ComputeSource: */ 
SOURCE(16627, 387)
SOURCE(16765, 32)
   pa←v13976 = (* (( (ptr) sampledColor←v9060)+1) );
SOURCE(16799, 85)
   transform←v14004 = (word) GetColorTransform←P720(data←v9032, colorOperator←v9088);
SOURCE(16886, 109)
   {
      word pd302;
      pd302 = (* (( (ptr) (* (( (ptr) gf←c58424)+107)/* var←c52664 */  ))+45) );
      pixelMap←v14032 = (word) ( *( (fPt) ((*  (ptr) pd302 ))))(colorOperator←v9088, transform←v14004, pa←v13976, pd302);
      };
SOURCE(16997, 17)
   return(pixelMap←v14032);
   }

static void HiliteHalftone←P1260(formal←c0582, src←v9220, formal←c0583, formal←c0584)
   word formal←c0582;
   word src←v9220;
   W4 formal←c0583;
   W3 formal←c0584;
   {
   W83 var←c58456;
   /* declaration of dst←v9192 skipped */ 
   /* declaration of bounds←v9248 skipped */ 
   /* declaration of brick←v9276 skipped */ 
   register ptr gf←c58488 =  (ptr) &globalframe;
   /* declaration of var←c54872 skipped */ 
   /* declaration of var←c54904 skipped */ 
   /* declaration of thresholdBuffer←v14076 skipped */ 
   /* declaration of zeroBuffer←v14104 skipped */ 
   /* declaration of bitBuffer←v14244 skipped */ 
   /* declaration of bitBufferMap←v14272 skipped */ 
   (* (( (ptr) &var←c58456)+4)/* dst←v9192 */  ) = formal←c0582;
   (*  (W4Pt) (( (ptr) &var←c58456)+5)/* bounds←v9248 */  ) = formal←c0583;
   (*  (W3Pt) (( (ptr) &var←c58456)+9)/* brick←v9276 */  ) = formal←c0584;
   /* HiliteHalftone: */ 
SOURCE(17020, 3136)
   {
      word tmpAddr303;
      tmpAddr303 = (word) (( (ptr) &var←c58456)+12)/* var←c54872 */ ;
      (*  (ptr) tmpAddr303 ) = ( ((word)  (fPt) Action←P2880) );
      (* (( (ptr) tmpAddr303) + 1) ) = 1;
      };
   {
      word tmpAddr304;
      tmpAddr304 = (word) (( (ptr) &var←c58456)+14)/* var←c54904 */ ;
      (*  (ptr) tmpAddr304 ) = ( ((word)  (fPt) GetHBuffer←P2820) );
      (* (( (ptr) tmpAddr304) + 1) ) = 1;
      };
SOURCE(17172, 83)
   {
      word var←c54936;
      {
         word pd305;
         word idx306;
         pd305 = (* (( (ptr) (* (( (ptr) gf←c58488)+121)/* var←c54968 */  ))+17) );
         var←c54936 = (
            idx306 = (word) ( *( (fPt) ((*  (ptr) pd305 ))))((*  (W4Pt) ((( (ptr) &var←c58456)+5)/* bounds←v9248 */ ) ), pd305),
            SGNCK(idx306)
            );
         };
      {
         word pd307;
         pd307 = (* (( (ptr) (* (( (ptr) gf←c58488)+115)/* var←c53624 */  ))+6) );
         (* (( (ptr) &var←c58456)+16)/* thresholdBuffer←v14076 */  ) = (word) ( *( (fPt) ((*  (ptr) pd307 ))))(var←c54936, pd307);
         };
      };
SOURCE(17257, 30)
   (* (( (ptr) &var←c58456)+17)/* zeroBuffer←v14104 */  ) = 0;
SOURCE(17762, 220)
   {
      W2 var←c55000;
      W2 var←c55032;
      W2 var←c55064;
      W2 var←c55096;
      var←c55000.f0 = 1;
      var←c55000.f1 = 1024;
      var←c55032.f0 = (word) (( (bPt) &var←c58456)+72)/* bitBuffer←v14244 */ ;
      var←c55032.f1 = 0;
      var←c55064.f0 = 0;
      var←c55064.f1 = 0;
      var←c55096.f0 = 0;
      var←c55096.f1 = 0;
      {
         word pd308;
         pd308 = (* (( (ptr) (* (( (ptr) gf←c58488)+115)/* var←c53624 */  ))+25) );
         (* (( (ptr) &var←c58456)+82)/* bitBufferMap←v14272 */  ) = (word) ( *( (fPt) ((*  (ptr) pd308 ))))(var←c55000, 2, 2048, var←c55032, 0, 64
            , var←c55064, var←c55096, pd308);
         };
      };
SOURCE(19973, 11)
   (void) ( *( (fPt) ((*  (ptr) src←v9220 ))))((word) ((( (bPt) &var←c58456)+48)/* var←c54872 */ ), src←v9220);
SOURCE(19986, 51)
   {
      word pd309;
      pd309 = (* (( (ptr) (* (( (ptr) gf←c58488)+115)/* var←c53624 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd309 ))))((* ((( (ptr) &var←c58456)+16)/* thresholdBuffer←v14076 */ ) ), pd309);
      };
SOURCE(20039, 71)
   if (((* (( (ptr) &var←c58456)+17)/* zeroBuffer←v14104 */  ) != 0)) {
SOURCE(20064, 46)
      {
         word pd310;
         pd310 = (* (( (ptr) (* (( (ptr) gf←c58488)+115)/* var←c53624 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd310 ))))((* ((( (ptr) &var←c58456)+17)/* zeroBuffer←v14104 */ ) ), pd310);
         };
      };
SOURCE(20112, 44)
   {
      word pd311;
      pd311 = (* (( (ptr) (* (( (ptr) gf←c58488)+115)/* var←c53624 */  ))+30) );
      (void) ( *( (fPt) ((*  (ptr) pd311 ))))((* ((( (ptr) &var←c58456)+82)/* bitBufferMap←v14272 */ ) ), pd311);
      };
   }

static word GetHBuffer←P2820(pixels←v14376, formal←c58552)
   word pixels←v14376;
   word formal←c58552;
   {
   register ptr gf←c58520 =  (ptr) &globalframe;
   word var←c14420;
   formal←c58552 = (formal←c58552 - 56);
   /* GetHBuffer: */ 
SOURCE(17289, 311)
SOURCE(17380, 220)
   if (((* (( (ptr) pixels←v14376)+1) ) < 2)) {
SOURCE(17417, 130)
      if (((* (( (ptr) formal←c58552)+17) ) == 0)) {
SOURCE(17444, 64)
         {
            word var←c55128;
            {
               word pd312;
               word idx313;
               pd312 = (* (( (ptr) (* (( (ptr) gf←c58520)+121)/* var←c54968 */  ))+17) );
               var←c55128 = (
                  idx313 = (word) ( *( (fPt) ((*  (ptr) pd312 ))))((*  (W4Pt) ((( (ptr) formal←c58552)+5)) ), pd312),
                  SGNCK(idx313)
                  );
               };
            {
               word pd314;
               pd314 = (* (( (ptr) (* (( (ptr) gf←c58520)+115)/* var←c53624 */  ))+6) );
               (* (( (ptr) formal←c58552)+17) ) = (word) ( *( (fPt) ((*  (ptr) pd314 ))))(var←c55128, pd314);
               };
            };
SOURCE(17510, 37)
         {
            word pd315;
            pd315 = (* (( (ptr) (* (( (ptr) gf←c58520)+115)/* var←c53624 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd315 ))))((* (( (ptr) formal←c58552)+17) ), 0, 2147483647, pd315);
            };
         };
SOURCE(17552, 18)
      return((* (( (ptr) formal←c58552)+17) ));
      }
   else {
SOURCE(17581, 19)
      {
         word limit316;
         return((* ((( (ptr) pixels←v14376)+2)+(
               limit316 = (* (( (ptr) pixels←v14376)+1) ),
               BCK(1, limit316)
               )) ));
         };
      };
   }

static void Action←P2880(pixels←v14536, min←v14564, formal←c58616)
   word pixels←v14536;
   W2 min←v14564;
   word formal←c58616;
   {
   register ptr gf←c58584 =  (ptr) &globalframe;
   word blackBuffer←v14592;
   word hiliteBuffer←v14620;
   word count←v14648;
   W2 index←v14676;
   word residual←v14704;
   word t←v14760;
   word b←v14788;
   word h←v14816;
   word unit←v14844 = 256;
   formal←c58616 = (formal←c58616 - 48);
   /* Action: */ 
SOURCE(17984, 1975)
SOURCE(18061, 37)
   {
      word limit317;
      blackBuffer←v14592 = (* ((( (ptr) pixels←v14536)+2)+(
            limit317 = (* (( (ptr) pixels←v14536)+1) ),
            BCK(0, limit317)
            )) );
      };
SOURCE(18100, 47)
   hiliteBuffer←v14620 = (word) GetHBuffer←P2820(pixels←v14536, (word) (( (bPt) formal←c58616)+56));
SOURCE(18149, 26)
   count←v14648 = (*  (ptr) pixels←v14536 );
SOURCE(18177, 19)
   index←v14676 = min←v14564;
SOURCE(18198, 46)
   residual←v14704 = count←v14648;
   (*  (ptr) (* (( (ptr) formal←c58616)+16) ) ) = count←v14648;
SOURCE(18285, 113)
   {
      word pd318;
      pd318 = (* (( (ptr) (* (( (ptr) gf←c58584)+115)/* var←c53624 */  ))+9) );
      t←v14760 = (word) ( *( (fPt) ((*  (ptr) pd318 ))))((* (( (ptr) formal←c58616)+16) ), 0, count←v14648, pd318);
      };
SOURCE(18400, 109)
   {
      word pd319;
      pd319 = (* (( (ptr) (* (( (ptr) gf←c58584)+115)/* var←c53624 */  ))+9) );
      b←v14788 = (word) ( *( (fPt) ((*  (ptr) pd319 ))))(blackBuffer←v14592, 0, count←v14648, pd319);
      };
SOURCE(18511, 110)
   {
      word pd320;
      pd320 = (* (( (ptr) (* (( (ptr) gf←c58584)+115)/* var←c53624 */  ))+9) );
      h←v14816 = (word) ( *( (fPt) ((*  (ptr) pd320 ))))(hiliteBuffer←v14620, 0, count←v14648, pd320);
      };
SOURCE(18971, 111)
   {
      word pd321;
      pd321 = (* (( (ptr) (* (( (ptr) gf←c58584)+115)/* var←c53624 */  ))+45) );
      (void) ( *( (fPt) ((*  (ptr) pd321 ))))((* (( (ptr) formal←c58616)+10) ), (* (( (ptr) formal←c58616)+11) ), min←v14564, (* (
            ( (ptr) formal←c58616)+16) ), pd321);
      };
SOURCE(19084, 875)
   lab←L100025: ;
   if ((residual←v14704 != 0)) {
      }
   else {
      goto lab←L100023;
      };
   {
      word chunkSize←v15112;
      word bitBufferIndex←v15140 = 0;
      word chunkResidual←v15168;
SOURCE(19106, 47)
      chunkSize←v15112 = (MIN( (unsigned) , 1024, residual←v14704));
SOURCE(19180, 35)
      chunkResidual←v15168 = chunkSize←v15112;
SOURCE(19217, 275)
      lab←L100028: ;
      if ((chunkResidual←v15168 >= 8)) {
         }
      else {
         goto lab←L100026;
         };
SOURCE(19245, 103)
      {
         word var←c55192;
         {
            word var←c55224;
            word thresh←v15368;
            word black←v15396;
            word hilite←v15424;
            word var←c0559;
            word var←c55288;
            word thresh←v50724;
            word black←v50752;
            word hilite←v50780;
            word var←c0560;
            word var←c55352;
            word thresh←v50624;
            word black←v50652;
            word hilite←v50680;
            word var←c0561;
            word var←c55416;
            word thresh←v50524;
            word black←v50552;
            word hilite←v50580;
            word var←c0562;
            word var←c55480;
            word thresh←v50424;
            word black←v50452;
            word hilite←v50480;
            word var←c0563;
            word var←c55544;
            word thresh←v50324;
            word black←v50352;
            word hilite←v50380;
            word var←c0564;
            word var←c55608;
            word thresh←v50224;
            word black←v50252;
            word hilite←v50280;
            word var←c0565;
            word var←c55672;
            word thresh←v50124;
            word black←v50152;
            word hilite←v50180;
            thresh←v15368 = (*  (ptr) t←v14760 );
            black←v15396 = (word) XRM←BITRSHIFT((thresh←v15368 - (*  (ptr) b←v14788 )), 31);
            hilite←v15424 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v15368) - (*  (ptr) h←v14816 )), 31);
SOURCE(18899, 69)
            var←c55224 = (black←v15396 + (word) XRM←BITOR(black←v15396, hilite←v15424));
            var←c0559 = ((word) var←c55224 << 2);
            thresh←v50724 = (* (( (ptr) t←v14760)+1) );
            black←v50752 = (word) XRM←BITRSHIFT((thresh←v50724 - (* (( (ptr) b←v14788)+1) )), 31);
            hilite←v50780 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v50724) - (* (( (ptr) h←v14816)+1) )), 31);
SOURCE(18899, 69)
            var←c55288 = (black←v50752 + (word) XRM←BITOR(black←v50752, hilite←v50780));
            var←c0560 = ((word) (var←c0559 + var←c55288) << 2);
            thresh←v50624 = (* (( (ptr) t←v14760)+2) );
            black←v50652 = (word) XRM←BITRSHIFT((thresh←v50624 - (* (( (ptr) b←v14788)+2) )), 31);
            hilite←v50680 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v50624) - (* (( (ptr) h←v14816)+2) )), 31);
SOURCE(18899, 69)
            var←c55352 = (black←v50652 + (word) XRM←BITOR(black←v50652, hilite←v50680));
            var←c0561 = ((word) (var←c0560 + var←c55352) << 2);
            thresh←v50524 = (* (( (ptr) t←v14760)+3) );
            black←v50552 = (word) XRM←BITRSHIFT((thresh←v50524 - (* (( (ptr) b←v14788)+3) )), 31);
            hilite←v50580 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v50524) - (* (( (ptr) h←v14816)+3) )), 31);
SOURCE(18899, 69)
            var←c55416 = (black←v50552 + (word) XRM←BITOR(black←v50552, hilite←v50580));
            var←c0562 = ((word) (var←c0561 + var←c55416) << 2);
            thresh←v50424 = (* (( (ptr) t←v14760)+4) );
            black←v50452 = (word) XRM←BITRSHIFT((thresh←v50424 - (* (( (ptr) b←v14788)+4) )), 31);
            hilite←v50480 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v50424) - (* (( (ptr) h←v14816)+4) )), 31);
SOURCE(18899, 69)
            var←c55480 = (black←v50452 + (word) XRM←BITOR(black←v50452, hilite←v50480));
            var←c0563 = ((word) (var←c0562 + var←c55480) << 2);
            thresh←v50324 = (* (( (ptr) t←v14760)+5) );
            black←v50352 = (word) XRM←BITRSHIFT((thresh←v50324 - (* (( (ptr) b←v14788)+5) )), 31);
            hilite←v50380 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v50324) - (* (( (ptr) h←v14816)+5) )), 31);
SOURCE(18899, 69)
            var←c55544 = (black←v50352 + (word) XRM←BITOR(black←v50352, hilite←v50380));
            var←c0564 = ((word) (var←c0563 + var←c55544) << 2);
            thresh←v50224 = (* (( (ptr) t←v14760)+6) );
            black←v50252 = (word) XRM←BITRSHIFT((thresh←v50224 - (* (( (ptr) b←v14788)+6) )), 31);
            hilite←v50280 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v50224) - (* (( (ptr) h←v14816)+6) )), 31);
SOURCE(18899, 69)
            var←c55608 = (black←v50252 + (word) XRM←BITOR(black←v50252, hilite←v50280));
            var←c0565 = ((word) (var←c0564 + var←c55608) << 2);
            thresh←v50124 = (* (( (ptr) t←v14760)+7) );
            black←v50152 = (word) XRM←BITRSHIFT((thresh←v50124 - (* (( (ptr) b←v14788)+7) )), 31);
            hilite←v50180 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v50124) - (* (( (ptr) h←v14816)+7) )), 31);
SOURCE(18899, 69)
            var←c55672 = (black←v50152 + (word) XRM←BITOR(black←v50152, hilite←v50180));
            var←c55192 = BCK((var←c0565 + var←c55672), 65536);
            };
         (* ((( (hPt) formal←c58616)+36)+BCK(bitBufferIndex←v15140, 128)) ) = var←c55192;
         };
SOURCE(19350, 35)
      bitBufferIndex←v15140 = (bitBufferIndex←v15140 + 1);
SOURCE(19387, 33)
      chunkResidual←v15168 = (chunkResidual←v15168 - 8);
SOURCE(19422, 22)
      t←v14760 = (t←v14760 + 32);
SOURCE(19446, 22)
      b←v14788 = (b←v14788 + 32);
SOURCE(19470, 22)
      h←v14816 = (h←v14816 + 32);
      goto lab←L100028;
      lab←L100026: ;
SOURCE(19503, 289)
      if ((chunkResidual←v15168 != 0)) {
SOURCE(19529, 265)
         {
            word w←v15212 = 0;
            word checkedResidual←v15240;
SOURCE(19548, 39)
            checkedResidual←v15240 = BCK(chunkResidual←v15168, 8);
SOURCE(19589, 29)
            if ((chunkSize←v15112 != residual←v14704)) {
SOURCE(19618, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(19654, 56)
            {
               register word i←v15304 = 0;
               if (( (int)i←v15304 >=  (int)checkedResidual←v15240)) {
                  goto lab←L100037;
                  };
               lab←L100040: ;
SOURCE(19695, 15)
               {
                  word var←c55736;
                  word j←v49992;
                  j←v49992 = i←v15304;
                  {
                     word thresh←v50024;
                     word black←v50052;
                     word hilite←v50080;
                     thresh←v50024 = (* (( (ptr) t←v14760)+j←v49992) );
                     black←v50052 = (word) XRM←BITRSHIFT((thresh←v50024 - (* (( (ptr) b←v14788)+j←v49992) )), 31);
                     hilite←v50080 = (word) XRM←BITRSHIFT(((unit←v14844 - thresh←v50024) - (* (( (ptr) h←v14816)+j←v49992) )), 31);
SOURCE(18899, 69)
                     var←c55736 = (black←v50052 + (word) XRM←BITOR(black←v50052, hilite←v50080));
                     };
                  w←v15212 = (((word) w←v15212 << 2) + var←c55736);
                  };
               i←v15304 = (i←v15304 + 1);
               if ((i←v15304 < checkedResidual←v15240)) {
                  goto lab←L100040;
                  };
               lab←L100037: ;
               };
SOURCE(19721, 71)
            {
               word var←c55800;
               {
                  word idx322;
                  var←c55800 = (
                     idx322 = (word) XRM←BITLSHIFT(w←v15212, (16 - ((word) checkedResidual←v15240 << 1))),
                     BCK(idx322, 65536)
                     );
                  };
               (* ((( (hPt) formal←c58616)+36)+BCK(bitBufferIndex←v15140, 128)) ) = var←c55800;
               };
            };
         };
SOURCE(19797, 98)
      {
         W2 var←c55832;
         W2 var←c55864;
         var←c55832.f0 = 0;
         var←c55832.f1 = 0;
         var←c55864.f0 = 1;
         var←c55864.f1 = chunkSize←v15112;
         {
            word pd323;
            pd323 = (* (( (ptr) (* (( (ptr) gf←c58584)+115)/* var←c53624 */  ))+49) );
            (void) ( *( (fPt) ((*  (ptr) pd323 ))))((* (( (ptr) formal←c58616)+4) ), (* (( (ptr) formal←c58616)+82) ), index←v14676, var←c55832, var←c55864, 0, pd323)
            ;
            };
         };
SOURCE(19897, 29)
      index←v14676.f1 = (index←v14676.f1 + chunkSize←v15112);
SOURCE(19928, 31)
      residual←v14704 = (residual←v14704 - chunkSize←v15112);
      };
   goto lab←L100025;
   lab←L100023: ;
   }

static void HiliteMaskBoxes←P1320(device←v9484, formal←c0585, formal←c0586)
   word device←v9484;
   W4 formal←c0585;
   word formal←c0586;
   {
   W20 var←c58648;
   /* declaration of bounds←v9512 skipped */ 
   /* declaration of boxes←v9540 skipped */ 
   register ptr gf←c58680 =  (ptr) &globalframe;
   /* declaration of var←c55896 skipped */ 
   /* declaration of var←c55928 skipped */ 
   /* declaration of var←c55960 skipped */ 
   /* declaration of data←v15452 skipped */ 
   (*  (W4Pt) (( (ptr) &var←c58648)+4)/* bounds←v9512 */  ) = formal←c0585;
   (* (( (ptr) &var←c58648)+8)/* boxes←v9540 */  ) = formal←c0586;
   /* HiliteMaskBoxes: */ 
SOURCE(20162, 2720)
   {
      word tmpAddr324;
      tmpAddr324 = (word) (( (ptr) &var←c58648)+9)/* var←c55896 */ ;
      (*  (ptr) tmpAddr324 ) = ( ((word)  (fPt) BlackAction←P3456) );
      (* (( (ptr) tmpAddr324) + 1) ) = 1;
      };
   {
      word tmpAddr325;
      tmpAddr325 = (word) (( (ptr) &var←c58648)+11)/* var←c55928 */ ;
      (*  (ptr) tmpAddr325 ) = ( ((word)  (fPt) BoxAction←P3300) );
      (* (( (ptr) tmpAddr325) + 1) ) = 1;
      };
   {
      word tmpAddr326;
      tmpAddr326 = (word) (( (ptr) &var←c58648)+13)/* var←c55960 */ ;
      (*  (ptr) tmpAddr326 ) = ( ((word)  (fPt) Src←P3192) );
      (* (( (ptr) tmpAddr326) + 1) ) = 1;
      };
SOURCE(20242, 32)
   (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ) = XR←Narrow((* (( (ptr) device←v9484)+7) ), (* (( (ptr) gf←c58680)+26) ))
   ;
SOURCE(20276, 2606)
   {
      word var←c55992;
      var←c55992 = (* (( (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ))+13) );
      switch (var←c55992) {
         case 0: 
SOURCE(20305, 5)
            (void) XR←RaiseUnnamedError();
            break;
         case 1: 
SOURCE(20351, 79)
            {
               word pd327;
               pd327 = (* (( (ptr) (* (( (ptr) gf←c58680)+115)/* var←c53624 */  ))+58) );
               (void) ( *( (fPt) ((*  (ptr) pd327 ))))((*  (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ) ), (* (( (ptr) &var←c58648)+8)
                  /* boxes←v9540 */  ), (* (( (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ))+14) ), 0, pd327);
               };
            break;
         case 2: 
SOURCE(20445, 99)
            {
               word pd328;
               pd328 = (* (( (ptr) (* (( (ptr) gf←c58680)+115)/* var←c53624 */  ))+56) );
               (void) ( *( (fPt) ((*  (ptr) pd328 ))))((*  (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ) ), (* (( (ptr) &var←c58648)+8)
                  /* boxes←v9540 */  ), (* (( (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ))+16) ), (* (( (ptr) (* (( (ptr) &var←c58648)+15)
                     /* data←v15452 */  ))+11) ), 0, pd328);
               };
            break;
         case 4: 
SOURCE(20560, 300)
SOURCE(20778, 80)
            (void) HiliteHalftone←P1260((*  (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ) ), (word) (( (bPt) &var←c58648)+52)
               /* var←c55960 */ , (*  (W4Pt) (( (ptr) &var←c58648)+4)/* bounds←v9512 */  ), (*  (W3Pt) (( (ptr) (* (( (ptr) &var←c58648)+15)
                  /* data←v15452 */  ))+9) ));
            break;
         case 3: 
SOURCE(20877, 788)
            {
               /* declaration of paBox←v15688 skipped */ 
SOURCE(20879, 151)
               {
                  word pd329;
                  pd329 = (* (( (ptr) (* (( (ptr) gf←c58680)+108)/* var←c52888 */  ))+49) );
                  (void) ( *( (fPt) ((*  (ptr) pd329 ))))((word) (( (bPt) &var←c58648)+64)/* paBox←v15688 */ , (* (( (ptr) (* (( (ptr) &var←c58648)+15)
                        /* data←v15452 */  ))+19) ), 0, 0, (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ))+17) ))+2) ), (* (
                        ( (ptr) (* (( (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ))+17) ))+3) )
                     , (*  (W4Pt) (( (ptr) gf←c58680)+101)/* var←c52536 */  ), pd329);
                  };
SOURCE(21230, 430)
               {
                  word pd330;
                  pd330 = (* (( (ptr) (* (( (ptr) gf←c58680)+121)/* var←c54968 */  ))+21) );
                  if ((0 != (word) ( *( (fPt) ((*  (ptr) pd330 ))))((*  (W4Pt) (( (ptr) &var←c58648)+4)/* bounds←v9512 */  ), (*  (W4Pt) (( (ptr) &var←c58648)+16)
                     /* paBox←v15688 */  ), pd330))) {
SOURCE(21263, 22)
                     {
                        word pd331;
                        pd331 = (* (( (ptr) &var←c58648)+8)/* boxes←v9540 */  );
                        (void) ( *( (fPt) ((*  (ptr) pd331 ))))((word) ((( (bPt) &var←c58648)+44)/* var←c55928 */ ), pd331);
                        };
                     }
                  else {
SOURCE(21285, 377)
                     {
                        word bpp←v15820;
                        word tile←v15848;
SOURCE(21287, 73)
                        {
                           word pd332;
                           word idx333;
                           pd332 = (* (( (ptr) (* (( (ptr) gf←c58680)+120)/* var←c54360 */  ))+7) );
                           bpp←v15820 =  (unsigned) (word) (* ((( (bPt) gf←c58680)+368)/* var←c52472 */ +(
/*1*/      idx333 = (word) ((word) ( *( (fPt) ((*  (ptr) pd332 ))))((* (( (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ))+17)
/*1*/          ), 0, pd332) + 1),
/*1*/      BCK(idx333, 33)
/*1*/      )) );
                           };
SOURCE(21362, 79)
                        {
                           word pd334;
                           pd334 = (* (( (ptr) (* (( (ptr) gf←c58680)+115)/* var←c53624 */  ))+22) );
                           tile←v15848 = (word) ( *( (fPt) ((*  (ptr) pd334 ))))((*  (W4Pt) (( (ptr) &var←c58648)+16)/* paBox←v15688 */  ), BCK(bpp←v15820, 33)
/*1*/   , 0, pd334);
                           };
SOURCE(21443, 98)
                        {
                           W2 var←c56024;
                           {
/*1*/   word pd335;
/*1*/   pd335 = (* (( (ptr) (* (( (ptr) gf←c58680)+121)/* var←c54968 */  ))+19) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd335 ))))((word) &var←c56024, (*  (W4Pt) (( (ptr) &var←c58648)+16)/* paBox←v15688 */  ), pd335)
/*1*/   ;
/*1*/   };
                           {
/*1*/   word pd336;
/*1*/   pd336 = (* (( (ptr) (* (( (ptr) gf←c58680)+120)/* var←c54360 */  ))+11) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd336 ))))((* (( (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ))+17) ), 0, 0, 0, tile←v15848, (*  (W2Pt) (
/*1*/         ( (ptr) &var←c58648)+16) )
/*1*/      , var←c56024, 0, pd336);
/*1*/   };
                           };
SOURCE(21543, 79)
                        {
                           word pd337;
                           pd337 = (* (( (ptr) (* (( (ptr) gf←c58680)+115)/* var←c53624 */  ))+56) );
                           (void) ( *( (fPt) ((*  (ptr) pd337 ))))((*  (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ) ), (* (( (ptr) &var←c58648)+8)
/*1*/   /* boxes←v9540 */  ), tile←v15848, 0, 0, pd337);
                           };
SOURCE(21624, 36)
                        {
                           word pd338;
                           pd338 = (* (( (ptr) (* (( (ptr) gf←c58680)+115)/* var←c53624 */  ))+23) );
                           (void) ( *( (fPt) ((*  (ptr) pd338 ))))(tile←v15848, pd338);
                           };
                        };
                     };
                  };
               };
            break;
         case 5: case 6: 
SOURCE(21703, 1181)
SOURCE(22752, 130)
            {
               word pd339;
               pd339 = (* (( (ptr) (* (( (ptr) gf←c58680)+117)/* var←c53944 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd339 ))))((* (( (ptr) (* (( (ptr) &var←c58648)+15)/* data←v15452 */  ))+20) ), (* (( (ptr) (* (
                        ( (ptr) &var←c58648)+15)/* data←v15452 */  ))+19) ), 0, (* (( (ptr) &var←c58648)+8)/* boxes←v9540 */  ), (*  (W4Pt) (( (ptr) &var←c58648)+4)
                  /* bounds←v9512 */  ), (word) (( (bPt) &var←c58648)+36)/* var←c55896 */ , pd339);
               };
            break;
         default: 
SOURCE(22898, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
   }

static void Src←P3192(action←v15572, formal←c58744)
   word action←v15572;
   word formal←c58744;
   {
   register ptr gf←c58712 =  (ptr) &globalframe;
   formal←c58744 = (formal←c58744 - 52);
   /* Src: */ 
SOURCE(20562, 11)
SOURCE(20637, 136)
   {
      word pd340;
      pd340 = (* (( (ptr) (* (( (ptr) gf←c58712)+117)/* var←c53944 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd340 ))))((* (( (ptr) (* (( (ptr) formal←c58744)+15) ))+20) ), (* (( (ptr) (* (( (ptr) formal←c58744)+15)
             ))+19) ), (* (( (ptr) (* (( (ptr) formal←c58744)+15) ))+12) ), (* (( (ptr) formal←c58744)+8) ), (*  (W4Pt) (( (ptr) formal←c58744)+4)
          ), action←v15572, pd340);
      };
   }

static void BoxAction←P3300(box←v15792, formal←c58808)
   W4 box←v15792;
   word formal←c58808;
   {
   register ptr gf←c58776 =  (ptr) &globalframe;
   formal←c58808 = (formal←c58808 - 44);
   /* BoxAction: */ 
SOURCE(21032, 17)
SOURCE(21063, 162)
   {
      W2 var←c56056;
      {
         word pd341;
         pd341 = (* (( (ptr) (* (( (ptr) gf←c58776)+121)/* var←c54968 */  ))+19) );
         (void) ( *( (fPt) ((*  (ptr) pd341 ))))((word) &var←c56056, box←v15792, pd341);
         };
      {
         word pd342;
         pd342 = (* (( (ptr) (* (( (ptr) gf←c58776)+120)/* var←c54360 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd342 ))))((* (( (ptr) (* (( (ptr) formal←c58808)+15) ))+17) ), 0, (box←v15792.f0 - (* (( (ptr) formal←c58808)+16)
             )), (box←v15792.f1 - (* (( (ptr) formal←c58808)+17) )), (*  (ptr) (* (( (ptr) formal←c58808)+15) ) ), (*  (W2Pt) &box←v15792 )
            , var←c56056, 0, pd342);
         };
      };
   }

static void BlackAction←P3456(pixels←v15968, min←v15996, formal←c58872)
   word pixels←v15968;
   W2 min←v15996;
   word formal←c58872;
   {
   register ptr gf←c58840 =  (ptr) &globalframe;
   word count←v16024;
   word buffer←v16052;
   word bufferPointer←v16080;
   formal←c58872 = (formal←c58872 - 36);
   /* BlackAction: */ 
SOURCE(21705, 19)
SOURCE(21782, 26)
   count←v16024 = (*  (ptr) pixels←v15968 );
SOURCE(21810, 32)
   {
      word limit343;
      buffer←v16052 = (* ((( (ptr) pixels←v15968)+2)+(
            limit343 = (* (( (ptr) pixels←v15968)+1) ),
            BCK(0, limit343)
            )) );
      };
SOURCE(21844, 121)
   {
      word pd344;
      word limit345;
      pd344 = (* (( (ptr) (* (( (ptr) gf←c58840)+115)/* var←c53624 */  ))+9) );
      bufferPointer←v16080 = (word) ( *( (fPt) ((*  (ptr) pd344 ))))((* ((( (ptr) pixels←v15968)+2)+(
               limit345 = (* (( (ptr) pixels←v15968)+1) ),
               BCK(0, limit345)
               )) ), 0, count←v16024, pd344);
      };
SOURCE(21967, 759)
   {
      word var←c56088;
      var←c56088 = (* (( (ptr) (* (( (ptr) formal←c58872)+15) ))+13) );
      if ((var←c56088 == 5)) {
SOURCE(22005, 241)
SOURCE(22041, 92)
         {
            register word i←v16208 = 0;
            if ((i←v16208 >= count←v16024)) {
               goto lab←L100042;
               };
            lab←L100045: ;
SOURCE(22069, 64)
            if (((* (( (ptr) bufferPointer←v16080)+i←v16208) ) == 0)) {
               (* (( (ptr) bufferPointer←v16080)+i←v16208) ) = 0;
               }
            else {
               (* (( (ptr) bufferPointer←v16080)+i←v16208) ) = 2;
               };
            i←v16208 = (i←v16208 + 1);
            if ((i←v16208 < count←v16024)) {
               goto lab←L100045;
               };
            lab←L100042: ;
            };
SOURCE(22144, 100)
         {
            W2 var←c56120;
            var←c56120.f0 = 0;
            var←c56120.f1 = 1;
            {
               word pd346;
               pd346 = (* (( (ptr) (* (( (ptr) gf←c58840)+115)/* var←c53624 */  ))+47) );
               (void) ( *( (fPt) ((*  (ptr) pd346 ))))((*  (ptr) (* (( (ptr) formal←c58872)+15) ) ), min←v15996, var←c56120, buffer←v16052, 0, count←v16024
                  , 0, pd346);
               };
            };
         }
      else {
         if ((var←c56088 == 6)) {
SOURCE(22270, 458)
SOURCE(22289, 77)
            {
               register word i←v16296 = 0;
               if ((i←v16296 >= count←v16024)) {
                  goto lab←L100046;
                  };
               lab←L100049: ;
SOURCE(22317, 49)
               (* (( (ptr) bufferPointer←v16080)+i←v16296) ) = (0 - (* (( (ptr) bufferPointer←v16080)+i←v16296) ));
               i←v16296 = (i←v16296 + 1);
               if ((i←v16296 < count←v16024)) {
                  goto lab←L100049;
                  };
               lab←L100046: ;
               };
SOURCE(22377, 129)
            {
               W2 var←c56152;
               var←c56152.f0 = 0;
               var←c56152.f1 = 1;
               {
                  word pd347;
                  pd347 = (* (( (ptr) (* (( (ptr) gf←c58840)+115)/* var←c53624 */  ))+47) );
                  (void) ( *( (fPt) ((*  (ptr) pd347 ))))((*  (ptr) (* (( (ptr) formal←c58872)+15) ) ), min←v15996, var←c56152, buffer←v16052, 0, count←v16024
                     , 3, pd347);
                  };
               };
SOURCE(22508, 85)
            {
               register word i←v16340 = 0;
               if ((i←v16340 >= count←v16024)) {
                  goto lab←L100050;
                  };
               lab←L100053: ;
SOURCE(22536, 57)
               {
                  word var←c56184;
                  var←c56184 = (word) XRM←BITAND((* (( (ptr) bufferPointer←v16080)+i←v16340) ), 2);
                  (* (( (ptr) bufferPointer←v16080)+i←v16340) ) = var←c56184;
                  };
               i←v16340 = (i←v16340 + 1);
               if ((i←v16340 < count←v16024)) {
                  goto lab←L100053;
                  };
               lab←L100050: ;
               };
SOURCE(22604, 122)
            {
               W2 var←c56216;
               var←c56216.f0 = 0;
               var←c56216.f1 = 1;
               {
                  word pd348;
                  pd348 = (* (( (ptr) (* (( (ptr) gf←c58840)+115)/* var←c53624 */  ))+47) );
                  (void) ( *( (fPt) ((*  (ptr) pd348 ))))((*  (ptr) (* (( (ptr) formal←c58872)+15) ) ), min←v15996, var←c56216, buffer←v16052, 0, count←v16024
                     , 4, pd348);
                  };
               };
            }
         else {
SOURCE(22742, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   }

static void HiliteMaskBitmap←P1380(device←v9600, bitmap←v9628, delta←v9656, bounds←v9684, boxes←v9712)
   word device←v9600;
   word bitmap←v9628;
   W2 delta←v9656;
   W4 bounds←v9684;
   word boxes←v9712;
   {
   W21 var←c58904;
   register ptr gf←c58936 =  (ptr) &globalframe;
   /* declaration of var←c56248 skipped */ 
   /* declaration of data←v16384 skipped */ 
   /* HiliteMaskBitmap: */ 
SOURCE(22909, 1652)
   {
      word tmpAddr349;
      tmpAddr349 = (word) (( (ptr) &var←c58904)+4)/* var←c56248 */ ;
      (*  (ptr) tmpAddr349 ) = ( ((word)  (fPt) FastTransfer←P3996) );
      (* (( (ptr) tmpAddr349) + 1) ) = 1;
      };
SOURCE(23032, 32)
   (* (( (ptr) &var←c58904)+6)/* data←v16384 */  ) = XR←Narrow((* (( (ptr) device←v9600)+7) ), (* (( (ptr) gf←c58936)+26) ))
   ;
SOURCE(23066, 1396)
   {
      word var←c56280;
      var←c56280 = bitmap←v9628;
      if ((var←c56280 == 0)) {
         goto lab←L100054;
         };
      if (((* (( (ptr) var←c56280)+6) ) == 0)) {
         {
            /* declaration of srcRast←v16428 skipped */ 
            (* (( (ptr) &var←c58904)+7)/* srcRast←v16428 */  ) = var←c56280;
SOURCE(23118, 1364)
            {
               /* declaration of srcBitsPerLine←v16472 skipped */ 
               word var←c56312;
               word map←v51368;
SOURCE(23120, 44)
               {
                  word idx350;
                  (* (( (ptr) &var←c58904)+8)/* srcBitsPerLine←v16472 */  ) = (
                     idx350 = (* (( (ptr) (* (( (ptr) &var←c58904)+7)/* srcRast←v16428 */  ))+7) ),
                     SGNCK(idx350)
                     );
                  };
SOURCE(23166, 1296)
               {
                  word tc351;
                  map←v51368 = (* (( (ptr) &var←c58904)+7)/* srcRast←v16428 */  );
                  var←c56312 = (* (( (ptr) map←v51368)+5) );
                  if ((var←c56312 == 1)) {
                     tc351 =  (word) (((* (( (ptr) &var←c58904)+8)/* srcBitsPerLine←v16472 */  ) & 037) == 0);
                     }
                  else {
                     tc351 =  (word) 0;
                     };
                  if (tc351) {
SOURCE(23243, 1219)
                     {
                        word var←c56344;
                        var←c56344 = (*  (ptr) (* (( (ptr) &var←c58904)+6)/* data←v16384 */  ) );
                        if ((var←c56344 == 0)) {
                           goto lab←L100056;
                           };
                        if (((* (( (ptr) var←c56344)+6) ) == 0)) {
                           {
/*1*/   /* declaration of dstRast←v16516 skipped */ 
/*1*/   (* (( (ptr) &var←c58904)+9)/* dstRast←v16516 */  ) = var←c56344;
SOURCE(23303, 1164)
/*1*/   {
/*1*/      /* declaration of dstBitsPerLine←v16560 skipped */ 
/*1*/      word dstBitsPerSample←v16588;
SOURCE(23305, 44)
/*1*/      {
/*1*/         word idx352;
/*1*/         (* (( (ptr) &var←c58904)+10)/* dstBitsPerLine←v16560 */  ) = (
/*1*/            idx352 = (* (( (ptr) (* (( (ptr) &var←c58904)+9)/* dstRast←v16516 */  ))+7) ),
/*1*/            SGNCK(idx352)
/*1*/            );
/*1*/         };
SOURCE(23351, 51)
/*1*/      {
/*1*/         word var←c56376;
/*1*/         word map←v51320;
/*1*/         map←v51320 = (* (( (ptr) &var←c58904)+9)/* dstRast←v16516 */  );
/*1*/         var←c56376 = (* (( (ptr) map←v51320)+5) );
/*1*/         dstBitsPerSample←v16588 = BCK((var←c56376 - 2), 1);
/*1*/         };
SOURCE(23431, 1031)
/*1*/      if ((((* (( (ptr) &var←c58904)+10)/* dstBitsPerLine←v16560 */  ) & 037) == 0)) {
SOURCE(23473, 991)
/*1*/         {
/*1*/            /* declaration of dstBox←v16680 skipped */ 
/*1*/            /* declaration of srcBox←v16708 skipped */ 
/*1*/            /* declaration of dstWpl←v16736 skipped */ 
/*1*/            /* declaration of maskWpl←v16764 skipped */ 
/*1*/            word var←c56504;
/*1*/            word map←v51272;
SOURCE(23475, 28)
/*1*/            {
/*1*/               word map←v51080;
/*1*/               map←v51080 = (* (( (ptr) &var←c58904)+9)/* dstRast←v16516 */  );
/*1*/               (*  (W4Pt) (( (ptr) &var←c58904)+11)/* dstBox←v16680 */  ) = (*  (W4Pt) map←v51080 );
/*1*/               };
SOURCE(23505, 48)
/*1*/            {
/*1*/               W4 var←c56440;
/*1*/               {
/*1*/                  W4 var←c56472;
/*1*/                  word map←v51032;
/*1*/                  map←v51032 = (* (( (ptr) &var←c58904)+7)/* srcRast←v16428 */  );
/*1*/                  var←c56472 = (*  (W4Pt) map←v51032 );
/*1*/                  var←c56440 = var←c56472;
/*1*/                  };
/*1*/               {
/*1*/                  W4 var←c0413;
/*1*/                  {
/*1*/                     word pd353;
/*1*/                     pd353 = (* (( (ptr) (* (( (ptr) gf←c58936)+121)/* var←c54968 */  ))+20) );
/*1*/                     (void) ( *( (fPt) ((*  (ptr) pd353 ))))((word) &var←c0413, var←c56440, delta←v9656, pd353);
/*1*/                     };
/*1*/                  (*  (W4Pt) (( (ptr) &var←c58904)+15)/* srcBox←v16708 */  ) = var←c0413;
/*1*/                  };
/*1*/               };
SOURCE(23555, 46)
/*1*/            (* (( (ptr) &var←c58904)+19)/* dstWpl←v16736 */  ) = ((* (( (ptr) &var←c58904)+10)/* dstBitsPerLine←v16560 */  ) >> 5);
SOURCE(23603, 47)
/*1*/            (* (( (ptr) &var←c58904)+20)/* maskWpl←v16764 */  ) = ((* (( (ptr) &var←c58904)+8)/* srcBitsPerLine←v16472 */  ) >> 5);
SOURCE(24362, 37)
/*1*/            map←v51272 = (* (( (ptr) &var←c58904)+9)/* dstRast←v16516 */  );
/*1*/            var←c56504 = (* (( (ptr) map←v51272)+5) );
/*1*/            if ((var←c56504 != 2)) {
SOURCE(24399, 5)
/*1*/               (void) XR←RaiseUnnamedError();
/*1*/               };
SOURCE(24435, 19)
/*1*/            (void) ( *( (fPt) ((*  (ptr) boxes←v9712 ))))((word) ((( (bPt) &var←c58904)+16)/* var←c56248 */ ), boxes←v9712);
SOURCE(24456, 6)
/*1*/            return;
/*1*/            };
/*1*/         };
/*1*/      };
/*1*/   };
                           }
                        else {
                           lab←L100056: ;
                           };
                        };
                     };
                  };
               };
            };
         }
      else {
         lab←L100054: ;
         };
      };
SOURCE(24494, 67)
   {
      word pd354;
      pd354 = (* (( (ptr) (* (( (ptr) gf←c58936)+122)/* var←c56536 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd354 ))))(device←v9600, bitmap←v9628, delta←v9656, bounds←v9684, boxes←v9712, pd354);
      };
   }

static void FastTransfer←P3996(box←v48076, formal←c58968)
   W4 box←v48076;
   word formal←c58968;
   {
   word sSize←v16836;
   word fSize←v16864;
   formal←c58968 = (formal←c58968 - 16);
   /* FastTransfer: */ 
SOURCE(23652, 37)
SOURCE(23691, 36)
   sSize←v16836 = (box←v48076.f2 - box←v48076.f0);
SOURCE(23729, 36)
   fSize←v16864 = (box←v48076.f3 - box←v48076.f1);
SOURCE(23767, 589)
   if ( ( ( (int)sSize←v16836 >  (int)0) ? ( (int)fSize←v16864 >  (int)0) : 0 ) ) {
SOURCE(23799, 557)
      {
         word dstBitIndex←v16908;
         word srcBitIndex←v16936;
SOURCE(23801, 153)
         dstBitIndex←v16908 = (((* (( (ptr) (* (( (ptr) formal←c58968)+9) ))+9) ) + ((box←v48076.f0 - (* (( (ptr) formal←c58968)+11)
          )) * (* (( (ptr) formal←c58968)+10) ))) + (word) XRM←BITLSHIFT((box←v48076.f1 - (* (( (ptr) formal←c58968)+12) )), 1));
SOURCE(23956, 119)
         srcBitIndex←v16936 = (((* (( (ptr) (* (( (ptr) formal←c58968)+7) ))+9) ) + ((box←v48076.f0 - (* (( (ptr) formal←c58968)+15)
          )) * (* (( (ptr) formal←c58968)+8) ))) + (box←v48076.f1 - (* (( (ptr) formal←c58968)+16) )));
SOURCE(24077, 279)
         {
            word var←c56568;
            var←c56568 = (word) XRM←BITRSHIFT(dstBitIndex←v16908, 1);
            (void) StoreWithColorMask2←P1560((* (( (ptr) (* (( (ptr) formal←c58968)+7) ))+8) ), srcBitIndex←v16936, (* (( (ptr) formal←c58968)+20)
                ), (* (( (ptr) (* (( (ptr) formal←c58968)+9) ))+8) ), var←c56568, (* (( (ptr) formal←c58968)+19) )
               , SGNCK(sSize←v16836), SGNCK(fSize←v16864), (* (( (ptr) (* (( (ptr) formal←c58968)+6) ))+15) ));
            };
         };
      };
   }

static void HiliteMaskRawBitmaps←P1440(device←v9772, list←v9800)
   word device←v9772;
   word list←v9800;
   {
   register ptr gf←c59000 =  (ptr) &globalframe;
   word data←v16980;
   word rast←v17008;
   word dstPtr←v17036;
   word dstOff←v17064;
   word dstBitsPerLine←v17092;
   word dstWpl←v17120;
   word dstBitsPerSample←v17148;
   word colorWord←v17204;
   /* HiliteMaskRawBitmaps: */ 
SOURCE(24567, 1153)
SOURCE(24676, 32)
   data←v16980 = XR←Narrow((* (( (ptr) device←v9772)+7) ), (* (( (ptr) gf←c59000)+26) ));
SOURCE(24710, 46)
   rast←v17008 = (*  (ptr) data←v16980 );
   if ((rast←v17008 == 0)) {
      goto lab←L100061;
      };
   if (((* (( (ptr) rast←v17008)+6) ) == 0)) {
      goto lab←L100061;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100061: ;
SOURCE(24758, 58)
   dstPtr←v17036 = (* (( (ptr) rast←v17008)+8) );
SOURCE(24818, 30)
   dstOff←v17064 = (* (( (ptr) rast←v17008)+9) );
SOURCE(24850, 41)
   {
      word idx355;
      dstBitsPerLine←v17092 = (
         idx355 = (* (( (ptr) rast←v17008)+7) ),
         SGNCK(idx355)
         );
      };
SOURCE(24893, 46)
   dstWpl←v17120 = ((word) dstBitsPerLine←v17092 >> 5);
SOURCE(24941, 48)
   {
      word var←c56632;
      word map←v51224;
      map←v51224 = rast←v17008;
      var←c56632 = (* (( (ptr) map←v51224)+5) );
      dstBitsPerSample←v17148 = BCK((var←c56632 - 2), 1);
      };
SOURCE(25018, 32)
   colorWord←v17204 = (* (( (ptr) data←v16980)+15) );
SOURCE(25052, 668)
   lab←L100065: ;
   if ((list←v9800 != 0)) {
      }
   else {
      goto lab←L100063;
      };
   {
      word r←v17280;
      word sSize←v17308;
      word fSize←v17336;
SOURCE(25072, 56)
      r←v17280 = list←v9800;
SOURCE(25130, 58)
      sSize←v17308 = ((* (( (ptr) list←v9800)+2) ) - (*  (ptr) list←v9800 ));
SOURCE(25190, 58)
      fSize←v17336 = ((* (( (ptr) list←v9800)+3) ) - (* (( (ptr) list←v9800)+1) ));
SOURCE(25250, 451)
      if ( ( ( (int)sSize←v17308 >  (int)0) ? ( (int)fSize←v17336 >  (int)0) : 0 ) ) {
SOURCE(25282, 419)
         {
            word dstBitIndex←v17392;
SOURCE(25284, 153)
            {
               W4 var←c56664;
               word map←v50984;
               word var←c0566;
               word var←c0567;
               word var←c0568;
               word var←c0569;
               word var←c56696;
               map←v50984 = rast←v17008;
               var←c56664 = (*  (W4Pt) map←v50984 );
               var←c0566 = var←c56664.f0;
               var←c0567 = ((*  (ptr) r←v17280 ) - var←c0566);
               var←c0568 = (var←c0567 * dstBitsPerLine←v17092);
               var←c0569 = (dstOff←v17064 + var←c0568);
               {
                  W4 var←c56728;
                  word map←v50936;
                  word var←c0570;
                  map←v50936 = rast←v17008;
                  var←c56728 = (*  (W4Pt) map←v50936 );
                  var←c0570 = var←c56728.f1;
                  var←c56696 = ((* (( (ptr) r←v17280)+1) ) - var←c0570);
                  };
               dstBitIndex←v17392 = (var←c0569 + (word) XRM←BITLSHIFT(var←c56696, 1));
               };
SOURCE(25439, 262)
            {
               word var←c56760;
               var←c56760 = (word) XRM←BITRSHIFT(dstBitIndex←v17392, 1);
               (void) StoreWithColorMask2←P1560((* (( (ptr) r←v17280)+5) ), 0, ((* (( (ptr) r←v17280)+4) ) >> 5), dstPtr←v17036, var←c56760, dstWpl←v17120
                  , SGNCK(sSize←v17308), SGNCK(fSize←v17336), colorWord←v17204);
               };
            };
         };
SOURCE(25704, 16)
      list←v9800 = (* (( (ptr) list←v9800)+7) );
      };
   goto lab←L100065;
   lab←L100063: ;
   }

static word MakeExpandArray2←P1500()
   {
   register ptr gf←c59032 =  (ptr) &globalframe;
   word var←c9972;
   word new←v17436;
   /* MakeExpandArray2: */ 
SOURCE(25839, 302)
SOURCE(25893, 50)
   new←v17436 = XR←NewObject(512, (* (( (ptr) gf←c59032)+13) ));
SOURCE(25945, 173)
   {
      register word b←v17492 = 0;
      lab←L100071: ;
      {
         word elem←v17536 = 3;
         word word←v17564 = 0;
         word x←v17592;
SOURCE(26000, 11)
         x←v17592 = b←v17492;
SOURCE(26013, 81)
         lab←L100074: ;
         if ((x←v17592 != 0)) {
            }
         else {
            goto lab←L100072;
            };
SOURCE(26028, 38)
         if (((x←v17592 & 1) == 1)) {
SOURCE(26048, 18)
            word←v17564 = (word←v17564 + elem←v17536);
            };
SOURCE(26068, 15)
         elem←v17536 = ((word) elem←v17536 << 2);
SOURCE(26085, 9)
         x←v17592 = ((word) x←v17592 >> 1);
         goto lab←L100074;
         lab←L100072: ;
SOURCE(26105, 13)
         (* (( (hPt) new←v17436)+b←v17492) ) = BCK(word←v17564, 65536);
         };
      if ((b←v17492 >= 255)) {
         goto lab←L100068;
         };
      b←v17492 = (b←v17492 + 1);
      goto lab←L100071;
      lab←L100068: ;
      };
SOURCE(26129, 12)
   return(new←v17436);
   }

static void StoreWithColorMask2←P1560(maskBase←v10044, maskOffset←v10072, maskWpl←v10100, dstBase←v10128, dstOffset←v10156, dstWpl←v10184, height←v10212, width←v10240, colorWord←v10268)
   word maskBase←v10044;
   word maskOffset←v10072;
   word maskWpl←v10100;
   word dstBase←v10128;
   word dstOffset←v10156;
   word dstWpl←v10184;
   word height←v10212;
   word width←v10240;
   word colorWord←v10268;
   {
   register ptr gf←c59064 =  (ptr) &globalframe;
   /* StoreWithColorMask2: */ 
SOURCE(26147, 3827)
SOURCE(26678, 3310)
   {
      word expand←v17636;
      word dstMod←v17664;
      word maskMod←v17692;
      word tailMask←v17720;
SOURCE(26680, 39)
      expand←v17636 = (* (( (ptr) gf←c59064)+9)/* expandArray2←v5268 */  );
SOURCE(26721, 53)
      dstOffset←v10156 = ((word) dstOffset←v10156 << 1);
      dstMod←v17664 = (dstOffset←v10156 & 037);
SOURCE(26776, 39)
      maskMod←v17692 = (maskOffset←v10072 & 037);
SOURCE(26817, 74)
      {
         word var←c56824;
         var←c56824 = (word) XRM←BITRSHIFT( (word) -1, (width←v10240 & 037));
         tailMask←v17720 = (word) XRM←BITNOT(var←c56824);
         };
SOURCE(26893, 48)
      dstBase←v10128 = (dstBase←v10128 + ((word) ((word) dstOffset←v10156 >> 5) << 2));
SOURCE(26944, 51)
      maskBase←v10044 = (maskBase←v10044 + ((word) ((word) maskOffset←v10072 >> 5) << 2));
SOURCE(26997, 41)
      if ((tailMask←v17720 == 0)) {
SOURCE(27018, 20)
         tailMask←v17720 =  (word) -1;
         };
SOURCE(27040, 2934)
      if ( ( (width←v10240 <= 32) ? (maskMod←v17692 == 0) : 0 ) ) {
SOURCE(27079, 1172)
         lab←L100077: ;
SOURCE(27079, 1172)
         {
            word maskW←v17776;
SOURCE(27082, 50)
            maskW←v17776 = (word) XRM←BITAND(tailMask←v17720, (*  (ptr) maskBase←v10044 ));
SOURCE(27134, 987)
            if ((maskW←v17776 != 0)) {
SOURCE(27152, 971)
               {
                  word b0←v17820;
                  word b1←v17848;
                  word b2←v17876;
                  word b3←v17904;
                  word dstMask0←v17932;
                  word dstMask1←v17960;
                  word dstMask2←v17988 = 0;
SOURCE(27154, 46)
                  b0←v17820 = ((word) XRM←BITRSHIFT(maskW←v17776, 24) & 0377);
SOURCE(27202, 46)
                  b1←v17848 = ((word) XRM←BITRSHIFT(maskW←v17776, 16) & 0377);
SOURCE(27250, 45)
                  b2←v17876 = ((word) XRM←BITRSHIFT(maskW←v17776, 8) & 0377);
SOURCE(27297, 24)
                  b3←v17904 = (maskW←v17776 & 0377);
SOURCE(27323, 62)
                  dstMask0←v17932 = ((word) XRM←BITLSHIFT( (unsigned) (word) (* (( (hPt) expand←v17636)+b0←v17820) ), 16) +  (unsigned) (word) (* (
                     ( (hPt) expand←v17636)+b1←v17848) ));
SOURCE(27387, 62)
                  dstMask1←v17960 = ((word) XRM←BITLSHIFT( (unsigned) (word) (* (( (hPt) expand←v17636)+b2←v17876) ), 16) +  (unsigned) (word) (* (
                     ( (hPt) expand←v17636)+b3←v17904) ));
SOURCE(27471, 236)
                  if ((dstMod←v17664 != 0)) {
SOURCE(27490, 219)
                     {
                        word dmc←v18032;
SOURCE(27492, 43)
                        dmc←v18032 = ((32 - dstMod←v17664) & 037);
SOURCE(27537, 42)
                        dstMask2←v17988 = (word) XRM←BITLSHIFT(dstMask1←v17960, dmc←v18032);
SOURCE(27581, 79)
                        dstMask1←v17960 = ((word) XRM←BITLSHIFT(dstMask0←v17932, dmc←v18032) + (word) XRM←BITRSHIFT(dstMask1←v17960, dstMod←v17664)
                        );
SOURCE(27662, 45)
                        dstMask0←v17932 = (word) XRM←BITRSHIFT(dstMask0←v17932, dstMod←v17664);
                        };
                     };
SOURCE(27712, 135)
                  if ((dstMask0←v17932 != 0)) {
SOURCE(27733, 114)
                     {
                        word var←c56856;
                        {
                           word var←c56888;
                           word var←c56952;
                           {
/*1*/   word var←c56920;
/*1*/   var←c56920 = (word) XRM←BITNOT(dstMask0←v17932);
/*1*/   var←c56888 = (word) XRM←BITAND(var←c56920, (*  (ptr) dstBase←v10128 ));
/*1*/   };
                           var←c56952 = (word) XRM←BITAND(dstMask0←v17932, colorWord←v10268);
                           var←c56856 = (word) XRM←BITOR(var←c56888, var←c56952);
                           };
                        (*  (ptr) dstBase←v10128 ) = var←c56856;
                        };
                     };
SOURCE(27849, 135)
                  if ((dstMask1←v17960 != 0)) {
SOURCE(27870, 114)
                     {
                        word var←c56984;
                        {
                           word var←c57016;
                           word var←c57080;
                           {
/*1*/   word var←c57048;
/*1*/   var←c57048 = (word) XRM←BITNOT(dstMask1←v17960);
/*1*/   var←c57016 = (word) XRM←BITAND(var←c57048, (* (( (ptr) dstBase←v10128)+1) ));
/*1*/   };
                           var←c57080 = (word) XRM←BITAND(dstMask1←v17960, colorWord←v10268);
                           var←c56984 = (word) XRM←BITOR(var←c57016, var←c57080);
                           };
                        (* (( (ptr) dstBase←v10128)+1) ) = var←c56984;
                        };
                     };
SOURCE(27986, 135)
                  if ((dstMask2←v17988 != 0)) {
SOURCE(28007, 114)
                     {
                        word var←c57112;
                        {
                           word var←c57144;
                           word var←c57208;
                           {
/*1*/   word var←c57176;
/*1*/   var←c57176 = (word) XRM←BITNOT(dstMask2←v17988);
/*1*/   var←c57144 = (word) XRM←BITAND(var←c57176, (* (( (ptr) dstBase←v10128)+2) ));
/*1*/   };
                           var←c57208 = (word) XRM←BITAND(dstMask2←v17988, colorWord←v10268);
                           var←c57112 = (word) XRM←BITOR(var←c57144, var←c57208);
                           };
                        (* (( (ptr) dstBase←v10128)+2) ) = var←c57112;
                        };
                     };
                  };
               };
SOURCE(28126, 19)
            if ((height←v10212 == 1)) {
SOURCE(28145, 4)
               goto lab←L100076;
               };
SOURCE(28151, 40)
            maskBase←v10044 = (maskBase←v10044 + ((word) maskWpl←v10100 << 2));
SOURCE(28193, 37)
            dstBase←v10128 = (dstBase←v10128 + ((word) dstWpl←v10184 << 2));
SOURCE(28232, 19)
            height←v10212 = (height←v10212 - 1);
            };
         goto lab←L100077;
         lab←L100076: ;
         }
      else {
SOURCE(28269, 1716)
         {
            word maskMask←v18076;
            word maskModC←v18104;
SOURCE(28271, 74)
            {
               word var←c57240;
               var←c57240 = (word) XRM←BITRSHIFT( (word) -1, (width←v10240 & 037));
               maskMask←v18076 = (word) XRM←BITNOT(var←c57240);
               };
SOURCE(28347, 47)
            maskModC←v18104 = ((32 - maskMod←v17692) & 037);
SOURCE(28396, 1578)
            lab←L100080: ;
SOURCE(28396, 1578)
            {
               word dstPtr←v18148;
               word maskPtr←v18176;
               word rem←v18204;
SOURCE(28399, 29)
               dstPtr←v18148 = dstBase←v10128;
SOURCE(28430, 31)
               maskPtr←v18176 = maskBase←v10044;
SOURCE(28463, 21)
               rem←v18204 = width←v10240;
SOURCE(28486, 1352)
               lab←L100083: ;
SOURCE(28486, 1352)
               {
                  word maskW←v18248;
SOURCE(28489, 24)
                  maskW←v18248 = (*  (ptr) maskPtr←v18176 );
SOURCE(28544, 141)
                  if ((maskMod←v17692 != 0)) {
SOURCE(28566, 40)
                     maskW←v18248 = (word) XRM←BITLSHIFT(maskW←v18248, maskMod←v17692);
SOURCE(28608, 77)
                     if ((rem←v18204 > maskModC←v18104)) {
SOURCE(28631, 54)
                        maskW←v18248 = (maskW←v18248 + (word) XRM←BITRSHIFT((* (( (ptr) maskPtr←v18176)+1) ), maskModC←v18104));
                        };
                     };
SOURCE(28690, 56)
                  if ((rem←v18204 < 32)) {
SOURCE(28708, 38)
                     maskW←v18248 = (word) XRM←BITAND(maskW←v18248, tailMask←v17720);
                     };
SOURCE(28748, 981)
                  if ((maskW←v18248 != 0)) {
SOURCE(28766, 965)
                     {
                        word b0←v18292;
                        word b1←v18320;
                        word b2←v18348;
                        word b3←v18376;
                        word dstMask0←v18404;
                        word dstMask1←v18432;
                        word dstMask2←v18460 = 0;
SOURCE(28768, 46)
                        b0←v18292 = ((word) XRM←BITRSHIFT(maskW←v18248, 24) & 0377);
SOURCE(28816, 46)
                        b1←v18320 = ((word) XRM←BITRSHIFT(maskW←v18248, 16) & 0377);
SOURCE(28864, 45)
                        b2←v18348 = ((word) XRM←BITRSHIFT(maskW←v18248, 8) & 0377);
SOURCE(28911, 24)
                        b3←v18376 = (maskW←v18248 & 0377);
SOURCE(28937, 62)
                        dstMask0←v18404 = ((word) XRM←BITLSHIFT( (unsigned) (word) (* (( (hPt) expand←v17636)+b0←v18292) ), 16) +  (unsigned) (word) (* (
                           ( (hPt) expand←v17636)+b1←v18320) ));
SOURCE(29001, 62)
                        dstMask1←v18432 = ((word) XRM←BITLSHIFT( (unsigned) (word) (* (( (hPt) expand←v17636)+b2←v18348) ), 16) +  (unsigned) (word) (* (
                           ( (hPt) expand←v17636)+b3←v18376) ));
SOURCE(29085, 236)
                        if ((dstMod←v17664 != 0)) {
SOURCE(29104, 219)
                           {
/*1*/   word dmc←v18504;
SOURCE(29106, 43)
/*1*/   dmc←v18504 = ((32 - dstMod←v17664) & 037);
SOURCE(29151, 42)
/*1*/   dstMask2←v18460 = (word) XRM←BITLSHIFT(dstMask1←v18432, dmc←v18504);
SOURCE(29195, 79)
/*1*/   dstMask1←v18432 = ((word) XRM←BITLSHIFT(dstMask0←v18404, dmc←v18504) + (word) XRM←BITRSHIFT(dstMask1←v18432, dstMod←v17664)
/*1*/   );
SOURCE(29276, 45)
/*1*/   dstMask0←v18404 = (word) XRM←BITRSHIFT(dstMask0←v18404, dstMod←v17664);
/*1*/   };
                           };
SOURCE(29326, 133)
                        if ((dstMask0←v18404 != 0)) {
SOURCE(29347, 112)
                           {
/*1*/   word var←c57272;
/*1*/   {
/*1*/      word var←c57304;
/*1*/      word var←c57368;
/*1*/      {
/*1*/         word var←c57336;
/*1*/         var←c57336 = (word) XRM←BITNOT(dstMask0←v18404);
/*1*/         var←c57304 = (word) XRM←BITAND(var←c57336, (*  (ptr) dstPtr←v18148 ));
/*1*/         };
/*1*/      var←c57368 = (word) XRM←BITAND(dstMask0←v18404, colorWord←v10268);
/*1*/      var←c57272 = (word) XRM←BITOR(var←c57304, var←c57368);
/*1*/      };
/*1*/   (*  (ptr) dstPtr←v18148 ) = var←c57272;
/*1*/   };
                           };
SOURCE(29461, 133)
                        if ((dstMask1←v18432 != 0)) {
SOURCE(29482, 112)
                           {
/*1*/   word var←c57400;
/*1*/   {
/*1*/      word var←c57432;
/*1*/      word var←c57496;
/*1*/      {
/*1*/         word var←c57464;
/*1*/         var←c57464 = (word) XRM←BITNOT(dstMask1←v18432);
/*1*/         var←c57432 = (word) XRM←BITAND(var←c57464, (* (( (ptr) dstPtr←v18148)+1) ));
/*1*/         };
/*1*/      var←c57496 = (word) XRM←BITAND(dstMask1←v18432, colorWord←v10268);
/*1*/      var←c57400 = (word) XRM←BITOR(var←c57432, var←c57496);
/*1*/      };
/*1*/   (* (( (ptr) dstPtr←v18148)+1) ) = var←c57400;
/*1*/   };
                           };
SOURCE(29596, 133)
                        if ((dstMask2←v18460 != 0)) {
SOURCE(29617, 112)
                           {
/*1*/   word var←c57528;
/*1*/   {
/*1*/      word var←c57560;
/*1*/      word var←c57624;
/*1*/      {
/*1*/         word var←c57592;
/*1*/         var←c57592 = (word) XRM←BITNOT(dstMask2←v18460);
/*1*/         var←c57560 = (word) XRM←BITAND(var←c57592, (* (( (ptr) dstPtr←v18148)+2) ));
/*1*/         };
/*1*/      var←c57624 = (word) XRM←BITAND(dstMask2←v18460, colorWord←v10268);
/*1*/      var←c57528 = (word) XRM←BITOR(var←c57560, var←c57624);
/*1*/      };
/*1*/   (* (( (ptr) dstPtr←v18148)+2) ) = var←c57528;
/*1*/   };
                           };
                        };
                     };
SOURCE(29734, 19)
                  if ((rem←v18204 <= 32)) {
SOURCE(29753, 4)
                     goto lab←L100082;
                     };
SOURCE(29759, 15)
                  rem←v18204 = (rem←v18204 - 32);
SOURCE(29776, 30)
                  dstPtr←v18148 = (dstPtr←v18148 + 8);
SOURCE(29808, 30)
                  maskPtr←v18176 = (maskPtr←v18176 + 4);
                  };
               goto lab←L100083;
               lab←L100082: ;
SOURCE(29849, 19)
               if ((height←v10212 == 1)) {
SOURCE(29868, 4)
                  goto lab←L100079;
                  };
SOURCE(29874, 40)
               maskBase←v10044 = (maskBase←v10044 + ((word) maskWpl←v10100 << 2));
SOURCE(29916, 37)
               dstBase←v10128 = (dstBase←v10128 + ((word) dstWpl←v10184 << 2));
SOURCE(29955, 19)
               height←v10212 = (height←v10212 - 1);
               };
            goto lab←L100080;
            lab←L100079: ;
            };
         };
      };
   }

static word CreateClass←P1620()
   {
   register ptr gf←c59096 =  (ptr) &globalframe;
   word class←v10364;
   /* CreateClass: */ 
SOURCE(30517, 108)
SOURCE(30517, 108)
   class←v10364 = 0;
SOURCE(30576, 49)
   {
      word pd356;
      pd356 = (* (( (ptr) (* (( (ptr) gf←c59096)+111)/* var←c53048 */  ))+4) );
      class←v10364 = (word) ( *( (fPt) ((*  (ptr) pd356 ))))((* ((( (ptr) gf←c59096)+4)/* classCode←v3784 */ ) ), pd356);
      };
SOURCE(30517, 108)
   return(class←v10364);
   }

/* file: ImagerHighlightContextImpl, module: ImagerHighlightContextImpl, compiled at: July 6, 1993 9:43:28 am PDT */ 
extern void XR←install←ImagerHighlightContextImpl() {
   NoName←Q6240();
   }
extern void XR←run←ImagerHighlightContextImpl() { XR←Start(&globalframe); }