/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: September 14, 1993 4:27:34 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: XlImplGC, module: XlImplGC */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2392183648,2216845871] XlImplGC";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W16 r;} W32;
typedef W32 *W32Pt;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W16 f; W10 r;} W26;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W6 r;} W14;
typedef W6 *W6Pt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
static void NoName←Q11760();
static void XlImplGC←P0();
static void RaiseClientError←P60();
static void BPut8←P120();
static void BPut16←P180();
static void BPut32←P240();
static void BPutDrawable←P300();
static void BPutPoint←P480();
static void BPutSize←P540();
static void BPutRect←P600();
static void DPutBYTE←P660();
static word IsGContext←P720();
static word NarrowGContext←P780();
static word NewGContext←P840();
static word MakeGContext←P900();
static void FlushGContext←P960();
static void action←P4620();
static word GCID←P1020();
static void ValidateGC←P1080();
static void EntryValidateGC←P4728();
static void InvalidateGC←P1140();
static void EntryInvalidateGC←P4788();
static void SetMaskBits←P1200();
static void ValidateGCMask←P1260();
static void Entry←P4896();
static void InvalidateGCMask←P1320();
static void Entry←P4956();
static word NestedEntryUseGContext←P1380();
static void action←P5016();
static void FinalizeGC←P1500();
static word NoName←Q11820();
static void FreeGC←P5076();
static word NoName←Q11880();
static word UseGContext←P1560();
static word NoName←Q11940();
static word NoName←Q12000();
static void SetGContext←P1680();
static void SetGCFont←P1800();
static void SetGCFunction←P1860();
static void SetGCFillStyle←P1920();
static void SetGCTile←P1980();
static void SetGCStipple←P2040();
static void SetGCClipMask←P2100();
static void SetGCStippleOrigin←P2160();
static void SetGCClipMaskOrigin←P2220();
static void SetGCBackground←P2280();
static void SetGCGrounds←P2340();
static void SetGCForeground←P2400();
static void SetGCPlaneMask←P2460();
static void SetGCLineWidth←P2520();
static void SetGCLineStyle←P2580();
static void SetGCCapStyle←P2640();
static void SetGCFillRule←P2700();
static void SetGCJoinStyle←P2760();
static void SetGCArcMode←P2820();
static void SetGCSubWindowMode←P2880();
static void SetGCGraphicsExposures←P3000();
static void CopyArea←P3060();
static void CopyPlane←P3120();
static void FillRectangle←P3180();
static void DrawLine←P3240();
static void SetupGraphics←P3300();
static word KeepTheOptimizerHonest←P3420();
static void InitBSwap←P3480();
static void PutImage←P3540();
static void Protected←P5424();
static word NoName←Q12060();
static void BitsInByteSwapped←P5688();
static void BytesSwapped←P5748();
static void BothSwapped←P5808();
static void GetImage←P3600();
static void action←P6492();
static void PutRectanglesDirect←P3660();
static void BPutRectangles←P3720();
static void PolyFillRectangle←P3780();
static void CountAndSetMaskBits←P3840();
static void CopyGC←P3900();
static void SetDashes←P3960();
static word CountBytes←P6744();
static void action←P6804();
static word SetClipRectangles←P4020();
static void ImageChar←P4080();
static void ImageRope←P4140();
static word ToInt8Rep←P4200();
static void DrawChar←P4260();
static void EntryDoit←P7056();
static void DrawRope←P4320();
static void EnryDrawRope←P7116();
static void MyDeliver←P7224();
static word AppendBigEndianCARD32←P4380();
static void PolyText8←P4440();
static void EntryDoit←P7332();
static void DrawString16←P4500();
static void EntryDoIt←P7488();
static void ImageString16←P4560();
static void NoName←Q12120();
static void NoName←Q12180();
static void NoName←Q12240();
static void NoName←Q12300();
static void NoName←Q12360();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\105\174\212\132\300\104\340\255\314\100\164\000\000"};
static struct {unsigned f; char r[12];} string2 = {720907, "\006\003A\014\001A\024\001A\030\001"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\216\225\323\140\300\204\042\142\057\103\260\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\004\014\000"};
static struct {unsigned f; char r[4];} string5 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string6 = {65537, "\001\000\000"};
static struct {unsigned f; char r[60];} string7 = {3801148, "\260\006\005\146\151\162\163\164\216\211\010\007\106\157\156\164\122\145\160\300\351\276\264\273\300\115\104\320\264\005\004\162\145\163\164\214\216\211\010\007\106\157\156\164\122\145\160\300\351\276\264\273\300\115\104\320\264\261\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[44];} string9 = {2752556, "\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\000"};
static struct {unsigned f; char r[16];} string10 = {786448, "\254\205\210\241\000\100\377\210\241\000\100\377\000\000\000"};
static struct {unsigned f; char r[8];} string11 = {458760, "ZPixmap"};
static struct {unsigned f; char r[8];} string12 = {458760, "ToSmall"};
static struct {unsigned f; char r[12];} string13 = {524300, "XlImplGC\000\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\216\225\323\140\300\204\042\142\057\100\200\000\000"};
static struct {unsigned f; char r[12];} string15 = {524296, "\006\002\030\001\100\120\004\007\000\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\157\176\027\244\300\037\074\133\137\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\332\223\177\020\300\304\076\102\260\100\164\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static unsigned string20 = 1483472896;
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\337\070\153\303\300\227\216\321\214\100\150\000\000"};
static struct {unsigned f; char r[8];} string23 = {1483493490, "ivate"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\304\042\023\266\300\315\144\243\337\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\212\247\207\172\300\123\222\237\073\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\044\126\136\322\300\125\273\233\107\100\150\000\000"};
static struct {unsigned f; char r[32];} string27 = {1966112, "\211\022\021\103\157\156\156\145\143\164\151\157\156\120\162\151\166\141\164\145\300\351\276\264\273\300\115\104\320\264\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\012\063\155\016\300\130\140\234\375\100\164\000\000"};
static struct {unsigned f; char r[40];} string29 = {2424869, "\006\016\000\001\004\001\010\001\014\001\020\001\024\001\030\001\034\001\040\001\044\001\060\001\070\010\000\004\100\100\001\101\070\001\101\074\001\000\000"};
static struct {unsigned f; char r[28];} string30 = {1572892, "\211\014\013\107\103\157\156\164\145\170\164\122\145\160\300\351\276\264\273\300\115\104\320\264\000\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\234\252\236\205\300\126\010\241\274\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\012\063\155\016\300\130\140\234\375\100\150\000\000"};
static struct {unsigned f; char r[28];} string33 = {1572892, "\211\014\013\107\162\141\160\150\151\143\163\122\145\160\300\012\063\155\016\300\130\140\234\375\000\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\216\377\237\261\300\201\335\023\142\100\150\000\000"};
static struct {
   word f0[24]; word f24; word f25; word f26; 
   word f27; word f28; word f29; word f30; 
   word f31; word f32; word f33; word f34; 
   word f35; word f36; word f37; word f38; 
   word f39; word f40; word f41; word f42; 
   word f43; word f44; word f45; word f46; 
   word f47; word f48; word f49; word f50; 
   word f51; word f52; word f53; word f54; 
   word f55; word f56; word f57; word f58; 
   word f59; word f60; word f61; word f62; 
   word f63; word f64; word f65; word f66; 
   word f67; word f68; word f69; word f70; 
   word f71; word f72; word f73; word f74; 
   word f75; word f76; word f77; word f78; 
   word f79; word f80; word f81; word f82; 
   word f83; word f84; word f85; word f86; 
   word f87; word f88; word f89; word f90; 
   word f91; word f92; word f93; word f94; 
   word f95; word f96; word f97; word f98; 
   word f99; word f100; word f101; word f102; 
   word f103; word f104; word f105; word f106; 
   word f107; word f108; word f109; word f110; 
   word f111; word f112; word f113; word f114; 
   word f115; word f116; word f117; word f118; 
   word f119; word f120; word f121; word f122; 
   word f123; word f124; word f125; word f126; 
   word f127; word f128; word f129; word f130; 
   word f131; word f132; word f133; word f134; 
   word f135; word f136; word f137; word f138; 
   word f139; word f140; word f141; word f142; 
   word f143; word f144; word f145; word f146; 
   word f147; word f148; word f149; word f150; 
   word f151; word f152; word f153; word f154; 
   word f155; word f156; word f157; word f158; 
   word f159; word f160; word f161; word f162; 
   word f163[12]; 
   } globalframe = {
   {0}, (word) ImageString16←P4560, 0, (word) DrawString16←P4500, 
   0, (word) PolyText8←P4440, 0, (word) AppendBigEndianCARD32←P4380, 
   0, (word) DrawRope←P4320, 0, (word) DrawChar←P4260, 
   0, (word) ToInt8Rep←P4200, 0, (word) ImageRope←P4140, 
   0, (word) ImageChar←P4080, 0, (word) SetClipRectangles←P4020, 
   0, (word) SetDashes←P3960, 0, (word) CopyGC←P3900, 
   0, (word) CountAndSetMaskBits←P3840, 0, (word) PolyFillRectangle←P3780, 
   0, (word) BPutRectangles←P3720, 0, (word) PutRectanglesDirect←P3660, 
   0, (word) GetImage←P3600, 0, (word) PutImage←P3540, 
   0, (word) InitBSwap←P3480, 0, (word) KeepTheOptimizerHonest←P3420, 
   0, (word) SetupGraphics←P3300, 0, (word) DrawLine←P3240, 
   0, (word) FillRectangle←P3180, 0, (word) CopyPlane←P3120, 
   0, (word) CopyArea←P3060, 0, (word) SetGCGraphicsExposures←P3000, 
   0, (word) SetGCSubWindowMode←P2880, 0, (word) SetGCArcMode←P2820, 
   0, (word) SetGCJoinStyle←P2760, 0, (word) SetGCFillRule←P2700, 
   0, (word) SetGCCapStyle←P2640, 0, (word) SetGCLineStyle←P2580, 
   0, (word) SetGCLineWidth←P2520, 0, (word) SetGCPlaneMask←P2460, 
   0, (word) SetGCForeground←P2400, 0, (word) SetGCGrounds←P2340, 
   0, (word) SetGCBackground←P2280, 0, (word) SetGCClipMaskOrigin←P2220, 
   0, (word) SetGCStippleOrigin←P2160, 0, (word) SetGCClipMask←P2100, 
   0, (word) SetGCStipple←P2040, 0, (word) SetGCTile←P1980, 
   0, (word) SetGCFillStyle←P1920, 0, (word) SetGCFunction←P1860, 
   0, (word) SetGCFont←P1800, 0, (word) SetGContext←P1680, 
   0, (word) UseGContext←P1560, 0, (word) FinalizeGC←P1500, 
   0, (word) NestedEntryUseGContext←P1380, 0, (word) InvalidateGCMask←P1320, 
   0, (word) ValidateGCMask←P1260, 0, (word) SetMaskBits←P1200, 
   0, (word) InvalidateGC←P1140, 0, (word) ValidateGC←P1080, 
   0, (word) GCID←P1020, 0, (word) FlushGContext←P960, 
   0, (word) MakeGContext←P900, 0, (word) NewGContext←P840, 
   0, (word) NarrowGContext←P780, 0, (word) IsGContext←P720, 
   0, (word) DPutBYTE←P660, 0, (word) BPutRect←P600, 
   0, (word) BPutSize←P540, 0, (word) BPutPoint←P480, 
   0, (word) BPutDrawable←P300, 0, (word) BPut32←P240, 
   0, (word) BPut16←P180, 0, (word) BPut8←P120, 
   0, (word) RaiseClientError←P60, 0, (word) XlImplGC←P0, 
   {0}
   };

static void NoName←Q11760()
   {
   register ptr gf←c0840 =  (ptr) &globalframe;
   word var←c58404;
   (* (( (ptr) gf←c0840)+8) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0840)+9) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0840)+11) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0840)+12) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0840)+18) ) = (word) XR←GetTypeIndexS((word) (&string9));
   (* (( (ptr) gf←c0840)+19) ) = (word) XR←GetTypeIndexS((word) (&string10));
   (*  (ptr) (( (bPt) gf←c0840)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0840)+11) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c0840)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0840)+11) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0840)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0840)+11) ), (word) &string13);
   (void) XR←DeclareGlobalFrame((word) "XlImplGC", &globalframe, (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15)
      , (word) (( (bPt) gf←c0840)+648)/* var←c54308 */ );
   var←c58404 = (word) XR←ImportInterface((word) "FinalizeOps", (word) XR←GetTypeIndexS((word) (&string16)), 7);
   (* (( (ptr) gf←c0840)+165)/* var←c54500 */  ) = var←c58404;
   (void) XR←ImportProcS(var←c58404, 67634690);
   (void) XR←ImportProcS(var←c58404, 67634178);
   var←c58404 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string17)), 103);
   (* (( (ptr) gf←c0840)+170)/* var←c55812 */  ) = var←c58404;
   (void) XR←ImportProcS(var←c58404, 1053698);
   var←c58404 = (word) XR←ImportInterface((word) "RefText", (word) XR←GetTypeIndexS((word) (&string18)), 26);
   (* (( (ptr) gf←c0840)+171)/* var←c56324 */  ) = var←c58404;
   (void) XR←ImportProcS(var←c58404, 262913);
   (void) XR←ImportProcS(var←c58404, 68158980);
   (void) XR←ImportProcS(var←c58404, 67371521);
   (void) XR←ImportProcS(var←c58404, 67634946);
   (void) XR←ImportProcS(var←c58404, 67371009);
   var←c58404 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string19)), 43);
   (* (( (ptr) gf←c0840)+172)/* var←c57188 */  ) = var←c58404;
   (void) XR←ImportProcS(var←c58404, 67379457);
   (void) XR←ImportProcS(var←c58404, 67373569);
   var←c58404 = (word) XR←ImportInterface((word) &string20, (word) XR←GetTypeIndexS((word) (&string21)), 218);
   (* (( (ptr) gf←c0840)+169)/* var←c54980 */  ) = var←c58404;
   (void) XR←ImportProcS(var←c58404, 67371777);
   (void) XR←ImportProcS(var←c58404, 67375361);
   var←c58404 = (word) XR←ImportInterface((word) "XlDetails", (word) XR←GetTypeIndexS((word) (&string22)), 4);
   (* (( (ptr) gf←c0840)+168)/* var←c54884 */  ) = var←c58404;
   var←c58404 = (word) XR←ImportInterface((word) &string23, (word) XR←GetTypeIndexS((word) (&string24)), 77);
   (* (( (ptr) gf←c0840)+166)/* var←c54596 */  ) = var←c58404;
   (void) XR←ImportProcS(var←c58404, 536578);
   (void) XR←ImportProcS(var←c58404, 529154);
   (void) XR←ImportProcS(var←c58404, 1057284);
   (void) XR←ImportProcS(var←c58404, 1057028);
   (void) XR←ImportProcS(var←c58404, 539650);
   (void) XR←ImportProcS(var←c58404, 67385857);
   (void) XR←ImportProcS(var←c58404, 540418);
   (void) XR←ImportProcS(var←c58404, 67389953);
   (void) XR←ImportProcS(var←c58404, 67390209);
   (void) XR←ImportProcS(var←c58404, 278529);
   (void) XR←ImportProcS(var←c58404, 67642114);
   (void) XR←ImportProcS(var←c58404, 525826);
   (void) XR←ImportProcS(var←c58404, 67371265);
   (void) XR←ImportProcS(var←c58404, 272129);
   (void) XR←ImportProcS(var←c58404, 68166660);
   (void) XR←ImportProcS(var←c58404, 67649026);
   (void) XR←ImportProcS(var←c58404, 67648770);
   (void) XR←ImportProcS(var←c58404, 1051908);
   (void) XR←ImportProcS(var←c58404, 276481);
   (void) XR←ImportProcS(var←c58404, 786947);
   var←c58404 = (word) XR←ImportInterface((word) "XlPrivateErrorHandling", (word) XR←GetTypeIndexS((word) (&string25)), 10);
   (* (( (ptr) gf←c0840)+164)/* var←c54372 */  ) = var←c58404;
   (void) XR←ImportProcS(var←c58404, 67896579);
   (void) XR←ImportProcS(var←c58404, 526082);
   var←c58404 = (word) XR←ImportInterface((word) "XlPrivateResources", (word) XR←GetTypeIndexS((word) (&string26)), 9);
   (* (( (ptr) gf←c0840)+167)/* var←c54852 */  ) = var←c58404;
   (void) XR←ImportProcS(var←c58404, 67371521);
   (void) XR←ImportProcS(var←c58404, 525058);
   (void) XR←ImportProcS(var←c58404, 67634434);
   var←c58404 = (word) XR←ExportInterface((word) &string20, (word) XR←GetTypeIndexS((word) (&string21)), 218);
   (* (( (ptr) gf←c0840)+173)/* var←c58436 */  ) = var←c58404;
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+568)/* var←c53988 */ , 67405569, (word) "IsGContext");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+560)/* var←c53956 */ , 67405825, (word) "NarrowGContext");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+544)/* var←c53892 */ , 67668226, (word) "MakeGContext");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+440)/* var←c53476 */ , 559618, (word) "SetGCFunction");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+360)/* var←c53156 */ , 559874, (word) "SetGCPlaneMask");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+368)/* var←c53188 */ , 560130, (word) "SetGCForeground");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+384)/* var←c53252 */ , 560386, (word) "SetGCBackground");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+376)/* var←c53220 */ , 822787, (word) "SetGCGrounds");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+352)/* var←c53124 */ , 560898, (word) "SetGCLineWidth");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+344)/* var←c53092 */ , 561154, (word) "SetGCLineStyle");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+336)/* var←c53060 */ , 561410, (word) "SetGCCapStyle");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+320)/* var←c52996 */ , 561666, (word) "SetGCJoinStyle");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+432)/* var←c53444 */ , 561922, (word) "SetGCFillStyle");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+328)/* var←c53028 */ , 562178, (word) "SetGCFillRule");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+312)/* var←c52964 */ , 562434, (word) "SetGCArcMode");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+424)/* var←c53412 */ , 562690, (word) "SetGCTile");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+416)/* var←c53380 */ , 562946, (word) "SetGCStipple");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+400)/* var←c53316 */ , 825346, (word) "SetGCStippleOrigin");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+448)/* var←c53508 */ , 563458, (word) "SetGCFont");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+304)/* var←c52932 */ , 563714, (word) "SetGCSubWindowMode");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+296)/* var←c52900 */ , 563970, (word) "SetGCGraphicsExposures")
   ;
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+392)/* var←c53284 */ , 826370, (word) "SetGCClipMaskOrigin");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+408)/* var←c53348 */ , 564482, (word) "SetGCClipMask");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+176)/* var←c52420 */ , 1351685, (word) "SetDashes");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+168)/* var←c52388 */ , 69509384, (word) "SetClipRectangles");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+288)/* var←c52868 */ , 2925320, (word) "CopyArea");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+280)/* var←c52836 */ , 3187721, (word) "CopyPlane");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+272)/* var←c52804 */ , 2139398, (word) "FillRectangle");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+200)/* var←c52516 */ , 1877511, (word) "PolyFillRectangle");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+264)/* var←c52772 */ , 2139910, (word) "DrawLine");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+232)/* var←c52644 */ , 3450891, (word) "PutImage");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+224)/* var←c52612 */ , 404793606, (word) "GetImage");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+160)/* var←c52356 */ , 1878790, (word) "ImageChar");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+152)/* var←c52324 */ , 1879046, (word) "ImageRope");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+96)/* var←c52100 */ , 1879302, (word) "ImageString16");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+112)/* var←c52164 */ , 2141703, (word) "PolyText8");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+136)/* var←c52260 */ , 2141959, (word) "DrawChar");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+128)/* var←c52228 */ , 2142215, (word) "DrawRope");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+104)/* var←c52132 */ , 2142471, (word) "DrawString16");
   (void) XR←ExportType((word) "ConnectionPrivate", (word) XR←GetTypeIndexS((word) (&string27)), (word) XR←GetTypeIndex((word) &string28, 0, (word) &string29)
      );
   (void) XR←ExportType((word) "GContextRep", (word) XR←GetTypeIndexS((word) (&string30)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   var←c58404 = (word) XR←ExportInterface((word) &string23, (word) XR←GetTypeIndexS((word) (&string24)), 77);
   (* (( (ptr) gf←c0840)+173)/* var←c58436 */  ) = var←c58404;
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+632)/* var←c54244 */ , 528130, (word) "BPut8");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+624)/* var←c54212 */ , 528386, (word) "BPut16");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+616)/* var←c54180 */ , 528642, (word) "BPut32");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+608)/* var←c54148 */ , 530178, (word) "BPutDrawable");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+600)/* var←c54116 */ , 792578, (word) "BPutPoint");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+592)/* var←c54084 */ , 792834, (word) "BPutSize");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+584)/* var←c54052 */ , 1317379, (word) "BPutRect");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+208)/* var←c52548 */ , 1058308, (word) "BPutRectangles");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+576)/* var←c54020 */ , 534786, (word) "DPutBYTE");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+464)/* var←c53572 */ , 68171524, (word) "UseGContext");
   var←c58404 = (word) XR←ExportInterface((word) "XlPrivateSplit", (word) XR←GetTypeIndexS((word) (&string31)), 7);
   (* (( (ptr) gf←c0840)+173)/* var←c58436 */  ) = var←c58404;
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+256)/* var←c52740 */ , 262657, (word) "SetupGraphics");
   var←c58404 = (word) XR←ExportInterface((word) "XlPrivateTypes", (word) XR←GetTypeIndexS((word) (&string32)), 7);
   (* (( (ptr) gf←c0840)+174)/* var←c58468 */  ) = var←c58404;
   (void) XR←ExportType((word) "GraphicsRep", (word) XR←GetTypeIndexS((word) (&string33)), (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4)
      );
   var←c58404 = (word) XR←ExportInterface((word) "XlGContextOps", (word) XR←GetTypeIndexS((word) (&string34)), 8);
   (* (( (ptr) gf←c0840)+173)/* var←c58436 */  ) = var←c58404;
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+528)/* var←c53828 */ , 67633154, (word) "GCID");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+456)/* var←c53540 */ , 786691, (word) "SetGContext");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+536)/* var←c53860 */ , 786947, (word) "FlushGContext");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+512)/* var←c53764 */ , 525058, (word) "InvalidateGC");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+488)/* var←c53668 */ , 525314, (word) "InvalidateGCMask");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+520)/* var←c53796 */ , 525570, (word) "ValidateGC");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+496)/* var←c53700 */ , 525826, (word) "ValidateGCMask");
   (void) XR←ExportProcS(var←c58404, (word) (( (bPt) gf←c0840)+184)/* var←c52452 */ , 1312517, (word) "CopyGC");
   }

static void XlImplGC←P0(formal←c099, formal←c097)
   word formal←c099;
   word formal←c097;
   {
   /* XlImplGC: */ 
SOURCE(206, 37491)
SOURCE(37668, 29)
   {
      word var←c54340;
      var←c54340 = (word) KeepTheOptimizerHonest←P3420();
      };
   }

static void RaiseClientError←P60(c←v5844, what←v5872)
   word c←v5844;
   word what←v5872;
   {
   register ptr gf←c58500 =  (ptr) &globalframe;
   /* RaiseClientError: */ 
SOURCE(851, 146)
SOURCE(914, 33)
   if ((what←v5872 == 0)) {
SOURCE(931, 16)
      what←v5872 = (* (( (ptr) gf←c58500)+22) );
      };
SOURCE(949, 48)
   {
      word pd35;
      pd35 = (* (( (ptr) (* (( (ptr) gf←c58500)+164)/* var←c54372 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd35 ))))(c←v5844, what←v5872, pd35);
      };
   }

static void BPut8←P120(c←v5948, b←v5976)
   word c←v5948;
   word b←v5976;
   {
   /* BPut8: */ 
SOURCE(1003, 59)
SOURCE(1050, 12)
   {
      word c←v51992;
      word b←v52020;
      c←v51992 = c←v5948;
      b←v52020 = b←v5976;
      {
         word n←v30820;
         n←v30820 = (* (( (ptr) c←v51992)+4) );
         (* (( (bPt) (* (( (ptr) c←v51992)+7) ))+n←v30820) ) = b←v52020;
         (* (( (ptr) c←v51992)+4) ) = (n←v30820 + 1);
         };
      };
   }

static void BPut16←P180(c←v6036, b←v6064)
   word c←v6036;
   word b←v6064;
   {
   /* BPut16: */ 
SOURCE(1065, 63)
SOURCE(1115, 13)
   {
      word c←v51120;
      word b←v51148;
      c←v51120 = c←v6036;
      b←v51148 = b←v6064;
      {
         word n←v31228;
         word p←v31260;
         n←v31228 = (* (( (ptr) c←v51120)+4) );
         p←v31260 = (* (( (ptr) c←v51120)+7) );
         (* (( (hPt) p←v31260)+((word) n←v31228 >> 1)) ) = b←v51148;
         (* (( (ptr) c←v51120)+4) ) = (n←v31228 + 2);
         };
      };
   }

static void BPut32←P240(c←v6124, b←v6152)
   word c←v6124;
   word b←v6152;
   {
   /* BPut32: */ 
SOURCE(1131, 63)
SOURCE(1181, 13)
   {
      word c←v49988;
      word b←v50016;
      c←v49988 = c←v6124;
      b←v50016 = b←v6152;
      {
         word p←v31580;
         word n←v31692;
         p←v31580 = (* (( (ptr) c←v49988)+7) );
         n←v31692 = (* (( (ptr) c←v49988)+4) );
         (* (( (ptr) p←v31580)+((word) n←v31692 >> 2)) ) = b←v50016;
         (* (( (ptr) c←v49988)+4) ) = (n←v31692 + 4);
         };
      };
   }

static void BPutDrawable←P300(c←v6212, d←v6240)
   word c←v6212;
   word d←v6240;
   {
   /* BPutDrawable: */ 
SOURCE(1197, 74)
SOURCE(1255, 16)
   {
      word c←v49856;
      word b←v49884;
      c←v49856 = c←v6212;
      b←v49884 = d←v6240;
      {
         word p←v49916;
         word n←v49944;
         p←v49916 = (* (( (ptr) c←v49856)+7) );
         n←v49944 = (* (( (ptr) c←v49856)+4) );
         (* (( (ptr) p←v49916)+((word) n←v49944 >> 2)) ) = b←v49884;
         (* (( (ptr) c←v49856)+4) ) = (n←v49944 + 4);
         };
      };
   }

static void BPutPoint←P480(c←v6508, p←v6536)
   word c←v6508;
   W2 p←v6536;
   {
   /* BPutPoint: */ 
SOURCE(1482, 101)
SOURCE(1535, 23)
   {
      word c←v50988;
      word b←v51016;
      c←v50988 = c←v6508;
      b←v51016 = ( (((unsigned)p←v6536.f0 << 16) >> 16) );
      {
         word n←v51048;
         word p←v51076;
         n←v51048 = (* (( (ptr) c←v50988)+4) );
         p←v51076 = (* (( (ptr) c←v50988)+7) );
         (* (( (hPt) p←v51076)+((word) n←v51048 >> 1)) ) = b←v51016;
         (* (( (ptr) c←v50988)+4) ) = (n←v51048 + 2);
         };
      };
SOURCE(1560, 23)
   {
      word c←v50856;
      word b←v50884;
      c←v50856 = c←v6508;
      b←v50884 = ( (((unsigned)p←v6536.f1 << 16) >> 16) );
      {
         word n←v50916;
         word p←v50944;
         n←v50916 = (* (( (ptr) c←v50856)+4) );
         p←v50944 = (* (( (ptr) c←v50856)+7) );
         (* (( (hPt) p←v50944)+((word) n←v50916 >> 1)) ) = b←v50884;
         (* (( (ptr) c←v50856)+4) ) = (n←v50916 + 2);
         };
      };
   }

static void BPutSize←P540(c←v6596, s←v6624)
   word c←v6596;
   W2 s←v6624;
   {
   /* BPutSize: */ 
SOURCE(1588, 108)
SOURCE(1639, 27)
   {
      word c←v50724;
      word b←v50752;
      c←v50724 = c←v6596;
      b←v50752 = ( (((unsigned)s←v6624.f0 << 16) >> 16) );
      {
         word n←v50784;
         word p←v50812;
         n←v50784 = (* (( (ptr) c←v50724)+4) );
         p←v50812 = (* (( (ptr) c←v50724)+7) );
         (* (( (hPt) p←v50812)+((word) n←v50784 >> 1)) ) = b←v50752;
         (* (( (ptr) c←v50724)+4) ) = (n←v50784 + 2);
         };
      };
SOURCE(1668, 28)
   {
      word c←v50592;
      word b←v50620;
      c←v50592 = c←v6596;
      b←v50620 = ( (((unsigned)s←v6624.f1 << 16) >> 16) );
      {
         word n←v50652;
         word p←v50680;
         n←v50652 = (* (( (ptr) c←v50592)+4) );
         p←v50680 = (* (( (ptr) c←v50592)+7) );
         (* (( (hPt) p←v50680)+((word) n←v50652 >> 1)) ) = b←v50620;
         (* (( (ptr) c←v50592)+4) ) = (n←v50652 + 2);
         };
      };
   }

static void BPutRect←P600(c←v6684, p←v6712, s←v6740)
   word c←v6684;
   W2 p←v6712;
   W2 s←v6740;
   {
   /* BPutRect: */ 
SOURCE(1701, 168)
SOURCE(1762, 23)
   {
      word c←v50460;
      word b←v50488;
      c←v50460 = c←v6684;
      b←v50488 = ( (((unsigned)p←v6712.f0 << 16) >> 16) );
      {
         word n←v50520;
         word p←v50548;
         n←v50520 = (* (( (ptr) c←v50460)+4) );
         p←v50548 = (* (( (ptr) c←v50460)+7) );
         (* (( (hPt) p←v50548)+((word) n←v50520 >> 1)) ) = b←v50488;
         (* (( (ptr) c←v50460)+4) ) = (n←v50520 + 2);
         };
      };
SOURCE(1787, 23)
   {
      word c←v50328;
      word b←v50356;
      c←v50328 = c←v6684;
      b←v50356 = ( (((unsigned)p←v6712.f1 << 16) >> 16) );
      {
         word n←v50388;
         word p←v50416;
         n←v50388 = (* (( (ptr) c←v50328)+4) );
         p←v50416 = (* (( (ptr) c←v50328)+7) );
         (* (( (hPt) p←v50416)+((word) n←v50388 >> 1)) ) = b←v50356;
         (* (( (ptr) c←v50328)+4) ) = (n←v50388 + 2);
         };
      };
SOURCE(1812, 27)
   {
      word c←v50196;
      word b←v50224;
      c←v50196 = c←v6684;
      b←v50224 = ( (((unsigned)s←v6740.f0 << 16) >> 16) );
      {
         word n←v50256;
         word p←v50284;
         n←v50256 = (* (( (ptr) c←v50196)+4) );
         p←v50284 = (* (( (ptr) c←v50196)+7) );
         (* (( (hPt) p←v50284)+((word) n←v50256 >> 1)) ) = b←v50224;
         (* (( (ptr) c←v50196)+4) ) = (n←v50256 + 2);
         };
      };
SOURCE(1841, 28)
   {
      word c←v50064;
      word b←v50092;
      c←v50064 = c←v6684;
      b←v50092 = ( (((unsigned)s←v6740.f1 << 16) >> 16) );
      {
         word n←v50124;
         word p←v50152;
         n←v50124 = (* (( (ptr) c←v50064)+4) );
         p←v50152 = (* (( (ptr) c←v50064)+7) );
         (* (( (hPt) p←v50152)+((word) n←v50124 >> 1)) ) = b←v50092;
         (* (( (ptr) c←v50064)+4) ) = (n←v50124 + 2);
         };
      };
   }

static void DPutBYTE←P660(c←v6800, byte←v6828)
   word c←v6800;
   word byte←v6828;
   {
   /* DPutBYTE: */ 
SOURCE(1874, 90)
SOURCE(1929, 35)
   {
      word c←v49368;
      word val←v49396;
      c←v49368 = c←v6800;
      val←v49396 = byte←v6828;
      {
         word self←v33012;
         word char←v33076;
         self←v33012 = (* (( (ptr) c←v49368)+31) );
         char←v33076 = val←v49396;
         {
            word i←v33124;
            i←v33124 = (* (( (ptr) self←v33012)+7) );
            {
               word pd37;
               if ((i←v33124 < (* (( (ptr) self←v33012)+6) ))) {
                  (* (( (ptr) self←v33012)+7) ) = (i←v33124 + 1);
                  {
                     word var←c54404;
                     var←c54404 = (* (( (ptr) self←v33012)+4) );
                     {
                        word limit36;
                        (* ((( (bPt) var←c54404)+4)+(
/*1*/   limit36 = (word)  (unsigned) (* (( (hPt) var←c54404)+1) ),
/*1*/   BCK(i←v33124, limit36)
/*1*/   )) ) = char←v33076;
                        };
                     };
                  }
               else {
                  pd37 = (* (( (ptr) (*  (ptr) self←v33012 ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd37 ))))(self←v33012, char←v33076, pd37);
                  };
               };
            };
         };
      (* (( (ptr) c←v49368)+10) ) = ((* (( (ptr) c←v49368)+10) ) + 1);
      };
   }

static word IsGContext←P720(x←v6888)
   word x←v6888;
   {
   register ptr gf←c58532 =  (ptr) &globalframe;
   word var←c6944;
   /* IsGContext: */ 
SOURCE(1970, 92)
SOURCE(2026, 36)
   {
      word tc38;
      if ((x←v6888 == 0)) {
         tc38 =  (word)  (unsigned) 1;
         }
      else {
         tc38 =  (word)  (unsigned) ((* (( (ptr) gf←c58532)+8) ) == XR←GetReferentType(x←v6888));
         };
      return(tc38);
      };
   }

static word NarrowGContext←P780(x←v7004)
   word x←v7004;
   {
   register ptr gf←c58564 =  (ptr) &globalframe;
   word var←c7060;
   /* NarrowGContext: */ 
SOURCE(2066, 100)
SOURCE(2130, 36)
   return(XR←Narrow(x←v7004, (* (( (ptr) gf←c58564)+8) )));
   }

static word NewGContext←P840(c←v7136, drawable←v7164)
   word c←v7136;
   word drawable←v7164;
   {
   register ptr gf←c58596 =  (ptr) &globalframe;
   word gc←v7208;
   word cPriv←v17284;
   /* NewGContext: */ 
SOURCE(2195, 543)
SOURCE(2195, 543)
   gc←v7208 = 0;
SOURCE(2283, 45)
   cPriv←v17284 = (* (( (ptr) c←v7136)+24) );
SOURCE(2330, 21)
   gc←v7208 = XR←NewObject(284, (* (( (ptr) gf←c58596)+8) ));
SOURCE(2353, 27)
   (* (( (ptr) gc←v7208)+67) ) = (*  (ptr) cPriv←v17284 );
SOURCE(2382, 22)
   (* (( (ptr) gc←v7208)+68) ) = drawable←v7164;
SOURCE(2406, 23)
   (* (( (ptr) gc←v7208)+1) ) = 0;
SOURCE(2431, 22)
   (* (( (ptr) gc←v7208)+2) ) = 3;
SOURCE(2455, 34)
   (* (( (ptr) gc←v7208)+3) ) =  (word) -1;
SOURCE(2491, 24)
   (* (( (ptr) gc←v7208)+5) ) = 1;
SOURCE(2517, 22)
   (* (( (ptr) gc←v7208)+8) ) = 1;
SOURCE(2541, 21)
   (* (( (ptr) gc←v7208)+24) ) = 1;
SOURCE(2564, 31)
   (* (( (ptr) gc←v7208)+18) ) = 1;
SOURCE(2597, 20)
   (* (( (ptr) gc←v7208)+23) ) = 4;
SOURCE(2619, 20)
   (*  (W32Pt) (( (ptr) gc←v7208)+35) ) = (*  (W32Pt) (( (ptr) gc←v7208)+2) );
SOURCE(2641, 26)
   (* (( (ptr) gc←v7208)+34) ) =  (word) -1;
SOURCE(2669, 31)
   (* (( (ptr) gc←v7208)+18) ) = 0;
SOURCE(2702, 36)
   (* (( (ptr) gc←v7208) + 1) ) |= 32768;
SOURCE(2195, 543)
   return(gc←v7208);
   }

static word MakeGContext←P900(c←v7280, drawable←v7308)
   word c←v7280;
   word drawable←v7308;
   {
   register ptr gf←c58628 =  (ptr) &globalframe;
   word gc←v7352;
   word cPriv←v17340;
   word gRef←v17368;
   /* MakeGContext: */ 
SOURCE(2744, 286)
SOURCE(2744, 286)
   gc←v7352 = 0;
SOURCE(2840, 46)
   cPriv←v17340 = (* (( (ptr) c←v7280)+24) );
SOURCE(2888, 45)
   gRef←v17368 = (* (( (ptr) cPriv←v17340)+6) );
SOURCE(2935, 29)
   gc←v7352 = (word) NewGContext←P840(c←v7280, drawable←v7308);
SOURCE(2966, 64)
   {
      word var←c54532;
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c58628)+165)/* var←c54500 */  ))+8) );
      var←c54532 = (word) ( *( (fPt) ((*  (ptr) pd39 ))))(gc←v7352, (* (( (ptr) gRef←v17368)+3) ), pd39);
      };
SOURCE(2744, 286)
   return(gc←v7352);
   }

static void FlushGContext←P960(formal←c0951, formal←c0952, formal←c0953)
   word formal←c0951;
   word formal←c0952;
   word formal←c0953;
   {
   W9 var←c58660;
   /* declaration of gc←v7424 skipped */ 
   /* declaration of drawable←v7452 skipped */ 
   /* declaration of details←v7480 skipped */ 
   register ptr gf←c58692 =  (ptr) &globalframe;
   /* declaration of var←c54564 skipped */ 
   (* (( (ptr) &var←c58660)+4)/* gc←v7424 */  ) = formal←c0951;
   (* (( (ptr) &var←c58660)+5)/* drawable←v7452 */  ) = formal←c0952;
   (* (( (ptr) &var←c58660)+6)/* details←v7480 */  ) = formal←c0953;
   /* FlushGContext: */ 
SOURCE(3036, 303)
   {
      word tmpAddr40;
      tmpAddr40 = (word) (( (ptr) &var←c58660)+7)/* var←c54564 */ ;
      (*  (ptr) tmpAddr40 ) = ( ((word)  (fPt) action←P4620) );
      (* (( (ptr) tmpAddr40) + 1) ) = 1;
      };
SOURCE(3204, 135)
   if (((*  (ptr) (* (( (ptr) &var←c58660)+4)/* gc←v7424 */  ) ) == 0) || ((* (( (ptr) (* (( (ptr) &var←c58660)+4)/* gc←v7424 */  ))+1)
    ) != 0)) {
SOURCE(3253, 88)
      {
         word owner←v17540;
SOURCE(3255, 29)
         owner←v17540 = (*  (ptr) (* (( (ptr) (* (( (ptr) &var←c58660)+4)/* gc←v7424 */  ))+67) ) );
SOURCE(3286, 53)
         if ((owner←v17540 != 0)) {
SOURCE(3304, 35)
            {
               word pd41;
               pd41 = (* (( (ptr) (* (( (ptr) gf←c58692)+166)/* var←c54596 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd41 ))))(owner←v17540, (word) (( (bPt) &var←c58660)+28)/* var←c54564 */ , (* (( (ptr) &var←c58660)+6)
                  /* details←v7480 */  ), pd41);
               };
            };
         };
      };
   }

static void action←P4620(c←v17512, formal←c58724)
   word c←v17512;
   word formal←c58724;
   {
   formal←c58724 = (formal←c58724 - 28);
   /* action: */ 
SOURCE(3127, 74)
SOURCE(3159, 42)
   {
      word var←c54628;
      var←c54628 = (word) UseGContext←P1560(c←v17512, (* (( (ptr) formal←c58724)+5) ), (* (( (ptr) formal←c58724)+4) ), (* (( (ptr) formal←c58724)+6)
          ));
      };
   }

static word GCID←P1020(gc←v7552, flush←v7580)
   word gc←v7552;
   word flush←v7580;
   {
   word id←v7624;
   /* GCID: */ 
SOURCE(3348, 234)
SOURCE(3415, 146)
   if ( ( ((*  (ptr) gc←v7552 ) == 0) ? ((* (( (ptr) gc←v7552)+68) ) != 0) : 0 ) ) {
SOURCE(3469, 42)
      (void) FlushGContext←P960(gc←v7552, 0, 0);
      }
   else {
SOURCE(3511, 50)
      if ((0 != flush←v7580)) {
SOURCE(3525, 36)
         (void) FlushGContext←P960(gc←v7552, 0, 0);
         };
      };
SOURCE(3563, 19)
   id←v7624 = (*  (ptr) gc←v7552 );
SOURCE(3348, 234)
   return(id←v7624);
   }

static void ValidateGC←P1080(gc←v7684, value←v7712)
   word gc←v7684;
   word value←v7712;
   {
   W6 var←c58756;
   /* declaration of var←c54660 skipped */ 
   word owner←v17612;
   /* ValidateGC: */ 
SOURCE(3586, 298)
   {
      word tmpAddr42;
      tmpAddr42 = (word) (( (ptr) &var←c58756)+4)/* var←c54660 */ ;
      (*  (ptr) tmpAddr42 ) = ( ((word)  (fPt) EntryValidateGC←P4728) );
      (* (( (ptr) tmpAddr42) + 1) ) = 1;
      };
SOURCE(3770, 29)
   owner←v17612 = (*  (ptr) (* (( (ptr) gc←v7684)+67) ) );
SOURCE(3801, 83)
   if ((owner←v17612 != 0)) {
SOURCE(3820, 39)
      (void) EntryValidateGC←P4728(owner←v17612, gc←v7684, value←v7712, (word) (( (bPt) &var←c58756)+16)/* var←c54660 */ );
      }
   else {
SOURCE(3859, 25)
      (*  (ptr) (( (ptr) (( (bPt) gc←v7684)+4)) + ((word) value←v7712 >> 5)) ) &= ~((unsigned) 1 << 32 - ((word) (value←v7712 & 037)+1)
      );
      };
   }

static void EntryValidateGC←P4728(c←v17688, gc←v17716, value←v17744, formal←c58788)
   word c←v17688;
   word gc←v17716;
   word value←v17744;
   word formal←c58788;
   {
   formal←c58788 = (formal←c58788 - 16);
   /* EntryValidateGC: */ 
SOURCE(3653, 111)
   (void) (XR←MonitorEntry(c←v17688));
SOURCE(3739, 25)
   (*  (ptr) (( (ptr) (( (bPt) gc←v17716)+4)) + ((word) value←v17744 >> 5)) ) &= ~((unsigned) 1 << 32 - ((word) (value←v17744 & 037)+1)
   );
SOURCE(3653, 111)
   (void) (XR←MonitorExit(c←v17688));
   return;
   }

static void InvalidateGC←P1140(gc←v7772, value←v7800)
   word gc←v7772;
   word value←v7800;
   {
   W6 var←c58820;
   /* declaration of var←c54692 skipped */ 
   word owner←v17800;
   /* InvalidateGC: */ 
SOURCE(3893, 304)
   {
      word tmpAddr43;
      tmpAddr43 = (word) (( (ptr) &var←c58820)+4)/* var←c54692 */ ;
      (*  (ptr) tmpAddr43 ) = ( ((word)  (fPt) EntryInvalidateGC←P4788) );
      (* (( (ptr) tmpAddr43) + 1) ) = 1;
      };
SOURCE(4080, 29)
   owner←v17800 = (*  (ptr) (* (( (ptr) gc←v7772)+67) ) );
SOURCE(4111, 86)
   if ((owner←v17800 != 0)) {
SOURCE(4130, 42)
      (void) EntryInvalidateGC←P4788(owner←v17800, gc←v7772, value←v7800, (word) (( (bPt) &var←c58820)+16)/* var←c54692 */ );
      }
   else {
SOURCE(4172, 25)
      (*  (ptr) (( (ptr) (( (bPt) gc←v7772)+4)) + ((word) value←v7800 >> 5)) ) |= ((unsigned) 1 << 32 - ((word) (value←v7800 & 037)+1)
      );
      };
   }

static void EntryInvalidateGC←P4788(c←v17876, gc←v17904, value←v17932, formal←c58852)
   word c←v17876;
   word gc←v17904;
   word value←v17932;
   word formal←c58852;
   {
   formal←c58852 = (formal←c58852 - 16);
   /* EntryInvalidateGC: */ 
SOURCE(3962, 112)
   (void) (XR←MonitorEntry(c←v17876));
SOURCE(4050, 24)
   (*  (ptr) (( (ptr) (( (bPt) gc←v17904)+4)) + ((word) value←v17932 >> 5)) ) |= ((unsigned) 1 << 32 - ((word) (value←v17932 & 037)+1)
   );
SOURCE(3962, 112)
   (void) (XR←MonitorExit(c←v17876));
   return;
   }

static void SetMaskBits←P1200(gc←v7860, mask←v7888, val←v7916)
   word gc←v7860;
   word mask←v7888;
   word val←v7916;
   {
   /* SetMaskBits: */ 
SOURCE(4202, 148)
SOURCE(4269, 81)
   {
      register word i←v17960 = 0;
      lab←L100003: ;
SOURCE(4315, 35)
      if (((word) mask←v7888 >> (31 - (word) i←v17960)) & 1) {
SOURCE(4331, 19)
         {
            word x44;
            word sh45;
            x44 = (word) (( (ptr) (( (bPt) gc←v7860)+4)) + ((word) i←v17960 >> 5));
            sh45 = 32 - ((word) (i←v17960 & 037)+1);
            (*  (ptr) x44 ) = ((*  (ptr) x44 ) & ( ~ ((unsigned) 1 << sh45))) | (((val←v7916 & 1)) << sh45);
            };
         };
      if ((i←v17960 >= 22)) {
         goto lab←L100000;
         };
      i←v17960 = (i←v17960 + 1);
      goto lab←L100003;
      lab←L100000: ;
      };
   }

static void ValidateGCMask←P1260(gc←v7976, mask←v8004)
   word gc←v7976;
   word mask←v8004;
   {
   W6 var←c58884;
   /* declaration of var←c54724 skipped */ 
   word owner←v18032;
   /* ValidateGCMask: */ 
SOURCE(4365, 277)
   {
      word tmpAddr46;
      tmpAddr46 = (word) (( (ptr) &var←c58884)+4)/* var←c54724 */ ;
      (*  (ptr) tmpAddr46 ) = ( ((word)  (fPt) Entry←P4896) );
      (* (( (ptr) tmpAddr46) + 1) ) = 1;
      };
SOURCE(4536, 29)
   owner←v18032 = (*  (ptr) (* (( (ptr) gc←v7976)+67) ) );
SOURCE(4567, 75)
   if ((owner←v18032 != 0)) {
SOURCE(4586, 28)
      (void) Entry←P4896(owner←v18032, gc←v7976, mask←v8004, (word) (( (bPt) &var←c58884)+16)/* var←c54724 */ );
      }
   else {
SOURCE(4614, 28)
      (void) SetMaskBits←P1200(gc←v7976, mask←v8004, 0);
      };
   }

static void Entry←P4896(c←v18108, gc←v18136, mask←v18164, formal←c58916)
   word c←v18108;
   word gc←v18136;
   word mask←v18164;
   word formal←c58916;
   {
   formal←c58916 = (formal←c58916 - 16);
   /* Entry: */ 
SOURCE(4431, 99)
   (void) (XR←MonitorEntry(c←v18108));
SOURCE(4502, 28)
   (void) SetMaskBits←P1200(gc←v18136, mask←v18164, 0);
SOURCE(4431, 99)
   (void) (XR←MonitorExit(c←v18108));
   return;
   }

static void InvalidateGCMask←P1320(gc←v8064, mask←v8092)
   word gc←v8064;
   word mask←v8092;
   {
   W6 var←c58948;
   /* declaration of var←c54756 skipped */ 
   word owner←v18220;
   /* InvalidateGCMask: */ 
SOURCE(4649, 289)
   {
      word tmpAddr47;
      tmpAddr47 = (word) (( (ptr) &var←c58948)+4)/* var←c54756 */ ;
      (*  (ptr) tmpAddr47 ) = ( ((word)  (fPt) Entry←P4956) );
      (* (( (ptr) tmpAddr47) + 1) ) = 1;
      };
SOURCE(4833, 29)
   owner←v18220 = (*  (ptr) (* (( (ptr) gc←v8064)+67) ) );
SOURCE(4864, 74)
   if ((owner←v18220 != 0)) {
SOURCE(4883, 28)
      (void) Entry←P4956(owner←v18220, gc←v8064, mask←v8092, (word) (( (bPt) &var←c58948)+16)/* var←c54756 */ );
      }
   else {
SOURCE(4911, 27)
      (void) SetMaskBits←P1200(gc←v8064, mask←v8092, 1);
      };
   }

static void Entry←P4956(c←v18296, gc←v18324, mask←v18352, formal←c58980)
   word c←v18296;
   word gc←v18324;
   word mask←v18352;
   word formal←c58980;
   {
   formal←c58980 = (formal←c58980 - 16);
   /* Entry: */ 
SOURCE(4729, 98)
   (void) (XR←MonitorEntry(c←v18296));
SOURCE(4800, 27)
   (void) SetMaskBits←P1200(gc←v18324, mask←v18352, 1);
SOURCE(4729, 98)
   (void) (XR←MonitorExit(c←v18296));
   return;
   }

static word NestedEntryUseGContext←P1380(c←v8152, formal←c0954, formal←c0955, formal←c0956)
   word c←v8152;
   word formal←c0954;
   word formal←c0955;
   word formal←c0956;
   {
   W10 var←c59012;
   /* declaration of drawable←v8180 skipped */ 
   /* declaration of gc←v8208 skipped */ 
   /* declaration of partialDetails←v8236 skipped */ 
   register ptr gf←c59044 =  (ptr) &globalframe;
   /* declaration of id←v8280 skipped */ 
   /* declaration of var←c54788 skipped */ 
   (* (( (ptr) &var←c59012)+4)/* drawable←v8180 */  ) = formal←c0954;
   (* (( (ptr) &var←c59012)+5)/* gc←v8208 */  ) = formal←c0955;
   (* (( (ptr) &var←c59012)+6)/* partialDetails←v8236 */  ) = formal←c0956;
   /* NestedEntryUseGContext: */ 
SOURCE(4944, 340)
   {
      word tmpAddr48;
      tmpAddr48 = (word) (( (ptr) &var←c59012)+8)/* var←c54788 */ ;
      (*  (ptr) tmpAddr48 ) = ( ((word)  (fPt) action←P5016) );
      (* (( (ptr) tmpAddr48) + 1) ) = 1;
      };
SOURCE(4944, 340)
   (* (( (ptr) &var←c59012)+7)/* id←v8280 */  ) = 0;
SOURCE(5246, 38)
   {
      word pd49;
      pd49 = (* (( (ptr) (* (( (ptr) gf←c59044)+166)/* var←c54596 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd49 ))))(c←v8152, (word) (( (bPt) &var←c59012)+32)/* var←c54788 */ , (* (( (ptr) &var←c59012)+6)
         /* partialDetails←v8236 */  ), pd49);
      };
SOURCE(4944, 340)
   return((* (( (ptr) &var←c59012)+7)/* id←v8280 */  ));
   }

static void action←P5016(c←v18456, formal←c59108)
   word c←v18456;
   word formal←c59108;
   {
   register ptr gf←c59076 =  (ptr) &globalframe;
   formal←c59108 = (formal←c59108 - 32);
   /* action: */ 
SOURCE(5085, 104)
SOURCE(5118, 49)
   (* (( (ptr) formal←c59108)+7) ) = (word) UseGContext←P1560(c←v18456, (* (( (ptr) formal←c59108)+4) ), (* (( (ptr) formal←c59108)+5)
       ), (* (( (ptr) formal←c59108)+6) ));
SOURCE(5169, 20)
   {
      word pd50;
      pd50 = (* (( (ptr) (* (( (ptr) gf←c59076)+166)/* var←c54596 */  ))+60) );
      (void) ( *( (fPt) ((*  (ptr) pd50 ))))(c←v18456, pd50);
      };
   }

static void FinalizeGC←P1500(handle←v30212, object←v30240)
   word handle←v30212;
   word object←v30240;
   {
   W8 var←c59140;
   register ptr gf←c59172 =  (ptr) &globalframe;
   /* declaration of var←c54820 skipped */ 
   word gc←v18512;
   /* declaration of c←v18540 skipped */ 
   /* FinalizeGC: */ 
SOURCE(5445, 483)
   {
      word tmpAddr51;
      tmpAddr51 = (word) (( (ptr) &var←c59140)+4)/* var←c54820 */ ;
      (*  (ptr) tmpAddr51 ) = ( ((word)  (fPt) FreeGC←P5076) );
      (* (( (ptr) tmpAddr51) + 1) ) = 1;
      };
SOURCE(5810, 36)
   gc←v18512 = XR←Narrow(object←v30240, (* (( (ptr) gf←c59172)+8) ));
SOURCE(5848, 25)
   var←c59140.f6/* c←v18540 */  = (*  (ptr) (* (( (ptr) gc←v18512)+67) ) );
SOURCE(5875, 53)
   if ( ( (var←c59140.f6/* c←v18540 */  != 0) ? (0 != (* (( (ptr) var←c59140.f6/* c←v18540 */ )+15) )) : 0 ) ) {
SOURCE(5895, 33)
SOURCE(5895, 33)
      {
         /* declaration of var←c01 skipped */ 
         var←c59140.f7/* var←c01 */  = (*  (ptr) gc←v18512 );
         {
            word var←c02;
            {
               word var←c0912;
               var←c0912 = (word) &var←c59140;
               var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q11820) ), ( ((word)  (fPt) NoName←Q12360) ), var←c0912);
               };
            /* removed trivial cond node */ 
            };
         };
      };
   }

static word NoName←Q11820(formal←c0856)
   word formal←c0856;
   {
SOURCE(5895, 33)
   (void) FreeGC←P5076((* (( (ptr) formal←c0856)+6) ), (* (( (ptr) formal←c0856)+7) ), (word) (( (bPt) formal←c0856)+16));
   return(0);
   }

static void FreeGC←P5076(formal←c0957, formal←c0958, formal←c59236)
   word formal←c0957;
   word formal←c0958;
   word formal←c59236;
   {
   W6 var←c59204;
   /* declaration of c←v18616 skipped */ 
   /* declaration of gcid←v18644 skipped */ 
   formal←c59236 = (formal←c59236 - 16);
   var←c59204.f4/* c←v18616 */  = formal←c0957;
   var←c59204.f5/* gcid←v18644 */  = formal←c0958;
   var←c59204.f0 = formal←c59236;
   /* FreeGC: */ 
SOURCE(5486, 315)
   (void) (XR←MonitorEntry(var←c59204.f4/* c←v18616 */ ));
SOURCE(5535, 266)
   {
      word var←c0913;
      var←c0913 = (word) &var←c59204;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q11880) ), ( ((word)  (fPt) NoName←Q12300) ), var←c0913);
      };
SOURCE(5486, 315)
   (void) (XR←MonitorExit(var←c59204.f4/* c←v18616 */ ));
   return;
   }

static word NoName←Q11880(formal←c0859)
   word formal←c0859;
   {
   register ptr gf←c0858 =  (ptr) &globalframe;
SOURCE(5572, 229)
   {
      word tc52;
      word pd53;
      if ( ( ((* (( (ptr) formal←c0859)+5) ) != 0) ?  ( ((* (( (ptr) formal←c0859)+4) ) != 0) ? (0 != (* (( (ptr) (* (( (ptr) formal←c0859)+4)
          ))+15) )) : 0 )  : 0 ) ) {
         pd53 = (* (( (ptr) (* (( (ptr) gf←c0858)+167)/* var←c54852 */  ))+9) );
         tc52 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) formal←c0859)+4) ), (* (( (ptr) formal←c0859)+5) ), pd53)
         );
         }
      else {
         tc52 =  (word) 0;
         };
      if (tc52) {
SOURCE(5645, 18)
         {
            word pd54;
            pd54 = (* (( (ptr) (* (( (ptr) gf←c0858)+166)/* var←c54596 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd54 ))))((* (( (ptr) formal←c0859)+4) ), 60, 0, 2, pd54);
            };
SOURCE(5665, 15)
         (void) BPut32←P240((* (( (ptr) formal←c0859)+4) ), (* (( (ptr) formal←c0859)+5) ));
SOURCE(5682, 67)
         {
            word var←c54916;
            word pd55;
            pd55 = (* (( (ptr) (* (( (ptr) gf←c0858)+166)/* var←c54596 */  ))+65) );
            var←c54916 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) formal←c0859)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0858)+168)
                  /* var←c54884 */  ))+5) ) ), pd55);
            };
SOURCE(5751, 50)
         {
            word pd56;
            pd56 = (* (( (ptr) (* (( (ptr) gf←c0858)+167)/* var←c54852 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd56 ))))((* (( (ptr) formal←c0859)+4) ), (* (( (ptr) formal←c0859)+5) ), pd56);
            };
         };
      };
   return(0);
   }

static word UseGContext←P1560(c←v8456, formal←c0959, formal←c0960, formal←c0961)
   word c←v8456;
   word formal←c0959;
   word formal←c0960;
   word formal←c0961;
   {
   W10 var←c59268;
   /* declaration of drawable←v8484 skipped */ 
   /* declaration of gc←v8512 skipped */ 
   /* declaration of partialDetails←v8540 skipped */ 
   register ptr gf←c59300 =  (ptr) &globalframe;
   word id←v8596;
   (* (( (ptr) &var←c59268)+4)/* drawable←v8484 */  ) = formal←c0959;
   (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ) = formal←c0960;
   (* (( (ptr) &var←c59268)+6)/* partialDetails←v8540 */  ) = formal←c0961;
   /* UseGContext: */ 
SOURCE(5943, 1483)
SOURCE(5943, 1483)
   id←v8596 = 0;
SOURCE(6090, 1336)
SOURCE(6092, 46)
   if (((* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ) == 0)) {
SOURCE(6109, 29)
      (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ) = (word) NewGContext←P840(c←v8456, (* (( (ptr) &var←c59268)+4)/* drawable←v8484 */  ))
      ;
      };
SOURCE(6143, 18)
   id←v8596 = (*  (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ) );
SOURCE(6163, 1233)
   if ((id←v8596 == 0) || ((* (( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+1) ) != 0)) {
SOURCE(6201, 1197)
      {
         /* declaration of owner←v18684 skipped */ 
         word safeChanged←v18712;
         word safeChanged2←v18740;
         word n←v18768 = 0;
         word bitmask←v18796 = 0;
         word create←v18824;
SOURCE(6203, 29)
         (* (( (ptr) &var←c59268)+7)/* owner←v18684 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+67)
          ) );
SOURCE(6235, 37)
         safeChanged←v18712 = (* (( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+1) );
SOURCE(6274, 39)
         safeChanged2←v18740 = safeChanged←v18712;
SOURCE(6348, 19)
         create←v18824 =  (unsigned) (id←v8596 == 0);
SOURCE(6369, 24)
         if (((* (( (ptr) &var←c59268)+7)/* owner←v18684 */  ) == 0)) {
SOURCE(6387, 6)
            return(id←v8596);
            };
SOURCE(6395, 47)
         {
            W2 var←c54948;
            (void) CountAndSetMaskBits←P3840((word) &var←c54948, safeChanged←v18712);
            {
               word idx57;
               n←v18768 = (
                  idx57 = (word) var←c54948.f1,
                  SGNCK(idx57)
                  );
               };
            bitmask←v18796 = var←c54948.f0;
            };
SOURCE(6444, 535)
         if ((0 != create←v18824)) {
SOURCE(6462, 124)
            if (((* (( (ptr) &var←c59268)+4)/* drawable←v8484 */  ) == 0)) {
SOURCE(6494, 22)
               (* (( (ptr) &var←c59268)+4)/* drawable←v8484 */  ) = (* (( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+68) );
SOURCE(6518, 68)
               if (((* (( (ptr) &var←c59268)+4)/* drawable←v8484 */  ) == 0)) {
SOURCE(6548, 38)
                  {
                     word pd58;
                     pd58 = (* (( (ptr) (* (( (ptr) gf←c59300)+169)/* var←c54980 */  ))+21) );
                     (* (( (ptr) &var←c59268)+4)/* drawable←v8484 */  ) = (word) ( *( (fPt) ((*  (ptr) pd58 ))))((* ((( (ptr) &var←c59268)+7)/* owner←v18684 */ ) ), pd58)
                     ;
                     };
                  };
               };
SOURCE(6591, 134)
            if ((c←v8456 != (* (( (ptr) &var←c59268)+7)/* owner←v18684 */  ))) {
SOURCE(6626, 74)
               {
                  /* declaration of var←c03 skipped */ 
                  {
                     word var←c04;
                     {
                        word var←c0914;
                        var←c0914 = (word) &var←c59268;
                        var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q12000) ), ( ((word)  (fPt) NoName←Q12240) ), var←c0914);
                        };
                     if ((var←c04 == 3)) {
                        goto lab←L100010;
                        };
                     };
                  id←v8596 = (* (( (ptr) &var←c59268)+8)/* var←c03 */  );
                  };
SOURCE(6714, 11)
               return(id←v8596);
               };
SOURCE(6730, 71)
            {
               word var←c55012;
               {
                  /* declaration of var←c05 skipped */ 
                  (* (( (ptr) &var←c59268)+8)/* var←c05 */  ) = (* (( (ptr) (* (( (ptr) gf←c59300)+167)/* var←c54852 */  ))+6) );
                  {
                     /* declaration of var←c06 skipped */ 
                     {
                        word var←c07;
                        {
                           word var←c0915;
                           var←c0915 = (word) &var←c59268;
                           var←c07 = (word) XR←Enable(( ((word)  (fPt) NoName←Q11940) ), ( ((word)  (fPt) NoName←Q12180) ), var←c0915);
                           };
                        if ((var←c07 == 3)) {
                           goto lab←L100010;
                           };
                        };
                     var←c55012 = (* (( (ptr) &var←c59268)+9)/* var←c06 */  );
                     };
                  };
               (*  (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ) ) = var←c55012;
               id←v8596 = var←c55012;
               };
SOURCE(6846, 32)
            {
               word pd59;
               pd59 = (* (( (ptr) (* (( (ptr) gf←c59300)+166)/* var←c54596 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd59 ))))(c←v8456, 55, 0, SGNCK((n←v18768 + 4)), pd59);
               };
SOURCE(6880, 13)
            (void) BPut32←P240(c←v8456, id←v8596);
SOURCE(6895, 25)
            (void) BPutDrawable←P300(c←v8456, (* (( (ptr) &var←c59268)+4)/* drawable←v8484 */  ));
            }
         else {
SOURCE(6931, 32)
            {
               word pd60;
               pd60 = (* (( (ptr) (* (( (ptr) gf←c59300)+166)/* var←c54596 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd60 ))))(c←v8456, 56, 0, SGNCK((n←v18768 + 3)), pd60);
               };
SOURCE(6965, 14)
            {
               word c←v49724;
               word b←v49752;
               c←v49724 = c←v8456;
               b←v49752 = id←v8596;
               {
                  word p←v49784;
                  word n←v49812;
                  p←v49784 = (* (( (ptr) c←v49724)+7) );
                  n←v49812 = (* (( (ptr) c←v49724)+4) );
                  (* (( (ptr) p←v49784)+((word) n←v49812 >> 2)) ) = b←v49752;
                  (* (( (ptr) c←v49724)+4) ) = (n←v49812 + 4);
                  };
               };
            };
SOURCE(6984, 19)
         {
            word c←v49592;
            word b←v49620;
            c←v49592 = c←v8456;
            b←v49620 = bitmask←v18796;
            {
               word p←v49652;
               word n←v49680;
               p←v49652 = (* (( (ptr) c←v49592)+7) );
               n←v49680 = (* (( (ptr) c←v49592)+4) );
               (* (( (ptr) p←v49652)+((word) n←v49680 >> 2)) ) = b←v49620;
               (* (( (ptr) c←v49592)+4) ) = (n←v49680 + 4);
               };
            };
SOURCE(7005, 202)
         {
            register word key←v18868 = 0;
            lab←L100018: ;
            if ((safeChanged←v18712 != 0)) {
               }
            else {
               goto lab←L100015;
               };
SOURCE(7082, 125)
            if (((word) safeChanged←v18712 >> (31 - (word) key←v18868)) & 1) {
SOURCE(7110, 42)
               {
                  word c←v49460;
                  word b←v49488;
                  c←v49460 = c←v8456;
                  b←v49488 = (* ((( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+2)+key←v18868) );
                  (* ((( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+35)+key←v18868) ) = b←v49488;
                  {
                     word p←v49520;
                     word n←v49548;
                     p←v49520 = (* (( (ptr) c←v49460)+7) );
                     n←v49548 = (* (( (ptr) c←v49460)+4) );
                     (* (( (ptr) p←v49520)+((word) n←v49548 >> 2)) ) = b←v49488;
                     (* (( (ptr) c←v49460)+4) ) = (n←v49548 + 4);
                     };
                  };
SOURCE(7155, 24)
               (*  (ptr) &safeChanged←v18712 ) &= ~((unsigned) 1 << 32 - ((word) key←v18868+1));
SOURCE(7181, 26)
               (*  (ptr) (( (ptr) (( (bPt) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+136)) + ((word) key←v18868 >> 5)) ) |= ((unsigned) 1 << 32 - (
                  (word) (key←v18868 & 037)+1));
               };
            if ((key←v18868 >= 22)) {
               goto lab←L100015;
               };
            key←v18868 = (key←v18868 + 1);
            goto lab←L100018;
            lab←L100015: ;
            };
SOURCE(7221, 92)
         if ((((unsigned)safeChanged2←v18740 << 14) >> 31)) {
SOURCE(7249, 64)
            (* (( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+70) ) = (* (( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+69)
             );
            };
SOURCE(7315, 23)
         (* (( (ptr) (* (( (ptr) &var←c59268)+5)/* gc←v8512 */  ))+1) ) = 0;
SOURCE(7340, 56)
         {
            word var←c55076;
            word pd61;
            pd61 = (* (( (ptr) (* (( (ptr) gf←c59300)+166)/* var←c54596 */  ))+66) );
            var←c55076 = (word) ( *( (fPt) ((*  (ptr) pd61 ))))(c←v8456, (* (( (ptr) &var←c59268)+6)/* partialDetails←v8540 */  ), pd61)
            ;
            };
         };
      };
   goto lab←L100019;
   lab←L100010: ;
SOURCE(7415, 11)
   return(0);
   lab←L100019: ;
SOURCE(5943, 1483)
   return(id←v8596);
   }

static word NoName←Q11940(formal←c0861)
   word formal←c0861;
   {
SOURCE(6730, 71)
   {
      word pd62;
      pd62 = (* (( (ptr) formal←c0861)+8) );
      (* (( (ptr) formal←c0861)+9) ) = (word) ( *( (fPt) ((*  (ptr) pd62 ))))((* ((( (ptr) formal←c0861)+7)) ), pd62);
      };
   return(0);
   }

static word NoName←Q12000(formal←c0862)
   word formal←c0862;
   {
SOURCE(6626, 74)
   (* (( (ptr) formal←c0862)+8) ) = (word) NestedEntryUseGContext←P1380((* (( (ptr) formal←c0862)+7) ), (* (( (ptr) formal←c0862)+4)
       ), (* (( (ptr) formal←c0862)+5) ), (* (( (ptr) formal←c0862)+6) ));
   return(0);
   }

static void SetGContext←P1680(gc←v8772, key←v8800, value←v8828)
   word gc←v8772;
   word key←v8800;
   word value←v8828;
   {
   /* SetGContext: */ 
SOURCE(7674, 110)
SOURCE(7755, 29)
   {
      word gc←v48280;
      word key←v48308;
      word value←v48336;
      gc←v48280 = gc←v8772;
      key←v48308 = key←v8800;
      value←v48336 = value←v8828;
SOURCE(7512, 21)
      (* ((( (ptr) gc←v48280)+2)+key←v48308) ) = value←v48336;
SOURCE(7536, 132)
      if (((* ((( (ptr) gc←v48280)+35)+key←v48308) ) != value←v48336)) { goto then063;};
      if ((( ! (((*  (ptr) (( (ptr) (( (bPt) gc←v48280)+136)) + ((word) key←v48308 >> 5)) ) >> (31 - ((word) (key←v48308 & 037))))
       & 1) || (key←v48308 == 11)) || (key←v48308 == 10)) ||  ( (key←v48308 == 19) ? (value←v48336 != 0) : 0 ) ) {
         then063: ;
SOURCE(7646, 22)
         (*  (ptr) (( (ptr) (( (bPt) gc←v48280)+4)) + ((word) key←v48308 >> 5)) ) |= ((unsigned) 1 << 32 - ((word) (key←v48308 & 037)+1)
         );
         };
      };
   }

static void SetGCFont←P1800(gc←v9004, font←v9032)
   word gc←v9004;
   word font←v9032;
   {
   register ptr gf←c59332 =  (ptr) &globalframe;
   /* SetGCFont: */ 
SOURCE(8125, 84)
SOURCE(8179, 30)
   {
      word gc←v48560;
      word font←v48588;
      gc←v48560 = gc←v9004;
      font←v48588 = font←v9032;
      {
         word id←v18912;
         {
            word pd64;
            pd64 = (* (( (ptr) (* (( (ptr) gf←c59332)+169)/* var←c54980 */  ))+7) );
            id←v18912 = (word) ( *( (fPt) ((*  (ptr) pd64 ))))(font←v48588, pd64);
            };
SOURCE(7891, 13)
         if ((id←v18912 == 0)) {
SOURCE(7904, 5)
            (void) XR←RaiseUnnamedError();
            };
SOURCE(7911, 26)
         {
            word gc←v48204;
            word value←v48232;
            gc←v48204 = gc←v48560;
            value←v48232 = id←v18912;
SOURCE(7512, 21)
            (* (( (ptr) gc←v48204)+16) ) = value←v48232;
SOURCE(7536, 132)
            if (((* (( (ptr) gc←v48204)+49) ) != value←v48232) ||  ! ((* (( (bPt) gc←v48204)+137) ) & 02)) {
SOURCE(7646, 22)
               (* (( (ptr) gc←v48204) + 1) ) |= 131072;
               };
            };
SOURCE(7939, 37)
         (* (( (ptr) gc←v48560)+69) ) = font←v48588;
         };
      };
   }

static void SetGCFunction←P1860(gc←v9092, function←v9120)
   word gc←v9092;
   word function←v9120;
   {
   /* SetGCFunction: */ 
SOURCE(8216, 125)
SOURCE(8284, 57)
   {
      word gc←v48128;
      word value←v48156;
      gc←v48128 = gc←v9092;
      value←v48156 = function←v9120;
SOURCE(7512, 21)
      (* (( (ptr) gc←v48128)+2) ) = value←v48156;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v48128)+35) ) != value←v48156) ||  ! (*((int*)gc←v48128 + 34)<0)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v48128) + 1) ) |= 2147483648;
         };
      };
   }

static void SetGCFillStyle←P1920(gc←v9180, fillStyle←v9208)
   word gc←v9180;
   word fillStyle←v9208;
   {
   /* SetGCFillStyle: */ 
SOURCE(8347, 130)
SOURCE(8418, 59)
   {
      word gc←v48052;
      word value←v48080;
      gc←v48052 = gc←v9180;
      value←v48080 = fillStyle←v9208;
SOURCE(7512, 21)
      (* (( (ptr) gc←v48052)+10) ) = value←v48080;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v48052)+43) ) != value←v48080) ||  ! ((* (( (bPt) gc←v48052)+137) ) & 0200)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v48052) + 1) ) |= 8388608;
         };
      };
   }

static void SetGCTile←P1980(gc←v9268, tile←v9296)
   word gc←v9268;
   word tile←v9296;
   {
   /* SetGCTile: */ 
SOURCE(8483, 110)
SOURCE(8539, 54)
   {
      word gc←v47976;
      word value←v48004;
      gc←v47976 = gc←v9268;
      value←v48004 = tile←v9296;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47976)+12) ) = value←v48004;
SOURCE(7536, 132)
      if ((((* (( (ptr) gc←v47976)+45) ) != value←v48004) ||  ! ((* (( (bPt) gc←v47976)+137) ) & 040)) || 1) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47976) + 1) ) |= 2097152;
         };
      };
   }

static void SetGCStipple←P2040(gc←v9356, stipple←v9384)
   word gc←v9356;
   word stipple←v9384;
   {
   /* SetGCStipple: */ 
SOURCE(8599, 122)
SOURCE(8661, 60)
   {
      word gc←v47900;
      word value←v47928;
      gc←v47900 = gc←v9356;
      value←v47928 = stipple←v9384;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47900)+13) ) = value←v47928;
SOURCE(7536, 132)
      if ((((* (( (ptr) gc←v47900)+46) ) != value←v47928) ||  ! ((* (( (bPt) gc←v47900)+137) ) & 020)) || 1) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47900) + 1) ) |= 1048576;
         };
      };
   }

static void SetGCClipMask←P2100(gc←v9444, clipMask←v9472)
   word gc←v9444;
   word clipMask←v9472;
   {
   /* SetGCClipMask: */ 
SOURCE(8727, 139)
SOURCE(8804, 62)
   {
      word gc←v47824;
      word value←v47852;
      gc←v47824 = gc←v9444;
      value←v47852 = clipMask←v9472;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47824)+21) ) = value←v47852;
SOURCE(7536, 132)
      if ((((* (( (ptr) gc←v47824)+54) ) != value←v47852) ||  ! ((* (( (bPt) gc←v47824)+138) ) & 020)) || (value←v47852 != 0)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47824) + 1) ) |= 4096;
         };
      };
   }

static void SetGCStippleOrigin←P2160(gc←v9532, origin←v9560)
   word gc←v9532;
   W2 origin←v9560;
   {
   word cardX←v18940;
   word cardY←v18968;
   /* SetGCStippleOrigin: */ 
SOURCE(8872, 258)
SOURCE(8938, 34)
   cardX←v18940 = origin←v9560.f0;
SOURCE(8974, 34)
   cardY←v18968 = origin←v9560.f1;
SOURCE(9010, 59)
   {
      word gc←v47748;
      word value←v47776;
      gc←v47748 = gc←v9532;
      value←v47776 = cardX←v18940;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47748)+14) ) = value←v47776;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47748)+47) ) != value←v47776) ||  ! ((* (( (bPt) gc←v47748)+137) ) & 010)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47748) + 1) ) |= 524288;
         };
      };
SOURCE(9071, 59)
   {
      word gc←v47672;
      word value←v47700;
      gc←v47672 = gc←v9532;
      value←v47700 = cardY←v18968;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47672)+15) ) = value←v47700;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47672)+48) ) != value←v47700) ||  ! ((* (( (bPt) gc←v47672)+137) ) & 04)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47672) + 1) ) |= 262144;
         };
      };
   }

static void SetGCClipMaskOrigin←P2220(gc←v9620, origin←v9648)
   word gc←v9620;
   W2 origin←v9648;
   {
   word cardX←v19012;
   word cardY←v19040;
   /* SetGCClipMaskOrigin: */ 
SOURCE(9136, 245)
SOURCE(9203, 34)
   cardX←v19012 = origin←v9648.f0;
SOURCE(9239, 34)
   cardY←v19040 = origin←v9648.f1;
SOURCE(9275, 52)
   {
      word gc←v47596;
      word value←v47624;
      gc←v47596 = gc←v9620;
      value←v47624 = cardX←v19012;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47596)+19) ) = value←v47624;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47596)+52) ) != value←v47624) ||  ! ((* (( (bPt) gc←v47596)+138) ) & 0100)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47596) + 1) ) |= 16384;
         };
      };
SOURCE(9329, 52)
   {
      word gc←v47520;
      word value←v47548;
      gc←v47520 = gc←v9620;
      value←v47548 = cardY←v19040;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47520)+20) ) = value←v47548;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47520)+53) ) != value←v47548) ||  ! ((* (( (bPt) gc←v47520)+138) ) & 040)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47520) + 1) ) |= 8192;
         };
      };
   }

static void SetGCBackground←P2280(gc←v9708, background←v9736)
   word gc←v9708;
   word background←v9736;
   {
   /* SetGCBackground: */ 
SOURCE(9387, 124)
SOURCE(9455, 56)
   {
      word gc←v47444;
      word value←v47472;
      gc←v47444 = gc←v9708;
      value←v47472 = background←v9736;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47444)+5) ) = value←v47472;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47444)+38) ) != value←v47472) ||  ! ((* (( (bPt) gc←v47444)+136) ) & 020)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47444) + 1) ) |= 268435456;
         };
      };
   }

static void SetGCGrounds←P2340(gc←v9796, foreground←v9824, background←v9852)
   word gc←v9796;
   word foreground←v9824;
   word background←v9852;
   {
   /* SetGCGrounds: */ 
SOURCE(9517, 191)
SOURCE(9594, 56)
   {
      word gc←v47368;
      word value←v47396;
      gc←v47368 = gc←v9796;
      value←v47396 = background←v9852;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47368)+5) ) = value←v47396;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47368)+38) ) != value←v47396) ||  ! ((* (( (bPt) gc←v47368)+136) ) & 020)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47368) + 1) ) |= 268435456;
         };
      };
SOURCE(9652, 56)
   {
      word gc←v47292;
      word value←v47320;
      gc←v47292 = gc←v9796;
      value←v47320 = foreground←v9824;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47292)+4) ) = value←v47320;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47292)+37) ) != value←v47320) ||  ! ((* (( (bPt) gc←v47292)+136) ) & 040)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47292) + 1) ) |= 536870912;
         };
      };
   }

static void SetGCForeground←P2400(gc←v9912, foreground←v9940)
   word gc←v9912;
   word foreground←v9940;
   {
   /* SetGCForeground: */ 
SOURCE(9714, 124)
SOURCE(9782, 56)
   {
      word gc←v47216;
      word value←v47244;
      gc←v47216 = gc←v9912;
      value←v47244 = foreground←v9940;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47216)+4) ) = value←v47244;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47216)+37) ) != value←v47244) ||  ! ((* (( (bPt) gc←v47216)+136) ) & 040)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47216) + 1) ) |= 536870912;
         };
      };
   }

static void SetGCPlaneMask←P2460(gc←v10000, planeMask←v10028)
   word gc←v10000;
   word planeMask←v10028;
   {
   /* SetGCPlaneMask: */ 
SOURCE(9844, 120)
SOURCE(9910, 54)
   {
      word gc←v47140;
      word value←v47168;
      gc←v47140 = gc←v10000;
      value←v47168 = planeMask←v10028;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47140)+3) ) = value←v47168;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47140)+36) ) != value←v47168) ||  ! ((* (( (bPt) gc←v47140)+136) ) & 0100)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47140) + 1) ) |= 1073741824;
         };
      };
   }

static void SetGCLineWidth←P2520(gc←v10088, width←v10116)
   word gc←v10088;
   word width←v10116;
   {
   word card←v19084;
   /* SetGCLineWidth: */ 
SOURCE(9970, 166)
SOURCE(10029, 30)
   card←v19084 = width←v10116;
SOURCE(10061, 75)
   if ((card←v19084 < 65535)) {
SOURCE(10087, 49)
      {
         word gc←v47092;
         gc←v47092 = gc←v10088;
SOURCE(7512, 21)
         (* (( (ptr) gc←v47092)+6) ) = card←v19084;
SOURCE(7536, 132)
         if (((* (( (ptr) gc←v47092)+39) ) != card←v19084) ||  ! ((* (( (bPt) gc←v47092)+136) ) & 010)) {
SOURCE(7646, 22)
            (* (( (ptr) gc←v47092) + 1) ) |= 134217728;
            };
         };
      };
   }

static void SetGCLineStyle←P2580(gc←v10176, lineStyle←v10204)
   word gc←v10176;
   word lineStyle←v10204;
   {
   /* SetGCLineStyle: */ 
SOURCE(10142, 130)
SOURCE(10213, 59)
   {
      word gc←v47016;
      word value←v47044;
      gc←v47016 = gc←v10176;
      value←v47044 = lineStyle←v10204;
SOURCE(7512, 21)
      (* (( (ptr) gc←v47016)+7) ) = value←v47044;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v47016)+40) ) != value←v47044) ||  ! ((* (( (bPt) gc←v47016)+136) ) & 04)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v47016) + 1) ) |= 67108864;
         };
      };
   }

static void SetGCCapStyle←P2640(gc←v10264, capStyle←v10292)
   word gc←v10264;
   word capStyle←v10292;
   {
   /* SetGCCapStyle: */ 
SOURCE(10278, 125)
SOURCE(10346, 57)
   {
      word gc←v46940;
      word value←v46968;
      gc←v46940 = gc←v10264;
      value←v46968 = capStyle←v10292;
SOURCE(7512, 21)
      (* (( (ptr) gc←v46940)+8) ) = value←v46968;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v46940)+41) ) != value←v46968) ||  ! ((* (( (bPt) gc←v46940)+136) ) & 02)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v46940) + 1) ) |= 33554432;
         };
      };
   }

static void SetGCFillRule←P2700(gc←v10352, fillRule←v10380)
   word gc←v10352;
   word fillRule←v10380;
   {
   /* SetGCFillRule: */ 
SOURCE(10409, 125)
SOURCE(10477, 57)
   {
      word gc←v46864;
      word value←v46892;
      gc←v46864 = gc←v10352;
      value←v46892 = fillRule←v10380;
SOURCE(7512, 21)
      (* (( (ptr) gc←v46864)+11) ) = value←v46892;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v46864)+44) ) != value←v46892) ||  ! ((* (( (bPt) gc←v46864)+137) ) & 0100)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v46864) + 1) ) |= 4194304;
         };
      };
   }

static void SetGCJoinStyle←P2760(gc←v10440, joinStyle←v10468)
   word gc←v10440;
   word joinStyle←v10468;
   {
   /* SetGCJoinStyle: */ 
SOURCE(10540, 130)
SOURCE(10611, 59)
   {
      word gc←v46788;
      word value←v46816;
      gc←v46788 = gc←v10440;
      value←v46816 = joinStyle←v10468;
SOURCE(7512, 21)
      (* (( (ptr) gc←v46788)+9) ) = value←v46816;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v46788)+42) ) != value←v46816) ||  ! ((* (( (bPt) gc←v46788)+136) ) & 1)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v46788) + 1) ) |= 16777216;
         };
      };
   }

static void SetGCArcMode←P2820(gc←v10528, arcMode←v10556)
   word gc←v10528;
   word arcMode←v10556;
   {
   /* SetGCArcMode: */ 
SOURCE(10676, 120)
SOURCE(10741, 55)
   {
      word gc←v46712;
      word value←v46740;
      gc←v46712 = gc←v10528;
      value←v46740 = arcMode←v10556;
SOURCE(7512, 21)
      (* (( (ptr) gc←v46712)+24) ) = value←v46740;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v46712)+57) ) != value←v46740) ||  ! ((* (( (bPt) gc←v46712)+138) ) & 02)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v46712) + 1) ) |= 512;
         };
      };
   }

static void SetGCSubWindowMode←P2880(gc←v10616, subwindowMode←v10644)
   word gc←v10616;
   word subwindowMode←v10644;
   {
   /* SetGCSubWindowMode: */ 
SOURCE(10802, 150)
SOURCE(10885, 67)
   {
      word gc←v46636;
      word value←v46664;
      gc←v46636 = gc←v10616;
      value←v46664 = subwindowMode←v10644;
SOURCE(7512, 21)
      (* (( (ptr) gc←v46636)+17) ) = value←v46664;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v46636)+50) ) != value←v46664) ||  ! ((* (( (bPt) gc←v46636)+137) ) & 1)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v46636) + 1) ) |= 65536;
         };
      };
   }

static void SetGCGraphicsExposures←P3000(gc←v10808, graphicsExposures←v10836)
   word gc←v10808;
   word graphicsExposures←v10836;
   {
   /* SetGCGraphicsExposures: */ 
SOURCE(11044, 159)
SOURCE(11124, 79)
   {
      word gc←v46560;
      word value←v46588;
      gc←v46560 = gc←v10808;
      value←v46588 =  ( (0 != graphicsExposures←v10836) ? 1 : 0 ) ;
SOURCE(7512, 21)
      (* (( (ptr) gc←v46560)+18) ) = value←v46588;
SOURCE(7536, 132)
      if (((* (( (ptr) gc←v46560)+51) ) != value←v46588) ||  ! (*(( short *)gc←v46560 + 69)<0)) {
SOURCE(7646, 22)
         (* (( (ptr) gc←v46560) + 1) ) |= 32768;
         };
      };
   }

static void CopyArea←P3060(c←v10896, src←v10924, dst←v10952, srcP←v10980, dstP←v11008, size←v11036, gc←v11064, details←v11092)
   word c←v10896;
   word src←v10924;
   word dst←v10952;
   W2 srcP←v10980;
   W2 dstP←v11008;
   W2 size←v11036;
   word gc←v11064;
   word details←v11092;
   {
   register ptr gf←c59364 =  (ptr) &globalframe;
   word var←c55108;
   word var←c55140;
   word err←v19128 = 0;
   word gcid←v19156;
   /* CopyArea: */ 
SOURCE(11209, 667)
   (void) (XR←MonitorEntry(c←v10896));
SOURCE(11363, 47)
   gcid←v19156 = (word) UseGContext←P1560(c←v10896, dst←v10952, gc←v11064, details←v11092);
SOURCE(11420, 353)
   {
      word ptr←v19200;
SOURCE(11422, 85)
      {
         word pd65;
         pd65 = (* (( (ptr) (* (( (ptr) gf←c59364)+166)/* var←c54596 */  ))+40) );
         ptr←v19200 = (word) ( *( (fPt) ((*  (ptr) pd65 ))))(c←v10896, 62, 28, 0, pd65);
         };
SOURCE(11509, 262)
      (*  (ptr) ptr←v19200 ) = 1040187399;
      (* (( (ptr) ptr←v19200)+1) ) = src←v10924;
      (* (( (ptr) ptr←v19200)+2) ) = dst←v10952;
      (* (( (ptr) ptr←v19200)+3) ) = gcid←v19156;
      (* (( (ptr) ptr←v19200)+4) ) = (((word) ( (((unsigned)srcP←v10980.f0 << 16) >> 16) ) << 16) +  (unsigned) ( (((unsigned)( (((unsigned)srcP←v10980.f1 << 16) >> 16) ) << 16) >> 16) ));
      (* (( (ptr) ptr←v19200)+5) ) = (((word) ( (((unsigned)dstP←v11008.f0 << 16) >> 16) ) << 16) +  (unsigned) ( (((unsigned)( (((unsigned)dstP←v11008.f1 << 16) >> 16) ) << 16) >> 16) ));
      (* (( (ptr) ptr←v19200)+6) ) = (((word) ( (((unsigned)size←v11036.f0 << 16) >> 16) ) << 16) +  (unsigned) ( (((unsigned)( (((unsigned)size←v11036.f1 << 16) >> 16) ) << 16) >> 16) ));
      };
SOURCE(11776, 53)
   {
      word pd66;
      pd66 = (* (( (ptr) (* (( (ptr) gf←c59364)+166)/* var←c54596 */  ))+65) );
      err←v19128 = (word) ( *( (fPt) ((*  (ptr) pd66 ))))(c←v10896, details←v11092, pd66);
      };
SOURCE(11831, 45)
   if ((err←v19128 != 0)) {
SOURCE(11847, 29)
      var←c55108 = (* (( (ptr) (* (( (ptr) gf←c59364)+169)/* var←c54980 */  ))+4) );
      var←c55140 = (word) err←v19128;
      (void) (XR←MonitorExit(c←v10896));
      goto lab←L100020;
      };
SOURCE(11209, 667)
   (void) (XR←MonitorExit(c←v10896));
   return;
   /* c2c skipped dead code */ 
   lab←L100020: ;
SOURCE(11847, 29)
   {
      word var←c0384;
      var←c0384 = var←c55140;
      (void) XR←RaiseError(var←c55108, (word) &var←c0384);
      };
   }

static void CopyPlane←P3120(c←v11884, src←v11912, dst←v11940, srcP←v11968, dstP←v11996, size←v12024, gc←v12052, bitPlane←v12080, details←v12108)
   word c←v11884;
   word src←v11912;
   word dst←v11940;
   W2 srcP←v11968;
   W2 dstP←v11996;
   W2 size←v12024;
   word gc←v12052;
   word bitPlane←v12080;
   word details←v12108;
   {
   register ptr gf←c59396 =  (ptr) &globalframe;
   word var←c55172;
   word var←c55204;
   word err←v19256 = 0;
   word gcid←v19284;
   word ptr←v19312;
   /* CopyPlane: */ 
SOURCE(12385, 657)
   (void) (XR←MonitorEntry(c←v11884));
SOURCE(12564, 47)
   gcid←v19284 = (word) UseGContext←P1560(c←v11884, dst←v11940, gc←v12052, details←v12108);
SOURCE(12613, 86)
   {
      word pd67;
      pd67 = (* (( (ptr) (* (( (ptr) gf←c59396)+166)/* var←c54596 */  ))+40) );
      ptr←v19312 = (word) ( *( (fPt) ((*  (ptr) pd67 ))))(c←v11884, 63, 32, 0, pd67);
      };
SOURCE(12701, 239)
   (*  (ptr) ptr←v19312 ) = 1056964616;
   (* (( (ptr) ptr←v19312)+1) ) = src←v11912;
   (* (( (ptr) ptr←v19312)+2) ) = dst←v11940;
   (* (( (ptr) ptr←v19312)+3) ) = gcid←v19284;
   (* (( (ptr) ptr←v19312)+4) ) = (((word) ( (((unsigned)srcP←v11968.f0 << 16) >> 16) ) << 16) +  (unsigned) ( (((unsigned)( (((unsigned)srcP←v11968.f1 << 16) >> 16) ) << 16) >> 16) ));
   (* (( (ptr) ptr←v19312)+5) ) = (((word) ( (((unsigned)dstP←v11996.f0 << 16) >> 16) ) << 16) +  (unsigned) ( (((unsigned)( (((unsigned)dstP←v11996.f1 << 16) >> 16) ) << 16) >> 16) ));
   (* (( (ptr) ptr←v19312)+6) ) = (((word) ( (((unsigned)size←v12024.f0 << 16) >> 16) ) << 16) +  (unsigned) ( (((unsigned)( (((unsigned)size←v12024.f1 << 16) >> 16) ) << 16) >> 16) ));
   (* (( (ptr) ptr←v19312)+7) ) = bitPlane←v12080;
SOURCE(12942, 53)
   {
      word pd68;
      pd68 = (* (( (ptr) (* (( (ptr) gf←c59396)+166)/* var←c54596 */  ))+65) );
      err←v19256 = (word) ( *( (fPt) ((*  (ptr) pd68 ))))(c←v11884, details←v12108, pd68);
      };
SOURCE(12997, 45)
   if ((err←v19256 != 0)) {
SOURCE(13013, 29)
      var←c55172 = (* (( (ptr) (* (( (ptr) gf←c59396)+169)/* var←c54980 */  ))+4) );
      var←c55204 = (word) err←v19256;
      (void) (XR←MonitorExit(c←v11884));
      goto lab←L100022;
      };
SOURCE(12385, 657)
   (void) (XR←MonitorExit(c←v11884));
   return;
   /* c2c skipped dead code */ 
   lab←L100022: ;
SOURCE(13013, 29)
   {
      word var←c0399;
      var←c0399 = var←c55204;
      (void) XR←RaiseError(var←c55172, (word) &var←c0399);
      };
   }

static void FillRectangle←P3180(c←v12168, drawable←v12196, gc←v12224, pos←v12252, size←v12280, details←v12308)
   word c←v12168;
   word drawable←v12196;
   word gc←v12224;
   W2 pos←v12252;
   W2 size←v12280;
   word details←v12308;
   {
   register ptr gf←c59428 =  (ptr) &globalframe;
   word var←c55236;
   word var←c55268;
   word err←v19368 = 0;
   word gcid←v19396;
   /* FillRectangle: */ 
SOURCE(13048, 397)
   (void) (XR←MonitorEntry(c←v12168));
SOURCE(13201, 52)
   gcid←v19396 = (word) UseGContext←P1560(c←v12168, drawable←v12196, gc←v12224, details←v12308);
SOURCE(13255, 18)
   {
      word pd69;
      pd69 = (* (( (ptr) (* (( (ptr) gf←c59428)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd69 ))))(c←v12168, 70, 0, 5, pd69);
      };
SOURCE(13275, 25)
   (void) BPutDrawable←P300(c←v12168, drawable←v12196);
SOURCE(13303, 15)
   (void) BPut32←P240(c←v12168, gcid←v19396);
SOURCE(13321, 22)
   (void) BPutRect←P600(c←v12168, pos←v12252, size←v12280);
SOURCE(13345, 53)
   {
      word pd70;
      pd70 = (* (( (ptr) (* (( (ptr) gf←c59428)+166)/* var←c54596 */  ))+65) );
      err←v19368 = (word) ( *( (fPt) ((*  (ptr) pd70 ))))(c←v12168, details←v12308, pd70);
      };
SOURCE(13400, 45)
   if ((err←v19368 != 0)) {
SOURCE(13416, 29)
      var←c55236 = (* (( (ptr) (* (( (ptr) gf←c59428)+169)/* var←c54980 */  ))+4) );
      var←c55268 = (word) err←v19368;
      (void) (XR←MonitorExit(c←v12168));
      goto lab←L100024;
      };
SOURCE(13048, 397)
   (void) (XR←MonitorExit(c←v12168));
   return;
   /* c2c skipped dead code */ 
   lab←L100024: ;
SOURCE(13416, 29)
   {
      word var←c0410;
      var←c0410 = var←c55268;
      (void) XR←RaiseError(var←c55236, (word) &var←c0410);
      };
   }

static void DrawLine←P3240(c←v12368, drawable←v12396, p1←v12424, p2←v12452, gc←v12480, details←v12508)
   word c←v12368;
   word drawable←v12396;
   W2 p1←v12424;
   W2 p2←v12452;
   word gc←v12480;
   word details←v12508;
   {
   register ptr gf←c59460 =  (ptr) &globalframe;
   word var←c55300;
   word var←c55332;
   word err←v19440 = 0;
   word gcid←v19468;
   /* DrawLine: */ 
SOURCE(13451, 394)
   (void) (XR←MonitorEntry(c←v12368));
SOURCE(13589, 52)
   gcid←v19468 = (word) UseGContext←P1560(c←v12368, drawable←v12396, gc←v12480, details←v12508);
SOURCE(13643, 18)
   {
      word pd71;
      pd71 = (* (( (ptr) (* (( (ptr) gf←c59460)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd71 ))))(c←v12368, 65, 0, 5, pd71);
      };
SOURCE(13663, 25)
   (void) BPutDrawable←P300(c←v12368, drawable←v12396);
SOURCE(13691, 15)
   (void) BPut32←P240(c←v12368, gcid←v19468);
SOURCE(13709, 16)
   (void) BPutPoint←P480(c←v12368, p1←v12424);
SOURCE(13727, 16)
   (void) BPutPoint←P480(c←v12368, p2←v12452);
SOURCE(13745, 53)
   {
      word pd72;
      pd72 = (* (( (ptr) (* (( (ptr) gf←c59460)+166)/* var←c54596 */  ))+65) );
      err←v19440 = (word) ( *( (fPt) ((*  (ptr) pd72 ))))(c←v12368, details←v12508, pd72);
      };
SOURCE(13800, 45)
   if ((err←v19440 != 0)) {
SOURCE(13816, 29)
      var←c55300 = (* (( (ptr) (* (( (ptr) gf←c59460)+169)/* var←c54980 */  ))+4) );
      var←c55332 = (word) err←v19440;
      (void) (XR←MonitorExit(c←v12368));
      goto lab←L100026;
      };
SOURCE(13451, 394)
   (void) (XR←MonitorExit(c←v12368));
   return;
   /* c2c skipped dead code */ 
   lab←L100026: ;
SOURCE(13816, 29)
   {
      word var←c0421;
      var←c0421 = var←c55332;
      (void) XR←RaiseError(var←c55300, (word) &var←c0421);
      };
   }

static void SetupGraphics←P3300(c←v12864)
   word c←v12864;
   {
   register ptr gf←c59492 =  (ptr) &globalframe;
   word cPriv←v19512;
   word gRef←v19540;
   word serverBitOrder←v19568;
   word serverImageByteOrder←v19596;
   word serverScanlineUnit←v19624;
   /* SetupGraphics: */ 
SOURCE(14313, 2771)
SOURCE(14360, 45)
   cPriv←v19512 = (* (( (ptr) c←v12864)+24) );
SOURCE(14407, 48)
   gRef←v19540 = XR←NewObject(16, (* (( (ptr) gf←c59492)+9) ));
SOURCE(14457, 159)
   {
      word var←c55396;
      var←c55396 = (* (( (ptr) (* (( (ptr) c←v12864)+16) ))+10) );
      if ((var←c55396 == 1)) {
         serverBitOrder←v19568 = 1;
         }
      else {
         if ((var←c55396 == 0)) {
            serverBitOrder←v19568 = 0;
            }
         else {
            serverBitOrder←v19568 =  (unsigned) (
               XR←RaiseUnnamedError(), 0
               );
            };
         };
      };
SOURCE(14632, 144)
   {
      word var←c55428;
      var←c55428 = (* (( (ptr) (* (( (ptr) c←v12864)+16) ))+9) );
      if ((var←c55428 == 1)) {
         serverImageByteOrder←v19596 = 1;
         }
      else {
         if ((var←c55428 == 0)) {
            serverImageByteOrder←v19596 = 0;
            }
         else {
            serverImageByteOrder←v19596 =  (unsigned) (
               XR←RaiseUnnamedError(), 0
               );
            };
         };
      };
SOURCE(14791, 58)
   serverScanlineUnit←v19624 = (* (( (ptr) (* (( (ptr) c←v12864)+16) ))+11) );
SOURCE(14851, 43)
   (*  (ptr) gRef←v19540 ) = 4;
SOURCE(14896, 37)
   if (( (int)IOP2( % ,  (int)serverScanlineUnit←v19624,  (int)8) !=  (int)0)) {
SOURCE(14933, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(14953, 1682)
SOURCE(14998, 716)
SOURCE(15037, 677)
   {
      word var←c55460;
      var←c55460 = serverImageByteOrder←v19596;
      if ((var←c55460 == 1)) {
SOURCE(15084, 255)
         {
            word var←c55492;
            var←c55492 = serverBitOrder←v19568;
            if ((var←c55492 == 1)) {
SOURCE(15125, 31)
               (*  (ptr) gRef←v19540 ) = 0;
               }
            else {
               if ((var←c55492 == 0)) {
SOURCE(15173, 166)
                  {
                     word var←c55524;
                     var←c55524 = serverScanlineUnit←v19624;
                     switch (var←c55524) {
                        case 8: 
SOURCE(15209, 42)
                           (*  (ptr) gRef←v19540 ) = 1;
                           break;
                        case 16: 
SOURCE(15259, 36)
                           (*  (ptr) gRef←v19540 ) = 3;
                           break;
                        case 32: 
SOURCE(15303, 36)
                           (*  (ptr) gRef←v19540 ) = 3;
                           break;
                        default: 
SOURCE(15352, 5)
                           (void) XR←RaiseUnnamedError();
                           break;
                        };
                     };
                  }
               else {
SOURCE(15386, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         }
      else {
         if ((var←c55460 == 0)) {
SOURCE(15425, 289)
            {
               word var←c55556;
               var←c55556 = serverBitOrder←v19568;
               if ((var←c55556 == 1)) {
SOURCE(15466, 156)
                  {
                     word var←c55588;
                     var←c55588 = serverScanlineUnit←v19624;
                     switch (var←c55588) {
                        case 8: 
SOURCE(15502, 30)
                           (*  (ptr) gRef←v19540 ) = 0;
                           break;
                        case 16: 
SOURCE(15540, 37)
                           (*  (ptr) gRef←v19540 ) = 2;
                           break;
                        case 32: 
SOURCE(15585, 37)
                           (*  (ptr) gRef←v19540 ) = 2;
                           break;
                        default: 
SOURCE(15635, 5)
                           (void) XR←RaiseUnnamedError();
                           break;
                        };
                     };
                  }
               else {
                  if ((var←c55556 == 0)) {
SOURCE(15672, 42)
                     (*  (ptr) gRef←v19540 ) = 1;
                     }
                  else {
SOURCE(15730, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            }
         else {
SOURCE(15766, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
SOURCE(16781, 114)
   if ( ( (((*  (ptr) gRef←v19540 ) == 1) || ((*  (ptr) gRef←v19540 ) == 3)) ? ((* (( (ptr) gf←c59492)+6)/* bSwap←v5156 */  ) == 0) : 0 ) ) {
SOURCE(16884, 11)
      (void) InitBSwap←P3480();
      };
SOURCE(16897, 65)
   {
      word x73;
      (* (( (ptr) gRef←v19540)+1) ) = (x73 = (* (( (ptr) (* (( (ptr) c←v12864)+16) ))+7) ),
         MIN((int)(word), x73, 12000));
      };
SOURCE(16965, 26)
   {
      word var←c55620;
      {
         word var←c55652;
         var←c55652 = XR←NewObject(12, (* (( (ptr) gf←c59492)+18) ));
         (* (( (hPt) var←c55652)+1) ) = 8;
         var←c55620 = var←c55652;
         };
      (* (( (ptr) gRef←v19540)+2) ) = var←c55620;
      };
SOURCE(16993, 65)
   {
      word pd74;
      pd74 = (* (( (ptr) (* (( (ptr) gf←c59492)+165)/* var←c54500 */  ))+10) );
      (* (( (ptr) gRef←v19540)+3) ) = (word) ( *( (fPt) ((*  (ptr) pd74 ))))((word) (( (bPt) gf←c59492)+472)/* var←c53604 */ , 3, pd74)
      ;
      };
SOURCE(17060, 24)
   (* (( (ptr) cPriv←v19512)+6) ) = gRef←v19540;
   }

static word KeepTheOptimizerHonest←P3420()
   {
   register ptr gf←c59524 =  (ptr) &globalframe;
   word var←c13080;
   /* KeepTheOptimizerHonest: */ 
SOURCE(17454, 92)
SOURCE(17504, 42)
   return(((* (( (ptr) gf←c59524)+4)/* globalCheckByte1←v5072 */  ) + (* (( (ptr) gf←c59524)+5)/* globalCheckByte2←v5100 */  )));
   }

static void InitBSwap←P3480()
   {
   register ptr gf←c59556 =  (ptr) &globalframe;
   /* InitBSwap: */ 
SOURCE(17598, 253)
SOURCE(17618, 38)
   (* (( (ptr) gf←c59556)+6)/* bSwap←v5156 */  ) = XR←NewObject(256, (* (( (ptr) gf←c59556)+19) ));
SOURCE(17658, 193)
   {
      register word byte←v19708 = 0;
      lab←L100031: ;
      {
         word swapped←v19752 = 0;
         word i←v19780;
         word x←v19808 = 128;
SOURCE(17703, 14)
         i←v19780 = byte←v19708;
SOURCE(17734, 85)
         {
            register word bit←v19852 = 0;
            lab←L100035: ;
SOURCE(17761, 39)
            if (((i←v19780 & 1) != 0)) {
SOURCE(17781, 19)
               swapped←v19752 = BCK((swapped←v19752 + x←v19808), 256);
               };
SOURCE(17802, 7)
            x←v19808 = ((word) x←v19808 >> 1);
SOURCE(17812, 7)
            i←v19780 = ((word) i←v19780 >> 1);
            if ((bit←v19852 >= 7)) {
               goto lab←L100032;
               };
            bit←v19852 = (bit←v19852 + 1);
            goto lab←L100035;
            lab←L100032: ;
            };
SOURCE(17830, 21)
         (* (( (bPt) (* (( (ptr) gf←c59556)+6)/* bSwap←v5156 */  ))+byte←v19708) ) = swapped←v19752;
         };
      if ((byte←v19708 >= 255)) {
         goto lab←L100028;
         };
      byte←v19708 = (byte←v19708 + 1);
      goto lab←L100031;
      lab←L100028: ;
      };
   }

static void PutImage←P3540(c←v13536, formal←c0962, formal←c0963, formal←c0964, formal←c0965, formal←c0966, offx←v13704, offy←v13732, formal←c0967, formal←c0968, formal←c0969)
   word c←v13536;
   word formal←c0962;
   word formal←c0963;
   W2 formal←c0964;
   W2 formal←c0965;
   word formal←c0966;
   word offx←v13704;
   word offy←v13732;
   word formal←c0967;
   word formal←c0968;
   word formal←c0969;
   {
   W26 var←c59588;
   /* declaration of drawable←v13564 skipped */ 
   /* declaration of gc←v13592 skipped */ 
   /* declaration of size←v13620 skipped */ 
   /* declaration of dest←v13648 skipped */ 
   /* declaration of base←v13676 skipped */ 
   /* declaration of scanLineBytes←v13760 skipped */ 
   /* declaration of bitsPerPixel←v13788 skipped */ 
   /* declaration of details←v13816 skipped */ 
   register ptr gf←c59620 =  (ptr) &globalframe;
   /* declaration of var←c55684 skipped */ 
   /* declaration of n←v19924 skipped */ 
   word cPriv←v19952;
   /* declaration of gRef←v19980 skipped */ 
   /* declaration of bitmapFormat←v20008 skipped */ 
   /* declaration of serverBitsPerUnit←v20036 skipped */ 
   word serverScanlinePad←v20064;
   /* declaration of leftPadBits←v20092 skipped */ 
   /* declaration of skipBytesPSL←v20120 skipped */ 
   /* declaration of transmitBytesPSL←v20148 skipped */ 
   /* declaration of hostUnitsPerScanLine←v20176 skipped */ 
   /* declaration of usefulBytes←v20204 skipped */ 
   /* declaration of fillerBytes←v20232 skipped */ 
   (* (( (ptr) &var←c59588)+4)/* drawable←v13564 */  ) = formal←c0962;
   (* (( (ptr) &var←c59588)+5)/* gc←v13592 */  ) = formal←c0963;
   (*  (W2Pt) (( (ptr) &var←c59588)+6)/* size←v13620 */  ) = formal←c0964;
   (*  (W2Pt) (( (ptr) &var←c59588)+8)/* dest←v13648 */  ) = formal←c0965;
   (* (( (ptr) &var←c59588)+10)/* base←v13676 */  ) = formal←c0966;
   (* (( (ptr) &var←c59588)+11)/* scanLineBytes←v13760 */  ) = formal←c0967;
   (* (( (ptr) &var←c59588)+12)/* bitsPerPixel←v13788 */  ) = formal←c0968;
   (* (( (ptr) &var←c59588)+13)/* details←v13816 */  ) = formal←c0969;
   /* PutImage: */ 
SOURCE(18120, 7516)
   {
      word tmpAddr75;
      tmpAddr75 = (word) (( (ptr) &var←c59588)+14)/* var←c55684 */ ;
      (*  (ptr) tmpAddr75 ) = ( ((word)  (fPt) Protected←P5424) );
      (* (( (ptr) tmpAddr75) + 1) ) = 1;
      };
SOURCE(23192, 45)
   cPriv←v19952 = (* (( (ptr) c←v13536)+24) );
SOURCE(23239, 45)
   (* (( (ptr) &var←c59588)+17)/* gRef←v19980 */  ) = (* (( (ptr) cPriv←v19952)+6) );
SOURCE(23286, 225)
   (* (( (ptr) &var←c59588)+18)/* bitmapFormat←v20008 */  ) =  ( ((* (( (ptr) &var←c59588)+12)/* bitsPerPixel←v13788 */  ) == 1) ?  (  ( ((* (
      ( (ptr) &var←c59588)+13)/* details←v13816 */  ) != 0) ? ((* (( (ptr) (* (( (ptr) &var←c59588)+13)/* details←v13816 */  ))+6)
    ) == (* (( (ptr) gf←c59620)+20) )) : 0 )  ? 2 : 0 )  : 2 ) ;
SOURCE(23513, 56)
   (* (( (ptr) &var←c59588)+19)/* serverBitsPerUnit←v20036 */  ) = (* (( (ptr) (* (( (ptr) c←v13536)+16) ))+11) );
SOURCE(23572, 55)
   serverScanlinePad←v20064 = (* (( (ptr) (* (( (ptr) c←v13536)+16) ))+12) );
SOURCE(23630, 60)
   (* (( (ptr) &var←c59588)+20)/* leftPadBits←v20092 */  ) = IOP2( % ,  (int)IOP2( * ,  (int)offx←v13704,  (int)(* (( (ptr) &var←c59588)+12)
         /* bitsPerPixel←v13788 */  )),  (int)(* (( (ptr) &var←c59588)+19)/* serverBitsPerUnit←v20036 */  ));
SOURCE(23692, 55)
   (* (( (ptr) &var←c59588)+21)/* skipBytesPSL←v20120 */  ) = IOP2( / ,  (int)(IOP2( * ,  (int)offx←v13704,  (int)(* (( (ptr) &var←c59588)+12)
         /* bitsPerPixel←v13788 */  )) - (* (( (ptr) &var←c59588)+20)/* leftPadBits←v20092 */  )),  (int)8);
SOURCE(23765, 125)
   (* (( (ptr) &var←c59588)+22)/* transmitBytesPSL←v20148 */  ) = IOP2( / ,  (int)IOP2( * ,  (int)IOP2( / ,  (int)((((* (( (ptr) &var←c59588)+20)
            /* leftPadBits←v20092 */  ) + IOP2( * ,  (int)(* (( (ptr) &var←c59588)+6) ),  (int)(* (( (ptr) &var←c59588)+12)/* bitsPerPixel←v13788 */  ))
            ) + serverScanlinePad←v20064) - 1),  (int)serverScanlinePad←v20064),  (int)serverScanlinePad←v20064),  (int)8);
SOURCE(23892, 55)
   (* (( (ptr) &var←c59588)+23)/* hostUnitsPerScanLine←v20176 */  ) = (* (( (ptr) &var←c59588)+11)/* scanLineBytes←v13760 */  );
SOURCE(23949, 35)
   (* (( (ptr) &var←c59588)+24)/* usefulBytes←v20204 */  ) = (* (( (ptr) &var←c59588)+22)/* transmitBytesPSL←v20148 */  );
SOURCE(23986, 20)
   (* (( (ptr) &var←c59588)+25)/* fillerBytes←v20232 */  ) = 0;
SOURCE(24070, 159)
   if (( (int)((* (( (ptr) &var←c59588)+21)/* skipBytesPSL←v20120 */  ) + (* (( (ptr) &var←c59588)+22)/* transmitBytesPSL←v20148 */  )) >  (int)(* (
      ( (ptr) &var←c59588)+11)/* scanLineBytes←v13760 */  ))) {
SOURCE(24126, 57)
      (* (( (ptr) &var←c59588)+25)/* fillerBytes←v20232 */  ) = (((* (( (ptr) &var←c59588)+21)/* skipBytesPSL←v20120 */  ) + (* (
         ( (ptr) &var←c59588)+22)/* transmitBytesPSL←v20148 */  )) - (* (( (ptr) &var←c59588)+11)/* scanLineBytes←v13760 */  ));
SOURCE(24185, 44)
      (* (( (ptr) &var←c59588)+24)/* usefulBytes←v20204 */  ) = ((* (( (ptr) &var←c59588)+22)/* transmitBytesPSL←v20148 */  ) - (* (
         ( (ptr) &var←c59588)+25)/* fillerBytes←v20232 */  ));
      };
SOURCE(24234, 69)
   if (( (int)(* (( (ptr) &var←c59588)+11)/* scanLineBytes←v13760 */  ) <=  (int)0) || ((* (( (ptr) &var←c59588)+4)/* drawable←v13564 */  ) == 0)) {
SOURCE(24284, 19)
      (void) RaiseClientError←P60(c←v13536, 0);
      };
SOURCE(24321, 68)
   if ((( (int)(* (( (ptr) &var←c59588)+6) ) <=  (int)0) || ( (int)(* (( (ptr) &var←c59588)+7) ) <=  (int)0)) || ( (int)(* (
      ( (ptr) &var←c59588)+8) ) >  (int)32767)) {
SOURCE(24383, 6)
      return;
      };
SOURCE(24392, 123)
   if (((((( (int)(* (( (ptr) &var←c59588)+6) ) >  (int)65535) || ( (int)(* (( (ptr) &var←c59588)+7) ) >  (int)65535)) || ( (int)(* (
      ( (ptr) &var←c59588)+8) ) <  (int)0)) || ( (int)(* (( (ptr) &var←c59588)+9) ) <  (int)0)) || ( (int)offx←v13704 <  (int)0)) || ( (int)offy←v13732 <  (int)0)) {
SOURCE(24496, 19)
      (void) RaiseClientError←P60(c←v13536, 0);
      };
SOURCE(24533, 61)
   if (( (int)0 !=  (int)0)) {
SOURCE(24575, 19)
      (void) RaiseClientError←P60(c←v13536, 0);
      };
SOURCE(24648, 66)
   if (( (int)(* (( (ptr) &var←c59588)+22)/* transmitBytesPSL←v20148 */  ) >  (int)(* (( (ptr) (* (( (ptr) &var←c59588)+17)/* gRef←v19980 */  ))+1)
    ))) {
SOURCE(24695, 19)
      (void) RaiseClientError←P60(c←v13536, 0);
      };
SOURCE(24726, 39)
   (* (( (ptr) &var←c59588)+10)/* base←v13676 */  ) = ((* (( (ptr) &var←c59588)+10)/* base←v13676 */  ) + IOP2( * ,  (int)offy←v13732,  (int)(* (
         ( (ptr) &var←c59588)+23)/* hostUnitsPerScanLine←v20176 */  )));
SOURCE(24776, 403)
   {
      word off←v20360;
      word b2←v20388;
SOURCE(24835, 62)
      {
         word idx76;
         word idx77;
         off←v20360 = ((
            idx76 = (* (( (ptr) &var←c59588)+7) ),
            SGNCK(idx76)
            ) * (
            idx77 = (* (( (ptr) &var←c59588)+23)/* hostUnitsPerScanLine←v20176 */  ),
            SGNCK(idx77)
            ));
         };
SOURCE(24899, 61)
      b2←v20388 = (((* (( (ptr) &var←c59588)+10)/* base←v13676 */  ) + off←v20360) - 1);
SOURCE(24962, 53)
      if ((( (word) -1 - (* (( (ptr) &var←c59588)+10)/* base←v13676 */  )) <= off←v20360)) {
SOURCE(25015, 5)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(25038, 69)
      (* (( (ptr) gf←c59620)+4)/* globalCheckByte1←v5072 */  ) =  (unsigned) (*  (bPt) (* (( (ptr) &var←c59588)+10)/* base←v13676 */  ) );
SOURCE(25110, 67)
      (* (( (ptr) gf←c59620)+5)/* globalCheckByte2←v5100 */  ) =  (unsigned) (*  (bPt) b2←v20388 );
      };
SOURCE(25182, 32)
   (* (( (ptr) &var←c59588)+16)/* n←v19924 */  ) = IOP2( * ,  (int)(* (( (ptr) &var←c59588)+22)/* transmitBytesPSL←v20148 */  ),  (int)(* (
         ( (ptr) &var←c59588)+7) ));
SOURCE(25217, 419)
   if (( (int)(* (( (ptr) &var←c59588)+16)/* n←v19924 */  ) <  (int)(* (( (ptr) (* (( (ptr) &var←c59588)+17)/* gRef←v19980 */  ))+1)
    ))) {
SOURCE(25250, 19)
      (void) Protected←P5424(c←v13536, (word) (( (bPt) &var←c59588)+56)/* var←c55684 */ );
      }
   else {
SOURCE(25269, 378)
      {
         word maxHeight←v20468;
         word restHeight←v20496;
SOURCE(25271, 55)
         maxHeight←v20468 = IOP2( / ,  (int)(* (( (ptr) (* (( (ptr) &var←c59588)+17)/* gRef←v19980 */  ))+1) ),  (int)(* (( (ptr) &var←c59588)+22)
            /* transmitBytesPSL←v20148 */  ));
SOURCE(25328, 29)
         restHeight←v20496 = (* (( (ptr) &var←c59588)+7) );
SOURCE(25359, 40)
         (* (( (ptr) &var←c59588)+7) ) = (MIN((int)(word), maxHeight←v20468, restHeight←v20496));
SOURCE(25401, 235)
         lab←L100038: ;
         if (( (int)(* (( (ptr) &var←c59588)+7) ) >  (int)0)) {
            }
         else {
            goto lab←L100036;
            };
SOURCE(25424, 32)
         (* (( (ptr) &var←c59588)+16)/* n←v19924 */  ) = IOP2( * ,  (int)(* (( (ptr) &var←c59588)+22)/* transmitBytesPSL←v20148 */  ),  (int)(* (
               ( (ptr) &var←c59588)+7) ));
SOURCE(25458, 46)
         if (( (int)(* (( (ptr) &var←c59588)+9) ) >  (int)32767)) {
SOURCE(25485, 19)
            (void) RaiseClientError←P60(c←v13536, 0);
            };
SOURCE(25516, 12)
         (void) Protected←P5424(c←v13536, (word) (( (bPt) &var←c59588)+56)/* var←c55684 */ );
SOURCE(25530, 27)
         (* (( (ptr) &var←c59588)+9) ) = ((* (( (ptr) &var←c59588)+9) ) + (* (( (ptr) &var←c59588)+7) ));
SOURCE(25559, 35)
         restHeight←v20496 = (restHeight←v20496 - (* (( (ptr) &var←c59588)+7) ));
SOURCE(25596, 40)
         (* (( (ptr) &var←c59588)+7) ) = (MIN((int)(word), maxHeight←v20468, restHeight←v20496));
         goto lab←L100038;
         lab←L100036: ;
         };
      };
   }

static void Protected←P5424(formal←c0970, formal←c59716)
   word formal←c0970;
   word formal←c59716;
   {
   W13 var←c59652;
   /* declaration of c←v20308 skipped */ 
   register ptr gf←c59684 =  (ptr) &globalframe;
   /* declaration of var←c56164 skipped */ 
   /* declaration of var←c56196 skipped */ 
   word var←c56228;
   word var←c56260;
   /* declaration of var←c55716 skipped */ 
   /* declaration of var←c55748 skipped */ 
   /* declaration of var←c55780 skipped */ 
   formal←c59716 = (formal←c59716 - 56);
   (* (( (ptr) &var←c59652)+4)/* c←v20308 */  ) = formal←c0970;
   (*  (ptr) &var←c59652 ) = formal←c59716;
   /* Protected: */ 
SOURCE(18319, 4860)
   {
      word tmpAddr78;
      tmpAddr78 = (word) (( (ptr) &var←c59652)+7)/* var←c55716 */ ;
      (*  (ptr) tmpAddr78 ) = ( ((word)  (fPt) BothSwapped←P5808) );
      (* (( (ptr) tmpAddr78) + 1) ) = 1;
      };
   {
      word tmpAddr79;
      tmpAddr79 = (word) (( (ptr) &var←c59652)+9)/* var←c55748 */ ;
      (*  (ptr) tmpAddr79 ) = ( ((word)  (fPt) BytesSwapped←P5748) );
      (* (( (ptr) tmpAddr79) + 1) ) = 1;
      };
   {
      word tmpAddr80;
      tmpAddr80 = (word) (( (ptr) &var←c59652)+11)/* var←c55780 */ ;
      (*  (ptr) tmpAddr80 ) = ( ((word)  (fPt) BitsInByteSwapped←P5688) );
      (* (( (ptr) tmpAddr80) + 1) ) = 1;
      };
   (void) (XR←MonitorEntry(* (( (ptr) &var←c59652)+4)/* c←v20308 */  ));
SOURCE(18367, 4812)
SOURCE(18369, 4615)
   {
      word var←c08;
      {
         word var←c0916;
         var←c0916 = (word) &var←c59652;
         var←c08 = (word) XR←Enable(( ((word)  (fPt) NoName←Q12060) ), ( ((word)  (fPt) NoName←Q12120) ), var←c0916);
         };
      if ((var←c08 == 5)) {
         goto lab←L100039;
         }
      else {
         if ((var←c08 == 4)) {
            goto lab←L100054;
            };
         };
      };
   goto lab←L100055;
   lab←L100039: ;
SOURCE(23000, 176)
   {
      word err←v21816;
SOURCE(23002, 98)
      {
         word pd81;
         pd81 = (* (( (ptr) (* (( (ptr) gf←c59684)+164)/* var←c54372 */  ))+9) );
         err←v21816 = (word) ( *( (fPt) ((*  (ptr) pd81 ))))(0, (* (( (ptr) &var←c59652)+4)/* c←v20308 */  ), 0, pd81);
         };
SOURCE(23102, 41)
      (* (( (ptr) err←v21816)+6) ) = 255;
SOURCE(23145, 29)
      var←c56228 = (* (( (ptr) (* (( (ptr) gf←c59684)+169)/* var←c54980 */  ))+4) );
      var←c56260 = (word) err←v21816;
      (void) (XR←MonitorExit(* (( (ptr) &var←c59652)+4)/* c←v20308 */  ));
      goto lab←L100056;
      };
   lab←L100055: ;
SOURCE(18319, 4860)
   (void) (XR←MonitorExit(* (( (ptr) &var←c59652)+4)/* c←v20308 */  ));
   return;
   /* c2c skipped dead code */ 
   lab←L100054: ;
SOURCE(22955, 29)
   {
      word var←c0480;
      var←c0480 = (* (( (ptr) &var←c59652)+6)/* var←c56196 */  );
      (void) XR←RaiseError((* (( (ptr) &var←c59652)+5)/* var←c56164 */  ), (word) &var←c0480);
      };
   lab←L100056: ;
SOURCE(23145, 29)
   {
      word var←c0481;
      var←c0481 = var←c56260;
      (void) XR←RaiseError(var←c56228, (word) &var←c0481);
      };
   }

static word NoName←Q12060(formal←c0875)
   word formal←c0875;
   {
   register ptr gf←c0874 =  (ptr) &globalframe;
SOURCE(18446, 41)
   {
      word gcid←v20652;
      word reqLength←v20680;
      word err←v20708 = 0;
SOURCE(22136, 26)
      reqLength←v20680 = (IOP2( / ,  (int)((* (( (ptr) (*  (ptr) formal←c0875 ))+16) ) + 3),  (int)4) + 6);
SOURCE(22187, 76)
      {
         word var←c55844;
         word gc←v46512;
         gc←v46512 = (* (( (ptr) (*  (ptr) formal←c0875 ))+5) );
SOURCE(5361, 80)
         if ( ( (gc←v46512 != 0) ? ((* (( (ptr) gc←v46512)+1) ) == 0) : 0 ) ) {
SOURCE(5402, 28)
            var←c55844 = (*  (ptr) gc←v46512 );
            }
         else {
SOURCE(5430, 11)
            var←c55844 = 0;
            };
         gcid←v20652 = var←c55844;
         };
      if ((gcid←v20652 == 0)) {
SOURCE(22219, 44)
         gcid←v20652 = (word) UseGContext←P1560((* (( (ptr) formal←c0875)+4) ), (* (( (ptr) (*  (ptr) formal←c0875 ))+4) ), (* (( (ptr) (*  (ptr) formal←c0875 ))+5)
             ), (* (( (ptr) (*  (ptr) formal←c0875 ))+13) ));
         };
SOURCE(22265, 439)
      {
         word ptr←v20816;
SOURCE(22271, 104)
         {
            word pd82;
            pd82 = (* (( (ptr) (* (( (ptr) gf←c0874)+166)/* var←c54596 */  ))+40) );
            ptr←v20816 = (word) ( *( (fPt) ((*  (ptr) pd82 ))))((* (( (ptr) formal←c0875)+4) ), 72, 24, ((word) (reqLength←v20680 - 6) << 2), pd82)
            ;
            };
SOURCE(22377, 325)
         (*  (ptr) ptr←v20816 ) = ((((word)  (unsigned) (* (( (bPt) (*  (ptr) formal←c0875 ))+75) ) << 16) +  (unsigned) ( (((unsigned)( (((unsigned)reqLength←v20680 << 16) >> 16) ) << 16) >> 16) )) + 
         1207959552);
         (* (( (ptr) ptr←v20816)+1) ) = (* (( (ptr) (*  (ptr) formal←c0875 ))+4) );
         (* (( (ptr) ptr←v20816)+2) ) = gcid←v20652;
         (* (( (ptr) ptr←v20816)+3) ) = (((word) ( (((unsigned)(* (( (ptr) (*  (ptr) formal←c0875 ))+6) ) << 16) >> 16) ) << 16) + 
          (unsigned) ( (((unsigned)( (((unsigned)(* (( (ptr) (*  (ptr) formal←c0875 ))+7) ) << 16) >> 16) ) << 16) >> 16) ));
         (* (( (ptr) ptr←v20816)+4) ) = (((word) ( (((unsigned)(* (( (ptr) (*  (ptr) formal←c0875 ))+8) ) << 16) >> 16) ) << 16) + 
          (unsigned) ( (((unsigned)( (((unsigned)(* (( (ptr) (*  (ptr) formal←c0875 ))+9) ) << 16) >> 16) ) << 16) >> 16) ));
         (* (( (ptr) ptr←v20816)+5) ) = ((word) (((word)  (unsigned) (* (( (bPt) (*  (ptr) formal←c0875 ))+83) ) << 8) +  (unsigned) (* (
            ( (bPt) (*  (ptr) formal←c0875 ))+51) )) << 16);
         };
SOURCE(22709, 155)
      {
         word var←c55876;
         var←c55876 = (*  (ptr) (* (( (ptr) (*  (ptr) formal←c0875 ))+17) ) );
         switch (var←c55876) {
            case 0: 
SOURCE(22753, 7)
SOURCE(18489, 1257)
               if (( (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+22) ) >  (int)400)) {
SOURCE(18521, 34)
                  {
                     word pd83;
                     pd83 = (* (( (ptr) (* (( (ptr) gf←c0874)+166)/* var←c54596 */  ))+43) );
                     (void) ( *( (fPt) ((*  (ptr) pd83 ))))((* ((( (ptr) formal←c0875)+4)) ), pd83);
                     };
SOURCE(18557, 616)
                  if ( (  ( ( (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+11) ) ==  (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+22) )) ? ( (int)(* (
                     ( (ptr) (*  (ptr) formal←c0875 ))+25) ) ==  (int)0) : 0 )  ? ( (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+21) ) ==  (int)0) : 0 ) ) {
                     {
                        word count←v20872;
                        count←v20872 = IOP2( * ,  (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+22) ),  (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+7)
                            ));
SOURCE(18678, 53)
                        {
                           W3 var←c55908;
                           var←c55908.f0 = (* (( (ptr) (*  (ptr) formal←c0875 ))+10) );
                           var←c55908.f1 = 0;
                           var←c55908.f2 = count←v20872;
                           {
/*1*/   word pd84;
/*1*/   pd84 = (* (( (ptr) (* (( (ptr) gf←c0874)+170)/* var←c55812 */  ))+24) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd84 ))))((* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+31) ), var←c55908, pd84);
/*1*/   };
                           };
SOURCE(18733, 33)
                        (* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+10) ) = ((* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+10) ) + count←v20872);
SOURCE(18768, 46)
                        (* (( (ptr) (*  (ptr) formal←c0875 ))+10) ) = ((* (( (ptr) (*  (ptr) formal←c0875 ))+10) ) + IOP2( * ,  (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+23)
                            ),  (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+7) )));
                        };
                     }
                  else {
SOURCE(18825, 348)
                     {
                        register word height←v20900 = 0;
                        register word noName←c55940;
                        noName←c55940 = (* (( (ptr) (*  (ptr) formal←c0875 ))+7) );
                        if (( (int)height←v20900 >=  (int)noName←c55940)) {
                           goto lab←L100043;
                           };
                        lab←L100046: ;
SOURCE(18864, 85)
                        {
                           W3 var←c55972;
                           var←c55972.f0 = (* (( (ptr) (*  (ptr) formal←c0875 ))+10) );
                           var←c55972.f1 = (* (( (ptr) (*  (ptr) formal←c0875 ))+21) );
                           var←c55972.f2 = (* (( (ptr) (*  (ptr) formal←c0875 ))+24) );
                           {
/*1*/   word pd85;
/*1*/   pd85 = (* (( (ptr) (* (( (ptr) gf←c0874)+170)/* var←c55812 */  ))+24) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd85 ))))((* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+31) ), var←c55972, pd85);
/*1*/   };
                           };
SOURCE(18951, 39)
                        (* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+10) ) = ((* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+10) ) + (* (( (ptr) (*  (ptr) formal←c0875 ))+24)
                         ));
SOURCE(18992, 142)
                        if (( (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+25) ) >  (int)0)) {
SOURCE(19017, 76)
                           {
/*1*/   W3 var←c56004;
/*1*/   var←c56004.f0 = (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c0875 ))+17) ))+2) );
/*1*/   var←c56004.f1 = 0;
/*1*/   var←c56004.f2 = (* (( (ptr) (*  (ptr) formal←c0875 ))+25) );
/*1*/   {
/*1*/      word pd86;
/*1*/      pd86 = (* (( (ptr) (* (( (ptr) gf←c0874)+170)/* var←c55812 */  ))+24) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd86 ))))((* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+31) ), var←c56004, pd86);
/*1*/      };
/*1*/   };
SOURCE(19095, 39)
                           (* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+10) ) = ((* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+10) ) + (* (( (ptr) (*  (ptr) formal←c0875 ))+25)
                            ));
                           };
SOURCE(19139, 34)
                        (* (( (ptr) (*  (ptr) formal←c0875 ))+10) ) = ((* (( (ptr) (*  (ptr) formal←c0875 ))+10) ) + (* (( (ptr) (*  (ptr) formal←c0875 ))+23)
                         ));
                        height←v20900 = (height←v20900 + 1);
                        if (( (int)height←v20900 <  (int)noName←c55940)) {
                           goto lab←L100046;
                           };
                        lab←L100043: ;
                        };
                     };
SOURCE(19187, 59)
                  lab←L100049: ;
                  if (( (int)IOP2( % ,  (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+16) ),  (int)4) !=  (int)0)) {
                     }
                  else {
                     goto lab←L100047;
                     };
SOURCE(19210, 7)
                  (* (( (ptr) (*  (ptr) formal←c0875 ))+16) ) = ((* (( (ptr) (*  (ptr) formal←c0875 ))+16) ) + 1);
SOURCE(19219, 27)
                  (void) DPutBYTE←P660((* (( (ptr) formal←c0875)+4) ), 0);
                  goto lab←L100049;
                  lab←L100047: ;
                  }
               else {
                  {
                     word toP←v20928;
                     word bytes←v20956;
                     word toIdx←v20984 = 0;
                     {
                        word pd87;
                        pd87 = (* (( (ptr) (* (( (ptr) gf←c0874)+166)/* var←c54596 */  ))+5) );
                        bytes←v20956 = (IOP2( * ,  (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+7) ),  (int)(* (( (ptr) (*  (ptr) formal←c0875 ))+22)
                            )) + (word) ( *( (fPt) ((*  (ptr) pd87 ))))((* ((( (ptr) (*  (ptr) formal←c0875 ))+16)) ), pd87));
                        };
SOURCE(19352, 36)
                     {
                        word bytes←v49320;
                        bytes←v49320 = SGNCK(bytes←v20956);
                        {
                           word pd88;
                           if ((((* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+6) ) - (* (( (ptr) (* (( (ptr) formal←c0875)+4) ))+4) )) < bytes←v49320)) {
/*1*/   pd88 = (* (( (ptr) (* (( (ptr) gf←c0874)+166)/* var←c54596 */  ))+10) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd88 ))))((* (( (ptr) formal←c0875)+4) ), bytes←v49320, pd88);
/*1*/   };
                           };
                        };
SOURCE(19390, 44)
                     {
                        word pd89;
                        pd89 = (* (( (ptr) (* (( (ptr) gf←c0874)+166)/* var←c54596 */  ))+39) );
                        toP←v20928 = (word) ( *( (fPt) ((*  (ptr) pd89 ))))((* (( (ptr) formal←c0875)+4) ), SGNCK(bytes←v20956), pd89);
                        };
SOURCE(19436, 310)
                     {
                        register word height←v21024 = 0;
                        register word noName←c56036;
                        noName←c56036 = (* (( (ptr) (*  (ptr) formal←c0875 ))+7) );
                        if (( (int)height←v21024 >=  (int)noName←c56036)) {
                           goto lab←L100050;
                           };
                        lab←L100053: ;
SOURCE(19475, 201)
                        {
                           word var←c56132;
                           {
/*1*/   W3 var←c56068;
/*1*/   W3 var←c56100;
/*1*/   var←c56068.f0 = toP←v20928;
/*1*/   var←c56068.f1 = toIdx←v20984;
/*1*/   var←c56068.f2 = (toIdx←v20984 + (* (( (ptr) (*  (ptr) formal←c0875 ))+24) ));
/*1*/   var←c56100.f0 = (* (( (ptr) (*  (ptr) formal←c0875 ))+10) );
/*1*/   {
/*1*/      word idx90;
/*1*/      var←c56100.f1 = (
/*1*/         idx90 = (* (( (ptr) (*  (ptr) formal←c0875 ))+21) ),
/*1*/         SGNCK(idx90)
/*1*/         );
/*1*/      };
/*1*/   var←c56100.f2 = ((* (( (ptr) (*  (ptr) formal←c0875 ))+21) ) + (* (( (ptr) (*  (ptr) formal←c0875 ))+24) ));
/*1*/   var←c56132 = (word) Basics←ByteBlt(var←c56068, var←c56100);
/*1*/   };
                           };
SOURCE(19678, 32)
                        toIdx←v20984 = (toIdx←v20984 + (* (( (ptr) (*  (ptr) formal←c0875 ))+22) ));
SOURCE(19712, 34)
                        (* (( (ptr) (*  (ptr) formal←c0875 ))+10) ) = ((* (( (ptr) (*  (ptr) formal←c0875 ))+10) ) + (* (( (ptr) (*  (ptr) formal←c0875 ))+23)
                         ));
                        height←v21024 = (height←v21024 + 1);
                        if (( (int)height←v21024 <  (int)noName←c56036)) {
                           goto lab←L100053;
                           };
                        lab←L100050: ;
                        };
                     };
                  };
               break;
            case 1: 
SOURCE(22783, 19)
               (void) BitsInByteSwapped←P5688((word) ((( (bPt) formal←c0875)+44)));
               break;
            case 2: 
SOURCE(22820, 14)
               (void) BytesSwapped←P5748((word) ((( (bPt) formal←c0875)+36)));
               break;
            case 3: 
SOURCE(22851, 13)
               (void) BothSwapped←P5808((word) ((( (bPt) formal←c0875)+28)));
               break;
            default: 
SOURCE(22877, 5)
               (void) XR←RaiseUnnamedError();
               break;
            };
         };
SOURCE(22884, 53)
      {
         word pd91;
         pd91 = (* (( (ptr) (* (( (ptr) gf←c0874)+166)/* var←c54596 */  ))+65) );
         err←v20708 = (word) ( *( (fPt) ((*  (ptr) pd91 ))))((* (( (ptr) formal←c0875)+4) ), (* (( (ptr) (*  (ptr) formal←c0875 ))+13)
             ), pd91);
         };
SOURCE(22939, 45)
      if ((err←v20708 != 0)) {
SOURCE(22955, 29)
         (* (( (ptr) formal←c0875)+5) ) = (* (( (ptr) (* (( (ptr) gf←c0874)+169)/* var←c54980 */  ))+4) );
         (* (( (ptr) formal←c0875)+6) ) = (word) err←v20708;
         (void) (XR←MonitorExit(* (( (ptr) formal←c0875)+4) ));
         return(4);
         };
      };
   return(0);
   }

static void BitsInByteSwapped←P5688(formal←c59780)
   word formal←c59780;
   {
   register ptr gf←c59748 =  (ptr) &globalframe;
   word buff←v21052;
   formal←c59780 = (formal←c59780 - 44);
   /* BitsInByteSwapped: */ 
SOURCE(19763, 46)
SOURCE(19811, 71)
   {
      word gRef←v48748;
      gRef←v48748 = (* (( (ptr) (*  (ptr) formal←c59780 ))+17) );
SOURCE(17196, 66)
      if (( (int) (unsigned) (* (( (hPt) (* (( (ptr) gRef←v48748)+2) ))+1) ) <  (int)(* (( (ptr) (*  (ptr) formal←c59780 ))+22)
       ))) {
SOURCE(17231, 31)
         {
            word pd92;
            word idx93;
            pd92 = (* (( (ptr) (* (( (ptr) gf←c59748)+171)/* var←c56324 */  ))+4) );
            (* (( (ptr) gRef←v48748)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd92 ))))((
                  idx93 = (* (( (ptr) (*  (ptr) formal←c59780 ))+22) ),
                  BCK(idx93, 32768)
                  ), pd92);
            };
         };
SOURCE(17264, 63)
      buff←v21052 = ((* (( (ptr) gRef←v48748)+2) ) + 4);
      };
SOURCE(19884, 34)
   {
      word pd94;
      pd94 = (* (( (ptr) (* (( (ptr) gf←c59748)+166)/* var←c54596 */  ))+43) );
      (void) ( *( (fPt) ((*  (ptr) pd94 ))))((* ((( (ptr) formal←c59780)+4)) ), pd94);
      };
SOURCE(19920, 369)
   {
      register word height←v21108 = 0;
      register word noName←c56356;
      noName←c56356 = (* (( (ptr) (*  (ptr) formal←c59780 ))+7) );
      if (( (int)height←v21108 >=  (int)noName←c56356)) {
         goto lab←L100059;
         };
      lab←L100062: ;
      {
         word idx←v21152 = 0;
         word p←v21180;
SOURCE(19973, 51)
         p←v21180 = (* (( (ptr) (*  (ptr) formal←c59780 ))+10) );
SOURCE(20026, 96)
         {
            register word i←v21236;
            register word noName←c56388;
            i←v21236 = (* (( (ptr) (*  (ptr) formal←c59780 ))+21) );
            noName←c56388 = ((* (( (ptr) (*  (ptr) formal←c59780 ))+21) ) + (* (( (ptr) (*  (ptr) formal←c59780 ))+24) ));
            if (( (int)i←v21236 >=  (int)noName←c56388)) {
               goto lab←L100063;
               };
            lab←L100066: ;
SOURCE(20086, 23)
            (* (( (bPt) buff←v21052)+idx←v21152) ) = (word) (* (( (bPt) (* (( (ptr) gf←c59748)+6)/* bSwap←v5156 */  ))+(word) (* (( (bPt) p←v21180)+i←v21236)
                )) );
SOURCE(20111, 11)
            idx←v21152 = (idx←v21152 + 1);
            i←v21236 = (i←v21236 + 1);
            if (( (int)i←v21236 <  (int)noName←c56388)) {
               goto lab←L100066;
               };
            lab←L100063: ;
            };
SOURCE(20133, 74)
         {
            W3 var←c56420;
            var←c56420.f0 = buff←v21052;
            var←c56420.f1 = 0;
            var←c56420.f2 = (* (( (ptr) (*  (ptr) formal←c59780 ))+22) );
            {
               word pd95;
               pd95 = (* (( (ptr) (* (( (ptr) gf←c59748)+170)/* var←c55812 */  ))+24) );
               (void) ( *( (fPt) ((*  (ptr) pd95 ))))((* (( (ptr) (* (( (ptr) formal←c59780)+4) ))+31) ), var←c56420, pd95);
               };
            };
SOURCE(20209, 44)
         (* (( (ptr) (* (( (ptr) formal←c59780)+4) ))+10) ) = ((* (( (ptr) (* (( (ptr) formal←c59780)+4) ))+10) ) + (* (( (ptr) (*  (ptr) formal←c59780 ))+22)
          ));
SOURCE(20255, 34)
         (* (( (ptr) (*  (ptr) formal←c59780 ))+10) ) = ((* (( (ptr) (*  (ptr) formal←c59780 ))+10) ) + (* (( (ptr) (*  (ptr) formal←c59780 ))+23)
          ));
         };
      height←v21108 = (height←v21108 + 1);
      if (( (int)height←v21108 <  (int)noName←c56356)) {
         goto lab←L100062;
         };
      lab←L100059: ;
      };
SOURCE(20300, 59)
   lab←L100069: ;
   if (( (int)IOP2( % ,  (int)(* (( (ptr) (*  (ptr) formal←c59780 ))+16) ),  (int)4) !=  (int)0)) {
      }
   else {
      goto lab←L100067;
      };
SOURCE(20323, 7)
   (* (( (ptr) (*  (ptr) formal←c59780 ))+16) ) = ((* (( (ptr) (*  (ptr) formal←c59780 ))+16) ) + 1);
SOURCE(20332, 27)
   (void) DPutBYTE←P660((* (( (ptr) formal←c59780)+4) ), 0);
   goto lab←L100069;
   lab←L100067: ;
   }

static void BytesSwapped←P5748(formal←c59844)
   word formal←c59844;
   {
   register ptr gf←c59812 =  (ptr) &globalframe;
   word buff←v21280;
   word bytesPerServerUnit←v21308;
   formal←c59844 = (formal←c59844 - 36);
   /* BytesSwapped: */ 
SOURCE(20364, 41)
SOURCE(20407, 71)
   {
      word gRef←v48700;
      gRef←v48700 = (* (( (ptr) (*  (ptr) formal←c59844 ))+17) );
SOURCE(17196, 66)
      if (( (int) (unsigned) (* (( (hPt) (* (( (ptr) gRef←v48700)+2) ))+1) ) <  (int)(* (( (ptr) (*  (ptr) formal←c59844 ))+22)
       ))) {
SOURCE(17231, 31)
         {
            word pd96;
            word idx97;
            pd96 = (* (( (ptr) (* (( (ptr) gf←c59812)+171)/* var←c56324 */  ))+4) );
            (* (( (ptr) gRef←v48700)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd96 ))))((
                  idx97 = (* (( (ptr) (*  (ptr) formal←c59844 ))+22) ),
                  BCK(idx97, 32768)
                  ), pd96);
            };
         };
SOURCE(17264, 63)
      buff←v21280 = ((* (( (ptr) gRef←v48700)+2) ) + 4);
      };
SOURCE(20480, 45)
   {
      word idx98;
      bytesPerServerUnit←v21308 = (
         idx98 = (word) IOP2( / ,  (int)(* (( (ptr) (*  (ptr) formal←c59844 ))+19) ),  (int)8),
         SGNCK(idx98)
         );
      };
SOURCE(20527, 34)
   {
      word pd99;
      pd99 = (* (( (ptr) (* (( (ptr) gf←c59812)+166)/* var←c54596 */  ))+43) );
      (void) ( *( (fPt) ((*  (ptr) pd99 ))))((* ((( (ptr) formal←c59844)+4)) ), pd99);
      };
SOURCE(20563, 602)
   {
      register word height←v21364 = 0;
      register word noName←c56484;
      noName←c56484 = (* (( (ptr) (*  (ptr) formal←c59844 ))+7) );
      if (( (int)height←v21364 >=  (int)noName←c56484)) {
         goto lab←L100071;
         };
      lab←L100074: ;
      {
         word idx←v21408 = 0;
         word p←v21436;
         word b←v21464;
         word startIndex←v21492;
SOURCE(20616, 51)
         p←v21436 = (* (( (ptr) (*  (ptr) formal←c59844 ))+10) );
SOURCE(20669, 25)
         b←v21464 = (* (( (ptr) (*  (ptr) formal←c59844 ))+22) );
SOURCE(20696, 30)
         startIndex←v21492 = (* (( (ptr) (*  (ptr) formal←c59844 ))+21) );
SOURCE(20745, 234)
         lab←L100077: ;
         if (( (int)b←v21464 >  (int)0)) {
            }
         else {
            goto lab←L100075;
            };
SOURCE(20760, 44)
         startIndex←v21492 = (startIndex←v21492 + bytesPerServerUnit←v21308);
SOURCE(20806, 90)
         {
            register word noName←c56516 = 0;
            if ((noName←c56516 >= bytesPerServerUnit←v21308)) {
               goto lab←L100078;
               };
            lab←L100081: ;
SOURCE(20843, 40)
            startIndex←v21492 = (startIndex←v21492 - 1);
            (* (( (bPt) buff←v21280)+idx←v21408) ) = (word) (* (( (bPt) p←v21436)+startIndex←v21492) );
SOURCE(20885, 11)
            idx←v21408 = (idx←v21408 + 1);
            noName←c56516 = (noName←c56516 + 1);
            if ((noName←c56516 < bytesPerServerUnit←v21308)) {
               goto lab←L100081;
               };
            lab←L100078: ;
            };
SOURCE(20907, 44)
         startIndex←v21492 = (startIndex←v21492 + bytesPerServerUnit←v21308);
SOURCE(20953, 26)
         b←v21464 = (b←v21464 - bytesPerServerUnit←v21308);
         goto lab←L100077;
         lab←L100075: ;
SOURCE(20990, 12)
         if (( (int)b←v21464 !=  (int)0)) {
SOURCE(21002, 5)
            (void) XR←RaiseUnnamedError();
            };
SOURCE(21009, 74)
         {
            W3 var←c56548;
            var←c56548.f0 = buff←v21280;
            var←c56548.f1 = 0;
            var←c56548.f2 = (* (( (ptr) (*  (ptr) formal←c59844 ))+22) );
            {
               word pd100;
               pd100 = (* (( (ptr) (* (( (ptr) gf←c59812)+170)/* var←c55812 */  ))+24) );
               (void) ( *( (fPt) ((*  (ptr) pd100 ))))((* (( (ptr) (* (( (ptr) formal←c59844)+4) ))+31) ), var←c56548, pd100);
               };
            };
SOURCE(21085, 44)
         (* (( (ptr) (* (( (ptr) formal←c59844)+4) ))+10) ) = ((* (( (ptr) (* (( (ptr) formal←c59844)+4) ))+10) ) + (* (( (ptr) (*  (ptr) formal←c59844 ))+22)
          ));
SOURCE(21131, 34)
         (* (( (ptr) (*  (ptr) formal←c59844 ))+10) ) = ((* (( (ptr) (*  (ptr) formal←c59844 ))+10) ) + (* (( (ptr) (*  (ptr) formal←c59844 ))+23)
          ));
         };
      height←v21364 = (height←v21364 + 1);
      if (( (int)height←v21364 <  (int)noName←c56484)) {
         goto lab←L100074;
         };
      lab←L100071: ;
      };
SOURCE(21176, 59)
   lab←L100084: ;
   if (( (int)IOP2( % ,  (int)(* (( (ptr) (*  (ptr) formal←c59844 ))+16) ),  (int)4) !=  (int)0)) {
      }
   else {
      goto lab←L100082;
      };
SOURCE(21199, 7)
   (* (( (ptr) (*  (ptr) formal←c59844 ))+16) ) = ((* (( (ptr) (*  (ptr) formal←c59844 ))+16) ) + 1);
SOURCE(21208, 27)
   (void) DPutBYTE←P660((* (( (ptr) formal←c59844)+4) ), 0);
   goto lab←L100084;
   lab←L100082: ;
   }

static void BothSwapped←P5808(formal←c59908)
   word formal←c59908;
   {
   register ptr gf←c59876 =  (ptr) &globalframe;
   word buff←v21548;
   word bytesPerServerUnit←v21576;
   formal←c59908 = (formal←c59908 - 28);
   /* BothSwapped: */ 
SOURCE(21240, 40)
SOURCE(21282, 71)
   {
      word gRef←v48652;
      gRef←v48652 = (* (( (ptr) (*  (ptr) formal←c59908 ))+17) );
SOURCE(17196, 66)
      if (( (int) (unsigned) (* (( (hPt) (* (( (ptr) gRef←v48652)+2) ))+1) ) <  (int)(* (( (ptr) (*  (ptr) formal←c59908 ))+22)
       ))) {
SOURCE(17231, 31)
         {
            word pd101;
            word idx102;
            pd101 = (* (( (ptr) (* (( (ptr) gf←c59876)+171)/* var←c56324 */  ))+4) );
            (* (( (ptr) gRef←v48652)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd101 ))))((
                  idx102 = (* (( (ptr) (*  (ptr) formal←c59908 ))+22) ),
                  BCK(idx102, 32768)
                  ), pd101);
            };
         };
SOURCE(17264, 63)
      buff←v21548 = ((* (( (ptr) gRef←v48652)+2) ) + 4);
      };
SOURCE(21355, 45)
   {
      word idx103;
      bytesPerServerUnit←v21576 = (
         idx103 = (word) IOP2( / ,  (int)(* (( (ptr) (*  (ptr) formal←c59908 ))+19) ),  (int)8),
         SGNCK(idx103)
         );
      };
SOURCE(21402, 34)
   {
      word pd104;
      pd104 = (* (( (ptr) (* (( (ptr) gf←c59876)+166)/* var←c54596 */  ))+43) );
      (void) ( *( (fPt) ((*  (ptr) pd104 ))))((* ((( (ptr) formal←c59908)+4)) ), pd104);
      };
SOURCE(21438, 609)
   {
      register word height←v21632 = 0;
      register word noName←c56612;
      noName←c56612 = (* (( (ptr) (*  (ptr) formal←c59908 ))+7) );
      if (( (int)height←v21632 >=  (int)noName←c56612)) {
         goto lab←L100086;
         };
      lab←L100089: ;
      {
         word idx←v21676 = 0;
         word p←v21704;
         word b←v21732;
         word startIndex←v21760;
SOURCE(21491, 51)
         p←v21704 = (* (( (ptr) (*  (ptr) formal←c59908 ))+10) );
SOURCE(21544, 25)
         b←v21732 = (* (( (ptr) (*  (ptr) formal←c59908 ))+22) );
SOURCE(21571, 30)
         startIndex←v21760 = (* (( (ptr) (*  (ptr) formal←c59908 ))+21) );
SOURCE(21620, 241)
         lab←L100092: ;
         if (( (int)b←v21732 >  (int)0)) {
            }
         else {
            goto lab←L100090;
            };
SOURCE(21635, 44)
         startIndex←v21760 = (startIndex←v21760 + bytesPerServerUnit←v21576);
SOURCE(21681, 97)
         {
            register word noName←c56644 = 0;
            if ((noName←c56644 >= bytesPerServerUnit←v21576)) {
               goto lab←L100093;
               };
            lab←L100096: ;
SOURCE(21718, 47)
            startIndex←v21760 = (startIndex←v21760 - 1);
            (* (( (bPt) buff←v21548)+idx←v21676) ) = (word) (* (( (bPt) (* (( (ptr) gf←c59876)+6)/* bSwap←v5156 */  ))+(word) (* (( (bPt) p←v21704)+startIndex←v21760)
                )) );
SOURCE(21767, 11)
            idx←v21676 = (idx←v21676 + 1);
            noName←c56644 = (noName←c56644 + 1);
            if ((noName←c56644 < bytesPerServerUnit←v21576)) {
               goto lab←L100096;
               };
            lab←L100093: ;
            };
SOURCE(21789, 44)
         startIndex←v21760 = (startIndex←v21760 + bytesPerServerUnit←v21576);
SOURCE(21835, 26)
         b←v21732 = (b←v21732 - bytesPerServerUnit←v21576);
         goto lab←L100092;
         lab←L100090: ;
SOURCE(21872, 12)
         if (( (int)b←v21732 !=  (int)0)) {
SOURCE(21884, 5)
            (void) XR←RaiseUnnamedError();
            };
SOURCE(21891, 74)
         {
            W3 var←c56676;
            var←c56676.f0 = buff←v21548;
            var←c56676.f1 = 0;
            var←c56676.f2 = (* (( (ptr) (*  (ptr) formal←c59908 ))+22) );
            {
               word pd105;
               pd105 = (* (( (ptr) (* (( (ptr) gf←c59876)+170)/* var←c55812 */  ))+24) );
               (void) ( *( (fPt) ((*  (ptr) pd105 ))))((* (( (ptr) (* (( (ptr) formal←c59908)+4) ))+31) ), var←c56676, pd105);
               };
            };
SOURCE(21967, 44)
         (* (( (ptr) (* (( (ptr) formal←c59908)+4) ))+10) ) = ((* (( (ptr) (* (( (ptr) formal←c59908)+4) ))+10) ) + (* (( (ptr) (*  (ptr) formal←c59908 ))+22)
          ));
SOURCE(22013, 34)
         (* (( (ptr) (*  (ptr) formal←c59908 ))+10) ) = ((* (( (ptr) (*  (ptr) formal←c59908 ))+10) ) + (* (( (ptr) (*  (ptr) formal←c59908 ))+23)
          ));
         };
      height←v21632 = (height←v21632 + 1);
      if (( (int)height←v21632 <  (int)noName←c56612)) {
         goto lab←L100089;
         };
      lab←L100086: ;
      };
SOURCE(22058, 59)
   lab←L100099: ;
   if (( (int)IOP2( % ,  (int)(* (( (ptr) (*  (ptr) formal←c59908 ))+16) ),  (int)4) !=  (int)0)) {
      }
   else {
      goto lab←L100097;
      };
SOURCE(22081, 7)
   (* (( (ptr) (*  (ptr) formal←c59908 ))+16) ) = ((* (( (ptr) (*  (ptr) formal←c59908 ))+16) ) + 1);
SOURCE(22090, 27)
   (void) DPutBYTE←P660((* (( (ptr) formal←c59908)+4) ), 0);
   goto lab←L100099;
   lab←L100097: ;
   }

static void GetImage←P3600(formal←c0547, c←v13888, formal←c0971, formal←c0972, formal←c0973, formal←c0974, formal←c0975)
   word formal←c0547;
   word c←v13888;
   word formal←c0971;
   W2 formal←c0972;
   W2 formal←c0973;
   word formal←c0974;
   word formal←c0975;
   {
   W14 var←c59940;
   /* declaration of drawable←v13916 skipped */ 
   /* declaration of pos←v13944 skipped */ 
   /* declaration of size←v13972 skipped */ 
   /* declaration of format←v14000 skipped */ 
   /* declaration of planeMask←v14028 skipped */ 
   register ptr gf←c59972 =  (ptr) &globalframe;
   W6 r←v14072;
   /* declaration of var←c56708 skipped */ 
   /* declaration of reply←v21872 skipped */ 
   word leng←v21928;
   (* (( (ptr) &var←c59940)+4)/* drawable←v13916 */  ) = formal←c0971;
   (*  (W2Pt) (( (ptr) &var←c59940)+5)/* pos←v13944 */  ) = formal←c0972;
   (*  (W2Pt) (( (ptr) &var←c59940)+7)/* size←v13972 */  ) = formal←c0973;
   (* (( (ptr) &var←c59940)+9)/* format←v14000 */  ) = formal←c0974;
   (* (( (ptr) &var←c59940)+10)/* planeMask←v14028 */  ) = formal←c0975;
   /* GetImage: */ 
SOURCE(25699, 732)
   {
      word tmpAddr106;
      tmpAddr106 = (word) (( (ptr) &var←c59940)+11)/* var←c56708 */ ;
      (*  (ptr) tmpAddr106 ) = ( ((word)  (fPt) action←P6492) );
      (* (( (ptr) tmpAddr106) + 1) ) = 1;
      };
SOURCE(25699, 732)
   XR←FillWords(&r←v14072, 6, 0);
SOURCE(25871, 12)
   (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ) = 0;
SOURCE(26068, 69)
   if (( (int)(* (( (ptr) &var←c59940)+7) ) <=  (int)0) || ( (int)(* (( (ptr) &var←c59940)+8) ) <=  (int)0)) {
SOURCE(26108, 29)
      (void) RaiseClientError←P60(c←v13888, (* (( (ptr) gf←c59972)+21) ));
      };
SOURCE(26139, 27)
   {
      word pd107;
      pd107 = (* (( (ptr) (* (( (ptr) gf←c59972)+166)/* var←c54596 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd107 ))))(c←v13888, (word) (( (bPt) &var←c59940)+44)/* var←c56708 */ , 0, pd107);
      };
SOURCE(26168, 17)
   {
      word pd108;
      pd108 = (* (( (ptr) (* (( (ptr) gf←c59972)+166)/* var←c54596 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd108 ))))((* ((( (ptr) &var←c59940)+13)/* reply←v21872 */ ) ), pd108);
      };
SOURCE(26187, 24)
   r←v14072.f4 = (* (( (ptr) (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ))+8) );
SOURCE(26213, 32)
   r←v14072.f2 = (* (( (ptr) (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ))+8) );
SOURCE(26247, 22)
   {
      word var←c56740;
      word b←v49272;
      b←v49272 =  (unsigned) (word) (* (( (bPt) (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ))+(* (( (ptr) (* (( (ptr) &var←c59940)+13)
            /* reply←v21872 */  ))+10) )) );
      (* (( (ptr) (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ))+10) ) = ((* (( (ptr) (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ))+10)
       ) + 1);
      var←c56740 = b←v49272;
      r←v14072.f0 = var←c56740;
      };
SOURCE(26271, 14)
   (* (( (ptr) (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ))+10) ) = ((* (( (ptr) (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ))+10)
    ) + 2);
SOURCE(26287, 21)
   {
      word pd109;
      pd109 = (* (( (ptr) (* (( (ptr) gf←c59972)+166)/* var←c54596 */  ))+79) );
      leng←v21928 = (word) ( *( (fPt) ((*  (ptr) pd109 ))))((* ((( (ptr) &var←c59940)+13)/* reply←v21872 */ ) ), pd109);
      };
SOURCE(26310, 20)
   {
      word idx110;
      r←v14072.f3 = (
         idx110 = (word) ((word) leng←v21928 << 2),
         SGNCK(idx110)
         );
      };
SOURCE(26332, 27)
   {
      word pd111;
      pd111 = (* (( (ptr) (* (( (ptr) gf←c59972)+166)/* var←c54596 */  ))+78) );
      r←v14072.f1 = (word) ( *( (fPt) ((*  (ptr) pd111 ))))((* ((( (ptr) &var←c59940)+13)/* reply←v21872 */ ) ), pd111);
      };
SOURCE(26361, 19)
   (* (( (ptr) (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ))+8) ) = 0;
SOURCE(26409, 22)
   {
      word pd112;
      pd112 = (* (( (ptr) (* (( (ptr) gf←c59972)+166)/* var←c54596 */  ))+67) );
      (void) ( *( (fPt) ((*  (ptr) pd112 ))))(c←v13888, (* (( (ptr) &var←c59940)+13)/* reply←v21872 */  ), pd112);
      };
   /* removed tail goto */ 
   (*  (W6Pt) formal←c0547 ) = r←v14072;
   return;
   }

static void action←P6492(c←v22004, formal←c60036)
   word c←v22004;
   word formal←c60036;
   {
   register ptr gf←c60004 =  (ptr) &globalframe;
   formal←c60036 = (formal←c60036 - 44);
   /* action: */ 
SOURCE(25885, 163)
SOURCE(25918, 28)
   {
      word pd113;
      pd113 = (* (( (ptr) (* (( (ptr) gf←c60004)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd113 ))))(c←v22004, 73, ((* (( (ptr) formal←c60036)+9) ) + 1), 5, pd113);
      };
SOURCE(25948, 25)
   (void) BPutDrawable←P300(c←v22004, (* (( (ptr) formal←c60036)+4) ));
SOURCE(25976, 22)
   (void) BPutRect←P600(c←v22004, (*  (W2Pt) (( (ptr) formal←c60036)+5) ), (*  (W2Pt) (( (ptr) formal←c60036)+7) ));
SOURCE(26000, 20)
   (void) BPut32←P240(c←v22004, (* (( (ptr) formal←c60036)+10) ));
SOURCE(26022, 26)
   {
      word pd114;
      pd114 = (* (( (ptr) (* (( (ptr) gf←c60004)+166)/* var←c54596 */  ))+62) );
      (* (( (ptr) formal←c60036)+13) ) = (word) ( *( (fPt) ((*  (ptr) pd114 ))))(c←v22004, pd114);
      };
   }

static void PutRectanglesDirect←P3660(c←v14132, rects←v14160, start←v14188, num←v14216)
   word c←v14132;
   word rects←v14160;
   word start←v14188;
   word num←v14216;
   {
   register ptr gf←c60068 =  (ptr) &globalframe;
   word cnt←v22032;
   /* PutRectanglesDirect: */ 
SOURCE(26436, 259)
SOURCE(26527, 37)
   cnt←v22032 = IOP2( * ,  (int)num←v14216,  (int)8);
SOURCE(26566, 24)
   {
      word pd115;
      pd115 = (* (( (ptr) (* (( (ptr) gf←c60068)+166)/* var←c54596 */  ))+43) );
      (void) ( *( (fPt) ((*  (ptr) pd115 ))))(c←v14132, pd115);
      };
SOURCE(26592, 70)
   {
      W3 var←c56772;
      {
         word limit116;
         var←c56772.f0 = (word) (( (W2Pt) (( (bPt) rects←v14160)+4))+(
               limit116 = (*  (ptr) rects←v14160 ),
               BCK(start←v14188, limit116)
               ));
         };
      var←c56772.f1 = 0;
      var←c56772.f2 = cnt←v22032;
      {
         word pd117;
         pd117 = (* (( (ptr) (* (( (ptr) gf←c60068)+170)/* var←c55812 */  ))+24) );
         (void) ( *( (fPt) ((*  (ptr) pd117 ))))((* (( (ptr) c←v14132)+31) ), var←c56772, pd117);
         };
      };
SOURCE(26664, 31)
   (* (( (ptr) c←v14132)+10) ) = ((* (( (ptr) c←v14132)+10) ) + cnt←v22032);
   }

static void BPutRectangles←P3720(c←v14276, rects←v14304, start←v14332, num←v14360)
   word c←v14276;
   word rects←v14304;
   word start←v14332;
   word num←v14360;
   {
   register ptr gf←c60100 =  (ptr) &globalframe;
   word byteCnt←v22076;
   word p←v22104;
   /* BPutRectangles: */ 
SOURCE(26701, 281)
SOURCE(26794, 44)
   {
      word idx118;
      byteCnt←v22076 = (
         idx118 = (word) IOP2( * ,  (int)num←v14360,  (int)8),
         SGNCK(idx118)
         );
      };
SOURCE(26840, 58)
   {
      word pd119;
      pd119 = (* (( (ptr) (* (( (ptr) gf←c60100)+166)/* var←c54596 */  ))+39) );
      p←v22104 = (word) ( *( (fPt) ((*  (ptr) pd119 ))))(c←v14276, byteCnt←v22076, pd119);
      };
SOURCE(26900, 82)
   {
      word limit120;
      (void) Basics←MoveWords(p←v22104, (word) (( (W2Pt) (( (bPt) rects←v14304)+4))+(
               limit120 = (*  (ptr) rects←v14304 ),
               BCK(start←v14332, limit120)
               )), ((word) byteCnt←v22076 >> 2));
      };
   }

static void PolyFillRectangle←P3780(c←v14420, drawable←v14448, gc←v14476, rects←v14504, start←v14532, number←v14560, details←v14588)
   word c←v14420;
   word drawable←v14448;
   word gc←v14476;
   word rects←v14504;
   word start←v14532;
   word number←v14560;
   word details←v14588;
   {
   register ptr gf←c60132 =  (ptr) &globalframe;
   word var←c56804;
   word var←c56836;
   word err←v22160 = 0;
   word total←v22188;
   word max←v22216;
   /* PolyFillRectangle: */ 
SOURCE(26988, 825)
   (void) (XR←MonitorEntry(c←v14420));
SOURCE(27182, 78)
   {
      word tc121;
      word x122;
      if ((rects←v14504 != 0)) {
         tc121 =  (word) (x122 = ((*  (ptr) rects←v14504 ) - start←v14532),
            MIN((int)(word), number←v14560, x122));
         }
      else {
         tc121 =  (word) 0;
         };
      total←v22188 = tc121;
      };
SOURCE(27262, 47)
   {
      word x123;
      max←v22216 = (x123 = IOP2( / ,  (int)(* (( (ptr) (* (( (ptr) c←v14420)+16) ))+6) ),  (int)2),
         MIN((int)(word), x123, 200));
      };
SOURCE(27311, 502)
   if ( ( (rects←v14504 != 0) ? ((*  (ptr) rects←v14504 ) > 0) : 0 ) ) {
SOURCE(27355, 469)
      {
         word gcid←v22260;
         word done←v22288 = 0;
SOURCE(27357, 52)
         gcid←v22260 = (word) UseGContext←P1560(c←v14420, drawable←v14448, gc←v14476, details←v14588);
SOURCE(27426, 387)
         lab←L100104: ;
         if (( (int)done←v22288 <  (int)total←v22188)) {
            }
         else {
            goto lab←L100102;
            };
         {
            word thisTime←v22332;
SOURCE(27446, 38)
            thisTime←v22332 = (MIN((int)(word), (total←v22188 - done←v22288), max←v22216));
SOURCE(27486, 29)
            {
               word pd124;
               pd124 = (* (( (ptr) (* (( (ptr) gf←c60132)+166)/* var←c54596 */  ))+17) );
               (void) ( *( (fPt) ((*  (ptr) pd124 ))))(c←v14420, 70, 0, (IOP2( * ,  (int)2,  (int)thisTime←v22332) + 3), pd124);
               };
SOURCE(27517, 25)
            (void) BPutDrawable←P300(c←v14420, drawable←v14448);
SOURCE(27545, 15)
            (void) BPut32←P240(c←v14420, gcid←v22260);
SOURCE(27563, 124)
            if (( (int)thisTime←v22332 >  (int)100)) {
SOURCE(27584, 57)
               (void) PutRectanglesDirect←P3660(c←v14420, rects←v14504, (start←v14532 + done←v22288), thisTime←v22332);
               }
            else {
SOURCE(27641, 46)
               (void) BPutRectangles←P3720(c←v14420, rects←v14504, (start←v14532 + done←v22288), thisTime←v22332);
               };
SOURCE(27689, 53)
            {
               word pd125;
               pd125 = (* (( (ptr) (* (( (ptr) gf←c60132)+166)/* var←c54596 */  ))+65) );
               err←v22160 = (word) ( *( (fPt) ((*  (ptr) pd125 ))))(c←v14420, details←v14588, pd125);
               };
SOURCE(27744, 45)
            if ((err←v22160 != 0)) {
SOURCE(27760, 29)
               var←c56804 = (* (( (ptr) (* (( (ptr) gf←c60132)+169)/* var←c54980 */  ))+4) );
               var←c56836 = (word) err←v22160;
               (void) (XR←MonitorExit(c←v14420));
               goto lab←L100105;
               };
SOURCE(27791, 22)
            done←v22288 = (done←v22288 + thisTime←v22332);
            };
         goto lab←L100104;
         lab←L100102: ;
         };
      };
SOURCE(26988, 825)
   (void) (XR←MonitorExit(c←v14420));
   return;
   /* c2c skipped dead code */ 
   lab←L100105: ;
SOURCE(27760, 29)
   {
      word var←c0576;
      var←c0576 = var←c56836;
      (void) XR←RaiseError(var←c56804, (word) &var←c0576);
      };
   }

static void CountAndSetMaskBits←P3840(formal←c0582, mask←v14648)
   word formal←c0582;
   word mask←v14648;
   {
   word bitmask←v14692;
   word n←v14720;
   /* CountAndSetMaskBits: */ 
SOURCE(27831, 250)
SOURCE(27831, 250)
   bitmask←v14692 = 0;
SOURCE(27831, 250)
   n←v14720 = 0;
SOURCE(27919, 162)
   if ((mask←v14648 != 0)) {
SOURCE(27943, 148)
      {
         word bit←v22376 = 1;
SOURCE(27962, 119)
         {
            register word key←v22420 = 0;
            lab←L100111: ;
SOURCE(28010, 53)
            if (((word) mask←v14648 >> (31 - (word) key←v22420)) & 1) {
SOURCE(28029, 9)
               n←v14720 = (n←v14720 + 1);
SOURCE(28040, 23)
               bitmask←v14692 = (bitmask←v14692 + bit←v22376);
               };
SOURCE(28066, 15)
            bit←v22376 = (bit←v22376 + bit←v22376);
            if ((key←v22420 >= 22)) {
               goto lab←L100108;
               };
            key←v22420 = (key←v22420 + 1);
            goto lab←L100111;
            lab←L100108: ;
            };
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0582 ) = bitmask←v14692;
   (* (( (ptr) formal←c0582)+1) ) = n←v14720;
   return;
   }

static void CopyGC←P3900(c←v14780, srcGCID←v14808, destGCID←v14836, mask←v14864, details←v14892)
   word c←v14780;
   word srcGCID←v14808;
   word destGCID←v14836;
   word mask←v14864;
   word details←v14892;
   {
   register ptr gf←c60164 =  (ptr) &globalframe;
   word var←c56900;
   word var←c56932;
   word err←v22464 = 0;
   /* CopyGC: */ 
SOURCE(28098, 343)
   (void) (XR←MonitorEntry(c←v14780));
SOURCE(28233, 18)
   {
      word pd126;
      pd126 = (* (( (ptr) (* (( (ptr) gf←c60164)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd126 ))))(c←v14780, 57, 0, 4, pd126);
      };
SOURCE(28253, 18)
   (void) BPut32←P240(c←v14780, srcGCID←v14808);
SOURCE(28274, 19)
   (void) BPut32←P240(c←v14780, destGCID←v14836);
SOURCE(28295, 44)
   {
      word var←c56868;
      W2 var←c0592;
      (void) CountAndSetMaskBits←P3840((word) &var←c0592, mask←v14864);
      var←c56868 = var←c0592.f0;
      (void) BPut32←P240(c←v14780, var←c56868);
      };
SOURCE(28341, 53)
   {
      word pd127;
      pd127 = (* (( (ptr) (* (( (ptr) gf←c60164)+166)/* var←c54596 */  ))+65) );
      err←v22464 = (word) ( *( (fPt) ((*  (ptr) pd127 ))))(c←v14780, details←v14892, pd127);
      };
SOURCE(28396, 45)
   if ((err←v22464 != 0)) {
SOURCE(28412, 29)
      var←c56900 = (* (( (ptr) (* (( (ptr) gf←c60164)+169)/* var←c54980 */  ))+4) );
      var←c56932 = (word) err←v22464;
      (void) (XR←MonitorExit(c←v14780));
      goto lab←L100112;
      };
SOURCE(28098, 343)
   (void) (XR←MonitorExit(c←v14780));
   return;
   /* c2c skipped dead code */ 
   lab←L100112: ;
SOURCE(28412, 29)
   {
      word var←c0593;
      var←c0593 = var←c56932;
      (void) XR←RaiseError(var←c56900, (word) &var←c0593);
      };
   }

static void SetDashes←P3960(c←v14952, formal←c0976, formal←c0977, formal←c0978, formal←c0979)
   word c←v14952;
   word formal←c0976;
   word formal←c0977;
   word formal←c0978;
   word formal←c0979;
   {
   W13 var←c60196;
   /* declaration of gc←v14980 skipped */ 
   /* declaration of dashOffset←v15008 skipped */ 
   /* declaration of dashes←v15036 skipped */ 
   /* declaration of details←v15064 skipped */ 
   register ptr gf←c60228 =  (ptr) &globalframe;
   /* declaration of var←c56964 skipped */ 
   /* declaration of var←c56996 skipped */ 
   /* declaration of count←v22536 skipped */ 
   (* (( (ptr) &var←c60196)+4)/* gc←v14980 */  ) = formal←c0976;
   (* (( (ptr) &var←c60196)+5)/* dashOffset←v15008 */  ) = formal←c0977;
   (* (( (ptr) &var←c60196)+6)/* dashes←v15036 */  ) = formal←c0978;
   (* (( (ptr) &var←c60196)+7)/* details←v15064 */  ) = formal←c0979;
   /* SetDashes: */ 
SOURCE(28447, 800)
   {
      word tmpAddr128;
      tmpAddr128 = (word) (( (ptr) &var←c60196)+8)/* var←c56964 */ ;
      (*  (ptr) tmpAddr128 ) = ( ((word)  (fPt) action←P6804) );
      (* (( (ptr) tmpAddr128) + 1) ) = 1;
      };
   {
      word tmpAddr129;
      tmpAddr129 = (word) (( (ptr) &var←c60196)+10)/* var←c56996 */ ;
      (*  (ptr) tmpAddr129 ) = ( ((word)  (fPt) CountBytes←P6744) );
      (* (( (ptr) tmpAddr129) + 1) ) = 1;
      };
SOURCE(28745, 31)
   (* (( (ptr) &var←c60196)+12)/* count←v22536 */  ) = (word) CountBytes←P6744((* (( (ptr) &var←c60196)+6)/* dashes←v15036 */  ), (word) (
         ( (bPt) &var←c60196)+40)/* var←c56996 */ );
SOURCE(29153, 94)
   if (((* (( (ptr) &var←c60196)+12)/* count←v22536 */  ) != 0)) {
SOURCE(29171, 43)
      {
         word x130;
         word x131;
         (* (( (ptr) &var←c60196)+12)/* count←v22536 */  ) = (x130 = (* (( (ptr) &var←c60196)+12)/* count←v22536 */  ),
            x131 = (* (( (ptr) (* (( (ptr) c←v14952)+16) ))+6) ),
            MIN((int)(word), x130, x131));
         };
SOURCE(29216, 31)
      {
         word pd132;
         pd132 = (* (( (ptr) (* (( (ptr) gf←c60228)+166)/* var←c54596 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd132 ))))(c←v14952, (word) (( (bPt) &var←c60196)+32)/* var←c56964 */ , (* (( (ptr) &var←c60196)+7)
            /* details←v15064 */  ), pd132);
         };
      };
   }

static word CountBytes←P6744(list←v22640, formal←c60260)
   word list←v22640;
   word formal←c60260;
   {
   word cnt←v22768;
   formal←c60260 = (formal←c60260 - 40);
   /* CountBytes: */ 
SOURCE(28564, 176)
SOURCE(28564, 176)
   cnt←v22768 = 0;
SOURCE(28649, 91)
   {
      register word l←v22900;
      l←v22900 = list←v22640;
      lab←L100117: ;
      if ( ( (l←v22900 != 0) ? (cnt←v22768 < 100) : 0 ) ) {
         }
      else {
         goto lab←L100114;
         };
SOURCE(28715, 25)
      (* (( (ptr) formal←c60260)+12) ) = ((* (( (ptr) formal←c60260)+12) ) + 1);
      l←v22900 = (* (( (ptr) l←v22900)+1) );
      goto lab←L100117;
      lab←L100114: ;
      };
SOURCE(28564, 176)
   return(cnt←v22768);
   }

static void action←P6804(c←v22828, formal←c60324)
   word c←v22828;
   word formal←c60324;
   {
   register ptr gf←c60292 =  (ptr) &globalframe;
   word gcid←v23028;
   formal←c60324 = (formal←c60324 - 32);
   /* action: */ 
SOURCE(28778, 370)
SOURCE(28811, 56)
   gcid←v23028 = (word) UseGContext←P1560(c←v22828, 0, (* (( (ptr) formal←c60324)+4) ), (* (( (ptr) formal←c60324)+7) ));
SOURCE(28869, 30)
   {
      word pd133;
      pd133 = (* (( (ptr) (* (( (ptr) gf←c60292)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd133 ))))(c←v22828, 58, 0, (((word) ((* (( (ptr) formal←c60324)+12) ) + 3) >> 2) + 3), pd133)
      ;
      };
SOURCE(28901, 15)
   (void) BPut32←P240(c←v22828, gcid←v23028);
SOURCE(28919, 21)
   (void) BPut16←P180(c←v22828, (* (( (ptr) formal←c60324)+5) ));
SOURCE(28942, 16)
   {
      word idx134;
      (void) BPut16←P180(c←v22828, (
            idx134 = (* (( (ptr) formal←c60324)+12) ),
            BCK(idx134, 65536)
            ));
      };
SOURCE(28960, 117)
   {
      register word i←v23072 = 0;
      register word noName←c57028;
      noName←c57028 = (* (( (ptr) formal←c60324)+12) );
      if (( (int)i←v23072 >=  (int)noName←c57028)) {
         goto lab←L100118;
         };
      lab←L100121: ;
      {
         word next←v23116;
SOURCE(28988, 6)
         next←v23116 = (* (( (ptr) (* (( (ptr) formal←c60324)+6) ))+1) );
SOURCE(29022, 23)
         {
            word c←v51888;
            word b←v51916;
            c←v51888 = c←v22828;
            b←v51916 = (*  (ptr) (* (( (ptr) formal←c60324)+6) ) );
            {
               word n←v51948;
               n←v51948 = (* (( (ptr) c←v51888)+4) );
               (* (( (bPt) (* (( (ptr) c←v51888)+7) ))+n←v51948) ) = b←v51916;
               (* (( (ptr) c←v51888)+4) ) = (n←v51948 + 1);
               };
            };
SOURCE(29047, 30)
         if ((next←v23116 != 0)) {
SOURCE(29064, 13)
            (* (( (ptr) formal←c60324)+6) ) = next←v23116;
            };
         };
      i←v23072 = (i←v23072 + 1);
      if (( (int)i←v23072 <  (int)noName←c57028)) {
         goto lab←L100121;
         };
      lab←L100118: ;
      };
SOURCE(29088, 29)
   {
      word c←v49196;
      word cnt←v49224;
      c←v49196 = c←v22828;
      {
         word pd135;
         pd135 = (* (( (ptr) (* (( (ptr) gf←c60292)+166)/* var←c54596 */  ))+5) );
         cnt←v49224 = (word) ( *( (fPt) ((*  (ptr) pd135 ))))((* ((( (ptr) formal←c60324)+12)) ), pd135);
         };
      (* (( (ptr) c←v49196)+4) ) = ((* (( (ptr) c←v49196)+4) ) + cnt←v49224);
      };
SOURCE(29119, 29)
   {
      word pd136;
      pd136 = (* (( (ptr) (* (( (ptr) gf←c60292)+166)/* var←c54596 */  ))+64) );
      (void) ( *( (fPt) ((*  (ptr) pd136 ))))(c←v22828, (* (( (ptr) formal←c60324)+7) ), pd136);
      };
   }

static word SetClipRectangles←P4020(c←v15208, gc←v15236, clipOrigin←v15264, rects←v15292, ordering←v15320, start←v15348, number←v15376, details←v15404)
   word c←v15208;
   word gc←v15236;
   W2 clipOrigin←v15264;
   word rects←v15292;
   word ordering←v15320;
   word start←v15348;
   word number←v15376;
   word details←v15404;
   {
   register ptr gf←c60356 =  (ptr) &globalframe;
   word var←c57060;
   word var←c57092;
   word ok←v15448;
   word total←v23244;
   word max←v23272;
   /* SetClipRectangles: */ 
SOURCE(29256, 825)
   (void) (XR←MonitorEntry(c←v15208));
SOURCE(29256, 825)
   ok←v15448 = 1;
SOURCE(29491, 78)
   {
      word tc137;
      word x138;
      if ((rects←v15292 != 0)) {
         tc137 =  (word) (x138 = ((*  (ptr) rects←v15292 ) - start←v15348),
            MIN((int)(word), number←v15376, x138));
         }
      else {
         tc137 =  (word) 0;
         };
      total←v23244 = tc137;
      };
SOURCE(29571, 37)
   max←v23272 = IOP2( / ,  (int)(* (( (ptr) (* (( (ptr) c←v15208)+16) ))+6) ),  (int)2);
SOURCE(29610, 42)
   if (( (int)total←v23244 >  (int)max←v23272)) {
SOURCE(29629, 10)
      ok←v15448 = 0;
SOURCE(29641, 11)
      total←v23244 = max←v23272;
      };
SOURCE(29691, 390)
   if (( (int)total←v23244 >  (int)0)) {
SOURCE(29707, 376)
      {
         word err←v23316 = 0;
         word gcid←v23344;
SOURCE(29732, 56)
         gcid←v23344 = (word) UseGContext←P1560(c←v15208, 0, gc←v15236, details←v15404);
SOURCE(29790, 38)
         {
            word pd139;
            pd139 = (* (( (ptr) (* (( (ptr) gf←c60356)+166)/* var←c54596 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd139 ))))(c←v15208, 59, ordering←v15320, (IOP2( * ,  (int)2,  (int)total←v23244) + 3), pd139)
            ;
            };
SOURCE(29830, 15)
         (void) BPut32←P240(c←v15208, gcid←v23344);
SOURCE(29848, 24)
         (void) BPutPoint←P480(c←v15208, clipOrigin←v15264);
SOURCE(29874, 105)
         if (( (int)total←v23244 >  (int)100)) {
SOURCE(29892, 49)
            (void) PutRectanglesDirect←P3660(c←v15208, rects←v15292, start←v15348, total←v23244);
            }
         else {
SOURCE(29941, 38)
            (void) BPutRectangles←P3720(c←v15208, rects←v15292, start←v15348, total←v23244);
            };
SOURCE(29981, 53)
         {
            word pd140;
            pd140 = (* (( (ptr) (* (( (ptr) gf←c60356)+166)/* var←c54596 */  ))+65) );
            err←v23316 = (word) ( *( (fPt) ((*  (ptr) pd140 ))))(c←v15208, details←v15404, pd140);
            };
SOURCE(30036, 45)
         if ((err←v23316 != 0)) {
SOURCE(30052, 29)
            var←c57060 = (* (( (ptr) (* (( (ptr) gf←c60356)+169)/* var←c54980 */  ))+4) );
            var←c57092 = (word) err←v23316;
            (void) (XR←MonitorExit(c←v15208));
            goto lab←L100122;
            };
         };
      };
SOURCE(29256, 825)
   (void) (XR←MonitorExit(c←v15208));
   return(ok←v15448);
   /* c2c skipped dead code */ 
   lab←L100122: ;
SOURCE(30052, 29)
   {
      word var←c0630;
      var←c0630 = var←c57092;
      (void) XR←RaiseError(var←c57060, (word) &var←c0630);
      };
   }

static void ImageChar←P4080(c←v15508, drawable←v15536, pos←v15564, gc←v15592, ch←v15620, details←v15648)
   word c←v15508;
   word drawable←v15536;
   W2 pos←v15564;
   word gc←v15592;
   word ch←v15620;
   word details←v15648;
   {
   register ptr gf←c60388 =  (ptr) &globalframe;
   word var←c57124;
   word var←c57156;
   word err←v23388 = 0;
   word gcid←v23416;
   /* ImageChar: */ 
SOURCE(30090, 453)
   (void) (XR←MonitorEntry(c←v15508));
SOURCE(30242, 52)
   gcid←v23416 = (word) UseGContext←P1560(c←v15508, drawable←v15536, gc←v15592, details←v15648);
SOURCE(30296, 18)
   {
      word pd141;
      pd141 = (* (( (ptr) (* (( (ptr) gf←c60388)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd141 ))))(c←v15508, 76, 1, 5, pd141);
      };
SOURCE(30316, 25)
   (void) BPutDrawable←P300(c←v15508, drawable←v15536);
SOURCE(30344, 15)
   (void) BPut32←P240(c←v15508, gcid←v23416);
SOURCE(30362, 17)
   (void) BPutPoint←P480(c←v15508, pos←v15564);
SOURCE(30381, 18)
   {
      word c←v51784;
      word b←v51812;
      c←v51784 = c←v15508;
      b←v51812 = ch←v15620;
      {
         word n←v51844;
         n←v51844 = (* (( (ptr) c←v51784)+4) );
         (* (( (bPt) (* (( (ptr) c←v51784)+7) ))+n←v51844) ) = b←v51812;
         (* (( (ptr) c←v51784)+4) ) = (n←v51844 + 1);
         };
      };
SOURCE(30401, 12)
   {
      word c←v51708;
      c←v51708 = c←v15508;
      {
         word n←v51740;
         n←v51740 = (* (( (ptr) c←v51708)+4) );
         (* (( (bPt) (* (( (ptr) c←v51708)+7) ))+n←v51740) ) = 0;
         (* (( (ptr) c←v51708)+4) ) = (n←v51740 + 1);
         };
      };
SOURCE(30415, 12)
   {
      word c←v51632;
      c←v51632 = c←v15508;
      {
         word n←v51664;
         n←v51664 = (* (( (ptr) c←v51632)+4) );
         (* (( (bPt) (* (( (ptr) c←v51632)+7) ))+n←v51664) ) = 0;
         (* (( (ptr) c←v51632)+4) ) = (n←v51664 + 1);
         };
      };
SOURCE(30429, 12)
   {
      word c←v51556;
      c←v51556 = c←v15508;
      {
         word n←v51588;
         n←v51588 = (* (( (ptr) c←v51556)+4) );
         (* (( (bPt) (* (( (ptr) c←v51556)+7) ))+n←v51588) ) = 0;
         (* (( (ptr) c←v51556)+4) ) = (n←v51588 + 1);
         };
      };
SOURCE(30443, 53)
   {
      word pd142;
      pd142 = (* (( (ptr) (* (( (ptr) gf←c60388)+166)/* var←c54596 */  ))+65) );
      err←v23388 = (word) ( *( (fPt) ((*  (ptr) pd142 ))))(c←v15508, details←v15648, pd142);
      };
SOURCE(30498, 45)
   if ((err←v23388 != 0)) {
SOURCE(30514, 29)
      var←c57124 = (* (( (ptr) (* (( (ptr) gf←c60388)+169)/* var←c54980 */  ))+4) );
      var←c57156 = (word) err←v23388;
      (void) (XR←MonitorExit(c←v15508));
      goto lab←L100124;
      };
SOURCE(30090, 453)
   (void) (XR←MonitorExit(c←v15508));
   return;
   /* c2c skipped dead code */ 
   lab←L100124: ;
SOURCE(30514, 29)
   {
      word var←c0650;
      var←c0650 = var←c57156;
      (void) XR←RaiseError(var←c57124, (word) &var←c0650);
      };
   }

static void ImageRope←P4140(c←v15708, drawable←v15736, pos←v15764, gc←v15792, r←v15820, details←v15848)
   word c←v15708;
   word drawable←v15736;
   W2 pos←v15764;
   word gc←v15792;
   word r←v15820;
   word details←v15848;
   {
   register ptr gf←c60420 =  (ptr) &globalframe;
   word var←c57220;
   word var←c57252;
   word var←c57284;
   word err←v23460 = 0;
   word n←v23488;
   word gcid←v23516;
   /* ImageRope: */ 
SOURCE(30549, 499)
   (void) (XR←MonitorEntry(c←v15708));
SOURCE(30699, 23)
   {
      word pd143;
      pd143 = (* (( (ptr) (* (( (ptr) gf←c60420)+172)/* var←c57188 */  ))+14) );
      n←v23488 = (word) ( *( (fPt) ((*  (ptr) pd143 ))))(r←v15820, pd143);
      };
SOURCE(30738, 47)
   if (( (int)n←v23488 >=  (int)255)) {
SOURCE(30760, 25)
      var←c57220 = (word) (( (bPt) gf←c60420)+92)/* var←c52068 */ ;
      (void) (XR←MonitorExit(c←v15708));
      goto lab←L100126;
      };
SOURCE(30787, 44)
   gcid←v23516 = (word) UseGContext←P1560(c←v15708, drawable←v15736, gc←v15792, details←v15848);
SOURCE(30833, 26)
   {
      word pd144;
      pd144 = (* (( (ptr) (* (( (ptr) gf←c60420)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd144 ))))(c←v15708, 76, BCK(n←v23488, 256), (IOP2( / ,  (int)(n←v23488 + 3),  (int)4) + 4), pd144)
      ;
      };
SOURCE(30861, 25)
   (void) BPutDrawable←P300(c←v15708, drawable←v15736);
SOURCE(30889, 15)
   (void) BPut32←P240(c←v15708, gcid←v23516);
SOURCE(30907, 17)
   (void) BPutPoint←P480(c←v15708, pos←v15764);
SOURCE(30926, 20)
   {
      word pd145;
      pd145 = (* (( (ptr) (* (( (ptr) gf←c60420)+166)/* var←c54596 */  ))+37) );
      (void) ( *( (fPt) ((*  (ptr) pd145 ))))(c←v15708, r←v15820, 0, 2147483647, pd145);
      };
SOURCE(30948, 53)
   {
      word pd146;
      pd146 = (* (( (ptr) (* (( (ptr) gf←c60420)+166)/* var←c54596 */  ))+65) );
      err←v23460 = (word) ( *( (fPt) ((*  (ptr) pd146 ))))(c←v15708, details←v15848, pd146);
      };
SOURCE(31003, 45)
   if ((err←v23460 != 0)) {
SOURCE(31019, 29)
      var←c57252 = (* (( (ptr) (* (( (ptr) gf←c60420)+169)/* var←c54980 */  ))+4) );
      var←c57284 = (word) err←v23460;
      (void) (XR←MonitorExit(c←v15708));
      goto lab←L100127;
      };
SOURCE(30549, 499)
   (void) (XR←MonitorExit(c←v15708));
   return;
   /* c2c skipped dead code */ 
   lab←L100126: ;
SOURCE(30760, 25)
   (void) XR←RaiseError(var←c57220, 0);
   lab←L100127: ;
SOURCE(31019, 29)
   {
      word var←c0663;
      var←c0663 = var←c57284;
      (void) XR←RaiseError(var←c57252, (word) &var←c0663);
      };
   }

static word ToInt8Rep←P4200(i←v15908)
   word i←v15908;
   {
   word var←c15952;
   /* ToInt8Rep: */ 
SOURCE(31054, 124)
   if ( ( ( (int)i←v15908 >=  (int)0) ? ( (int)i←v15908 <  (int)128) : 0 ) ) {
SOURCE(31133, 10)
      return(BCK(i←v15908, 256));
      }
   else {
      if ( ( ( (int)i←v15908 <  (int)0) ? ( (int)i←v15908 >=  (int) (word) -128) : 0 ) ) {
SOURCE(31164, 14)
         return(BCK((i←v15908 + 256), 256));
         }
      else {
SOURCE(31191, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
   }

static void DrawChar←P4260(c←v16012, formal←c0980, formal←c0981, formal←c0982, formal←c0983, formal←c0984, formal←c0985)
   word c←v16012;
   word formal←c0980;
   W2 formal←c0981;
   word formal←c0982;
   word formal←c0983;
   word formal←c0984;
   word formal←c0985;
   {
   W13 var←c60452;
   /* declaration of drawable←v16040 skipped */ 
   /* declaration of pos←v16068 skipped */ 
   /* declaration of gc←v16096 skipped */ 
   /* declaration of ch←v16124 skipped */ 
   /* declaration of delta←v16152 skipped */ 
   /* declaration of details←v16180 skipped */ 
   register ptr gf←c60484 =  (ptr) &globalframe;
   /* declaration of var←c57316 skipped */ 
   (* (( (ptr) &var←c60452)+4)/* drawable←v16040 */  ) = formal←c0980;
   (*  (W2Pt) (( (ptr) &var←c60452)+5)/* pos←v16068 */  ) = formal←c0981;
   (* (( (ptr) &var←c60452)+7)/* gc←v16096 */  ) = formal←c0982;
   (* (( (ptr) &var←c60452)+8)/* ch←v16124 */  ) = formal←c0983;
   (* (( (ptr) &var←c60452)+9)/* delta←v16152 */  ) = formal←c0984;
   (* (( (ptr) &var←c60452)+10)/* details←v16180 */  ) = formal←c0985;
   /* DrawChar: */ 
SOURCE(31202, 657)
   {
      word tmpAddr147;
      tmpAddr147 = (word) (( (ptr) &var←c60452)+11)/* var←c57316 */ ;
      (*  (ptr) tmpAddr147 ) = ( ((word)  (fPt) EntryDoit←P7056) );
      (* (( (ptr) tmpAddr147) + 1) ) = 1;
      };
SOURCE(31746, 113)
   if ( ( ( (int)(* (( (ptr) &var←c60452)+9)/* delta←v16152 */  ) >=  (int) (word) -128) ? ( (int)(* (( (ptr) &var←c60452)+9)
   /* delta←v16152 */  ) <=  (int)127) : 0 ) ) {
SOURCE(31776, 18)
      (void) EntryDoit←P7056(c←v16012, (word) (( (bPt) &var←c60452)+44)/* var←c57316 */ );
      }
   else {
SOURCE(31794, 65)
      {
         word var←c57348;
         {
            word pd148;
            pd148 = (* (( (ptr) (* (( (ptr) gf←c60484)+172)/* var←c57188 */  ))+37) );
            var←c57348 = (word) ( *( (fPt) ((*  (ptr) pd148 ))))((* ((( (ptr) &var←c60452)+8)/* ch←v16124 */ ) ), pd148);
            };
         (void) DrawRope←P4320(c←v16012, (* (( (ptr) &var←c60452)+4)/* drawable←v16040 */  ), (*  (W2Pt) (( (ptr) &var←c60452)+5)/* pos←v16068 */  ), (* (
               ( (ptr) &var←c60452)+7)/* gc←v16096 */  ), var←c57348, (* (( (ptr) &var←c60452)+9)/* delta←v16152 */  )
            , (* (( (ptr) &var←c60452)+10)/* details←v16180 */  ));
         };
      };
   }

static void EntryDoit←P7056(c←v23636, formal←c60548)
   word c←v23636;
   word formal←c60548;
   {
   register ptr gf←c60516 =  (ptr) &globalframe;
   word var←c57380;
   word var←c57412;
   word err←v23664 = 0;
   word gcid←v23692;
   formal←c60548 = (formal←c60548 - 44);
   /* EntryDoit: */ 
SOURCE(31334, 407)
   (void) (XR←MonitorEntry(c←v23636));
SOURCE(31399, 52)
   gcid←v23692 = (word) UseGContext←P1560(c←v23636, (* (( (ptr) formal←c60548)+4) ), (* (( (ptr) formal←c60548)+7) ), (* (( (ptr) formal←c60548)+10)
       ));
SOURCE(31453, 18)
   {
      word pd149;
      pd149 = (* (( (ptr) (* (( (ptr) gf←c60516)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd149 ))))(c←v23636, 74, 0, 5, pd149);
      };
SOURCE(31473, 25)
   (void) BPutDrawable←P300(c←v23636, (* (( (ptr) formal←c60548)+4) ));
SOURCE(31501, 15)
   (void) BPut32←P240(c←v23636, gcid←v23692);
SOURCE(31519, 17)
   (void) BPutPoint←P480(c←v23636, (*  (W2Pt) (( (ptr) formal←c60548)+5) ));
SOURCE(31538, 12)
   {
      word c←v51480;
      c←v51480 = c←v23636;
      {
         word n←v51512;
         n←v51512 = (* (( (ptr) c←v51480)+4) );
         (* (( (bPt) (* (( (ptr) c←v51480)+7) ))+n←v51512) ) = 1;
         (* (( (ptr) c←v51480)+4) ) = (n←v51512 + 1);
         };
      };
SOURCE(31566, 27)
   {
      word c←v51376;
      word b←v51404;
      c←v51376 = c←v23636;
      b←v51404 = (word) ToInt8Rep←P4200((* ((( (ptr) formal←c60548)+9)) ));
      {
         word n←v51436;
         n←v51436 = (* (( (ptr) c←v51376)+4) );
         (* (( (bPt) (* (( (ptr) c←v51376)+7) ))+n←v51436) ) = b←v51404;
         (* (( (ptr) c←v51376)+4) ) = (n←v51436 + 1);
         };
      };
SOURCE(31596, 18)
   {
      word c←v51272;
      word b←v51300;
      c←v51272 = c←v23636;
      b←v51300 = (* (( (ptr) formal←c60548)+8) );
      {
         word n←v51332;
         n←v51332 = (* (( (ptr) c←v51272)+4) );
         (* (( (bPt) (* (( (ptr) c←v51272)+7) ))+n←v51332) ) = b←v51300;
         (* (( (ptr) c←v51272)+4) ) = (n←v51332 + 1);
         };
      };
SOURCE(31617, 12)
   {
      word c←v51196;
      c←v51196 = c←v23636;
      {
         word n←v51228;
         n←v51228 = (* (( (ptr) c←v51196)+4) );
         (* (( (bPt) (* (( (ptr) c←v51196)+7) ))+n←v51228) ) = 0;
         (* (( (ptr) c←v51196)+4) ) = (n←v51228 + 1);
         };
      };
SOURCE(31641, 53)
   {
      word pd150;
      pd150 = (* (( (ptr) (* (( (ptr) gf←c60516)+166)/* var←c54596 */  ))+65) );
      err←v23664 = (word) ( *( (fPt) ((*  (ptr) pd150 ))))(c←v23636, (* (( (ptr) formal←c60548)+10) ), pd150);
      };
SOURCE(31696, 45)
   if ((err←v23664 != 0)) {
SOURCE(31712, 29)
      var←c57380 = (* (( (ptr) (* (( (ptr) gf←c60516)+169)/* var←c54980 */  ))+4) );
      var←c57412 = (word) err←v23664;
      (void) (XR←MonitorExit(c←v23636));
      goto lab←L100129;
      };
SOURCE(31334, 407)
   (void) (XR←MonitorExit(c←v23636));
   return;
   /* c2c skipped dead code */ 
   lab←L100129: ;
SOURCE(31712, 29)
   {
      word var←c0690;
      var←c0690 = var←c57412;
      (void) XR←RaiseError(var←c57380, (word) &var←c0690);
      };
   }

static void DrawRope←P4320(c←v16240, formal←c0986, formal←c0987, formal←c0988, formal←c0989, formal←c0990, formal←c0991)
   word c←v16240;
   word formal←c0986;
   W2 formal←c0987;
   word formal←c0988;
   word formal←c0989;
   word formal←c0990;
   word formal←c0991;
   {
   W16 var←c60580;
   /* declaration of drawable←v16268 skipped */ 
   /* declaration of pos←v16296 skipped */ 
   /* declaration of gc←v16324 skipped */ 
   /* declaration of r←v16352 skipped */ 
   /* declaration of delta←v16380 skipped */ 
   /* declaration of details←v16408 skipped */ 
   register ptr gf←c60612 =  (ptr) &globalframe;
   /* declaration of var←c57444 skipped */ 
   /* declaration of var←c57476 skipped */ 
   /* declaration of leng←v23736 skipped */ 
   (* (( (ptr) &var←c60580)+4)/* drawable←v16268 */  ) = formal←c0986;
   (*  (W2Pt) (( (ptr) &var←c60580)+5)/* pos←v16296 */  ) = formal←c0987;
   (* (( (ptr) &var←c60580)+7)/* gc←v16324 */  ) = formal←c0988;
   (* (( (ptr) &var←c60580)+8)/* r←v16352 */  ) = formal←c0989;
   (* (( (ptr) &var←c60580)+9)/* delta←v16380 */  ) = formal←c0990;
   (* (( (ptr) &var←c60580)+10)/* details←v16408 */  ) = formal←c0991;
   /* DrawRope: */ 
SOURCE(31865, 1102)
   {
      word tmpAddr151;
      tmpAddr151 = (word) (( (ptr) &var←c60580)+11)/* var←c57444 */ ;
      (*  (ptr) tmpAddr151 ) = ( ((word)  (fPt) MyDeliver←P7224) );
      (* (( (ptr) tmpAddr151) + 1) ) = 1;
      };
   {
      word tmpAddr152;
      tmpAddr152 = (word) (( (ptr) &var←c60580)+13)/* var←c57476 */ ;
      (*  (ptr) tmpAddr152 ) = ( ((word)  (fPt) EnryDrawRope←P7116) );
      (* (( (ptr) tmpAddr152) + 1) ) = 1;
      };
SOURCE(32001, 26)
   {
      word pd153;
      pd153 = (* (( (ptr) (* (( (ptr) gf←c60612)+172)/* var←c57188 */  ))+14) );
      (* (( (ptr) &var←c60580)+15)/* leng←v23736 */  ) = (word) ( *( (fPt) ((*  (ptr) pd153 ))))((* ((( (ptr) &var←c60580)+8)/* r←v16352 */ ) ), pd153)
      ;
      };
SOURCE(32782, 185)
   if (( (int)(* (( (ptr) &var←c60580)+15)/* leng←v23736 */  ) >  (int)0)) {
SOURCE(32799, 168)
      if ( ( ( (int)(* (( (ptr) &var←c60580)+9)/* delta←v16380 */  ) >=  (int) (word) -128) ? ( (int)(* (( (ptr) &var←c60580)+9)
      /* delta←v16380 */  ) <=  (int)127) : 0 ) ) {
SOURCE(32829, 21)
         (void) EnryDrawRope←P7116(c←v16240, (word) (( (bPt) &var←c60580)+52)/* var←c57476 */ );
         }
      else {
SOURCE(32850, 119)
SOURCE(32911, 56)
         (void) PolyText8←P4440(c←v16240, (* (( (ptr) &var←c60580)+4)/* drawable←v16268 */  ), (*  (W2Pt) (( (ptr) &var←c60580)+5)
            /* pos←v16296 */  ), (* (( (ptr) &var←c60580)+7)/* gc←v16324 */  ), (word) (( (bPt) &var←c60580)+44)/* var←c57444 */ , 0
            , (* (( (ptr) &var←c60580)+10)/* details←v16408 */  ));
         };
      };
   }

static void EnryDrawRope←P7116(c←v23840, formal←c60676)
   word c←v23840;
   word formal←c60676;
   {
   register ptr gf←c60644 =  (ptr) &globalframe;
   word var←c57572;
   word var←c57604;
   word err←v23912 = 0;
   word gcid←v23940;
   word pieceStart←v23968 = 0;
   word n←v23996;
   formal←c60676 = (formal←c60676 - 52);
   /* EnryDrawRope: */ 
SOURCE(32029, 748)
   (void) (XR←MonitorEntry(c←v23840));
SOURCE(32097, 52)
   gcid←v23940 = (word) UseGContext←P1560(c←v23840, (* (( (ptr) formal←c60676)+4) ), (* (( (ptr) formal←c60676)+7) ), (* (( (ptr) formal←c60676)+10)
       ));
SOURCE(32180, 49)
   {
      word x154;
      word x155;
      (* (( (ptr) formal←c60676)+15) ) = (x154 = (* (( (ptr) formal←c60676)+15) ),
         x155 = IOP2( / ,  (int)(* (( (ptr) (* (( (ptr) c←v23840)+16) ))+7) ),  (int)2),
         MIN((int)(word), x154, x155));
      };
SOURCE(32249, 31)
   n←v23996 = (IOP2( * ,  (int)IOP2( / ,  (int)((* (( (ptr) formal←c60676)+15) ) + 253),  (int)254),  (int)2) + (* (( (ptr) formal←c60676)+15)
    ));
SOURCE(32282, 26)
   {
      word pd156;
      pd156 = (* (( (ptr) (* (( (ptr) gf←c60644)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd156 ))))(c←v23840, 74, 0, (IOP2( / ,  (int)(n←v23996 + 3),  (int)4) + 4), pd156);
      };
SOURCE(32310, 25)
   (void) BPutDrawable←P300(c←v23840, (* (( (ptr) formal←c60676)+4) ));
SOURCE(32338, 15)
   (void) BPut32←P240(c←v23840, gcid←v23940);
SOURCE(32356, 17)
   (void) BPutPoint←P480(c←v23840, (*  (W2Pt) (( (ptr) formal←c60676)+5) ));
SOURCE(32375, 212)
   lab←L100133: ;
   if (( (int)(* (( (ptr) formal←c60676)+15) ) >  (int)0)) {
      }
   else {
      goto lab←L100131;
      };
   {
      word pieceLeng←v24040;
SOURCE(32391, 31)
      {
         word x157;
         pieceLeng←v24040 = (x157 = (* (( (ptr) formal←c60676)+15) ),
            MIN((int)(word), x157, 254));
         };
SOURCE(32424, 19)
      (void) BPut8←P120(c←v23840, BCK(pieceLeng←v24040, 256));
SOURCE(32445, 26)
      {
         word var←c57508;
         var←c57508 = (word) ToInt8Rep←P4200((* ((( (ptr) formal←c60676)+9)) ));
         (void) BPut8←P120(c←v23840, var←c57508);
         };
SOURCE(32474, 37)
      {
         word pd158;
         pd158 = (* (( (ptr) (* (( (ptr) gf←c60644)+166)/* var←c54596 */  ))+38) );
         (void) ( *( (fPt) ((*  (ptr) pd158 ))))(c←v23840, (* (( (ptr) formal←c60676)+8) ), pieceStart←v23968, pieceLeng←v24040, pd158)
         ;
         };
SOURCE(32514, 23)
      (* (( (ptr) formal←c60676)+15) ) = ((* (( (ptr) formal←c60676)+15) ) - pieceLeng←v24040);
SOURCE(32541, 35)
      pieceStart←v23968 = (pieceStart←v23968 + pieceLeng←v24040);
SOURCE(32578, 9)
      (* (( (ptr) formal←c60676)+9) ) = 0;
      };
   goto lab←L100133;
   lab←L100131: ;
SOURCE(32598, 26)
   {
      word var←c57540;
      {
         word pd159;
         pd159 = (* (( (ptr) (* (( (ptr) gf←c60644)+166)/* var←c54596 */  ))+5) );
         var←c57540 = (word) ( *( (fPt) ((*  (ptr) pd159 ))))(n←v23996, pd159);
         };
      {
         word pd160;
         pd160 = (* (( (ptr) (* (( (ptr) gf←c60644)+166)/* var←c54596 */  ))+23) );
         (void) ( *( (fPt) ((*  (ptr) pd160 ))))(c←v23840, var←c57540, pd160);
         };
      };
SOURCE(32677, 53)
   {
      word pd161;
      pd161 = (* (( (ptr) (* (( (ptr) gf←c60644)+166)/* var←c54596 */  ))+65) );
      err←v23912 = (word) ( *( (fPt) ((*  (ptr) pd161 ))))(c←v23840, (* (( (ptr) formal←c60676)+10) ), pd161);
      };
SOURCE(32732, 45)
   if ((err←v23912 != 0)) {
SOURCE(32748, 29)
      var←c57572 = (* (( (ptr) (* (( (ptr) gf←c60644)+169)/* var←c54980 */  ))+4) );
      var←c57604 = (word) err←v23912;
      (void) (XR←MonitorExit(c←v23840));
      goto lab←L100134;
      };
SOURCE(32029, 748)
   (void) (XR←MonitorExit(c←v23840));
   return;
   /* c2c skipped dead code */ 
   lab←L100134: ;
SOURCE(32748, 29)
   {
      word var←c0711;
      var←c0711 = var←c57604;
      (void) XR←RaiseError(var←c57572, (word) &var←c0711);
      };
   }

static void MyDeliver←P7224(formal←c0719, data←v44396, formal←c60708)
   word formal←c0719;
   word data←v44396;
   word formal←c60708;
   {
   word newFont←v44440;
   word delta←v44468;
   word text←v44496;
   word startPos←v44524;
   word length←v44552;
   word more←v44580;
   formal←c60708 = (formal←c60708 - 44);
   /* MyDeliver: */ 
SOURCE(32852, 30)
SOURCE(32852, 30)
   newFont←v44440 = 0;
SOURCE(32852, 30)
   delta←v44468 = 0;
SOURCE(32852, 30)
   text←v44496 = 0;
SOURCE(32852, 30)
   startPos←v44524 = 0;
SOURCE(32852, 30)
   length←v44552 = 2147483647;
SOURCE(32852, 30)
   more←v44580 = 0;
SOURCE(32884, 8)
   text←v44496 = (* (( (ptr) formal←c60708)+8) );
   /* removed bogus assignment */ 
   /* removed tail goto */ 
   (*  (ptr) formal←c0719 ) = newFont←v44440;
   (* (( (ptr) formal←c0719)+1) ) = delta←v44468;
   (* (( (ptr) formal←c0719)+2) ) = text←v44496;
   (* (( (ptr) formal←c0719)+3) ) = startPos←v44524;
   (* (( (ptr) formal←c0719)+4) ) = length←v44552;
   (* (( (ptr) formal←c0719)+5) ) = more←v44580;
   return;
   }

static word AppendBigEndianCARD32←P4380(t←v16468, c←v16496)
   word t←v16468;
   word c←v16496;
   {
   register ptr gf←c60740 =  (ptr) &globalframe;
   word var←c16552;
   word f0←v24084;
   word f1←v24112;
   word f2←v24140;
   word f3←v24168;
   /* AppendBigEndianCARD32: */ 
SOURCE(32978, 352)
SOURCE(33076, 14)
   f3←v24168 = (c←v16496 & 0377);
SOURCE(33092, 10)
   c←v16496 = ((word) c←v16496 >> 8);
SOURCE(33104, 14)
   f2←v24140 = (c←v16496 & 0377);
SOURCE(33120, 10)
   c←v16496 = ((word) c←v16496 >> 8);
SOURCE(33132, 14)
   f1←v24112 = (c←v16496 & 0377);
SOURCE(33148, 10)
   c←v16496 = ((word) c←v16496 >> 8);
SOURCE(33160, 14)
   f0←v24084 = (c←v16496 & 0377);
SOURCE(33176, 34)
   {
      word pd162;
      pd162 = (* (( (ptr) (* (( (ptr) gf←c60740)+171)/* var←c56324 */  ))+11) );
      t←v16468 = (word) ( *( (fPt) ((*  (ptr) pd162 ))))(t←v16468, f0←v24084, pd162);
      };
SOURCE(33212, 34)
   {
      word pd163;
      pd163 = (* (( (ptr) (* (( (ptr) gf←c60740)+171)/* var←c56324 */  ))+11) );
      t←v16468 = (word) ( *( (fPt) ((*  (ptr) pd163 ))))(t←v16468, f1←v24112, pd163);
      };
SOURCE(33248, 34)
   {
      word pd164;
      pd164 = (* (( (ptr) (* (( (ptr) gf←c60740)+171)/* var←c56324 */  ))+11) );
      t←v16468 = (word) ( *( (fPt) ((*  (ptr) pd164 ))))(t←v16468, f2←v24140, pd164);
      };
SOURCE(33284, 34)
   {
      word pd165;
      pd165 = (* (( (ptr) (* (( (ptr) gf←c60740)+171)/* var←c56324 */  ))+11) );
      t←v16468 = (word) ( *( (fPt) ((*  (ptr) pd165 ))))(t←v16468, f3←v24168, pd165);
      };
SOURCE(33320, 10)
   return(t←v16468);
   }

static void PolyText8←P4440(c←v16624, formal←c0992, formal←c0993, formal←c0994, deliver←v16736, data←v16764, formal←c0995)
   word c←v16624;
   word formal←c0992;
   W2 formal←c0993;
   word formal←c0994;
   word deliver←v16736;
   word data←v16764;
   word formal←c0995;
   {
   W14 var←c60772;
   /* declaration of drawable←v16652 skipped */ 
   /* declaration of pos←v16680 skipped */ 
   /* declaration of gc←v16708 skipped */ 
   /* declaration of details←v16792 skipped */ 
   register ptr gf←c60804 =  (ptr) &globalframe;
   /* declaration of var←c57636 skipped */ 
   word maxLeng←v24240;
   /* declaration of buffer←v24268 skipped */ 
   word newFont←v24296 = 0;
   word firstOtherFont←v24324 = 0;
   /* declaration of lastOtherFont←v24352 skipped */ 
   word newFonts←v24380 = 0;
   word delta←v24408 = 0;
   word text←v24436 = 0;
   word startPos←v24464 = 0;
   word length←v24492 = 0;
   /* declaration of n←v24520 skipped */ 
   word more←v24548;
   (* (( (ptr) &var←c60772)+4)/* drawable←v16652 */  ) = formal←c0992;
   (*  (W2Pt) (( (ptr) &var←c60772)+5)/* pos←v16680 */  ) = formal←c0993;
   (* (( (ptr) &var←c60772)+7)/* gc←v16708 */  ) = formal←c0994;
   (* (( (ptr) &var←c60772)+8)/* details←v16792 */  ) = formal←c0995;
   /* PolyText8: */ 
SOURCE(33336, 2623)
   {
      word tmpAddr166;
      tmpAddr166 = (word) (( (ptr) &var←c60772)+9)/* var←c57636 */ ;
      (*  (ptr) tmpAddr166 ) = ( ((word)  (fPt) EntryDoit←P7332) );
      (* (( (ptr) tmpAddr166) + 1) ) = 1;
      };
SOURCE(34027, 76)
   {
      word x167;
      maxLeng←v24240 = (x167 = ((* (( (ptr) (* (( (ptr) c←v16624)+16) ))+7) ) - 100),
         MIN((int)(word), x167, 32767));
      };
SOURCE(34105, 54)
   {
      word pd168;
      pd168 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+6) );
      (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd168 ))))(512, pd168);
      };
SOURCE(34186, 44)
   (* (( (ptr) &var←c60772)+12)/* lastOtherFont←v24352 */  ) = 0;
SOURCE(34459, 28)
   (* (( (ptr) &var←c60772)+13)/* n←v24520 */  ) = 0;
SOURCE(34501, 1359)
   lab←L100139: ;
SOURCE(34504, 108)
   {
      W6 var←c57668;
      (void) ( *( (fPt) ((*  (ptr) deliver←v16736 ))))((word) &var←c57668, data←v16764, deliver←v16736);
      more←v24548 = var←c57668.f5;
      length←v24492 = var←c57668.f4;
      startPos←v24464 = var←c57668.f3;
      text←v24436 = var←c57668.f2;
      delta←v24408 = var←c57668.f1;
      newFont←v24296 = var←c57668.f0;
      };
SOURCE(34614, 360)
   if ( ( (newFont←v24296 != 0) ? (newFont←v24296 != (* (( (ptr) &var←c60772)+12)/* lastOtherFont←v24352 */  )) : 0 ) ) {
SOURCE(34660, 316)
      {
         word id←v24748;
         word var←c57700;
         word base←v49148;
SOURCE(34662, 30)
         {
            word pd169;
            pd169 = (* (( (ptr) (* (( (ptr) gf←c60804)+169)/* var←c54980 */  ))+7) );
            id←v24748 = (word) ( *( (fPt) ((*  (ptr) pd169 ))))(newFont←v24296, pd169);
            };
SOURCE(34694, 44)
         base←v49148 = (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  );
         {
            word tc170;
            word idx171;
            if ((base←v49148 == 0)) {
               tc170 =  (word) 0;
               }
            else {
               tc170 =  (word)  (unsigned) (*  (hPt) base←v49148 );
               };
            var←c57700 = (
               idx171 = (word) tc170,
               BCK(idx171, 32768)
               );
            };
         if (( (int)var←c57700 >=  (int)(maxLeng←v24240 - 5))) {
SOURCE(34738, 4)
            goto lab←L100138;
            };
SOURCE(34744, 13)
         if ((id←v24748 == 0)) {
SOURCE(34757, 5)
            (void) XR←RaiseUnnamedError();
            };
SOURCE(34764, 45)
         {
            word pd172;
            pd172 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+11) );
            (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd172 ))))((* (( (ptr) &var←c60772)+11)
               /* buffer←v24268 */  ), 255, pd172);
            };
SOURCE(34811, 42)
         (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) AppendBigEndianCARD32←P4380((* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ), id←v24748)
         ;
SOURCE(34855, 23)
         (* (( (ptr) &var←c60772)+12)/* lastOtherFont←v24352 */  ) = newFont←v24296;
SOURCE(34881, 93)
         if ((firstOtherFont←v24324 == 0)) {
SOURCE(34909, 31)
            firstOtherFont←v24324 = newFont←v24296;
            }
         else {
SOURCE(34940, 34)
            {
               word var←c57732;
               var←c57732 = XR←NewObject(8, (* (( (ptr) gf←c60804)+12) ));
               (*  (ptr) var←c57732 ) = newFont←v24296;
               (* (( (ptr) var←c57732)+1) ) = newFonts←v24380;
               newFonts←v24380 = var←c57732;
               };
            };
         };
      };
SOURCE(34979, 56)
   {
      word pd173;
      word x174;
      word x175;
      pd173 = (* (( (ptr) (* (( (ptr) gf←c60804)+172)/* var←c57188 */  ))+14) );
      length←v24492 = (x175 = (x174 = ((word) ( *( (fPt) ((*  (ptr) pd173 ))))(text←v24436, pd173) - startPos←v24464),
            MAX((int)(word), x174, 0)),
         MIN((int)(word), length←v24492, x175));
      };
SOURCE(35038, 180)
   lab←L100143: ;
   if (( (int)delta←v24408 >  (int)127)) {
      }
   else {
      goto lab←L100141;
      };
   {
      word var←c57764;
      word base←v49100;
SOURCE(35059, 44)
      base←v49100 = (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  );
      {
         word tc176;
         word idx177;
         if ((base←v49100 == 0)) {
            tc176 =  (word) 0;
            }
         else {
            tc176 =  (word)  (unsigned) (*  (hPt) base←v49100 );
            };
         var←c57764 = (
            idx177 = (word) tc176,
            BCK(idx177, 32768)
            );
         };
      if (( (int)var←c57764 >=  (int)(maxLeng←v24240 - 2))) {
SOURCE(35103, 4)
         goto lab←L100142;
         };
SOURCE(35109, 43)
      {
         word pd178;
         pd178 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+11) );
         (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd178 ))))((* (( (ptr) &var←c60772)+11)
            /* buffer←v24268 */  ), 0, pd178);
         };
SOURCE(35154, 45)
      {
         word pd179;
         pd179 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+11) );
         (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd179 ))))((* (( (ptr) &var←c60772)+11)
            /* buffer←v24268 */  ), 127, pd179);
         };
SOURCE(35201, 17)
      delta←v24408 = (delta←v24408 - 127);
      };
   goto lab←L100143;
   lab←L100141: ;
   lab←L100142: ;
SOURCE(35229, 181)
   lab←L100147: ;
   if (( (int)delta←v24408 <  (int) (word) -128)) {
      }
   else {
      goto lab←L100145;
      };
   {
      word var←c57796;
      word base←v49052;
SOURCE(35251, 44)
      base←v49052 = (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  );
      {
         word tc180;
         word idx181;
         if ((base←v49052 == 0)) {
            tc180 =  (word) 0;
            }
         else {
            tc180 =  (word)  (unsigned) (*  (hPt) base←v49052 );
            };
         var←c57796 = (
            idx181 = (word) tc180,
            BCK(idx181, 32768)
            );
         };
      if (( (int)var←c57796 >=  (int)(maxLeng←v24240 - 2))) {
SOURCE(35295, 4)
         goto lab←L100146;
         };
SOURCE(35301, 43)
      {
         word pd182;
         pd182 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+11) );
         (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd182 ))))((* (( (ptr) &var←c60772)+11)
            /* buffer←v24268 */  ), 0, pd182);
         };
SOURCE(35346, 45)
      {
         word pd183;
         pd183 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+11) );
         (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd183 ))))((* (( (ptr) &var←c60772)+11)
            /* buffer←v24268 */  ), 128, pd183);
         };
SOURCE(35393, 17)
      delta←v24408 = (delta←v24408 + 128);
      };
   goto lab←L100147;
   lab←L100145: ;
   lab←L100146: ;
SOURCE(35421, 412)
   if (( (int)length←v24492 >  (int)0) || ( (int)delta←v24408 !=  (int)0)) {
SOURCE(35451, 382)
      lab←L100151: ;
SOURCE(35451, 382)
      {
         word pieceLength←v24792;
         word var←c57828;
         word base←v49004;
SOURCE(35454, 35)
         pieceLength←v24792 = (MIN((int)(word), 254, length←v24492));
SOURCE(35491, 56)
         base←v49004 = (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  );
         {
            word tc184;
            word idx185;
            if ((base←v49004 == 0)) {
               tc184 =  (word) 0;
               }
            else {
               tc184 =  (word)  (unsigned) (*  (hPt) base←v49004 );
               };
            var←c57828 = (
               idx185 = (word) tc184,
               BCK(idx185, 32768)
               );
            };
         if (( (int)var←c57828 >=  (int)((maxLeng←v24240 - pieceLength←v24792) - 2))) {
SOURCE(35547, 4)
            goto lab←L100150;
            };
SOURCE(35553, 53)
         {
            word pd186;
            pd186 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+11) );
            (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd186 ))))((* (( (ptr) &var←c60772)+11)
               /* buffer←v24268 */  ), BCK(pieceLength←v24792, 256), pd186);
            };
SOURCE(35608, 58)
         {
            word var←c57860;
            var←c57860 = (word) ToInt8Rep←P4200(delta←v24408);
            {
               word pd187;
               pd187 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+11) );
               (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd187 ))))((* (( (ptr) &var←c60772)+11)
                  /* buffer←v24268 */  ), var←c57860, pd187);
               };
            };
SOURCE(35668, 64)
         {
            word pd188;
            pd188 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+10) );
            (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd188 ))))((* (( (ptr) &var←c60772)+11)
               /* buffer←v24268 */  ), text←v24436, startPos←v24464, BCK(pieceLength←v24792, 32768), pd188);
            };
SOURCE(35734, 33)
         startPos←v24464 = (startPos←v24464 + pieceLength←v24792);
SOURCE(35769, 29)
         length←v24492 = (length←v24492 - pieceLength←v24792);
SOURCE(35800, 18)
         if (( (int)length←v24492 <=  (int)0)) {
SOURCE(35818, 4)
            goto lab←L100150;
            };
SOURCE(35824, 9)
         delta←v24408 = 0;
         };
      goto lab←L100151;
      lab←L100150: ;
      };
SOURCE(35846, 14)
   if ((0 == more←v24548)) {
SOURCE(35860, 4)
      goto lab←L100138;
      };
   goto lab←L100139;
   lab←L100138: ;
SOURCE(35875, 26)
   {
      word var←c57892;
      word base←v48956;
      base←v48956 = (* (( (ptr) &var←c60772)+11)/* buffer←v24268 */  );
      {
         word tc189;
         word idx190;
         if ((base←v48956 == 0)) {
            tc189 =  (word) 0;
            }
         else {
            tc189 =  (word)  (unsigned) (*  (hPt) base←v48956 );
            };
         var←c57892 = (
            idx190 = (word) tc189,
            BCK(idx190, 32768)
            );
         };
      (* (( (ptr) &var←c60772)+13)/* n←v24520 */  ) = var←c57892;
      };
SOURCE(35903, 24)
   if (( (int)(* (( (ptr) &var←c60772)+13)/* n←v24520 */  ) >  (int)0)) {
SOURCE(35915, 12)
      (void) EntryDoit←P7332(c←v16624, (word) (( (bPt) &var←c60772)+36)/* var←c57636 */ );
      };
SOURCE(35929, 30)
   {
      word pd191;
      pd191 = (* (( (ptr) (* (( (ptr) gf←c60804)+171)/* var←c56324 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd191 ))))((* ((( (ptr) &var←c60772)+11)/* buffer←v24268 */ ) ), pd191);
      };
   }

static void EntryDoit←P7332(c←v24624, formal←c60868)
   word c←v24624;
   word formal←c60868;
   {
   register ptr gf←c60836 =  (ptr) &globalframe;
   word var←c58084;
   word var←c58116;
   word err←v24836 = 0;
   word gcid←v24864;
   formal←c60868 = (formal←c60868 - 36);
   /* EntryDoit: */ 
SOURCE(33487, 535)
   (void) (XR←MonitorEntry(c←v24624));
SOURCE(33552, 52)
   gcid←v24864 = (word) UseGContext←P1560(c←v24624, (* (( (ptr) formal←c60868)+4) ), (* (( (ptr) formal←c60868)+7) ), (* (( (ptr) formal←c60868)+8)
       ));
SOURCE(33606, 26)
   {
      word pd192;
      pd192 = (* (( (ptr) (* (( (ptr) gf←c60836)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd192 ))))(c←v24624, 74, 0, (IOP2( / ,  (int)((* (( (ptr) formal←c60868)+13) ) + 3),  (int)4)
          + 4), pd192);
      };
SOURCE(33634, 25)
   (void) BPutDrawable←P300(c←v24624, (* (( (ptr) formal←c60868)+4) ));
SOURCE(33662, 15)
   (void) BPut32←P240(c←v24624, gcid←v24864);
SOURCE(33680, 17)
   (void) BPutPoint←P480(c←v24624, (*  (W2Pt) (( (ptr) formal←c60868)+5) ));
SOURCE(33699, 71)
   {
      word var←c57924;
      word var←c57988;
      {
         word text←v48860;
         text←v48860 = (* (( (ptr) formal←c60868)+11) );
         var←c57924 = text←v48860;
         };
      {
         word var←c58020;
         word base←v48908;
         base←v48908 = (* (( (ptr) formal←c60868)+11) );
         {
            word tc193;
            word idx194;
            if ((base←v48908 == 0)) {
               tc193 =  (word) 0;
               }
            else {
               tc193 =  (word)  (unsigned) (*  (hPt) base←v48908 );
               };
            var←c58020 = (
               idx194 = (word) tc193,
               BCK(idx194, 32768)
               );
            };
         var←c57988 = var←c58020;
         };
      {
         word pd195;
         pd195 = (* (( (ptr) (* (( (ptr) gf←c60836)+166)/* var←c54596 */  ))+38) );
         (void) ( *( (fPt) ((*  (ptr) pd195 ))))(c←v24624, var←c57924, 0, var←c57988, pd195);
         };
      };
SOURCE(33772, 26)
   {
      word var←c58052;
      {
         word pd196;
         pd196 = (* (( (ptr) (* (( (ptr) gf←c60836)+166)/* var←c54596 */  ))+5) );
         var←c58052 = (word) ( *( (fPt) ((*  (ptr) pd196 ))))((* ((( (ptr) formal←c60868)+13)) ), pd196);
         };
      {
         word pd197;
         pd197 = (* (( (ptr) (* (( (ptr) gf←c60836)+166)/* var←c54596 */  ))+23) );
         (void) ( *( (fPt) ((*  (ptr) pd197 ))))(c←v24624, var←c58052, pd197);
         };
      };
SOURCE(33851, 53)
   {
      word pd198;
      pd198 = (* (( (ptr) (* (( (ptr) gf←c60836)+166)/* var←c54596 */  ))+65) );
      err←v24836 = (word) ( *( (fPt) ((*  (ptr) pd198 ))))(c←v24624, (* (( (ptr) formal←c60868)+8) ), pd198);
      };
SOURCE(33906, 66)
   if (((* (( (ptr) formal←c60868)+12) ) != 0)) {
SOURCE(33934, 38)
      {
         word gc←v48384;
         word font←v48412;
         gc←v48384 = (* (( (ptr) formal←c60868)+7) );
         font←v48412 = (* (( (ptr) formal←c60868)+12) );
         {
            word id←v48444;
            {
               word pd199;
               pd199 = (* (( (ptr) (* (( (ptr) gf←c60836)+169)/* var←c54980 */  ))+7) );
               id←v48444 = (word) ( *( (fPt) ((*  (ptr) pd199 ))))(font←v48412, pd199);
               };
SOURCE(7891, 13)
            if ((id←v48444 == 0)) {
SOURCE(7904, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(7911, 26)
            {
               word gc←v48488;
               word value←v48516;
               gc←v48488 = gc←v48384;
               value←v48516 = id←v48444;
SOURCE(7512, 21)
               (* (( (ptr) gc←v48488)+16) ) = value←v48516;
SOURCE(7536, 132)
               if (((* (( (ptr) gc←v48488)+49) ) != value←v48516) ||  ! ((* (( (bPt) gc←v48488)+137) ) & 02)) {
SOURCE(7646, 22)
                  (* (( (ptr) gc←v48488) + 1) ) |= 131072;
                  };
               };
SOURCE(7939, 37)
            (* (( (ptr) gc←v48384)+69) ) = font←v48412;
SOURCE(8000, 38)
            (* (( (ptr) gc←v48384)+70) ) = font←v48412;
SOURCE(8040, 24)
            (* (( (ptr) gc←v48384) + 1) ) &= 4294836223;
SOURCE(8067, 20)
            (* (( (ptr) gc←v48384)+49) ) = id←v48444;
SOURCE(8090, 27)
            (* (( (ptr) gc←v48384) + 34) ) |= 131072;
            };
         };
      };
SOURCE(33977, 45)
   if ((err←v24836 != 0)) {
SOURCE(33993, 29)
      var←c58084 = (* (( (ptr) (* (( (ptr) gf←c60836)+169)/* var←c54980 */  ))+4) );
      var←c58116 = (word) err←v24836;
      (void) (XR←MonitorExit(c←v24624));
      goto lab←L100156;
      };
SOURCE(33487, 535)
   (void) (XR←MonitorExit(c←v24624));
   return;
   /* c2c skipped dead code */ 
   lab←L100156: ;
SOURCE(33993, 29)
   {
      word var←c0779;
      var←c0779 = var←c58116;
      (void) XR←RaiseError(var←c58084, (word) &var←c0779);
      };
   }

static void DrawString16←P4500(c←v16864, formal←c0996, formal←c0997, formal←c0998, formal←c0999, formal←c01000, formal←c01001)
   word c←v16864;
   word formal←c0996;
   W2 formal←c0997;
   word formal←c0998;
   word formal←c0999;
   word formal←c01000;
   word formal←c01001;
   {
   W14 var←c60900;
   /* declaration of drawable←v16892 skipped */ 
   /* declaration of pos←v16920 skipped */ 
   /* declaration of gc←v16948 skipped */ 
   /* declaration of s←v16976 skipped */ 
   /* declaration of delta←v17004 skipped */ 
   /* declaration of details←v17032 skipped */ 
   register ptr gf←c60932 =  (ptr) &globalframe;
   /* declaration of var←c58148 skipped */ 
   /* declaration of leng←v24908 skipped */ 
   (* (( (ptr) &var←c60900)+4)/* drawable←v16892 */  ) = formal←c0996;
   (*  (W2Pt) (( (ptr) &var←c60900)+5)/* pos←v16920 */  ) = formal←c0997;
   (* (( (ptr) &var←c60900)+7)/* gc←v16948 */  ) = formal←c0998;
   (* (( (ptr) &var←c60900)+8)/* s←v16976 */  ) = formal←c0999;
   (* (( (ptr) &var←c60900)+9)/* delta←v17004 */  ) = formal←c01000;
   (* (( (ptr) &var←c60900)+10)/* details←v17032 */  ) = formal←c01001;
   /* DrawString16: */ 
SOURCE(35965, 1125)
   {
      word tmpAddr200;
      tmpAddr200 = (word) (( (ptr) &var←c60900)+11)/* var←c58148 */ ;
      (*  (ptr) tmpAddr200 ) = ( ((word)  (fPt) EntryDoIt←P7488) );
      (* (( (ptr) tmpAddr200) + 1) ) = 1;
      };
SOURCE(36104, 26)
   {
      word pd201;
      pd201 = (* (( (ptr) (* (( (ptr) gf←c60932)+172)/* var←c57188 */  ))+14) );
      (* (( (ptr) &var←c60900)+13)/* leng←v24908 */  ) = (word) ( *( (fPt) ((*  (ptr) pd201 ))))((* ((( (ptr) &var←c60900)+8)/* s←v16976 */ ) ), pd201)
      ;
      };
SOURCE(36983, 32)
   if (( (int)(* (( (ptr) &var←c60900)+9)/* delta←v17004 */  ) >  (int)127) || ( (int)(* (( (ptr) &var←c60900)+9)/* delta←v17004 */  ) <  (int) (word) -128)) {
SOURCE(37015, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(37063, 27)
   if (( (int)(* (( (ptr) &var←c60900)+13)/* leng←v24908 */  ) >  (int)0)) {
SOURCE(37078, 12)
      (void) EntryDoIt←P7488(c←v16864, (word) (( (bPt) &var←c60900)+44)/* var←c58148 */ );
      };
   }

static void EntryDoIt←P7488(c←v25012, formal←c60996)
   word c←v25012;
   word formal←c60996;
   {
   register ptr gf←c60964 =  (ptr) &globalframe;
   word var←c58212;
   word var←c58244;
   word err←v25040 = 0;
   word gcid←v25068;
   word pieceStart←v25096 = 0;
   word n←v25124;
   word len←v25152;
   formal←c60996 = (formal←c60996 - 44);
   /* EntryDoIt: */ 
SOURCE(36132, 846)
   (void) (XR←MonitorEntry(c←v25012));
SOURCE(36197, 52)
   gcid←v25068 = (word) UseGContext←P1560(c←v25012, (* (( (ptr) formal←c60996)+4) ), (* (( (ptr) formal←c60996)+7) ), (* (( (ptr) formal←c60996)+10)
       ));
SOURCE(36285, 48)
   {
      word x202;
      word x203;
      len←v25152 = (x202 = (* (( (ptr) formal←c60996)+13) ),
         x203 = IOP2( / ,  (int)(* (( (ptr) (* (( (ptr) c←v25012)+16) ))+7) ),  (int)3),
         MIN((int)(word), x202, x203));
      };
SOURCE(36353, 31)
   if (( (int)IOP2( % ,  (int)len←v25152,  (int)2) !=  (int)0)) {
SOURCE(36373, 11)
      len←v25152 = (len←v25152 - 1);
      };
SOURCE(36401, 29)
   n←v25124 = (IOP2( * ,  (int)IOP2( / ,  (int)(len←v25152 + 507),  (int)508),  (int)2) + len←v25152);
SOURCE(36432, 26)
   {
      word pd204;
      pd204 = (* (( (ptr) (* (( (ptr) gf←c60964)+166)/* var←c54596 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd204 ))))(c←v25012, 75, 0, (IOP2( / ,  (int)(n←v25124 + 3),  (int)4) + 4), pd204);
      };
SOURCE(36460, 25)
   (void) BPutDrawable←P300(c←v25012, (* (( (ptr) formal←c60996)+4) ));
SOURCE(36488, 15)
   (void) BPut32←P240(c←v25012, gcid←v25068);
SOURCE(36506, 17)
   (void) BPutPoint←P480(c←v25012, (*  (W2Pt) (( (ptr) formal←c60996)+5) ));
SOURCE(36525, 286)
   lab←L100160: ;
   if (( (int)len←v25152 >  (int)1)) {
      }
   else {
      goto lab←L100158;
      };
   {
      word pieceLeng←v25196;
      word pieceLengBytes←v25224;
SOURCE(36566, 32)
      pieceLeng←v25196 = IOP2( / ,  (int)(MIN((int)(word), len←v25152, 508)),  (int)2);
SOURCE(36600, 33)
      pieceLengBytes←v25224 = IOP2( * ,  (int)pieceLeng←v25196,  (int)2);
SOURCE(36635, 19)
      (void) BPut8←P120(c←v25012, BCK(pieceLeng←v25196, 256));
SOURCE(36656, 26)
      {
         word var←c58180;
         var←c58180 = (word) ToInt8Rep←P4200((* ((( (ptr) formal←c60996)+9)) ));
         (void) BPut8←P120(c←v25012, var←c58180);
         };
SOURCE(36685, 42)
      {
         word pd205;
         pd205 = (* (( (ptr) (* (( (ptr) gf←c60964)+166)/* var←c54596 */  ))+38) );
         (void) ( *( (fPt) ((*  (ptr) pd205 ))))(c←v25012, (* (( (ptr) formal←c60996)+8) ), pieceStart←v25096, pieceLengBytes←v25224, pd205)
         ;
         };
SOURCE(36730, 26)
      len←v25152 = (len←v25152 - pieceLengBytes←v25224);
SOURCE(36760, 40)
      pieceStart←v25096 = (pieceStart←v25096 + pieceLengBytes←v25224);
SOURCE(36802, 9)
      (* (( (ptr) formal←c60996)+9) ) = 0;
      };
   goto lab←L100160;
   lab←L100158: ;
SOURCE(36822, 13)
   {
      word pd206;
      pd206 = (* (( (ptr) (* (( (ptr) gf←c60964)+166)/* var←c54596 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd206 ))))(c←v25012, n←v25124, pd206);
      };
SOURCE(36878, 53)
   {
      word pd207;
      pd207 = (* (( (ptr) (* (( (ptr) gf←c60964)+166)/* var←c54596 */  ))+65) );
      err←v25040 = (word) ( *( (fPt) ((*  (ptr) pd207 ))))(c←v25012, (* (( (ptr) formal←c60996)+10) ), pd207);
      };
SOURCE(36933, 45)
   if ((err←v25040 != 0)) {
SOURCE(36949, 29)
      var←c58212 = (* (( (ptr) (* (( (ptr) gf←c60964)+169)/* var←c54980 */  ))+4) );
      var←c58244 = (word) err←v25040;
      (void) (XR←MonitorExit(c←v25012));
      goto lab←L100161;
      };
SOURCE(36132, 846)
   (void) (XR←MonitorExit(c←v25012));
   return;
   /* c2c skipped dead code */ 
   lab←L100161: ;
SOURCE(36949, 29)
   {
      word var←c0800;
      var←c0800 = var←c58244;
      (void) XR←RaiseError(var←c58212, (word) &var←c0800);
      };
   }

static void ImageString16←P4560(c←v17092, drawable←v17120, pos←v17148, gc←v17176, s←v17204, details←v17232)
   word c←v17092;
   word drawable←v17120;
   W2 pos←v17148;
   word gc←v17176;
   word s←v17204;
   word details←v17232;
   {
   register ptr gf←c61028 =  (ptr) &globalframe;
   word var←c58276;
   word var←c58308;
   word var←c58340;
   word var←c58372;
   word n←v25268;
   /* ImageString16: */ 
SOURCE(37096, 563)
   (void) (XR←MonitorEntry(c←v17092));
SOURCE(37226, 25)
   {
      word pd208;
      pd208 = (* (( (ptr) (* (( (ptr) gf←c61028)+172)/* var←c57188 */  ))+14) );
      n←v25268 = (word) ( *( (fPt) ((*  (ptr) pd208 ))))(s←v17204, pd208);
      };
SOURCE(37253, 47)
   if (( (int)n←v25268 >=  (int)255)) {
SOURCE(37275, 25)
      var←c58276 = (word) (( (bPt) gf←c61028)+92)/* var←c52068 */ ;
      (void) (XR←MonitorExit(c←v17092));
      goto lab←L100163;
      };
SOURCE(37302, 45)
   if (( (int)IOP2( % ,  (int)n←v25268,  (int)2) !=  (int)0)) {
SOURCE(37322, 25)
      var←c58308 = (word) (( (bPt) gf←c61028)+92)/* var←c52068 */ ;
      (void) (XR←MonitorExit(c←v17092));
      goto lab←L100164;
      };
SOURCE(37349, 310)
   if (( (int)n←v25268 >  (int)0)) {
SOURCE(37361, 300)
      {
         word err←v25312 = 0;
         word gcid←v25340;
SOURCE(37386, 52)
         gcid←v25340 = (word) UseGContext←P1560(c←v17092, drawable←v17120, gc←v17176, details←v17232);
SOURCE(37440, 28)
         {
            word pd209;
            word idx210;
            pd209 = (* (( (ptr) (* (( (ptr) gf←c61028)+166)/* var←c54596 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd209 ))))(c←v17092, 77, (
                  idx210 = (word) IOP2( / ,  (int)n←v25268,  (int)2),
                  BCK(idx210, 256)
                  ), (IOP2( / ,  (int)(n←v25268 + 3),  (int)4) + 4), pd209);
            };
SOURCE(37470, 25)
         (void) BPutDrawable←P300(c←v17092, drawable←v17120);
SOURCE(37498, 15)
         (void) BPut32←P240(c←v17092, gcid←v25340);
SOURCE(37516, 17)
         (void) BPutPoint←P480(c←v17092, pos←v17148);
SOURCE(37535, 22)
         {
            word pd211;
            pd211 = (* (( (ptr) (* (( (ptr) gf←c61028)+166)/* var←c54596 */  ))+37) );
            (void) ( *( (fPt) ((*  (ptr) pd211 ))))(c←v17092, s←v17204, 0, 2147483647, pd211);
            };
SOURCE(37559, 53)
         {
            word pd212;
            pd212 = (* (( (ptr) (* (( (ptr) gf←c61028)+166)/* var←c54596 */  ))+65) );
            err←v25312 = (word) ( *( (fPt) ((*  (ptr) pd212 ))))(c←v17092, details←v17232, pd212);
            };
SOURCE(37614, 45)
         if ((err←v25312 != 0)) {
SOURCE(37630, 29)
            var←c58340 = (* (( (ptr) (* (( (ptr) gf←c61028)+169)/* var←c54980 */  ))+4) );
            var←c58372 = (word) err←v25312;
            (void) (XR←MonitorExit(c←v17092));
            goto lab←L100165;
            };
         };
      };
SOURCE(37096, 563)
   (void) (XR←MonitorExit(c←v17092));
   return;
   /* c2c skipped dead code */ 
   lab←L100163: ;
SOURCE(37275, 25)
   (void) XR←RaiseError(var←c58276, 0);
   lab←L100164: ;
SOURCE(37322, 25)
   (void) XR←RaiseError(var←c58308, 0);
   lab←L100165: ;
SOURCE(37630, 29)
   {
      word var←c0814;
      var←c0814 = var←c58372;
      (void) XR←RaiseError(var←c58340, (word) &var←c0814);
      };
   }

static void NoName←Q12120(formal←c0819, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0819;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   register ptr gf←c0911 =  (ptr) &globalframe;
   if ((formal←c200017 == XR←Unwind)) {
      (void) (XR←MonitorExit(* (( (ptr) formal←c200016)+4) ));
      }
   else {
      if (((formal←c200017 == (* (( (ptr) (* (( (ptr) gf←c0911)+170)/* var←c55812 */  ))+5) )) || (formal←c200017 == (* (( (ptr) (* (
            ( (ptr) gf←c0911)+170)/* var←c55812 */  ))+4) ))) || (formal←c200017 == XR←Uncaught)) {
SOURCE(18432, 9)
         (*  (ptr) formal←c0819 ) = 2;
         (* (( (ptr) formal←c0819)+1) ) = 5;
         return;
         };
      };
   (*  (ptr) formal←c0819 ) = 0;
   (* (( (ptr) formal←c0819)+1) ) = 0;
   return;
   }

static void NoName←Q12180(formal←c0824, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0824;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
SOURCE(6801, 9)
   (*  (ptr) formal←c0824 ) = 2;
   (* (( (ptr) formal←c0824)+1) ) = 3;
   return;
   /* c2c skipped dead code */ 
   }

static void NoName←Q12240(formal←c0829, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0829;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
SOURCE(6700, 9)
   (*  (ptr) formal←c0829 ) = 2;
   (* (( (ptr) formal←c0829)+1) ) = 3;
   return;
   /* c2c skipped dead code */ 
   }

static void NoName←Q12300(formal←c0834, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0834;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   if ((formal←c200005 == XR←Unwind)) {
      (void) (XR←MonitorExit(* (( (ptr) formal←c200004)+4) ));
      };
   (*  (ptr) formal←c0834 ) = 0;
   (* (( (ptr) formal←c0834)+1) ) = 0;
   return;
   }

static void NoName←Q12360(formal←c0839, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0839;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
SOURCE(5928, 10)
   (*  (ptr) formal←c0839 ) = 2;
   (* (( (ptr) formal←c0839)+1) ) = 2;
   return;
   /* c2c skipped dead code */ 
   }

/* file: XlImplGC, module: XlImplGC, compiled at: September 14, 1993 4:27:28 pm PDT */ 
extern void XR←install←XlImplGC() {
   NoName←Q11760();
   }
extern void XR←run←XlImplGC() { XR←Start(&globalframe); }