/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 6, 1993 10:06:07 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: SimpleIPRegister, module: SimpleIPRegister */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4168158147,1729996316] SimpleIPRegister";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W3 r;} W11;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {W8 f; word r;} W9;
typedef struct {W8 f; W2 r;} W10;
typedef W10 *W10Pt;
typedef W3 *W3Pt;
#define SOURCE(p, l) /* source p, l */
static float fc76 = 0.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc83 = 0.999;
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q2856();
static void SimpleIPRegister←P0();
static word FileIDFromStream←P60();
static word FileIDEqual←P120();
static void EnterInCache←P180();
static word GetFromCache←P240();
static word Protect←P300();
static word NoName←Q2916();
static void ipErrorProc←P360();
static void ipLogProc←P420();
static void Feedback←P480();
static word ipGuessProc←P540();
static word GetCopies←P600();
static word ipOpenProc←P660();
static void localLog←P1692();
static void doOpen←P1752();
static void ipCleanProc←P720();
static void ipAttributesProc←P780();
static void inner←P1812();
static word ipPageProc←P840();
static void doPage←P1872();
static void localLog←P2028();
static void ipCloseProc←P900();
static void doClose←P2232();
static word Clone←P960();
static word ipCloneProc←P1020();
static word ipSpecialProc←P1080();
static word MakeInstructions←P1140();
static void FillInstructionsVector←P1200();
static void NoName←Q2976();
static struct {unsigned f; char r[44];} string1 = {2752556, "\260\006\005\146\151\162\163\164\257\300\370\161\013\303\300\147\035\246\034\100\260\005\004\162\145\163\164\214\257\300\370\161\013\303\300\147\035\246\034\100\260\261\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\102\360\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\102\030\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\102\014\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\017\000"};
static struct {unsigned f; char r[4];} string7 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string8 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300|I+\246\300+&T\042B\014\000\000"};
static struct {unsigned f; char r[16];} string10 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string11 = {65540, "\241\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\177\225\363\334\300\341\277\240\013\100\164\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\102\250\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\102\330\000\000"};
static struct {unsigned f; char r[4];} string15 = {196611, "\004C\007"};
static struct {unsigned f; char r[44];} string16 = {2818092, "\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\177\225\363\334\300\341\277\240\013\100\200\000\000"};
static struct {unsigned f; char r[16];} string18 = {983056, "[code: %g(%g)] "};
static struct {unsigned f; char r[20];} string19 = {1114132, "GeneratedFeedback\000\000"};
static struct {unsigned f; char r[8];} string20 = {262152, "TRUE\000\000\000"};
static struct {unsigned f; char r[16];} string21 = {786448, "[class: %g] \000\000\000"};
static struct {unsigned f; char r[16];} string22 = {983056, "InterpressError"};
static struct {unsigned f; char r[20];} string23 = {1114132, "InterpressWarning\000\000"};
static struct {unsigned f; char r[24];} string24 = {1507352, "Interpress/Xerox/* *\240j*"};
static struct {unsigned f; char r[12];} string25 = {589836, "CopyCount\000\000"};
static struct {unsigned f; char r[32];} string26 = {1900576, "Copy count truncated to 20000\000\000"};
static struct {unsigned f; char r[20];} string27 = {1114132, "InterpressComment\000\000"};
static struct {unsigned f; char r[12];} string28 = {720908, "[code: %g] "};
static struct {unsigned f; char r[16];} string29 = {851984, "ImagerWarning\000\000"};
static struct {unsigned f; char r[12];} string30 = {720908, "ImagerError"};
static struct {unsigned f; char r[12];} string31 = {524300, "Uncaught\000\000\000"};
static struct {unsigned f; char r[12];} string32 = {655372, "ipPageProc\000"};
static struct {unsigned f; char r[20];} string33 = {1048596, "page %g, copy %g\000\000\000"};
static struct {unsigned f; char r[12];} string34 = {589836, "OutputBin\000\000"};
static struct {unsigned f; char r[16];} string35 = {917520, "Interpress 3.1\000"};
static struct {unsigned f; char r[12];} string36 = {655372, "not imaged\000"};
static struct {unsigned f; char r[24];} string37 = {1507352, "(page %g of copy %g) %g"};
static struct {unsigned f; char r[4];} string38 = {131076, "IP\000"};
static struct {unsigned f; char r[12];} string39 = {655372, "copies: %g\000"};
static struct {unsigned f; char r[24];} string40 = {1441816, "FillInstructionsVector\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "\257\300\370\161\013\303\300\147\035\246\034\100\164\000\000"};
static struct {unsigned f; char r[20];} string42 = {1245203, "\006\006\040\001\044\001\050\001\054\001\060\001\100\214\010\000\004\027\001"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\125\320\113\245\300\331\322\350\010\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\146\072\276\323\300\221\127\350\046\100\150\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string48 = {851984, "\257\300\177\225\363\334\300\341\277\240\013\100\150\000\000"};
static struct {unsigned f; char r[16];} string49 = {851984, "\257\300|I+\246\300+&T\042@h\000\000"};
static struct {unsigned f; char r[16];} string50 = {851984, "\257\300\041\257\203\366\300\322\161\356\007\100\150\000\000"};
static struct {unsigned f; char r[16];} string51 = {851984, "\257\300\240\236\274\171\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string52 = {851984, "\257\300\332\223\177\020\300\304\076\102\260\100\164\000\000"};
static struct {unsigned f; char r[16];} string53 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string54 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {
   word f0[58]; 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[13]; 
   } globalframe = {
   {0}, (word) FillInstructionsVector←P1200, 0, (word) MakeInstructions←P1140, 
   0, (word) ipSpecialProc←P1080, 0, (word) ipCloneProc←P1020, 
   0, (word) Clone←P960, 0, (word) ipCloseProc←P900, 
   0, (word) ipPageProc←P840, 0, (word) ipAttributesProc←P780, 
   0, (word) ipCleanProc←P720, 0, (word) ipOpenProc←P660, 
   0, (word) GetCopies←P600, 0, (word) ipGuessProc←P540, 
   0, (word) Feedback←P480, 0, (word) ipLogProc←P420, 
   0, (word) ipErrorProc←P360, 0, (word) Protect←P300, 
   0, (word) GetFromCache←P240, 0, (word) EnterInCache←P180, 
   0, (word) FileIDEqual←P120, 0, (word) FileIDFromStream←P60, 
   0, (word) SimpleIPRegister←P0, {0}
   };

static void NoName←Q2856()
   {
   register ptr gf←c0225 =  (ptr) &globalframe;
   word var←c30240;
   (* (( (ptr) gf←c0225)+13) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0225)+15) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0225)+16) ) = (word) XR←GetTypeIndexS((word) (&string4));
   (* (( (ptr) gf←c0225)+17) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0225)+18) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0225)+19) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string8);
   (* (( (ptr) gf←c0225)+22) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string8);
   (* (( (ptr) gf←c0225)+23) ) = (word) XR←GetTypeIndexS((word) (&string11));
   (* (( (ptr) gf←c0225)+25) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string8);
   (* (( (ptr) gf←c0225)+26) ) = (word) XR←GetTypeIndexS((word) (&string13));
   (* (( (ptr) gf←c0225)+31) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
   (* (( (ptr) gf←c0225)+32) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string8);
   (* (( (ptr) gf←c0225)+34) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c0225)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+22) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0225)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0225)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0225)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+22) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0225)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0225)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0225)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+32) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0225)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0225)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+22) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0225)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0225)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+22) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0225)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0225)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0225)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0225)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0225)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+22) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0225)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0225)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+22) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0225)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+32) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0225)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+22) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0225)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0225)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+22) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0225)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0225)+18) ), (word) &string40);
   (void) XR←DeclareGlobalFrame((word) "SimpleIPRegister", &globalframe, (word) XR←GetTypeIndex((word) &string41, 0, (word) &string42)
      , (word) (( (bPt) gf←c0225)+392)/* var←c27552 */ );
   var←c30240 = (word) XR←ImportInterface((word) "DecomposerRegistry", (word) XR←GetTypeIndexS((word) (&string43)), 12);
   (* (( (ptr) gf←c0225)+100)/* var←c27744 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 262145);
   var←c30240 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string44)), 84);
   (* (( (ptr) gf←c0225)+111)/* var←c29568 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 787971);
   (void) XR←ImportProcS(var←c30240, 67634946);
   var←c30240 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string45)), 3);
   (* (( (ptr) gf←c0225)+104)/* var←c28064 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 67371521);
   var←c30240 = (word) XR←ImportInterface((word) "InterpressInterpreter", (word) XR←GetTypeIndexS((word) (&string46)), 8);
   (* (( (ptr) gf←c0225)+108)/* var←c28960 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 67372033);
   (void) XR←ImportProcS(var←c30240, 263937);
   (void) XR←ImportProcS(var←c30240, 68421125);
   (void) XR←ImportProcS(var←c30240, 1312005);
   (void) XR←ImportProcS(var←c30240, 68420101);
   var←c30240 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string47)), 103);
   (* (( (ptr) gf←c0225)+105)/* var←c28096 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 67910402);
   (void) XR←ImportProcS(var←c30240, 68958724);
   (void) XR←ImportProcS(var←c30240, 530434);
   (void) XR←ImportProcS(var←c30240, 530946);
   (void) XR←ImportProcS(var←c30240, 68159748);
   (void) XR←ImportProcS(var←c30240, 67377409);
   (void) XR←ImportProcS(var←c30240, 2111493);
   (void) XR←ImportProcS(var←c30240, 67641090);
   (void) XR←ImportProcS(var←c30240, 1071364);
   (void) XR←ImportProcS(var←c30240, 1063171);
   (void) XR←ImportProcS(var←c30240, 67378689);
   var←c30240 = (word) XR←ImportInterface((word) "IPAttributes", (word) XR←GetTypeIndexS((word) (&string48)), 2);
   (* (( (ptr) gf←c0225)+109)/* var←c29120 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 262401);
   var←c30240 = (word) XR←ImportInterface((word) "IPInstructions", (word) XR←GetTypeIndexS((word) (&string49)), 13);
   (* (( (ptr) gf←c0225)+110)/* var←c29472 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 67371009);
   (void) XR←ImportProcS(var←c30240, 202113539);
   var←c30240 = (word) XR←ImportInterface((word) "ImagerSys", (word) XR←GetTypeIndexS((word) (&string50)), 15);
   (* (( (ptr) gf←c0225)+101)/* var←c27776 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 67374337);
   (void) XR←ImportProcS(var←c30240, 67374081);
   var←c30240 = (word) XR←ImportInterface((word) "Prop", (word) XR←GetTypeIndexS((word) (&string51)), 4);
   (* (( (ptr) gf←c0225)+106)/* var←c28480 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 67895299);
   (void) XR←ImportProcS(var←c30240, 67633410);
   var←c30240 = (word) XR←ImportInterface((word) "RefText", (word) XR←GetTypeIndexS((word) (&string52)), 26);
   (* (( (ptr) gf←c0225)+107)/* var←c28512 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 262913);
   (void) XR←ImportProcS(var←c30240, 67371521);
   var←c30240 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string53)), 43);
   (* (( (ptr) gf←c0225)+102)/* var←c27872 */  ) = var←c30240;
   (void) XR←ImportProcS(var←c30240, 67900163);
   (void) XR←ImportProcS(var←c30240, 67896323);
   var←c30240 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string54)), 27);
   (* (( (ptr) gf←c0225)+103)/* var←c28000 */  ) = var←c30240;
   }

static void SimpleIPRegister←P0(formal←c050, formal←c045)
   word formal←c050;
   word formal←c045;
   {
   register ptr gf←c30272 =  (ptr) &globalframe;
   /* SimpleIPRegister: */ 
SOURCE(167, 10218)
SOURCE(1128, 11)
   (* (( (ptr) gf←c30272)+8)/* cacheHead←v3364 */  ) = XR←NewObject(12, (* (( (ptr) gf←c30272)+13) ));
   {
      word var←c27616;
      var←c27616 = (* (( (ptr) gf←c30272)+8)/* cacheHead←v3364 */  );
      };
SOURCE(9093, 172)
   {
      word var←c27648;
      var←c27648 = XR←NewObject(20, (* (( (ptr) gf←c30272)+15) ));
      (*  (ptr) var←c27648 ) = (word) (( (bPt) gf←c30272)+288)/* var←c27136 */ ;
      (* (( (ptr) var←c27648)+1) ) = (word) (( (bPt) gf←c30272)+280)/* var←c27104 */ ;
      (* (( (ptr) var←c27648)+2) ) = (word) (( (bPt) gf←c30272)+272)/* var←c27072 */ ;
      (* (( (ptr) var←c27648)+3) ) = (word) (( (bPt) gf←c30272)+256)/* var←c27008 */ ;
      (* (( (ptr) var←c27648)+4) ) = (word) (( (bPt) gf←c30272)+248)/* var←c26976 */ ;
      (* (( (ptr) gf←c30272)+9)/* ipInstanceProcs←v3840 */  ) = var←c27648;
      };
SOURCE(9268, 124)
   {
      word var←c27680;
      var←c27680 = XR←NewObject(12, (* (( (ptr) gf←c30272)+16) ));
      (*  (ptr) var←c27680 ) = (word) (( (bPt) gf←c30272)+320)/* var←c27264 */ ;
      (* (( (ptr) var←c27680)+1) ) = (word) (( (bPt) gf←c30272)+304)/* var←c27200 */ ;
      (* (( (ptr) var←c27680)+2) ) = (word) (( (bPt) gf←c30272)+296)/* var←c27168 */ ;
      (* (( (ptr) gf←c30272)+10)/* ipDecomposerProcs←v3868 */  ) = var←c27680;
      };
SOURCE(9428, 151)
   {
      word var←c27712;
      var←c27712 = XR←NewObject(16, (* (( (ptr) gf←c30272)+17) ));
      (*  (ptr) var←c27712 ) = (* (( (ptr) gf←c30272)+55) );
      (* (( (ptr) var←c27712)+1) ) = (* (( (ptr) gf←c30272)+52) );
      (* (( (ptr) var←c27712)+2) ) = (* (( (ptr) gf←c30272)+10)/* ipDecomposerProcs←v3868 */  );
      (* (( (ptr) var←c27712)+3) ) = (* (( (ptr) gf←c30272)+11)/* ipDecomposerPrivate←v3896 */  );
      (* (( (ptr) gf←c30272)+12)/* ipDecomposerData←v3924 */  ) = var←c27712;
      };
SOURCE(10340, 45)
   {
      word pd55;
      pd55 = (* (( (ptr) (* (( (ptr) gf←c30272)+100)/* var←c27744 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd55 ))))((* ((( (ptr) gf←c30272)+12)/* ipDecomposerData←v3924 */ ) ), pd55);
      };
   }

static word FileIDFromStream←P60(stream←v4060)
   word stream←v4060;
   {
   register ptr gf←c30304 =  (ptr) &globalframe;
   word var←c4104;
   word fileName←v5664;
   word created←v5692;
   /* FileIDFromStream: */ 
SOURCE(615, 330)
SOURCE(615, 330)
   var←c4104 = 0;
SOURCE(685, 49)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c30304)+101)/* var←c27776 */  ))+16) );
      fileName←v5664 = (word) ( *( (fPt) ((*  (ptr) pd56 ))))(stream←v4060, pd56);
      };
SOURCE(736, 59)
   {
      word pd57;
      pd57 = (* (( (ptr) (* (( (ptr) gf←c30304)+101)/* var←c27776 */  ))+17) );
      created←v5692 = (word) ( *( (fPt) ((*  (ptr) pd57 ))))(stream←v4060, pd57);
      };
SOURCE(797, 148)
   if ( ( (fileName←v5664 != 0) ? (created←v5692 != 2147483647) : 0 ) ) {
SOURCE(852, 93)
      {
         word id←v5736;
SOURCE(854, 77)
         id←v5736 = XR←NewObject(8, (* (( (ptr) gf←c30304)+25) ));
         (*  (ptr) id←v5736 ) = fileName←v5664;
         (* (( (ptr) id←v5736)+1) ) = created←v5692;
SOURCE(933, 12)
         return(id←v5736);
         };
      };
SOURCE(615, 330)
   return(var←c4104);
   }

static word FileIDEqual←P120(a←v4164, b←v4192)
   word a←v4164;
   word b←v4192;
   {
   register ptr gf←c30336 =  (ptr) &globalframe;
   word var←c4236;
   /* FileIDEqual: */ 
SOURCE(952, 114)
SOURCE(1004, 62)
   {
      word tc58;
      word pd59;
      if (((* (( (ptr) a←v4164)+1) ) == (* (( (ptr) b←v4192)+1) ))) {
         pd59 = (* (( (ptr) (* (( (ptr) gf←c30336)+102)/* var←c27872 */  ))+8) );
         tc58 =  (word)  (unsigned) (0 != (word) ( *( (fPt) ((*  (ptr) pd59 ))))((*  (ptr) a←v4164 ), (*  (ptr) b←v4192 ), 1, pd59)
         );
         }
      else {
         tc58 =  (word)  (unsigned) 0;
         };
      return(tc58);
      };
   }

static void EnterInCache←P180(fileID←v4468, data←v4496)
   word fileID←v4468;
   word data←v4496;
   {
   register ptr gf←c30368 =  (ptr) &globalframe;
   /* EnterInCache: */ 
SOURCE(1179, 256)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c30368)+16)/* LOCK←v3084 */ ));
SOURCE(1236, 199)
   if ( ( (fileID←v4468 != 0) ? (data←v4496 != 0) : 0 ) ) {
SOURCE(1272, 165)
      {
         word cacheLast←v5780;
SOURCE(1274, 11)
         cacheLast←v5780 = (* (( (ptr) gf←c30368)+8)/* cacheHead←v3364 */  );
SOURCE(1317, 56)
         lab←L100002: ;
         if (((* (( (ptr) cacheLast←v5780)+2) ) != 0)) {
            }
         else {
            goto lab←L100000;
            };
SOURCE(1347, 26)
         cacheLast←v5780 = (* (( (ptr) cacheLast←v5780)+2) );
         goto lab←L100002;
         lab←L100000: ;
SOURCE(1384, 51)
         {
            word var←c27904;
            word var←c27936;
            var←c27904 = XR←NewObject(12, (* (( (ptr) gf←c30368)+13) ));
            var←c27936 = var←c27904;
            (*  (ptr) var←c27936 ) = fileID←v4468;
            (* (( (ptr) var←c27936)+1) ) = data←v4496;
            (* (( (ptr) cacheLast←v5780)+2) ) = var←c27904;
            };
         };
      };
SOURCE(1179, 256)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c30368)+16)/* LOCK←v3084 */ ));
   return;
   }

static word GetFromCache←P240(fileID←v4568)
   word fileID←v4568;
   {
   register ptr gf←c30400 =  (ptr) &globalframe;
   word var←c4612;
   /* GetFromCache: */ 
SOURCE(1444, 299)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c30400)+16)/* LOCK←v3084 */ ));
SOURCE(1504, 33)
   if ((fileID←v4568 == 0)) {
SOURCE(1525, 12)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c30400)+16)/* LOCK←v3084 */ ));
      return(0);
      };
SOURCE(1539, 178)
   {
      register word tail←v5908;
      tail←v5908 = (* (( (ptr) (* (( (ptr) gf←c30400)+8)/* cacheHead←v3364 */  ))+2) );
      lab←L100006: ;
      if ((tail←v5908 != 0)) {
         }
      else {
         goto lab←L100003;
         };
SOURCE(1616, 101)
      if ((0 != (word) FileIDEqual←P120(fileID←v4568, (*  (ptr) tail←v5908 )))) {
SOURCE(1665, 26)
         (* (( (ptr) (* (( (ptr) gf←c30400)+8)/* cacheHead←v3364 */  ))+2) ) = (* (( (ptr) tail←v5908)+2) );
SOURCE(1693, 24)
         {
            word var←c27968;
            var←c27968 = (* (( (ptr) tail←v5908)+1) );
            (void) (XR←MonitorExit((word) (( (bPt) gf←c30400)+16)/* LOCK←v3084 */ ));
            return(var←c27968);
            };
         };
      tail←v5908 = (* (( (ptr) tail←v5908)+2) );
      goto lab←L100006;
      lab←L100003: ;
      };
SOURCE(1731, 12)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c30400)+16)/* LOCK←v3084 */ ));
   return(0);
   }

static word Protect←P300(formal←c0268, formal←c0269)
   word formal←c0268;
   word formal←c0269;
   {
   W7 var←c30432;
   /* declaration of instance←v4684 skipped */ 
   /* declaration of inner←v4712 skipped */ 
   /* declaration of var←c01 skipped */ 
   word var←c4816;
   var←c30432.f4/* instance←v4684 */  = formal←c0268;
   var←c30432.f5/* inner←v4712 */  = formal←c0269;
   /* Protect: */ 
SOURCE(1748, 489)
SOURCE(1824, 413)
SOURCE(1826, 380)
   {
      word var←c02;
      {
         word var←c0253;
         var←c0253 = (word) &var←c30432;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2916) ), ( ((word)  (fPt) NoName←Q2976) ), var←c0253);
         };
      if ((var←c02 == 2)) {
         goto lab←L100007;
         }
      else {
         if ((var←c02 == 1)) {
            goto lab←L02;
            };
         };
      };
   goto lab←L100010;
   lab←L100007: ;
SOURCE(2222, 13)
   return(1);
   lab←L100010: ;
   lab←L02: ;
   return(var←c30432.f6/* var←c01 */ );
   }

static word NoName←Q2916(formal←c0231)
   word formal←c0231;
   {
SOURCE(2175, 15)
   {
      word pd60;
      pd60 = (* (( (ptr) formal←c0231)+5) );
      (void) ( *( (fPt) ((*  (ptr) pd60 ))))((* ((( (ptr) formal←c0231)+4)) ), pd60);
      };
SOURCE(2192, 14)
   (* (( (ptr) formal←c0231)+6) ) = 0;
   return(1);
   /* c2c skipped dead code */ 
   }

static void ipErrorProc←P360(instance←v4876, error←v4904, warning←v4932)
   word instance←v4876;
   W3 error←v4904;
   word warning←v4932;
   {
   register ptr gf←c30464 =  (ptr) &globalframe;
   word ros←v6080;
   word key←v6108;
   word severity←v6136 = 2;
   /* ipErrorProc: */ 
SOURCE(2241, 417)
SOURCE(2329, 22)
   {
      word pd61;
      pd61 = (* (( (ptr) (* (( (ptr) gf←c30464)+105)/* var←c28096 */  ))+34) );
      ros←v6080 = (word) ( *( (fPt) ((*  (ptr) pd61 ))))(0, pd61);
      };
SOURCE(2353, 24)
   key←v6108 = (* (( (ptr) gf←c30464)+47) );
SOURCE(2426, 57)
   if ((0 != warning←v4932)) {
SOURCE(2443, 20)
      key←v6108 = (* (( (ptr) gf←c30464)+46) );
SOURCE(2465, 18)
      severity←v6136 = 1;
      };
SOURCE(2486, 80)
   if ((error←v4904.f0 != 0)) {
SOURCE(2510, 56)
      {
         W2 var←c28128;
         var←c28128.f0 = 5;
         var←c28128.f1 = error←v4904.f0;
         {
            word pd62;
            pd62 = (* (( (ptr) (* (( (ptr) gf←c30464)+105)/* var←c28096 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd62 ))))(ros←v6080, (* (( (ptr) gf←c30464)+45) ), var←c28128, pd62);
            };
         };
      };
SOURCE(2568, 34)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c30464)+105)/* var←c28096 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd63 ))))(ros←v6080, error←v4904.f1, 0, 2147483647, pd63);
      };
SOURCE(2604, 54)
   {
      word var←c28160;
      {
         word pd64;
         pd64 = (* (( (ptr) (* (( (ptr) gf←c30464)+105)/* var←c28096 */  ))+35) );
         var←c28160 = (word) ( *( (fPt) ((*  (ptr) pd64 ))))(ros←v6080, 1, pd64);
         };
      (void) Feedback←P480(instance←v4876, key←v6108, severity←v6136, var←c28160);
      };
   }

static void ipLogProc←P420(instance←v4992, class←v5020, code←v5048, explanation←v5076, propList←v5104)
   word instance←v4992;
   word class←v5020;
   word code←v5048;
   word explanation←v5076;
   word propList←v5104;
   {
   register ptr gf←c30496 =  (ptr) &globalframe;
   word out←v6180;
   word key←v6208;
   word severity←v6236;
   /* ipLogProc: */ 
SOURCE(2664, 1158)
SOURCE(2790, 22)
   {
      word pd65;
      pd65 = (* (( (ptr) (* (( (ptr) gf←c30496)+105)/* var←c28096 */  ))+34) );
      out←v6180 = (word) ( *( (fPt) ((*  (ptr) pd65 ))))(0, pd65);
      };
SOURCE(2814, 378)
   {
      word var←c28192;
      var←c28192 = class←v5020;
      if (( (int)var←c28192 >=  (int)100)) {
         key←v6208 = (* (( (ptr) gf←c30496)+44) );
         goto endif066;
         };
      if (( (int)var←c28192 >=  (int)60)) {
         key←v6208 = (* (( (ptr) gf←c30496)+46) );
         goto endif066;
         };
      if (( (int)var←c28192 >=  (int)50)) {
         key←v6208 = (* (( (ptr) gf←c30496)+47) );
         goto endif066;
         };
      if (( (int)var←c28192 >=  (int)10)) {
         key←v6208 = (* (( (ptr) gf←c30496)+40) );
         goto endif066;
         };
      if (( (int)var←c28192 >=  (int)0)) {
         key←v6208 = (* (( (ptr) gf←c30496)+39) );
         goto endif066;
         };
      key←v6208 = (* (( (ptr) gf←c30496)+39) );
      goto endif066;
      endif066: ;
      };
SOURCE(3194, 356)
   {
      word var←c28224;
      var←c28224 = class←v5020;
      if (( (int)var←c28224 >=  (int)100)) {
         severity←v6236 = 0;
         goto endif067;
         };
      if (( (int)var←c28224 >=  (int)60)) {
         severity←v6236 = 1;
         goto endif067;
         };
      if (( (int)var←c28224 >=  (int)50)) {
         severity←v6236 = 1;
         goto endif067;
         };
      if (( (int)var←c28224 >=  (int)10)) {
         severity←v6236 = 1;
         goto endif067;
         };
      if (( (int)var←c28224 >=  (int)0)) {
         severity←v6236 = 2;
         goto endif067;
         };
      severity←v6236 = 2;
      goto endif067;
      endif067: ;
      };
SOURCE(3552, 66)
   if (( (int)class←v5020 !=  (int)0)) {
SOURCE(3570, 48)
      {
         W2 var←c28256;
         var←c28256.f0 = 5;
         var←c28256.f1 = class←v5020;
         {
            word pd68;
            pd68 = (* (( (ptr) (* (( (ptr) gf←c30496)+105)/* var←c28096 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd68 ))))(out←v6180, (* (( (ptr) gf←c30496)+38) ), var←c28256, pd68);
            };
         };
      };
SOURCE(3620, 116)
   if ((code←v5048 != 0)) {
SOURCE(3638, 98)
      {
         word var←c28288;
         {
            word pd69;
            pd69 = (* (( (ptr) (* (( (ptr) gf←c30496)+104)/* var←c28064 */  ))+6) );
            var←c28288 = (word) ( *( (fPt) ((*  (ptr) pd69 ))))(code←v5048, pd69);
            };
         {
            W2 var←c28320;
            W2 var←c28352;
            W2 var←c0254;
            var←c28320.f0 = 1;
            var←c28320.f1 = var←c28288;
            var←c28352.f0 = 5;
            var←c28352.f1 = code←v5048;
            (*  (ptr) (word) &var←c0254 ) = 0;
            (* (( (ptr) (word) &var←c0254) + 1) ) = 0;
            {
               word pd70;
               pd70 = (* (( (ptr) (* (( (ptr) gf←c30496)+105)/* var←c28096 */  ))+60) );
               (void) ( *( (fPt) ((*  (ptr) pd70 ))))(out←v6180, (* (( (ptr) gf←c30496)+35) ), var←c28320, var←c28352, var←c0254, pd70);
               };
            };
         };
      };
SOURCE(3738, 28)
   {
      word pd71;
      pd71 = (* (( (ptr) (* (( (ptr) gf←c30496)+105)/* var←c28096 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd71 ))))(out←v6180, explanation←v5076, 0, 2147483647, pd71);
      };
SOURCE(3768, 54)
   {
      word var←c28416;
      {
         word pd72;
         pd72 = (* (( (ptr) (* (( (ptr) gf←c30496)+105)/* var←c28096 */  ))+35) );
         var←c28416 = (word) ( *( (fPt) ((*  (ptr) pd72 ))))(out←v6180, 1, pd72);
         };
      (void) Feedback←P480(instance←v4992, key←v6208, severity←v6236, var←c28416);
      };
   }

static void Feedback←P480(instance←v5164, key←v5192, severity←v5220, info←v5248)
   word instance←v5164;
   word key←v5192;
   word severity←v5220;
   word info←v5248;
   {
   register ptr gf←c30528 =  (ptr) &globalframe;
   /* Feedback: */ 
SOURCE(3828, 381)
SOURCE(3952, 176)
   {
      word var←c28448;
      var←c28448 = (* (( (ptr) instance←v5164)+9) );
      if ((var←c28448 == 0)) {
         goto lab←L100011;
         };
      if (((* (( (ptr) gf←c30528)+34) ) == XR←GetReferentType(var←c28448))) {
         {
            word tm←v6280;
            tm←v6280 = var←c28448;
SOURCE(4008, 120)
            {
               word pd73;
               pd73 = (* (( (ptr) (* (( (ptr) gf←c30528)+106)/* var←c28480 */  ))+5) );
               if (((word) ( *( (fPt) ((*  (ptr) pd73 ))))((* (( (ptr) tm←v6280)+2) ), (* (( (ptr) gf←c30528)+36) ), pd73) == 0)) {
SOURCE(4066, 62)
                  {
                     word pd74;
                     pd74 = (* (( (ptr) (* (( (ptr) gf←c30528)+106)/* var←c28480 */  ))+4) );
                     (* (( (ptr) tm←v6280)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd74 ))))((* (( (ptr) tm←v6280)+2) ), (* (( (ptr) gf←c30528)+36)
                         ), (* (( (ptr) gf←c30528)+37) ), pd74);
                     };
                  };
               };
            };
         }
      else {
         lab←L100011: ;
         };
      };
SOURCE(4145, 64)
   {
      word pd75;
      pd75 = (*  (ptr) (* (( (ptr) (* (( (ptr) instance←v5164)+1) ))+8) ) );
      (void) ( *( (fPt) ((*  (ptr) pd75 ))))(instance←v5164, key←v5192, severity←v5220, info←v5248, pd75);
      };
   }

static word ipGuessProc←P540(data←v11228, seq←v11256)
   word data←v11228;
   word seq←v11256;
   {
   register ptr gf←c30560 =  (ptr) &globalframe;
   word var←c11300;
   word probability←v6324;
   word lead←v6352;
   word init←v6380;
   word var←c28576;
   word object←v26864;
   /* ipGuessProc: */ 
SOURCE(4215, 343)
SOURCE(4242, 23)
   probability←v6324 = (*  (ptr) &fc76 );
SOURCE(4267, 42)
   {
      word pd77;
      pd77 = (* (( (ptr) (* (( (ptr) gf←c30560)+107)/* var←c28512 */  ))+6) );
      lead←v6352 = (word) ( *( (fPt) ((*  (ptr) pd77 ))))(26, pd77);
      };
SOURCE(4311, 31)
   {
      word pd78;
      pd78 = (* (( (ptr) (* (( (ptr) gf←c30560)+105)/* var←c28096 */  ))+29) );
      init←v6380 = (word) ( *( (fPt) ((*  (ptr) pd78 ))))((*  (ptr) (seq←v11256) ), pd78);
      };
SOURCE(4344, 46)
   {
      word var←c28544;
      {
         word pd79;
         word idx80;
         pd79 = (* (( (ptr) (* (( (ptr) gf←c30560)+105)/* var←c28096 */  ))+13) );
         var←c28544 = (
            idx80 = (word) ( *( (fPt) ((*  (ptr) pd79 ))))((*  (ptr) seq←v11256 ), lead←v6352, 0, 26, pd79),
            BCK(idx80, 32768)
            );
         };
      (*  (hPt) lead←v6352 ) = var←c28544;
      };
SOURCE(4392, 25)
   {
      word pd81;
      pd81 = (* (( (ptr) (* (( (ptr) gf←c30560)+105)/* var←c28096 */  ))+30) );
      (void) ( *( (fPt) ((*  (ptr) pd81 ))))((*  (ptr) seq←v11256 ), init←v6380, pd81);
      };
SOURCE(4419, 87)
   object←v26864 = lead←v6352;
   {
      word pd82;
      pd82 = (* (( (ptr) (* (( (ptr) gf←c30560)+102)/* var←c27872 */  ))+23) );
      var←c28576 = (word) ( *( (fPt) ((*  (ptr) pd82 ))))((* (( (ptr) gf←c30560)+41) ), object←v26864, 0, pd82);
      };
   if ((0 != var←c28576)) {
SOURCE(4487, 19)
      probability←v6324 = (*  (ptr) &fc83 );
      };
SOURCE(4508, 28)
   {
      word pd84;
      pd84 = (* (( (ptr) (* (( (ptr) gf←c30560)+107)/* var←c28512 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd84 ))))(lead←v6352, pd84);
      };
SOURCE(4538, 20)
   return(probability←v6324);
   }

static word GetCopies←P600(instance←v5320)
   word instance←v5320;
   {
   register ptr gf←c30592 =  (ptr) &globalframe;
   word copies←v5364;
   word values←v6436;
   /* GetCopies: */ 
SOURCE(4564, 547)
SOURCE(4564, 547)
   copies←v5364 = 0;
SOURCE(4636, 102)
   {
      word pd85;
      pd85 = (* (( (ptr) (* (( (ptr) (* (( (ptr) instance←v5320)+1) ))+8) ))+1) );
      values←v6436 = (word) ( *( (fPt) ((*  (ptr) pd85 ))))((* (( (ptr) instance←v5320)+1) ), (* (( (ptr) gf←c30592)+42) ), pd85)
      ;
      };
SOURCE(4740, 211)
   if ( ( (values←v6436 != 0) ? ((*  (ptr) values←v6436 ) > 0) : 0 ) ) {
SOURCE(4780, 171)
      {
         word var←c28640;
         {
            word limit86;
            var←c28640 = (* ((( (ptr) values←v6436)+1)+(
                  limit86 = (*  (ptr) values←v6436 ),
                  BCK(0, limit86)
                  )) );
            };
         if ((var←c28640 == 0)) {
            goto lab←L100013;
            };
         {
            word var←c28672;
            var←c28672 = (*  (ptr) var←c28640 );
            if ((var←c28672 == 1)) {
               {
                  word iv←v6480;
                  iv←v6480 = var←c28640;
SOURCE(4854, 27)
                  {
                     word x87;
                     copies←v5364 = (x87 = (* (( (ptr) iv←v6480)+1) ),
                        MAX((int)(word), x87, 0));
                     };
                  };
               }
            else {
               if ((var←c28672 == 0)) {
                  {
                     word cv←v6536;
                     cv←v6536 = var←c28640;
SOURCE(4931, 20)
                     copies←v5364 = (* (( (ptr) cv←v6536)+1) );
                     };
                  }
               else {
                  lab←L100013: ;
                  };
               };
            };
         };
      };
SOURCE(4962, 149)
   if ((copies←v5364 > 20000)) {
SOURCE(4987, 108)
      (void) ipLogProc←P420(instance←v5320, 10, 1, (* (( (ptr) gf←c30592)+43) ), 0);
SOURCE(5097, 14)
      copies←v5364 = 20000;
      };
SOURCE(4564, 547)
   return(copies←v5364);
   }

static word ipOpenProc←P660(data←v11360, formal←c0270)
   word data←v11360;
   word formal←c0270;
   {
   W11 var←c30624;
   /* declaration of seq←v11388 skipped */ 
   register ptr gf←c30656 =  (ptr) &globalframe;
   word var←c11432;
   /* declaration of var←c28704 skipped */ 
   /* declaration of var←c28736 skipped */ 
   /* declaration of fileID←v6592 skipped */ 
   (* (( (ptr) &var←c30624)+4)/* seq←v11388 */  ) = formal←c0270;
   /* ipOpenProc: */ 
SOURCE(5120, 1378)
   {
      word tmpAddr88;
      tmpAddr88 = (word) (( (ptr) &var←c30624)+5)/* var←c28704 */ ;
      (*  (ptr) tmpAddr88 ) = ( ((word)  (fPt) doOpen←P1752) );
      (* (( (ptr) tmpAddr88) + 1) ) = 1;
      };
   {
      word tmpAddr89;
      tmpAddr89 = (word) (( (ptr) &var←c30624)+7)/* var←c28736 */ ;
      (*  (ptr) tmpAddr89 ) = ( ((word)  (fPt) localLog←P1692) );
      (* (( (ptr) tmpAddr89) + 1) ) = 1;
      };
SOURCE(5145, 41)
   (* (( (ptr) &var←c30624)+9)/* fileID←v6592 */  ) = (word) FileIDFromStream←P60((*  (ptr) ((* (( (ptr) &var←c30624)+4)/* seq←v11388 */  )) ))
   ;
SOURCE(5188, 1310)
   {
      word var←c28768;
      var←c28768 = (word) GetFromCache←P240((* ((( (ptr) &var←c30624)+9)/* fileID←v6592 */ ) ));
      if ((var←c28768 == 0)) {
         goto lab←L100014;
         };
      if (((* (( (ptr) gf←c30656)+31) ) == XR←GetReferentType(var←c28768))) {
         {
            word instance←v6636;
            instance←v6636 = var←c28768;
SOURCE(5250, 16)
            {
               word pd90;
               pd90 = (* (( (ptr) (* (( (ptr) gf←c30656)+105)/* var←c28096 */  ))+28) );
               (void) ( *( (fPt) ((*  (ptr) pd90 ))))((*  (ptr) (* (( (ptr) &var←c30624)+4)/* seq←v11388 */  ) ), 0, pd90);
               };
SOURCE(5293, 24)
            (* (( (ptr) instance←v6636)+1) ) = (* (( (ptr) &var←c30624)+4)/* seq←v11388 */  );
SOURCE(5319, 37)
            {
               word var←c28800;
               {
                  word idx91;
                  var←c28800 = (
                     idx91 = (word) GetCopies←P600(instance←v6636),
                     SGNCK(idx91)
                     );
                  };
               (* (( (ptr) instance←v6636)+4) ) = var←c28800;
               };
SOURCE(5358, 57)
            {
               word tadr92;
               tadr92 = (word) (( (ptr) instance←v6636) + 3);
               (*  (ptr) tadr92 ) = ((*  (ptr) tadr92 ) & 4294967291) | (((word) (((unsigned)(* (( (bPt) (* (( (ptr) instance←v6636)+1) ))+31)
                      ) << 29) >> 31)) << 2);
               };
SOURCE(5417, 17)
            return(instance←v6636);
            };
         }
      else {
         lab←L100014: ;
SOURCE(5450, 1050)
         {
            /* declaration of instance←v6680 skipped */ 
SOURCE(5452, 129)
            (* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ) = XR←NewObject(40, (* (( (ptr) gf←c30656)+31) ));
            (*  (ptr) (* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ) ) = data←v11360;
            (* (( (ptr) (* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ))+1) ) = (* (( (ptr) &var←c30624)+4)/* seq←v11388 */  );
            (* (( (ptr) (* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ))+6) ) =  (word) -1;
            (* (( (ptr) (* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ))+8) ) = (* (( (ptr) gf←c30656)+9)/* ipInstanceProcs←v3840 */  );
SOURCE(6344, 37)
            {
               word var←c28864;
               {
                  word idx93;
                  var←c28864 = (
                     idx93 = (word) GetCopies←P600((* ((( (ptr) &var←c30624)+10)/* instance←v6680 */ ) )),
                     SGNCK(idx93)
                     );
                  };
               (* (( (ptr) (* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ))+4) ) = var←c28864;
               };
SOURCE(6383, 30)
            {
               word var←c28896;
               var←c28896 = (word) Protect←P300((* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ), (word) (( (bPt) &var←c30624)+20)/* var←c28704 */ )
               ;
               };
SOURCE(6415, 64)
            if (((* (( (ptr) &var←c30624)+9)/* fileID←v6592 */  ) != 0)) {
SOURCE(6436, 43)
               {
                  word var←c28928;
                  var←c28928 = (word) Clone←P960((* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ), 1);
                  (void) EnterInCache←P180((* (( (ptr) &var←c30624)+9)/* fileID←v6592 */  ), var←c28928);
                  };
               };
SOURCE(6481, 17)
            return((* (( (ptr) &var←c30624)+10)/* instance←v6680 */  ));
            };
         };
      };
   }

static void localLog←P1692(class←v22744, code←v22772, explanation←v22800, propList←v22828, formal←c30688)
   word class←v22744;
   word code←v22772;
   word explanation←v22800;
   word propList←v22828;
   word formal←c30688;
   {
   formal←c30688 = (formal←c30688 - 28);
   /* localLog: */ 
SOURCE(5583, 42)
SOURCE(5627, 55)
   (void) ipLogProc←P420((* (( (ptr) formal←c30688)+10) ), class←v22744, code←v22772, explanation←v22800, propList←v22828);
   }

static void doOpen←P1752(instance←v6812, formal←c30752)
   word instance←v6812;
   word formal←c30752;
   {
   register ptr gf←c30720 =  (ptr) &globalframe;
   word reverse←v6840;
   word credentials←v6868 = 0;
   word externalInstructions←v6896;
   word defaultInstructions←v6924 = 0;
   word master←v6952;
   formal←c30752 = (formal←c30752 - 20);
   /* doOpen: */ 
SOURCE(5687, 14)
SOURCE(5725, 48)
   reverse←v6840 =  (unsigned) (((unsigned)(* (( (bPt) (* (( (ptr) instance←v6812)+1) ))+31) ) << 29) >> 31);
SOURCE(5838, 54)
   externalInstructions←v6896 = (word) MakeInstructions←P1140(instance←v6812);
SOURCE(5965, 193)
   {
      word pd94;
      pd94 = (* (( (ptr) (* (( (ptr) gf←c30720)+108)/* var←c28960 */  ))+6) );
      master←v6952 = (word) ( *( (fPt) ((*  (ptr) pd94 ))))((*  (ptr) (* (( (ptr) formal←c30752)+4) ) ), (word) (( (bPt) formal←c30752)+28)
         , credentials←v6868, externalInstructions←v6896, defaultInstructions←v6924, pd94);
      };
SOURCE(6160, 71)
   {
      word var←c28992;
      var←c28992 = XR←NewObject(12, (* (( (ptr) gf←c30720)+34) ));
      (*  (ptr) var←c28992 ) = (* (( (ptr) formal←c30752)+9) );
      (* (( (ptr) var←c28992)+1) ) = master←v6952;
      (* (( (ptr) instance←v6812)+9) ) = var←c28992;
      };
SOURCE(6233, 29)
   (* (( (ptr) instance←v6812)+6) ) = (*  (ptr) master←v6952 );
SOURCE(6264, 75)
   {
      word tadr95;
      tadr95 = (word) (( (ptr) instance←v6812) + 3);
      (*  (ptr) tadr95 ) = ((*  (ptr) tadr95 ) & 4294967288) | ((word) ((((word)  (unsigned) (reverse←v6840 & 1) << 2) + 2) & 7))
      ;
      };
   }

static void ipCleanProc←P720(data←v11492)
   word data←v11492;
   {
   /* ipCleanProc: */ 
   }

static void ipAttributesProc←P780(instance←v11552)
   word instance←v11552;
   {
   W6 var←c30784;
   /* declaration of var←c29056 skipped */ 
   /* ipAttributesProc: */ 
SOURCE(6538, 129)
   {
      word tmpAddr96;
      tmpAddr96 = (word) (( (ptr) &var←c30784)+4)/* var←c29056 */ ;
      (*  (ptr) tmpAddr96 ) = ( ((word)  (fPt) inner←P1812) );
      (* (( (ptr) tmpAddr96) + 1) ) = 1;
      };
SOURCE(6638, 29)
   {
      word var←c29088;
      var←c29088 = (word) Protect←P300(instance←v11552, (word) (( (bPt) &var←c30784)+16)/* var←c29056 */ );
      };
   }

static void inner←P1812(inst←v7108, formal←c30848)
   word inst←v7108;
   word formal←c30848;
   {
   register ptr gf←c30816 =  (ptr) &globalframe;
   formal←c30848 = (formal←c30848 - 16);
   /* inner: */ 
SOURCE(6575, 58)
SOURCE(6608, 25)
   {
      word pd97;
      pd97 = (* (( (ptr) (* (( (ptr) gf←c30816)+109)/* var←c29120 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd97 ))))(inst←v7108, pd97);
      };
   }

static word ipPageProc←P840(instance←v11612, formal←c0271, formal←c0272)
   word instance←v11612;
   word formal←c0271;
   word formal←c0272;
   {
   W9 var←c30880;
   /* declaration of page←v11640 skipped */ 
   /* declaration of copy←v11668 skipped */ 
   word var←c11712;
   /* declaration of var←c29152 skipped */ 
   /* declaration of flags←v7136 skipped */ 
   (* (( (ptr) &var←c30880)+4)/* page←v11640 */  ) = formal←c0271;
   (* (( (ptr) &var←c30880)+5)/* copy←v11668 */  ) = formal←c0272;
   /* ipPageProc: */ 
SOURCE(6672, 1578)
   {
      word tmpAddr98;
      tmpAddr98 = (word) (( (ptr) &var←c30880)+6)/* var←c29152 */ ;
      (*  (ptr) tmpAddr98 ) = ( ((word)  (fPt) doPage←P1872) );
      (* (( (ptr) tmpAddr98) + 1) ) = 1;
      };
SOURCE(6697, 21)
   (* (( (ptr) &var←c30880)+8)/* flags←v7136 */  ) = 0;
SOURCE(8178, 56)
   if ((0 != (word) Protect←P300(instance←v11612, (word) (( (bPt) &var←c30880)+24)/* var←c29152 */ ))) {
SOURCE(8212, 22)
      (* (( (ptr) (&var←c30880)) + 8) ) |= 32;
      };
SOURCE(8236, 14)
   return((* (( (ptr) &var←c30880)+8)/* flags←v7136 */  ));
   }

static void doPage←P1872(formal←c0273, formal←c30976)
   word formal←c0273;
   word formal←c30976;
   {
   W7 var←c30912;
   /* declaration of instance←v7240 skipped */ 
   register ptr gf←c30944 =  (ptr) &globalframe;
   /* declaration of var←c29184 skipped */ 
   formal←c30976 = (formal←c30976 - 24);
   var←c30912.f4/* instance←v7240 */  = formal←c0273;
   var←c30912.f0 = formal←c30976;
   /* doPage: */ 
SOURCE(6720, 1453)
   {
      word tmpAddr99;
      tmpAddr99 = (word) (( (ptr) &var←c30912)+5)/* var←c29184 */ ;
      (*  (ptr) tmpAddr99 ) = ( ((word)  (fPt) localLog←P2028) );
      (* (( (ptr) tmpAddr99) + 1) ) = 1;
      };
SOURCE(6758, 1415)
   {
      word var←c29280;
      {
         word var←c29216;
SOURCE(503, 24)
         {
            word var←c29248;
            var←c29248 = (* (( (ptr) var←c30912.f4/* instance←v7240 */ )+9) );
            if ((var←c29248 == 0)) {
               goto lab←L100015;
               };
            if (((* (( (ptr) gf←c30944)+34) ) == XR←GetReferentType(var←c29248))) {
               {
                  word tm←v23864;
                  tm←v23864 = var←c29248;
                  var←c29216 = (* (( (ptr) tm←v23864)+1) );
                  };
               }
            else {
               lab←L100015: ;
               var←c29216 = 0;
               goto lab←L100016;
               };
            };
         lab←L100016: ;
         var←c29280 = var←c29216;
         };
      if ((var←c29280 == 0)) {
         goto lab←L100017;
         };
      if (1) {
         {
            word m←v7268;
            m←v7268 = var←c29280;
            {
               word var←c29312;
SOURCE(6832, 22)
               (* (( (ptr) formal←c30976) + 8) ) |= 2;
SOURCE(6856, 46)
               {
                  word idx100;
                  if (( (int)(
                     idx100 = (* (( (ptr) formal←c30976)+4) ),
                     SGNCK(idx100)
                     ) >=  (int)(*  (ptr) m←v7268 ))) {
SOURCE(6885, 17)
                     (* (( (ptr) formal←c30976) + 8) ) |= 1;
                     };
                  };
SOURCE(6904, 1225)
               {
                  word idx101;
                  var←c29312 = (
                     idx101 = (* (( (ptr) formal←c30976)+4) ),
                     SGNCK(idx101)
                     );
                  };
               if ( ( ( (int)var←c29312 >=  (int)1) ? ( (int)var←c29312 <=  (int)(*  (ptr) m←v7268 )) : 0 ) ) {
SOURCE(6938, 1196)
SOURCE(7218, 56)
                  if ((* (( (bPt) var←c30912.f4/* instance←v7240 */ )+15) ) & 04) {
SOURCE(7249, 25)
                     (* (( (ptr) formal←c30976)+4) ) = (((*  (ptr) m←v7268 ) - (* (( (ptr) formal←c30976)+4) )) + 1);
                     };
SOURCE(7276, 19)
                  (* (( (ptr) formal←c30976) + 8) ) |= 16;
SOURCE(7297, 22)
                  (* (( (ptr) formal←c30976) + 8) ) |= 2;
SOURCE(7321, 130)
                  {
                     word var←c29344;
                     {
                        W2 var←c29376;
                        W2 var←c29408;
                        W2 var←c0255;
                        var←c29376.f0 = 5;
                        {
                           word idx102;
                           var←c29376.f1 = (
/*1*/   idx102 = (* (( (ptr) formal←c30976)+4) ),
/*1*/   SGNCK(idx102)
/*1*/   );
                           };
                        var←c29408.f0 = 5;
                        {
                           word idx103;
                           var←c29408.f1 = (
/*1*/   idx103 = (* (( (ptr) formal←c30976)+5) ),
/*1*/   SGNCK(idx103)
/*1*/   );
                           };
                        (*  (ptr) (word) &var←c0255 ) = 0;
                        (* (( (ptr) (word) &var←c0255) + 1) ) = 0;
                        {
                           word pd104;
                           pd104 = (* (( (ptr) (* (( (ptr) gf←c30944)+105)/* var←c28096 */  ))+62) );
                           var←c29344 = (word) ( *( (fPt) ((*  (ptr) pd104 ))))((* (( (ptr) gf←c30944)+50) ), var←c29376, var←c29408, var←c0255, pd104)
                           ;
                           };
                        };
                     {
                        word pd105;
                        pd105 = (*  (ptr) (* (( (ptr) (* (( (ptr) var←c30912.f4/* instance←v7240 */ )+1) ))+8) ) );
                        (void) ( *( (fPt) ((*  (ptr) pd105 ))))(var←c30912.f4/* instance←v7240 */ , (* (( (ptr) gf←c30944)+49) ), 0, var←c29344, pd105)
                        ;
                        };
                     };
SOURCE(7453, 676)
                  if (((* (( (ptr) formal←c30976)+5) ) == 0)) {
SOURCE(7472, 65)
                     {
                        word pd106;
                        word idx107;
                        pd106 = (* (( (ptr) (* (( (ptr) gf←c30944)+108)/* var←c28960 */  ))+9) );
                        (void) ( *( (fPt) ((*  (ptr) pd106 ))))(m←v7268, (
/*1*/   idx107 = (* (( (ptr) formal←c30976)+4) ),
/*1*/   SGNCK(idx107)
/*1*/   ), (* (( (ptr) var←c30912.f4/* instance←v7240 */ )+2) ), (word) (( (bPt) &var←c30912)+20)/* var←c29184 */ , 1, pd106);
                        };
                     }
                  else {
SOURCE(7546, 585)
                     {
                        word outputPosition←v7356 = 0;
                        word mediaOffset←v7384 = 0;
SOURCE(7605, 123)
                        {
                           W3 var←c29504;
                           {
/*1*/   word pd108;
/*1*/   word idx109;
/*1*/   word idx110;
/*1*/   pd108 = (* (( (ptr) (* (( (ptr) gf←c30944)+110)/* var←c29472 */  ))+6) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd108 ))))((word) &var←c29504, m←v7268, (
/*1*/         idx109 = (* (( (ptr) formal←c30976)+5) ),
/*1*/         SGNCK(idx109)
/*1*/         ), (
/*1*/         idx110 = (* (( (ptr) formal←c30976)+4) ),
/*1*/         SGNCK(idx110)
/*1*/         ), pd108);
/*1*/   };
                           outputPosition←v7356 = var←c29504.f2;
                           mediaOffset←v7384 = var←c29504.f1;
                           {
/*1*/   word tadr111;
/*1*/   tadr111 = (word) (( (ptr) formal←c30976) + 8);
/*1*/   (*  (ptr) tadr111 ) = ((*  (ptr) tadr111 ) & 4294967279) | (((word) ((* (( (bPt) &var←c29504)+3) ) & 1)) << 4);
/*1*/   };
                           };
SOURCE(7730, 399)
                        if ((* (( (bPt) formal←c30976)+35) ) & 020) {
SOURCE(7751, 291)
                           {
/*1*/   word ctx←v7428;
SOURCE(7753, 38)
/*1*/   ctx←v7428 = (* (( (ptr) var←c30912.f4/* instance←v7240 */ )+2) );
SOURCE(7793, 80)
/*1*/   {
/*1*/      word var←c29536;
/*1*/      word pd112;
/*1*/      word idx113;
/*1*/      word idx114;
/*1*/      pd112 = (* (( (ptr) (* (( (ptr) gf←c30944)+108)/* var←c28960 */  ))+10) );
/*1*/      var←c29536 = (word) ( *( (fPt) ((*  (ptr) pd112 ))))(m←v7268, (
/*1*/            idx113 = (* (( (ptr) formal←c30976)+4) ),
/*1*/            SGNCK(idx113)
/*1*/            ), ctx←v7428, (word) (( (bPt) &var←c30912)+20)/* var←c29184 */ , (
/*1*/            idx114 = (* (( (ptr) formal←c30976)+5) ),
/*1*/            SGNCK(idx114)
/*1*/            ), pd112);
/*1*/      };
SOURCE(7875, 165)
/*1*/   {
/*1*/      word var←c29600;
/*1*/      {
/*1*/         word pd115;
/*1*/         pd115 = (* (( (ptr) (* (( (ptr) gf←c30944)+111)/* var←c29568 */  ))+11) );
/*1*/         var←c29600 = (word) ( *( (fPt) ((*  (ptr) pd115 ))))(ctx←v7428, (* (( (ptr) gf←c30944)+51) ), pd115);
/*1*/         };
/*1*/      if ((var←c29600 == 0)) {
/*1*/         goto lab←L100018;
/*1*/         };
/*1*/      if (((* (( (ptr) gf←c30944)+23) ) == XR←GetReferentType(var←c29600))) {
/*1*/         {
/*1*/            word rc←v7472;
/*1*/            rc←v7472 = var←c29600;
SOURCE(7944, 20)
/*1*/            (*  (ptr) rc←v7472 ) = outputPosition←v7356;
/*1*/            };
/*1*/         }
/*1*/      else {
/*1*/         lab←L100018: ;
SOURCE(7977, 63)
/*1*/         {
/*1*/            word var←c29632;
/*1*/            {
/*1*/               word var←c29664;
/*1*/               var←c29664 = XR←NewObject(4, (* (( (ptr) gf←c30944)+23) ));
/*1*/               (*  (ptr) var←c29664 ) = outputPosition←v7356;
/*1*/               var←c29632 = var←c29664;
/*1*/               };
/*1*/            {
/*1*/               word pd116;
/*1*/               pd116 = (* (( (ptr) (* (( (ptr) gf←c30944)+111)/* var←c29568 */  ))+10) );
/*1*/               (void) ( *( (fPt) ((*  (ptr) pd116 ))))(ctx←v7428, (* (( (ptr) gf←c30944)+51) ), var←c29632, pd116);
/*1*/               };
/*1*/            };
/*1*/         };
/*1*/      };
/*1*/   };
                           }
                        else {
SOURCE(8049, 80)
                           {
/*1*/   word pd117;
/*1*/   pd117 = (*  (ptr) (* (( (ptr) (* (( (ptr) var←c30912.f4/* instance←v7240 */ )+1) ))+8) ) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd117 ))))(var←c30912.f4/* instance←v7240 */ , (* (( (ptr) gf←c30944)+49) ), 0, (* (( (ptr) gf←c30944)+53)
/*1*/       ), pd117);
/*1*/   };
                           };
                        };
                     };
                  };
               };
            };
         }
      else {
         lab←L100017: ;
SOURCE(8151, 22)
         (* (( (ptr) formal←c30976) + 8) ) |= 32;
         };
      };
   }

static void localLog←P2028(class←v23912, code←v23940, explanation←v23968, propList←v23996, formal←c31040)
   word class←v23912;
   word code←v23940;
   word explanation←v23968;
   word propList←v23996;
   word formal←c31040;
   {
   register ptr gf←c31008 =  (ptr) &globalframe;
   formal←c31040 = (formal←c31040 - 20);
   /* localLog: */ 
SOURCE(6940, 42)
SOURCE(6984, 226)
   if ((code←v23940 == 160)) {
SOURCE(7016, 24)
      (* (( (ptr) (*  (ptr) formal←c31040 )) + 8) ) &= 4294967293;
      }
   else {
SOURCE(7049, 104)
      {
         W2 var←c29696;
         W2 var←c29728;
         W2 var←c29760;
         var←c29696.f0 = 5;
         {
            word idx118;
            var←c29696.f1 = (
               idx118 = (* (( (ptr) (*  (ptr) formal←c31040 ))+4) ),
               SGNCK(idx118)
               );
            };
         var←c29728.f0 = 5;
         {
            word idx119;
            var←c29728.f1 = (
               idx119 = (* (( (ptr) (*  (ptr) formal←c31040 ))+5) ),
               SGNCK(idx119)
               );
            };
         var←c29760.f0 = 11;
         var←c29760.f1 = explanation←v23968;
         {
            word pd120;
            pd120 = (* (( (ptr) (* (( (ptr) gf←c31008)+105)/* var←c28096 */  ))+62) );
            explanation←v23968 = (word) ( *( (fPt) ((*  (ptr) pd120 ))))((* (( (ptr) gf←c31008)+54) ), var←c29696, var←c29728, var←c29760, pd120)
            ;
            };
         };
SOURCE(7155, 55)
      (void) ipLogProc←P420((* (( (ptr) formal←c31040)+4) ), class←v23912, code←v23940, explanation←v23968, propList←v23996);
      };
   }

static void ipCloseProc←P900(instance←v11772)
   word instance←v11772;
   {
   W6 var←c31072;
   /* declaration of var←c29792 skipped */ 
   /* ipCloseProc: */ 
SOURCE(8256, 242)
   {
      word tmpAddr121;
      tmpAddr121 = (word) (( (ptr) &var←c31072)+4)/* var←c29792 */ ;
      (*  (ptr) tmpAddr121 ) = ( ((word)  (fPt) doClose←P2232) );
      (* (( (ptr) tmpAddr121) + 1) ) = 1;
      };
SOURCE(8467, 31)
   {
      word var←c29824;
      var←c29824 = (word) Protect←P300(instance←v11772, (word) (( (bPt) &var←c31072)+16)/* var←c29792 */ );
      };
   }

static void doClose←P2232(instance←v7604, formal←c31136)
   word instance←v7604;
   word formal←c31136;
   {
   register ptr gf←c31104 =  (ptr) &globalframe;
   formal←c31136 = (formal←c31136 - 16);
   /* doClose: */ 
SOURCE(8283, 167)
SOURCE(8322, 128)
   {
      word var←c29920;
      {
         word var←c29856;
SOURCE(503, 24)
         {
            word var←c29888;
            var←c29888 = (* (( (ptr) instance←v7604)+9) );
            if ((var←c29888 == 0)) {
               goto lab←L100019;
               };
            if (((* (( (ptr) gf←c31104)+34) ) == XR←GetReferentType(var←c29888))) {
               {
                  word tm←v26776;
                  tm←v26776 = var←c29888;
                  var←c29856 = (* (( (ptr) tm←v26776)+1) );
                  };
               }
            else {
               lab←L100019: ;
               var←c29856 = 0;
               goto lab←L100020;
               };
            };
         lab←L100020: ;
         var←c29920 = var←c29856;
         };
      if ((var←c29920 == 0)) {
         goto lab←L100021;
         };
      if (1) {
         {
            word m←v7632;
            m←v7632 = var←c29920;
SOURCE(8396, 22)
            (* (( (ptr) instance←v7604)+9) ) = 0;
SOURCE(8420, 30)
            {
               word pd122;
               pd122 = (* (( (ptr) (* (( (ptr) gf←c31104)+108)/* var←c28960 */  ))+11) );
               (void) ( *( (fPt) ((*  (ptr) pd122 ))))(m←v7632, pd122);
               };
            };
         }
      else {
         lab←L100021: ;
         };
      };
   }

static word Clone←P960(instance←v5424, clean←v5452)
   word instance←v5424;
   word clean←v5452;
   {
   register ptr gf←c31168 =  (ptr) &globalframe;
   word var←c5496;
   /* Clone: */ 
SOURCE(8504, 437)
SOURCE(8581, 334)
   if ((instance←v5424 != 0)) {
SOURCE(8604, 311)
      {
         word var←c29952;
         var←c29952 = (* (( (ptr) instance←v5424)+9) );
         if ((var←c29952 == 0)) {
            goto lab←L100022;
            };
         if (((* (( (ptr) gf←c31168)+34) ) == XR←GetReferentType(var←c29952))) {
            {
               word tm←v7676;
               tm←v7676 = var←c29952;
SOURCE(8658, 257)
               if ( ( ((* (( (ptr) tm←v7676)+1) ) != 0) ? ((* (( (ptr) tm←v7676)+2) ) == 0) : 0 ) ) {
SOURCE(8704, 213)
                  {
                     word new←v7720;
SOURCE(8706, 52)
                     new←v7720 = XR←NewObject(40, (* (( (ptr) gf←c31168)+31) ));
                     (*  (W10Pt) new←v7720 ) = (*  (W10Pt) instance←v5424 );
SOURCE(8760, 106)
                     {
                        word var←c30016;
                        {
                           word var←c30048;
                           word var←c30080;
                           {
/*1*/   word pd123;
/*1*/   pd123 = (* (( (ptr) (* (( (ptr) gf←c31168)+108)/* var←c28960 */  ))+8) );
/*1*/   var←c30048 = (word) ( *( (fPt) ((*  (ptr) pd123 ))))((* ((( (ptr) tm←v7676)+1)) ), pd123);
/*1*/   };
                           var←c30080 = XR←NewObject(12, (* (( (ptr) gf←c31168)+34) ));
                           (*  (ptr) var←c30080 ) = (*  (ptr) tm←v7676 );
                           (* (( (ptr) var←c30080)+1) ) = var←c30048;
                           var←c30016 = var←c30080;
                           };
                        (* (( (ptr) new←v7720)+9) ) = var←c30016;
                        };
SOURCE(8868, 33)
                     if ((0 != clean←v5452)) {
SOURCE(8882, 19)
                        (* (( (ptr) new←v7720)+1) ) = 0;
                        };
SOURCE(8903, 12)
                     return(new←v7720);
                     };
                  };
               };
            }
         else {
            lab←L100022: ;
            };
         };
      };
SOURCE(8929, 12)
   return(0);
   }

static word ipCloneProc←P1020(instance←v11832)
   word instance←v11832;
   {
   word var←c11876;
   /* ipCloneProc: */ 
SOURCE(8947, 59)
SOURCE(8974, 32)
   return((word) Clone←P960(instance←v11832, 0));
   }

static word ipSpecialProc←P1080(instance←v11936, op←v11964, args←v11992)
   word instance←v11936;
   word op←v11964;
   word args←v11992;
   {
   word var←c12036;
   /* ipSpecialProc: */ 
SOURCE(9010, 43)
SOURCE(9041, 12)
   return(0);
   }

static word MakeInstructions←P1140(inst←v5592)
   word inst←v5592;
   {
   register ptr gf←c31200 =  (ptr) &globalframe;
   word var←c5636;
   word instructions←v7764;
   /* MakeInstructions: */ 
SOURCE(9582, 238)
SOURCE(9664, 133)
   instructions←v7764 = XR←NewObject(8, (* (( (ptr) gf←c31200)+19) ));
   (*  (ptr) instructions←v7764 ) = inst←v5592;
   (* (( (ptr) instructions←v7764)+1) ) = (word) (( (bPt) gf←c31200)+232)/* var←c26912 */ ;
SOURCE(9799, 21)
   return(instructions←v7764);
   }

static void FillInstructionsVector←P1200(instr←v15028, default←v15056, instID←v15084, ops←v15112)
   word instr←v15028;
   word default←v15056;
   word instID←v15084;
   word ops←v15112;
   {
   register ptr gf←c31232 =  (ptr) &globalframe;
   word copySelect←v7808;
   /* FillInstructionsVector: */ 
SOURCE(9826, 481)
SOURCE(9879, 63)
   {
      word pd124;
      pd124 = (* (( (ptr) (* (( (ptr) gf←c31232)+110)/* var←c29472 */  ))+4) );
      copySelect←v7808 = (word) ( *( (fPt) ((*  (ptr) pd124 ))))(23, pd124);
      };
SOURCE(9944, 363)
   {
      word var←c30176;
      var←c30176 = instr←v15028;
      if ((var←c30176 == 0)) {
         goto lab←L100023;
         };
      if (((* (( (ptr) gf←c31232)+31) ) == XR←GetReferentType(var←c30176))) {
         {
            word inst←v7852;
            inst←v7852 = var←c30176;
            {
               word pd125;
               pd125 = (* (( (ptr) (* (( (ptr) gf←c31232)+102)/* var←c27872 */  ))+8) );
               if ((0 != (word) ( *( (fPt) ((*  (ptr) pd125 ))))(instID←v15084, copySelect←v7808, 0, pd125))) {
SOURCE(10045, 267)
                  {
                     word msg←v7896;
SOURCE(10047, 60)
                     {
                        W2 var←c30208;
                        var←c30208.f0 = 5;
                        var←c30208.f1 = (* (( (ptr) inst←v7852)+4) );
                        {
                           word pd126;
                           pd126 = (* (( (ptr) (* (( (ptr) gf←c31232)+105)/* var←c28096 */  ))+63) );
                           msg←v7896 = (word) ( *( (fPt) ((*  (ptr) pd126 ))))((* (( (ptr) gf←c31232)+56) ), var←c30208, pd126);
                           };
                        };
SOURCE(10109, 74)
                     {
                        word pd127;
                        pd127 = (*  (ptr) (* (( (ptr) (* (( (ptr) inst←v7852)+1) ))+8) ) );
                        (void) ( *( (fPt) ((*  (ptr) pd127 ))))(inst←v7852, (* (( (ptr) gf←c31232)+57) ), 0, msg←v7896, pd127);
                        };
SOURCE(10185, 122)
                     if (( (int)(* (( (ptr) inst←v7852)+4) ) >  (int)0)) {
SOURCE(10211, 30)
                        {
                           word pd128;
                           pd128 = (*  (ptr) ops←v15112 );
                           (void) ( *( (fPt) ((*  (ptr) pd128 ))))(copySelect←v7808, pd128);
                           };
SOURCE(10243, 28)
                        {
                           word pd129;
                           pd129 = (* (( (ptr) ops←v15112)+1) );
                           (void) ( *( (fPt) ((*  (ptr) pd129 ))))((* ((( (ptr) inst←v7852)+4)) ), pd129);
                           };
SOURCE(10273, 18)
                        {
                           word pd130;
                           pd130 = (* (( (ptr) ops←v15112)+1) );
                           (void) ( *( (fPt) ((*  (ptr) pd130 ))))(1, pd130);
                           };
SOURCE(10293, 14)
                        {
                           word pd131;
                           pd131 = (* (( (ptr) ops←v15112)+5) );
                           (void) ( *( (fPt) ((*  (ptr) pd131 ))))(2, pd131);
                           };
                        };
                     };
                  };
               };
            };
         }
      else {
         lab←L100023: ;
         };
      };
   }

static void NoName←Q2976(formal←c0224, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0224;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0252 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0252)+103)/* var←c28000 */  ))+21) ))) {
      {
         word signal←v16016;
         word parameters←v16044;
         signal←v16016 = (*  (ptr) formal←c200003 );
         parameters←v16044 = (* (( (ptr) formal←c200003)+1) );
SOURCE(1860, 168)
         {
            word info←v6036;
SOURCE(1862, 84)
            info←v6036 = XR←NewObject(8, (* (( (ptr) gf←c0252)+26) ));
            (*  (ptr) info←v6036 ) = signal←v16016;
            (* (( (ptr) info←v6036)+1) ) = parameters←v16044;
SOURCE(1948, 66)
            {
               word pd132;
               pd132 = (*  (ptr) (* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c200000)+4) ))+1) ))+8) ) );
               (void) ( *( (fPt) ((*  (ptr) pd132 ))))((* (( (ptr) formal←c200000)+4) ), (* (( (ptr) gf←c0252)+48) ), 3, 0, pd132);
               };
SOURCE(2016, 10)
            (*  (ptr) formal←c0224 ) = 2;
            (* (( (ptr) formal←c0224)+1) ) = 2;
            return;
            };
         };
      }
   else {
      if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0252)+104)/* var←c28064 */  ))+5) ))) {
         {
            W3 error←v16752;
            error←v16752 = (*  (W3Pt) formal←c200003 );
SOURCE(2055, 34)
            (void) ipErrorProc←P360((* (( (ptr) formal←c200000)+4) ), error←v16752, 1);
SOURCE(2091, 6)
            (*  (ptr) formal←c0224 ) = 1;
            (* (( (ptr) formal←c0224)+1) ) = 0;
            return;
            };
         }
      else {
         if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0252)+104)/* var←c28064 */  ))+4) ))) {
            {
               W3 error←v16904;
               error←v16904 = (*  (W3Pt) formal←c200003 );
SOURCE(2122, 35)
               (void) ipErrorProc←P360((* (( (ptr) formal←c200000)+4) ), error←v16904, 0);
SOURCE(2159, 10)
               (*  (ptr) formal←c0224 ) = 2;
               (* (( (ptr) formal←c0224)+1) ) = 2;
               return;
               };
            };
         };
      };
   (*  (ptr) formal←c0224 ) = 0;
   (* (( (ptr) formal←c0224)+1) ) = 0;
   return;
   }

/* file: SimpleIPRegister, module: SimpleIPRegister, compiled at: July 6, 1993 10:06:07 am PDT */ 
extern void XR←install←SimpleIPRegister() {
   NoName←Q2856();
   }
extern void XR←run←SimpleIPRegister() { XR←Start(&globalframe); }