/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: March 3, 1992 1:09:41 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: AtomImpl, module: AtomImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3077843471,1975398675] AtomImpl";
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, f7;} W8;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
#define SOURCE(p, l) /* source p, l */
#define NCK(p) ( (void) p)
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q2736();
static void AtomImpl←P0();
static word NewAtom←P60();
static word GetPName←P120();
static void SetLink←P240();
static word GetPropList←P300();
static void SetPropList←P360();
static word EmptyAtom←P420();
static word MakeAtom←P480();
static word NoName←Q2796();
static word UnsafeMakeAtom←P540();
static word NoName←Q2856();
static word UnsafeMakeAtomFromString←P600();
static word MakeAtomFromChar←P660();
static word MakeAtomFromChars←P720();
static word MakeAtomFromRefText←P780();
static word GetPropertyList←P840();
static word NoName←Q2916();
static void PutProp←P900();
static word NoName←Q2976();
static word PutPropOnList←P960();
static word NoName←Q3036();
static word PutPropInternal←P1020();
static word GetProp←P1080();
static word NoName←Q3096();
static word GetPropFromList←P1140();
static word NoName←Q3156();
static void RemProp←P1200();
static word NoName←Q3216();
static word RemPropFromList←P1260();
static word NoName←Q3276();
static word RemPropInternal←P1320();
static void MapAtoms←P1380();
static word FindAtom←P1440();
static word Next←P1500();
static word NoName←Q3336();
static void LookUpAtom←P1560();
static void InsertAtom←P1620();
static void Crash←P1740();
static void NoName←Q3396();
static void NoName←Q3456();
static void NoName←Q3516();
static void NoName←Q3576();
static void NoName←Q3636();
static void NoName←Q3696();
static void NoName←Q3756();
static void NoName←Q3816();
static void NoName←Q3876();
static void NoName←Q3936();
static struct {unsigned f; char r[12];} string1 = {524300, "\205\210\242\000\117\374\216\251\000\000\000"};
static struct {unsigned f; char r[8];} string2 = {393222, "\010\000\004O\375\001\000"};
static struct {unsigned f; char r[4];} string3 = {65540, "\251\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string5 = {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[48];} string6 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\055\153\222\376\300\327\164\352\142\100\200\005\004\162\145\163\164\214\216\257\300\055\153\222\376\300\327\164\352\142\100\200\261\000\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\200\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\267\164\052\017\300\165\276\061\023\100\164\000\000"};
static struct {unsigned f; char r[4];} string10 = {196611, "\004N\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\070\313\200\317\300\150\067\321\062\100\150\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\374\377\221\350\300\202\044\047\115\100\150\000\000"};
static struct {
   word f0[26]; word f26; word f27; word f28; 
   word f29; word f30; word f31; word f32; 
   word f33; word f34; word f35; word f36; 
   word f37; word f38; word f39; word f40; 
   word f41; word f42; word f43; word f44; 
   word f45; word f46; word f47; word f48; 
   word f49; word f50; word f51; word f52; 
   word f53; word f54; word f55; word f56; 
   word f57; word f58; word f59; word f60; 
   word f61; word f62; word f63; word f64; 
   word f65; word f66; word f67; word f68; 
   word f69; word f70; word f71; word f72; 
   word f73; word f74; word f75; word f76; 
   word f77; word f78; word f79; word f80; 
   word f81[4]; 
   } globalframe = {
   {0}, (word) Crash←P1740, 0, (word) InsertAtom←P1620, 
   0, (word) LookUpAtom←P1560, 0, (word) Next←P1500, 
   0, (word) FindAtom←P1440, 0, (word) MapAtoms←P1380, 
   0, (word) RemPropInternal←P1320, 0, (word) RemPropFromList←P1260, 
   0, (word) RemProp←P1200, 0, (word) GetPropFromList←P1140, 
   0, (word) GetProp←P1080, 0, (word) PutPropInternal←P1020, 
   0, (word) PutPropOnList←P960, 0, (word) PutProp←P900, 
   0, (word) GetPropertyList←P840, 0, (word) MakeAtomFromRefText←P780, 
   0, (word) MakeAtomFromChars←P720, 0, (word) MakeAtomFromChar←P660, 
   0, (word) UnsafeMakeAtomFromString←P600, 0, (word) UnsafeMakeAtom←P540, 
   0, (word) MakeAtom←P480, 0, (word) EmptyAtom←P420, 
   0, (word) SetPropList←P360, 0, (word) GetPropList←P300, 
   0, (word) SetLink←P240, 0, (word) GetPName←P120, 
   0, (word) NewAtom←P60, 0, (word) AtomImpl←P0, 
   {0}
   };

static void NoName←Q2736()
   {
   register ptr gf←c0236 =  (ptr) &globalframe;
   word var←c17408;
   (* (( (ptr) gf←c0236)+14) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0236)+17) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0236)+18) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0236)+23) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0236)+24) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string7);
   (void) XR←DeclareGlobalFrame((word) "AtomImpl", &globalframe, (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10)
      , (word) (( (bPt) gf←c0236)+320)/* var←c16192 */ );
   var←c17408 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string11)), 43);
   (* (( (ptr) gf←c0236)+82)/* var←c16256 */  ) = var←c17408;
   (void) XR←ImportProcS(var←c17408, 67378177);
   (void) XR←ImportProcS(var←c17408, 67379457);
   (void) XR←ImportProcS(var←c17408, 67901955);
   (void) XR←ImportProcS(var←c17408, 67378689);
   var←c17408 = (word) XR←ImportInterface((word) "RopeHash", (word) XR←GetTypeIndexS((word) (&string12)), 2);
   (* (( (ptr) gf←c0236)+83)/* var←c17280 */  ) = var←c17408;
   (void) XR←ImportProcS(var←c17408, 67633154);
   var←c17408 = (word) XR←ExportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string13)), 16);
   (* (( (ptr) gf←c0236)+84)/* var←c17440 */  ) = var←c17408;
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+272)/* var←c16000 */ , 67108864);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+264)/* var←c15968 */ , 67895555);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+240)/* var←c15872 */ , 67371521);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+232)/* var←c15840 */ , 67371777);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+224)/* var←c15808 */ , 67372033);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+304)/* var←c16128 */ , 67372289);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+216)/* var←c15776 */ , 67372545);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+184)/* var←c15648 */ , 67634946);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+176)/* var←c15616 */ , 67635202);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+208)/* var←c15744 */ , 788739);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+200)/* var←c15712 */ , 67897859);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+168)/* var←c15584 */ , 527106);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+160)/* var←c15552 */ , 67636226);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+144)/* var←c15488 */ , 265473);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+136)/* var←c15456 */ , 67374593);
   (void) XR←ExportVar(var←c17408, 15, (word) (( (bPt) gf←c0236)+100)/* var←c15296 */ );
   var←c17408 = (word) XR←ExportInterface((word) "AtomPrivate", (word) XR←GetTypeIndexS((word) (&string14)), 2);
   (* (( (ptr) gf←c0236)+84)/* var←c17440 */  ) = var←c17408;
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+256)/* var←c15936 */ , 67371009);
   (void) XR←ExportProcS(var←c17408, (word) (( (bPt) gf←c0236)+248)/* var←c15904 */ , 67371265);
   }

static void AtomImpl←P0(formal←c060, formal←c059)
   word formal←c060;
   word formal←c059;
   {
   register ptr gf←c17472 =  (ptr) &globalframe;
   /* AtomImpl: */ 
SOURCE(343, 7778)
SOURCE(571, 81)
   (* (( (ptr) gf←c17472)+8)/* typeOfATOMReferent←v2832 */  ) = (word) XR←GetTypeIndex((word) &string3, 0, 0);
SOURCE(975, 57)
   (* (( (ptr) gf←c17472)+9)/* atomDictionary←v3056 */  ) = XR←NewObject(16372, (* (( (ptr) gf←c17472)+14) ));
SOURCE(1071, 38)
   {
      word pd15;
      pd15 = (* (( (ptr) (* (( (ptr) gf←c17472)+82)/* var←c16256 */  ))+34) );
      (* (( (ptr) gf←c17472)+10)/* emptyRope←v3112 */  ) = (word) ( *( (fPt) ((*  (ptr) pd15 ))))(0, pd15);
      };
SOURCE(8088, 33)
   (* (( (ptr) gf←c17472)+11)/* emptyAtom←v3140 */  ) = (word) MakeAtom←P480((* (( (ptr) gf←c17472)+10)/* emptyRope←v3112 */  ), 0, 2147483647)
   ;
   }

static word NewAtom←P60(pName←v4488)
   word pName←v4488;
   {
   register ptr gf←c17504 =  (ptr) &globalframe;
   word atom←v4548;
   /* NewAtom: */ 
SOURCE(1308, 215)
SOURCE(1308, 215)
   atom←v4548 = 0;
SOURCE(1360, 98)
   atom←v4548 = XR←Narrow((word) XR←NewObject(12, (* (( (ptr) gf←c17504)+8)/* typeOfATOMReferent←v2832 */  )), (* (( (ptr) gf←c17504)+17)
       ));
SOURCE(1468, 55)
SOURCE(1470, 53)
   {
      word var←c16288;
      {
         word var←c16320;
         var←c16320 = XR←Narrow(pName←v4488, (* (( (ptr) gf←c17504)+18) ));
         if ((var←c16320 == 0)) {
            goto lab←L100000;
            };
         {
            word tc16;
            if (((*(int*)var←c16320<0) == 0)) {
               tc16 =  (word) ((*(( short *)var←c16320 + 1)<0) == 0);
               }
            else {
               tc16 =  (word) 0;
               };
            if (tc16) {
               goto lab←L100000;
               };
            };
         (void) XR←RaiseError(XR←NarrowFault, 0);
         lab←L100000: ;
         var←c16288 = var←c16320;
         };
      (*  (ptr) atom←v4548 ) = var←c16288;
      (* (( (ptr) atom←v4548)+1) ) = 0;
      (* (( (ptr) atom←v4548)+2) ) = 0;
      };
SOURCE(1308, 215)
   return(atom←v4548);
   }

static word GetPName←P120(atom←v4608)
   word atom←v4608;
   {
   register ptr gf←c17536 =  (ptr) &globalframe;
   word var←c4652;
   /* GetPName: */ 
SOURCE(1530, 148)
SOURCE(1597, 37)
   if ((atom←v4608 == 0)) {
SOURCE(1616, 18)
      (void) XR←RaiseError((word) (( (bPt) gf←c17536)+100)/* var←c15296 */ , 0);
      };
SOURCE(1636, 42)
   return((*  (ptr) atom←v4608 ));
   }

static void SetLink←P240(atom←v4816, link←v4844)
   word atom←v4816;
   word link←v4844;
   {
   /* SetLink: */ 
SOURCE(1797, 98)
SOURCE(1857, 38)
   (* (( (ptr) atom←v4816)+2) ) = link←v4844;
   }

static word GetPropList←P300(atom←v4904)
   word atom←v4904;
   {
   word var←c4948;
   /* GetPropList: */ 
SOURCE(1901, 115)
SOURCE(1971, 45)
   return((* (( (ptr) atom←v4904)+1) ));
   }

static void SetPropList←P360(atom←v5020, propList←v5048)
   word atom←v5020;
   word propList←v5048;
   {
   /* SetPropList: */ 
SOURCE(2020, 119)
SOURCE(2092, 47)
   (* (( (ptr) atom←v5020)+1) ) = propList←v5048;
   }

static word EmptyAtom←P420()
   {
   register ptr gf←c17568 =  (ptr) &globalframe;
   word var←c5108;
   /* EmptyAtom: */ 
SOURCE(2142, 60)
SOURCE(2184, 18)
   return((* (( (ptr) gf←c17568)+11)/* emptyAtom←v3140 */  ));
   }

static word MakeAtom←P480(formal←c0317, formal←c0318, formal←c0319)
   word formal←c0317;
   word formal←c0318;
   word formal←c0319;
   {
   W8 var←c17600;
   /* declaration of pName←v5168 skipped */ 
   /* declaration of start←v5196 skipped */ 
   /* declaration of len←v5224 skipped */ 
   register ptr gf←c17632 =  (ptr) &globalframe;
   /* declaration of var←c01 skipped */ 
   word var←c5268;
   var←c17600.f4/* pName←v5168 */  = formal←c0317;
   var←c17600.f5/* start←v5196 */  = formal←c0318;
   var←c17600.f6/* len←v5224 */  = formal←c0319;
   /* MakeAtom: */ 
SOURCE(2208, 433)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17632)+16)/* LOCK←v2776 */ ));
SOURCE(2311, 330)
   {
      word var←c02;
      {
         word var←c0286;
         var←c0286 = (word) &var←c17600;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2796) ), ( ((word)  (fPt) NoName←Q3936) ), var←c0286);
         };
      /* removed trivial cond node */ 
      };
   return(var←c17600.f7/* var←c01 */ );
   }

static word NoName←Q2796(formal←c0243)
   word formal←c0243;
   {
   register ptr gf←c0242 =  (ptr) &globalframe;
SOURCE(2337, 46)
   {
      word t←v8112;
      word this←v8140 = 0;
      word prev←v8168 = 0;
      word hash←v8196 = 0;
SOURCE(2337, 46)
      {
         word pd17;
         pd17 = (* (( (ptr) (* (( (ptr) gf←c0242)+82)/* var←c16256 */  ))+30) );
         t←v8112 = (word) ( *( (fPt) ((*  (ptr) pd17 ))))((* (( (ptr) formal←c0243)+4) ), (* (( (ptr) formal←c0243)+5) ), (* (( (ptr) formal←c0243)+6)
             ), pd17);
         };
SOURCE(2462, 29)
      if ((t←v8112 == 0)) {
SOURCE(2478, 13)
         t←v8112 = (* (( (ptr) gf←c0242)+10)/* emptyRope←v3112 */  );
         };
SOURCE(2493, 34)
      {
         W3 var←c16352;
         (void) LookUpAtom←P1560((word) &var←c16352, t←v8112);
         hash←v8196 = var←c16352.f2;
         prev←v8168 = var←c16352.f1;
         this←v8140 = var←c16352.f0;
         };
SOURCE(2529, 93)
      if ((this←v8140 == 0)) {
SOURCE(2550, 24)
         this←v8140 = (word) NewAtom←P60(t←v8112);
SOURCE(2576, 46)
         (void) InsertAtom←P1620(this←v8140, prev←v8168, hash←v8196);
         };
SOURCE(2627, 14)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0242)+16)/* LOCK←v2776 */ ));
      (* (( (ptr) formal←c0243)+7) ) = this←v8140;
      return(1);
      };
   /* c2c skipped dead code */ 
   }

static word UnsafeMakeAtom←P540(formal←c0320)
   word formal←c0320;
   {
   W6 var←c17664;
   /* declaration of pName←v5328 skipped */ 
   register ptr gf←c17696 =  (ptr) &globalframe;
   /* declaration of var←c03 skipped */ 
   word var←c5372;
   var←c17664.f4/* pName←v5328 */  = formal←c0320;
   /* UnsafeMakeAtom: */ 
SOURCE(2645, 592)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17696)+16)/* LOCK←v2776 */ ));
SOURCE(2733, 504)
   {
      word var←c04;
      {
         word var←c0287;
         var←c0287 = (word) &var←c17664;
         var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2856) ), ( ((word)  (fPt) NoName←Q3876) ), var←c0287);
         };
      /* removed trivial cond node */ 
      };
   return(var←c17664.f5/* var←c03 */ );
   }

static word NoName←Q2856(formal←c0246)
   word formal←c0246;
   {
   register ptr gf←c0245 =  (ptr) &globalframe;
SOURCE(2759, 16)
   {
      word this←v8240 = 0;
      word prev←v8268 = 0;
      word hash←v8296;
SOURCE(2805, 38)
      if (((* (( (ptr) formal←c0246)+4) ) == 0)) {
SOURCE(2825, 18)
         {
            word var←c16384;
            var←c16384 = (* (( (ptr) gf←c0245)+11)/* emptyAtom←v3140 */  );
            (void) (XR←MonitorExit((word) (( (bPt) gf←c0245)+16)/* LOCK←v2776 */ ));
            (* (( (ptr) formal←c0246)+5) ) = var←c16384;
            return(1);
            };
         };
SOURCE(2845, 59)
      {
         W3 var←c16416;
         (void) LookUpAtom←P1560((word) &var←c16416, (* (( (ptr) formal←c0246)+4) ));
         hash←v8296 = var←c16416.f2;
         prev←v8268 = var←c16416.f1;
         this←v8240 = var←c16416.f0;
         };
SOURCE(2906, 312)
      if ((this←v8240 == 0)) {
SOURCE(2925, 295)
         {
            word rt←v8340;
SOURCE(2927, 42)
            {
               word pd18;
               pd18 = (* (( (ptr) (* (( (ptr) gf←c0245)+82)/* var←c16256 */  ))+34) );
               rt←v8340 = (word) ( *( (fPt) ((*  (ptr) pd18 ))))((*  (hPt) (* (( (ptr) formal←c0246)+4) ) ), pd18);
               };
SOURCE(2971, 172)
            (void) Basics←CopyBytes((rt←v8340 + 4), 0, ((* (( (ptr) formal←c0246)+4) ) + 4), 0, (*  (hPt) (* (( (ptr) formal←c0246)+4)
                ) ));
SOURCE(3145, 25)
            this←v8240 = (word) NewAtom←P60(rt←v8340);
SOURCE(3172, 46)
            (void) InsertAtom←P1620(this←v8240, prev←v8268, hash←v8296);
            };
         };
SOURCE(3223, 14)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0245)+16)/* LOCK←v2776 */ ));
      (* (( (ptr) formal←c0246)+5) ) = this←v8240;
      return(1);
      };
   /* c2c skipped dead code */ 
   }

static word UnsafeMakeAtomFromString←P600(pName←v5432)
   word pName←v5432;
   {
   word var←c5476;
   /* UnsafeMakeAtomFromString: */ 
SOURCE(3241, 129)
SOURCE(3331, 39)
   return((word) UnsafeMakeAtom←P540(pName←v5432));
   }

static word MakeAtomFromChar←P660(char←v5536)
   word char←v5536;
   {
   register ptr gf←c17728 =  (ptr) &globalframe;
   word var←c5580;
   /* MakeAtomFromChar: */ 
SOURCE(3376, 100)
SOURCE(3438, 38)
   {
      word var←c16512;
      {
         word pd19;
         pd19 = (* (( (ptr) (* (( (ptr) gf←c17728)+82)/* var←c16256 */  ))+37) );
         var←c16512 = (word) ( *( (fPt) ((*  (ptr) pd19 ))))(char←v5536, pd19);
         };
      return((word) MakeAtom←P480(var←c16512, 0, 2147483647));
      };
   }

static word MakeAtomFromChars←P720(genChars←v5640)
   word genChars←v5640;
   {
   register ptr gf←c17760 =  (ptr) &globalframe;
   word var←c5804;
   /* MakeAtomFromChars: */ 
SOURCE(3482, 124)
SOURCE(3563, 43)
   {
      word var←c16576;
      {
         word pd20;
         pd20 = (* (( (ptr) (* (( (ptr) gf←c17760)+82)/* var←c16256 */  ))+32) );
         var←c16576 = (word) ( *( (fPt) ((*  (ptr) pd20 ))))(genChars←v5640, pd20);
         };
      return((word) MakeAtom←P480(var←c16576, 0, 2147483647));
      };
   }

static word MakeAtomFromRefText←P780(rt←v5864)
   word rt←v5864;
   {
   word var←c5920;
   /* MakeAtomFromRefText: */ 
SOURCE(3612, 122)
SOURCE(3696, 38)
   return((word) UnsafeMakeAtom←P540(rt←v5864));
   }

static word GetPropertyList←P840(formal←c0321)
   word formal←c0321;
   {
   W6 var←c17792;
   /* declaration of atom←v5980 skipped */ 
   register ptr gf←c17824 =  (ptr) &globalframe;
   /* declaration of var←c05 skipped */ 
   word var←c6024;
   var←c17792.f4/* atom←v5980 */  = formal←c0321;
   /* GetPropertyList: */ 
SOURCE(3738, 197)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17824)+16)/* LOCK←v2776 */ ));
SOURCE(3738, 197)
   var←c6024 = 0;
SOURCE(3816, 119)
   {
      word var←c06;
      {
         word var←c0288;
         var←c0288 = (word) &var←c17792;
         var←c06 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2916) ), ( ((word)  (fPt) NoName←Q3816) ), var←c0288);
         };
      if ((var←c06 == 1)) {
         goto lab←L06;
         };
      };
SOURCE(3738, 197)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c17824)+16)/* LOCK←v2776 */ ));
   return(var←c6024);
   lab←L06: ;
   return(var←c17792.f5/* var←c05 */ );
   }

static word NoName←Q2916(formal←c0251)
   word formal←c0251;
   {
   register ptr gf←c0250 =  (ptr) &globalframe;
SOURCE(3842, 93)
   if (((* (( (ptr) formal←c0251)+4) ) != 0)) {
SOURCE(3861, 74)
      {
         word var←c16640;
         var←c16640 = (word) GetPropList←P300((* ((( (ptr) formal←c0251)+4)) ));
         if ((var←c16640 == 0)) {
            goto lab←L100007;
            };
         if (((* (( (ptr) gf←c0250)+23) ) == XR←GetReferentType(var←c16640))) {
            {
               word propList←v8384;
               propList←v8384 = var←c16640;
SOURCE(3918, 17)
               (void) (XR←MonitorExit((word) (( (bPt) gf←c0250)+16)/* LOCK←v2776 */ ));
               (* (( (ptr) formal←c0251)+5) ) = propList←v8384;
               return(1);
               };
            }
         else {
            lab←L100007: ;
            };
         };
      };
   return(0);
   }

static void PutProp←P900(formal←c0322, formal←c0323, formal←c0324)
   word formal←c0322;
   word formal←c0323;
   word formal←c0324;
   {
   W8 var←c17856;
   /* declaration of atom←v6084 skipped */ 
   /* declaration of prop←v6112 skipped */ 
   /* declaration of val←v6140 skipped */ 
   register ptr gf←c17888 =  (ptr) &globalframe;
   /* declaration of var←c16672 skipped */ 
   var←c17856.f4/* atom←v6084 */  = formal←c0322;
   var←c17856.f5/* prop←v6112 */  = formal←c0323;
   var←c17856.f6/* val←v6140 */  = formal←c0324;
   /* PutProp: */ 
SOURCE(3950, 223)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17888)+16)/* LOCK←v2776 */ ));
SOURCE(4016, 157)
   {
      word var←c07;
      {
         word var←c0289;
         var←c0289 = (word) &var←c17856;
         var←c07 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2976) ), ( ((word)  (fPt) NoName←Q3756) ), var←c0289);
         };
      if ((var←c07 == 2)) {
         goto lab←L100010;
         };
      };
SOURCE(3950, 223)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c17888)+16)/* LOCK←v2776 */ ));
   return;
   /* c2c skipped dead code */ 
   lab←L100010: ;
SOURCE(4061, 30)
   (void) XR←RaiseError(var←c17856.f7/* var←c16672 */ , 0);
   }

static word NoName←Q2976(formal←c0254)
   word formal←c0254;
   {
   register ptr gf←c0253 =  (ptr) &globalframe;
SOURCE(4042, 49)
   if (((* (( (ptr) formal←c0254)+4) ) == 0)) {
SOURCE(4061, 30)
      (* (( (ptr) formal←c0254)+7) ) = (word) (( (bPt) gf←c0253)+100)/* var←c15296 */ ;
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0253)+16)/* LOCK←v2776 */ ));
      return(2);
      };
SOURCE(4093, 80)
   {
      word var←c16704;
      {
         word var←c16736;
         var←c16736 = (word) GetPropList←P300((* ((( (ptr) formal←c0254)+4)) ));
         var←c16704 = (word) PutPropInternal←P1020(var←c16736, (* (( (ptr) formal←c0254)+5) ), (* (( (ptr) formal←c0254)+6) ));
         };
      (void) SetPropList←P360((* (( (ptr) formal←c0254)+4) ), var←c16704);
      };
   return(0);
   }

static word PutPropOnList←P960(formal←c0325, formal←c0326, formal←c0327)
   word formal←c0325;
   word formal←c0326;
   word formal←c0327;
   {
   W8 var←c17920;
   /* declaration of propList←v6224 skipped */ 
   /* declaration of prop←v6252 skipped */ 
   /* declaration of val←v6280 skipped */ 
   register ptr gf←c17952 =  (ptr) &globalframe;
   /* declaration of var←c08 skipped */ 
   word var←c6348;
   var←c17920.f4/* propList←v6224 */  = formal←c0325;
   var←c17920.f5/* prop←v6252 */  = formal←c0326;
   var←c17920.f6/* val←v6280 */  = formal←c0327;
   /* PutPropOnList: */ 
SOURCE(4179, 170)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17952)+16)/* LOCK←v2776 */ ));
SOURCE(4278, 71)
   {
      word var←c09;
      {
         word var←c0290;
         var←c0290 = (word) &var←c17920;
         var←c09 = (word) XR←Enable(( ((word)  (fPt) NoName←Q3036) ), ( ((word)  (fPt) NoName←Q3696) ), var←c0290);
         };
      /* removed trivial cond node */ 
      };
   return(var←c17920.f7/* var←c08 */ );
   }

static word NoName←Q3036(formal←c0257)
   word formal←c0257;
   {
   register ptr gf←c0256 =  (ptr) &globalframe;
SOURCE(4304, 45)
   {
      word var←c16768;
      var←c16768 = (word) PutPropInternal←P1020((* (( (ptr) formal←c0257)+4) ), (* (( (ptr) formal←c0257)+5) ), (* (( (ptr) formal←c0257)+6)
          ));
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0256)+16)/* LOCK←v2776 */ ));
      (* (( (ptr) formal←c0257)+7) ) = var←c16768;
      return(1);
      };
   /* c2c skipped dead code */ 
   }

static word PutPropInternal←P1020(ref←v6408, prop←v6436, val←v6464)
   word ref←v6408;
   word prop←v6436;
   word val←v6464;
   {
   register ptr gf←c17984 =  (ptr) &globalframe;
   word var←c6544;
   word propList←v8428 = 0;
   word lst←v8456 = 0;
   word lag←v8484 = 0;
   /* PutPropInternal: */ 
SOURCE(4355, 517)
SOURCE(4510, 228)
   {
      word var←c16800;
      var←c16800 = ref←v6408;
      if ((var←c16800 == 0)) {
         goto lab←L100014;
         };
      if (((* (( (ptr) gf←c17984)+23) ) == XR←GetReferentType(var←c16800))) {
         {
            word pl←v8528;
            pl←v8528 = var←c16800;
SOURCE(4549, 19)
            lst←v8456 = pl←v8528;
            propList←v8428 = pl←v8528;
SOURCE(4570, 118)
            lab←L100017: ;
            if ((lst←v8456 != 0)) {
               }
            else {
               goto lab←L100015;
               };
SOURCE(4589, 69)
            if (((*  (ptr) (*  (ptr) lst←v8456 ) ) == prop←v6436)) {
SOURCE(4620, 19)
               (* (( (ptr) (*  (ptr) lst←v8456 ))+1) ) = val←v6464;
SOURCE(4641, 17)
               return(propList←v8428);
               };
SOURCE(4663, 9)
            lag←v8484 = lst←v8456;
SOURCE(4674, 14)
            lst←v8456 = (* (( (ptr) lst←v8456)+1) );
            goto lab←L100017;
            lab←L100015: ;
            };
         }
      else {
         lab←L100014: ;
SOURCE(4713, 25)
         if ((ref←v6408 != 0)) {
SOURCE(4731, 7)
            (void) Crash←P1740();
            };
         };
      };
SOURCE(4740, 65)
   {
      word var←c16864;
      word var←c16928;
      {
         word var←c16896;
         var←c16896 = XR←NewObject(8, (* (( (ptr) gf←c17984)+24) ));
         (*  (ptr) var←c16896 ) = prop←v6436;
         (* (( (ptr) var←c16896)+1) ) = val←v6464;
         var←c16864 = var←c16896;
         };
      var←c16928 = XR←NewObject(8, (* (( (ptr) gf←c17984)+23) ));
      (*  (ptr) var←c16928 ) = var←c16864;
      lst←v8456 = var←c16928;
      };
SOURCE(4807, 30)
   if ((lag←v8484 == 0)) {
SOURCE(4825, 12)
      return(lst←v8456);
      };
SOURCE(4839, 14)
   (* (( (ptr) lag←v8484)+1) ) = lst←v8456;
SOURCE(4855, 17)
   return(propList←v8428);
   }

static word GetProp←P1080(formal←c0328, formal←c0329)
   word formal←c0328;
   word formal←c0329;
   {
   W7 var←c18016;
   /* declaration of atom←v6604 skipped */ 
   /* declaration of prop←v6632 skipped */ 
   register ptr gf←c18048 =  (ptr) &globalframe;
   /* declaration of var←c010 skipped */ 
   word var←c6688;
   var←c18016.f4/* atom←v6604 */  = formal←c0328;
   var←c18016.f5/* prop←v6632 */  = formal←c0329;
   /* GetProp: */ 
SOURCE(4878, 259)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18048)+16)/* LOCK←v2776 */ ));
SOURCE(4878, 259)
   var←c6688 = 0;
SOURCE(4953, 184)
   {
      word var←c011;
      {
         word var←c0291;
         var←c0291 = (word) &var←c18016;
         var←c011 = (word) XR←Enable(( ((word)  (fPt) NoName←Q3096) ), ( ((word)  (fPt) NoName←Q3636) ), var←c0291);
         };
      if ((var←c011 == 1)) {
         goto lab←L011;
         };
      };
SOURCE(4878, 259)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c18048)+16)/* LOCK←v2776 */ ));
   return(var←c6688);
   lab←L011: ;
   return(var←c18016.f6/* var←c010 */ );
   }

static word NoName←Q3096(formal←c0261)
   word formal←c0261;
   {
   register ptr gf←c0260 =  (ptr) &globalframe;
SOURCE(4979, 158)
   if (((* (( (ptr) formal←c0261)+4) ) != 0)) {
SOURCE(4999, 138)
      {
         word var←c16960;
         var←c16960 = (word) GetPropList←P300((* ((( (ptr) formal←c0261)+4)) ));
         if ((var←c16960 == 0)) {
            goto lab←L100020;
            };
         if (((* (( (ptr) gf←c0260)+23) ) == XR←GetReferentType(var←c16960))) {
            {
               word lst←v8572;
               lst←v8572 = var←c16960;
SOURCE(5051, 86)
               lab←L100023: ;
               if ((lst←v8572 != 0)) {
                  }
               else {
                  goto lab←L100021;
                  };
SOURCE(5070, 51)
               if (((*  (ptr) (*  (ptr) lst←v8572 ) ) == (* (( (ptr) formal←c0261)+5) ))) {
SOURCE(5099, 22)
                  {
                     word var←c16992;
                     var←c16992 = (* (( (ptr) (*  (ptr) lst←v8572 ))+1) );
                     (void) (XR←MonitorExit((word) (( (bPt) gf←c0260)+16)/* LOCK←v2776 */ ));
                     (* (( (ptr) formal←c0261)+6) ) = var←c16992;
                     return(1);
                     };
                  };
SOURCE(5123, 14)
               lst←v8572 = (* (( (ptr) lst←v8572)+1) );
               goto lab←L100023;
               lab←L100021: ;
               };
            }
         else {
            lab←L100020: ;
            };
         };
      };
   return(0);
   }

static word GetPropFromList←P1140(formal←c0330, formal←c0331)
   word formal←c0330;
   word formal←c0331;
   {
   W7 var←c18080;
   /* declaration of propList←v6760 skipped */ 
   /* declaration of prop←v6788 skipped */ 
   register ptr gf←c18112 =  (ptr) &globalframe;
   /* declaration of var←c012 skipped */ 
   word var←c6844;
   var←c18080.f4/* propList←v6760 */  = formal←c0330;
   var←c18080.f5/* prop←v6788 */  = formal←c0331;
   /* GetPropFromList: */ 
SOURCE(5161, 226)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18112)+16)/* LOCK←v2776 */ ));
SOURCE(5161, 226)
   var←c6844 = 0;
SOURCE(5252, 135)
   {
      word var←c013;
      {
         word var←c0292;
         var←c0292 = (word) &var←c18080;
         var←c013 = (word) XR←Enable(( ((word)  (fPt) NoName←Q3156) ), ( ((word)  (fPt) NoName←Q3576) ), var←c0292);
         };
      if ((var←c013 == 1)) {
         goto lab←L013;
         };
      };
SOURCE(5161, 226)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c18112)+16)/* LOCK←v2776 */ ));
   return(var←c6844);
   lab←L013: ;
   return(var←c18080.f6/* var←c012 */ );
   }

static word NoName←Q3156(formal←c0264)
   word formal←c0264;
   {
   register ptr gf←c0263 =  (ptr) &globalframe;
SOURCE(5278, 109)
   {
      register word lst←v8616;
      lst←v8616 = (* (( (ptr) formal←c0264)+4) );
      lab←L100029: ;
      if ((lst←v8616 != 0)) {
         }
      else {
         goto lab←L100026;
         };
SOURCE(5336, 51)
      if (((*  (ptr) (*  (ptr) lst←v8616 ) ) == (* (( (ptr) formal←c0264)+5) ))) {
SOURCE(5365, 22)
         {
            word var←c17024;
            var←c17024 = (* (( (ptr) (*  (ptr) lst←v8616 ))+1) );
            (void) (XR←MonitorExit((word) (( (bPt) gf←c0263)+16)/* LOCK←v2776 */ ));
            (* (( (ptr) formal←c0264)+6) ) = var←c17024;
            return(1);
            };
         };
      lst←v8616 = (* (( (ptr) lst←v8616)+1) );
      goto lab←L100029;
      lab←L100026: ;
      };
   return(0);
   }

static void RemProp←P1200(formal←c0332, formal←c0333)
   word formal←c0332;
   word formal←c0333;
   {
   W6 var←c18144;
   /* declaration of atom←v6916 skipped */ 
   /* declaration of prop←v6944 skipped */ 
   register ptr gf←c18176 =  (ptr) &globalframe;
   var←c18144.f4/* atom←v6916 */  = formal←c0332;
   var←c18144.f5/* prop←v6944 */  = formal←c0333;
   /* RemProp: */ 
SOURCE(5402, 159)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18176)+16)/* LOCK←v2776 */ ));
SOURCE(5457, 104)
   {
      word var←c0293;
      var←c0293 = (word) &var←c18144;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q3216) ), ( ((word)  (fPt) NoName←Q3516) ), var←c0293);
      };
SOURCE(5402, 159)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c18176)+16)/* LOCK←v2776 */ ));
   return;
   }

static word NoName←Q3216(formal←c0266)
   word formal←c0266;
   {
SOURCE(5483, 78)
   if (((* (( (ptr) formal←c0266)+4) ) != 0)) {
SOURCE(5502, 59)
      {
         word var←c17056;
         {
            word var←c17088;
            var←c17088 = (word) GetPropList←P300((* ((( (ptr) formal←c0266)+4)) ));
            var←c17056 = (word) RemPropInternal←P1320(var←c17088, (* (( (ptr) formal←c0266)+5) ));
            };
         (void) SetPropList←P360((* (( (ptr) formal←c0266)+4) ), var←c17056);
         };
      };
   return(0);
   }

static word RemPropFromList←P1260(formal←c0334, formal←c0335)
   word formal←c0334;
   word formal←c0335;
   {
   W7 var←c18208;
   /* declaration of propList←v7016 skipped */ 
   /* declaration of prop←v7044 skipped */ 
   register ptr gf←c18240 =  (ptr) &globalframe;
   /* declaration of var←c014 skipped */ 
   word var←c7100;
   var←c18208.f4/* propList←v7016 */  = formal←c0334;
   var←c18208.f5/* prop←v7044 */  = formal←c0335;
   /* RemPropFromList: */ 
SOURCE(5567, 156)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18240)+16)/* LOCK←v2776 */ ));
SOURCE(5657, 66)
   {
      word var←c015;
      {
         word var←c0294;
         var←c0294 = (word) &var←c18208;
         var←c015 = (word) XR←Enable(( ((word)  (fPt) NoName←Q3276) ), ( ((word)  (fPt) NoName←Q3456) ), var←c0294);
         };
      /* removed trivial cond node */ 
      };
   return(var←c18208.f6/* var←c014 */ );
   }

static word NoName←Q3276(formal←c0269)
   word formal←c0269;
   {
   register ptr gf←c0268 =  (ptr) &globalframe;
SOURCE(5683, 40)
   {
      word var←c17120;
      var←c17120 = (word) RemPropInternal←P1320((* (( (ptr) formal←c0269)+4) ), (* (( (ptr) formal←c0269)+5) ));
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0268)+16)/* LOCK←v2776 */ ));
      (* (( (ptr) formal←c0269)+6) ) = var←c17120;
      return(1);
      };
   /* c2c skipped dead code */ 
   }

static word RemPropInternal←P1320(ref←v7160, prop←v7188)
   word ref←v7160;
   word prop←v7188;
   {
   register ptr gf←c18272 =  (ptr) &globalframe;
   word var←c7256;
   /* RemPropInternal: */ 
SOURCE(5729, 372)
SOURCE(5729, 372)
   var←c7256 = 0;
SOURCE(5811, 290)
   {
      word var←c17152;
      var←c17152 = ref←v7160;
      if ((var←c17152 == 0)) {
         goto lab←L100034;
         };
      if (((* (( (ptr) gf←c18272)+23) ) == XR←GetReferentType(var←c17152))) {
         {
            word propList←v8660;
            propList←v8660 = var←c17152;
SOURCE(5854, 249)
            {
               word lst←v8704;
               word lag←v8732 = 0;
SOURCE(5856, 24)
               lst←v8704 = propList←v8660;
SOURCE(5903, 170)
               lab←L100037: ;
               if ((lst←v8704 != 0)) {
                  }
               else {
                  goto lab←L100035;
                  };
               {
                  word rest←v8776;
SOURCE(5922, 25)
                  rest←v8776 = (* (( (ptr) lst←v8704)+1) );
SOURCE(5949, 98)
                  if (((*  (ptr) (*  (ptr) lst←v8704 ) ) == prop←v7188)) {
SOURCE(5980, 31)
                     if ((lag←v8732 == 0)) {
SOURCE(5998, 13)
                        return(rest←v8776);
                        };
SOURCE(6013, 15)
                     (* (( (ptr) lag←v8732)+1) ) = rest←v8776;
SOURCE(6030, 17)
                     return(propList←v8660);
                     };
SOURCE(6052, 9)
                  lag←v8732 = lst←v8704;
SOURCE(6063, 10)
                  lst←v8704 = rest←v8776;
                  };
               goto lab←L100037;
               lab←L100035: ;
SOURCE(6084, 17)
               return(propList←v8660);
               };
            };
         }
      else {
         lab←L100034: ;
         };
      };
SOURCE(5729, 372)
   return(var←c7256);
   }

static void MapAtoms←P1380(proc←v7316)
   word proc←v7316;
   {
   /* MapAtoms: */ 
SOURCE(6120, 121)
SOURCE(6172, 69)
   {
      register word atom←v8820;
      atom←v8820 = (word) Next←P1500(0);
      lab←L100041: ;
      if ((atom←v8820 != 0)) {
         }
      else {
         goto lab←L100038;
         };
SOURCE(6231, 10)
      (void) ( *( (fPt) ((*  (ptr) proc←v7316 ))))(atom←v8820, proc←v7316);
      atom←v8820 = (word) Next←P1500(atom←v8820);
      goto lab←L100041;
      lab←L100038: ;
      };
   }

static word FindAtom←P1440(proc←v7436)
   word proc←v7436;
   {
   word var←c7584;
   /* FindAtom: */ 
SOURCE(6256, 228)
SOURCE(6370, 91)
   {
      register word atom←v8864;
      atom←v8864 = (word) Next←P1500(0);
      lab←L100045: ;
      if ((atom←v8864 != 0)) {
         }
      else {
         goto lab←L100042;
         };
SOURCE(6429, 32)
      if ((0 != (word) ( *( (fPt) ((*  (ptr) proc←v7436 ))))(atom←v8864, proc←v7436))) {
SOURCE(6448, 13)
         return(atom←v8864);
         };
      atom←v8864 = (word) Next←P1500(atom←v8864);
      goto lab←L100045;
      lab←L100042: ;
      };
SOURCE(6472, 12)
   return(0);
   }

static word Next←P1500(formal←c0336)
   word formal←c0336;
   {
   W7 var←c18304;
   /* declaration of atom←v7644 skipped */ 
   register ptr gf←c18336 =  (ptr) &globalframe;
   /* declaration of var←c016 skipped */ 
   /* declaration of rtn←v7688 skipped */ 
   var←c18304.f4/* atom←v7644 */  = formal←c0336;
   /* Next: */ 
SOURCE(6490, 340)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18336)+16)/* LOCK←v2776 */ ));
SOURCE(6490, 340)
   var←c18304.f6/* rtn←v7688 */  = 0;
SOURCE(6564, 266)
   {
      word var←c017;
      {
         word var←c0295;
         var←c0295 = (word) &var←c18304;
         var←c017 = (word) XR←Enable(( ((word)  (fPt) NoName←Q3336) ), ( ((word)  (fPt) NoName←Q3396) ), var←c0295);
         };
      if ((var←c017 == 1)) {
         goto lab←L018;
         };
      };
SOURCE(6490, 340)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c18336)+16)/* LOCK←v2776 */ ));
   return(var←c18304.f6/* rtn←v7688 */ );
   lab←L018: ;
   return(var←c18304.f5/* var←c016 */ );
   }

static word NoName←Q3336(formal←c0273)
   word formal←c0273;
   {
   register ptr gf←c0272 =  (ptr) &globalframe;
SOURCE(6590, 18)
   {
      word hash←v8908 = 0;
      if (((* (( (ptr) formal←c0273)+4) ) == 0)) {
         }
      else {
         if (((* (( (ptr) (* (( (ptr) formal←c0273)+4) ))+2) ) != 0)) {
SOURCE(6668, 22)
            {
               word var←c17184;
               var←c17184 = (* (( (ptr) (* (( (ptr) formal←c0273)+4) ))+2) );
               (void) (XR←MonitorExit((word) (( (bPt) gf←c0272)+16)/* LOCK←v2776 */ ));
               (* (( (ptr) formal←c0273)+5) ) = var←c17184;
               return(1);
               };
            }
         else {
SOURCE(6703, 31)
            {
               word var←c17216;
               word s←v15248;
               s←v15248 = (word) GetPName←P120((* ((( (ptr) formal←c0273)+4)) ));
SOURCE(7941, 55)
               {
                  word pd21;
                  pd21 = (* (( (ptr) (* (( (ptr) gf←c0272)+83)/* var←c17280 */  ))+4) );
                  var←c17216 = ((word) ( *( (fPt) ((*  (ptr) pd21 ))))(s←v15248, 31415, pd21) % 4093);
                  };
               hash←v8908 = (var←c17216 + 1);
               };
            };
         };
SOURCE(6736, 94)
      lab←L100051: ;
      if ((hash←v8908 < 4093)) {
         }
      else {
         goto lab←L100049;
         };
SOURCE(6761, 26)
      {
         word x22;
         (* (( (ptr) formal←c0273)+6) ) = (* (( (ptr) (
               x22 = (* (( (ptr) gf←c0272)+9)/* atomDictionary←v3056 */  ),
               NCK((*  (bPt) x22 )),
               x22
               ))+BCK(hash←v8908, 4093)) );
         };
SOURCE(6789, 24)
      if (((* (( (ptr) formal←c0273)+6) ) != 0)) {
SOURCE(6807, 6)
         (void) (XR←MonitorExit((word) (( (bPt) gf←c0272)+16)/* LOCK←v2776 */ ));
         (* (( (ptr) formal←c0273)+5) ) = (* (( (ptr) formal←c0273)+6) );
         return(1);
         };
SOURCE(6815, 15)
      hash←v8908 = (hash←v8908 + 1);
      goto lab←L100051;
      lab←L100049: ;
      };
   return(0);
   }

static void LookUpAtom←P1560(formal←c0182, s←v7748)
   word formal←c0182;
   word s←v7748;
   {
   register ptr gf←c18368 =  (ptr) &globalframe;
   register word atom←v7792;
   word prev←v7820;
   word hash←v7848;
   word len←v8952;
   /* LookUpAtom: */ 
SOURCE(6845, 698)
SOURCE(6845, 698)
   atom←v7792 = 0;
SOURCE(6845, 698)
   prev←v7820 = 0;
SOURCE(6970, 24)
   len←v8952 = ( (((unsigned)(*  (hPt) s←v7748 ) << 17) >> 17) );
SOURCE(6996, 14)
   {
      word pd23;
      pd23 = (* (( (ptr) (* (( (ptr) gf←c18368)+83)/* var←c17280 */  ))+4) );
      hash←v7848 = ((word) ( *( (fPt) ((*  (ptr) pd23 ))))(s←v7748, 31415, pd23) % 4093);
      };
SOURCE(7012, 531)
   {
      word x24;
      atom←v7792 = (* (( (ptr) (
            x24 = (* (( (ptr) gf←c18368)+9)/* atomDictionary←v3056 */  ),
            NCK((*  (bPt) x24 )),
            x24
            ))+hash←v7848) );
      };
   lab←L100056: ;
   if ((atom←v7792 != 0)) {
      }
   else {
      goto lab←L100053;
      };
   {
      word r←v8996;
SOURCE(7079, 29)
      r←v8996 = (word) GetPName←P120(atom←v7792);
SOURCE(7110, 419)
      if ((len←v8952 == ( (((unsigned)(*  (hPt) r←v8996 ) << 17) >> 17) ))) {
SOURCE(7133, 396)
SOURCE(7135, 16)
         {
            word excess←v9040;
            word lp←v9068;
            word rp←v9096;
SOURCE(7153, 50)
            lp←v9068 = (s←v7748 + 4);
SOURCE(7205, 50)
            rp←v9096 = (r←v8996 + 4);
SOURCE(7257, 75)
            {
               register word i←v9140 = 0;
               register word noName←c17312;
               noName←c17312 = (len←v8952 >> 2);
               if ((i←v9140 >= noName←c17312)) {
                  goto lab←L100058;
                  };
               lab←L100061: ;
SOURCE(7310, 22)
               if (((* (( (ptr) lp←v9068)+i←v9140) ) != (* (( (ptr) rp←v9096)+i←v9140) ))) {
SOURCE(7332, 14)
                  goto lab←L100057;
                  };
               i←v9140 = (i←v9140 + 1);
               if ((i←v9140 < noName←c17312)) {
                  goto lab←L100061;
                  };
               lab←L100058: ;
               };
SOURCE(7357, 36)
            excess←v9040 = (len←v8952 & 3);
SOURCE(7395, 93)
            lab←L100064: ;
            if ((excess←v9040 != 0)) {
               }
            else {
               goto lab←L100062;
               };
            {
               word var←c17344;
               word var←c0296;
               word var←c17376;
SOURCE(7415, 38)
               {
                  word limit26;
                  var←c17344 = (len←v8952 - excess←v9040);
                  {
                     word limit25;
                     var←c0296 = (word) (* ((( (bPt) s←v7748)+4)+(
                           limit25 = (word) ( (((unsigned)(* (( (hPt) s←v7748)+1) ) << 17) >> 17) ),
                           BCK(var←c17344, limit25)
                           )) );
                     };
                  var←c17376 = (len←v8952 - excess←v9040);
                  if ((var←c0296 != (word) (* ((( (bPt) r←v8996)+4)+(
                        limit26 = (word) ( (((unsigned)(* (( (hPt) r←v8996)+1) ) << 17) >> 17) ),
                        BCK(var←c17376, limit26)
                        )) ))) {
SOURCE(7453, 14)
                     goto lab←L100057;
                     };
                  };
SOURCE(7469, 19)
               excess←v9040 = (excess←v9040 - 1);
               };
            goto lab←L100064;
            lab←L100062: ;
SOURCE(7499, 6)
            goto lab←L100052;
            };
         /* c2c skipped dead code */ 
         lab←L100057: ;
         };
SOURCE(7532, 11)
      prev←v7820 = atom←v7792;
      };
   atom←v7792 = (* (( (ptr) atom←v7792)+2) );
   goto lab←L100056;
   lab←L100053: ;
   /* removed tail goto */ 
   lab←L100052: ;
   (*  (ptr) formal←c0182 ) = atom←v7792;
   (* (( (ptr) formal←c0182)+1) ) = prev←v7820;
   (* (( (ptr) formal←c0182)+2) ) = hash←v7848;
   return;
   }

static void InsertAtom←P1620(this←v7908, prev←v7936, hash←v7964)
   word this←v7908;
   word prev←v7936;
   word hash←v7964;
   {
   register ptr gf←c18400 =  (ptr) &globalframe;
   /* InsertAtom: */ 
SOURCE(7558, 293)
SOURCE(7648, 173)
   if ((prev←v7936 == 0)) {
SOURCE(7669, 35)
      {
         word x27;
         (void) SetLink←P240(this←v7908, (* (( (ptr) (
                  x27 = (* (( (ptr) gf←c18400)+9)/* atomDictionary←v3056 */  ),
                  NCK((*  (bPt) x27 )),
                  x27
                  ))+hash←v7964) ));
         };
SOURCE(7706, 28)
      {
         word x28;
         (* (( (ptr) (
               x28 = (* (( (ptr) gf←c18400)+9)/* atomDictionary←v3056 */  ),
               NCK((*  (bPt) x28 )),
               x28
               ))+hash←v7964) ) = this←v7908;
         };
      }
   else {
SOURCE(7743, 28)
      (void) SetLink←P240(this←v7908, (* (( (ptr) prev←v7936)+2) ));
SOURCE(7773, 19)
      (void) SetLink←P240(prev←v7936, this←v7908);
SOURCE(7794, 27)
      (* (( (ptr) gf←c18400)+13)/* collisions←v3196 */  ) = ((* (( (ptr) gf←c18400)+13)/* collisions←v3196 */  ) + 1);
      };
SOURCE(7826, 25)
   (* (( (ptr) gf←c18400)+12)/* atomCount←v3168 */  ) = ((* (( (ptr) gf←c18400)+12)/* atomCount←v3168 */  ) + 1);
   }

static void Crash←P1740()
   {
   /* Crash: */ 
SOURCE(8002, 63)
SOURCE(8018, 47)
   (void) XR←RaiseUnnamedError();
   }

static void NoName←Q3396(formal←c0190, formal←c200036, formal←c200037, formal←c200038, formal←c200039)
   word formal←c0190;
   word formal←c200036;
   word formal←c200037;
   word formal←c200038;
   word formal←c200039;
   {
   register ptr gf←c0276 =  (ptr) &globalframe;
   if ((formal←c200037 == XR←Unwind)) {
SOURCE(6581, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0276)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0190 ) = 0;
   (* (( (ptr) formal←c0190)+1) ) = 0;
   return;
   }

static void NoName←Q3456(formal←c0195, formal←c200032, formal←c200033, formal←c200034, formal←c200035)
   word formal←c0195;
   word formal←c200032;
   word formal←c200033;
   word formal←c200034;
   word formal←c200035;
   {
   register ptr gf←c0277 =  (ptr) &globalframe;
   if ((formal←c200033 == XR←Unwind)) {
SOURCE(5674, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0277)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0195 ) = 0;
   (* (( (ptr) formal←c0195)+1) ) = 0;
   return;
   }

static void NoName←Q3516(formal←c0200, formal←c200028, formal←c200029, formal←c200030, formal←c200031)
   word formal←c0200;
   word formal←c200028;
   word formal←c200029;
   word formal←c200030;
   word formal←c200031;
   {
   register ptr gf←c0278 =  (ptr) &globalframe;
   if ((formal←c200029 == XR←Unwind)) {
SOURCE(5474, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0278)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0200 ) = 0;
   (* (( (ptr) formal←c0200)+1) ) = 0;
   return;
   }

static void NoName←Q3576(formal←c0205, formal←c200024, formal←c200025, formal←c200026, formal←c200027)
   word formal←c0205;
   word formal←c200024;
   word formal←c200025;
   word formal←c200026;
   word formal←c200027;
   {
   register ptr gf←c0279 =  (ptr) &globalframe;
   if ((formal←c200025 == XR←Unwind)) {
SOURCE(5269, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0279)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0205 ) = 0;
   (* (( (ptr) formal←c0205)+1) ) = 0;
   return;
   }

static void NoName←Q3636(formal←c0210, formal←c200020, formal←c200021, formal←c200022, formal←c200023)
   word formal←c0210;
   word formal←c200020;
   word formal←c200021;
   word formal←c200022;
   word formal←c200023;
   {
   register ptr gf←c0280 =  (ptr) &globalframe;
   if ((formal←c200021 == XR←Unwind)) {
SOURCE(4970, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0280)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0210 ) = 0;
   (* (( (ptr) formal←c0210)+1) ) = 0;
   return;
   }

static void NoName←Q3696(formal←c0215, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0215;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   register ptr gf←c0281 =  (ptr) &globalframe;
   if ((formal←c200017 == XR←Unwind)) {
SOURCE(4295, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0281)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0215 ) = 0;
   (* (( (ptr) formal←c0215)+1) ) = 0;
   return;
   }

static void NoName←Q3756(formal←c0220, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0220;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0282 =  (ptr) &globalframe;
   if ((formal←c200013 == XR←Unwind)) {
SOURCE(4033, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0282)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0220 ) = 0;
   (* (( (ptr) formal←c0220)+1) ) = 0;
   return;
   }

static void NoName←Q3816(formal←c0225, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0225;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0283 =  (ptr) &globalframe;
   if ((formal←c200009 == XR←Unwind)) {
SOURCE(3833, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0283)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0225 ) = 0;
   (* (( (ptr) formal←c0225)+1) ) = 0;
   return;
   }

static void NoName←Q3876(formal←c0230, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0230;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0284 =  (ptr) &globalframe;
   if ((formal←c200005 == XR←Unwind)) {
SOURCE(2750, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0284)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0230 ) = 0;
   (* (( (ptr) formal←c0230)+1) ) = 0;
   return;
   }

static void NoName←Q3936(formal←c0235, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0235;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0285 =  (ptr) &globalframe;
   if ((formal←c200001 == XR←Unwind)) {
SOURCE(2328, 7)
      (void) Crash←P1740();
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0285)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0235 ) = 0;
   (* (( (ptr) formal←c0235)+1) ) = 0;
   return;
   }

/* file: AtomImpl, module: AtomImpl, compiled at: March 3, 1992 1:09:40 pm PST */ 
extern void XR←install←AtomImpl() {
   NoName←Q2736();
   }
extern void XR←run←AtomImpl() { XR←Start(&globalframe); }