/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: March 5, 1992 10:50:57 am PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: RefPrintImpl, module: RefPrintImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3323689590,2542684210] RefPrintImpl";
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; W2 r;} W10;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
#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 )
static void NoName←Q1620();
static void RefPrintImpl←P0();
static word DesparatePrintReferent←P60();
static void PrintWord←P120();
static word PrintReferent←P180();
static word PrintREF←P240();
static void Inner←P1044();
static void Register←P300();
static void RegisterFallback←P360();
static void UnRegister←P420();
static word EachPair←P1200();
static word UnRegisterFallbacks←P480();
static word ATOMPrinter←P540();
static word REFLongNumberPrinter←P600();
static void PrintRopeLiteral←P660();
static word Action←P1308();
static word ROPEPrinter←P720();
static word LORAPrinter←P780();
static void RefPrintCommand←P840();
static word NoName←Q1680();
static void Inner←P1512();
static void NoName←Q1740();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[20];} string3 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\004\003\000"};
static struct {unsigned f; char r[4];} string5 = {65540, "\251\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string7 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[16];} string8 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\227\306\253\223\300\107\163\142\023\103\260\000\000"};
static struct {unsigned f; char r[96];} string10 = {6029408, "\260\006\005\146\151\162\163\164\262\260\007\006\163\164\162\145\141\155\216\257\300\015\277\004\146\300\034\367\146\045\112\064\004\003\162\145\146\217\261\260\003\002\157\153\232\261\005\004\162\145\163\164\214\262\260\007\006\163\164\162\145\141\155\216\257\300\015\277\004\146\300\034\367\146\045\112\064\004\003\162\145\146\217\261\260\003\002\157\153\232\261\261\000\000\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\306\033\172\166\300\227\216\110\062\100\340\000\000"};
static struct {unsigned f; char r[40];} string13 = {2490408, "\262\260\007\006\163\164\162\145\141\155\216\257\300\015\277\004\146\300\034\367\146\045\112\064\004\003\162\145\146\217\261\260\003\002\157\153\232\261\000"};
static struct {unsigned f; char r[4];} string14 = {65540, " \000\000"};
static struct {unsigned f; char r[4];} string15 = {65540, "]\000\000"};
static struct {unsigned f; char r[8];} string16 = {262152, "%08x\000\000\000"};
static struct {unsigned f; char r[4];} string17 = {131076, "pf\000"};
static struct {unsigned f; char r[4];} string18 = {196612, "NIL"};
static struct {unsigned f; char r[16];} string19 = {983056, "RefPrintControl"};
static struct {unsigned f; char r[8];} string20 = {458760, "TC%g%g["};
static struct {unsigned f; char r[12];} string21 = {655372, "(%l%08x%l)\000"};
static struct {unsigned f; char r[4];} string22 = {65540, "b\000\000"};
static struct {unsigned f; char r[4];} string23 = {65540, "B\000\000"};
static struct {unsigned f; char r[4];} string24 = {131076, "↑=\000"};
static struct {unsigned f; char r[8];} string25 = {262152, "TRUE\000\000\000"};
static struct {unsigned f; char r[60];} string26 = {3866684, "args: [ -d depthLimit ] address\012Print the referent of a REF"};
static struct {unsigned f; char r[4];} string27 = {196612, "$%g"};
static struct {unsigned f; char r[12];} string28 = {524300, "RefPrint\000\000\000"};
static struct {unsigned f; char r[12];} string29 = {720908, "[lc[%08xH]]"};
static struct {unsigned f; char r[4];} string30 = {196612, "..."};
static struct {unsigned f; char r[4];} string31 = {4, "\000\000\000"};
static struct {unsigned f; char r[8];} string32 = {327688, "LIST[\000\000"};
static struct {unsigned f; char r[4];} string33 = {131076, ", \000"};
static struct {unsigned f; char r[4];} string34 = {65540, "a\000\000"};
static struct {unsigned f; char r[4];} string35 = {131076, "-d\000"};
static struct {unsigned f; char r[4];} string36 = {131076, "%l\000"};
static struct {unsigned f; char r[4];} string37 = {65540, "f\000\000"};
static struct {unsigned f; char r[4];} string38 = {196612, "%l\012"};
static struct {unsigned f; char r[4];} string39 = {65540, "F\000\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\306\033\172\166\300\227\216\110\062\100\164\000\000"};
static struct {unsigned f; char r[16];} string41 = {851981, "\006\003\040\001\044\001\100\130\010\000\004\032\001\000\000"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\373\225\000\071\300\362\156\307\320\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\311\235\133\064\300\165\175\234\175\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\255\053\300\023\300\142\135\315\105\100\150\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\144\364\322\150\300\206\136\277\046\100\150\000\000"};
static struct {unsigned f; char r[16];} string48 = {851984, "\257\300\277\374\326\303\300\302\136\022\175\100\150\000\000"};
static struct {unsigned f; char r[16];} string49 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string50 = {851984, "\257\300\223\215\300\016\300\070\141\304\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string51 = {851984, "\257\300\314\116\377\204\300\167\024\373\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string52 = {851984, "\257\300\027\377\335\126\300\373\132\315\077\100\150\000\000"};
static struct {
   word f0[48]; 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[12]; 
   } globalframe = {
   {0}, (word) RefPrintCommand←P840, 0, (word) LORAPrinter←P780, 
   0, (word) ROPEPrinter←P720, 0, (word) PrintRopeLiteral←P660, 
   0, (word) REFLongNumberPrinter←P600, 0, (word) ATOMPrinter←P540, 
   0, (word) UnRegisterFallbacks←P480, 0, (word) UnRegister←P420, 
   0, (word) RegisterFallback←P360, 0, (word) Register←P300, 
   0, (word) PrintREF←P240, 0, (word) PrintReferent←P180, 
   0, (word) PrintWord←P120, 0, (word) DesparatePrintReferent←P60, 
   0, (word) RefPrintImpl←P0, {0}
   };

static void NoName←Q1620()
   {
   register ptr gf←c0159 =  (ptr) &globalframe;
   word var←c20056;
   (* (( (ptr) gf←c0159)+12) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0159)+13) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0159)+14) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (* (( (ptr) gf←c0159)+15) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0159)+16) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string2);
   (* (( (ptr) gf←c0159)+18) ) = (word) XR←GetTypeIndexS((word) (&string9));
   (* (( (ptr) gf←c0159)+19) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0159)+20) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string2);
   (* (( (ptr) gf←c0159)+21) ) = (word) XR←GetTypeIndexS((word) (&string13));
   (*  (ptr) (( (bPt) gf←c0159)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0159)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0159)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0159)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0159)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0159)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+12) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0159)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0159)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0159)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0159)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0159)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0159)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+12) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0159)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0159)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0159)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0159)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0159)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0159)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0159)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0159)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0159)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+12) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0159)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0159)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0159)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0159)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0159)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0159)+16) ), (word) &string39);
   (void) XR←DeclareGlobalFrame((word) "RefPrintImpl", &globalframe, (word) XR←GetTypeIndex((word) &string40, 0, (word) &string41)
      , (word) (( (bPt) gf←c0159)+304)/* var←c18296 */ );
   var←c20056 = (word) XR←ImportInterface((word) "Commander", (word) XR←GetTypeIndexS((word) (&string42)), 3);
   (* (( (ptr) gf←c0159)+81)/* var←c18520 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 1310725);
   var←c20056 = (word) XR←ImportInterface((word) "CommanderOps", (word) XR←GetTypeIndexS((word) (&string43)), 14);
   (* (( (ptr) gf←c0159)+87)/* var←c19832 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 67634178);
   var←c20056 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string44)), 16);
   (* (( (ptr) gf←c0159)+86)/* var←c19512 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 67372289);
   var←c20056 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string45)), 43);
   (* (( (ptr) gf←c0159)+80)/* var←c18488 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 67896323);
   (void) XR←ImportProcS(var←c20056, 68163076);
   (void) XR←ImportProcS(var←c20056, 67901955);
   var←c20056 = (word) XR←ImportInterface((word) "Convert", (word) XR←GetTypeIndexS((word) (&string46)), 73);
   (* (( (ptr) gf←c0159)+84)/* var←c18872 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 67634946);
   var←c20056 = (word) XR←ImportInterface((word) "List", (word) XR←GetTypeIndexS((word) (&string47)), 28);
   (* (( (ptr) gf←c0159)+85)/* var←c19000 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 67899907);
   var←c20056 = (word) XR←ImportInterface((word) "SafeStorage", (word) XR←GetTypeIndexS((word) (&string48)), 27);
   (* (( (ptr) gf←c0159)+79)/* var←c18392 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 67375361);
   var←c20056 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string49)), 103);
   (* (( (ptr) gf←c0159)+82)/* var←c18648 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 528642);
   (void) XR←ImportProcS(var←c20056, 1063171);
   (void) XR←ImportProcS(var←c20056, 1071364);
   (void) XR←ImportProcS(var←c20056, 2111493);
   var←c20056 = (word) XR←ImportInterface((word) "CardTab", (word) XR←GetTypeIndexS((word) (&string50)), 12);
   (* (( (ptr) gf←c0159)+78)/* var←c18328 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 67634946);
   (void) XR←ImportProcS(var←c20056, 67635458);
   (void) XR←ImportProcS(var←c20056, 67896579);
   (void) XR←ImportProcS(var←c20056, 67896835);
   (void) XR←ImportProcS(var←c20056, 134742786);
   (void) XR←ImportProcS(var←c20056, 67371265);
   var←c20056 = (word) XR←ImportInterface((word) "ProcessProps", (word) XR←GetTypeIndexS((word) (&string51)), 6);
   (* (( (ptr) gf←c0159)+83)/* var←c18776 */  ) = var←c20056;
   (void) XR←ImportProcS(var←c20056, 524290);
   (void) XR←ImportProcS(var←c20056, 67371777);
   var←c20056 = (word) XR←ExportInterface((word) "RefPrint", (word) XR←GetTypeIndexS((word) (&string52)), 5);
   (* (( (ptr) gf←c0159)+88)/* var←c20088 */  ) = var←c20056;
   (void) XR←ExportProcS(var←c20056, (word) (( (bPt) gf←c0159)+264)/* var←c18136 */ , 524290);
   (void) XR←ExportProcS(var←c20056, (word) (( (bPt) gf←c0159)+256)/* var←c18104 */ , 262401);
   (void) XR←ExportProcS(var←c20056, (word) (( (bPt) gf←c0159)+248)/* var←c18072 */ , 262657);
   (void) XR←ExportProcS(var←c20056, (word) (( (bPt) gf←c0159)+280)/* var←c18200 */ , 67633922);
   (void) XR←ExportProcS(var←c20056, (word) (( (bPt) gf←c0159)+272)/* var←c18168 */ , 67634178);
   }

static void RefPrintImpl←P0(formal←c038, formal←c034)
   word formal←c038;
   word formal←c034;
   {
   register ptr gf←c20120 =  (ptr) &globalframe;
   /* RefPrintImpl: */ 
SOURCE(123, 6511)
SOURCE(301, 40)
   {
      word pd53;
      pd53 = (* (( (ptr) (* (( (ptr) gf←c20120)+78)/* var←c18328 */  ))+5) );
      (* (( (ptr) gf←c20120)+8)/* printers←v3056 */  ) = (word) ( *( (fPt) ((*  (ptr) pd53 ))))(17, pd53);
      };
SOURCE(2273, 26)
   (* (( (ptr) gf←c20120)+10)/* defaultDepthLimit←v3252 */  ) = 2;
SOURCE(6347, 63)
   {
      word var←c18360;
      {
         word pd54;
         pd54 = (* (( (ptr) (* (( (ptr) gf←c20120)+79)/* var←c18392 */  ))+21) );
         var←c18360 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))((* ((( (ptr) gf←c20120)+42)) ), pd54);
         };
      (void) Register←P300((word) (( (bPt) gf←c20120)+232)/* var←c18008 */ , var←c18360);
      };
SOURCE(6412, 77)
   {
      word var←c18424;
      {
         word var←c18456;
         {
            word pd55;
            pd55 = (* (( (ptr) (* (( (ptr) gf←c20120)+80)/* var←c18488 */  ))+30) );
            var←c18456 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) gf←c20120)+39) ), 0, 2147483647, pd55);
            };
         {
            word pd56;
            pd56 = (* (( (ptr) (* (( (ptr) gf←c20120)+79)/* var←c18392 */  ))+21) );
            var←c18424 = (word) ( *( (fPt) ((*  (ptr) pd56 ))))(var←c18456, pd56);
            };
         };
      (void) Register←P300((word) (( (bPt) gf←c20120)+208)/* var←c17912 */ , var←c18424);
      };
SOURCE(6491, 29)
   (void) RegisterFallback←P360((word) ((( (bPt) gf←c20120)+200)/* var←c17880 */ ));
SOURCE(6523, 111)
   {
      word pd57;
      pd57 = (* (( (ptr) (* (( (ptr) gf←c20120)+81)/* var←c18520 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd57 ))))((* (( (ptr) gf←c20120)+36) ), (word) (( (bPt) gf←c20120)+192)/* var←c17848 */ , (* (
            ( (ptr) gf←c20120)+34) ), 0, 1, pd57);
      };
   }

static word DesparatePrintReferent←P60(stream←v3964, maybeRef←v3992)
   word stream←v3964;
   word maybeRef←v3992;
   {
   register ptr gf←c20152 =  (ptr) &globalframe;
   word var←c4036;
   word nBytes←v5152 = 0;
   word pointerFree←v5180 = 0;
   word hdrPointer←v5208;
   /* DesparatePrintReferent: */ 
SOURCE(578, 785)
SOURCE(714, 59)
   hdrPointer←v5208 = (word) XR←PtrTest(maybeRef←v3992, (word) &nBytes←v5152, (word) &pointerFree←v5180);
SOURCE(775, 570)
   if ( ( (hdrPointer←v5208 != 0) ? ((hdrPointer←v5208 + 8) == maybeRef←v3992) : 0 ) ) {
SOURCE(838, 507)
      {
         word ref←v5252;
         word p←v5280;
         word type←v5308;
         word ordType←v5336;
SOURCE(840, 29)
         ref←v5252 = maybeRef←v3992;
SOURCE(871, 39)
         p←v5280 = maybeRef←v3992;
SOURCE(912, 66)
         {
            word pd58;
            pd58 = (* (( (ptr) (* (( (ptr) gf←c20152)+79)/* var←c18392 */  ))+21) );
            type←v5308 = (word) ( *( (fPt) ((*  (ptr) pd58 ))))(ref←v5252, pd58);
            };
SOURCE(980, 27)
         ordType←v5336 = BCK(type←v5308, 65536);
SOURCE(1009, 29)
         nBytes←v5152 = (nBytes←v5152 - 8);
SOURCE(1040, 91)
         {
            W2 var←c18552;
            W2 var←c18584;
            W2 var←c0185;
            var←c18552.f0 = 4;
            var←c18552.f1 = type←v5308;
            var←c18584.f0 = 11;
            if ((0 != pointerFree←v5180)) {
               var←c18584.f1 = (* (( (ptr) gf←c20152)+25) );
               }
            else {
               var←c18584.f1 = (* (( (ptr) gf←c20152)+39) );
               };
            (*  (ptr) (word) &var←c0185 ) = 0;
            (* (( (ptr) (word) &var←c0185) + 1) ) = 0;
            {
               word pd59;
               pd59 = (* (( (ptr) (* (( (ptr) gf←c20152)+82)/* var←c18648 */  ))+60) );
               (void) ( *( (fPt) ((*  (ptr) pd59 ))))(stream←v3964, (* (( (ptr) gf←c20152)+28) ), var←c18552, var←c18584, var←c0185, pd59)
               ;
               };
            };
SOURCE(1133, 162)
         lab←L100002: ;
         if (( (int)nBytes←v5152 >  (int)0)) {
            }
         else {
            goto lab←L100000;
            };
SOURCE(1153, 54)
         if ((maybeRef←v3992 != p←v5280)) {
SOURCE(1184, 23)
            {
               word pd60;
               pd60 = (* (( (ptr) (* (( (ptr) gf←c20152)+82)/* var←c18648 */  ))+93) );
               (void) ( *( (fPt) ((*  (ptr) pd60 ))))(stream←v3964, (* (( (ptr) gf←c20152)+22) ), 0, 2147483647, pd60);
               };
            };
SOURCE(1209, 34)
         (void) PrintWord←P120(stream←v3964, (*  (ptr) p←v5280 ), pointerFree←v5180);
SOURCE(1245, 19)
         p←v5280 = (p←v5280 + 4);
SOURCE(1266, 29)
         nBytes←v5152 = (nBytes←v5152 - 4);
         goto lab←L100002;
         lab←L100000: ;
SOURCE(1306, 23)
         {
            word pd61;
            pd61 = (* (( (ptr) (* (( (ptr) gf←c20152)+82)/* var←c18648 */  ))+93) );
            (void) ( *( (fPt) ((*  (ptr) pd61 ))))(stream←v3964, (* (( (ptr) gf←c20152)+23) ), 0, 2147483647, pd61);
            };
SOURCE(1331, 14)
         return(1);
         };
      };
SOURCE(1348, 15)
   return(0);
   }

static void PrintWord←P120(stream←v4096, value←v4124, refFree←v4152)
   word stream←v4096;
   word value←v4124;
   word refFree←v4152;
   {
   register ptr gf←c20184 =  (ptr) &globalframe;
   word nBytes←v5404 = 0;
   word pointerFree←v5432 = 0;
   word hdrPointer←v5460;
   /* PrintWord: */ 
SOURCE(1367, 355)
SOURCE(1487, 79)
   hdrPointer←v5460 =  ( (0 != refFree←v4152) ? 0 : (word) XR←PtrTest(value←v4124, (word) &nBytes←v5404, (word) &pointerFree←v5432)
    ) ;
SOURCE(1568, 154)
   if ( ( (hdrPointer←v5460 != 0) ? ((hdrPointer←v5460 + 8) == value←v4124) : 0 ) ) {
SOURCE(1630, 39)
      {
         word var←c18680;
         var←c18680 = (word) PrintREF←P240(stream←v4096, value←v4124);
         };
      }
   else {
SOURCE(1678, 44)
      {
         W2 var←c18712;
         var←c18712.f0 = 4;
         var←c18712.f1 = value←v4124;
         {
            word pd62;
            pd62 = (* (( (ptr) (* (( (ptr) gf←c20184)+82)/* var←c18648 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd62 ))))(stream←v4096, (* (( (ptr) gf←c20184)+24) ), var←c18712, pd62);
            };
         };
      };
   }

static word PrintReferent←P180(stream←v4212, ref←v4240)
   word stream←v4212;
   word ref←v4240;
   {
   register ptr gf←c20216 =  (ptr) &globalframe;
   word ok←v4300;
   word type←v5504;
   word ordType←v5532;
   word printer←v5560;
   /* PrintReferent: */ 
SOURCE(1728, 539)
SOURCE(1728, 539)
   ok←v4300 = 1;
SOURCE(1815, 66)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c20216)+79)/* var←c18392 */  ))+21) );
      type←v5504 = (word) ( *( (fPt) ((*  (ptr) pd63 ))))(ref←v4240, pd63);
      };
SOURCE(1883, 27)
   ordType←v5532 = BCK(type←v5504, 65536);
SOURCE(1912, 89)
   {
      W2 var←c065;
      word var←c0186;
      {
         word pd64;
         pd64 = (* (( (ptr) (* (( (ptr) gf←c20216)+78)/* var←c18328 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd64 ))))((word) &var←c065, (* (( (ptr) gf←c20216)+8)/* printers←v3056 */  ), ordType←v5532, pd64)
         ;
         };
      var←c0186 = var←c065.f1;
      printer←v5560 = XR←Narrow(var←c0186, (* (( (ptr) gf←c20216)+21) ));
      };
SOURCE(2003, 264)
   if ((printer←v5560 == 0)) {
SOURCE(2027, 128)
      {
         register word tail←v5616;
         tail←v5616 = (* (( (ptr) gf←c20216)+9)/* fallbacks←v3084 */  );
         lab←L100006: ;
         if ((tail←v5616 != 0)) {
            }
         else {
            goto lab←L100003;
            };
SOURCE(2110, 45)
         {
            word pd65;
            pd65 = (*  (ptr) tail←v5616 );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd65 ))))(stream←v4212, ref←v4240, pd65))) {
SOURCE(2142, 13)
               return(1);
               };
            };
         tail←v5616 = (* (( (ptr) tail←v5616)+1) );
         goto lab←L100006;
         lab←L100003: ;
         };
SOURCE(2174, 55)
SOURCE(2176, 53)
      return((word) DesparatePrintReferent←P60(stream←v4212, ref←v4240));
      }
   else {
SOURCE(2239, 28)
      {
         word pd66;
         pd66 = (*  (ptr) printer←v5560 );
         return((word) ( *( (fPt) ((*  (ptr) pd66 ))))(stream←v4212, ref←v4240, pd66));
         };
      };
   }

static word PrintREF←P240(formal←c0197, formal←c0198)
   word formal←c0197;
   word formal←c0198;
   {
   W10 var←c20248;
   /* declaration of stream←v4444 skipped */ 
   /* declaration of ref←v4472 skipped */ 
   register ptr gf←c20280 =  (ptr) &globalframe;
   /* declaration of ok←v4528 skipped */ 
   /* declaration of var←c18744 skipped */ 
   (* (( (ptr) &var←c20248)+4)/* stream←v4444 */  ) = formal←c0197;
   (* (( (ptr) &var←c20248)+5)/* ref←v4472 */  ) = formal←c0198;
   /* PrintREF: */ 
SOURCE(2423, 1021)
   {
      word tmpAddr67;
      tmpAddr67 = (word) (( (ptr) &var←c20248)+7)/* var←c18744 */ ;
      (*  (ptr) tmpAddr67 ) = ( ((word)  (fPt) Inner←P1044) );
      (* (( (ptr) tmpAddr67) + 1) ) = 1;
      };
SOURCE(2423, 1021)
   (* (( (ptr) &var←c20248)+6)/* ok←v4528 */  ) = 1;
SOURCE(2505, 939)
   if (((* (( (ptr) &var←c20248)+5)/* ref←v4472 */  ) == 0)) {
SOURCE(2525, 26)
      {
         word pd68;
         pd68 = (* (( (ptr) (* (( (ptr) gf←c20280)+82)/* var←c18648 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd68 ))))((* (( (ptr) &var←c20248)+4)/* stream←v4444 */  ), (* (( (ptr) gf←c20280)+26) ), 0, 2147483647, pd68)
         ;
         };
      }
   else {
SOURCE(2558, 889)
      {
         word newDepthLimit←v5744 =  (word) -1;
         /* declaration of control←v5772 skipped */ 
SOURCE(2585, 30)
         (* (( (ptr) &var←c20248)+9)/* control←v5772 */  ) = 0;
SOURCE(3023, 208)
         {
            word var←c18808;
            word var←c18840;
            {
               word pd69;
               pd69 = (* (( (ptr) (* (( (ptr) gf←c20280)+83)/* var←c18776 */  ))+7) );
               var←c18808 = (word) ( *( (fPt) ((*  (ptr) pd69 ))))((* ((( (ptr) gf←c20280)+27)) ), pd69);
               };
            if ((var←c18808 == 0)) {
               goto lab←L100007;
               };
            var←c18840 = XR←GetReferentType(var←c18808);
            {
               word tc70;
               if (((* (( (ptr) gf←c20280)+20) ) == var←c18840)) {
                  {
                     word ctl←v5860;
                     ctl←v5860 = var←c18808;
SOURCE(3105, 14)
                     (* (( (ptr) &var←c20248)+9)/* control←v5772 */  ) = ctl←v5860;
                     };
                  }
               else {
                  if (((* (( (ptr) gf←c20280)+15) ) == var←c18840)) {
                     tc70 =  (word) ((*(int*)var←c18808<0) == 0);
                     }
                  else {
                     tc70 =  (word) 0;
                     };
                  if (tc70) {
                     {
                        word rope←v5904;
                        rope←v5904 = var←c18808;
SOURCE(3138, 43)
                        {
                           word pd71;
                           word idx72;
                           pd71 = (* (( (ptr) (* (( (ptr) gf←c20280)+84)/* var←c18872 */  ))+11) );
                           newDepthLimit←v5744 = (
/*1*/   idx72 = (word) ( *( (fPt) ((*  (ptr) pd71 ))))(rope←v5904, 8, pd71),
/*1*/   SGNCK(idx72)
/*1*/   );
                           };
                        };
                     }
                  else {
                     lab←L100007: ;
SOURCE(3197, 34)
                     newDepthLimit←v5744 = (* (( (ptr) gf←c20280)+10)/* defaultDepthLimit←v3252 */  );
                     };
                  };
               };
            };
SOURCE(3234, 210)
         if (((* (( (ptr) &var←c20248)+9)/* control←v5772 */  ) == 0)) {
SOURCE(3258, 87)
            {
               word var←c18904;
               word var←c18936;
               {
                  word pd73;
                  pd73 = (* (( (ptr) (* (( (ptr) gf←c20280)+78)/* var←c18328 */  ))+5) );
                  var←c18904 = (word) ( *( (fPt) ((*  (ptr) pd73 ))))(17, pd73);
                  };
               var←c18936 = XR←NewObject(8, (* (( (ptr) gf←c20280)+20) ));
               (*  (ptr) var←c18936 ) = var←c18904;
               (* (( (ptr) var←c18936)+1) ) = newDepthLimit←v5744;
               (* (( (ptr) &var←c20248)+9)/* control←v5772 */  ) = var←c18936;
               };
SOURCE(3347, 78)
            {
               word var←c18968;
               {
                  word pd74;
                  pd74 = (* (( (ptr) (* (( (ptr) gf←c20280)+85)/* var←c19000 */  ))+22) );
                  var←c18968 = (word) ( *( (fPt) ((*  (ptr) pd74 ))))((* (( (ptr) gf←c20280)+27) ), (* (( (ptr) &var←c20248)+9)/* control←v5772 */  ), 0, pd74)
                  ;
                  };
               {
                  word pd75;
                  pd75 = (* (( (ptr) (* (( (ptr) gf←c20280)+83)/* var←c18776 */  ))+4) );
                  (void) ( *( (fPt) ((*  (ptr) pd75 ))))(var←c18968, (word) (( (bPt) &var←c20248)+28)/* var←c18744 */ , pd75);
                  };
               };
            }
         else {
SOURCE(3436, 8)
            (void) Inner←P1044((word) ((( (bPt) &var←c20248)+28)/* var←c18744 */ ));
            };
         };
      };
SOURCE(2423, 1021)
   return((* (( (ptr) &var←c20248)+6)/* ok←v4528 */  ));
   }

static void Inner←P1044(formal←c20344)
   word formal←c20344;
   {
   register ptr gf←c20312 =  (ptr) &globalframe;
   W2 var←c083;
   word var←c0187;
   formal←c20344 = (formal←c20344 - 28);
   /* Inner: */ 
SOURCE(2617, 14)
SOURCE(2633, 82)
   {
      W2 var←c19032;
      W2 var←c19064;
      W2 var←c19096;
      var←c19032.f0 = 11;
      var←c19032.f1 = (* (( (ptr) gf←c20312)+30) );
      var←c19064.f0 = 4;
      var←c19064.f1 = (* (( (ptr) formal←c20344)+5) );
      var←c19096.f0 = 11;
      var←c19096.f1 = (* (( (ptr) gf←c20312)+31) );
      {
         word pd76;
         pd76 = (* (( (ptr) (* (( (ptr) gf←c20312)+82)/* var←c18648 */  ))+60) );
         (void) ( *( (fPt) ((*  (ptr) pd76 ))))((* (( (ptr) formal←c20344)+4) ), (* (( (ptr) gf←c20312)+29) ), var←c19032, var←c19064, var←c19096, pd76)
         ;
         };
      };
SOURCE(2717, 298)
   if (( (int)(* (( (ptr) (* (( (ptr) formal←c20344)+9) ))+1) ) ==  (int)0)) { goto then077;};
   {
      word pd78;
      pd78 = (* (( (ptr) (* (( (ptr) gf←c20312)+78)/* var←c18328 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd78 ))))((word) &var←c083, (*  (ptr) (* (( (ptr) formal←c20344)+9) ) ), (* (( (ptr) formal←c20344)+5)
          ), pd78);
      };
   var←c0187 = var←c083.f0;
   if ((0 != var←c0187)) {
      then077: ;
      }
   else {
SOURCE(2811, 43)
      (* (( (ptr) (* (( (ptr) formal←c20344)+9) ))+1) ) = ((* (( (ptr) (* (( (ptr) formal←c20344)+9) ))+1) ) - 1);
SOURCE(2856, 24)
      {
         word pd79;
         pd79 = (* (( (ptr) (* (( (ptr) gf←c20312)+82)/* var←c18648 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd79 ))))((* (( (ptr) formal←c20344)+4) ), (* (( (ptr) gf←c20312)+32) ), 0, 2147483647, pd79)
         ;
         };
SOURCE(2882, 55)
      {
         word var←c19128;
         word pd80;
         pd80 = (* (( (ptr) (* (( (ptr) gf←c20312)+78)/* var←c18328 */  ))+10) );
         var←c19128 = (word) ( *( (fPt) ((*  (ptr) pd80 ))))((*  (ptr) (* (( (ptr) formal←c20344)+9) ) ), (* (( (ptr) formal←c20344)+5)
             ), (* (( (ptr) gf←c20312)+33) ), pd80);
         };
SOURCE(2939, 31)
      (* (( (ptr) formal←c20344)+6) ) = (word) PrintReferent←P180((* (( (ptr) formal←c20344)+4) ), (* (( (ptr) formal←c20344)+5)
          ));
SOURCE(2972, 43)
      (* (( (ptr) (* (( (ptr) formal←c20344)+9) ))+1) ) = ((* (( (ptr) (* (( (ptr) formal←c20344)+9) ))+1) ) + 1);
      };
   }

static void Register←P300(printer←v4588, type←v4616)
   word printer←v4588;
   word type←v4616;
   {
   register ptr gf←c20376 =  (ptr) &globalframe;
   word ordType←v5948;
   /* Register: */ 
SOURCE(3454, 207)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c20376)+16)/* LOCK←v3000 */ ));
SOURCE(3543, 27)
   ordType←v5948 = BCK(type←v4616, 65536);
SOURCE(3572, 89)
   {
      word var←c19224;
      {
         word var←c19160;
         {
            word var←c19192;
            var←c19192 = XR←NewObject(4, (* (( (ptr) gf←c20376)+21) ));
            (*  (ptr) var←c19192 ) = XR←CheckProc(printer←v4588);
            var←c19160 = var←c19192;
            };
         {
            word pd81;
            pd81 = (* (( (ptr) (* (( (ptr) gf←c20376)+78)/* var←c18328 */  ))+9) );
            var←c19224 = (word) ( *( (fPt) ((*  (ptr) pd81 ))))((* (( (ptr) gf←c20376)+8)/* printers←v3056 */  ), ordType←v5948, var←c19160, pd81)
            ;
            };
         };
      };
SOURCE(3454, 207)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c20376)+16)/* LOCK←v3000 */ ));
   return;
   }

static void RegisterFallback←P360(printer←v4676)
   word printer←v4676;
   {
   register ptr gf←c20408 =  (ptr) &globalframe;
   /* RegisterFallback: */ 
SOURCE(3665, 109)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c20408)+16)/* LOCK←v3000 */ ));
SOURCE(3738, 36)
   {
      word var←c19256;
      var←c19256 = XR←NewObject(8, (* (( (ptr) gf←c20408)+19) ));
      (*  (ptr) var←c19256 ) = XR←CheckProc(printer←v4676);
      (* (( (ptr) var←c19256)+1) ) = (* (( (ptr) gf←c20408)+9)/* fallbacks←v3084 */  );
      (* (( (ptr) gf←c20408)+9)/* fallbacks←v3084 */  ) = var←c19256;
      };
SOURCE(3665, 109)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c20408)+16)/* LOCK←v3000 */ ));
   return;
   }

static void UnRegister←P420(formal←c0199)
   word formal←c0199;
   {
   W7 var←c20440;
   /* declaration of printer←v4736 skipped */ 
   register ptr gf←c20472 =  (ptr) &globalframe;
   /* declaration of var←c19288 skipped */ 
   var←c20440.f4/* printer←v4736 */  = formal←c0199;
   /* UnRegister: */ 
SOURCE(3780, 336)
   {
      word tmpAddr82;
      tmpAddr82 = (word) (( (ptr) &var←c20440)+5)/* var←c19288 */ ;
      (*  (ptr) tmpAddr82 ) = ( ((word)  (fPt) EachPair←P1200) );
      (* (( (ptr) tmpAddr82) + 1) ) = 1;
      };
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c20472)+16)/* LOCK←v3000 */ ));
SOURCE(4014, 51)
   (* (( (ptr) gf←c20472)+9)/* fallbacks←v3084 */  ) = (word) UnRegisterFallbacks←P480(var←c20440.f4/* printer←v4736 */ , (* (
         ( (ptr) gf←c20472)+9)/* fallbacks←v3084 */  ));
SOURCE(4067, 49)
   {
      word var←c19320;
      word pd83;
      pd83 = (* (( (ptr) (* (( (ptr) gf←c20472)+78)/* var←c18328 */  ))+13) );
      var←c19320 = (word) ( *( (fPt) ((*  (ptr) pd83 ))))((* (( (ptr) gf←c20472)+8)/* printers←v3056 */  ), (word) (( (bPt) &var←c20440)+20)
         /* var←c19288 */ , pd83);
      };
SOURCE(3780, 336)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c20472)+16)/* LOCK←v3000 */ ));
   return;
   }

static word EachPair←P1200(key←v14908, val←v14936, formal←c20536)
   word key←v14908;
   word val←v14936;
   word formal←c20536;
   {
   register ptr gf←c20504 =  (ptr) &globalframe;
   word quit←v14980;
   word valPrinter←v6036;
   formal←c20536 = (formal←c20536 - 20);
   /* EachPair: */ 
SOURCE(3847, 162)
SOURCE(3847, 162)
   quit←v14980 = 0;
SOURCE(3884, 51)
   valPrinter←v6036 = XR←Narrow(val←v14936, (* (( (ptr) gf←c20504)+21) ));
SOURCE(3937, 72)
   if (((*  (ptr) valPrinter←v6036 ) == (* (( (ptr) formal←c20536)+4) ))) {
SOURCE(3967, 42)
      {
         word var←c19352;
         word pd84;
         pd84 = (* (( (ptr) (* (( (ptr) gf←c20504)+78)/* var←c18328 */  ))+11) );
         var←c19352 = (word) ( *( (fPt) ((*  (ptr) pd84 ))))((* (( (ptr) gf←c20504)+8)/* printers←v3056 */  ), key←v14908, pd84);
         };
      };
SOURCE(3847, 162)
   return(quit←v14980);
   }

static word UnRegisterFallbacks←P480(printer←v4796, list←v4824)
   word printer←v4796;
   word list←v4824;
   {
   register ptr gf←c20568 =  (ptr) &globalframe;
   word var←c4952;
   /* UnRegisterFallbacks: */ 
SOURCE(4122, 425)
   if ((list←v4824 == 0)) {
SOURCE(4302, 12)
      return(0);
      }
   else {
      if (((*  (ptr) list←v4824 ) == printer←v4796)) {
SOURCE(4340, 46)
         return((word) UnRegisterFallbacks←P480(printer←v4796, (* (( (ptr) list←v4824)+1) )));
         }
      else {
SOURCE(4399, 148)
         {
            word tail←v6092;
SOURCE(4401, 6)
            tail←v6092 = (word) UnRegisterFallbacks←P480(printer←v4796, (* (( (ptr) list←v4824)+1) ));
SOURCE(4480, 67)
            if ((tail←v6092 == (* (( (ptr) list←v4824)+1) ))) {
               return(list←v4824);
               }
            else {
               {
                  word var←c19416;
                  var←c19416 = XR←NewObject(8, (* (( (ptr) gf←c20568)+19) ));
                  (*  (ptr) var←c19416 ) = XR←CheckProc(*  (ptr) list←v4824 );
                  (* (( (ptr) var←c19416)+1) ) = tail←v6092;
                  return(var←c19416);
                  };
               };
            };
         };
      };
   }

static word ATOMPrinter←P540(stream←v8220, ref←v8248)
   word stream←v8220;
   word ref←v8248;
   {
   register ptr gf←c20600 =  (ptr) &globalframe;
   word ok←v8292;
   /* ATOMPrinter: */ 
SOURCE(4554, 98)
SOURCE(4554, 98)
   ok←v8292 = 1;
SOURCE(4593, 59)
   {
      word var←c19448;
      {
         word var←c19480;
         var←c19480 = XR←Narrow(ref←v8248, (* (( (ptr) gf←c20600)+14) ));
         {
            word pd85;
            pd85 = (* (( (ptr) (* (( (ptr) gf←c20600)+86)/* var←c19512 */  ))+9) );
            var←c19448 = (word) ( *( (fPt) ((*  (ptr) pd85 ))))(var←c19480, pd85);
            };
         };
      {
         W2 var←c19544;
         var←c19544.f0 = 11;
         var←c19544.f1 = var←c19448;
         {
            word pd86;
            pd86 = (* (( (ptr) (* (( (ptr) gf←c20600)+82)/* var←c18648 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd86 ))))(stream←v8220, (* (( (ptr) gf←c20600)+35) ), var←c19544, pd86);
            };
         };
      };
SOURCE(4554, 98)
   return(ok←v8292);
   }

static word REFLongNumberPrinter←P600(stream←v8352, ref←v8380)
   word stream←v8352;
   word ref←v8380;
   {
   register ptr gf←c20632 =  (ptr) &globalframe;
   word ok←v8424;
   word refLongNumber←v6220;
   /* REFLongNumberPrinter: */ 
SOURCE(4658, 162)
SOURCE(4658, 162)
   ok←v8424 = 1;
SOURCE(4706, 50)
   refLongNumber←v6220 = XR←Narrow(ref←v8380, (* (( (ptr) gf←c20632)+18) ));
SOURCE(4758, 62)
   {
      W2 var←c19576;
      var←c19576.f0 = 4;
      var←c19576.f1 = (*  (ptr) refLongNumber←v6220 );
      {
         word pd87;
         pd87 = (* (( (ptr) (* (( (ptr) gf←c20632)+82)/* var←c18648 */  ))+61) );
         (void) ( *( (fPt) ((*  (ptr) pd87 ))))(stream←v8352, (* (( (ptr) gf←c20632)+37) ), var←c19576, pd87);
         };
      };
SOURCE(4658, 162)
   return(ok←v8424);
   }

static void PrintRopeLiteral←P660(formal←c0200, rope←v5124)
   word formal←c0200;
   word rope←v5124;
   {
   W8 var←c20664;
   /* declaration of stream←v5096 skipped */ 
   register ptr gf←c20696 =  (ptr) &globalframe;
   /* declaration of var←c19608 skipped */ 
   /* declaration of i←v6276 skipped */ 
   var←c20664.f4/* stream←v5096 */  = formal←c0200;
   /* PrintRopeLiteral: */ 
SOURCE(4826, 362)
   {
      word tmpAddr88;
      tmpAddr88 = (word) (( (ptr) &var←c20664)+5)/* var←c19608 */ ;
      (*  (ptr) tmpAddr88 ) = ( ((word)  (fPt) Action←P1308) );
      (* (( (ptr) tmpAddr88) + 1) ) = 1;
      };
SOURCE(4885, 10)
   var←c20664.f7/* i←v6276 */  = 0;
SOURCE(5099, 22)
   {
      word pd89;
      pd89 = (* (( (ptr) (* (( (ptr) gf←c20696)+82)/* var←c18648 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd89 ))))(var←c20664.f4/* stream←v5096 */ , 34, pd89);
      };
SOURCE(5123, 41)
   {
      word var←c19640;
      word pd90;
      pd90 = (* (( (ptr) (* (( (ptr) gf←c20696)+80)/* var←c18488 */  ))+26) );
      var←c19640 = (word) ( *( (fPt) ((*  (ptr) pd90 ))))(rope←v5124, 0, 2147483647, (word) (( (bPt) &var←c20664)+20)/* var←c19608 */ , pd90)
      ;
      };
SOURCE(5166, 22)
   {
      word pd91;
      pd91 = (* (( (ptr) (* (( (ptr) gf←c20696)+82)/* var←c18648 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd91 ))))(var←c20664.f4/* stream←v5096 */ , 34, pd91);
      };
   }

static word Action←P1308(c←v6380, formal←c20760)
   word c←v6380;
   word formal←c20760;
   {
   register ptr gf←c20728 =  (ptr) &globalframe;
   word quit←v6424;
   formal←c20760 = (formal←c20760 - 20);
   /* Action: */ 
SOURCE(4897, 197)
SOURCE(4897, 197)
   quit←v6424 = 0;
SOURCE(4953, 57)
   if (( (int)(* (( (ptr) formal←c20760)+7) ) >  (int)120)) {
SOURCE(4970, 25)
      {
         word pd92;
         pd92 = (* (( (ptr) (* (( (ptr) gf←c20728)+82)/* var←c18648 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd92 ))))((* (( (ptr) formal←c20760)+4) ), (* (( (ptr) gf←c20728)+38) ), 0, 2147483647, pd92)
         ;
         };
SOURCE(4997, 13)
      return(1);
      };
SOURCE(5013, 47)
   if ((c←v6380 == 34) || (c←v6380 == 92)) {
SOURCE(5037, 23)
      {
         word pd93;
         pd93 = (* (( (ptr) (* (( (ptr) gf←c20728)+82)/* var←c18648 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd93 ))))((* (( (ptr) formal←c20760)+4) ), 92, pd93);
         };
      };
SOURCE(5062, 21)
   {
      word pd94;
      pd94 = (* (( (ptr) (* (( (ptr) gf←c20728)+82)/* var←c18648 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd94 ))))((* (( (ptr) formal←c20760)+4) ), c←v6380, pd94);
      };
SOURCE(5085, 9)
   (* (( (ptr) formal←c20760)+7) ) = ((* (( (ptr) formal←c20760)+7) ) + 1);
SOURCE(4897, 197)
   return(quit←v6424);
   }

static word ROPEPrinter←P720(stream←v8484, ref←v8512)
   word stream←v8484;
   word ref←v8512;
   {
   register ptr gf←c20792 =  (ptr) &globalframe;
   word ok←v8556;
   /* ROPEPrinter: */ 
SOURCE(5194, 76)
SOURCE(5194, 76)
   ok←v8556 = 1;
SOURCE(5233, 37)
   {
      word var←c19672;
      {
         word var←c19704;
         var←c19704 = XR←Narrow(ref←v8512, (* (( (ptr) gf←c20792)+15) ));
         if ((var←c19704 == 0)) {
            goto lab←L100008;
            };
         if (((*(int*)var←c19704<0) == 0)) {
            goto lab←L100008;
            };
         (void) XR←RaiseError(XR←NarrowFault, 0);
         lab←L100008: ;
         var←c19672 = var←c19704;
         };
      (void) PrintRopeLiteral←P660(stream←v8484, var←c19672);
      };
SOURCE(5194, 76)
   return(ok←v8556);
   }

static word LORAPrinter←P780(stream←v8616, ref←v8644)
   word stream←v8616;
   word ref←v8644;
   {
   register ptr gf←c20824 =  (ptr) &globalframe;
   word ok←v8688;
   /* LORAPrinter: */ 
SOURCE(5276, 342)
SOURCE(5276, 342)
   ok←v8688 = 1;
SOURCE(5315, 303)
   {
      word var←c19736;
      var←c19736 = ref←v8644;
      if ((var←c19736 == 0)) {
         goto lab←L100009;
         };
      if (((* (( (ptr) gf←c20824)+13) ) == XR←GetReferentType(var←c19736))) {
         {
            word lora←v6452;
            lora←v6452 = var←c19736;
SOURCE(5359, 36)
            {
               word pd95;
               pd95 = (* (( (ptr) (* (( (ptr) gf←c20824)+82)/* var←c18648 */  ))+93) );
               (void) ( *( (fPt) ((*  (ptr) pd95 ))))(stream←v8616, (* (( (ptr) gf←c20824)+40) ), 0, 2147483647, pd95);
               };
SOURCE(5397, 148)
            {
               register word tail←v6592;
               tail←v6592 = lora←v6452;
               lab←L100013: ;
               if ((tail←v6592 != 0)) {
                  }
               else {
                  goto lab←L100010;
                  };
SOURCE(5457, 53)
               if ((tail←v6592 != lora←v6452)) {
SOURCE(5477, 33)
                  {
                     word pd96;
                     pd96 = (* (( (ptr) (* (( (ptr) gf←c20824)+82)/* var←c18648 */  ))+93) );
                     (void) ( *( (fPt) ((*  (ptr) pd96 ))))(stream←v8616, (* (( (ptr) gf←c20824)+41) ), 0, 2147483647, pd96);
                     };
                  };
SOURCE(5512, 33)
               {
                  word var←c19768;
                  var←c19768 = (word) PrintREF←P240(stream←v8616, (*  (ptr) tail←v6592 ));
                  };
               tail←v6592 = (* (( (ptr) tail←v6592)+1) );
               goto lab←L100013;
               lab←L100010: ;
               };
SOURCE(5556, 32)
            {
               word pd97;
               pd97 = (* (( (ptr) (* (( (ptr) gf←c20824)+82)/* var←c18648 */  ))+93) );
               (void) ( *( (fPt) ((*  (ptr) pd97 ))))(stream←v8616, (* (( (ptr) gf←c20824)+23) ), 0, 2147483647, pd97);
               };
            };
         }
      else {
         lab←L100009: ;
SOURCE(5604, 14)
         return(0);
         };
      };
SOURCE(5276, 342)
   return(ok←v8688);
   }

static void RefPrintCommand←P840(formal←c0141, formal←c0201)
   word formal←c0141;
   word formal←c0201;
   {
   W8 var←c20856;
   /* declaration of cmd←v8748 skipped */ 
   word result←v8792;
   word msg←v8820;
   /* declaration of var←c19800 skipped */ 
   var←c20856.f4/* cmd←v8748 */  = formal←c0201;
   /* RefPrintCommand: */ 
SOURCE(5624, 717)
   {
      word tmpAddr98;
      tmpAddr98 = (word) (( (ptr) &var←c20856)+5)/* var←c19800 */ ;
      (*  (ptr) tmpAddr98 ) = ( ((word)  (fPt) Inner←P1512) );
      (* (( (ptr) tmpAddr98) + 1) ) = 1;
      };
SOURCE(5624, 717)
   result←v8792 = 0;
SOURCE(5624, 717)
   msg←v8820 = 0;
SOURCE(5667, 674)
   {
      /* declaration of arg←v6732 skipped */ 
      {
         word var←c0188;
         var←c0188 = (word) &var←c20856;
          (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q1680) ), ( ((word)  (fPt) NoName←Q1740) ), var←c0188);
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0141 ) = result←v8792;
   (* (( (ptr) formal←c0141)+1) ) = msg←v8820;
   return;
   }

static word NoName←Q1680(formal←c0181)
   word formal←c0181;
   {
   register ptr gf←c0180 =  (ptr) &globalframe;
SOURCE(5730, 42)
   {
      word depthLimit←v6760 =  (word) -1;
SOURCE(5730, 42)
      {
         word pd99;
         pd99 = (* (( (ptr) (* (( (ptr) gf←c0180)+87)/* var←c19832 */  ))+8) );
         (* (( (ptr) formal←c0181)+7) ) = (word) ( *( (fPt) ((*  (ptr) pd99 ))))((* (( (ptr) formal←c0181)+4) ), 0, pd99);
         };
SOURCE(5888, 142)
      {
         word pd100;
         pd100 = (* (( (ptr) (* (( (ptr) gf←c0180)+80)/* var←c18488 */  ))+8) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd100 ))))((* (( (ptr) formal←c0181)+7) ), (* (( (ptr) gf←c0180)+43) ), 0, pd100))) {
SOURCE(5927, 65)
            {
               word var←c19864;
               {
                  word pd101;
                  pd101 = (* (( (ptr) (* (( (ptr) gf←c0180)+87)/* var←c19832 */  ))+8) );
                  var←c19864 = (word) ( *( (fPt) ((*  (ptr) pd101 ))))((* (( (ptr) formal←c0181)+4) ), 0, pd101);
                  };
               {
                  word pd102;
                  word idx103;
                  pd102 = (* (( (ptr) (* (( (ptr) gf←c0180)+84)/* var←c18872 */  ))+11) );
                  depthLimit←v6760 = (
                     idx103 = (word) ( *( (fPt) ((*  (ptr) pd102 ))))(var←c19864, 8, pd102),
                     SGNCK(idx103)
                     );
                  };
               };
SOURCE(5994, 36)
            {
               word pd104;
               pd104 = (* (( (ptr) (* (( (ptr) gf←c0180)+87)/* var←c19832 */  ))+8) );
               (* (( (ptr) formal←c0181)+7) ) = (word) ( *( (fPt) ((*  (ptr) pd104 ))))((* (( (ptr) formal←c0181)+4) ), 0, pd104);
               };
            };
         };
SOURCE(6035, 36)
      {
         W2 var←c19896;
         var←c19896.f0 = 11;
         var←c19896.f1 = (* (( (ptr) gf←c0180)+45) );
         {
            word pd105;
            pd105 = (* (( (ptr) (* (( (ptr) gf←c0180)+82)/* var←c18648 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd105 ))))((* (( (ptr) (* (( (ptr) formal←c0181)+4) ))+1) ), (* (( (ptr) gf←c0180)+44) ), var←c19896, pd105)
            ;
            };
         };
SOURCE(6073, 227)
      if (( (int)depthLimit←v6760 >=  (int)0)) {
SOURCE(6098, 185)
         {
            word control←v6848;
SOURCE(6100, 101)
            {
               word var←c19928;
               word var←c19960;
               {
                  word pd106;
                  pd106 = (* (( (ptr) (* (( (ptr) gf←c0180)+78)/* var←c18328 */  ))+5) );
                  var←c19928 = (word) ( *( (fPt) ((*  (ptr) pd106 ))))(17, pd106);
                  };
               var←c19960 = XR←NewObject(8, (* (( (ptr) gf←c0180)+20) ));
               (*  (ptr) var←c19960 ) = var←c19928;
               (* (( (ptr) var←c19960)+1) ) = depthLimit←v6760;
               control←v6848 = var←c19960;
               };
SOURCE(6203, 78)
            {
               word var←c19992;
               {
                  word pd107;
                  pd107 = (* (( (ptr) (* (( (ptr) gf←c0180)+85)/* var←c19000 */  ))+22) );
                  var←c19992 = (word) ( *( (fPt) ((*  (ptr) pd107 ))))((* (( (ptr) gf←c0180)+27) ), control←v6848, 0, pd107);
                  };
               {
                  word pd108;
                  pd108 = (* (( (ptr) (* (( (ptr) gf←c0180)+83)/* var←c18776 */  ))+4) );
                  (void) ( *( (fPt) ((*  (ptr) pd108 ))))(var←c19992, (word) (( (bPt) formal←c0181)+20), pd108);
                  };
               };
            };
         }
      else {
SOURCE(6292, 8)
         (void) Inner←P1512((word) ((( (bPt) formal←c0181)+20)));
         };
SOURCE(6303, 38)
      {
         W2 var←c20024;
         var←c20024.f0 = 11;
         var←c20024.f1 = (* (( (ptr) gf←c0180)+47) );
         {
            word pd109;
            pd109 = (* (( (ptr) (* (( (ptr) gf←c0180)+82)/* var←c18648 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd109 ))))((* (( (ptr) (* (( (ptr) formal←c0181)+4) ))+1) ), (* (( (ptr) gf←c0180)+46) ), var←c20024, pd109)
            ;
            };
         };
      };
   return(0);
   }

static void Inner←P1512(formal←c20920)
   word formal←c20920;
   {
   register ptr gf←c20888 =  (ptr) &globalframe;
   word addr←v6892;
   formal←c20920 = (formal←c20920 - 20);
   /* Inner: */ 
SOURCE(5796, 14)
SOURCE(5812, 38)
   {
      word pd110;
      pd110 = (* (( (ptr) (* (( (ptr) gf←c20888)+84)/* var←c18872 */  ))+11) );
      addr←v6892 = (word) ( *( (fPt) ((*  (ptr) pd110 ))))((* (( (ptr) formal←c20920)+7) ), 8, pd110);
      };
SOURCE(5852, 31)
   (void) PrintWord←P120((* (( (ptr) (* (( (ptr) formal←c20920)+4) ))+1) ), addr←v6892, 0);
   }

static void NoName←Q1740(formal←c0158, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0158;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0184 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0184)+84)/* var←c18872 */  ))+7) ))) {
      {
         word reason←v16892;
         word index←v16920;
         reason←v16892 = (*  (ptr) formal←c200003 );
         index←v16920 = (* (( (ptr) formal←c200003)+1) );
SOURCE(5691, 37)
         {
            word var←c0157;
            var←c0157 = (* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c200000)+4) ))+5) ))+1) );
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c0184)+87)/* var←c19832 */  ))+4) ), (word) &var←c0157);
            };
         };
      };
   (*  (ptr) formal←c0158 ) = 0;
   (* (( (ptr) formal←c0158)+1) ) = 0;
   return;
   }

/* file: RefPrintImpl, module: RefPrintImpl, compiled at: March 5, 1992 10:50:56 am PST */ 
extern void XR←install←RefPrintImpl() {
   NoName←Q1620();
   }
extern void XR←run←RefPrintImpl() { XR←Start(&globalframe); }