/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: October 28, 1993 1:01:07 pm 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 [1123009428,693409934] 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 fc52 = 1.0;
static float fc53 = 0.0;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc63 = 5.656;
static float fc64 = 45.0;
static float fc65 = 0.48;
static float fc66 = 0.05;
static float fc77 = 2.0;
static float fc96 = 255.0;
static float fc98 = 0.5;
static float fc175 = 0.253;
static float fc178 = 0.684;
static float fc181 = 0.063;
static float fc189 = 4.0;
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
static float fc210 = 3.0;
#define FMIN(x, y, tx, ty)  ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
#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 void NoName←Q6456();
static void ImagerHighlightContextImpl←P0();
static word Create←P60();
static void SetSampleMap←P120();
static word DeviceSetSampleMap←P180();
static word GetSampleMap←P240();
static void SetColorLookupTable←P300();
static void DeviceSetColorLookupTable←P360();
static void DeviceSetHighlight←P420();
static void SetDataHighlight←P480();
static void SetDataBrick←P540();
static word NewColorOperatorHighlight←P600();
static word mapper←P1896();
static word HiliteGetBufferColorOperator←P660();
static word PixelMapWords←P720();
static void HiliteSetHalftoneProperties←P780();
static void HiliteSetColor←P840();
static void Gen←P2244();
static word Compare←P2496();
static word GetColorTransform←P900();
static void HighlightTransform←P960();
static void IntensityTransform←P1020();
static word Store←P1140();
static void PictorialTransform←P1200();
static void TableTransform←P1260();
static word ComputeSource←P1320();
static void HiliteHalftone←P1380();
static word GetHBuffer←P3036();
static void Action←P3096();
static void HiliteMaskBoxes←P1440();
static void Src←P3408();
static void BoxAction←P3516();
static void BlackAction←P3672();
static void HiliteMaskBitmap←P1500();
static void FastTransfer←P4212();
static void HiliteMaskRawBitmaps←P1560();
static word MakeExpandArray2←P1620();
static void StoreWithColorMask2←P1680();
static word CreateClass←P1740();
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\102\357\303\224\300\051\124\230\216\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\102\357\303\224\300\051\124\230\216\100\214\000\000"};
static struct {unsigned f; char r[32];} string15 = {2031647, "\006\014\000\001\004\001\010\001\014\001\024\001\050\001\054\001\060\003\001\100\114\001\100\120\001\100\130\001\100\134\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\102\357\303\224\300\051\124\230\216\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\362\033\246\002\300\160\342\266\057\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\122\363\317\016\300\023\203\024\034\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\350\311\135\367\300\362\215\374\250\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\260\302\146\322\300\075\027\134\123\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\150\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\067\246\211\216\300\354\224\134\067\100\150\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[12];} string39 = {720908, "\257\300/\002\345\247\245\243T@h"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "\257\300\176\213\032\371\300\351\075\041\137\100\150\000\000"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\143\050\357\204\300\236\327\233\116\100\150\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\237\156\146\367\300\026\157\147\122\100\150\000\000"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\235\171\276\022\300\260\151\335\343\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; word f88; 
   word f89; word f90; word f91[39]; 
   } globalframe = {
   {0}, (word) CreateClass←P1740, 0, (word) StoreWithColorMask2←P1680, 
   0, (word) MakeExpandArray2←P1620, 0, (word) HiliteMaskRawBitmaps←P1560, 
   0, (word) HiliteMaskBitmap←P1500, 0, (word) HiliteMaskBoxes←P1440, 
   0, (word) HiliteHalftone←P1380, 0, (word) ComputeSource←P1320, 
   0, (word) TableTransform←P1260, 0, (word) PictorialTransform←P1200, 
   0, (word) Store←P1140, 0, (word) IntensityTransform←P1020, 
   0, (word) HighlightTransform←P960, 0, (word) GetColorTransform←P900, 
   0, (word) HiliteSetColor←P840, 0, (word) HiliteSetHalftoneProperties←P780, 
   0, (word) PixelMapWords←P720, 0, (word) HiliteGetBufferColorOperator←P660, 
   0, (word) NewColorOperatorHighlight←P600, 0, (word) SetDataBrick←P540, 
   0, (word) SetDataHighlight←P480, 0, (word) DeviceSetHighlight←P420, 
   0, (word) DeviceSetColorLookupTable←P360, 0, (word) SetColorLookupTable←P300, 
   0, (word) GetSampleMap←P240, 0, (word) DeviceSetSampleMap←P180, 
   0, (word) SetSampleMap←P120, 0, (word) Create←P60, 
   0, (word) ImagerHighlightContextImpl←P0, {0}
   };

static void NoName←Q6456()
   {
   register ptr gf←c0519 =  (ptr) &globalframe;
   word var←c60376;
   (* (( (ptr) gf←c0519)+12) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0519)+13) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0519)+16) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string2);
   (* (( (ptr) gf←c0519)+18) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0519)+20) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string2);
   (* (( (ptr) gf←c0519)+21) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (* (( (ptr) gf←c0519)+22) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0519)+23) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
   (* (( (ptr) gf←c0519)+26) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
   (*  (ptr) (( (bPt) gf←c0519)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0519)+20) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0519)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0519)+20) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0519)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0519)+20) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0519)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0519)+12) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0519)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0519)+16) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0519)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0519)+12) ), (word) &string21);
   (void) XR←DeclareGlobalFrame((word) "ImagerHighlightContextImpl", &globalframe, (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23)
      , (word) (( (bPt) gf←c0519)+360)/* var←c54968 */ );
   var←c60376 = (word) XR←ImportInterface((word) "FunctionCache", (word) XR←GetTypeIndexS((word) (&string24)), 14);
   (* (( (ptr) gf←c0519)+126)/* var←c56920 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 1311237);
   (void) XR←ImportProcS(var←c60376, 135005443);
   (void) XR←ImportProcS(var←c60376, 67112192);
   var←c60376 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string25)), 84);
   (* (( (ptr) gf←c0519)+121)/* var←c56152 */  ) = var←c60376;
   var←c60376 = (word) XR←ImportInterface((word) "ImagerBrick", (word) XR←GetTypeIndexS((word) (&string26)), 4);
   (* (( (ptr) gf←c0519)+117)/* var←c55768 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 203424264);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerColor", (word) XR←GetTypeIndexS((word) (&string27)), 32);
   (* (( (ptr) gf←c0519)+110)/* var←c55256 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 67635970);
   (void) XR←ImportProcS(var←c60376, 67372033);
   (void) XR←ImportProcS(var←c60376, 201593601);
   (void) XR←ImportProcS(var←c60376, 67378945);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerColorPrivate", (word) XR←GetTypeIndexS((word) (&string28)), 48);
   (* (( (ptr) gf←c0519)+111)/* var←c55288 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 67905795);
   (void) XR←ImportProcS(var←c60376, 67642882);
   (void) XR←ImportProcS(var←c60376, 67379201);
   (void) XR←ImportProcS(var←c60376, 67643138);
   (void) XR←ImportProcS(var←c60376, 67641090);
   (void) XR←ImportProcS(var←c60376, 67641602);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerDevice", (word) XR←GetTypeIndexS((word) (&string29)), 2);
   (* (( (ptr) gf←c0519)+114)/* var←c55640 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 69730569);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerDeviceColor", (word) XR←GetTypeIndexS((word) (&string30)), 14);
   (* (( (ptr) gf←c0519)+116)/* var←c55704 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 1837575);
   (void) XR←ImportProcS(var←c60376, 1575174);
   (void) XR←ImportProcS(var←c60376, 1051908);
   (void) XR←ImportProcS(var←c60376, 67634178);
   (void) XR←ImportProcS(var←c60376, 67371265);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerDeviceProcs", (word) XR←GetTypeIndexS((word) (&string31)), 5);
   (* (( (ptr) gf←c0519)+128)/* var←c59256 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 2359557);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string32)), 3);
   (* (( (ptr) gf←c0519)+118)/* var←c55800 */  ) = var←c60376;
   var←c60376 = (word) XR←ImportInterface((word) "ImagerManhattan", (word) XR←GetTypeIndexS((word) (&string33)), 24);
   (* (( (ptr) gf←c0519)+120)/* var←c55896 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 268700673);
   (void) XR←ImportProcS(var←c60376, 68425218);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerMaskCache", (word) XR←GetTypeIndexS((word) (&string34)), 21);
   (* (( (ptr) gf←c0519)+113)/* var←c55608 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 67375105);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerPixel", (word) XR←GetTypeIndexS((word) (&string35)), 9);
   (* (( (ptr) gf←c0519)+124)/* var←c56728 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 2361350);
   (void) XR←ImportProcS(var←c60376, 68420869);
   (void) XR←ImportProcS(var←c60376, 262657);
   (void) XR←ImportProcS(var←c60376, 67633410);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerPixelArray", (word) XR←GetTypeIndexS((word) (&string36)), 13);
   (* (( (ptr) gf←c0519)+127)/* var←c57144 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 67633922);
   (void) XR←ImportProcS(var←c60376, 2623240);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerRaster", (word) XR←GetTypeIndexS((word) (&string37)), 13);
   (* (( (ptr) gf←c0519)+115)/* var←c55672 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 67371009);
   (void) XR←ImportProcS(var←c60376, 1312514);
   (void) XR←ImportProcS(var←c60376, 67371521);
   (void) XR←ImportProcS(var←c60376, 68419845);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string38)), 60);
   (* (( (ptr) gf←c0519)+122)/* var←c56408 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 2370311);
   (void) XR←ImportProcS(var←c60376, 1324037);
   (void) XR←ImportProcS(var←c60376, 1062404);
   (void) XR←ImportProcS(var←c60376, 2370822);
   (void) XR←ImportProcS(var←c60376, 1321220);
   (void) XR←ImportProcS(var←c60376, 67896579);
   (void) XR←ImportProcS(var←c60376, 788739);
   (void) XR←ImportProcS(var←c60376, 268801);
   (void) XR←ImportProcS(var←c60376, 262913);
   (void) XR←ImportProcS(var←c60376, 70259976);
   (void) XR←ImportProcS(var←c60376, 67371521);
   (void) XR←ImportProcS(var←c60376, 68686339);
   (void) XR←ImportProcS(var←c60376, 68685571);
   (void) XR←ImportProcS(var←c60376, 1050372);
   (void) XR←ImportProcS(var←c60376, 267009);
   (void) XR←ImportProcS(var←c60376, 68161027);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerSwitches", (word) XR←GetTypeIndexS((word) (&string39)), 8);
   (* (( (ptr) gf←c0519)+109)/* var←c55192 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 68157444);
   var←c60376 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string40)), 55);
   (* (( (ptr) gf←c0519)+112)/* var←c55512 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 270806278);
   (void) XR←ImportProcS(var←c60376, 68160004);
   (void) XR←ImportProcS(var←c60376, 67371777);
   var←c60376 = (word) XR←ImportInterface((word) "MaskWithColor", (word) XR←GetTypeIndexS((word) (&string41)), 7);
   (* (( (ptr) gf←c0519)+123)/* var←c56664 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 2621706);
   (void) XR←ImportProcS(var←c60376, 67633154);
   var←c60376 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string42)), 11);
   (* (( (ptr) gf←c0519)+125)/* var←c56792 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 67371521);
   var←c60376 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string43)), 19);
   (* (( (ptr) gf←c0519)+119)/* var←c55864 */  ) = var←c60376;
   (void) XR←ImportProcS(var←c60376, 270012418);
   (void) XR←ImportProcS(var←c60376, 135270145);
   (void) XR←ImportProcS(var←c60376, 68160769);
   (void) XR←ImportProcS(var←c60376, 69210370);
   var←c60376 = (word) XR←ExportInterface((word) "ImagerHighlightContext", (word) XR←GetTypeIndexS((word) (&string44)), 4);
   (* (( (ptr) gf←c0519)+129)/* var←c60408 */  ) = var←c60376;
   (void) XR←ExportVar(var←c60376, 0, (word) (( (bPt) gf←c0519)+16)/* classCode←v3924 */ );
   (void) XR←ExportProcS(var←c60376, (word) (( (bPt) gf←c0519)+352)/* var←c54936 */ , 69206278, (word) "Create");
   (void) XR←ExportProcS(var←c60376, (word) (( (bPt) gf←c0519)+344)/* var←c54904 */ , 524802, (word) "SetSampleMap");
   (void) XR←ExportProcS(var←c60376, (word) (( (bPt) gf←c0519)+328)/* var←c54840 */ , 67371777, (word) "GetSampleMap");
   var←c60376 = (word) XR←ExportInterface((word) "ImagerHighlightContextBackdoor", (word) XR←GetTypeIndexS((word) (&string45))
      , 1);
   (* (( (ptr) gf←c0519)+129)/* var←c60408 */  ) = var←c60376;
   (void) XR←ExportProcS(var←c60376, (word) (( (bPt) gf←c0519)+320)/* var←c54808 */ , 524290, (word) "SetColorLookupTable");
   var←c60376 = (word) XR←ExportInterface((word) "ImagerHighlightContextBackdoorExtras", (word) XR←GetTypeIndexS((word) (&string46))
      , 3);
   (* (( (ptr) gf←c0519)+129)/* var←c60408 */  ) = var←c60376;
   (void) XR←ExportProcS(var←c60376, (word) (( (bPt) gf←c0519)+312)/* var←c54776 */ , 524290, (word) "DeviceSetColorLookupTable")
   ;
   (void) XR←ExportProcS(var←c60376, (word) (( (bPt) gf←c0519)+304)/* var←c54744 */ , 524546, (word) "DeviceSetHighlight");
   (void) XR←ExportProcS(var←c60376, (word) (( (bPt) gf←c0519)+336)/* var←c54872 */ , 67633666, (word) "DeviceSetSampleMap")
   ;
   }

static void ImagerHighlightContextImpl←P0(formal←c072, formal←c065)
   word formal←c072;
   word formal←c065;
   {
   register ptr gf←c60440 =  (ptr) &globalframe;
   /* ImagerHighlightContextImpl: */ 
SOURCE(451, 31435)
   (* (( (hPt) gf←c60440)+193) ) = 257;
   (* (( (ptr) gf←c60440)+97) ) = 33686018;
   (* (( (ptr) gf←c60440)+98) ) = 50529027;
   (* (( (ptr) gf←c60440)+99) ) = 50529027;
   (* (( (ptr) gf←c60440)+100) ) = 67372036;
   (* (( (ptr) gf←c60440)+101) ) = 67372036;
   (* (( (ptr) gf←c60440)+102) ) = 67372036;
   (* (( (ptr) gf←c60440)+103) ) = 67372036;
   (* (( (bPt) gf←c60440)+416) ) = 5;
   (* (( (ptr) gf←c60440)+105) ) = 2147483648;
   (* (( (ptr) gf←c60440)+106) ) = 2147483648;
   (* (( (ptr) gf←c60440)+107) ) = 2147483647;
   (* (( (ptr) gf←c60440)+108) ) = 2147483647;
SOURCE(1059, 35)
   (* (( (ptr) gf←c60440)+4)/* classCode←v3924 */  ) = (* (( (ptr) gf←c60440)+33) );
SOURCE(7615, 145)
   {
      word pd47;
      word idx48;
      pd47 = (* (( (ptr) (* (( (ptr) gf←c60440)+109)/* var←c55192 */  ))+4) );
      (* (( (ptr) gf←c60440)+5)/* ignoreHighlightSetScreen←v4904 */  ) = (
         idx48 = (word) ((word) ( *( (fPt) ((*  (ptr) pd47 ))))(7, (* (( (ptr) gf←c60440)+31) ), (* (( (ptr) gf←c60440)+29) ), 0, pd47)
          - 7),
         BCK(idx48, 1)
         );
      };
SOURCE(12695, 124)
   {
      word var←c55224;
      {
         word pd49;
         pd49 = (* (( (ptr) (* (( (ptr) gf←c60440)+110)/* var←c55256 */  ))+35) );
         var←c55224 = (word) ( *( (fPt) ((*  (ptr) pd49 ))))(255, pd49);
         };
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c60440)+111)/* var←c55288 */  ))+37) );
         (* (( (ptr) gf←c60440)+6)/* colorSpaceCMYK←v4988 */  ) = (word) ( *( (fPt) ((*  (ptr) pd50 ))))(var←c55224, 5, pd50);
         };
      };
SOURCE(12821, 20)
   {
      word var←c55320;
      word var←c55352;
      var←c55320 = XR←NewObject(8, (* (( (ptr) gf←c60440)+22) ));
      var←c55352 = var←c55320;
      (*  (ptr) var←c55352 ) = 4;
      (* (( (ptr) var←c55352)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c60440)+22) ));
      var←c55352 = (* (( (ptr) var←c55352)+1) );
      (*  (ptr) var←c55352 ) = 3;
      (* (( (ptr) var←c55352)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c60440)+22) ));
      var←c55352 = (* (( (ptr) var←c55352)+1) );
      (*  (ptr) var←c55352 ) = 1;
      (* (( (ptr) var←c55352)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c60440)+22) ));
      var←c55352 = (* (( (ptr) var←c55352)+1) );
      (* (( (ptr) gf←c60440)+7)/* allowedColorSpaces←v5016 */  ) = var←c55320;
      };
SOURCE(12915, 21)
   {
      word var←c55384;
      word var←c55416;
      var←c55384 = XR←NewObject(8, (* (( (ptr) gf←c60440)+22) ));
      var←c55416 = var←c55384;
      (*  (ptr) var←c55416 ) = 4;
      (* (( (ptr) var←c55416)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c60440)+22) ));
      var←c55416 = (* (( (ptr) var←c55416)+1) );
      (*  (ptr) var←c55416 ) = (* (( (ptr) gf←c60440)+6)/* colorSpaceCMYK←v4988 */  );
      (* (( (ptr) var←c55416)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c60440)+22) ));
      var←c55416 = (* (( (ptr) var←c55416)+1) );
      (*  (ptr) var←c55416 ) = 1;
      (* (( (ptr) var←c55416)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c60440)+22) ));
      var←c55416 = (* (( (ptr) var←c55416)+1) );
      (* (( (ptr) gf←c60440)+8)/* allowedColorSpaces2←v5044 */  ) = var←c55384;
      };
SOURCE(27046, 51)
   (* (( (ptr) gf←c60440)+9)/* expandArray2←v5464 */  ) = (word) MakeExpandArray2←P1620();
SOURCE(31400, 324)
   {
      word var←c55448;
      var←c55448 = XR←NewObject(60, (* (( (ptr) gf←c60440)+23) ));
      (*  (ptr) var←c55448 ) = (word) (( (bPt) gf←c60440)+248)/* var←c54520 */ ;
      (* (( (ptr) var←c55448)+2) ) = (word) (( (bPt) gf←c60440)+256)/* var←c54552 */ ;
      (* (( (ptr) var←c55448)+3) ) = (word) (( (bPt) gf←c60440)+176)/* var←c54232 */ ;
      (* (( (ptr) var←c55448)+4) ) = XR←CheckProc(0);
      (* (( (ptr) var←c55448)+5) ) = (word) (( (bPt) gf←c60440)+168)/* var←c54200 */ ;
      (* (( (ptr) var←c55448)+6) ) = XR←CheckProc(0);
      (* (( (ptr) var←c55448)+7) ) = (word) (( (bPt) gf←c60440)+160)/* var←c54168 */ ;
      (* (( (ptr) var←c55448)+8) ) = XR←CheckProc(0);
      (* (( (ptr) var←c55448)+9) ) = XR←CheckProc(0);
      (* (( (ptr) var←c55448)+10) ) = XR←CheckProc(0);
      (* (( (ptr) var←c55448)+11) ) = XR←CheckProc(0);
      (* (( (ptr) var←c55448)+12) ) = (word) (( (bPt) gf←c60440)+272)/* var←c54616 */ ;
      (* (( (ptr) var←c55448)+13) ) = XR←CheckProc(0);
      (* (( (ptr) gf←c60440)+10)/* deviceClass←v5576 */  ) = var←c55448;
      };
SOURCE(31727, 49)
   (* (( (ptr) gf←c60440)+11)/* contextClass←v5604 */  ) = (word) CreateClass←P1740();
   }

static word Create←P60(deviceSpaceSize←v6780, scanMode←v6808, surfaceUnitsPerInch←v6836, pixelUnits←v6864, fontCacheName←v6892, highlight←v6920)
   W2 deviceSpaceSize←v6780;
   word scanMode←v6808;
   W2 surfaceUnitsPerInch←v6836;
   word pixelUnits←v6864;
   word fontCacheName←v6892;
   word highlight←v6920;
   {
   register ptr gf←c60472 =  (ptr) &globalframe;
   word var←c6964;
   word data←v10864;
   word deviceParm←v10892;
   word context←v10920;
   word device←v10948;
   /* Create: */ 
SOURCE(3402, 1160)
SOURCE(3622, 73)
   {
      word var←c55480;
      word var←c55544;
      {
         word pd51;
         pd51 = (* (( (ptr) (* (( (ptr) gf←c60472)+112)/* var←c55512 */  ))+7) );
         var←c55480 = (word) ( *( (fPt) ((*  (ptr) pd51 ))))((*  (ptr) (&fc52) ), pd51);
         };
      var←c55544 = XR←NewObject(96, (* (( (ptr) gf←c60472)+26) ));
      (* (( (ptr) var←c55544)+6) ) = (*  (ptr) &fc53 );
      (* (( (ptr) var←c55544)+7) ) = (*  (ptr) &fc53 );
      (* (( (ptr) var←c55544)+8) ) = (*  (ptr) &fc53 );
      (* (( (ptr) var←c55544)+9) ) = (*  (ptr) &fc53 );
      (* (( (ptr) var←c55544)+22) ) = var←c55480;
      data←v10864 = var←c55544;
      };
SOURCE(3697, 320)
   {
      word var←c55576;
      {
         word pd54;
         if ((fontCacheName←v6892 == 0)) {
            var←c55576 = 0;
            }
         else {
            pd54 = (* (( (ptr) (* (( (ptr) gf←c60472)+113)/* var←c55608 */  ))+20) );
            var←c55576 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))(fontCacheName←v6892, pd54);
            };
         };
      {
         word pd55;
         word idx56;
         word idx57;
         pd55 = (* (( (ptr) (* (( (ptr) gf←c60472)+114)/* var←c55640 */  ))+5) );
         deviceParm←v10892 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) gf←c60472)+10)/* deviceClass←v5576 */  ), (
               idx56 = (word) deviceSpaceSize←v6780.f0,
               SGNCK(idx56)
               ), (
               idx57 = (word) deviceSpaceSize←v6780.f1,
               SGNCK(idx57)
               ), scanMode←v6808, surfaceUnitsPerInch←v6836, 1
            , var←c55576, 0, 0, pd55);
         };
      };
SOURCE(4019, 145)
   {
      word pd58;
      pd58 = (* (( (ptr) (* (( (ptr) gf←c60472)+115)/* var←c55672 */  ))+5) );
      context←v10920 = (word) ( *( (fPt) ((*  (ptr) pd58 ))))((* (( (ptr) gf←c60472)+11)/* contextClass←v5604 */  ), (* (( (ptr) gf←c60472)+10)
         /* deviceClass←v5576 */  ), deviceParm←v10892, data←v10864, pixelUnits←v6864, pd58);
      };
SOURCE(4166, 61)
   {
      word pd59;
      pd59 = (* (( (ptr) (* (( (ptr) gf←c60472)+115)/* var←c55672 */  ))+6) );
      device←v10948 = (word) ( *( (fPt) ((*  (ptr) pd59 ))))(context←v10920, pd59);
      };
SOURCE(4229, 62)
   {
      word pd60;
      pd60 = (* (( (ptr) (* (( (ptr) gf←c60472)+116)/* var←c55704 */  ))+5) );
      (* (( (ptr) data←v10864)+3) ) = (word) ( *( (fPt) ((*  (ptr) pd60 ))))(device←v10948, pd60);
      };
SOURCE(4293, 61)
   {
      word pd61;
      pd61 = (* (( (ptr) (* (( (ptr) gf←c60472)+111)/* var←c55288 */  ))+35) );
      (* (( (ptr) data←v10864)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd61 ))))(3, (*  (ptr) &fc53 ), pd61);
      };
SOURCE(4356, 33)
   (void) SetDataHighlight←P480(data←v10864, highlight←v6920);
SOURCE(4391, 97)
   {
      W3 var←c55736;
      {
         word pd62;
         pd62 = (* (( (ptr) (* (( (ptr) gf←c60472)+117)/* var←c55768 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd62 ))))((word) &var←c55736, (*  (ptr) &fc63 ), (*  (ptr) &fc64 ), (*  (ptr) &fc65 ), (*  (ptr) &fc66 ), 16
            , 255, 0, 0, pd62);
         };
      (void) SetDataBrick←P540(data←v10864, var←c55736);
      };
SOURCE(4490, 54)
   {
      word pd67;
      pd67 = (* (( (ptr) (* (( (ptr) gf←c60472)+115)/* var←c55672 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd67 ))))(context←v10920, (*  (W4Pt) (( (ptr) gf←c60472)+92)/* var←c55032 */  ), pd67);
      };
SOURCE(4546, 16)
   return(context←v10920);
   }

static void SetSampleMap←P120(context←v7024, sampleMap←v7052)
   word context←v7024;
   word sampleMap←v7052;
   {
   register ptr gf←c60504 =  (ptr) &globalframe;
   word device←v10992;
   /* SetSampleMap: */ 
SOURCE(4568, 265)
SOURCE(4646, 48)
   {
      word pd68;
      pd68 = (* (( (ptr) (* (( (ptr) gf←c60504)+115)/* var←c55672 */  ))+6) );
      device←v10992 = (word) ( *( (fPt) ((*  (ptr) pd68 ))))(context←v7024, pd68);
      };
SOURCE(4696, 137)
   if ((0 != (word) DeviceSetSampleMap←P180(device←v10992, sampleMap←v7052))) {
SOURCE(4763, 70)
      {
         word pd69;
         pd69 = (* (( (ptr) (* (( (ptr) gf←c60504)+115)/* var←c55672 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd69 ))))(context←v7024, (*  (W4Pt) sampleMap←v7052 ), pd69);
         };
      };
   }

static word DeviceSetSampleMap←P180(device←v7112, sampleMap←v7140)
   word device←v7112;
   word sampleMap←v7140;
   {
   register ptr gf←c60536 =  (ptr) &globalframe;
   word clipperNeedsFixing←v7184;
   word data←v11036;
   word clipper←v11064;
   W4 box←v11092;
   /* DeviceSetSampleMap: */ 
SOURCE(4842, 662)
SOURCE(4970, 32)
   data←v11036 = XR←Narrow((* (( (ptr) device←v7112)+7) ), (* (( (ptr) gf←c60536)+26) ));
SOURCE(5004, 63)
   clipper←v11064 = (* (( (ptr) device←v7112)+1) );
SOURCE(5069, 44)
   box←v11092 = (*  (W4Pt) sampleMap←v7140 );
SOURCE(5115, 132)
   if (((* (( (ptr) sampleMap←v7140)+5) ) != 2)) {
SOURCE(5154, 93)
      {
         W3 var←c099;
         var←c099.f0 = 1;
         var←c099.f1 = (* (( (ptr) gf←c60536)+28) );
         var←c099.f2 = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c60536)+118)/* var←c55800 */  ))+4) ), (word) &var←c099);
         };
      };
SOURCE(5249, 60)
   {
      word pd70;
      pd70 = (* (( (ptr) (* (( (ptr) gf←c60536)+119)/* var←c55864 */  ))+21) );
      clipperNeedsFixing←v7184 =  (unsigned) (0 == (word) ( *( (fPt) ((*  (ptr) pd70 ))))(box←v11092, (*  (W4Pt) (( (ptr) (* (( (ptr) device←v7112)+6)
             ))+1) ), pd70));
      };
SOURCE(5311, 25)
   (*  (W4Pt) (( (ptr) (* (( (ptr) device←v7112)+6) ))+1) ) = box←v11092;
SOURCE(5338, 73)
   {
      word pd71;
      pd71 = (* (( (ptr) (* (( (ptr) gf←c60536)+120)/* var←c55896 */  ))+26) );
      (* (( (ptr) clipper←v11064)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd71 ))))((* (( (ptr) clipper←v11064)+4) ), box←v11092, pd71)
      ;
      };
SOURCE(5413, 63)
   {
      word pd72;
      pd72 = (* (( (ptr) (* (( (ptr) gf←c60536)+120)/* var←c55896 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd72 ))))((word) clipper←v11064, (* (( (ptr) clipper←v11064)+4) ), pd72);
      };
SOURCE(5478, 26)
   (*  (ptr) data←v11036 ) = sampleMap←v7140;
SOURCE(4842, 662)
   return(clipperNeedsFixing←v7184);
   }

static word GetSampleMap←P240(context←v7244)
   word context←v7244;
   {
   register ptr gf←c60568 =  (ptr) &globalframe;
   word var←c7288;
   word data←v11136;
   /* GetSampleMap: */ 
SOURCE(5510, 158)
SOURCE(5586, 57)
   {
      word pd73;
      pd73 = (* (( (ptr) (* (( (ptr) gf←c60568)+115)/* var←c55672 */  ))+6) );
      data←v11136 = XR←Narrow((* (( (ptr) ( *( (fPt) ((*  (ptr) pd73 ))))(context←v7244, pd73))+7) ), (* (( (ptr) gf←c60568)+26)
          ));
      };
SOURCE(5645, 23)
   return((*  (ptr) data←v11136 ));
   }

static void SetColorLookupTable←P300(context←v7348, colorLookupTable←v7376)
   word context←v7348;
   word colorLookupTable←v7376;
   {
   register ptr gf←c60600 =  (ptr) &globalframe;
   /* SetColorLookupTable: */ 
SOURCE(5674, 180)
SOURCE(5778, 76)
   {
      word var←c55928;
      {
         word pd74;
         pd74 = (* (( (ptr) (* (( (ptr) gf←c60600)+115)/* var←c55672 */  ))+6) );
         var←c55928 = (word) ( *( (fPt) ((*  (ptr) pd74 ))))(context←v7348, pd74);
         };
      (void) DeviceSetColorLookupTable←P360(var←c55928, colorLookupTable←v7376);
      };
   }

static void DeviceSetColorLookupTable←P360(device←v7436, colorLookupTable←v7464)
   word device←v7436;
   word colorLookupTable←v7464;
   {
   register ptr gf←c60632 =  (ptr) &globalframe;
   /* DeviceSetColorLookupTable: */ 
SOURCE(5860, 240)
SOURCE(5987, 113)
   {
      word var←c55960;
      var←c55960 = (* (( (ptr) device←v7436)+7) );
      if ((var←c55960 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) gf←c60632)+26) ) == XR←GetReferentType(var←c55960))) {
         {
            word data←v11180;
            data←v11180 = var←c55960;
SOURCE(6032, 40)
            (* (( (ptr) data←v11180)+2) ) = colorLookupTable←v7464;
SOURCE(6074, 26)
            (* (( (ptr) data←v11180)+11) ) = 0;
            };
         }
      else {
         lab←L100000: ;
         };
      };
   }

static void DeviceSetHighlight←P420(device←v7524, highlight←v7552)
   word device←v7524;
   word highlight←v7552;
   {
   register ptr gf←c60664 =  (ptr) &globalframe;
   /* DeviceSetHighlight: */ 
SOURCE(6116, 201)
SOURCE(6238, 79)
   {
      word var←c55992;
      var←c55992 = (* (( (ptr) device←v7524)+7) );
      if ((var←c55992 == 0)) {
         goto lab←L100001;
         };
      if (((* (( (ptr) gf←c60664)+26) ) == XR←GetReferentType(var←c55992))) {
         {
            word data←v11224;
            data←v11224 = var←c55992;
SOURCE(6283, 34)
            (void) SetDataHighlight←P480(data←v11224, highlight←v7552);
            };
         }
      else {
         lab←L100001: ;
         };
      };
   }

static void SetDataHighlight←P480(data←v7612, highlight←v7640)
   word data←v7612;
   word highlight←v7640;
   {
   register ptr gf←c60696 =  (ptr) &globalframe;
   /* SetDataHighlight: */ 
SOURCE(6334, 315)
SOURCE(6407, 26)
   (* (( (ptr) data←v7612)+1) ) = highlight←v7640;
SOURCE(6435, 104)
   {
      W3 var←c56056;
      {
         word var←c56024;
         {
            word pd75;
            pd75 = (* (( (ptr) (* (( (ptr) gf←c60696)+110)/* var←c55256 */  ))+8) );
            var←c56024 = (word) ( *( (fPt) ((*  (ptr) pd75 ))))(highlight←v7640, pd75);
            };
         {
            word pd76;
            pd76 = (* (( (ptr) (* (( (ptr) gf←c60696)+110)/* var←c55256 */  ))+23) );
            (void) ( *( (fPt) ((*  (ptr) pd76 ))))((word) &var←c56056, var←c56024, pd76);
            };
         };
      (* (( (ptr) data←v7612)+8) ) = var←c56056.f2;
      (* (( (ptr) data←v7612)+7) ) = var←c56056.f1;
      (* (( (ptr) data←v7612)+6) ) = var←c56056.f0;
      };
SOURCE(6541, 45)
   {
      word x78;
      word x79;
      float tf80;
      (* (( (ptr) data←v7612)+9) ) = XR←RealPwr((
            tf80 = (
               x78 = XR←RealPwr((* (( (ptr) data←v7612)+7) ), (*  (ptr) &fc77 )),  *(float*)&x78
               ) + (
               x79 = XR←RealPwr((* (( (ptr) data←v7612)+8) ), (*  (ptr) &fc77 )),  *(float*)&x79
               ),  *(word*)&tf80
            ), (*  (ptr) &fc77 ));
      };
SOURCE(6588, 61)
   (* (( (ptr) data←v7612)+10) ) = (word) NewColorOperatorHighlight←P600(highlight←v7640);
   }

static void SetDataBrick←P540(data←v7700, brick←v7728)
   word data←v7700;
   W3 brick←v7728;
   {
   /* SetDataBrick: */ 
SOURCE(6655, 163)
SOURCE(6717, 30)
   if ((brick←v7728.f0 != 255)) {
SOURCE(6747, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(6783, 18)
   (*  (W3Pt) (( (ptr) data←v7700)+12) ) = brick←v7728;
SOURCE(6803, 15)
   (* (( (ptr) data←v7700)+19) ) = 0;
   }

static word NewColorOperatorHighlight←P600(formal←c0589)
   word formal←c0589;
   {
   W7 var←c60728;
   /* declaration of highlight←v7788 skipped */ 
   register ptr gf←c60760 =  (ptr) &globalframe;
   word co←v7832;
   /* declaration of var←c56088 skipped */ 
   var←c60728.f4/* highlight←v7788 */  = formal←c0589;
   /* NewColorOperatorHighlight: */ 
SOURCE(6824, 320)
   {
      word tmpAddr81;
      tmpAddr81 = (word) (( (ptr) &var←c60728)+5)/* var←c56088 */ ;
      (*  (ptr) tmpAddr81 ) = ( ((word)  (fPt) mapper←P1896) );
      (* (( (ptr) tmpAddr81) + 1) ) = 1;
      };
SOURCE(6824, 320)
   co←v7832 = 0;
SOURCE(7097, 47)
   {
      word pd82;
      pd82 = (* (( (ptr) (* (( (ptr) gf←c60760)+110)/* var←c55256 */  ))+15) );
      co←v7832 = (word) ( *( (fPt) ((*  (ptr) pd82 ))))(3, (word) (( (bPt) &var←c60728)+20)/* var←c56088 */ , pd82);
      };
SOURCE(6824, 320)
   return(co←v7832);
   }

static word mapper←P1896(s←v11344, formal←c60824)
   word s←v11344;
   word formal←c60824;
   {
   register ptr gf←c60792 =  (ptr) &globalframe;
   word var←c11388;
   formal←c60824 = (formal←c60824 - 20);
   /* mapper: */ 
SOURCE(6934, 160)
SOURCE(7012, 82)
   {
      word var←c56120;
      var←c56120 = s←v11344;
      if ((var←c56120 == 0)) {
         return((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c60792)+121)/* var←c56152 */  ))+55) ) ));
         }
      else {
         if ((var←c56120 == 1)) {
            return((* (( (ptr) formal←c60824)+4) ));
            }
         else {
            return((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c60792)+121)/* var←c56152 */  ))+54) ) ));
            };
         };
      };
   }

static word HiliteGetBufferColorOperator←P660(device←v7892)
   word device←v7892;
   {
   register ptr gf←c60856 =  (ptr) &globalframe;
   word var←c7936;
   /* HiliteGetBufferColorOperator: */ 
SOURCE(7150, 183)
SOURCE(7230, 103)
   {
      word var←c56184;
      var←c56184 = (* (( (ptr) device←v7892)+7) );
      if ((var←c56184 == 0)) {
         goto lab←L100002;
         };
      if (((* (( (ptr) gf←c60856)+26) ) == XR←GetReferentType(var←c56184))) {
         {
            word data←v11416;
            data←v11416 = var←c56184;
SOURCE(7275, 32)
            return((* (( (ptr) data←v11416)+10) ));
            };
         }
      else {
         lab←L100002: ;
SOURCE(7321, 12)
         return(0);
         };
      };
   }

static word PixelMapWords←P720(pm←v8008)
   word pm←v8008;
   {
   register ptr gf←c60888 =  (ptr) &globalframe;
   word words←v8052;
   /* PixelMapWords: */ 
SOURCE(7367, 233)
SOURCE(7367, 233)
   words←v8052 = 0;
SOURCE(7431, 169)
   {
      register word i←v11460 = 0;
      register word noName←c56216;
      noName←c56216 = (* (( (ptr) pm←v8008)+5) );
      if ((i←v11460 >= noName←c56216)) {
         goto lab←L100003;
         };
      lab←L100006: ;
SOURCE(7472, 128)
      {
         W2 var←c56248;
         word var←c56344;
         word var←c0563;
         {
            W2 var←c56280;
            word map←v53448;
            {
               word limit83;
               map←v53448 = (* ((( (ptr) pm←v8008)+6)+(
                     limit83 = (* (( (ptr) pm←v8008)+5) ),
                     BCK(0, limit83)
                     )) );
               };
            {
               W4 b←v37080;
               b←v37080 = (*  (W4Pt) map←v53448 );
               var←c56280.f0 = (b←v37080.f2 - b←v37080.f0);
               var←c56280.f1 = (b←v37080.f3 - b←v37080.f1);
               };
            var←c56248 = var←c56280;
            };
         {
            word var←c56376;
            word map←v53736;
            {
               word limit84;
               map←v53736 = (* ((( (ptr) pm←v8008)+6)+(
                     limit84 = (* (( (ptr) pm←v8008)+5) ),
                     BCK(0, limit84)
                     )) );
               };
            var←c56376 = (* (( (ptr) map←v53736)+5) );
            var←c56344 = var←c56376;
            };
         {
            word pd85;
            pd85 = (* (( (ptr) (* (( (ptr) gf←c60888)+122)/* var←c56408 */  ))+18) );
            var←c0563 = (word) ( *( (fPt) ((*  (ptr) pd85 ))))(var←c56248, var←c56344, 0, pd85);
            };
         words←v8052 = (words←v8052 + var←c0563);
         };
      i←v11460 = (i←v11460 + 1);
      if ((i←v11460 < noName←c56216)) {
         goto lab←L100006;
         };
      lab←L100003: ;
      };
SOURCE(7367, 233)
   return(words←v8052);
   }

static void HiliteSetHalftoneProperties←P780(device←v8132, halftoneProperties←v8160)
   word device←v8132;
   word halftoneProperties←v8160;
   {
   register ptr gf←c60920 =  (ptr) &globalframe;
   word data←v11504;
   W3 brick←v11532;
   word var←c56440;
   word switch←v53400;
   /* HiliteSetHalftoneProperties: */ 
SOURCE(7763, 529)
SOURCE(7883, 32)
   data←v11504 = XR←Narrow((* (( (ptr) device←v8132)+7) ), (* (( (ptr) gf←c60920)+26) ));
SOURCE(7917, 37)
   brick←v11532 = (*  (W3Pt) (( (ptr) data←v11504)+12) );
SOURCE(7956, 65)
   switch←v53400 = ((* (( (ptr) gf←c60920)+5)/* ignoreHighlightSetScreen←v4904 */  ) + 7);
   var←c56440 =  (unsigned) ((* (( (ptr) (* (( (ptr) (* (( (ptr) gf←c60920)+109)/* var←c55192 */  ))+10) ))+switch←v53400) ) != 0);
   if ((0 != var←c56440)) {
SOURCE(8015, 6)
      return;
      };
SOURCE(8023, 71)
   if ((halftoneProperties←v8160 != 0)) {
SOURCE(8056, 38)
      brick←v11532 = (*  (W3Pt) (( (ptr) halftoneProperties←v8160)+2) );
      };
SOURCE(8096, 152)
   {
      register word tail←v11576;
      tail←v11576 = halftoneProperties←v8160;
      lab←L100013: ;
      if ((tail←v11576 != 0)) {
         }
      else {
         goto lab←L100010;
         };
SOURCE(8189, 59)
      if (((* (( (ptr) tail←v11576)+1) ) == 0)) {
SOURCE(8224, 24)
         brick←v11532 = (*  (W3Pt) (( (ptr) tail←v11576)+2) );
SOURCE(8250, 5)
         goto lab←L100011;
         };
      tail←v11576 = (* (( (ptr) tail←v11576)+6) );
      goto lab←L100013;
      lab←L100010: ;
      lab←L100011: ;
      };
SOURCE(8267, 25)
   (void) SetDataBrick←P540(data←v11504, brick←v11532);
   }

static void HiliteSetColor←P840(device←v8220, color←v8248, viewToDevice←v8276)
   word device←v8220;
   word color←v8248;
   word viewToDevice←v8276;
   {
   W14 var←c60952;
   register ptr gf←c60984 =  (ptr) &globalframe;
   /* declaration of var←c56472 skipped */ 
   /* declaration of var←c56504 skipped */ 
   /* declaration of data←v11620 skipped */ 
   word sampled←v11648 = 0;
   word allowed←v11676 = 3221225472;
   /* HiliteSetColor: */ 
SOURCE(8299, 4390)
   {
      word tmpAddr86;
      tmpAddr86 = (word) (( (ptr) &var←c60952)+4)/* var←c56472 */ ;
      (*  (ptr) tmpAddr86 ) = ( ((word)  (fPt) Compare←P2496) );
      (* (( (ptr) tmpAddr86) + 1) ) = 1;
      };
   {
      word tmpAddr87;
      tmpAddr87 = (word) (( (ptr) &var←c60952)+6)/* var←c56504 */ ;
      (*  (ptr) tmpAddr87 ) = ( ((word)  (fPt) Gen←P2244) );
      (* (( (ptr) tmpAddr87) + 1) ) = 1;
      };
SOURCE(8399, 33)
   (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ) = XR←Narrow((* (( (ptr) device←v8220)+7) ), (* (( (ptr) gf←c60984)+26) ))
   ;
SOURCE(8636, 15)
   (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+16) ) = 0;
SOURCE(8653, 98)
   if ( ( ((* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+23) ) != 0) ? (0 == (* (( (ptr) (* (( (ptr) &var←c60952)+8)
      /* data←v11620 */  ))+21) )) : 0 ) ) {
SOURCE(8705, 46)
      {
         word var←c56536;
         var←c56536 = (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+23) );
         {
            word pd88;
            word limit89;
            pd88 = (* (( (ptr) (* (( (ptr) gf←c60984)+122)/* var←c56408 */  ))+23) );
            (void) ( *( (fPt) ((*  (ptr) pd88 ))))((* (((( (ptr) var←c56536)+6)+(
                     limit89 = (* (( (ptr) var←c56536)+5) ),
                     BCK(0, limit89)
                     ))) ), pd88);
            };
         };
      };
SOURCE(8753, 17)
   (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+23) ) = 0;
SOURCE(8772, 3685)
   {
      word var←c56568;
      var←c56568 = color←v8248;
      if ((var←c56568 == 0)) {
         goto lab←L100014;
         };
      {
         word var←c57240;
         if ( ( ((*  (ptr) var←c56568 ) == 0) ? ((* (( (ptr) var←c56568)+1) ) == 0) : 0 ) ) {
            {
               word color←v11720;
               color←v11720 = var←c56568;
SOURCE(8833, 1489)
               {
                  word transform←v11764;
                  word point←v11792;
                  word black←v11820;
                  word hilite←v11848;
                  word blackBit←v11904;
                  word blackSolid←v11932;
                  word hiliteBit←v11960;
                  word hiliteSolid←v11988;
SOURCE(8835, 91)
                  transform←v11764 = (word) GetColorTransform←P900((* (( (ptr) &var←c60952)+8)/* data←v11620 */  ), (* (( (ptr) color←v11720)+2)
                      ));
SOURCE(8928, 95)
                  {
                     word pd91;
                     pd91 = (* (( (ptr) (* (( (ptr) gf←c60984)+111)/* var←c55288 */  ))+43) );
                     point←v11792 = (word) ( *( (fPt) ((*  (ptr) pd91 ))))(color←v11720, transform←v11764, pd91);
                     };
SOURCE(9025, 22)
                  {
                     word limit92;
                     black←v11820 = (* ((( (ptr) point←v11792)+2)+(
                           limit92 = (* (( (ptr) point←v11792)+1) ),
                           BCK(0, limit92)
                           )) );
                     };
SOURCE(9049, 54)
                  {
                     word tc93;
                     word limit94;
                     if (((* (( (ptr) point←v11792)+1) ) < 2)) {
                        tc93 =  (word) (*  (ptr) &fc53 );
                        }
                     else {
                        tc93 =  (word) (* ((( (ptr) point←v11792)+2)+(
/*1*/   limit94 = (* (( (ptr) point←v11792)+1) ),
/*1*/   BCK(1, limit94)
/*1*/   )) );
                        };
                     hilite←v11848 = tc93;
                     };
SOURCE(9128, 44)
                  {
                     word x95;
                     word x97;
                     word x99;
                     blackBit←v11904 =  (unsigned) ((
                        x95 = black←v11820,  *(float*)&x95
                        ) > (
                        x97 = (*  (ptr) &fc96 ),  *(float*)&x97
                        ) - (
                        x99 = (*  (ptr) &fc98 ),  *(float*)&x99
                        ));
                     };
SOURCE(9174, 50)
                  {
                     word x100;
                     word x101;
                     blackSolid←v11932 =  (unsigned)  ( (0 != blackBit←v11904) ? 1 : ((
                        x100 = black←v11820,  *(float*)&x100
                        ) < (
                        x101 = (*  (ptr) &fc98 ),  *(float*)&x101
                        )) ) ;
                     };
SOURCE(9226, 46)
                  {
                     word x102;
                     word x103;
                     word x104;
                     hiliteBit←v11960 =  (unsigned) ((
                        x102 = hilite←v11848,  *(float*)&x102
                        ) > (
                        x103 = (*  (ptr) &fc96 ),  *(float*)&x103
                        ) - (
                        x104 = (*  (ptr) &fc98 ),  *(float*)&x104
                        ));
                     };
SOURCE(9274, 53)
                  {
                     word x105;
                     word x106;
                     hiliteSolid←v11988 =  (unsigned)  ( (0 != hiliteBit←v11960) ? 1 : ((
                        x105 = hilite←v11848,  *(float*)&x105
                        ) < (
                        x106 = (*  (ptr) &fc98 ),  *(float*)&x106
                        )) ) ;
                     };
SOURCE(9329, 51)
                  {
                     word pd107;
                     pd107 = (* (( (ptr) (* (( (ptr) gf←c60984)+111)/* var←c55288 */  ))+36) );
                     point←v11792 = (word) ( *( (fPt) ((*  (ptr) pd107 ))))(point←v11792, pd107);
                     };
SOURCE(9382, 935)
                  if (((0 != blackSolid←v11932) && (0 != hiliteSolid←v11988))) {
SOURCE(9425, 193)
SOURCE(9427, 20)
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+16) ) = 1;
SOURCE(9449, 50)
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+17) ) = (((word) blackBit←v11904 << 1) + hiliteBit←v11960);
SOURCE(9501, 115)
                     {
                        word var←c56600;
                        {
                           word var←c0564;
                           word var←c56632;
                           word map←v53688;
                           map←v53688 = (*  (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ) );
                           var←c56632 = (* (( (ptr) map←v53688)+5) );
                           var←c0564 = (var←c0564 & 4294967040) | ((word) (word) (* ((( (bPt) gf←c60984)+384)/* var←c55096 */ +var←c56632) ));
                           {
/*1*/   word idx108;
/*1*/   var←c56600 =  (unsigned) (
/*1*/      idx108 = (word)  (unsigned) (var←c0564 & 0377),
/*1*/      BCK(idx108, 6)
/*1*/      );
/*1*/   };
                           };
                        {
                           word pd109;
                           pd109 = (* (( (ptr) (* (( (ptr) gf←c60984)+123)/* var←c56664 */  ))+4) );
                           (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+18) ) = (word) ( *( (fPt) ((*  (ptr) pd109 ))))((* (( (ptr) (* (
/*1*/         ( (ptr) &var←c60952)+8)/* data←v11620 */  ))+17) ), var←c56600, pd109);
                           };
                        };
                     }
                  else {
SOURCE(9625, 694)
                     {
                        /* declaration of box←v12032 skipped */ 
                        /* declaration of b←v12060 skipped */ 
SOURCE(9627, 55)
                        {
                           word map←v54024;
                           map←v54024 = (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+13) );
                           (*  (W4Pt) (( (ptr) &var←c60952)+9)/* box←v12032 */  ) = (*  (W4Pt) map←v54024 );
                           };
SOURCE(9684, 109)
                        {
                           word pd110;
                           word idx111;
                           pd110 = (* (( (ptr) (* (( (ptr) gf←c60984)+124)/* var←c56728 */  ))+5) );
                           (* (( (ptr) &var←c60952)+13)/* b←v12060 */  ) = (word) ( *( (fPt) ((*  (ptr) pd110 ))))(2, (
/*1*/      idx111 = (word) ((* (( (ptr) &var←c60952)+12) ) - (* (( (ptr) &var←c60952)+10) )),
/*1*/      SGNCK(idx111)
/*1*/      ), pd110);
                           };
SOURCE(9953, 49)
                        {
                           word var←c56760;
                           {
/*1*/   word pd112;
/*1*/   word idx113;
/*1*/   pd112 = (* (( (ptr) (* (( (ptr) gf←c60984)+125)/* var←c56792 */  ))+6) );
/*1*/   var←c56760 = (
/*1*/      idx113 = (word) ( *( (fPt) ((*  (ptr) pd112 ))))(black←v11820, pd112),
/*1*/      SGNCK(idx113)
/*1*/      );
/*1*/   };
                           {
/*1*/   word pd114;
/*1*/   word limit115;
/*1*/   pd114 = (* (( (ptr) (* (( (ptr) gf←c60984)+122)/* var←c56408 */  ))+11) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd114 ))))((* ((( (ptr) (* (( (ptr) &var←c60952)+13)/* b←v12060 */  ))+2)+(
/*1*/            limit115 = (* (( (ptr) (* (( (ptr) &var←c60952)+13)/* b←v12060 */  ))+1) ),
/*1*/            BCK(0, limit115)
/*1*/            )) ), var←c56760, 0, 2147483647, pd114);
/*1*/   };
                           };
SOURCE(10004, 50)
                        {
                           word var←c56824;
                           {
/*1*/   word pd116;
/*1*/   word idx117;
/*1*/   pd116 = (* (( (ptr) (* (( (ptr) gf←c60984)+125)/* var←c56792 */  ))+6) );
/*1*/   var←c56824 = (
/*1*/      idx117 = (word) ( *( (fPt) ((*  (ptr) pd116 ))))(hilite←v11848, pd116),
/*1*/      SGNCK(idx117)
/*1*/      );
/*1*/   };
                           {
/*1*/   word pd118;
/*1*/   word limit119;
/*1*/   pd118 = (* (( (ptr) (* (( (ptr) gf←c60984)+122)/* var←c56408 */  ))+11) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd118 ))))((* ((( (ptr) (* (( (ptr) &var←c60952)+13)/* b←v12060 */  ))+2)+(
/*1*/            limit119 = (* (( (ptr) (* (( (ptr) &var←c60952)+13)/* b←v12060 */  ))+1) ),
/*1*/            BCK(1, limit119)
/*1*/            )) ), var←c56824, 0, 2147483647, pd118);
/*1*/   };
                           };
SOURCE(10056, 16)
                        (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+16) ) = 2;
SOURCE(10074, 129)
                        if (((* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+19) ) == 0)) {
SOURCE(10100, 103)
                           {
/*1*/   W4 var←c56856;
/*1*/   {
/*1*/      W4 var←c56888;
/*1*/      word map←v53976;
/*1*/      map←v53976 = (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+13) );
/*1*/      var←c56888 = (*  (W4Pt) map←v53976 );
/*1*/      var←c56856 = var←c56888;
/*1*/      };
/*1*/   {
/*1*/      word pd120;
/*1*/      pd120 = (* (( (ptr) (* (( (ptr) gf←c60984)+122)/* var←c56408 */  ))+19) );
/*1*/      (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+19) ) = (word) ( *( (fPt) ((*  (ptr) pd120 ))))(var←c56856, 2, 0, pd120)
/*1*/      ;
/*1*/      };
/*1*/   };
                           };
SOURCE(10208, 72)
                        (void) HiliteHalftone←P1380((* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+19) ), (word) (( (bPt) &var←c60952)+24)
                           /* var←c56504 */ , (*  (W4Pt) (( (ptr) &var←c60952)+9)/* box←v12032 */  ), (*  (W3Pt) (( (ptr) (* (( (ptr) &var←c60952)+8)
/*1*/   /* data←v11620 */  ))+12) ));
SOURCE(10282, 35)
                        {
                           word pd121;
                           pd121 = (* (( (ptr) (* (( (ptr) gf←c60984)+124)/* var←c56728 */  ))+6) );
                           (void) ( *( (fPt) ((*  (ptr) pd121 ))))((* ((( (ptr) &var←c60952)+13)/* b←v12060 */ ) ), pd121);
                           };
                        };
                     };
                  };
               };
            goto endif090;
            };
         if (((
            var←c57240 = (*  (ptr) var←c56568 )
            ) == 1)) {
            {
               /* declaration of color←v12324 skipped */ 
               (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ) = var←c56568;
SOURCE(10348, 1411)
               {
                  word cache←v12368;
                  /* declaration of pa←v12396 skipped */ 
                  word um←v12424;
                  word colorOperator←v12452;
SOURCE(10350, 56)
                  {
                     word pd122;
                     pd122 = (* (( (ptr) (* (( (ptr) gf←c60984)+126)/* var←c56920 */  ))+17) );
                     cache←v12368 = (word) ( *( (fPt) ((*  (ptr) pd122 ))))(pd122);
                     };
SOURCE(10408, 25)
                  (* (( (ptr) &var←c60952)+10)/* pa←v12396 */  ) = (* (( (ptr) (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ))+1) );
SOURCE(10435, 29)
                  um←v12424 = (* (( (ptr) (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ))+2) );
SOURCE(10466, 50)
                  colorOperator←v12452 = (* (( (ptr) (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ))+3) );
SOURCE(10518, 72)
                  {
                     word pd123;
                     pd123 = (* (( (ptr) (* (( (ptr) gf←c60984)+112)/* var←c55512 */  ))+14) );
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+22) ) = (word) ( *( (fPt) ((*  (ptr) pd123 ))))((* (( (ptr) (* (
/*1*/   ( (ptr) &var←c60952)+10)/* pa←v12396 */  ))+4) ), (* (( (ptr) (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ))+2) ), viewToDevice←v8276, 0, pd123)
                     ;
                     };
SOURCE(10592, 227)
                  if ( (  ( (colorOperator←v12452 == (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+10) )) ? ((* (( (ptr) (* (
                        ( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+22) ))+9) ) == 3) : 0 )  ? (0 != (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c60952)+8)
                        /* data←v11620 */  ))+22) ))+8) )) : 0 ) ) {
SOURCE(10703, 22)
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+16) ) = 3;
SOURCE(10727, 20)
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+20) ) = (* (( (ptr) &var←c60952)+10)/* pa←v12396 */  );
SOURCE(10749, 32)
                     allowed←v11676 &= 3221225471;
SOURCE(10783, 28)
                     (*  (ptr) (* (( (ptr) device←v8220)+6) ) ) = allowed←v11676;
SOURCE(10813, 6)
                     return;
                     };
SOURCE(10824, 20)
                  (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+16) ) = 4;
SOURCE(10846, 14)
                  sampled←v11648 = 1;
SOURCE(10862, 892)
                  if ( ( (0 != (*  (ptr) (* (( (ptr) &var←c60952)+10)/* pa←v12396 */  ) )) ? (0 != (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c60952)+8)
                        /* data←v11620 */  ))+3) ))+9) )) : 0 ) ) {
SOURCE(10912, 745)
                     {
                        word scd←v12524;
SOURCE(11183, 78)
                        {
                           W2 var←c0187;
                           word var←c0565;
                           {
/*1*/   word pd124;
/*1*/   pd124 = (* (( (ptr) (* (( (ptr) gf←c60984)+126)/* var←c56920 */  ))+9) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd124 ))))((word) &var←c0187, cache←v12368, (word) (( (bPt) &var←c60952)+16)/* var←c56472 */ , (* (
/*1*/         ( (ptr) gf←c60984)+32) ), pd124);
/*1*/   };
                           var←c0565 = var←c0187.f0;
                           scd←v12524 = XR←Narrow(var←c0565, (* (( (ptr) gf←c60984)+21) ));
                           };
SOURCE(11263, 337)
                        if ((scd←v12524 == 0)) {
SOURCE(11281, 321)
                           {
/*1*/   word pixelMap←v12568;
/*1*/   word words←v12596;
SOURCE(11283, 68)
/*1*/   pixelMap←v12568 = (word) ComputeSource←P1320((* (( (ptr) &var←c60952)+8)/* data←v11620 */  ), (* (( (ptr) &var←c60952)+9)
/*1*/      /* color←v12324 */  ), (* (( (ptr) (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ))+3) ));
SOURCE(11353, 36)
/*1*/   words←v12596 = (word) PixelMapWords←P720(pixelMap←v12568);
SOURCE(11391, 123)
/*1*/   {
/*1*/      word var←c56952;
/*1*/      var←c56952 = XR←NewObject(20, (* (( (ptr) gf←c60984)+21) ));
/*1*/      (*  (ptr) var←c56952 ) = (* (( (ptr) &var←c60952)+10)/* pa←v12396 */  );
/*1*/      (* (( (ptr) var←c56952)+1) ) = (* (( (ptr) (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ))+3) );
/*1*/      (* (( (ptr) var←c56952)+2) ) = (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+1) );
/*1*/      (* (( (ptr) var←c56952)+4) ) = pixelMap←v12568;
/*1*/      scd←v12524 = var←c56952;
/*1*/      };
SOURCE(11516, 84)
/*1*/   {
/*1*/      word pd125;
/*1*/      pd125 = (* (( (ptr) (* (( (ptr) gf←c60984)+126)/* var←c56920 */  ))+6) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd125 ))))(cache←v12368, scd←v12524, scd←v12524, words←v12596, (* (( (ptr) gf←c60984)+32) ), pd125)
/*1*/      ;
/*1*/      };
/*1*/   };
                           };
SOURCE(11605, 24)
                        (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+23) ) = (* (( (ptr) scd←v12524)+4) );
SOURCE(11631, 24)
                        (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+21) ) = 1;
                        };
                     }
                  else {
SOURCE(11666, 61)
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+23) ) = (word) ComputeSource←P1320((* (( (ptr) &var←c60952)+8)
                        /* data←v11620 */  ), (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ), (* (( (ptr) (* (( (ptr) &var←c60952)+9)/* color←v12324 */  ))+3)
                         ));
SOURCE(11729, 25)
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+21) ) = 0;
                     };
                  };
               };
            goto endif090;
            };
         if ((var←c57240 == 2)) {
            {
               word color←v12684;
               color←v12684 = var←c56568;
SOURCE(11785, 394)
               {
                  word pa←v12728;
SOURCE(11787, 25)
                  pa←v12728 = (* (( (ptr) color←v12684)+1) );
SOURCE(11814, 67)
                  if ((0 != (* (( (ptr) color←v12684)+3) ))) {
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+16) ) = 6;
                     }
                  else {
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+16) ) = 5;
                     };
SOURCE(11883, 14)
                  sampled←v11648 = 1;
SOURCE(11899, 72)
                  {
                     word pd126;
                     pd126 = (* (( (ptr) (* (( (ptr) gf←c60984)+112)/* var←c55512 */  ))+14) );
                     (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+22) ) = (word) ( *( (fPt) ((*  (ptr) pd126 ))))((* (( (ptr) pa←v12728)+4)
                         ), (* (( (ptr) color←v12684)+2) ), viewToDevice←v8276, 0, pd126);
                     };
SOURCE(11973, 121)
                  {
                     word var←c56984;
                     {
                        W4 var←c57016;
                        var←c57016.f0 = 0;
                        var←c57016.f1 = 0;
                        var←c57016.f2 = (* (( (ptr) pa←v12728)+2) );
                        var←c57016.f3 = (* (( (ptr) pa←v12728)+3) );
                        {
                           word pd127;
                           pd127 = (* (( (ptr) (* (( (ptr) gf←c60984)+122)/* var←c56408 */  ))+22) );
                           var←c56984 = (word) ( *( (fPt) ((*  (ptr) pd127 ))))(var←c57016, 1, 0, pd127);
                           };
                        };
                     {
                        word pd128;
                        pd128 = (* (( (ptr) (* (( (ptr) gf←c60984)+124)/* var←c56728 */  ))+9) );
                        (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+23) ) = (word) ( *( (fPt) ((*  (ptr) pd128 ))))(var←c56984, 0, 0, 0, 0, pd128)
                        ;
                        };
                     };
SOURCE(12096, 54)
                  {
                     word var←c57048;
                     word var←c0566;
                     W2 var←c57080;
                     W2 var←c57112;
                     var←c57048 = (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+23) );
                     {
                        word limit129;
                        var←c0566 = (* ((( (ptr) var←c57048)+6)+(
/*1*/   limit129 = (* (( (ptr) var←c57048)+5) ),
/*1*/   BCK(0, limit129)
/*1*/   )) );
                        };
                     var←c57080.f0 = 0;
                     var←c57080.f1 = 0;
                     var←c57112.f0 = 2147483647;
                     var←c57112.f1 = 2147483647;
                     {
                        word pd130;
                        pd130 = (* (( (ptr) (* (( (ptr) gf←c60984)+127)/* var←c57144 */  ))+11) );
                        (void) ( *( (fPt) ((*  (ptr) pd130 ))))(pa←v12728, 0, 0, 0, var←c0566, var←c57080
                           , var←c57112, 0, pd130);
                        };
                     };
SOURCE(12152, 25)
                  (* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+21) ) = 0;
                  };
               };
            goto endif090;
            };
         if ( ( ((*  (ptr) var←c56568 ) == 0) ? ((* (( (ptr) var←c56568)+1) ) == 1) : 0 ) ) {
            {
               word color←v12772;
               color←v12772 = var←c56568;
SOURCE(12219, 238)
SOURCE(12255, 146)
               if (((* (( (ptr) color←v12772)+5) ) == 0)) {
SOURCE(12286, 115)
                  {
                     W3 var←c0200;
                     var←c0200.f0 = 63;
                     var←c0200.f1 = (* (( (ptr) gf←c60984)+30) );
                     var←c0200.f2 = 0;
                     (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c60984)+118)/* var←c55800 */  ))+4) ), (word) &var←c0200);
                     };
                  };
SOURCE(12403, 54)
               (void) HiliteSetColor←P840(device←v8220, (* (( (ptr) color←v12772)+5) ), viewToDevice←v8276);
               };
            goto endif090;
            };
         lab←L100014: ;
SOURCE(12476, 5)
         (void) XR←RaiseUnnamedError();
         goto endif090;
         endif090: ;
         };
      };
SOURCE(12508, 73)
   if (((* (( (ptr) (* (( (ptr) &var←c60952)+8)/* data←v11620 */  ))+16) ) == 1)) {
SOURCE(12539, 42)
      allowed←v11676 |= 402653184;
      };
SOURCE(12586, 73)
   if ((0 != sampled←v11648)) {
SOURCE(12602, 57)
      allowed←v11676 &= 1073741823;
      };
SOURCE(12661, 28)
   (*  (ptr) (* (( (ptr) device←v8220)+6) ) ) = allowed←v11676;
   }

static void Gen←P2244(action←v12164, formal←c61016)
   word action←v12164;
   word formal←c61016;
   {
   formal←c61016 = (formal←c61016 - 24);
   /* Gen: */ 
SOURCE(9795, 11)
SOURCE(9870, 69)
   {
      register word s←v12280;
      register word noName←c57272;
      s←v12280 = (* (( (ptr) formal←c61016)+9) );
      noName←c57272 = (* (( (ptr) formal←c61016)+11) );
      if (( (int)s←v12280 >=  (int)noName←c57272)) {
         goto lab←L100018;
         };
      lab←L100021: ;
SOURCE(9914, 25)
      {
         W2 var←c57304;
         var←c57304.f0 = s←v12280;
         var←c57304.f1 = (* (( (ptr) formal←c61016)+10) );
         (void) ( *( (fPt) ((*  (ptr) action←v12164 ))))((* (( (ptr) formal←c61016)+13) ), var←c57304, action←v12164);
         };
      s←v12280 = (s←v12280 + 1);
      if (( (int)s←v12280 <  (int)noName←c57272)) {
         goto lab←L100021;
         };
      lab←L100018: ;
      };
   }

static word Compare←P2496(argument←v41008, formal←c61080)
   word argument←v41008;
   word formal←c61080;
   {
   register ptr gf←c61048 =  (ptr) &globalframe;
   word good←v41052;
   formal←c61080 = (formal←c61080 - 16);
   /* Compare: */ 
SOURCE(10914, 37)
SOURCE(10953, 227)
   {
      word var←c57336;
      var←c57336 = argument←v41008;
      if ((var←c57336 == 0)) {
         goto lab←L100022;
         };
      if (((* (( (ptr) gf←c61048)+21) ) == XR←GetReferentType(var←c57336))) {
         {
            word scd←v12640;
            scd←v12640 = var←c57336;
SOURCE(11004, 148)
            {
               word tc131;
               if ( (  ( ((*  (ptr) scd←v12640 ) == (* (( (ptr) formal←c61080)+10) )) ? ((* (( (ptr) scd←v12640)+1) ) == (* (( (ptr) (* (
                     ( (ptr) formal←c61080)+9) ))+3) )) : 0 )  ? ((* (( (ptr) scd←v12640)+2) ) == (* (( (ptr) (* (( (ptr) formal←c61080)+8) ))+1)
                )) : 0 ) ) {
                  tc131 =  (word)  (unsigned) ((* (( (ptr) scd←v12640)+3) ) == (* (( (ptr) (* (( (ptr) formal←c61080)+8) ))+2) ));
                  }
               else {
                  tc131 =  (word)  (unsigned) 0;
                  };
               return(tc131);
               };
            };
         }
      else {
         lab←L100022: ;
SOURCE(11165, 15)
         return(0);
         };
      };
   }

static word GetColorTransform←P900(data←v8504, colorOperator←v8532)
   word data←v8504;
   word colorOperator←v8532;
   {
   register ptr gf←c61112 =  (ptr) &globalframe;
   word var←c8576;
   word allow←v12816;
   word colorSpace←v12844;
   /* GetColorTransform: */ 
SOURCE(13021, 1146)
SOURCE(13136, 7)
   allow←v12816 =  ( ((* (( (ptr) data←v8504)+2) ) != 0) ? (* (( (ptr) gf←c61112)+8)/* allowedColorSpaces2←v5044 */  ) : (* (
      ( (ptr) gf←c61112)+7)/* allowedColorSpaces←v5016 */  ) ) ;
SOURCE(13264, 101)
   {
      word pd132;
      pd132 = (* (( (ptr) (* (( (ptr) gf←c61112)+111)/* var←c55288 */  ))+42) );
      colorSpace←v12844 = (word) ( *( (fPt) ((*  (ptr) pd132 ))))(colorOperator←v8532, allow←v12816, pd132);
      };
SOURCE(13367, 766)
   if ((((* (( (ptr) data←v8504)+11) ) == 0) || (colorSpace←v12844 != (*  (ptr) (* (( (ptr) data←v8504)+11) ) ))) || ((* (( (ptr) (* (
         ( (ptr) data←v8504)+3) ))+11) ) != (* (( (ptr) data←v8504)+4) ))) {
SOURCE(13486, 649)
      {
         word domain←v12972;
         word dim←v13000;
         word rangeMax←v13028;
         word ct←v13056;
SOURCE(13488, 50)
         domain←v12972 = colorSpace←v12844;
SOURCE(13540, 39)
         dim←v13000 =  ( (domain←v12972 == 0) ? 1 : 2 ) ;
SOURCE(13581, 102)
         {
            word pd133;
            float tf134;
            pd133 = (* (( (ptr) (* (( (ptr) gf←c61112)+111)/* var←c55288 */  ))+35) );
            rangeMax←v13028 = (word) ( *( (fPt) ((*  (ptr) pd133 ))))(dim←v13000, (
                  tf134 = (float)(unsigned)(* (( (ptr) data←v8504)+12) ),  *(word*)&tf134
                  ), pd133);
            };
SOURCE(13685, 382)
         {
            word var←c57368;
            word var←c57432;
            {
               word var←c57400;
               var←c57400 = domain←v12972;
               if ((var←c57400 == 4)) {
                  var←c57368 = XR←CheckProc((word) (( (bPt) gf←c61112)+232)/* var←c54456 */ );
                  goto endif0135;
                  };
               if ((var←c57400 == 1)) {
                  if (((* (( (ptr) data←v8504)+2) ) != 0)) {
                     var←c57368 = XR←CheckProc((word) (( (bPt) gf←c61112)+200)/* var←c54328 */ );
                     }
                  else {
                     var←c57368 = XR←CheckProc((word) (( (bPt) gf←c61112)+208)/* var←c54360 */ );
                     };
                  goto endif0135;
                  };
               if ((var←c57400 == 3)) {
                  var←c57368 = XR←CheckProc((word) (( (bPt) gf←c61112)+208)/* var←c54360 */ );
                  goto endif0135;
                  };
               if ((var←c57400 == 0)) {
                  var←c57368 = XR←CheckProc((word) (( (bPt) gf←c61112)+224)/* var←c54424 */ );
                  goto endif0135;
                  };
               if ((var←c57400 == (* (( (ptr) gf←c61112)+6)/* colorSpaceCMYK←v4988 */  ))) {
                  var←c57368 = XR←CheckProc((word) (( (bPt) gf←c61112)+200)/* var←c54328 */ );
                  goto endif0135;
                  };
               var←c57368 = XR←CheckProc(
                  XR←RaiseUnnamedError(), 0
                  );
               goto endif0135;
               endif0135: ;
               };
            var←c57432 = XR←NewObject(16, (* (( (ptr) gf←c61112)+18) ));
            (*  (ptr) var←c57432 ) = domain←v12972;
            (* (( (ptr) var←c57432)+1) ) = rangeMax←v13028;
            (* (( (ptr) var←c57432)+2) ) = var←c57368;
            (* (( (ptr) var←c57432)+3) ) = data←v8504;
            ct←v13056 = var←c57432;
            };
SOURCE(14069, 24)
         (* (( (ptr) data←v8504)+11) ) = ct←v13056;
SOURCE(14095, 38)
         (* (( (ptr) data←v8504)+4) ) = (* (( (ptr) (* (( (ptr) data←v8504)+3) ))+11) );
         };
      };
SOURCE(14138, 29)
   return((* (( (ptr) data←v8504)+11) ));
   }

static void HighlightTransform←P960(self←v8636, in←v8664, out←v8692)
   word self←v8636;
   word in←v8664;
   word out←v8692;
   {
   register ptr gf←c61144 =  (ptr) &globalframe;
   word data←v13100;
   word control←v13128;
   word gray←v13156;
   word b←v13184;
   word h←v13212;
   word outOfGamut←v13240 = 0;
   /* HighlightTransform: */ 
SOURCE(14171, 735)
SOURCE(14313, 30)
   data←v13100 = XR←Narrow((* (( (ptr) self←v8636)+3) ), (* (( (ptr) gf←c61144)+26) ));
SOURCE(14345, 60)
   control←v13128 = (* (( (ptr) data←v13100)+3) );
SOURCE(14407, 86)
   {
      word pd136;
      word limit137;
      word x138;
      word limit139;
      word x140;
      float tf141;
      pd136 = (* (( (ptr) (* (( (ptr) gf←c61144)+116)/* var←c55704 */  ))+8) );
      gray←v13156 = (word) ( *( (fPt) ((*  (ptr) pd136 ))))((* (( (ptr) control←v13128)+3) ), (
            tf141 = (
               x138 = (* ((( (ptr) in←v8664)+2)+(
                     limit137 = (* (( (ptr) in←v8664)+1) ),
                     BCK(0, limit137)
                     )) ),  *(float*)&x138
               ) + (
               x140 = (* ((( (ptr) in←v8664)+2)+(
                     limit139 = (* (( (ptr) in←v8664)+1) ),
                     BCK(1, limit139)
                     )) ),  *(float*)&x140
               ),  *(word*)&tf141
            ), pd136);
      };
SOURCE(14495, 32)
   {
      word x142;
      word x143;
      word x144;
      *(float*)&b←v13184 = ((
         x142 = (*  (ptr) &fc52 ),  *(float*)&x142
         ) - (
         x143 = gray←v13156,  *(float*)&x143
         )) * (
         x144 = (*  (ptr) &fc96 ),  *(float*)&x144
         );
      };
SOURCE(14529, 27)
   {
      word limit145;
      word x146;
      word x147;
      *(float*)&h←v13212 = (
         x146 = (* ((( (ptr) in←v8664)+2)+(
               limit145 = (* (( (ptr) in←v8664)+1) ),
               BCK(1, limit145)
               )) ),  *(float*)&x146
         ) * (
         x147 = (*  (ptr) &fc96 ),  *(float*)&x147
         );
      };
SOURCE(14643, 43)
   {
      word x148;
      word x149;
      if (((
         x148 = b←v13184,  *(float*)&x148
         ) < (
         x149 = (*  (ptr) &fc53 ),  *(float*)&x149
         ))) {
SOURCE(14660, 17)
         outOfGamut←v13240 = 1;
SOURCE(14679, 7)
         b←v13184 = (*  (ptr) &fc53 );
         };
      };
SOURCE(14689, 55)
   {
      word x150;
      word x151;
      if (((
         x150 = b←v13184,  *(float*)&x150
         ) > (
         x151 = (*  (ptr) &fc96 ),  *(float*)&x151
         ))) {
SOURCE(14712, 17)
         outOfGamut←v13240 = 1;
SOURCE(14731, 13)
         b←v13184 = (*  (ptr) &fc96 );
         };
      };
SOURCE(14747, 43)
   {
      word x152;
      word x153;
      if (((
         x152 = h←v13212,  *(float*)&x152
         ) < (
         x153 = (*  (ptr) &fc53 ),  *(float*)&x153
         ))) {
SOURCE(14764, 17)
         outOfGamut←v13240 = 1;
SOURCE(14783, 7)
         h←v13212 = (*  (ptr) &fc53 );
         };
      };
SOURCE(14793, 59)
   {
      word x154;
      word x155;
      word x156;
      if (((
         x154 = h←v13212,  *(float*)&x154
         ) > (
         x155 = (*  (ptr) &fc96 ),  *(float*)&x155
         ) - (
         x156 = b←v13184,  *(float*)&x156
         ))) {
SOURCE(14818, 17)
         outOfGamut←v13240 = 1;
SOURCE(14837, 15)
         {
            word x157;
            word x158;
            *(float*)&h←v13212 = (
               x157 = (*  (ptr) &fc96 ),  *(float*)&x157
               ) - (
               x158 = b←v13184,  *(float*)&x158
               );
            };
         };
      };
SOURCE(14855, 10)
   {
      word limit159;
      (* ((( (ptr) out←v8692)+2)+(
            limit159 = (* (( (ptr) out←v8692)+1) ),
            BCK(0, limit159)
            )) ) = b←v13184;
      };
SOURCE(14867, 10)
   {
      word limit160;
      (* ((( (ptr) out←v8692)+2)+(
            limit160 = (* (( (ptr) out←v8692)+1) ),
            BCK(1, limit160)
            )) ) = h←v13212;
      };
SOURCE(14879, 27)
   (*  (ptr) out←v8692 ) = outOfGamut←v13240;
   }

static void IntensityTransform←P1020(self←v8752, in←v8780, out←v8808)
   word self←v8752;
   word in←v8780;
   word out←v8808;
   {
   register ptr gf←c61176 =  (ptr) &globalframe;
   word data←v13284;
   word control←v13312;
   /* IntensityTransform: */ 
SOURCE(14934, 292)
SOURCE(15076, 30)
   data←v13284 = XR←Narrow((* (( (ptr) self←v8752)+3) ), (* (( (ptr) gf←c61176)+26) ));
SOURCE(15108, 60)
   control←v13312 = (* (( (ptr) data←v13284)+3) );
SOURCE(15170, 56)
   {
      word pd161;
      word limit162;
      pd161 = (* (( (ptr) (* (( (ptr) gf←c61176)+116)/* var←c55704 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd161 ))))(control←v13312, (* ((( (ptr) in←v8780)+2)+(
               limit162 = (* (( (ptr) in←v8780)+1) ),
               BCK(0, limit162)
               )) ), (*  (ptr) &fc96 ), out←v8808, pd161);
      };
   }

static word Store←P1140(out←v9084, i←v9112, x←v9140, limit←v9168)
   word out←v9084;
   word i←v9112;
   word x←v9140;
   word limit←v9168;
   {
   word var←c9212;
   word scaled←v13356;
   word clipped←v13384;
   /* Store: */ 
SOURCE(15379, 317)
SOURCE(15483, 45)
   {
      word x163;
      word x164;
      float tf165;
      scaled←v13356 = (word) XR←REAL32←Round((
            tf165 = (
               x163 = x←v9140,  *(float*)&x163
               ) * (
               x164 = (*  (ptr) &fc96 ),  *(float*)&x164
               ),  *(word*)&tf165
            ));
      };
SOURCE(15530, 81)
   clipped←v13384 =  ( ( (int)scaled←v13356 <  (int)0) ? 0 :  ( ( (int)scaled←v13356 >  (int)limit←v9168) ? limit←v9168 : scaled←v13356 )  ) ;
SOURCE(15613, 16)
   {
      word limit166;
      float tf167;
      (* ((( (ptr) out←v9084)+2)+(
            limit166 = (* (( (ptr) out←v9084)+1) ),
            BCK(i←v9112, limit166)
            )) ) = (
         tf167 = (float)(int)clipped←v13384,  *(word*)&tf167
         );
      };
SOURCE(15631, 46)
   if (( (int)clipped←v13384 !=  (int)scaled←v13356)) {
SOURCE(15656, 21)
      (*  (ptr) out←v9084 ) = 1;
      };
SOURCE(15679, 17)
   return(clipped←v13384);
   }

static void PictorialTransform←P1200(self←v9272, in←v9300, out←v9328)
   word self←v9272;
   word in←v9300;
   word out←v9328;
   {
   register ptr gf←c61208 =  (ptr) &globalframe;
   word data←v13428;
   word y←v13456;
   word e←v13484;
   word s←v13512;
   /* PictorialTransform: */ 
SOURCE(15700, 822)
SOURCE(15842, 30)
   data←v13428 = XR←Narrow((* (( (ptr) self←v9272)+3) ), (* (( (ptr) gf←c61208)+26) ));
SOURCE(15889, 376)
   if (((*  (ptr) self←v9272 ) == 1)) {
SOURCE(15916, 285)
      {
         word tmp←v13556;
         word control←v13584;
SOURCE(15918, 59)
         tmp←v13556 = (* (( (ptr) data←v13428)+5) );
SOURCE(15979, 60)
         control←v13584 = (* (( (ptr) data←v13428)+3) );
SOURCE(16041, 68)
         {
            word pd168;
            word limit169;
            word limit170;
            word limit171;
            pd168 = (* (( (ptr) (* (( (ptr) gf←c61208)+116)/* var←c55704 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd168 ))))(control←v13584, (* ((( (ptr) in←v9300)+2)+(
                     limit169 = (* (( (ptr) in←v9300)+1) ),
                     BCK(0, limit169)
                     )) ), (* ((( (ptr) in←v9300)+2)+(
                     limit170 = (* (( (ptr) in←v9300)+1) ),
                     BCK(1, limit170)
                     )) ), (* ((( (ptr) in←v9300)+2)+(
                     limit171 = (* (( (ptr) in←v9300)+1) ),
                     BCK(2, limit171)
                     )) ), (*  (ptr) &fc52 ), tmp←v13556, pd168);
            };
SOURCE(16111, 55)
         {
            W3 var←c57496;
            {
               word y←v52360;
               word e←v52388;
               word s←v52416;
               word r←v52448;
               word g←v52476;
               word b←v52504;
               {
                  word limit172;
                  r←v52448 = (* ((( (ptr) tmp←v13556)+2)+(
                        limit172 = (* (( (ptr) tmp←v13556)+1) ),
                        BCK(0, limit172)
                        )) );
                  };
               {
                  word limit173;
                  g←v52476 = (* ((( (ptr) tmp←v13556)+2)+(
                        limit173 = (* (( (ptr) tmp←v13556)+1) ),
                        BCK(1, limit173)
                        )) );
                  };
               {
                  word limit174;
                  b←v52504 = (* ((( (ptr) tmp←v13556)+2)+(
                        limit174 = (* (( (ptr) tmp←v13556)+1) ),
                        BCK(2, limit174)
                        )) );
                  };
SOURCE(15300, 31)
               {
                  word x176;
                  word x177;
                  word x179;
                  word x180;
                  word x182;
                  word x183;
                  *(float*)&y←v52360 = (((
                     x176 = (*  (ptr) &fc175 ),  *(float*)&x176
                     ) * (
                     x177 = r←v52448,  *(float*)&x177
                     )) + ((
                     x179 = (*  (ptr) &fc178 ),  *(float*)&x179
                     ) * (
                     x180 = g←v52476,  *(float*)&x180
                     ))) + ((
                     x182 = (*  (ptr) &fc181 ),  *(float*)&x182
                     ) * (
                     x183 = b←v52504,  *(float*)&x183
                     ));
                  };
SOURCE(15333, 15)
               {
                  word x184;
                  word x185;
                  word x186;
                  *(float*)&e←v52388 = ((
                     x184 = r←v52448,  *(float*)&x184
                     ) - (
                     x185 = g←v52476,  *(float*)&x185
                     )) / (
                     x186 = (*  (ptr) &fc77 ),  *(float*)&x186
                     );
                  };
SOURCE(15350, 23)
               {
                  word x187;
                  word x188;
                  word x190;
                  word x191;
                  word x192;
                  *(float*)&s←v52416 = (((
                     x187 = r←v52448,  *(float*)&x187
                     ) + (
                     x188 = g←v52476,  *(float*)&x188
                     )) / (
                     x190 = (*  (ptr) &fc189 ),  *(float*)&x190
                     )) - ((
                     x191 = b←v52504,  *(float*)&x191
                     ) / (
                     x192 = (*  (ptr) &fc77 ),  *(float*)&x192
                     ));
                  };
SOURCE(15232, 141)
               (*  (ptr) (word) &var←c57496 ) = y←v52360;
               (* (( (ptr) (word) &var←c57496) + 1) ) = e←v52388;
               (* (( (ptr) (word) &var←c57496) + 2) ) = s←v52416;
               };
            s←v13512 = var←c57496.f2;
            e←v13484 = var←c57496.f1;
            y←v13456 = var←c57496.f0;
            };
SOURCE(16168, 31)
         (*  (ptr) out←v9328 ) = (*  (ptr) tmp←v13556 );
         };
      }
   else {
SOURCE(16210, 9)
      {
         word limit193;
         y←v13456 = (* ((( (ptr) in←v9300)+2)+(
               limit193 = (* (( (ptr) in←v9300)+1) ),
               BCK(0, limit193)
               )) );
         };
SOURCE(16221, 9)
      {
         word limit194;
         e←v13484 = (* ((( (ptr) in←v9300)+2)+(
               limit194 = (* (( (ptr) in←v9300)+1) ),
               BCK(1, limit194)
               )) );
         };
SOURCE(16232, 9)
      {
         word limit195;
         s←v13512 = (* ((( (ptr) in←v9300)+2)+(
               limit195 = (* (( (ptr) in←v9300)+1) ),
               BCK(2, limit195)
               )) );
         };
SOURCE(16243, 22)
      (*  (ptr) out←v9328 ) = 0;
      };
SOURCE(16270, 254)
   {
      word denom←v13628;
      word h←v13656;
      word w←v13684;
SOURCE(16272, 46)
      {
         word x196;
         word x197;
         word x198;
         *(float*)&denom←v13628 = ((
            x196 = XR←RealPwr(e←v13484, (*  (ptr) &fc77 )),  *(float*)&x196
            ) + (
            x197 = XR←RealPwr(s←v13512, (*  (ptr) &fc77 )),  *(float*)&x197
            )) * (
            x198 = (* (( (ptr) data←v13428)+9) ),  *(float*)&x198
            );
         };
SOURCE(16320, 91)
      {
         word tc199;
         word x200;
         word x201;
         word x202;
         float tf203;
         float tf204;
         word x205;
         word x206;
         word x207;
         word x208;
         float tf209;
         word x211;
         word x212;
         float tf213;
         if (((
            x200 = denom←v13628,  *(float*)&x200
            ) == (
            x201 = (*  (ptr) &fc53 ),  *(float*)&x201
            ))) {
            tc199 =  (word) (*  (ptr) &fc53 );
            }
         else {
            tc199 =  (word) (
               tf213 = FMAX((
                     x202 = (*  (ptr) &fc53 ),  *(float*)&x202
                     ), ((
                     x211 = XR←RealPwr((
                           tf209 = ((
/*1*/   x205 = (* (( (ptr) data←v13428)+7) ),  *(float*)&x205
/*1*/   ) * (
/*1*/   x206 = e←v13484,  *(float*)&x206
/*1*/   )) + ((
/*1*/   x207 = (* (( (ptr) data←v13428)+8) ),  *(float*)&x207
/*1*/   ) * (
/*1*/   x208 = s←v13512,  *(float*)&x208
/*1*/   )),  *(word*)&tf209
                           ), (*  (ptr) &fc210 )),  *(float*)&x211
                     ) / (
                     x212 = denom←v13628,  *(float*)&x212
                     )), tf203, tf204),  *(word*)&tf213
               );
            };
         h←v13656 = tc199;
         };
SOURCE(16413, 39)
      {
         word x214;
         word x215;
         float tf216;
         float tf217;
         word x218;
         word x219;
         word x220;
         float tf221;
         w←v13684 = (
            tf221 = FMIN(((
                  x214 = (*  (ptr) &fc52 ),  *(float*)&x214
                  ) - (
                  x215 = h←v13656,  *(float*)&x215
                  )), ((
                  x218 = y←v13456,  *(float*)&x218
                  ) - ((
                  x219 = h←v13656,  *(float*)&x219
                  ) * (
                  x220 = (* (( (ptr) data←v13428)+6) ),  *(float*)&x220
                  ))), tf216, tf217),  *(word*)&tf221
            );
         };
SOURCE(16454, 68)
      {
         word var←c57560;
         {
            word var←c57528;
            {
               word x222;
               word x223;
               word x224;
               float tf225;
               var←c57528 = (255 - (word) Store←P1140(out←v9328, 0, (
                     tf225 = ((
                        x222 = (*  (ptr) &fc52 ),  *(float*)&x222
                        ) - (
                        x223 = h←v13656,  *(float*)&x223
                        )) - (
                        x224 = w←v13684,  *(float*)&x224
                        ),  *(word*)&tf225
                     ), 255));
               };
            var←c57560 = (word) Store←P1140(out←v9328, 1, h←v13656, var←c57528);
            };
         };
      };
   }

static void TableTransform←P1260(self←v9388, in←v9416, out←v9444)
   word self←v9388;
   word in←v9416;
   word out←v9444;
   {
   register ptr gf←c61240 =  (ptr) &globalframe;
   word data←v13728;
   word control←v13756;
   word p←v13784;
   word tmp←v13812;
   /* TableTransform: */ 
SOURCE(16531, 1339)
SOURCE(16677, 30)
   data←v13728 = XR←Narrow((* (( (ptr) self←v9388)+3) ), (* (( (ptr) gf←c61240)+26) ));
SOURCE(16709, 60)
   control←v13756 = (* (( (ptr) data←v13728)+3) );
SOURCE(16771, 98)
   p←v13784 = (* (( (ptr) (* (( (ptr) data←v13728)+2) ))+1) );
SOURCE(16871, 59)
   tmp←v13812 = (* (( (ptr) data←v13728)+5) );
SOURCE(17025, 201)
   if (((*  (ptr) self←v9388 ) == 1)) {
SOURCE(17052, 74)
      {
         word pd226;
         word limit227;
         word limit228;
         word limit229;
         float tf230;
         pd226 = (* (( (ptr) (* (( (ptr) gf←c61240)+116)/* var←c55704 */  ))+13) );
         (void) ( *( (fPt) ((*  (ptr) pd226 ))))(control←v13756, (* ((( (ptr) in←v9416)+2)+(
                  limit227 = (* (( (ptr) in←v9416)+1) ),
                  BCK(0, limit227)
                  )) ), (* ((( (ptr) in←v9416)+2)+(
                  limit228 = (* (( (ptr) in←v9416)+1) ),
                  BCK(1, limit228)
                  )) ), (* ((( (ptr) in←v9416)+2)+(
                  limit229 = (* (( (ptr) in←v9416)+1) ),
                  BCK(2, limit229)
                  )) ), (
               tf230 = (float)(unsigned)63,  *(word*)&tf230
               ), tmp←v13812, pd226);
         };
      }
   else {
SOURCE(17126, 100)
      {
         word pd231;
         word limit232;
         word x233;
         word x234;
         float tf235;
         word limit236;
         word x237;
         word x238;
         float tf239;
         word limit240;
         word x241;
         word x242;
         float tf243;
         word limit244;
         word x245;
         word x246;
         float tf247;
         float tf248;
         pd231 = (* (( (ptr) (* (( (ptr) gf←c61240)+116)/* var←c55704 */  ))+14) );
         (void) ( *( (fPt) ((*  (ptr) pd231 ))))(control←v13756, (
               tf235 = (
                  x233 = (* ((( (ptr) in←v9416)+2)+(
                        limit232 = (* (( (ptr) in←v9416)+1) ),
                        BCK(0, limit232)
                        )) ),  *(float*)&x233
                  ) / (
                  x234 = (*  (ptr) &fc96 ),  *(float*)&x234
                  ),  *(word*)&tf235
               ), (
               tf239 = (
                  x237 = (* ((( (ptr) in←v9416)+2)+(
                        limit236 = (* (( (ptr) in←v9416)+1) ),
                        BCK(1, limit236)
                        )) ),  *(float*)&x237
                  ) / (
                  x238 = (*  (ptr) &fc96 ),  *(float*)&x238
                  ),  *(word*)&tf239
               ), (
               tf243 = (
                  x241 = (* ((( (ptr) in←v9416)+2)+(
                        limit240 = (* (( (ptr) in←v9416)+1) ),
                        BCK(2, limit240)
                        )) ),  *(float*)&x241
                  ) / (
                  x242 = (*  (ptr) &fc96 ),  *(float*)&x242
                  ),  *(word*)&tf243
               ), (
               tf247 = (
                  x245 = (* ((( (ptr) in←v9416)+2)+(
                        limit244 = (* (( (ptr) in←v9416)+1) ),
                        BCK(3, limit244)
                        )) ),  *(float*)&x245
                  ) / (
                  x246 = (*  (ptr) &fc96 ),  *(float*)&x246
                  ),  *(word*)&tf247
               ), (
               tf248 = (float)(unsigned)63,  *(word*)&tf248
               )
            , tmp←v13812, pd231);
         };
      };
SOURCE(17228, 612)
   {
      word red←v13896;
      word grn←v13924;
      word blu←v13952;
      word black←v13980;
      word highlight←v14008;
SOURCE(17230, 60)
      {
         word limit249;
         word x250;
         word idx251;
         word x252;
         red←v13896 = (x252 = (
               idx251 = (word) (x250 = (word) XR←REAL32←Round((* (((( (ptr) tmp←v13812)+2)+(
                           limit249 = (* (( (ptr) tmp←v13812)+1) ),
                           BCK(0, limit249)
                           ))) )),
                  MAX((int)(word), x250, 0)),
               SGNCK(idx251)
               ),
            MIN( (unsigned) , x252, 63));
         };
SOURCE(17292, 60)
      {
         word limit253;
         word x254;
         word idx255;
         word x256;
         grn←v13924 = (x256 = (
               idx255 = (word) (x254 = (word) XR←REAL32←Round((* (((( (ptr) tmp←v13812)+2)+(
                           limit253 = (* (( (ptr) tmp←v13812)+1) ),
                           BCK(1, limit253)
                           ))) )),
                  MAX((int)(word), x254, 0)),
               SGNCK(idx255)
               ),
            MIN( (unsigned) , x256, 63));
         };
SOURCE(17354, 60)
      {
         word limit257;
         word x258;
         word idx259;
         word x260;
         blu←v13952 = (x260 = (
               idx259 = (word) (x258 = (word) XR←REAL32←Round((* (((( (ptr) tmp←v13812)+2)+(
                           limit257 = (* (( (ptr) tmp←v13812)+1) ),
                           BCK(2, limit257)
                           ))) )),
                  MAX((int)(word), x258, 0)),
               SGNCK(idx259)
               ),
            MIN( (unsigned) , x260, 63));
         };
SOURCE(17440, 55)
      {
         word var←c57592;
         var←c57592 =  (unsigned) (word) (* (( (hPt) (( (W32Pt) (( (W2048Pt) (
                     NCK((*  (bPt) p←v13784 )),
                     p←v13784
                     ))+red←v13896))+grn←v13924))+blu←v13952) );
         black←v13980 =  (unsigned) (var←c57592 & 0377);
         highlight←v14008 = ((unsigned)var←c57592 >> 8);
         };
SOURCE(17497, 340)
      {
         word b←v14112;
         word h←v14140;
         word outOfGamut←v14168;
SOURCE(17499, 15)
         {
            float tf261;
            b←v14112 = (
               tf261 = (float)(unsigned)black←v13980,  *(word*)&tf261
               );
            };
SOURCE(17516, 19)
         {
            float tf262;
            h←v14140 = (
               tf262 = (float)(unsigned)highlight←v14008,  *(word*)&tf262
               );
            };
SOURCE(17537, 33)
         outOfGamut←v14168 = (*  (ptr) tmp←v13812 );
SOURCE(17572, 43)
         {
            word x263;
            word x264;
            if (((
               x263 = b←v14112,  *(float*)&x263
               ) < (
               x264 = (*  (ptr) &fc53 ),  *(float*)&x264
               ))) {
SOURCE(17589, 17)
               outOfGamut←v14168 = 1;
SOURCE(17608, 7)
               b←v14112 = (*  (ptr) &fc53 );
               };
            };
SOURCE(17618, 55)
         {
            word x265;
            word x266;
            if (((
               x265 = b←v14112,  *(float*)&x265
               ) > (
               x266 = (*  (ptr) &fc96 ),  *(float*)&x266
               ))) {
SOURCE(17641, 17)
               outOfGamut←v14168 = 1;
SOURCE(17660, 13)
               b←v14112 = (*  (ptr) &fc96 );
               };
            };
SOURCE(17676, 43)
         {
            word x267;
            word x268;
            if (((
               x267 = h←v14140,  *(float*)&x267
               ) < (
               x268 = (*  (ptr) &fc53 ),  *(float*)&x268
               ))) {
SOURCE(17693, 17)
               outOfGamut←v14168 = 1;
SOURCE(17712, 7)
               h←v14140 = (*  (ptr) &fc53 );
               };
            };
SOURCE(17722, 59)
         {
            word x269;
            word x270;
            word x271;
            if (((
               x269 = h←v14140,  *(float*)&x269
               ) > (
               x270 = (*  (ptr) &fc96 ),  *(float*)&x270
               ) - (
               x271 = b←v14112,  *(float*)&x271
               ))) {
SOURCE(17747, 17)
               outOfGamut←v14168 = 1;
SOURCE(17766, 15)
               {
                  word x272;
                  word x273;
                  *(float*)&h←v14140 = (
                     x272 = (*  (ptr) &fc96 ),  *(float*)&x272
                     ) - (
                     x273 = b←v14112,  *(float*)&x273
                     );
                  };
               };
            };
SOURCE(17784, 10)
         {
            word limit274;
            (* ((( (ptr) out←v9444)+2)+(
                  limit274 = (* (( (ptr) out←v9444)+1) ),
                  BCK(0, limit274)
                  )) ) = b←v14112;
            };
SOURCE(17796, 10)
         {
            word limit275;
            (* ((( (ptr) out←v9444)+2)+(
                  limit275 = (* (( (ptr) out←v9444)+1) ),
                  BCK(1, limit275)
                  )) ) = h←v14140;
            };
SOURCE(17808, 27)
         (*  (ptr) out←v9444 ) = outOfGamut←v14168;
         };
      };
SOURCE(17843, 27)
   if (((*  (ptr) self←v9388 ) == 1)) {
      };
   }

static word ComputeSource←P1320(data←v9504, sampledColor←v9532, colorOperator←v9560)
   word data←v9504;
   word sampledColor←v9532;
   word colorOperator←v9560;
   {
   register ptr gf←c61272 =  (ptr) &globalframe;
   word var←c9604;
   word pa←v14212;
   word transform←v14240;
   word pixelMap←v14268;
   /* ComputeSource: */ 
SOURCE(17888, 387)
SOURCE(18026, 32)
   pa←v14212 = (* (( (ptr) sampledColor←v9532)+1) );
SOURCE(18060, 85)
   transform←v14240 = (word) GetColorTransform←P900(data←v9504, colorOperator←v9560);
SOURCE(18147, 109)
   {
      word pd276;
      pd276 = (* (( (ptr) (* (( (ptr) gf←c61272)+111)/* var←c55288 */  ))+45) );
      pixelMap←v14268 = (word) ( *( (fPt) ((*  (ptr) pd276 ))))(colorOperator←v9560, transform←v14240, pa←v14212, pd276);
      };
SOURCE(18258, 17)
   return(pixelMap←v14268);
   }

static void HiliteHalftone←P1380(formal←c0590, src←v9692, formal←c0591, formal←c0592)
   word formal←c0590;
   word src←v9692;
   W4 formal←c0591;
   W3 formal←c0592;
   {
   W83 var←c61304;
   /* declaration of dst←v9664 skipped */ 
   /* declaration of bounds←v9720 skipped */ 
   /* declaration of brick←v9748 skipped */ 
   register ptr gf←c61336 =  (ptr) &globalframe;
   /* declaration of var←c57624 skipped */ 
   /* declaration of var←c57656 skipped */ 
   /* declaration of thresholdBuffer←v14312 skipped */ 
   /* declaration of zeroBuffer←v14340 skipped */ 
   /* declaration of bitBuffer←v14480 skipped */ 
   /* declaration of bitBufferMap←v14508 skipped */ 
   (* (( (ptr) &var←c61304)+4)/* dst←v9664 */  ) = formal←c0590;
   (*  (W4Pt) (( (ptr) &var←c61304)+5)/* bounds←v9720 */  ) = formal←c0591;
   (*  (W3Pt) (( (ptr) &var←c61304)+9)/* brick←v9748 */  ) = formal←c0592;
   /* HiliteHalftone: */ 
SOURCE(18281, 3136)
   {
      word tmpAddr277;
      tmpAddr277 = (word) (( (ptr) &var←c61304)+12)/* var←c57624 */ ;
      (*  (ptr) tmpAddr277 ) = ( ((word)  (fPt) Action←P3096) );
      (* (( (ptr) tmpAddr277) + 1) ) = 1;
      };
   {
      word tmpAddr278;
      tmpAddr278 = (word) (( (ptr) &var←c61304)+14)/* var←c57656 */ ;
      (*  (ptr) tmpAddr278 ) = ( ((word)  (fPt) GetHBuffer←P3036) );
      (* (( (ptr) tmpAddr278) + 1) ) = 1;
      };
SOURCE(18433, 83)
   {
      word var←c57688;
      {
         word pd279;
         word idx280;
         pd279 = (* (( (ptr) (* (( (ptr) gf←c61336)+119)/* var←c55864 */  ))+17) );
         var←c57688 = (
            idx280 = (word) ( *( (fPt) ((*  (ptr) pd279 ))))((*  (W4Pt) ((( (ptr) &var←c61304)+5)/* bounds←v9720 */ ) ), pd279),
            SGNCK(idx280)
            );
         };
      {
         word pd281;
         pd281 = (* (( (ptr) (* (( (ptr) gf←c61336)+122)/* var←c56408 */  ))+6) );
         (* (( (ptr) &var←c61304)+16)/* thresholdBuffer←v14312 */  ) = (word) ( *( (fPt) ((*  (ptr) pd281 ))))(var←c57688, pd281);
         };
      };
SOURCE(18518, 30)
   (* (( (ptr) &var←c61304)+17)/* zeroBuffer←v14340 */  ) = 0;
SOURCE(19023, 220)
   {
      W2 var←c57720;
      W2 var←c57752;
      W2 var←c57784;
      W2 var←c57816;
      var←c57720.f0 = 1;
      var←c57720.f1 = 1024;
      var←c57752.f0 = (word) (( (bPt) &var←c61304)+72)/* bitBuffer←v14480 */ ;
      var←c57752.f1 = 0;
      var←c57784.f0 = 0;
      var←c57784.f1 = 0;
      var←c57816.f0 = 0;
      var←c57816.f1 = 0;
      {
         word pd282;
         pd282 = (* (( (ptr) (* (( (ptr) gf←c61336)+122)/* var←c56408 */  ))+25) );
         (* (( (ptr) &var←c61304)+82)/* bitBufferMap←v14508 */  ) = (word) ( *( (fPt) ((*  (ptr) pd282 ))))(var←c57720, 2, 2048, var←c57752, 0, 64
            , var←c57784, var←c57816, pd282);
         };
      };
SOURCE(21234, 11)
   (void) ( *( (fPt) ((*  (ptr) src←v9692 ))))((word) ((( (bPt) &var←c61304)+48)/* var←c57624 */ ), src←v9692);
SOURCE(21247, 51)
   {
      word pd283;
      pd283 = (* (( (ptr) (* (( (ptr) gf←c61336)+122)/* var←c56408 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd283 ))))((* ((( (ptr) &var←c61304)+16)/* thresholdBuffer←v14312 */ ) ), pd283);
      };
SOURCE(21300, 71)
   if (((* (( (ptr) &var←c61304)+17)/* zeroBuffer←v14340 */  ) != 0)) {
SOURCE(21325, 46)
      {
         word pd284;
         pd284 = (* (( (ptr) (* (( (ptr) gf←c61336)+122)/* var←c56408 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd284 ))))((* ((( (ptr) &var←c61304)+17)/* zeroBuffer←v14340 */ ) ), pd284);
         };
      };
SOURCE(21373, 44)
   {
      word pd285;
      pd285 = (* (( (ptr) (* (( (ptr) gf←c61336)+122)/* var←c56408 */  ))+30) );
      (void) ( *( (fPt) ((*  (ptr) pd285 ))))((* ((( (ptr) &var←c61304)+82)/* bitBufferMap←v14508 */ ) ), pd285);
      };
   }

static word GetHBuffer←P3036(pixels←v14612, formal←c61400)
   word pixels←v14612;
   word formal←c61400;
   {
   register ptr gf←c61368 =  (ptr) &globalframe;
   word var←c14656;
   formal←c61400 = (formal←c61400 - 56);
   /* GetHBuffer: */ 
SOURCE(18550, 311)
SOURCE(18641, 220)
   if (((* (( (ptr) pixels←v14612)+1) ) < 2)) {
SOURCE(18678, 130)
      if (((* (( (ptr) formal←c61400)+17) ) == 0)) {
SOURCE(18705, 64)
         {
            word var←c57848;
            {
               word pd286;
               word idx287;
               pd286 = (* (( (ptr) (* (( (ptr) gf←c61368)+119)/* var←c55864 */  ))+17) );
               var←c57848 = (
                  idx287 = (word) ( *( (fPt) ((*  (ptr) pd286 ))))((*  (W4Pt) ((( (ptr) formal←c61400)+5)) ), pd286),
                  SGNCK(idx287)
                  );
               };
            {
               word pd288;
               pd288 = (* (( (ptr) (* (( (ptr) gf←c61368)+122)/* var←c56408 */  ))+6) );
               (* (( (ptr) formal←c61400)+17) ) = (word) ( *( (fPt) ((*  (ptr) pd288 ))))(var←c57848, pd288);
               };
            };
SOURCE(18771, 37)
         {
            word pd289;
            pd289 = (* (( (ptr) (* (( (ptr) gf←c61368)+122)/* var←c56408 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd289 ))))((* (( (ptr) formal←c61400)+17) ), 0, 2147483647, pd289);
            };
         };
SOURCE(18813, 18)
      return((* (( (ptr) formal←c61400)+17) ));
      }
   else {
SOURCE(18842, 19)
      {
         word limit290;
         return((* ((( (ptr) pixels←v14612)+2)+(
               limit290 = (* (( (ptr) pixels←v14612)+1) ),
               BCK(1, limit290)
               )) ));
         };
      };
   }

static void Action←P3096(pixels←v14772, min←v14800, formal←c61464)
   word pixels←v14772;
   W2 min←v14800;
   word formal←c61464;
   {
   register ptr gf←c61432 =  (ptr) &globalframe;
   word blackBuffer←v14828;
   word hiliteBuffer←v14856;
   word count←v14884;
   W2 index←v14912;
   word residual←v14940;
   word t←v14996;
   word b←v15024;
   word h←v15052;
   word unit←v15080 = 256;
   formal←c61464 = (formal←c61464 - 48);
   /* Action: */ 
SOURCE(19245, 1975)
SOURCE(19322, 37)
   {
      word limit291;
      blackBuffer←v14828 = (* ((( (ptr) pixels←v14772)+2)+(
            limit291 = (* (( (ptr) pixels←v14772)+1) ),
            BCK(0, limit291)
            )) );
      };
SOURCE(19361, 47)
   hiliteBuffer←v14856 = (word) GetHBuffer←P3036(pixels←v14772, (word) (( (bPt) formal←c61464)+56));
SOURCE(19410, 26)
   count←v14884 = (*  (ptr) pixels←v14772 );
SOURCE(19438, 19)
   index←v14912 = min←v14800;
SOURCE(19459, 46)
   residual←v14940 = count←v14884;
   (*  (ptr) (* (( (ptr) formal←c61464)+16) ) ) = count←v14884;
SOURCE(19546, 113)
   {
      word pd292;
      pd292 = (* (( (ptr) (* (( (ptr) gf←c61432)+122)/* var←c56408 */  ))+9) );
      t←v14996 = (word) ( *( (fPt) ((*  (ptr) pd292 ))))((* (( (ptr) formal←c61464)+16) ), 0, count←v14884, pd292);
      };
SOURCE(19661, 109)
   {
      word pd293;
      pd293 = (* (( (ptr) (* (( (ptr) gf←c61432)+122)/* var←c56408 */  ))+9) );
      b←v15024 = (word) ( *( (fPt) ((*  (ptr) pd293 ))))(blackBuffer←v14828, 0, count←v14884, pd293);
      };
SOURCE(19772, 110)
   {
      word pd294;
      pd294 = (* (( (ptr) (* (( (ptr) gf←c61432)+122)/* var←c56408 */  ))+9) );
      h←v15052 = (word) ( *( (fPt) ((*  (ptr) pd294 ))))(hiliteBuffer←v14856, 0, count←v14884, pd294);
      };
SOURCE(20232, 111)
   {
      word pd295;
      pd295 = (* (( (ptr) (* (( (ptr) gf←c61432)+122)/* var←c56408 */  ))+45) );
      (void) ( *( (fPt) ((*  (ptr) pd295 ))))((* (( (ptr) formal←c61464)+10) ), (* (( (ptr) formal←c61464)+11) ), min←v14800, (* (
            ( (ptr) formal←c61464)+16) ), pd295);
      };
SOURCE(20345, 875)
   lab←L100026: ;
   if ((residual←v14940 != 0)) {
      }
   else {
      goto lab←L100024;
      };
   {
      word chunkSize←v15348;
      word bitBufferIndex←v15376 = 0;
      word chunkResidual←v15404;
SOURCE(20367, 47)
      chunkSize←v15348 = (MIN( (unsigned) , 1024, residual←v14940));
SOURCE(20441, 35)
      chunkResidual←v15404 = chunkSize←v15348;
SOURCE(20478, 275)
      lab←L100029: ;
      if ((chunkResidual←v15404 >= 8)) {
         }
      else {
         goto lab←L100027;
         };
SOURCE(20506, 103)
      {
         word var←c57912;
         {
            word var←c57944;
            word thresh←v15604;
            word black←v15632;
            word hilite←v15660;
            word var←c0567;
            word var←c58008;
            word thresh←v53284;
            word black←v53312;
            word hilite←v53340;
            word var←c0568;
            word var←c58072;
            word thresh←v53184;
            word black←v53212;
            word hilite←v53240;
            word var←c0569;
            word var←c58136;
            word thresh←v53084;
            word black←v53112;
            word hilite←v53140;
            word var←c0570;
            word var←c58200;
            word thresh←v52984;
            word black←v53012;
            word hilite←v53040;
            word var←c0571;
            word var←c58264;
            word thresh←v52884;
            word black←v52912;
            word hilite←v52940;
            word var←c0572;
            word var←c58328;
            word thresh←v52784;
            word black←v52812;
            word hilite←v52840;
            word var←c0573;
            word var←c58392;
            word thresh←v52684;
            word black←v52712;
            word hilite←v52740;
            thresh←v15604 = (*  (ptr) t←v14996 );
            black←v15632 = (word) XRM←BITRSHIFT((thresh←v15604 - (*  (ptr) b←v15024 )), 31);
            hilite←v15660 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v15604) - (*  (ptr) h←v15052 )), 31);
SOURCE(20160, 69)
            var←c57944 = (black←v15632 + (word) XRM←BITOR(black←v15632, hilite←v15660));
            var←c0567 = ((word) var←c57944 << 2);
            thresh←v53284 = (* (( (ptr) t←v14996)+1) );
            black←v53312 = (word) XRM←BITRSHIFT((thresh←v53284 - (* (( (ptr) b←v15024)+1) )), 31);
            hilite←v53340 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v53284) - (* (( (ptr) h←v15052)+1) )), 31);
SOURCE(20160, 69)
            var←c58008 = (black←v53312 + (word) XRM←BITOR(black←v53312, hilite←v53340));
            var←c0568 = ((word) (var←c0567 + var←c58008) << 2);
            thresh←v53184 = (* (( (ptr) t←v14996)+2) );
            black←v53212 = (word) XRM←BITRSHIFT((thresh←v53184 - (* (( (ptr) b←v15024)+2) )), 31);
            hilite←v53240 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v53184) - (* (( (ptr) h←v15052)+2) )), 31);
SOURCE(20160, 69)
            var←c58072 = (black←v53212 + (word) XRM←BITOR(black←v53212, hilite←v53240));
            var←c0569 = ((word) (var←c0568 + var←c58072) << 2);
            thresh←v53084 = (* (( (ptr) t←v14996)+3) );
            black←v53112 = (word) XRM←BITRSHIFT((thresh←v53084 - (* (( (ptr) b←v15024)+3) )), 31);
            hilite←v53140 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v53084) - (* (( (ptr) h←v15052)+3) )), 31);
SOURCE(20160, 69)
            var←c58136 = (black←v53112 + (word) XRM←BITOR(black←v53112, hilite←v53140));
            var←c0570 = ((word) (var←c0569 + var←c58136) << 2);
            thresh←v52984 = (* (( (ptr) t←v14996)+4) );
            black←v53012 = (word) XRM←BITRSHIFT((thresh←v52984 - (* (( (ptr) b←v15024)+4) )), 31);
            hilite←v53040 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v52984) - (* (( (ptr) h←v15052)+4) )), 31);
SOURCE(20160, 69)
            var←c58200 = (black←v53012 + (word) XRM←BITOR(black←v53012, hilite←v53040));
            var←c0571 = ((word) (var←c0570 + var←c58200) << 2);
            thresh←v52884 = (* (( (ptr) t←v14996)+5) );
            black←v52912 = (word) XRM←BITRSHIFT((thresh←v52884 - (* (( (ptr) b←v15024)+5) )), 31);
            hilite←v52940 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v52884) - (* (( (ptr) h←v15052)+5) )), 31);
SOURCE(20160, 69)
            var←c58264 = (black←v52912 + (word) XRM←BITOR(black←v52912, hilite←v52940));
            var←c0572 = ((word) (var←c0571 + var←c58264) << 2);
            thresh←v52784 = (* (( (ptr) t←v14996)+6) );
            black←v52812 = (word) XRM←BITRSHIFT((thresh←v52784 - (* (( (ptr) b←v15024)+6) )), 31);
            hilite←v52840 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v52784) - (* (( (ptr) h←v15052)+6) )), 31);
SOURCE(20160, 69)
            var←c58328 = (black←v52812 + (word) XRM←BITOR(black←v52812, hilite←v52840));
            var←c0573 = ((word) (var←c0572 + var←c58328) << 2);
            thresh←v52684 = (* (( (ptr) t←v14996)+7) );
            black←v52712 = (word) XRM←BITRSHIFT((thresh←v52684 - (* (( (ptr) b←v15024)+7) )), 31);
            hilite←v52740 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v52684) - (* (( (ptr) h←v15052)+7) )), 31);
SOURCE(20160, 69)
            var←c58392 = (black←v52712 + (word) XRM←BITOR(black←v52712, hilite←v52740));
            var←c57912 = BCK((var←c0573 + var←c58392), 65536);
            };
         (* ((( (hPt) formal←c61464)+36)+BCK(bitBufferIndex←v15376, 128)) ) = var←c57912;
         };
SOURCE(20611, 35)
      bitBufferIndex←v15376 = (bitBufferIndex←v15376 + 1);
SOURCE(20648, 33)
      chunkResidual←v15404 = (chunkResidual←v15404 - 8);
SOURCE(20683, 22)
      t←v14996 = (t←v14996 + 32);
SOURCE(20707, 22)
      b←v15024 = (b←v15024 + 32);
SOURCE(20731, 22)
      h←v15052 = (h←v15052 + 32);
      goto lab←L100029;
      lab←L100027: ;
SOURCE(20764, 289)
      if ((chunkResidual←v15404 != 0)) {
SOURCE(20790, 265)
         {
            word w←v15448 = 0;
            word checkedResidual←v15476;
SOURCE(20809, 39)
            checkedResidual←v15476 = BCK(chunkResidual←v15404, 8);
SOURCE(20850, 29)
            if ((chunkSize←v15348 != residual←v14940)) {
SOURCE(20879, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(20915, 56)
            {
               register word i←v15540 = 0;
               if (( (int)i←v15540 >=  (int)checkedResidual←v15476)) {
                  goto lab←L100038;
                  };
               lab←L100041: ;
SOURCE(20956, 15)
               {
                  word var←c58456;
                  word j←v52552;
                  j←v52552 = i←v15540;
                  {
                     word thresh←v52584;
                     word black←v52612;
                     word hilite←v52640;
                     thresh←v52584 = (* (( (ptr) t←v14996)+j←v52552) );
                     black←v52612 = (word) XRM←BITRSHIFT((thresh←v52584 - (* (( (ptr) b←v15024)+j←v52552) )), 31);
                     hilite←v52640 = (word) XRM←BITRSHIFT(((unit←v15080 - thresh←v52584) - (* (( (ptr) h←v15052)+j←v52552) )), 31);
SOURCE(20160, 69)
                     var←c58456 = (black←v52612 + (word) XRM←BITOR(black←v52612, hilite←v52640));
                     };
                  w←v15448 = (((word) w←v15448 << 2) + var←c58456);
                  };
               i←v15540 = (i←v15540 + 1);
               if ((i←v15540 < checkedResidual←v15476)) {
                  goto lab←L100041;
                  };
               lab←L100038: ;
               };
SOURCE(20982, 71)
            {
               word var←c58520;
               {
                  word idx296;
                  var←c58520 = (
                     idx296 = (word) XRM←BITLSHIFT(w←v15448, (16 - ((word) checkedResidual←v15476 << 1))),
                     BCK(idx296, 65536)
                     );
                  };
               (* ((( (hPt) formal←c61464)+36)+BCK(bitBufferIndex←v15376, 128)) ) = var←c58520;
               };
            };
         };
SOURCE(21058, 98)
      {
         W2 var←c58552;
         W2 var←c58584;
         var←c58552.f0 = 0;
         var←c58552.f1 = 0;
         var←c58584.f0 = 1;
         var←c58584.f1 = chunkSize←v15348;
         {
            word pd297;
            pd297 = (* (( (ptr) (* (( (ptr) gf←c61432)+122)/* var←c56408 */  ))+49) );
            (void) ( *( (fPt) ((*  (ptr) pd297 ))))((* (( (ptr) formal←c61464)+4) ), (* (( (ptr) formal←c61464)+82) ), index←v14912, var←c58552, var←c58584, 0, pd297)
            ;
            };
         };
SOURCE(21158, 29)
      index←v14912.f1 = (index←v14912.f1 + chunkSize←v15348);
SOURCE(21189, 31)
      residual←v14940 = (residual←v14940 - chunkSize←v15348);
      };
   goto lab←L100026;
   lab←L100024: ;
   }

static void HiliteMaskBoxes←P1440(device←v9956, formal←c0593, formal←c0594)
   word device←v9956;
   W4 formal←c0593;
   word formal←c0594;
   {
   W20 var←c61496;
   /* declaration of bounds←v9984 skipped */ 
   /* declaration of boxes←v10012 skipped */ 
   register ptr gf←c61528 =  (ptr) &globalframe;
   /* declaration of var←c58616 skipped */ 
   /* declaration of var←c58648 skipped */ 
   /* declaration of var←c58680 skipped */ 
   /* declaration of data←v15688 skipped */ 
   (*  (W4Pt) (( (ptr) &var←c61496)+4)/* bounds←v9984 */  ) = formal←c0593;
   (* (( (ptr) &var←c61496)+8)/* boxes←v10012 */  ) = formal←c0594;
   /* HiliteMaskBoxes: */ 
SOURCE(21423, 2720)
   {
      word tmpAddr298;
      tmpAddr298 = (word) (( (ptr) &var←c61496)+9)/* var←c58616 */ ;
      (*  (ptr) tmpAddr298 ) = ( ((word)  (fPt) BlackAction←P3672) );
      (* (( (ptr) tmpAddr298) + 1) ) = 1;
      };
   {
      word tmpAddr299;
      tmpAddr299 = (word) (( (ptr) &var←c61496)+11)/* var←c58648 */ ;
      (*  (ptr) tmpAddr299 ) = ( ((word)  (fPt) BoxAction←P3516) );
      (* (( (ptr) tmpAddr299) + 1) ) = 1;
      };
   {
      word tmpAddr300;
      tmpAddr300 = (word) (( (ptr) &var←c61496)+13)/* var←c58680 */ ;
      (*  (ptr) tmpAddr300 ) = ( ((word)  (fPt) Src←P3408) );
      (* (( (ptr) tmpAddr300) + 1) ) = 1;
      };
SOURCE(21503, 32)
   (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ) = XR←Narrow((* (( (ptr) device←v9956)+7) ), (* (( (ptr) gf←c61528)+26) ))
   ;
SOURCE(21537, 2606)
   {
      word var←c58712;
      var←c58712 = (* (( (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ))+16) );
      switch (var←c58712) {
         case 0: 
SOURCE(21566, 5)
            (void) XR←RaiseUnnamedError();
            break;
         case 1: 
SOURCE(21612, 79)
            {
               word pd301;
               pd301 = (* (( (ptr) (* (( (ptr) gf←c61528)+122)/* var←c56408 */  ))+58) );
               (void) ( *( (fPt) ((*  (ptr) pd301 ))))((*  (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ) ), (* (( (ptr) &var←c61496)+8)
                  /* boxes←v10012 */  ), (* (( (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ))+17) ), 0, pd301);
               };
            break;
         case 2: 
SOURCE(21706, 99)
            {
               word pd302;
               pd302 = (* (( (ptr) (* (( (ptr) gf←c61528)+122)/* var←c56408 */  ))+56) );
               (void) ( *( (fPt) ((*  (ptr) pd302 ))))((*  (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ) ), (* (( (ptr) &var←c61496)+8)
                  /* boxes←v10012 */  ), (* (( (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ))+19) ), (* (( (ptr) (* (( (ptr) &var←c61496)+15)
                     /* data←v15688 */  ))+14) ), 0, pd302);
               };
            break;
         case 4: 
SOURCE(21821, 300)
SOURCE(22039, 80)
            (void) HiliteHalftone←P1380((*  (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ) ), (word) (( (bPt) &var←c61496)+52)
               /* var←c58680 */ , (*  (W4Pt) (( (ptr) &var←c61496)+4)/* bounds←v9984 */  ), (*  (W3Pt) (( (ptr) (* (( (ptr) &var←c61496)+15)
                  /* data←v15688 */  ))+12) ));
            break;
         case 3: 
SOURCE(22138, 788)
            {
               /* declaration of paBox←v15924 skipped */ 
SOURCE(22140, 151)
               {
                  word pd303;
                  pd303 = (* (( (ptr) (* (( (ptr) gf←c61528)+112)/* var←c55512 */  ))+49) );
                  (void) ( *( (fPt) ((*  (ptr) pd303 ))))((word) (( (bPt) &var←c61496)+64)/* paBox←v15924 */ , (* (( (ptr) (* (( (ptr) &var←c61496)+15)
                        /* data←v15688 */  ))+22) ), 0, 0, (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ))+20) ))+2) ), (* (
                        ( (ptr) (* (( (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ))+20) ))+3) )
                     , (*  (W4Pt) (( (ptr) gf←c61528)+105)/* var←c55160 */  ), pd303);
                  };
SOURCE(22491, 430)
               {
                  word pd304;
                  pd304 = (* (( (ptr) (* (( (ptr) gf←c61528)+119)/* var←c55864 */  ))+21) );
                  if ((0 != (word) ( *( (fPt) ((*  (ptr) pd304 ))))((*  (W4Pt) (( (ptr) &var←c61496)+4)/* bounds←v9984 */  ), (*  (W4Pt) (( (ptr) &var←c61496)+16)
                     /* paBox←v15924 */  ), pd304))) {
SOURCE(22524, 22)
                     {
                        word pd305;
                        pd305 = (* (( (ptr) &var←c61496)+8)/* boxes←v10012 */  );
                        (void) ( *( (fPt) ((*  (ptr) pd305 ))))((word) ((( (bPt) &var←c61496)+44)/* var←c58648 */ ), pd305);
                        };
                     }
                  else {
SOURCE(22546, 377)
                     {
                        word bpp←v16056;
                        word tile←v16084;
SOURCE(22548, 73)
                        {
                           word pd306;
                           word idx307;
                           pd306 = (* (( (ptr) (* (( (ptr) gf←c61528)+127)/* var←c57144 */  ))+7) );
                           bpp←v16056 =  (unsigned) (word) (* ((( (bPt) gf←c61528)+384)/* var←c55096 */ +(
/*1*/      idx307 = (word) ((word) ( *( (fPt) ((*  (ptr) pd306 ))))((* (( (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ))+20)
/*1*/          ), 0, pd306) + 1),
/*1*/      BCK(idx307, 33)
/*1*/      )) );
                           };
SOURCE(22623, 79)
                        {
                           word pd308;
                           pd308 = (* (( (ptr) (* (( (ptr) gf←c61528)+122)/* var←c56408 */  ))+22) );
                           tile←v16084 = (word) ( *( (fPt) ((*  (ptr) pd308 ))))((*  (W4Pt) (( (ptr) &var←c61496)+16)/* paBox←v15924 */  ), BCK(bpp←v16056, 33)
/*1*/   , 0, pd308);
                           };
SOURCE(22704, 98)
                        {
                           W2 var←c58744;
                           {
/*1*/   word pd309;
/*1*/   pd309 = (* (( (ptr) (* (( (ptr) gf←c61528)+119)/* var←c55864 */  ))+19) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd309 ))))((word) &var←c58744, (*  (W4Pt) (( (ptr) &var←c61496)+16)/* paBox←v15924 */  ), pd309)
/*1*/   ;
/*1*/   };
                           {
/*1*/   word pd310;
/*1*/   pd310 = (* (( (ptr) (* (( (ptr) gf←c61528)+127)/* var←c57144 */  ))+11) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd310 ))))((* (( (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ))+20) ), 0, 0, 0, tile←v16084, (*  (W2Pt) (
/*1*/         ( (ptr) &var←c61496)+16) )
/*1*/      , var←c58744, 0, pd310);
/*1*/   };
                           };
SOURCE(22804, 79)
                        {
                           word pd311;
                           pd311 = (* (( (ptr) (* (( (ptr) gf←c61528)+122)/* var←c56408 */  ))+56) );
                           (void) ( *( (fPt) ((*  (ptr) pd311 ))))((*  (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ) ), (* (( (ptr) &var←c61496)+8)
/*1*/   /* boxes←v10012 */  ), tile←v16084, 0, 0, pd311);
                           };
SOURCE(22885, 36)
                        {
                           word pd312;
                           pd312 = (* (( (ptr) (* (( (ptr) gf←c61528)+122)/* var←c56408 */  ))+23) );
                           (void) ( *( (fPt) ((*  (ptr) pd312 ))))(tile←v16084, pd312);
                           };
                        };
                     };
                  };
               };
            break;
         case 5: case 6: 
SOURCE(22964, 1181)
SOURCE(24013, 130)
            {
               word pd313;
               pd313 = (* (( (ptr) (* (( (ptr) gf←c61528)+124)/* var←c56728 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd313 ))))((* (( (ptr) (* (( (ptr) &var←c61496)+15)/* data←v15688 */  ))+23) ), (* (( (ptr) (* (
                        ( (ptr) &var←c61496)+15)/* data←v15688 */  ))+22) ), 0, (* (( (ptr) &var←c61496)+8)/* boxes←v10012 */  ), (*  (W4Pt) (( (ptr) &var←c61496)+4)
                  /* bounds←v9984 */  ), (word) (( (bPt) &var←c61496)+36)/* var←c58616 */ , pd313);
               };
            break;
         default: 
SOURCE(24159, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
   }

static void Src←P3408(action←v15808, formal←c61592)
   word action←v15808;
   word formal←c61592;
   {
   register ptr gf←c61560 =  (ptr) &globalframe;
   formal←c61592 = (formal←c61592 - 52);
   /* Src: */ 
SOURCE(21823, 11)
SOURCE(21898, 136)
   {
      word pd314;
      pd314 = (* (( (ptr) (* (( (ptr) gf←c61560)+124)/* var←c56728 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd314 ))))((* (( (ptr) (* (( (ptr) formal←c61592)+15) ))+23) ), (* (( (ptr) (* (( (ptr) formal←c61592)+15)
             ))+22) ), (* (( (ptr) (* (( (ptr) formal←c61592)+15) ))+15) ), (* (( (ptr) formal←c61592)+8) ), (*  (W4Pt) (( (ptr) formal←c61592)+4)
          ), action←v15808, pd314);
      };
   }

static void BoxAction←P3516(box←v16028, formal←c61656)
   W4 box←v16028;
   word formal←c61656;
   {
   register ptr gf←c61624 =  (ptr) &globalframe;
   formal←c61656 = (formal←c61656 - 44);
   /* BoxAction: */ 
SOURCE(22293, 17)
SOURCE(22324, 162)
   {
      W2 var←c58776;
      {
         word pd315;
         pd315 = (* (( (ptr) (* (( (ptr) gf←c61624)+119)/* var←c55864 */  ))+19) );
         (void) ( *( (fPt) ((*  (ptr) pd315 ))))((word) &var←c58776, box←v16028, pd315);
         };
      {
         word pd316;
         pd316 = (* (( (ptr) (* (( (ptr) gf←c61624)+127)/* var←c57144 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd316 ))))((* (( (ptr) (* (( (ptr) formal←c61656)+15) ))+20) ), 0, (box←v16028.f0 - (* (( (ptr) formal←c61656)+16)
             )), (box←v16028.f1 - (* (( (ptr) formal←c61656)+17) )), (*  (ptr) (* (( (ptr) formal←c61656)+15) ) ), (*  (W2Pt) &box←v16028 )
            , var←c58776, 0, pd316);
         };
      };
   }

static void BlackAction←P3672(pixels←v16204, min←v16232, formal←c61720)
   word pixels←v16204;
   W2 min←v16232;
   word formal←c61720;
   {
   register ptr gf←c61688 =  (ptr) &globalframe;
   word count←v16260;
   word buffer←v16288;
   word bufferPointer←v16316;
   formal←c61720 = (formal←c61720 - 36);
   /* BlackAction: */ 
SOURCE(22966, 19)
SOURCE(23043, 26)
   count←v16260 = (*  (ptr) pixels←v16204 );
SOURCE(23071, 32)
   {
      word limit317;
      buffer←v16288 = (* ((( (ptr) pixels←v16204)+2)+(
            limit317 = (* (( (ptr) pixels←v16204)+1) ),
            BCK(0, limit317)
            )) );
      };
SOURCE(23105, 121)
   {
      word pd318;
      word limit319;
      pd318 = (* (( (ptr) (* (( (ptr) gf←c61688)+122)/* var←c56408 */  ))+9) );
      bufferPointer←v16316 = (word) ( *( (fPt) ((*  (ptr) pd318 ))))((* ((( (ptr) pixels←v16204)+2)+(
               limit319 = (* (( (ptr) pixels←v16204)+1) ),
               BCK(0, limit319)
               )) ), 0, count←v16260, pd318);
      };
SOURCE(23228, 759)
   {
      word var←c58808;
      var←c58808 = (* (( (ptr) (* (( (ptr) formal←c61720)+15) ))+16) );
      if ((var←c58808 == 5)) {
SOURCE(23266, 241)
SOURCE(23302, 92)
         {
            register word i←v16444 = 0;
            if ((i←v16444 >= count←v16260)) {
               goto lab←L100043;
               };
            lab←L100046: ;
SOURCE(23330, 64)
            if (((* (( (ptr) bufferPointer←v16316)+i←v16444) ) == 0)) {
               (* (( (ptr) bufferPointer←v16316)+i←v16444) ) = 0;
               }
            else {
               (* (( (ptr) bufferPointer←v16316)+i←v16444) ) = 2;
               };
            i←v16444 = (i←v16444 + 1);
            if ((i←v16444 < count←v16260)) {
               goto lab←L100046;
               };
            lab←L100043: ;
            };
SOURCE(23405, 100)
         {
            W2 var←c58840;
            var←c58840.f0 = 0;
            var←c58840.f1 = 1;
            {
               word pd320;
               pd320 = (* (( (ptr) (* (( (ptr) gf←c61688)+122)/* var←c56408 */  ))+47) );
               (void) ( *( (fPt) ((*  (ptr) pd320 ))))((*  (ptr) (* (( (ptr) formal←c61720)+15) ) ), min←v16232, var←c58840, buffer←v16288, 0, count←v16260
                  , 0, pd320);
               };
            };
         }
      else {
         if ((var←c58808 == 6)) {
SOURCE(23531, 458)
SOURCE(23550, 77)
            {
               register word i←v16532 = 0;
               if ((i←v16532 >= count←v16260)) {
                  goto lab←L100047;
                  };
               lab←L100050: ;
SOURCE(23578, 49)
               (* (( (ptr) bufferPointer←v16316)+i←v16532) ) = (0 - (* (( (ptr) bufferPointer←v16316)+i←v16532) ));
               i←v16532 = (i←v16532 + 1);
               if ((i←v16532 < count←v16260)) {
                  goto lab←L100050;
                  };
               lab←L100047: ;
               };
SOURCE(23638, 129)
            {
               W2 var←c58872;
               var←c58872.f0 = 0;
               var←c58872.f1 = 1;
               {
                  word pd321;
                  pd321 = (* (( (ptr) (* (( (ptr) gf←c61688)+122)/* var←c56408 */  ))+47) );
                  (void) ( *( (fPt) ((*  (ptr) pd321 ))))((*  (ptr) (* (( (ptr) formal←c61720)+15) ) ), min←v16232, var←c58872, buffer←v16288, 0, count←v16260
                     , 3, pd321);
                  };
               };
SOURCE(23769, 85)
            {
               register word i←v16576 = 0;
               if ((i←v16576 >= count←v16260)) {
                  goto lab←L100051;
                  };
               lab←L100054: ;
SOURCE(23797, 57)
               {
                  word var←c58904;
                  var←c58904 = (word) XRM←BITAND((* (( (ptr) bufferPointer←v16316)+i←v16576) ), 2);
                  (* (( (ptr) bufferPointer←v16316)+i←v16576) ) = var←c58904;
                  };
               i←v16576 = (i←v16576 + 1);
               if ((i←v16576 < count←v16260)) {
                  goto lab←L100054;
                  };
               lab←L100051: ;
               };
SOURCE(23865, 122)
            {
               W2 var←c58936;
               var←c58936.f0 = 0;
               var←c58936.f1 = 1;
               {
                  word pd322;
                  pd322 = (* (( (ptr) (* (( (ptr) gf←c61688)+122)/* var←c56408 */  ))+47) );
                  (void) ( *( (fPt) ((*  (ptr) pd322 ))))((*  (ptr) (* (( (ptr) formal←c61720)+15) ) ), min←v16232, var←c58936, buffer←v16288, 0, count←v16260
                     , 4, pd322);
                  };
               };
            }
         else {
SOURCE(24003, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   }

static void HiliteMaskBitmap←P1500(device←v10072, bitmap←v10100, delta←v10128, bounds←v10156, boxes←v10184)
   word device←v10072;
   word bitmap←v10100;
   W2 delta←v10128;
   W4 bounds←v10156;
   word boxes←v10184;
   {
   W21 var←c61752;
   register ptr gf←c61784 =  (ptr) &globalframe;
   /* declaration of var←c58968 skipped */ 
   /* declaration of data←v16620 skipped */ 
   /* HiliteMaskBitmap: */ 
SOURCE(24170, 1652)
   {
      word tmpAddr323;
      tmpAddr323 = (word) (( (ptr) &var←c61752)+4)/* var←c58968 */ ;
      (*  (ptr) tmpAddr323 ) = ( ((word)  (fPt) FastTransfer←P4212) );
      (* (( (ptr) tmpAddr323) + 1) ) = 1;
      };
SOURCE(24293, 32)
   (* (( (ptr) &var←c61752)+6)/* data←v16620 */  ) = XR←Narrow((* (( (ptr) device←v10072)+7) ), (* (( (ptr) gf←c61784)+26) ))
   ;
SOURCE(24327, 1396)
   {
      word var←c59000;
      var←c59000 = bitmap←v10100;
      if ((var←c59000 == 0)) {
         goto lab←L100055;
         };
      if (((* (( (ptr) var←c59000)+6) ) == 0)) {
         {
            /* declaration of srcRast←v16664 skipped */ 
            (* (( (ptr) &var←c61752)+7)/* srcRast←v16664 */  ) = var←c59000;
SOURCE(24379, 1364)
            {
               /* declaration of srcBitsPerLine←v16708 skipped */ 
               word var←c59032;
               word map←v53640;
SOURCE(24381, 44)
               {
                  word idx324;
                  (* (( (ptr) &var←c61752)+8)/* srcBitsPerLine←v16708 */  ) = (
                     idx324 = (* (( (ptr) (* (( (ptr) &var←c61752)+7)/* srcRast←v16664 */  ))+7) ),
                     SGNCK(idx324)
                     );
                  };
SOURCE(24427, 1296)
               {
                  word tc325;
                  map←v53640 = (* (( (ptr) &var←c61752)+7)/* srcRast←v16664 */  );
                  var←c59032 = (* (( (ptr) map←v53640)+5) );
                  if ((var←c59032 == 1)) {
                     tc325 =  (word) (((* (( (ptr) &var←c61752)+8)/* srcBitsPerLine←v16708 */  ) & 037) == 0);
                     }
                  else {
                     tc325 =  (word) 0;
                     };
                  if (tc325) {
SOURCE(24504, 1219)
                     {
                        word var←c59064;
                        var←c59064 = (*  (ptr) (* (( (ptr) &var←c61752)+6)/* data←v16620 */  ) );
                        if ((var←c59064 == 0)) {
                           goto lab←L100057;
                           };
                        if (((* (( (ptr) var←c59064)+6) ) == 0)) {
                           {
/*1*/   /* declaration of dstRast←v16752 skipped */ 
/*1*/   (* (( (ptr) &var←c61752)+9)/* dstRast←v16752 */  ) = var←c59064;
SOURCE(24564, 1164)
/*1*/   {
/*1*/      /* declaration of dstBitsPerLine←v16796 skipped */ 
/*1*/      word dstBitsPerSample←v16824;
SOURCE(24566, 44)
/*1*/      {
/*1*/         word idx326;
/*1*/         (* (( (ptr) &var←c61752)+10)/* dstBitsPerLine←v16796 */  ) = (
/*1*/            idx326 = (* (( (ptr) (* (( (ptr) &var←c61752)+9)/* dstRast←v16752 */  ))+7) ),
/*1*/            SGNCK(idx326)
/*1*/            );
/*1*/         };
SOURCE(24612, 51)
/*1*/      {
/*1*/         word var←c59096;
/*1*/         word map←v53592;
/*1*/         map←v53592 = (* (( (ptr) &var←c61752)+9)/* dstRast←v16752 */  );
/*1*/         var←c59096 = (* (( (ptr) map←v53592)+5) );
/*1*/         dstBitsPerSample←v16824 = BCK((var←c59096 - 2), 1);
/*1*/         };
SOURCE(24692, 1031)
/*1*/      if ((((* (( (ptr) &var←c61752)+10)/* dstBitsPerLine←v16796 */  ) & 037) == 0)) {
SOURCE(24734, 991)
/*1*/         {
/*1*/            /* declaration of dstBox←v16916 skipped */ 
/*1*/            /* declaration of srcBox←v16944 skipped */ 
/*1*/            /* declaration of dstWpl←v16972 skipped */ 
/*1*/            /* declaration of maskWpl←v17000 skipped */ 
/*1*/            word var←c59224;
/*1*/            word map←v53544;
SOURCE(24736, 28)
/*1*/            {
/*1*/               word map←v53928;
/*1*/               map←v53928 = (* (( (ptr) &var←c61752)+9)/* dstRast←v16752 */  );
/*1*/               (*  (W4Pt) (( (ptr) &var←c61752)+11)/* dstBox←v16916 */  ) = (*  (W4Pt) map←v53928 );
/*1*/               };
SOURCE(24766, 48)
/*1*/            {
/*1*/               W4 var←c59160;
/*1*/               {
/*1*/                  W4 var←c59192;
/*1*/                  word map←v53880;
/*1*/                  map←v53880 = (* (( (ptr) &var←c61752)+7)/* srcRast←v16664 */  );
/*1*/                  var←c59192 = (*  (W4Pt) map←v53880 );
/*1*/                  var←c59160 = var←c59192;
/*1*/                  };
/*1*/               {
/*1*/                  W4 var←c0417;
/*1*/                  {
/*1*/                     word pd327;
/*1*/                     pd327 = (* (( (ptr) (* (( (ptr) gf←c61784)+119)/* var←c55864 */  ))+20) );
/*1*/                     (void) ( *( (fPt) ((*  (ptr) pd327 ))))((word) &var←c0417, var←c59160, delta←v10128, pd327);
/*1*/                     };
/*1*/                  (*  (W4Pt) (( (ptr) &var←c61752)+15)/* srcBox←v16944 */  ) = var←c0417;
/*1*/                  };
/*1*/               };
SOURCE(24816, 46)
/*1*/            (* (( (ptr) &var←c61752)+19)/* dstWpl←v16972 */  ) = ((* (( (ptr) &var←c61752)+10)/* dstBitsPerLine←v16796 */  ) >> 5);
SOURCE(24864, 47)
/*1*/            (* (( (ptr) &var←c61752)+20)/* maskWpl←v17000 */  ) = ((* (( (ptr) &var←c61752)+8)/* srcBitsPerLine←v16708 */  ) >> 5);
SOURCE(25623, 37)
/*1*/            map←v53544 = (* (( (ptr) &var←c61752)+9)/* dstRast←v16752 */  );
/*1*/            var←c59224 = (* (( (ptr) map←v53544)+5) );
/*1*/            if ((var←c59224 != 2)) {
SOURCE(25660, 5)
/*1*/               (void) XR←RaiseUnnamedError();
/*1*/               };
SOURCE(25696, 19)
/*1*/            (void) ( *( (fPt) ((*  (ptr) boxes←v10184 ))))((word) ((( (bPt) &var←c61752)+16)/* var←c58968 */ ), boxes←v10184);
SOURCE(25717, 6)
/*1*/            return;
/*1*/            };
/*1*/         };
/*1*/      };
/*1*/   };
                           }
                        else {
                           lab←L100057: ;
                           };
                        };
                     };
                  };
               };
            };
         }
      else {
         lab←L100055: ;
         };
      };
SOURCE(25755, 67)
   {
      word pd328;
      pd328 = (* (( (ptr) (* (( (ptr) gf←c61784)+128)/* var←c59256 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd328 ))))(device←v10072, bitmap←v10100, delta←v10128, bounds←v10156, boxes←v10184, pd328);
      };
   }

static void FastTransfer←P4212(box←v50640, formal←c61816)
   W4 box←v50640;
   word formal←c61816;
   {
   word sSize←v17072;
   word fSize←v17100;
   formal←c61816 = (formal←c61816 - 16);
   /* FastTransfer: */ 
SOURCE(24913, 37)
SOURCE(24952, 36)
   sSize←v17072 = (box←v50640.f2 - box←v50640.f0);
SOURCE(24990, 36)
   fSize←v17100 = (box←v50640.f3 - box←v50640.f1);
SOURCE(25028, 589)
   if ( ( ( (int)sSize←v17072 >  (int)0) ? ( (int)fSize←v17100 >  (int)0) : 0 ) ) {
SOURCE(25060, 557)
      {
         word dstBitIndex←v17144;
         word srcBitIndex←v17172;
SOURCE(25062, 153)
         dstBitIndex←v17144 = (((* (( (ptr) (* (( (ptr) formal←c61816)+9) ))+9) ) + ((box←v50640.f0 - (* (( (ptr) formal←c61816)+11)
          )) * (* (( (ptr) formal←c61816)+10) ))) + (word) XRM←BITLSHIFT((box←v50640.f1 - (* (( (ptr) formal←c61816)+12) )), 1));
SOURCE(25217, 119)
         srcBitIndex←v17172 = (((* (( (ptr) (* (( (ptr) formal←c61816)+7) ))+9) ) + ((box←v50640.f0 - (* (( (ptr) formal←c61816)+15)
          )) * (* (( (ptr) formal←c61816)+8) ))) + (box←v50640.f1 - (* (( (ptr) formal←c61816)+16) )));
SOURCE(25338, 279)
         {
            word var←c59288;
            var←c59288 = (word) XRM←BITRSHIFT(dstBitIndex←v17144, 1);
            (void) StoreWithColorMask2←P1680((* (( (ptr) (* (( (ptr) formal←c61816)+7) ))+8) ), srcBitIndex←v17172, (* (( (ptr) formal←c61816)+20)
                ), (* (( (ptr) (* (( (ptr) formal←c61816)+9) ))+8) ), var←c59288, (* (( (ptr) formal←c61816)+19) )
               , SGNCK(sSize←v17072), SGNCK(fSize←v17100), (* (( (ptr) (* (( (ptr) formal←c61816)+6) ))+18) ));
            };
         };
      };
   }

static void HiliteMaskRawBitmaps←P1560(device←v10244, list←v10272)
   word device←v10244;
   word list←v10272;
   {
   register ptr gf←c61848 =  (ptr) &globalframe;
   word data←v17216;
   word rast←v17244;
   word dstPtr←v17272;
   word dstOff←v17300;
   word dstBitsPerLine←v17328;
   word dstWpl←v17356;
   word dstBitsPerSample←v17384;
   word colorWord←v17440;
   /* HiliteMaskRawBitmaps: */ 
SOURCE(25828, 1153)
SOURCE(25937, 32)
   data←v17216 = XR←Narrow((* (( (ptr) device←v10244)+7) ), (* (( (ptr) gf←c61848)+26) ));
SOURCE(25971, 46)
   rast←v17244 = (*  (ptr) data←v17216 );
   if ((rast←v17244 == 0)) {
      goto lab←L100062;
      };
   if (((* (( (ptr) rast←v17244)+6) ) == 0)) {
      goto lab←L100062;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100062: ;
SOURCE(26019, 58)
   dstPtr←v17272 = (* (( (ptr) rast←v17244)+8) );
SOURCE(26079, 30)
   dstOff←v17300 = (* (( (ptr) rast←v17244)+9) );
SOURCE(26111, 41)
   {
      word idx329;
      dstBitsPerLine←v17328 = (
         idx329 = (* (( (ptr) rast←v17244)+7) ),
         SGNCK(idx329)
         );
      };
SOURCE(26154, 46)
   dstWpl←v17356 = ((word) dstBitsPerLine←v17328 >> 5);
SOURCE(26202, 48)
   {
      word var←c59352;
      word map←v53496;
      map←v53496 = rast←v17244;
      var←c59352 = (* (( (ptr) map←v53496)+5) );
      dstBitsPerSample←v17384 = BCK((var←c59352 - 2), 1);
      };
SOURCE(26279, 32)
   colorWord←v17440 = (* (( (ptr) data←v17216)+18) );
SOURCE(26313, 668)
   lab←L100066: ;
   if ((list←v10272 != 0)) {
      }
   else {
      goto lab←L100064;
      };
   {
      word r←v17516;
      word sSize←v17544;
      word fSize←v17572;
SOURCE(26333, 56)
      r←v17516 = list←v10272;
SOURCE(26391, 58)
      sSize←v17544 = ((* (( (ptr) list←v10272)+2) ) - (*  (ptr) list←v10272 ));
SOURCE(26451, 58)
      fSize←v17572 = ((* (( (ptr) list←v10272)+3) ) - (* (( (ptr) list←v10272)+1) ));
SOURCE(26511, 451)
      if ( ( ( (int)sSize←v17544 >  (int)0) ? ( (int)fSize←v17572 >  (int)0) : 0 ) ) {
SOURCE(26543, 419)
         {
            word dstBitIndex←v17628;
SOURCE(26545, 153)
            {
               W4 var←c59384;
               word map←v53832;
               word var←c0574;
               word var←c0575;
               word var←c0576;
               word var←c0577;
               word var←c59416;
               map←v53832 = rast←v17244;
               var←c59384 = (*  (W4Pt) map←v53832 );
               var←c0574 = var←c59384.f0;
               var←c0575 = ((*  (ptr) r←v17516 ) - var←c0574);
               var←c0576 = (var←c0575 * dstBitsPerLine←v17328);
               var←c0577 = (dstOff←v17300 + var←c0576);
               {
                  W4 var←c59448;
                  word map←v53784;
                  word var←c0578;
                  map←v53784 = rast←v17244;
                  var←c59448 = (*  (W4Pt) map←v53784 );
                  var←c0578 = var←c59448.f1;
                  var←c59416 = ((* (( (ptr) r←v17516)+1) ) - var←c0578);
                  };
               dstBitIndex←v17628 = (var←c0577 + (word) XRM←BITLSHIFT(var←c59416, 1));
               };
SOURCE(26700, 262)
            {
               word var←c59480;
               var←c59480 = (word) XRM←BITRSHIFT(dstBitIndex←v17628, 1);
               (void) StoreWithColorMask2←P1680((* (( (ptr) r←v17516)+5) ), 0, ((* (( (ptr) r←v17516)+4) ) >> 5), dstPtr←v17272, var←c59480, dstWpl←v17356
                  , SGNCK(sSize←v17544), SGNCK(fSize←v17572), colorWord←v17440);
               };
            };
         };
SOURCE(26965, 16)
      list←v10272 = (* (( (ptr) list←v10272)+7) );
      };
   goto lab←L100066;
   lab←L100064: ;
   }

static word MakeExpandArray2←P1620()
   {
   register ptr gf←c61880 =  (ptr) &globalframe;
   word var←c10444;
   word new←v17672;
   /* MakeExpandArray2: */ 
SOURCE(27100, 302)
SOURCE(27154, 50)
   new←v17672 = XR←NewObject(512, (* (( (ptr) gf←c61880)+13) ));
SOURCE(27206, 173)
   {
      register word b←v17728 = 0;
      lab←L100072: ;
      {
         word elem←v17772 = 3;
         word word←v17800 = 0;
         word x←v17828;
SOURCE(27261, 11)
         x←v17828 = b←v17728;
SOURCE(27274, 81)
         lab←L100075: ;
         if ((x←v17828 != 0)) {
            }
         else {
            goto lab←L100073;
            };
SOURCE(27289, 38)
         if (((x←v17828 & 1) == 1)) {
SOURCE(27309, 18)
            word←v17800 = (word←v17800 + elem←v17772);
            };
SOURCE(27329, 15)
         elem←v17772 = ((word) elem←v17772 << 2);
SOURCE(27346, 9)
         x←v17828 = ((word) x←v17828 >> 1);
         goto lab←L100075;
         lab←L100073: ;
SOURCE(27366, 13)
         (* (( (hPt) new←v17672)+b←v17728) ) = BCK(word←v17800, 65536);
         };
      if ((b←v17728 >= 255)) {
         goto lab←L100069;
         };
      b←v17728 = (b←v17728 + 1);
      goto lab←L100072;
      lab←L100069: ;
      };
SOURCE(27390, 12)
   return(new←v17672);
   }

static void StoreWithColorMask2←P1680(maskBase←v10516, maskOffset←v10544, maskWpl←v10572, dstBase←v10600, dstOffset←v10628, dstWpl←v10656, height←v10684, width←v10712, colorWord←v10740)
   word maskBase←v10516;
   word maskOffset←v10544;
   word maskWpl←v10572;
   word dstBase←v10600;
   word dstOffset←v10628;
   word dstWpl←v10656;
   word height←v10684;
   word width←v10712;
   word colorWord←v10740;
   {
   register ptr gf←c61912 =  (ptr) &globalframe;
   /* StoreWithColorMask2: */ 
SOURCE(27408, 3827)
SOURCE(27939, 3310)
   {
      word expand←v17872;
      word dstMod←v17900;
      word maskMod←v17928;
      word tailMask←v17956;
SOURCE(27941, 39)
      expand←v17872 = (* (( (ptr) gf←c61912)+9)/* expandArray2←v5464 */  );
SOURCE(27982, 53)
      dstOffset←v10628 = ((word) dstOffset←v10628 << 1);
      dstMod←v17900 = (dstOffset←v10628 & 037);
SOURCE(28037, 39)
      maskMod←v17928 = (maskOffset←v10544 & 037);
SOURCE(28078, 74)
      {
         word var←c59544;
         var←c59544 = (word) XRM←BITRSHIFT( (word) -1, (width←v10712 & 037));
         tailMask←v17956 = (word) XRM←BITNOT(var←c59544);
         };
SOURCE(28154, 48)
      dstBase←v10600 = (dstBase←v10600 + ((word) ((word) dstOffset←v10628 >> 5) << 2));
SOURCE(28205, 51)
      maskBase←v10516 = (maskBase←v10516 + ((word) ((word) maskOffset←v10544 >> 5) << 2));
SOURCE(28258, 41)
      if ((tailMask←v17956 == 0)) {
SOURCE(28279, 20)
         tailMask←v17956 =  (word) -1;
         };
SOURCE(28301, 2934)
      if ( ( (width←v10712 <= 32) ? (maskMod←v17928 == 0) : 0 ) ) {
SOURCE(28340, 1172)
         lab←L100078: ;
SOURCE(28340, 1172)
         {
            word maskW←v18012;
SOURCE(28343, 50)
            maskW←v18012 = (word) XRM←BITAND(tailMask←v17956, (*  (ptr) maskBase←v10516 ));
SOURCE(28395, 987)
            if ((maskW←v18012 != 0)) {
SOURCE(28413, 971)
               {
                  word b0←v18056;
                  word b1←v18084;
                  word b2←v18112;
                  word b3←v18140;
                  word dstMask0←v18168;
                  word dstMask1←v18196;
                  word dstMask2←v18224 = 0;
SOURCE(28415, 46)
                  b0←v18056 = ((word) XRM←BITRSHIFT(maskW←v18012, 24) & 0377);
SOURCE(28463, 46)
                  b1←v18084 = ((word) XRM←BITRSHIFT(maskW←v18012, 16) & 0377);
SOURCE(28511, 45)
                  b2←v18112 = ((word) XRM←BITRSHIFT(maskW←v18012, 8) & 0377);
SOURCE(28558, 24)
                  b3←v18140 = (maskW←v18012 & 0377);
SOURCE(28584, 62)
                  dstMask0←v18168 = ((word) XRM←BITLSHIFT( (unsigned) (word) (* (( (hPt) expand←v17872)+b0←v18056) ), 16) +  (unsigned) (word) (* (
                     ( (hPt) expand←v17872)+b1←v18084) ));
SOURCE(28648, 62)
                  dstMask1←v18196 = ((word) XRM←BITLSHIFT( (unsigned) (word) (* (( (hPt) expand←v17872)+b2←v18112) ), 16) +  (unsigned) (word) (* (
                     ( (hPt) expand←v17872)+b3←v18140) ));
SOURCE(28732, 236)
                  if ((dstMod←v17900 != 0)) {
SOURCE(28751, 219)
                     {
                        word dmc←v18268;
SOURCE(28753, 43)
                        dmc←v18268 = ((32 - dstMod←v17900) & 037);
SOURCE(28798, 42)
                        dstMask2←v18224 = (word) XRM←BITLSHIFT(dstMask1←v18196, dmc←v18268);
SOURCE(28842, 79)
                        dstMask1←v18196 = ((word) XRM←BITLSHIFT(dstMask0←v18168, dmc←v18268) + (word) XRM←BITRSHIFT(dstMask1←v18196, dstMod←v17900)
                        );
SOURCE(28923, 45)
                        dstMask0←v18168 = (word) XRM←BITRSHIFT(dstMask0←v18168, dstMod←v17900);
                        };
                     };
SOURCE(28973, 135)
                  if ((dstMask0←v18168 != 0)) {
SOURCE(28994, 114)
                     {
                        word var←c59576;
                        {
                           word var←c59608;
                           word var←c59672;
                           {
/*1*/   word var←c59640;
/*1*/   var←c59640 = (word) XRM←BITNOT(dstMask0←v18168);
/*1*/   var←c59608 = (word) XRM←BITAND(var←c59640, (*  (ptr) dstBase←v10600 ));
/*1*/   };
                           var←c59672 = (word) XRM←BITAND(dstMask0←v18168, colorWord←v10740);
                           var←c59576 = (word) XRM←BITOR(var←c59608, var←c59672);
                           };
                        (*  (ptr) dstBase←v10600 ) = var←c59576;
                        };
                     };
SOURCE(29110, 135)
                  if ((dstMask1←v18196 != 0)) {
SOURCE(29131, 114)
                     {
                        word var←c59704;
                        {
                           word var←c59736;
                           word var←c59800;
                           {
/*1*/   word var←c59768;
/*1*/   var←c59768 = (word) XRM←BITNOT(dstMask1←v18196);
/*1*/   var←c59736 = (word) XRM←BITAND(var←c59768, (* (( (ptr) dstBase←v10600)+1) ));
/*1*/   };
                           var←c59800 = (word) XRM←BITAND(dstMask1←v18196, colorWord←v10740);
                           var←c59704 = (word) XRM←BITOR(var←c59736, var←c59800);
                           };
                        (* (( (ptr) dstBase←v10600)+1) ) = var←c59704;
                        };
                     };
SOURCE(29247, 135)
                  if ((dstMask2←v18224 != 0)) {
SOURCE(29268, 114)
                     {
                        word var←c59832;
                        {
                           word var←c59864;
                           word var←c59928;
                           {
/*1*/   word var←c59896;
/*1*/   var←c59896 = (word) XRM←BITNOT(dstMask2←v18224);
/*1*/   var←c59864 = (word) XRM←BITAND(var←c59896, (* (( (ptr) dstBase←v10600)+2) ));
/*1*/   };
                           var←c59928 = (word) XRM←BITAND(dstMask2←v18224, colorWord←v10740);
                           var←c59832 = (word) XRM←BITOR(var←c59864, var←c59928);
                           };
                        (* (( (ptr) dstBase←v10600)+2) ) = var←c59832;
                        };
                     };
                  };
               };
SOURCE(29387, 19)
            if ((height←v10684 == 1)) {
SOURCE(29406, 4)
               goto lab←L100077;
               };
SOURCE(29412, 40)
            maskBase←v10516 = (maskBase←v10516 + ((word) maskWpl←v10572 << 2));
SOURCE(29454, 37)
            dstBase←v10600 = (dstBase←v10600 + ((word) dstWpl←v10656 << 2));
SOURCE(29493, 19)
            height←v10684 = (height←v10684 - 1);
            };
         goto lab←L100078;
         lab←L100077: ;
         }
      else {
SOURCE(29530, 1716)
         {
            word maskMask←v18312;
            word maskModC←v18340;
SOURCE(29532, 74)
            {
               word var←c59960;
               var←c59960 = (word) XRM←BITRSHIFT( (word) -1, (width←v10712 & 037));
               maskMask←v18312 = (word) XRM←BITNOT(var←c59960);
               };
SOURCE(29608, 47)
            maskModC←v18340 = ((32 - maskMod←v17928) & 037);
SOURCE(29657, 1578)
            lab←L100081: ;
SOURCE(29657, 1578)
            {
               word dstPtr←v18384;
               word maskPtr←v18412;
               word rem←v18440;
SOURCE(29660, 29)
               dstPtr←v18384 = dstBase←v10600;
SOURCE(29691, 31)
               maskPtr←v18412 = maskBase←v10516;
SOURCE(29724, 21)
               rem←v18440 = width←v10712;
SOURCE(29747, 1352)
               lab←L100084: ;
SOURCE(29747, 1352)
               {
                  word maskW←v18484;
SOURCE(29750, 24)
                  maskW←v18484 = (*  (ptr) maskPtr←v18412 );
SOURCE(29805, 141)
                  if ((maskMod←v17928 != 0)) {
SOURCE(29827, 40)
                     maskW←v18484 = (word) XRM←BITLSHIFT(maskW←v18484, maskMod←v17928);
SOURCE(29869, 77)
                     if ((rem←v18440 > maskModC←v18340)) {
SOURCE(29892, 54)
                        maskW←v18484 = (maskW←v18484 + (word) XRM←BITRSHIFT((* (( (ptr) maskPtr←v18412)+1) ), maskModC←v18340));
                        };
                     };
SOURCE(29951, 56)
                  if ((rem←v18440 < 32)) {
SOURCE(29969, 38)
                     maskW←v18484 = (word) XRM←BITAND(maskW←v18484, tailMask←v17956);
                     };
SOURCE(30009, 981)
                  if ((maskW←v18484 != 0)) {
SOURCE(30027, 965)
                     {
                        word b0←v18528;
                        word b1←v18556;
                        word b2←v18584;
                        word b3←v18612;
                        word dstMask0←v18640;
                        word dstMask1←v18668;
                        word dstMask2←v18696 = 0;
SOURCE(30029, 46)
                        b0←v18528 = ((word) XRM←BITRSHIFT(maskW←v18484, 24) & 0377);
SOURCE(30077, 46)
                        b1←v18556 = ((word) XRM←BITRSHIFT(maskW←v18484, 16) & 0377);
SOURCE(30125, 45)
                        b2←v18584 = ((word) XRM←BITRSHIFT(maskW←v18484, 8) & 0377);
SOURCE(30172, 24)
                        b3←v18612 = (maskW←v18484 & 0377);
SOURCE(30198, 62)
                        dstMask0←v18640 = ((word) XRM←BITLSHIFT( (unsigned) (word) (* (( (hPt) expand←v17872)+b0←v18528) ), 16) +  (unsigned) (word) (* (
                           ( (hPt) expand←v17872)+b1←v18556) ));
SOURCE(30262, 62)
                        dstMask1←v18668 = ((word) XRM←BITLSHIFT( (unsigned) (word) (* (( (hPt) expand←v17872)+b2←v18584) ), 16) +  (unsigned) (word) (* (
                           ( (hPt) expand←v17872)+b3←v18612) ));
SOURCE(30346, 236)
                        if ((dstMod←v17900 != 0)) {
SOURCE(30365, 219)
                           {
/*1*/   word dmc←v18740;
SOURCE(30367, 43)
/*1*/   dmc←v18740 = ((32 - dstMod←v17900) & 037);
SOURCE(30412, 42)
/*1*/   dstMask2←v18696 = (word) XRM←BITLSHIFT(dstMask1←v18668, dmc←v18740);
SOURCE(30456, 79)
/*1*/   dstMask1←v18668 = ((word) XRM←BITLSHIFT(dstMask0←v18640, dmc←v18740) + (word) XRM←BITRSHIFT(dstMask1←v18668, dstMod←v17900)
/*1*/   );
SOURCE(30537, 45)
/*1*/   dstMask0←v18640 = (word) XRM←BITRSHIFT(dstMask0←v18640, dstMod←v17900);
/*1*/   };
                           };
SOURCE(30587, 133)
                        if ((dstMask0←v18640 != 0)) {
SOURCE(30608, 112)
                           {
/*1*/   word var←c59992;
/*1*/   {
/*1*/      word var←c60024;
/*1*/      word var←c60088;
/*1*/      {
/*1*/         word var←c60056;
/*1*/         var←c60056 = (word) XRM←BITNOT(dstMask0←v18640);
/*1*/         var←c60024 = (word) XRM←BITAND(var←c60056, (*  (ptr) dstPtr←v18384 ));
/*1*/         };
/*1*/      var←c60088 = (word) XRM←BITAND(dstMask0←v18640, colorWord←v10740);
/*1*/      var←c59992 = (word) XRM←BITOR(var←c60024, var←c60088);
/*1*/      };
/*1*/   (*  (ptr) dstPtr←v18384 ) = var←c59992;
/*1*/   };
                           };
SOURCE(30722, 133)
                        if ((dstMask1←v18668 != 0)) {
SOURCE(30743, 112)
                           {
/*1*/   word var←c60120;
/*1*/   {
/*1*/      word var←c60152;
/*1*/      word var←c60216;
/*1*/      {
/*1*/         word var←c60184;
/*1*/         var←c60184 = (word) XRM←BITNOT(dstMask1←v18668);
/*1*/         var←c60152 = (word) XRM←BITAND(var←c60184, (* (( (ptr) dstPtr←v18384)+1) ));
/*1*/         };
/*1*/      var←c60216 = (word) XRM←BITAND(dstMask1←v18668, colorWord←v10740);
/*1*/      var←c60120 = (word) XRM←BITOR(var←c60152, var←c60216);
/*1*/      };
/*1*/   (* (( (ptr) dstPtr←v18384)+1) ) = var←c60120;
/*1*/   };
                           };
SOURCE(30857, 133)
                        if ((dstMask2←v18696 != 0)) {
SOURCE(30878, 112)
                           {
/*1*/   word var←c60248;
/*1*/   {
/*1*/      word var←c60280;
/*1*/      word var←c60344;
/*1*/      {
/*1*/         word var←c60312;
/*1*/         var←c60312 = (word) XRM←BITNOT(dstMask2←v18696);
/*1*/         var←c60280 = (word) XRM←BITAND(var←c60312, (* (( (ptr) dstPtr←v18384)+2) ));
/*1*/         };
/*1*/      var←c60344 = (word) XRM←BITAND(dstMask2←v18696, colorWord←v10740);
/*1*/      var←c60248 = (word) XRM←BITOR(var←c60280, var←c60344);
/*1*/      };
/*1*/   (* (( (ptr) dstPtr←v18384)+2) ) = var←c60248;
/*1*/   };
                           };
                        };
                     };
SOURCE(30995, 19)
                  if ((rem←v18440 <= 32)) {
SOURCE(31014, 4)
                     goto lab←L100083;
                     };
SOURCE(31020, 15)
                  rem←v18440 = (rem←v18440 - 32);
SOURCE(31037, 30)
                  dstPtr←v18384 = (dstPtr←v18384 + 8);
SOURCE(31069, 30)
                  maskPtr←v18412 = (maskPtr←v18412 + 4);
                  };
               goto lab←L100084;
               lab←L100083: ;
SOURCE(31110, 19)
               if ((height←v10684 == 1)) {
SOURCE(31129, 4)
                  goto lab←L100080;
                  };
SOURCE(31135, 40)
               maskBase←v10516 = (maskBase←v10516 + ((word) maskWpl←v10572 << 2));
SOURCE(31177, 37)
               dstBase←v10600 = (dstBase←v10600 + ((word) dstWpl←v10656 << 2));
SOURCE(31216, 19)
               height←v10684 = (height←v10684 - 1);
               };
            goto lab←L100081;
            lab←L100080: ;
            };
         };
      };
   }

static word CreateClass←P1740()
   {
   register ptr gf←c61944 =  (ptr) &globalframe;
   word class←v10836;
   /* CreateClass: */ 
SOURCE(31778, 108)
SOURCE(31778, 108)
   class←v10836 = 0;
SOURCE(31837, 49)
   {
      word pd330;
      pd330 = (* (( (ptr) (* (( (ptr) gf←c61944)+115)/* var←c55672 */  ))+4) );
      class←v10836 = (word) ( *( (fPt) ((*  (ptr) pd330 ))))((* ((( (ptr) gf←c61944)+4)/* classCode←v3924 */ ) ), pd330);
      };
SOURCE(31778, 108)
   return(class←v10836);
   }

/* file: ImagerHighlightContextImpl, module: ImagerHighlightContextImpl, compiled at: October 28, 1993 1:01:05 pm PDT */ 
extern void XR←install←ImagerHighlightContextImpl() {
   NoName←Q6456();
   }
extern void XR←run←ImagerHighlightContextImpl() { XR←Start(&globalframe); }