/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: April 21, 1992 1:09:55 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XlAssocImpl, module: XlAssocImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1512459903,3469295224] XlAssocImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; word r;} W9;
typedef word (*fPt)();
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef W9 *W9Pt;
#define SOURCE(p, l) /* source p, l */
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q2712();
static void XlAssocImpl←P0();
static word Create←P120();
static word FindNode←P180();
static void FetchValue←P240();
static word NoName←Q2772();
static word StoreValue←P300();
static word NoName←Q2832();
static word InsertWindow←P360();
static word StoreWindow←P420();
static void InternalRemoveNode←P720();
static word RemoveWindow←P780();
static word NoName←Q2892();
static void EnumerateChildren←P840();
static word NoName←Q2952();
static word Inhibit←P1416();
static void Release←P1476();
static word Enumerate←P1536();
static word GetSize←P900();
static word NoName←Q3012();
static void Erase←P960();
static word NoName←Q3072();
static void ReHash←P1020();
static void NoName←Q3132();
static void NoName←Q3192();
static void NoName←Q3252();
static void NoName←Q3312();
static void NoName←Q3372();
static void NoName←Q3432();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\132\046\116\177\300\316\311\076\170\100\214\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\030\000"};
static struct {unsigned f; char r[8];} string3 = {393224, "\205\210\242\000\015\241\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\132\046\116\177\300\316\311\076\170\100\230\000\000"};
static struct {unsigned f; char r[12];} string5 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\132\046\116\177\300\316\311\076\170\100\244\000\000"};
static struct {unsigned f; char r[4];} string7 = {196611, "\004@\376"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\072\360\037\045\300\374\044\132\334\100\164\000\000"};
static struct {unsigned f; char r[4];} string9 = {131074, "\003\004\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\132\046\116\177\300\316\311\076\170\100\200\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\072\360\037\045\300\374\044\132\334\100\150\000\000"};
static struct {unsigned f; char r[32];} string12 = {1835040, "\211\020\017\101\163\163\157\143\124\141\142\111\155\160\154\122\145\160\300\072\360\037\045\300\374\044\132\334\000\000\000"};
static struct {
   word f0[15]; word f15; word f16; word f17; 
   word f18; word f19; word f20; word f21; 
   word f22; word f23; word f24; word f25; 
   word f26; word f27; word f28; word f29; 
   word f30; word f31; word f32; word f33; 
   word f34; word f35; word f36; word f37; 
   word f38; word f39; word f40[2]; 
   } globalframe = {
   {0}, (word) ReHash←P1020, 0, (word) Erase←P960, 
   0, (word) GetSize←P900, 0, (word) EnumerateChildren←P840, 
   0, (word) RemoveWindow←P780, 0, (word) InternalRemoveNode←P720, 
   0, (word) StoreWindow←P420, 0, (word) InsertWindow←P360, 
   0, (word) StoreValue←P300, 0, (word) FetchValue←P240, 
   0, (word) FindNode←P180, 0, (word) Create←P120, 
   0, (word) XlAssocImpl←P0, {0}
   };

static void NoName←Q2712()
   {
   register ptr gf←c0202 =  (ptr) &globalframe;
   word var←c11944;
   (* (( (ptr) gf←c0202)+5) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0202)+6) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0202)+9) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0202)+10) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0202)+11) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (void) XR←DeclareGlobalFrame((word) "XlAssocImpl", &globalframe, (word) XR←GetTypeIndex((word) &string10, 0, (word) &string9)
      , (word) (( (bPt) gf←c0202)+156)/* var←c10376 */ );
   var←c11944 = (word) XR←ExportInterface((word) "XlAssoc", (word) XR←GetTypeIndexS((word) (&string11)), 12);
   (* (( (ptr) gf←c0202)+41)/* var←c11912 */  ) = var←c11944;
   (void) XR←ExportType((word) "AssocTabImplRep", (word) XR←GetTypeIndexS((word) (&string12)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   (void) XR←ExportVar(var←c11944, 1, (word) (( (bPt) gf←c0202)+48));
   (void) XR←ExportVar(var←c11944, 2, (word) (( (bPt) gf←c0202)+52));
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+148)/* var←c10344 */ , 67371777);
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+76)/* var←c10056 */ , 67372033);
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+116)/* var←c10216 */ , 68158724);
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+108)/* var←c10184 */ , 67896835);
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+92)/* var←c10120 */ , 67634946);
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+132)/* var←c10280 */ , 201852930);
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+124)/* var←c10248 */ , 67897603);
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+84)/* var←c10088 */ , 135531013);
   (void) XR←ExportProcS(var←c11944, (word) (( (bPt) gf←c0202)+68)/* var←c10024 */ , 264961);
   }

static void XlAssocImpl←P0(formal←c026, formal←c024)
   word formal←c026;
   word formal←c024;
   {
   register ptr gf←c11976 =  (ptr) &globalframe;
   /* XlAssocImpl: */ 
SOURCE(62, 7574)
SOURCE(7686, 212)
   {
      word var←c10408;
      var←c10408 = XR←NewObject(56, (* (( (ptr) gf←c11976)+6) ));
      (*  (ptr) var←c10408 ) = 2;
      (* (( (ptr) var←c10408)+1) ) = 5;
      (* (( (ptr) var←c10408)+2) ) = 11;
      (* (( (ptr) var←c10408)+3) ) = 23;
      (* (( (ptr) var←c10408)+4) ) = 53;
      (* (( (ptr) var←c10408)+5) ) = 113;
      (* (( (ptr) var←c10408)+6) ) = 251;
      (* (( (ptr) var←c10408)+7) ) = 509;
      (* (( (ptr) var←c10408)+8) ) = 1019;
      (* (( (ptr) var←c10408)+9) ) = 2039;
      (* (( (ptr) var←c10408)+10) ) = 4079;
      (* (( (ptr) var←c10408)+11) ) = 8179;
      (* (( (ptr) var←c10408)+12) ) = 16369;
      (* (( (ptr) var←c10408)+13) ) = 32749;
      (* (( (ptr) gf←c11976)+4)/* primeTable←v3280 */  ) = var←c10408;
      };
   }

static word Create←P120(mod←v4080)
   word mod←v4080;
   {
   register ptr gf←c12008 =  (ptr) &globalframe;
   word var←c4124;
   word seqLen←v6152;
   word impl←v6180;
   /* Create: */ 
SOURCE(971, 5541)
SOURCE(1028, 35)
   seqLen←v6152 = (MAX( (unsigned) , mod←v4080, 2));
SOURCE(1065, 160)
   {
      word var←c10440;
      word var←c10568;
      word var←c10632;
      {
         word var←c10472;
         word var←c10504;
         word var←c10536;
         var←c10472 = BCK(seqLen←v6152, 67108863);
         var←c10504 = (var←c10472 << 2);
         var←c10536 = XR←NewObject((4 + var←c10504), (* (( (ptr) gf←c12008)+9) ));
         (*  (ptr) var←c10536 ) = var←c10472;
         var←c10440 = var←c10536;
         };
      var←c10568 = XR←NewObject(36, (* (( (ptr) gf←c12008)+10) ));
      var←c10632 = XR←NewObject(20, (* (( (ptr) gf←c12008)+5) ));
      (* (( (ptr) var←c10632)+1) ) = seqLen←v6152;
      (* (( (ptr) var←c10632)+3) ) = var←c10440;
      (* (( (ptr) var←c10632)+4) ) = var←c10568;
      impl←v6180 = var←c10632;
      };
SOURCE(1227, 5285)
   {
      word var←c10696;
      var←c10696 = XR←NewObject(20, (* (( (ptr) gf←c12008)+11) ));
      (* (( (ptr) var←c10696)+4) ) = impl←v6180;
      return(var←c10696);
      };
   }

static word FindNode←P180(impl←v4184, window←v4212)
   word impl←v4184;
   word window←v4212;
   {
   word var←c4256;
   /* FindNode: */ 
SOURCE(1273, 5239)
SOURCE(1273, 5239)
   var←c4256 = 0;
SOURCE(1351, 5161)
   if ((window←v4212 == 0)) {
SOURCE(1377, 31)
      return((* (( (ptr) impl←v4184)+4) ));
      }
   else {
SOURCE(1408, 172)
      {
         word index←v6224;
         word node←v6252;
SOURCE(1410, 48)
         {
            word var←c10728;
            word id←v6124;
            id←v6124 = window←v4212;
SOURCE(926, 41)
            {
               word idx13;
               var←c10728 = (
                  idx13 = (word) (( (((unsigned)id←v6124 << 17) >> 17) ) + (id←v6124 >> 15)),
                  BCK(idx13, 65536)
                  );
               };
            index←v6224 = (var←c10728 % (*  (ptr) (* (( (ptr) impl←v4184)+3) ) ));
            };
SOURCE(1460, 29)
         {
            word var←c10760;
            var←c10760 = (* (( (ptr) impl←v4184)+3) );
            {
               word limit14;
               node←v6252 = (* ((( (ptr) var←c10760)+1)+(
                     limit14 = (*  (ptr) var←c10760 ),
                     BCK(index←v6224, limit14)
                     )) );
               };
            };
SOURCE(1491, 78)
         lab←L100003: ;
         if ((node←v6252 != 0)) {
            }
         else {
            goto lab←L100001;
            };
SOURCE(1511, 40)
         if ((window←v4212 == (*  (ptr) node←v6252 ))) {
SOURCE(1538, 13)
            return(node←v6252);
            };
SOURCE(1553, 16)
         node←v6252 = (* (( (ptr) node←v6252)+3) );
         goto lab←L100003;
         lab←L100001: ;
         };
      };
SOURCE(1273, 5239)
   return(var←c4256);
   }

static void FetchValue←P240(formal←c051, formal←c0236, formal←c0237)
   word formal←c051;
   word formal←c0236;
   word formal←c0237;
   {
   W9 var←c12040;
   /* declaration of x←v4316 skipped */ 
   /* declaration of window←v4344 skipped */ 
   /* declaration of found←v4388 skipped */ 
   /* declaration of parent←v4416 skipped */ 
   /* declaration of val←v4444 skipped */ 
   (* (( (ptr) &var←c12040)+4)/* x←v4316 */  ) = formal←c0236;
   (* (( (ptr) &var←c12040)+5)/* window←v4344 */  ) = formal←c0237;
   /* FetchValue: */ 
SOURCE(1587, 4925)
   (void) (XR←MonitorEntry(* (( (ptr) &var←c12040)+4)/* x←v4316 */  ));
SOURCE(1587, 4925)
   (* (( (ptr) &var←c12040)+8)/* val←v4444 */  ) = 0;
SOURCE(1696, 4816)
   {
      word var←c01;
      {
         word var←c0218;
         var←c0218 = (word) &var←c12040;
         var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2772) ), ( ((word)  (fPt) NoName←Q3432) ), var←c0218);
         };
      /* removed trivial cond node */ 
      };
   (void) (XR←MonitorExit(* (( (ptr) &var←c12040)+4)/* x←v4316 */  ));
   (*  (ptr) formal←c051 ) = (* (( (ptr) &var←c12040)+6)/* found←v4388 */  );
   (* (( (ptr) formal←c051)+1) ) = (* (( (ptr) &var←c12040)+7)/* parent←v4416 */  );
   (* (( (ptr) formal←c051)+2) ) = (* (( (ptr) &var←c12040)+8)/* val←v4444 */  );
   return;
   }

static word NoName←Q2772(formal←c0205)
   word formal←c0205;
   {
SOURCE(1719, 37)
   {
      word node←v6296;
SOURCE(1719, 37)
      node←v6296 = (word) FindNode←P180((* (( (ptr) (* (( (ptr) formal←c0205)+4) ))+4) ), (* (( (ptr) formal←c0205)+5) ));
SOURCE(1758, 98)
      if ((node←v6296 != 0)) {
SOURCE(1776, 49)
         (* (( (ptr) formal←c0205)+7) ) = (*  (ptr) (* (( (ptr) node←v6296)+4) ) );
         (* (( (ptr) formal←c0205)+8) ) = (* (( (ptr) node←v6296)+1) );
         (* (( (ptr) formal←c0205)+6) ) = 1;
         return(2);
         }
      else {
SOURCE(1825, 31)
         (* (( (ptr) formal←c0205)+6) ) = 0;
         (* (( (ptr) formal←c0205)+7) ) = 0;
         (* (( (ptr) formal←c0205)+8) ) = 0;
         return(2);
         };
      };
   /* c2c skipped dead code */ 
   }

static word StoreValue←P300(formal←c0238, formal←c0239, formal←c0240)
   word formal←c0238;
   word formal←c0239;
   word formal←c0240;
   {
   W8 var←c12072;
   /* declaration of x←v4516 skipped */ 
   /* declaration of window←v4544 skipped */ 
   /* declaration of val←v4572 skipped */ 
   /* declaration of found←v4628 skipped */ 
   var←c12072.f4/* x←v4516 */  = formal←c0238;
   var←c12072.f5/* window←v4544 */  = formal←c0239;
   var←c12072.f6/* val←v4572 */  = formal←c0240;
   /* StoreValue: */ 
SOURCE(1862, 4650)
   (void) (XR←MonitorEntry(var←c12072.f4/* x←v4516 */ ));
SOURCE(1961, 4551)
   {
      word var←c0219;
      var←c0219 = (word) &var←c12072;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2832) ), ( ((word)  (fPt) NoName←Q3372) ), var←c0219);
      };
SOURCE(1862, 4650)
   (void) (XR←MonitorExit(var←c12072.f4/* x←v4516 */ ));
   return(var←c12072.f7/* found←v4628 */ );
   }

static word NoName←Q2832(formal←c0206)
   word formal←c0206;
   {
SOURCE(1984, 37)
   {
      word node←v6340;
SOURCE(1984, 37)
      node←v6340 = (word) FindNode←P180((* (( (ptr) (* (( (ptr) formal←c0206)+4) ))+4) ), (* (( (ptr) formal←c0206)+5) ));
SOURCE(2023, 39)
      (* (( (ptr) formal←c0206)+7) ) = (node←v6340 != 0);
      if ((0 != (* (( (ptr) formal←c0206)+7) ))) {
SOURCE(2048, 14)
         (* (( (ptr) node←v6340)+1) ) = (* (( (ptr) formal←c0206)+6) );
         };
      };
   return(0);
   }

static word InsertWindow←P360(x←v4688, window←v4716, parent←v4744, val←v4772)
   word x←v4688;
   word window←v4716;
   word parent←v4744;
   word val←v4772;
   {
   register ptr gf←c12104 =  (ptr) &globalframe;
   word var←c10856;
   word var←c11048;
   word done←v4828;
   word impl←v6384;
   word node←v6412;
   word parentNode←v6440;
   /* InsertWindow: */ 
SOURCE(2069, 4443)
   (void) (XR←MonitorEntry(x←v4688));
SOURCE(2198, 19)
   impl←v6384 = (* (( (ptr) x←v4688)+4) );
SOURCE(2219, 35)
   node←v6412 = (word) FindNode←P180(impl←v6384, window←v4716);
SOURCE(2256, 41)
   parentNode←v6440 = (word) FindNode←P180(impl←v6384, parent←v4744);
SOURCE(2300, 55)
   if ((window←v4716 == parent←v4744)) {
SOURCE(2322, 33)
      var←c10856 = (word) (( (bPt) gf←c12104)+56);
      (void) (XR←MonitorExit(x←v4688));
      goto lab←L100010;
      };
SOURCE(2357, 4155)
   if ((node←v6412 == 0)) {
SOURCE(2375, 295)
      {
         word index←v6484;
         word var←c11016;
SOURCE(2378, 48)
         {
            word var←c10888;
            word id←v9356;
            id←v9356 = window←v4716;
SOURCE(926, 41)
            {
               word idx15;
               var←c10888 = (
                  idx15 = (word) (( (((unsigned)id←v9356 << 17) >> 17) ) + (id←v9356 >> 15)),
                  BCK(idx15, 65536)
                  );
               };
            index←v6484 = (var←c10888 % (*  (ptr) (* (( (ptr) impl←v6384)+3) ) ));
            };
SOURCE(2428, 4084)
         {
            word var←c10920;
            var←c10920 = XR←NewObject(36, (* (( (ptr) gf←c12104)+10) ));
            (*  (ptr) var←c10920 ) = window←v4716;
            (* (( (ptr) var←c10920)+1) ) = val←v4772;
            (* (( (ptr) var←c10920)+8) ) = index←v6484;
            node←v6412 = var←c10920;
            };
SOURCE(2493, 34)
         {
            word child←v9788;
            word parent←v9816;
            child←v9788 = node←v6412;
            parent←v9816 = parentNode←v6440;
SOURCE(4150, 21)
            (* (( (ptr) child←v9788)+4) ) = parent←v9816;
SOURCE(4173, 19)
            (* (( (ptr) child←v9788)+7) ) = 0;
SOURCE(4194, 33)
            (* (( (ptr) child←v9788)+6) ) = (* (( (ptr) parent←v9816)+5) );
SOURCE(4229, 126)
            if (((* (( (ptr) parent←v9816)+5) ) != 0)) {
SOURCE(4261, 38)
               if (((* (( (ptr) (* (( (ptr) parent←v9816)+5) ))+7) ) != 0)) {
SOURCE(4299, 5)
                  (void) XR←RaiseUnnamedError();
                  };
SOURCE(4322, 33)
               (* (( (ptr) (* (( (ptr) parent←v9816)+5) ))+7) ) = child←v9788;
               };
SOURCE(4360, 25)
            (* (( (ptr) parent←v9816)+5) ) = child←v9788;
            };
SOURCE(2529, 31)
         {
            word node←v9512;
            node←v9512 = node←v6412;
SOURCE(3734, 15)
            (* (( (ptr) node←v9512)+2) ) = 0;
SOURCE(3751, 2761)
            {
               word var←c10952;
               var←c10952 = (* (( (ptr) impl←v6384)+3) );
               {
                  word idx16;
                  word limit17;
                  (* (( (ptr) node←v9512)+3) ) = (* ((( (ptr) var←c10952)+1)+(
                        idx16 = (* (( (ptr) node←v9512)+8) ),
                        limit17 = (*  (ptr) var←c10952 ),
                        BCK(idx16, limit17)
                        )) );
                  };
               };
SOURCE(3786, 43)
            if (((* (( (ptr) node←v9512)+3) ) != 0)) {
SOURCE(3808, 21)
               (* (( (ptr) (* (( (ptr) node←v9512)+3) ))+2) ) = node←v9512;
               };
SOURCE(3831, 2681)
            {
               word var←c10984;
               var←c10984 = (* (( (ptr) impl←v6384)+3) );
               {
                  word idx18;
                  word limit19;
                  (* ((( (ptr) var←c10984)+1)+(
                        idx18 = (* (( (ptr) node←v9512)+8) ),
                        limit19 = (*  (ptr) var←c10984 ),
                        BCK(idx18, limit19)
                        )) ) = node←v9512;
                  };
               };
            };
SOURCE(2562, 91)
         {
            word tc20;
            var←c11016 = ((*  (ptr) impl←v6384 ) + 1);
            (*  (ptr) impl←v6384 ) = var←c11016;
            if (( (int)var←c11016 >  (int)(* (( (ptr) impl←v6384)+1) ))) {
               tc20 =  (word) ( (int)(* (( (ptr) impl←v6384)+2) ) ==  (int)0);
               }
            else {
               tc20 =  (word) 0;
               };
            if (tc20) {
SOURCE(2641, 12)
               (void) ReHash←P1020(impl←v6384);
               };
            };
SOURCE(2655, 13)
         (void) (XR←MonitorExit(x←v4688));
         return(1);
         };
      }
   else {
SOURCE(2679, 58)
      if ((window←v4716 == 0)) {
SOURCE(2705, 32)
         var←c11048 = (word) (( (bPt) gf←c12104)+52);
         (void) (XR←MonitorExit(x←v4688));
         goto lab←L100012;
         };
SOURCE(2739, 14)
      (void) (XR←MonitorExit(x←v4688));
      return(0);
      };
   /* c2c skipped dead code */ 
   lab←L100010: ;
SOURCE(2322, 33)
   (void) XR←RaiseError(var←c10856, 0);
   lab←L100012: ;
SOURCE(2705, 32)
   (void) XR←RaiseError(var←c11048, 0);
   }

static word StoreWindow←P420(x←v4888, window←v4916, parent←v4944)
   word x←v4888;
   word window←v4916;
   word parent←v4944;
   {
   register ptr gf←c12136 =  (ptr) &globalframe;
   word var←c11080;
   word var←c11272;
   word var←c11304;
   word new←v4988;
   word impl←v6528;
   word node←v6556;
   word parentNode←v6584;
   /* StoreWindow: */ 
SOURCE(2762, 3750)
   (void) (XR←MonitorEntry(x←v4888));
SOURCE(2873, 19)
   impl←v6528 = (* (( (ptr) x←v4888)+4) );
SOURCE(2894, 35)
   node←v6556 = (word) FindNode←P180(impl←v6528, window←v4916);
SOURCE(2931, 41)
   parentNode←v6584 = (word) FindNode←P180(impl←v6528, parent←v4944);
SOURCE(2975, 54)
   if ((parentNode←v6584 == 0)) {
SOURCE(2998, 31)
      var←c11080 = (word) (( (bPt) gf←c12136)+48);
      (void) (XR←MonitorExit(x←v4888));
      goto lab←L100014;
      };
SOURCE(3032, 3480)
   if ((node←v6556 == 0)) {
SOURCE(3050, 284)
      {
         word index←v6628;
         word var←c11240;
SOURCE(3052, 48)
         {
            word var←c11112;
            word id←v9312;
            id←v9312 = window←v4916;
SOURCE(926, 41)
            {
               word idx21;
               var←c11112 = (
                  idx21 = (word) (( (((unsigned)id←v9312 << 17) >> 17) ) + (id←v9312 >> 15)),
                  BCK(idx21, 65536)
                  );
               };
            index←v6628 = (var←c11112 % (*  (ptr) (* (( (ptr) impl←v6528)+3) ) ));
            };
SOURCE(3102, 3410)
         {
            word var←c11144;
            var←c11144 = XR←NewObject(36, (* (( (ptr) gf←c12136)+10) ));
            (*  (ptr) var←c11144 ) = window←v4916;
            (* (( (ptr) var←c11144)+8) ) = index←v6628;
            node←v6556 = var←c11144;
            };
SOURCE(3157, 34)
         {
            word child←v9712;
            word parent←v9740;
            child←v9712 = node←v6556;
            parent←v9740 = parentNode←v6584;
SOURCE(4150, 21)
            (* (( (ptr) child←v9712)+4) ) = parent←v9740;
SOURCE(4173, 19)
            (* (( (ptr) child←v9712)+7) ) = 0;
SOURCE(4194, 33)
            (* (( (ptr) child←v9712)+6) ) = (* (( (ptr) parent←v9740)+5) );
SOURCE(4229, 126)
            if (((* (( (ptr) parent←v9740)+5) ) != 0)) {
SOURCE(4261, 38)
               if (((* (( (ptr) (* (( (ptr) parent←v9740)+5) ))+7) ) != 0)) {
SOURCE(4299, 5)
                  (void) XR←RaiseUnnamedError();
                  };
SOURCE(4322, 33)
               (* (( (ptr) (* (( (ptr) parent←v9740)+5) ))+7) ) = child←v9712;
               };
SOURCE(4360, 25)
            (* (( (ptr) parent←v9740)+5) ) = child←v9712;
            };
SOURCE(3193, 31)
         {
            word node←v9464;
            node←v9464 = node←v6556;
SOURCE(3734, 15)
            (* (( (ptr) node←v9464)+2) ) = 0;
SOURCE(3751, 2761)
            {
               word var←c11176;
               var←c11176 = (* (( (ptr) impl←v6528)+3) );
               {
                  word idx22;
                  word limit23;
                  (* (( (ptr) node←v9464)+3) ) = (* ((( (ptr) var←c11176)+1)+(
                        idx22 = (* (( (ptr) node←v9464)+8) ),
                        limit23 = (*  (ptr) var←c11176 ),
                        BCK(idx22, limit23)
                        )) );
                  };
               };
SOURCE(3786, 43)
            if (((* (( (ptr) node←v9464)+3) ) != 0)) {
SOURCE(3808, 21)
               (* (( (ptr) (* (( (ptr) node←v9464)+3) ))+2) ) = node←v9464;
               };
SOURCE(3831, 2681)
            {
               word var←c11208;
               var←c11208 = (* (( (ptr) impl←v6528)+3) );
               {
                  word idx24;
                  word limit25;
                  (* ((( (ptr) var←c11208)+1)+(
                        idx24 = (* (( (ptr) node←v9464)+8) ),
                        limit25 = (*  (ptr) var←c11208 ),
                        BCK(idx24, limit25)
                        )) ) = node←v9464;
                  };
               };
            };
SOURCE(3226, 91)
         {
            word tc26;
            var←c11240 = ((*  (ptr) impl←v6528 ) + 1);
            (*  (ptr) impl←v6528 ) = var←c11240;
            if (( (int)var←c11240 >  (int)(* (( (ptr) impl←v6528)+1) ))) {
               tc26 =  (word) ( (int)(* (( (ptr) impl←v6528)+2) ) ==  (int)0);
               }
            else {
               tc26 =  (word) 0;
               };
            if (tc26) {
SOURCE(3305, 12)
               (void) ReHash←P1020(impl←v6528);
               };
            };
SOURCE(3319, 13)
         (void) (XR←MonitorExit(x←v4888));
         return(1);
         };
      }
   else {
SOURCE(3343, 58)
      if ((window←v4916 == 0)) {
SOURCE(3369, 32)
         var←c11272 = (word) (( (bPt) gf←c12136)+52);
         (void) (XR←MonitorExit(x←v4888));
         goto lab←L100016;
         };
SOURCE(3403, 48)
      if ((parent←v4944 == (*  (ptr) (* (( (ptr) node←v6556)+4) ) ))) {
SOURCE(3437, 14)
         (void) (XR←MonitorExit(x←v4888));
         return(0);
         };
SOURCE(3453, 111)
      {
         register word p←v6672;
         p←v6672 = parentNode←v6584;
         lab←L100020: ;
         if ((p←v6672 != (* (( (ptr) impl←v6528)+4) ))) {
            }
         else {
            goto lab←L100017;
            };
SOURCE(3516, 48)
         if ((p←v6672 == node←v6556)) {
SOURCE(3531, 33)
            var←c11304 = (word) (( (bPt) gf←c12136)+56);
            (void) (XR←MonitorExit(x←v4888));
            goto lab←L100021;
            };
         p←v6672 = (* (( (ptr) p←v6672)+4) );
         goto lab←L100020;
         lab←L100017: ;
         };
SOURCE(3575, 27)
      {
         word child←v9912;
         child←v9912 = node←v6556;
SOURCE(4477, 251)
         if (((* (( (ptr) (* (( (ptr) child←v9912)+4) ))+5) ) == child←v9912)) {
SOURCE(4518, 26)
            if (((* (( (ptr) child←v9912)+7) ) != 0)) {
SOURCE(4544, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(4567, 39)
            (* (( (ptr) (* (( (ptr) child←v9912)+4) ))+5) ) = (* (( (ptr) child←v9912)+6) );
            }
         else {
SOURCE(4658, 26)
            if (((* (( (ptr) child←v9912)+7) ) == 0)) {
SOURCE(4684, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(4691, 37)
            (* (( (ptr) (* (( (ptr) child←v9912)+7) ))+6) ) = (* (( (ptr) child←v9912)+6) );
            };
SOURCE(4781, 63)
         if (((* (( (ptr) child←v9912)+6) ) != 0)) {
SOURCE(4807, 37)
            (* (( (ptr) (* (( (ptr) child←v9912)+6) ))+7) ) = (* (( (ptr) child←v9912)+7) );
            };
         };
SOURCE(3604, 34)
      {
         word child←v9636;
         word parent←v9664;
         child←v9636 = node←v6556;
         parent←v9664 = parentNode←v6584;
SOURCE(4150, 21)
         (* (( (ptr) child←v9636)+4) ) = parent←v9664;
SOURCE(4173, 19)
         (* (( (ptr) child←v9636)+7) ) = 0;
SOURCE(4194, 33)
         (* (( (ptr) child←v9636)+6) ) = (* (( (ptr) parent←v9664)+5) );
SOURCE(4229, 126)
         if (((* (( (ptr) parent←v9664)+5) ) != 0)) {
SOURCE(4261, 38)
            if (((* (( (ptr) (* (( (ptr) parent←v9664)+5) ))+7) ) != 0)) {
SOURCE(4299, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(4322, 33)
            (* (( (ptr) (* (( (ptr) parent←v9664)+5) ))+7) ) = child←v9636;
            };
SOURCE(4360, 25)
         (* (( (ptr) parent←v9664)+5) ) = child←v9636;
         };
SOURCE(3640, 14)
      (void) (XR←MonitorExit(x←v4888));
      return(0);
      };
   /* c2c skipped dead code */ 
   lab←L100014: ;
SOURCE(2998, 31)
   (void) XR←RaiseError(var←c11080, 0);
   lab←L100016: ;
SOURCE(3369, 32)
   (void) XR←RaiseError(var←c11272, 0);
   lab←L100021: ;
SOURCE(3531, 33)
   (void) XR←RaiseError(var←c11304, 0);
   }

static void InternalRemoveNode←P720(impl←v5372, node←v5400)
   word impl←v5372;
   word node←v5400;
   {
   /* InternalRemoveNode: */ 
SOURCE(4850, 236)
SOURCE(4913, 70)
   lab←L100025: ;
   if (((* (( (ptr) node←v5400)+5) ) != 0)) {
      }
   else {
      goto lab←L100023;
      };
SOURCE(4942, 41)
   (void) InternalRemoveNode←P720(impl←v5372, (* (( (ptr) node←v5400)+5) ));
   goto lab←L100025;
   lab←L100023: ;
SOURCE(4994, 27)
   {
      word child←v9864;
      child←v9864 = node←v5400;
SOURCE(4477, 251)
      if (((* (( (ptr) (* (( (ptr) child←v9864)+4) ))+5) ) == child←v9864)) {
SOURCE(4518, 26)
         if (((* (( (ptr) child←v9864)+7) ) != 0)) {
SOURCE(4544, 5)
            (void) XR←RaiseUnnamedError();
            };
SOURCE(4567, 39)
         (* (( (ptr) (* (( (ptr) child←v9864)+4) ))+5) ) = (* (( (ptr) child←v9864)+6) );
         }
      else {
SOURCE(4658, 26)
         if (((* (( (ptr) child←v9864)+7) ) == 0)) {
SOURCE(4684, 5)
            (void) XR←RaiseUnnamedError();
            };
SOURCE(4691, 37)
         (* (( (ptr) (* (( (ptr) child←v9864)+7) ))+6) ) = (* (( (ptr) child←v9864)+6) );
         };
SOURCE(4781, 63)
      if (((* (( (ptr) child←v9864)+6) ) != 0)) {
SOURCE(4807, 37)
         (* (( (ptr) (* (( (ptr) child←v9864)+6) ))+7) ) = (* (( (ptr) child←v9864)+7) );
         };
      };
SOURCE(5023, 36)
   {
      word impl←v9560;
      word node←v9588;
      impl←v9560 = impl←v5372;
      node←v9588 = node←v5400;
SOURCE(3941, 48)
      if (((* (( (ptr) node←v9588)+3) ) != 0)) {
SOURCE(3963, 26)
         (* (( (ptr) (* (( (ptr) node←v9588)+3) ))+2) ) = (* (( (ptr) node←v9588)+2) );
         };
SOURCE(3991, 2521)
      if (((* (( (ptr) node←v9588)+2) ) != 0)) {
SOURCE(4014, 32)
         (* (( (ptr) (* (( (ptr) node←v9588)+2) ))+3) ) = (* (( (ptr) node←v9588)+3) );
         }
      else {
SOURCE(4046, 2466)
         {
            word var←c11336;
            var←c11336 = (* (( (ptr) impl←v9560)+3) );
            {
               word idx27;
               word limit28;
               (* ((( (ptr) var←c11336)+1)+(
                     idx27 = (* (( (ptr) node←v9588)+8) ),
                     limit28 = (*  (ptr) var←c11336 ),
                     BCK(idx27, limit28)
                     )) ) = (* (( (ptr) node←v9588)+3) );
               };
            };
         };
      };
SOURCE(5061, 25)
   (*  (ptr) impl←v5372 ) = ((*  (ptr) impl←v5372 ) - 1);
   }

static word RemoveWindow←P780(formal←c0241, formal←c0242)
   word formal←c0241;
   word formal←c0242;
   {
   W8 var←c12168;
   /* declaration of x←v5460 skipped */ 
   /* declaration of window←v5488 skipped */ 
   /* declaration of var←c11368 skipped */ 
   /* declaration of found←v5532 skipped */ 
   var←c12168.f4/* x←v5460 */  = formal←c0241;
   var←c12168.f5/* window←v5488 */  = formal←c0242;
   /* RemoveWindow: */ 
SOURCE(5092, 1420)
   (void) (XR←MonitorEntry(var←c12168.f4/* x←v5460 */ ));
SOURCE(5177, 1335)
   {
      word var←c02;
      {
         word var←c0220;
         var←c0220 = (word) &var←c12168;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2892) ), ( ((word)  (fPt) NoName←Q3312) ), var←c0220);
         };
      if ((var←c02 == 3)) {
         goto lab←L100028;
         };
      };
SOURCE(5092, 1420)
   (void) (XR←MonitorExit(var←c12168.f4/* x←v5460 */ ));
   return(var←c12168.f7/* found←v5532 */ );
   /* c2c skipped dead code */ 
   lab←L100028: ;
SOURCE(5283, 32)
   (void) XR←RaiseError(var←c12168.f6/* var←c11368 */ , 0);
   }

static word NoName←Q2892(formal←c0210)
   word formal←c0210;
   {
   register ptr gf←c0209 =  (ptr) &globalframe;
SOURCE(5200, 37)
   {
      word node←v6716;
SOURCE(5200, 37)
      node←v6716 = (word) FindNode←P180((* (( (ptr) (* (( (ptr) formal←c0210)+4) ))+4) ), (* (( (ptr) formal←c0210)+5) ));
SOURCE(5239, 16)
      (* (( (ptr) formal←c0210)+7) ) = (node←v6716 != 0);
SOURCE(5257, 58)
      if (((* (( (ptr) formal←c0210)+5) ) == 0)) {
SOURCE(5283, 32)
         (* (( (ptr) formal←c0210)+6) ) = (word) (( (bPt) gf←c0209)+52);
         (void) (XR←MonitorExit(* (( (ptr) formal←c0210)+4) ));
         return(3);
         };
SOURCE(5318, 46)
      if ((0 != (* (( (ptr) formal←c0210)+7) ))) {
SOURCE(5332, 32)
         (void) InternalRemoveNode←P720((* (( (ptr) (* (( (ptr) formal←c0210)+4) ))+4) ), node←v6716);
         };
      };
   return(0);
   }

static void EnumerateChildren←P840(formal←c0126, formal←c0243, window←v5620, formal←c0244, formal←c0245, formal←c0246)
   word formal←c0126;
   word formal←c0243;
   word window←v5620;
   word formal←c0244;
   word formal←c0245;
   word formal←c0246;
   {
   W16 var←c12200;
   /* declaration of x←v5592 skipped */ 
   /* declaration of action←v5648 skipped */ 
   /* declaration of recurse←v5676 skipped */ 
   /* declaration of data←v5704 skipped */ 
   word found←v5760;
   word quit←v5788;
   /* declaration of var←c11400 skipped */ 
   /* declaration of var←c11432 skipped */ 
   /* declaration of var←c11464 skipped */ 
   /* declaration of node←v6844 skipped */ 
   (* (( (ptr) &var←c12200)+4)/* x←v5592 */  ) = formal←c0243;
   (* (( (ptr) &var←c12200)+5)/* action←v5648 */  ) = formal←c0244;
   (* (( (ptr) &var←c12200)+6)/* recurse←v5676 */  ) = formal←c0245;
   (* (( (ptr) &var←c12200)+7)/* data←v5704 */  ) = formal←c0246;
   /* EnumerateChildren: */ 
SOURCE(5370, 1154)
   {
      word tmpAddr29;
      tmpAddr29 = (word) (( (ptr) &var←c12200)+8)/* var←c11400 */ ;
      (*  (ptr) tmpAddr29 ) = ( ((word)  (fPt) Enumerate←P1536) );
      (* (( (ptr) tmpAddr29) + 1) ) = 1;
      };
   {
      word tmpAddr30;
      tmpAddr30 = (word) (( (ptr) &var←c12200)+10)/* var←c11432 */ ;
      (*  (ptr) tmpAddr30 ) = ( ((word)  (fPt) Release←P1476) );
      (* (( (ptr) tmpAddr30) + 1) ) = 1;
      };
   {
      word tmpAddr31;
      tmpAddr31 = (word) (( (ptr) &var←c12200)+12)/* var←c11464 */ ;
      (*  (ptr) tmpAddr31 ) = ( ((word)  (fPt) Inhibit←P1416) );
      (* (( (ptr) tmpAddr31) + 1) ) = 1;
      };
SOURCE(6366, 31)
   (* (( (ptr) &var←c12200)+14)/* node←v6844 */  ) = (word) Inhibit←P1416((* (( (ptr) &var←c12200)+4)/* x←v5592 */  ), window←v5620, (word) (
         ( (bPt) &var←c12200)+48)/* var←c11464 */ );
SOURCE(6399, 113)
   found←v5760 = ((* (( (ptr) &var←c12200)+14)/* node←v6844 */  ) != 0);
   if ((0 != found←v5760)) {
SOURCE(6426, 18)
      quit←v5788 = 0;
      }
   else {
SOURCE(6444, 68)
      {
         /* declaration of var←c03 skipped */ 
         {
            word var←c0221;
            var←c0221 = (word) &var←c12200;
             (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2952) ), ( ((word)  (fPt) NoName←Q3252) ), var←c0221);
            };
         quit←v5788 = (* (( (ptr) &var←c12200)+15)/* var←c03 */  );
         };
      };
SOURCE(6514, 10)
   (void) Release←P1476((* (( (ptr) &var←c12200)+4)/* x←v5592 */  ), (word) (( (bPt) &var←c12200)+40)/* var←c11432 */ );
   /* removed tail goto */ 
   (*  (ptr) formal←c0126 ) = found←v5760;
   (* (( (ptr) formal←c0126)+1) ) = quit←v5788;
   return;
   }

static word NoName←Q2952(formal←c0211)
   word formal←c0211;
   {
SOURCE(6444, 68)
   (* (( (ptr) formal←c0211)+15) ) = (word) Enumerate←P1536((* (( (ptr) formal←c0211)+14) ), (* (( (ptr) formal←c0211)+5) ), (* (
         ( (ptr) formal←c0211)+6) ), (* (( (ptr) formal←c0211)+7) ), (word) (( (bPt) formal←c0211)+32));
   return(0);
   }

static word Inhibit←P1416(x←v6920, window←v6948, formal←c12232)
   word x←v6920;
   word window←v6948;
   word formal←c12232;
   {
   word node←v6992;
   word impl←v7280;
   formal←c12232 = (formal←c12232 - 48);
   /* Inhibit: */ 
SOURCE(5541, 971)
   (void) (XR←MonitorEntry(x←v6920));
SOURCE(5541, 971)
   node←v6992 = 0;
SOURCE(5613, 19)
   impl←v7280 = (* (( (ptr) x←v6920)+4) );
SOURCE(5634, 41)
   (* (( (ptr) impl←v7280)+2) ) = ((* (( (ptr) impl←v7280)+2) ) + 1);
SOURCE(5677, 835)
   node←v6992 = (word) FindNode←P180(impl←v7280, window←v6948);
SOURCE(5541, 971)
   (void) (XR←MonitorExit(x←v6920));
   return(node←v6992);
   }

static void Release←P1476(x←v7052, formal←c12264)
   word x←v7052;
   word formal←c12264;
   {
   word impl←v7324;
   formal←c12264 = (formal←c12264 - 40);
   /* Release: */ 
SOURCE(5711, 191)
   (void) (XR←MonitorEntry(x←v7052));
SOURCE(5746, 19)
   impl←v7324 = (* (( (ptr) x←v7052)+4) );
SOURCE(5767, 41)
   (* (( (ptr) impl←v7324)+2) ) = ((* (( (ptr) impl←v7324)+2) ) - 1);
SOURCE(5810, 34)
   if (( (int)(* (( (ptr) impl←v7324)+2) ) !=  (int)0)) {
SOURCE(5838, 6)
      (void) (XR←MonitorExit(x←v7052));
      return;
      };
SOURCE(5846, 56)
   lab←L100035: ;
   if (( (int)(*  (ptr) impl←v7324 ) >  (int)(* (( (ptr) impl←v7324)+1) ))) {
      }
   else {
      goto lab←L100033;
      };
SOURCE(5882, 20)
   (void) ReHash←P1020(impl←v7324);
   goto lab←L100035;
   lab←L100033: ;
SOURCE(5711, 191)
   (void) (XR←MonitorExit(x←v7052));
   return;
   }

static word Enumerate←P1536(node←v7112, action←v7140, recurse←v7168, data←v7196, formal←c12296)
   word node←v7112;
   word action←v7140;
   word recurse←v7168;
   word data←v7196;
   word formal←c12296;
   {
   word quit←v7252;
   formal←c12296 = (formal←c12296 - 32);
   /* Enumerate: */ 
SOURCE(5907, 605)
SOURCE(5907, 605)
   quit←v7252 = 0;
SOURCE(6023, 489)
   {
      register word n←v7368;
      n←v7368 = (* (( (ptr) node←v7112)+5) );
      lab←L100039: ;
      if ((n←v7368 != 0)) {
         }
      else {
         goto lab←L100036;
         };
SOURCE(6080, 432)
      if ( ( ((* (( (ptr) n←v7368)+5) ) != 0) ? (recurse←v7168 == 2) : 0 ) ) {
SOURCE(6126, 386)
         if ((0 != (word) Enumerate←P1536(n←v7368, action←v7140, recurse←v7168, data←v7196, (word) (( (bPt) formal←c12296)+32)))) {
SOURCE(6170, 13)
            return(1);
            };
         };
SOURCE(6185, 327)
      if ((0 != (word) ( *( (fPt) ((*  (ptr) action←v7140 ))))((*  (ptr) n←v7368 ), (* (( (ptr) n←v7368)+1) ), (*  (ptr) node←v7112 ), data←v7196, action←v7140)
      )) {
SOURCE(6236, 13)
         return(1);
         };
SOURCE(6251, 261)
      if ( ( ((* (( (ptr) n←v7368)+5) ) != 0) ? (recurse←v7168 == 1) : 0 ) ) {
SOURCE(6296, 216)
         if ((0 != (word) Enumerate←P1536(n←v7368, action←v7140, recurse←v7168, data←v7196, (word) (( (bPt) formal←c12296)+32)))) {
SOURCE(6340, 13)
            return(1);
            };
         };
      n←v7368 = (* (( (ptr) n←v7368)+6) );
      goto lab←L100039;
      lab←L100036: ;
      };
SOURCE(5907, 605)
   return(quit←v7252);
   }

static word GetSize←P900(formal←c0247)
   word formal←c0247;
   {
   W6 var←c12328;
   /* declaration of x←v5848 skipped */ 
   /* declaration of var←c04 skipped */ 
   word var←c5892;
   var←c12328.f4/* x←v5848 */  = formal←c0247;
   /* GetSize: */ 
SOURCE(6530, 118)
   (void) (XR←MonitorEntry(var←c12328.f4/* x←v5848 */ ));
SOURCE(6586, 62)
   {
      word var←c05;
      {
         word var←c0222;
         var←c0222 = (word) &var←c12328;
         var←c05 = (word) XR←Enable(( ((word)  (fPt) NoName←Q3012) ), ( ((word)  (fPt) NoName←Q3192) ), var←c0222);
         };
      /* removed trivial cond node */ 
      };
   return(var←c12328.f5/* var←c04 */ );
   }

static word NoName←Q3012(formal←c0215)
   word formal←c0215;
   {
SOURCE(6609, 19)
   {
      word impl←v7412;
SOURCE(6609, 19)
      impl←v7412 = (* (( (ptr) (* (( (ptr) formal←c0215)+4) ))+4) );
SOURCE(6630, 18)
      {
         word var←c11496;
         var←c11496 = (*  (ptr) impl←v7412 );
         (void) (XR←MonitorExit(* (( (ptr) formal←c0215)+4) ));
         (* (( (ptr) formal←c0215)+5) ) = var←c11496;
         return(1);
         };
      };
   /* c2c skipped dead code */ 
   }

static void Erase←P960(formal←c0248)
   word formal←c0248;
   {
   W5 var←c12360;
   /* declaration of x←v5952 skipped */ 
   var←c12360.f4/* x←v5952 */  = formal←c0248;
   /* Erase: */ 
SOURCE(6654, 299)
   (void) (XR←MonitorEntry(var←c12360.f4/* x←v5952 */ ));
SOURCE(6694, 259)
   {
      word var←c0223;
      var←c0223 = (word) &var←c12360;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q3072) ), ( ((word)  (fPt) NoName←Q3132) ), var←c0223);
      };
SOURCE(6654, 299)
   (void) (XR←MonitorExit(var←c12360.f4/* x←v5952 */ ));
   return;
   }

static word NoName←Q3072(formal←c0216)
   word formal←c0216;
   {
SOURCE(6717, 19)
   {
      word impl←v7456;
SOURCE(6717, 19)
      impl←v7456 = (* (( (ptr) (* (( (ptr) formal←c0216)+4) ))+4) );
SOURCE(6738, 176)
      {
         register word i←v7500 = 0;
         register word noName←c11528;
         noName←c11528 = (*  (ptr) (* (( (ptr) impl←v7456)+3) ) );
         if ((i←v7500 >= noName←c11528)) {
            goto lab←L100044;
            };
         lab←L100047: ;
         {
            word next←v7544 = 0;
SOURCE(6798, 78)
            {
               register word cur←v7588;
               {
                  word var←c11560;
                  var←c11560 = (* (( (ptr) impl←v7456)+3) );
                  {
                     word limit32;
                     cur←v7588 = (* ((( (ptr) var←c11560)+1)+(
                           limit32 = (*  (ptr) var←c11560 ),
                           BCK(i←v7500, limit32)
                           )) );
                     };
                  };
               lab←L100051: ;
               if ((cur←v7588 != 0)) {
                  }
               else {
                  goto lab←L100048;
                  };
SOURCE(6850, 15)
               next←v7544 = (* (( (ptr) cur←v7588)+3) );
SOURCE(6867, 9)
               XR←FillWords(&(* (W9Pt) (cur←v7588)), 9, 0);
               cur←v7588 = next←v7544;
               goto lab←L100051;
               lab←L100048: ;
               };
SOURCE(6887, 27)
            {
               word var←c11592;
               var←c11592 = (* (( (ptr) impl←v7456)+3) );
               {
                  word limit33;
                  (* ((( (ptr) var←c11592)+1)+(
                        limit33 = (*  (ptr) var←c11592 ),
                        BCK(i←v7500, limit33)
                        )) ) = 0;
                  };
               };
            };
         i←v7500 = (i←v7500 + 1);
         if ((i←v7500 < noName←c11528)) {
            goto lab←L100047;
            };
         lab←L100044: ;
         };
SOURCE(6916, 13)
      (*  (ptr) impl←v7456 ) = 0;
SOURCE(6931, 22)
      {
         word var←c11624;
         var←c11624 = (* (( (ptr) impl←v7456)+4) );
         XR←FillWords(&(* (W9Pt) (var←c11624)), 9, 0);
         };
      };
   return(0);
   }

static void ReHash←P1020(impl←v6012)
   word impl←v6012;
   {
   register ptr gf←c12392 =  (ptr) &globalframe;
   word oldData←v7632;
   word newData←v7660 = 0;
   word seek←v7688;
   register word newPTI←v7716 = 0;
   word newMod←v7744 = 0;
   /* ReHash: */ 
SOURCE(6959, 677)
SOURCE(6998, 28)
   oldData←v7632 = (* (( (ptr) impl←v6012)+3) );
SOURCE(7046, 34)
   seek←v7688 = ((*  (ptr) (* (( (ptr) impl←v6012)+3) ) ) << 1);
SOURCE(7112, 54)
   if (((* (( (ptr) (* (( (ptr) gf←c12392)+4)/* primeTable←v3280 */  ))+13) ) > 2147483647)) {
SOURCE(7166, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(7173, 90)
   newPTI←v7716 = 0;
   lab←L100055: ;
   if ( ( ((newPTI←v7716 + 1) < 14) ? ((* (( (ptr) (* (( (ptr) gf←c12392)+4)/* primeTable←v3280 */  ))+BCK(newPTI←v7716, 14)
      ) ) < seek←v7688) : 0 ) ) {
      }
   else {
      goto lab←L100052;
      };
   newPTI←v7716 = (newPTI←v7716 + 1);
   goto lab←L100055;
   lab←L100052: ;
SOURCE(7277, 27)
   newMod←v7744 = (* (( (ptr) (* (( (ptr) gf←c12392)+4)/* primeTable←v3280 */  ))+BCK(newPTI←v7716, 14)) );
SOURCE(7306, 66)
   if ((newMod←v7744 == (*  (ptr) (* (( (ptr) impl←v6012)+3) ) ))) {
SOURCE(7338, 26)
      (* (( (ptr) impl←v6012)+1) ) = 2147483647;
SOURCE(7366, 6)
      return;
      };
SOURCE(7375, 23)
   (* (( (ptr) impl←v6012)+1) ) = SGNCK(newMod←v7744);
SOURCE(7400, 39)
   {
      word var←c11656;
      {
         word var←c11688;
         word var←c11720;
         word var←c11752;
         var←c11688 = BCK(newMod←v7744, 67108863);
         var←c11720 = (var←c11688 << 2);
         var←c11752 = XR←NewObject((4 + var←c11720), (* (( (ptr) gf←c12392)+9) ));
         (*  (ptr) var←c11752 ) = var←c11688;
         var←c11656 = var←c11752;
         };
      newData←v7660 = var←c11656;
      (* (( (ptr) impl←v6012)+3) ) = var←c11656;
      };
SOURCE(7441, 195)
   {
      register word i←v7812 = 0;
      register word noName←c11784;
      noName←c11784 = (*  (ptr) oldData←v7632 );
      if ((i←v7812 >= noName←c11784)) {
         goto lab←L100056;
         };
      lab←L100059: ;
      {
         word next←v7856 = 0;
SOURCE(7498, 138)
         {
            register word cur←v7900;
            {
               word limit34;
               cur←v7900 = (* ((( (ptr) oldData←v7632)+1)+(
                     limit34 = (*  (ptr) oldData←v7632 ),
                     BCK(i←v7812, limit34)
                     )) );
               };
            lab←L100063: ;
            if ((cur←v7900 != 0)) {
               }
            else {
               goto lab←L100060;
               };
SOURCE(7548, 39)
            {
               word var←c11816;
               word window←v9236;
               window←v9236 = (*  (ptr) cur←v7900 );
               {
                  word id←v9268;
                  id←v9268 = window←v9236;
SOURCE(926, 41)
                  {
                     word idx35;
                     var←c11816 = (
                        idx35 = (word) (( (((unsigned)id←v9268 << 17) >> 17) ) + (id←v9268 >> 15)),
                        BCK(idx35, 65536)
                        );
                     };
                  };
               (* (( (ptr) cur←v7900)+8) ) = (var←c11816 % newMod←v7744);
               };
SOURCE(7589, 15)
            next←v7856 = (* (( (ptr) cur←v7900)+3) );
SOURCE(7606, 30)
            {
               word impl←v9416;
               impl←v9416 = impl←v6012;
SOURCE(3734, 15)
               (* (( (ptr) cur←v7900)+2) ) = 0;
SOURCE(3751, 2761)
               {
                  word var←c11848;
                  var←c11848 = (* (( (ptr) impl←v9416)+3) );
                  {
                     word idx36;
                     word limit37;
                     (* (( (ptr) cur←v7900)+3) ) = (* ((( (ptr) var←c11848)+1)+(
                           idx36 = (* (( (ptr) cur←v7900)+8) ),
                           limit37 = (*  (ptr) var←c11848 ),
                           BCK(idx36, limit37)
                           )) );
                     };
                  };
SOURCE(3786, 43)
               if (((* (( (ptr) cur←v7900)+3) ) != 0)) {
SOURCE(3808, 21)
                  (* (( (ptr) (* (( (ptr) cur←v7900)+3) ))+2) ) = cur←v7900;
                  };
SOURCE(3831, 2681)
               {
                  word var←c11880;
                  var←c11880 = (* (( (ptr) impl←v9416)+3) );
                  {
                     word idx38;
                     word limit39;
                     (* ((( (ptr) var←c11880)+1)+(
                           idx38 = (* (( (ptr) cur←v7900)+8) ),
                           limit39 = (*  (ptr) var←c11880 ),
                           BCK(idx38, limit39)
                           )) ) = cur←v7900;
                     };
                  };
               };
            cur←v7900 = next←v7856;
            goto lab←L100063;
            lab←L100060: ;
            };
         };
      i←v7812 = (i←v7812 + 1);
      if ((i←v7812 < noName←c11784)) {
         goto lab←L100059;
         };
      lab←L100056: ;
      };
   }

static void NoName←Q3132(formal←c0176, formal←c200020, formal←c200021, formal←c200022, formal←c200023)
   word formal←c0176;
   word formal←c200020;
   word formal←c200021;
   word formal←c200022;
   word formal←c200023;
   {
   if ((formal←c200021 == XR←Unwind)) {
      (void) (XR←MonitorExit(* (( (ptr) formal←c200020)+4) ));
      };
   (*  (ptr) formal←c0176 ) = 0;
   (* (( (ptr) formal←c0176)+1) ) = 0;
   return;
   }

static void NoName←Q3192(formal←c0181, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0181;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   if ((formal←c200017 == XR←Unwind)) {
      (void) (XR←MonitorExit(* (( (ptr) formal←c200016)+4) ));
      };
   (*  (ptr) formal←c0181 ) = 0;
   (* (( (ptr) formal←c0181)+1) ) = 0;
   return;
   }

static void NoName←Q3252(formal←c0186, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0186;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   if ((formal←c200013 == XR←Unwind)) {
SOURCE(6501, 11)
      (void) Release←P1476((* (( (ptr) formal←c200012)+4) ), (word) (( (bPt) formal←c200012)+40));
      };
   (*  (ptr) formal←c0186 ) = 0;
   (* (( (ptr) formal←c0186)+1) ) = 0;
   return;
   }

static void NoName←Q3312(formal←c0191, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0191;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   if ((formal←c200009 == XR←Unwind)) {
      (void) (XR←MonitorExit(* (( (ptr) formal←c200008)+4) ));
      };
   (*  (ptr) formal←c0191 ) = 0;
   (* (( (ptr) formal←c0191)+1) ) = 0;
   return;
   }

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

static void NoName←Q3432(formal←c0201, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0201;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   if ((formal←c200001 == XR←Unwind)) {
      (void) (XR←MonitorExit(* (( (ptr) formal←c200000)+4) ));
      };
   (*  (ptr) formal←c0201 ) = 0;
   (* (( (ptr) formal←c0201)+1) ) = 0;
   return;
   }

/* file: XlAssocImpl, module: XlAssocImpl, compiled at: April 21, 1992 1:09:54 pm PDT */ 
extern void XR←install←XlAssocImpl() {
   NoName←Q2712();
   }
extern void XR←run←XlAssocImpl() { XR←Start(&globalframe); }