/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: January 19, 1993 12:22:13 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: CommanderImpl, module: CommanderImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3436238190,163555702] CommanderImpl";
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;} W2;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; word r;} W9;
typedef struct {W8 f; W2 r;} W10;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q2184();
static void CommanderImpl←P0();
static void Register←P60();
static void ChangeRegistry←P120();
static word Update←P900();
static word Lookup←P180();
static word NoName←Q2244();
static word LookupInRegistry←P240();
static void Enumerate←P300();
static word NoName←Q2304();
static void EnumerateInRegistry←P360();
static word EachPairProc←P1344();
static void EnumeratePattern←P420();
static word NoName←Q2364();
static void EnumPatternInRegistry←P480();
static word EachPairProc←P1548();
static word GetProp←P540();
static word GetWDir←P600();
static word GetDefaultWDir←P660();
static word PrependWorkingDir←P720();
static word GetProperty←P780();
static word NoName←Q2424();
static word PutProperty←P840();
static word NoName←Q2484();
static void NoName←Q2544();
static void NoName←Q2604();
static void NoName←Q2664();
static void NoName←Q2724();
static void NoName←Q2784();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\314\320\325\156\300\011\277\251\166\100\200\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\017\000"};
static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[40];} string5 = {2555944, "\262\260\004\003\153\145\171\216\257\300\363\223\326\161\300\017\164\046\072\104\350\261\260\000\216\257\300\373\225\000\071\300\362\156\307\320\100\244\261"};
static struct {unsigned f; char r[44];} string6 = {2752556, "\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261\000"};
static struct {unsigned f; char r[116];} string7 = {7471220, "\262\260\012\011\155\141\164\143\150\120\162\157\143\262\260\004\003\153\145\171\216\257\300\363\223\326\161\300\017\164\046\072\104\350\011\010\160\162\157\143\104\141\164\141\216\257\300\373\225\000\071\300\362\156\307\320\100\244\261\260\005\004\163\164\157\160\232\261\261\260\004\003\153\145\171\216\257\300\363\223\326\161\300\017\164\046\072\104\350\011\010\160\162\157\143\104\141\164\141\216\257\300\373\225\000\071\300\362\156\307\320\100\244\261\000"};
static struct {unsigned f; char r[16];} string8 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[140];} string9 = {8978572, "\262\260\010\007\160\141\164\164\145\162\156\216\257\300\363\223\326\161\300\017\164\046\072\104\350\012\011\155\141\164\143\150\120\162\157\143\262\260\004\003\153\145\171\216\257\300\363\223\326\161\300\017\164\046\072\104\350\011\010\160\162\157\143\104\141\164\141\216\257\300\373\225\000\071\300\362\156\307\320\100\244\261\260\005\004\163\164\157\160\232\261\261\260\004\003\153\145\171\216\257\300\363\223\326\161\300\017\164\046\072\104\350\011\010\160\162\157\143\104\141\164\141\216\257\300\373\225\000\071\300\362\156\307\320\100\244\261\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string11 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\373\225\000\071\300\362\156\307\320\100\244\000\000"};
static struct {unsigned f; char r[4];} string13 = {131074, "\004\006\000"};
static struct {unsigned f; char r[40];} string14 = {2490408, "\262\260\004\003\143\155\144\216\257\300\373\225\000\071\300\362\156\307\320\100\230\004\003\153\145\171\217\261\260\006\005\166\141\154\165\145\217\261\000"};
static struct {unsigned f; char r[20];} string15 = {1048596, "WorkingDirectory\000\000\000"};
static struct {unsigned f; char r[16];} string16 = {917520, "StdEnumPattern\000"};
static struct {unsigned f; char r[4];} string17 = {196612, "PWD"};
static struct {unsigned f; char r[4];} string18 = {65540, "/\000\000"};
static struct {unsigned f; char r[16];} string19 = {786448, "StdEnumerate\000\000\000"};
static struct {unsigned f; char r[12];} string20 = {589836, "StdLookup\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\314\320\325\156\300\011\277\251\166\100\164\000\000"};
static struct {unsigned f; char r[12];} string22 = {655370, "\006\003 \001$\001@\134\004?\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\144\364\322\150\300\206\136\277\046\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\314\116\377\204\300\167\024\373\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\240\236\274\171\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\072\337\114\355\300\232\070\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\322\342\022\352\300\100\014\165\000\100\150\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\373\225\000\071\300\362\156\307\320\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\206\126\034\347\300\061\333\303\163\100\150\000\000"};
static struct {
   word f0[29]; 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[8]; 
   } globalframe = {
   {0}, (word) PutProperty←P840, 0, (word) GetProperty←P780, 
   0, (word) PrependWorkingDir←P720, 0, (word) GetDefaultWDir←P660, 
   0, (word) GetWDir←P600, 0, (word) GetProp←P540, 
   0, (word) EnumPatternInRegistry←P480, 0, (word) EnumeratePattern←P420, 
   0, (word) EnumerateInRegistry←P360, 0, (word) Enumerate←P300, 
   0, (word) LookupInRegistry←P240, 0, (word) Lookup←P180, 
   0, (word) ChangeRegistry←P120, 0, (word) Register←P60, 
   0, (word) CommanderImpl←P0, {0}
   };

static void NoName←Q2184()
   {
   register ptr gf←c0185 =  (ptr) &globalframe;
   word var←c17736;
   (* (( (ptr) gf←c0185)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0185)+11) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0185)+14) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (* (( (ptr) gf←c0185)+15) ) = (word) XR←GetTypeIndexS((word) (&string6));
   (* (( (ptr) gf←c0185)+16) ) = (word) XR←GetTypeIndexS((word) (&string7));
   (* (( (ptr) gf←c0185)+17) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string4);
   (* (( (ptr) gf←c0185)+18) ) = (word) XR←GetTypeIndexS((word) (&string9));
   (* (( (ptr) gf←c0185)+19) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0185)+21) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
   (* (( (ptr) gf←c0185)+22) ) = (word) XR←GetTypeIndexS((word) (&string14));
   (*  (ptr) (( (bPt) gf←c0185)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0185)+11) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0185)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0185)+11) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0185)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0185)+17) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0185)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0185)+17) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0185)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0185)+11) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0185)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0185)+11) ), (word) &string20);
   (void) XR←DeclareGlobalFrame((word) "CommanderImpl", &globalframe, (word) XR←GetTypeIndex((word) &string21, 0, (word) &string22)
      , (word) (( (bPt) gf←c0185)+228)/* var←c16136 */ );
   var←c17736 = (word) XR←ImportInterface((word) "List", (word) XR←GetTypeIndexS((word) (&string23)), 28);
   (* (( (ptr) gf←c0185)+63)/* var←c17192 */  ) = var←c17736;
   (void) XR←ImportProcS(var←c17736, 67899907);
   (void) XR←ImportProcS(var←c17736, 67637250);
   var←c17736 = (word) XR←ImportInterface((word) "ProcessProps", (word) XR←GetTypeIndexS((word) (&string24)), 6);
   (* (( (ptr) gf←c0185)+62)/* var←c17160 */  ) = var←c17736;
   (void) XR←ImportProcS(var←c17736, 67109376);
   var←c17736 = (word) XR←ImportInterface((word) "Prop", (word) XR←GetTypeIndexS((word) (&string25)), 4);
   (* (( (ptr) gf←c0185)+60)/* var←c16296 */  ) = var←c17736;
   (void) XR←ImportProcS(var←c17736, 67895299);
   var←c17736 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string26)), 43);
   (* (( (ptr) gf←c0185)+61)/* var←c17064 */  ) = var←c17736;
   (void) XR←ImportProcS(var←c17736, 67896323);
   (void) XR←ImportProcS(var←c17736, 67903235);
   (void) XR←ImportProcS(var←c17736, 67633666);
   (void) XR←ImportProcS(var←c17736, 67373313);
   (void) XR←ImportProcS(var←c17736, 67900163);
   var←c17736 = (word) XR←ImportInterface((word) "SymTab", (word) XR←GetTypeIndexS((word) (&string27)), 13);
   (* (( (ptr) gf←c0185)+59)/* var←c16168 */  ) = var←c17736;
   (void) XR←ImportProcS(var←c17736, 67635714);
   (void) XR←ImportProcS(var←c17736, 134742786);
   (void) XR←ImportProcS(var←c17736, 67896835);
   (void) XR←ImportProcS(var←c17736, 67635202);
   (void) XR←ImportProcS(var←c17736, 67633410);
   var←c17736 = (word) XR←ImportInterface((word) "UnixEnviron", (word) XR←GetTypeIndexS((word) (&string28)), 1);
   (* (( (ptr) gf←c0185)+64)/* var←c17320 */  ) = var←c17736;
   (void) XR←ImportProcS(var←c17736, 67371009);
   var←c17736 = (word) XR←ExportInterface((word) "Commander", (word) XR←GetTypeIndexS((word) (&string29)), 3);
   (* (( (ptr) gf←c0185)+65)/* var←c17768 */  ) = var←c17736;
   (void) XR←ExportProcS(var←c17736, (word) (( (bPt) gf←c0185)+220)/* var←c16104 */ , 1310725);
   (void) XR←ExportProcS(var←c17736, (word) (( (bPt) gf←c0185)+188)/* var←c15976 */ , 134480129);
   (void) XR←ExportProcS(var←c17736, (word) (( (bPt) gf←c0185)+204)/* var←c16040 */ , 67371521);
   var←c17736 = (word) XR←ExportInterface((word) "CommanderRegistry", (word) XR←GetTypeIndexS((word) (&string30)), 3);
   (* (( (ptr) gf←c0185)+65)/* var←c17768 */  ) = var←c17736;
   (void) XR←ExportProcS(var←c17736, (word) (( (bPt) gf←c0185)+212)/* var←c16072 */ , 262145);
   (void) XR←ExportProcS(var←c17736, (word) (( (bPt) gf←c0185)+172)/* var←c15912 */ , 134742274);
   (void) XR←ExportProcS(var←c17736, (word) (( (bPt) gf←c0185)+156)/* var←c15848 */ , 67633666);
   }

static void CommanderImpl←P0(formal←c046, formal←c035)
   word formal←c046;
   word formal←c035;
   {
   register ptr gf←c17800 =  (ptr) &globalframe;
   /* CommanderImpl: */ 
SOURCE(427, 5890)
SOURCE(961, 66)
   {
      word pd31;
      pd31 = (* (( (ptr) (* (( (ptr) gf←c17800)+59)/* var←c16168 */  ))+5) );
      (* (( (ptr) gf←c17800)+8)/* commandRegistry←v3000 */  ) = (word) ( *( (fPt) ((*  (ptr) pd31 ))))(101, 0, pd31);
      };
SOURCE(1029, 322)
   {
      word var←c16200;
      word var←c16328;
      word var←c16424;
      word var←c16520;
      {
         word var←c16232;
         {
            word var←c16264;
            var←c16264 = XR←NewObject(4, (* (( (ptr) gf←c17800)+14) ));
            (*  (ptr) var←c16264 ) = (word) (( (bPt) gf←c17800)+196)/* var←c16008 */ ;
            var←c16232 = var←c16264;
            };
         {
            word pd32;
            pd32 = (* (( (ptr) (* (( (ptr) gf←c17800)+60)/* var←c16296 */  ))+4) );
            var←c16200 = (word) ( *( (fPt) ((*  (ptr) pd32 ))))(0, (* (( (ptr) gf←c17800)+28) ), var←c16232, pd32);
            };
         };
      {
         word var←c16360;
         {
            word var←c16392;
            var←c16392 = XR←NewObject(4, (* (( (ptr) gf←c17800)+16) ));
            (*  (ptr) var←c16392 ) = (word) (( (bPt) gf←c17800)+180)/* var←c15944 */ ;
            var←c16360 = var←c16392;
            };
         {
            word pd33;
            pd33 = (* (( (ptr) (* (( (ptr) gf←c17800)+60)/* var←c16296 */  ))+4) );
            var←c16328 = (word) ( *( (fPt) ((*  (ptr) pd33 ))))(0, (* (( (ptr) gf←c17800)+27) ), var←c16360, pd33);
            };
         };
      {
         word var←c16456;
         {
            word var←c16488;
            var←c16488 = XR←NewObject(4, (* (( (ptr) gf←c17800)+18) ));
            (*  (ptr) var←c16488 ) = (word) (( (bPt) gf←c17800)+164)/* var←c15880 */ ;
            var←c16456 = var←c16488;
            };
         {
            word pd34;
            pd34 = (* (( (ptr) (* (( (ptr) gf←c17800)+60)/* var←c16296 */  ))+4) );
            var←c16424 = (word) ( *( (fPt) ((*  (ptr) pd34 ))))(0, (* (( (ptr) gf←c17800)+24) ), var←c16456, pd34);
            };
         };
      var←c16520 = XR←NewObject(16, (* (( (ptr) gf←c17800)+10) ));
      (*  (ptr) var←c16520 ) = var←c16200;
      (* (( (ptr) var←c16520)+1) ) = var←c16328;
      (* (( (ptr) var←c16520)+2) ) = var←c16424;
      (* (( (ptr) gf←c17800)+9)/* hooks←v3028 */  ) = var←c16520;
      };
   }

static void Register←P60(key←v3668, proc←v3696, doc←v3724, clientData←v3752, interpreted←v3780)
   word key←v3668;
   word proc←v3696;
   word doc←v3724;
   word clientData←v3752;
   word interpreted←v3780;
   {
   register ptr gf←c17832 =  (ptr) &globalframe;
   /* Register: */ 
SOURCE(1353, 378)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17832)+16)/* LOCK←v2776 */ ));
SOURCE(1490, 241)
   if ((proc←v3696 == 0)) {
SOURCE(1511, 49)
      {
         word var←c16552;
         word pd35;
         pd35 = (* (( (ptr) (* (( (ptr) gf←c17832)+59)/* var←c16168 */  ))+12) );
         var←c16552 = (word) ( *( (fPt) ((*  (ptr) pd35 ))))((* (( (ptr) gf←c17832)+8)/* commandRegistry←v3000 */  ), key←v3668, pd35)
         ;
         };
      }
   else {
SOURCE(1569, 162)
      {
         word var←c16648;
         {
            word var←c16584;
            {
               word var←c16616;
               var←c16616 = XR←NewObject(16, (* (( (ptr) gf←c17832)+21) ));
               (*  (ptr) var←c16616 ) = XR←CheckProc(proc←v3696);
               (* (( (ptr) var←c16616)+1) ) = doc←v3724;
               (* (( (ptr) var←c16616)+2) ) = clientData←v3752;
               (* (( (ptr) var←c16616)+3) ) = interpreted←v3780;
               var←c16584 = var←c16616;
               };
            {
               word pd36;
               pd36 = (* (( (ptr) (* (( (ptr) gf←c17832)+59)/* var←c16168 */  ))+10) );
               var←c16648 = (word) ( *( (fPt) ((*  (ptr) pd36 ))))((* (( (ptr) gf←c17832)+8)/* commandRegistry←v3000 */  ), key←v3668, var←c16584, pd36)
               ;
               };
            };
         };
      };
SOURCE(1353, 378)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c17832)+16)/* LOCK←v2776 */ ));
   return;
   }

static void ChangeRegistry←P120(change←v3856)
   word change←v3856;
   {
   W8 var←c17864;
   register ptr gf←c17896 =  (ptr) &globalframe;
   /* declaration of var←c16680 skipped */ 
   /* declaration of old←v4720 skipped */ 
   /* declaration of new←v4748 skipped */ 
   /* ChangeRegistry: */ 
SOURCE(1740, 522)
   {
      word tmpAddr37;
      tmpAddr37 = (word) (( (ptr) &var←c17864)+4)/* var←c16680 */ ;
      (*  (ptr) tmpAddr37 ) = ( ((word)  (fPt) Update←P900) );
      (* (( (ptr) tmpAddr37) + 1) ) = 1;
      };
SOURCE(1880, 25)
   var←c17864.f6/* old←v4720 */  = (* (( (ptr) gf←c17896)+9)/* hooks←v3028 */  );
SOURCE(1907, 33)
   var←c17864.f7/* new←v4748 */  = XR←NewObject(16, (* (( (ptr) gf←c17896)+10) ));
SOURCE(2071, 191)
   lab←L100002: ;
SOURCE(2074, 169)
   {
      W4 var←c16744;
      (void) ( *( (fPt) ((*  (ptr) change←v3856 ))))((word) &var←c16744, (*  (ptr) var←c17864.f6/* old←v4720 */  ), (* (( (ptr) var←c17864.f6/* old←v4720 */ )+1)
          ), (* (( (ptr) var←c17864.f6/* old←v4720 */ )+2) ), (* (( (ptr) var←c17864.f6/* old←v4720 */ )+3) ), change←v3856);
      (* (( (ptr) var←c17864.f7/* new←v4748 */ )+3) ) = var←c16744.f3;
      (* (( (ptr) var←c17864.f7/* new←v4748 */ )+2) ) = var←c16744.f2;
      (* (( (ptr) var←c17864.f7/* new←v4748 */ )+1) ) = var←c16744.f1;
      (*  (ptr) var←c17864.f7/* new←v4748 */  ) = var←c16744.f0;
      };
SOURCE(2245, 17)
   if ((0 != (word) Update←P900((word) ((( (bPt) &var←c17864)+16)/* var←c16680 */ )))) {
SOURCE(2262, 4)
      goto lab←L100001;
      };
   goto lab←L100002;
   lab←L100001: ;
   }

static word Update←P900(formal←c17960)
   word formal←c17960;
   {
   register ptr gf←c17928 =  (ptr) &globalframe;
   word var←c4876;
   formal←c17960 = (formal←c17960 - 16);
   /* Update: */ 
SOURCE(1942, 124)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17928)+16)/* LOCK←v2776 */ ));
SOURCE(1980, 86)
   if (((* (( (ptr) formal←c17960)+6) ) == (* (( (ptr) gf←c17928)+9)/* hooks←v3028 */  ))) {
SOURCE(2002, 11)
      (* (( (ptr) gf←c17928)+9)/* hooks←v3028 */  ) = (* (( (ptr) formal←c17960)+7) );
SOURCE(2015, 14)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c17928)+16)/* LOCK←v2776 */ ));
      return(1);
      }
   else {
SOURCE(2038, 11)
      (* (( (ptr) formal←c17960)+6) ) = (* (( (ptr) gf←c17928)+9)/* hooks←v3028 */  );
SOURCE(2051, 15)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c17928)+16)/* LOCK←v2776 */ ));
      return(0);
      };
   }

static word Lookup←P180(formal←c0242)
   word formal←c0242;
   {
   W6 var←c17992;
   /* declaration of key←v11944 skipped */ 
   register ptr gf←c18024 =  (ptr) &globalframe;
   /* declaration of var←c01 skipped */ 
   word var←c11988;
   var←c17992.f4/* key←v11944 */  = formal←c0242;
   /* Lookup: */ 
SOURCE(2281, 407)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18024)+16)/* LOCK←v2776 */ ));
SOURCE(2317, 371)
   {
      word var←c02;
      {
         word var←c0221;
         var←c0221 = (word) &var←c17992;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2244) ), ( ((word)  (fPt) NoName←Q2784) ), var←c0221);
         };
      /* removed trivial cond node */ 
      };
   return(var←c17992.f5/* var←c01 */ );
   }

static word NoName←Q2244(formal←c0193)
   word formal←c0193;
   {
   register ptr gf←c0192 =  (ptr) &globalframe;
SOURCE(2340, 43)
   {
      word procData←v4904 = 0;
SOURCE(2385, 264)
      {
         register word lPs←v4948;
         lPs←v4948 = (*  (ptr) (* (( (ptr) gf←c0192)+9)/* hooks←v3028 */  ) );
         lab←L100008: ;
         if ((lPs←v4948 != 0)) {
            }
         else {
            goto lab←L100005;
            };
SOURCE(2450, 199)
         {
            word var←c16776;
            var←c16776 = (* (( (ptr) lPs←v4948)+1) );
            if ((var←c16776 == 0)) {
               goto lab←L100009;
               };
            if (((* (( (ptr) gf←c0192)+14) ) == XR←GetReferentType(var←c16776))) {
               {
                  word val←v4992;
                  val←v4992 = var←c16776;
SOURCE(2504, 147)
                  {
                     word proc←v5048;
                     word pData←v5076;
SOURCE(2506, 23)
                     proc←v5048 = (*  (ptr) val←v4992 );
SOURCE(2531, 46)
                     pData←v5076 = (word) ( *( (fPt) ((*  (ptr) proc←v5048 ))))((* ((( (ptr) formal←c0193)+4)) ), proc←v5048);
SOURCE(2579, 70)
                     if ((pData←v5076 != 0)) {
SOURCE(2597, 52)
                        if ((procData←v4904 == 0)) {
SOURCE(2618, 20)
                           procData←v4904 = pData←v5076;
                           }
                        else {
SOURCE(2638, 11)
                           (void) (XR←MonitorExit((word) (( (bPt) gf←c0192)+16)/* LOCK←v2776 */ ));
                           (* (( (ptr) formal←c0193)+5) ) = 0;
                           return(1);
                           };
                        };
                     };
                  };
               }
            else {
               lab←L100009: ;
               };
            };
         lPs←v4948 = (* (( (ptr) lPs←v4948)+2) );
         goto lab←L100008;
         lab←L100005: ;
         };
SOURCE(2672, 16)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0192)+16)/* LOCK←v2776 */ ));
      (* (( (ptr) formal←c0193)+5) ) = procData←v4904;
      return(1);
      };
   /* c2c skipped dead code */ 
   }

static word LookupInRegistry←P240(key←v11512)
   word key←v11512;
   {
   register ptr gf←c18056 =  (ptr) &globalframe;
   word var←c11556;
   /* LookupInRegistry: */ 
SOURCE(2694, 186)
SOURCE(2727, 122)
   {
      word var←c16808;
      W2 var←c074;
      {
         word pd38;
         pd38 = (* (( (ptr) (* (( (ptr) gf←c18056)+59)/* var←c16168 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd38 ))))((word) &var←c074, (* (( (ptr) gf←c18056)+8)/* commandRegistry←v3000 */  ), key←v11512, pd38)
         ;
         };
      var←c16808 = var←c074.f1;
      if ((var←c16808 == 0)) {
         goto lab←L100010;
         };
      if (((* (( (ptr) gf←c18056)+21) ) == XR←GetReferentType(var←c16808))) {
         {
            word procData←v5120;
            procData←v5120 = var←c16808;
SOURCE(2832, 17)
            return(procData←v5120);
            };
         }
      else {
         lab←L100010: ;
         };
      };
SOURCE(2868, 12)
   return(0);
   }

static void Enumerate←P300(formal←c079, formal←c0243)
   word formal←c079;
   word formal←c0243;
   {
   W5 var←c18088;
   /* declaration of matchProc←v12048 skipped */ 
   register ptr gf←c18120 =  (ptr) &globalframe;
   word key←v12092;
   word procData←v12120;
   var←c18088.f4/* matchProc←v12048 */  = formal←c0243;
   /* Enumerate: */ 
SOURCE(2886, 240)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18120)+16)/* LOCK←v2776 */ ));
SOURCE(2886, 240)
   key←v12092 = 0;
SOURCE(2886, 240)
   procData←v12120 = 0;
SOURCE(2928, 198)
   {
      word var←c0222;
      var←c0222 = (word) &var←c18088;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2304) ), ( ((word)  (fPt) NoName←Q2724) ), var←c0222);
      };
   /* removed tail goto */ 
   (void) (XR←MonitorExit((word) (( (bPt) gf←c18120)+16)/* LOCK←v2776 */ ));
   (*  (ptr) formal←c079 ) = key←v12092;
   (* (( (ptr) formal←c079)+1) ) = procData←v12120;
   return;
   }

static word NoName←Q2304(formal←c0197)
   word formal←c0197;
   {
   register ptr gf←c0196 =  (ptr) &globalframe;
SOURCE(2951, 175)
   {
      register word ePs←v5164;
      ePs←v5164 = (* (( (ptr) (* (( (ptr) gf←c0196)+9)/* hooks←v3028 */  ))+1) );
      lab←L100018: ;
      if ((ePs←v5164 != 0)) {
         }
      else {
         goto lab←L100015;
         };
SOURCE(3019, 107)
      {
         word var←c16840;
         var←c16840 = (* (( (ptr) ePs←v5164)+1) );
         if ((var←c16840 == 0)) {
            goto lab←L100019;
            };
         if (((* (( (ptr) gf←c0196)+16) ) == XR←GetReferentType(var←c16840))) {
            {
               word val←v5208;
               val←v5208 = var←c16840;
SOURCE(3076, 52)
               {
                  word proc←v5264;
SOURCE(3078, 26)
                  proc←v5264 = (*  (ptr) val←v5208 );
SOURCE(3106, 20)
                  {
                     W2 var←c16872;
                     (void) ( *( (fPt) ((*  (ptr) proc←v5264 ))))((word) &var←c16872, (* (( (ptr) formal←c0197)+4) ), proc←v5264);
                     };
                  };
               };
            }
         else {
            lab←L100019: ;
            };
         };
      ePs←v5164 = (* (( (ptr) ePs←v5164)+2) );
      goto lab←L100018;
      lab←L100015: ;
      };
   return(0);
   }

static void EnumerateInRegistry←P360(formal←c092, formal←c0244)
   word formal←c092;
   word formal←c0244;
   {
   W9 var←c18152;
   /* declaration of matchProc←v11628 skipped */ 
   register ptr gf←c18184 =  (ptr) &globalframe;
   word key←v11672;
   word procData←v11700;
   /* declaration of var←c16904 skipped */ 
   /* declaration of outerKey←v5308 skipped */ 
   /* declaration of outerProcData←v5336 skipped */ 
   (* (( (ptr) &var←c18152)+4)/* matchProc←v11628 */  ) = formal←c0244;
   /* EnumerateInRegistry: */ 
SOURCE(3153, 430)
   {
      word tmpAddr39;
      tmpAddr39 = (word) (( (ptr) &var←c18152)+5)/* var←c16904 */ ;
      (*  (ptr) tmpAddr39 ) = ( ((word)  (fPt) EachPairProc←P1344) );
      (* (( (ptr) tmpAddr39) + 1) ) = 1;
      };
SOURCE(3153, 430)
   key←v11672 = 0;
SOURCE(3153, 430)
   procData←v11700 = 0;
SOURCE(3192, 14)
   (* (( (ptr) &var←c18152)+7)/* outerKey←v5308 */  ) = 0;
SOURCE(3208, 42)
   (* (( (ptr) &var←c18152)+8)/* outerProcData←v5336 */  ) = 0;
SOURCE(3428, 104)
   {
      word pd40;
      pd40 = (* (( (ptr) (* (( (ptr) gf←c18184)+59)/* var←c16168 */  ))+14) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd40 ))))((* (( (ptr) gf←c18184)+8)/* commandRegistry←v3000 */  ), (word) (( (bPt) &var←c18152)+20)
         /* var←c16904 */ , pd40))) {
SOURCE(3497, 14)
         (* (( (ptr) &var←c18152)+7)/* outerKey←v5308 */  ) = 0;
SOURCE(3513, 19)
         (* (( (ptr) &var←c18152)+8)/* outerProcData←v5336 */  ) = 0;
         };
      };
SOURCE(3537, 46)
   key←v11672 = (* (( (ptr) &var←c18152)+7)/* outerKey←v5308 */  );
   procData←v11700 = (* (( (ptr) &var←c18152)+8)/* outerProcData←v5336 */  );
   /* removed tail goto */ 
   (*  (ptr) formal←c092 ) = key←v11672;
   (* (( (ptr) formal←c092)+1) ) = procData←v11700;
   return;
   }

static word EachPairProc←P1344(key←v12704, val←v12732, formal←c18248)
   word key←v12704;
   word val←v12732;
   word formal←c18248;
   {
   register ptr gf←c18216 =  (ptr) &globalframe;
   word quit←v12776;
   formal←c18248 = (formal←c18248 - 20);
   /* EachPairProc: */ 
SOURCE(3252, 171)
SOURCE(3252, 171)
   quit←v12776 = 0;
SOURCE(3292, 56)
   (* (( (ptr) formal←c18248)+8) ) = XR←Narrow(val←v12732, (* (( (ptr) gf←c18216)+21) ));
SOURCE(3350, 14)
   (* (( (ptr) formal←c18248)+7) ) = key←v12704;
SOURCE(3366, 57)
   {
      word pd41;
      pd41 = (* (( (ptr) formal←c18248)+4) );
      return((word) ( *( (fPt) ((*  (ptr) pd41 ))))((* (( (ptr) formal←c18248)+7) ), (* (( (ptr) formal←c18248)+8) ), pd41));
      };
   }

static void EnumeratePattern←P420(formal←c0100, formal←c0245, formal←c0246)
   word formal←c0100;
   word formal←c0245;
   word formal←c0246;
   {
   W6 var←c18280;
   /* declaration of pattern←v12180 skipped */ 
   /* declaration of matchProc←v12208 skipped */ 
   register ptr gf←c18312 =  (ptr) &globalframe;
   word key←v12252;
   word procData←v12280;
   var←c18280.f4/* pattern←v12180 */  = formal←c0245;
   var←c18280.f5/* matchProc←v12208 */  = formal←c0246;
   /* EnumeratePattern: */ 
SOURCE(3589, 264)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18312)+16)/* LOCK←v2776 */ ));
SOURCE(3589, 264)
   key←v12252 = 0;
SOURCE(3589, 264)
   procData←v12280 = 0;
SOURCE(3640, 213)
   {
      word var←c0223;
      var←c0223 = (word) &var←c18280;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2364) ), ( ((word)  (fPt) NoName←Q2664) ), var←c0223);
      };
   /* removed tail goto */ 
   (void) (XR←MonitorExit((word) (( (bPt) gf←c18312)+16)/* LOCK←v2776 */ ));
   (*  (ptr) formal←c0100 ) = key←v12252;
   (* (( (ptr) formal←c0100)+1) ) = procData←v12280;
   return;
   }

static word NoName←Q2364(formal←c0203)
   word formal←c0203;
   {
   register ptr gf←c0202 =  (ptr) &globalframe;
SOURCE(3663, 190)
   {
      register word ePs←v5408;
      ePs←v5408 = (* (( (ptr) (* (( (ptr) gf←c0202)+9)/* hooks←v3028 */  ))+2) );
      lab←L100028: ;
      if ((ePs←v5408 != 0)) {
         }
      else {
         goto lab←L100025;
         };
SOURCE(3733, 120)
      {
         word var←c16968;
         var←c16968 = (* (( (ptr) ePs←v5408)+1) );
         if ((var←c16968 == 0)) {
            goto lab←L100029;
            };
         if (((* (( (ptr) gf←c0202)+18) ) == XR←GetReferentType(var←c16968))) {
            {
               word val←v5452;
               val←v5452 = var←c16968;
SOURCE(3792, 63)
               {
                  word proc←v5508;
SOURCE(3794, 28)
                  proc←v5508 = (*  (ptr) val←v5452 );
SOURCE(3824, 29)
                  {
                     W2 var←c17000;
                     (void) ( *( (fPt) ((*  (ptr) proc←v5508 ))))((word) &var←c17000, (* (( (ptr) formal←c0203)+4) ), (* (( (ptr) formal←c0203)+5)
                         ), proc←v5508);
                     };
                  };
               };
            }
         else {
            lab←L100029: ;
            };
         };
      ePs←v5408 = (* (( (ptr) ePs←v5408)+2) );
      goto lab←L100028;
      lab←L100025: ;
      };
   return(0);
   }

static void EnumPatternInRegistry←P480(formal←c0114, formal←c0247, formal←c0248)
   word formal←c0114;
   word formal←c0247;
   word formal←c0248;
   {
   W10 var←c18344;
   /* declaration of pattern←v11772 skipped */ 
   /* declaration of matchProc←v11800 skipped */ 
   register ptr gf←c18376 =  (ptr) &globalframe;
   word key←v11844;
   word procData←v11872;
   /* declaration of var←c17032 skipped */ 
   /* declaration of outerKey←v5552 skipped */ 
   /* declaration of outerProcData←v5580 skipped */ 
   (* (( (ptr) &var←c18344)+4)/* pattern←v11772 */  ) = formal←c0247;
   (* (( (ptr) &var←c18344)+5)/* matchProc←v11800 */  ) = formal←c0248;
   /* EnumPatternInRegistry: */ 
SOURCE(3880, 516)
   {
      word tmpAddr42;
      tmpAddr42 = (word) (( (ptr) &var←c18344)+6)/* var←c17032 */ ;
      (*  (ptr) tmpAddr42 ) = ( ((word)  (fPt) EachPairProc←P1548) );
      (* (( (ptr) tmpAddr42) + 1) ) = 1;
      };
SOURCE(3880, 516)
   key←v11844 = 0;
SOURCE(3880, 516)
   procData←v11872 = 0;
SOURCE(3923, 14)
   (* (( (ptr) &var←c18344)+8)/* outerKey←v5552 */  ) = 0;
SOURCE(3939, 42)
   (* (( (ptr) &var←c18344)+9)/* outerProcData←v5580 */  ) = 0;
SOURCE(4241, 104)
   {
      word pd43;
      pd43 = (* (( (ptr) (* (( (ptr) gf←c18376)+59)/* var←c16168 */  ))+14) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd43 ))))((* (( (ptr) gf←c18376)+8)/* commandRegistry←v3000 */  ), (word) (( (bPt) &var←c18344)+24)
         /* var←c17032 */ , pd43))) {
SOURCE(4310, 14)
         (* (( (ptr) &var←c18344)+8)/* outerKey←v5552 */  ) = 0;
SOURCE(4326, 19)
         (* (( (ptr) &var←c18344)+9)/* outerProcData←v5580 */  ) = 0;
         };
      };
SOURCE(4350, 46)
   key←v11844 = (* (( (ptr) &var←c18344)+8)/* outerKey←v5552 */  );
   procData←v11872 = (* (( (ptr) &var←c18344)+9)/* outerProcData←v5580 */  );
   /* removed tail goto */ 
   (*  (ptr) formal←c0114 ) = key←v11844;
   (* (( (ptr) formal←c0114)+1) ) = procData←v11872;
   return;
   }

static word EachPairProc←P1548(key←v12852, val←v12880, formal←c18440)
   word key←v12852;
   word val←v12880;
   word formal←c18440;
   {
   register ptr gf←c18408 =  (ptr) &globalframe;
   word quit←v12924;
   formal←c18440 = (formal←c18440 - 24);
   /* EachPairProc: */ 
SOURCE(3983, 253)
SOURCE(3983, 253)
   quit←v12924 = 0;
SOURCE(4023, 80)
   {
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c18408)+61)/* var←c17064 */  ))+23) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd44 ))))((* (( (ptr) formal←c18440)+4) ), key←v12852, 0, pd44))) {
SOURCE(4090, 13)
         return(0);
         };
      };
SOURCE(4105, 56)
   (* (( (ptr) formal←c18440)+9) ) = XR←Narrow(val←v12880, (* (( (ptr) gf←c18408)+21) ));
SOURCE(4163, 14)
   (* (( (ptr) formal←c18440)+8) ) = key←v12852;
SOURCE(4179, 57)
   {
      word pd45;
      pd45 = (* (( (ptr) formal←c18440)+5) );
      return((word) ( *( (fPt) ((*  (ptr) pd45 ))))((* (( (ptr) formal←c18440)+8) ), (* (( (ptr) formal←c18440)+9) ), pd45));
      };
   }

static word GetProp←P540(cmd←v12340, key←v12368)
   word cmd←v12340;
   word key←v12368;
   {
   register ptr gf←c18472 =  (ptr) &globalframe;
   word value←v12412;
   /* GetProp: */ 
SOURCE(4402, 258)
SOURCE(4402, 258)
   value←v12412 = 0;
SOURCE(4451, 209)
   {
      register word lpPs←v5652;
      lpPs←v5652 = (* (( (ptr) (* (( (ptr) gf←c18472)+9)/* hooks←v3028 */  ))+3) );
      lab←L100034: ;
      if ((lpPs←v5652 != 0)) {
         }
      else {
         goto lab←L100031;
         };
SOURCE(4528, 132)
      {
         word var←c17128;
         var←c17128 = (* (( (ptr) lpPs←v5652)+1) );
         if ((var←c17128 == 0)) {
            goto lab←L100035;
            };
         if (((* (( (ptr) gf←c18472)+22) ) == XR←GetReferentType(var←c17128))) {
            {
               word refP←v5696;
               refP←v5696 = var←c17128;
SOURCE(4584, 126)
               {
                  word proc←v5752;
SOURCE(4586, 24)
                  proc←v5752 = (*  (ptr) refP←v5696 );
SOURCE(4612, 22)
                  value←v12412 = (word) ( *( (fPt) ((*  (ptr) proc←v5752 ))))(cmd←v12340, key←v12368, proc←v5752);
SOURCE(4636, 24)
                  if ((value←v12412 != 0)) {
SOURCE(4654, 6)
                     return(value←v12412);
                     };
                  };
               };
            }
         else {
            lab←L100035: ;
            };
         };
      lpPs←v5652 = (* (( (ptr) lpPs←v5652)+2) );
      goto lab←L100034;
      lab←L100031: ;
      };
SOURCE(4402, 258)
   return(value←v12412);
   }

static word GetWDir←P600()
   {
   register ptr gf←c18504 =  (ptr) &globalframe;
   word var←c4188;
   word wDir←v5796 = 0;
   word propList←v5824;
   /* GetWDir: */ 
SOURCE(4770, 261)
SOURCE(4821, 49)
   {
      word pd46;
      pd46 = (* (( (ptr) (* (( (ptr) gf←c18504)+62)/* var←c17160 */  ))+6) );
      propList←v5824 = (word) ( *( (fPt) ((*  (ptr) pd46 ))))(pd46);
      };
SOURCE(4872, 84)
   {
      word var←c17224;
      {
         word pd47;
         pd47 = (* (( (ptr) (* (( (ptr) gf←c18504)+63)/* var←c17192 */  ))+20) );
         var←c17224 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))((* (( (ptr) gf←c18504)+23) ), propList←v5824, pd47);
         };
      if ((var←c17224 == 0)) {
         goto lab←L100036;
         };
      {
         word tc48;
         if (((* (( (ptr) gf←c18504)+19) ) == XR←GetReferentType(var←c17224))) {
            tc48 =  (word) ((*(int*)var←c17224<0) == 0);
            }
         else {
            tc48 =  (word) 0;
            };
         if (tc48) {
            {
               word rope←v5868;
               rope←v5868 = var←c17224;
SOURCE(4945, 11)
               wDir←v5796 = rope←v5868;
               };
            }
         else {
            lab←L100036: ;
            };
         };
      };
SOURCE(4967, 50)
   {
      word pd49;
      pd49 = (* (( (ptr) (* (( (ptr) gf←c18504)+61)/* var←c17064 */  ))+13) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd49 ))))(wDir←v5796, pd49))) {
SOURCE(4994, 23)
         wDir←v5796 = (word) GetDefaultWDir←P660();
         };
      };
SOURCE(5019, 12)
   return(wDir←v5796);
   }

static word GetDefaultWDir←P660()
   {
   register ptr gf←c18536 =  (ptr) &globalframe;
   word wdir←v4248;
   /* GetDefaultWDir: */ 
SOURCE(5038, 102)
SOURCE(5038, 102)
   wdir←v4248 = 0;
SOURCE(5089, 51)
   {
      word var←c17288;
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c18536)+64)/* var←c17320 */  ))+4) );
         var←c17288 = (word) ( *( (fPt) ((*  (ptr) pd50 ))))((* ((( (ptr) gf←c18536)+25)) ), pd50);
         };
      {
         word pd51;
         pd51 = (* (( (ptr) (* (( (ptr) gf←c18536)+61)/* var←c17064 */  ))+6) );
         return((word) ( *( (fPt) ((*  (ptr) pd51 ))))(var←c17288, (* (( (ptr) gf←c18536)+26) ), pd51));
         };
      };
   }

static word PrependWorkingDir←P720(key←v4308)
   word key←v4308;
   {
   word var←c4352;
   /* PrependWorkingDir: */ 
SOURCE(5146, 74)
SOURCE(5208, 12)
   return(key←v4308);
   }

static word GetProperty←P780(formal←c0249, formal←c0250)
   word formal←c0249;
   word formal←c0250;
   {
   W8 var←c18568;
   /* declaration of key←v4412 skipped */ 
   /* declaration of aList←v4440 skipped */ 
   register ptr gf←c18600 =  (ptr) &globalframe;
   /* declaration of var←c03 skipped */ 
   /* declaration of val←v4496 skipped */ 
   var←c18568.f4/* key←v4412 */  = formal←c0249;
   var←c18568.f5/* aList←v4440 */  = formal←c0250;
   /* GetProperty: */ 
SOURCE(5225, 627)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18600)+16)/* LOCK←v2776 */ ));
SOURCE(5225, 627)
   var←c18568.f7/* val←v4496 */  = 0;
SOURCE(5322, 530)
   {
      word var←c04;
      {
         word var←c0224;
         var←c0224 = (word) &var←c18568;
         var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2424) ), ( ((word)  (fPt) NoName←Q2604) ), var←c0224);
         };
      /* removed trivial cond node */ 
      };
   return(var←c18568.f6/* var←c03 */ );
   }

static word NoName←Q2424(formal←c0212)
   word formal←c0212;
   {
   register ptr gf←c0211 =  (ptr) &globalframe;
SOURCE(5345, 13)
   {
      word ropeKey←v5912 = 0;
SOURCE(5360, 40)
      {
         word pd52;
         pd52 = (* (( (ptr) (* (( (ptr) gf←c0211)+63)/* var←c17192 */  ))+20) );
         (* (( (ptr) formal←c0212)+7) ) = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) formal←c0212)+4) ), (* (( (ptr) formal←c0212)+5)
             ), pd52);
         };
SOURCE(5402, 24)
      if (((* (( (ptr) formal←c0212)+7) ) != 0)) {
SOURCE(5420, 6)
         (void) (XR←MonitorExit((word) (( (bPt) gf←c0211)+16)/* LOCK←v2776 */ ));
         (* (( (ptr) formal←c0212)+6) ) = (* (( (ptr) formal←c0212)+7) );
         return(1);
         };
SOURCE(5428, 89)
      {
         word var←c17352;
         word var←c17384;
         var←c17352 = (* (( (ptr) formal←c0212)+4) );
         if ((var←c17352 == 0)) {
            goto lab←L100039;
            };
         var←c17384 = XR←GetReferentType(var←c17352);
         {
            word tc53;
            if (((* (( (ptr) gf←c0211)+19) ) == var←c17384)) {
               tc53 =  (word) ((*(int*)var←c17352<0) == 0);
               }
            else {
               tc53 =  (word) 0;
               };
            if (tc53) {
               {
                  word r←v5956;
                  r←v5956 = var←c17352;
SOURCE(5460, 11)
                  ropeKey←v5912 = r←v5956;
                  };
               }
            else {
               if (((* (( (ptr) gf←c0211)+15) ) == var←c17384)) {
                  {
                     word t←v6000;
                     t←v6000 = var←c17352;
SOURCE(5488, 29)
                     {
                        word pd54;
                        pd54 = (* (( (ptr) (* (( (ptr) gf←c0211)+61)/* var←c17064 */  ))+35) );
                        ropeKey←v5912 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))(t←v6000, 0, 32767, pd54);
                        };
                     };
                  }
               else {
                  lab←L100039: ;
                  };
               };
            };
         };
SOURCE(5528, 290)
      if ((ropeKey←v5912 != 0)) {
SOURCE(5552, 266)
         {
            register word l←v6056;
            l←v6056 = (* (( (ptr) formal←c0212)+5) );
            lab←L100043: ;
            if ((l←v6056 != 0)) {
               }
            else {
               goto lab←L100040;
               };
SOURCE(5603, 215)
            {
               word var←c17416;
               word var←c17448;
               var←c17416 = (*  (ptr) (*  (ptr) l←v6056 ) );
               if ((var←c17416 == 0)) {
                  goto lab←L100044;
                  };
               var←c17448 = XR←GetReferentType(var←c17416);
               {
                  word tc55;
                  if (((* (( (ptr) gf←c0211)+19) ) == var←c17448)) {
                     tc55 =  (word) ((*(int*)var←c17416<0) == 0);
                     }
                  else {
                     tc55 =  (word) 0;
                     };
                  if (tc55) {
                     {
                        word r←v6100;
                        r←v6100 = var←c17416;
SOURCE(5643, 70)
                        {
                           word pd56;
                           pd56 = (* (( (ptr) (* (( (ptr) gf←c0211)+61)/* var←c17064 */  ))+8) );
                           if ((0 != (word) ( *( (fPt) ((*  (ptr) pd56 ))))(ropeKey←v5912, r←v6100, 1, pd56))) {
SOURCE(5694, 19)
/*1*/   {
/*1*/      word var←c17480;
/*1*/      var←c17480 = (* (( (ptr) (*  (ptr) l←v6056 ))+1) );
/*1*/      (void) (XR←MonitorExit((word) (( (bPt) gf←c0211)+16)/* LOCK←v2776 */ ));
/*1*/      (* (( (ptr) formal←c0212)+6) ) = var←c17480;
/*1*/      return(1);
/*1*/      };
/*1*/   };
                           };
                        };
                     }
                  else {
                     if (((* (( (ptr) gf←c0211)+15) ) == var←c17448)) {
                        {
                           word t←v6144;
                           word var←c17512;
                           t←v6144 = var←c17416;
SOURCE(5730, 88)
                           {
/*1*/   word pd58;
/*1*/   {
/*1*/      word pd57;
/*1*/      pd57 = (* (( (ptr) (* (( (ptr) gf←c0211)+61)/* var←c17064 */  ))+35) );
/*1*/      var←c17512 = (word) ( *( (fPt) ((*  (ptr) pd57 ))))(t←v6144, 0, 32767, pd57);
/*1*/      };
/*1*/   pd58 = (* (( (ptr) (* (( (ptr) gf←c0211)+61)/* var←c17064 */  ))+8) );
/*1*/   if ((0 != (word) ( *( (fPt) ((*  (ptr) pd58 ))))(ropeKey←v5912, var←c17512, 1, pd58))) {
SOURCE(5799, 19)
/*1*/      {
/*1*/         word var←c17544;
/*1*/         var←c17544 = (* (( (ptr) (*  (ptr) l←v6056 ))+1) );
/*1*/         (void) (XR←MonitorExit((word) (( (bPt) gf←c0211)+16)/* LOCK←v2776 */ ));
/*1*/         (* (( (ptr) formal←c0212)+6) ) = var←c17544;
/*1*/         return(1);
/*1*/         };
/*1*/      };
/*1*/   };
                           };
                        }
                     else {
                        lab←L100044: ;
                        };
                     };
                  };
               };
            l←v6056 = (* (( (ptr) l←v6056)+1) );
            goto lab←L100043;
            lab←L100040: ;
            };
         };
SOURCE(5841, 11)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0211)+16)/* LOCK←v2776 */ ));
      (* (( (ptr) formal←c0212)+6) ) = 0;
      return(1);
      };
   /* c2c skipped dead code */ 
   }

static word PutProperty←P840(formal←c0251, formal←c0252, formal←c0253)
   word formal←c0251;
   word formal←c0252;
   word formal←c0253;
   {
   W8 var←c18632;
   /* declaration of key←v4568 skipped */ 
   /* declaration of val←v4596 skipped */ 
   /* declaration of aList←v4624 skipped */ 
   register ptr gf←c18664 =  (ptr) &globalframe;
   /* declaration of var←c05 skipped */ 
   word var←c4692;
   var←c18632.f4/* key←v4568 */  = formal←c0251;
   var←c18632.f5/* val←v4596 */  = formal←c0252;
   var←c18632.f6/* aList←v4624 */  = formal←c0253;
   /* PutProperty: */ 
SOURCE(5857, 460)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c18664)+16)/* LOCK←v2776 */ ));
SOURCE(5966, 351)
   {
      word var←c06;
      {
         word var←c0225;
         var←c0225 = (word) &var←c18632;
         var←c06 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2484) ), ( ((word)  (fPt) NoName←Q2544) ), var←c0225);
         };
      /* removed trivial cond node */ 
      };
   return(var←c18632.f7/* var←c05 */ );
   }

static word NoName←Q2484(formal←c0215)
   word formal←c0215;
   {
   register ptr gf←c0214 =  (ptr) &globalframe;
SOURCE(5989, 253)
   {
      word tc60;
      if (((* (( (ptr) formal←c0215)+4) ) == 0)) { goto then059;};
      if (((* (( (ptr) gf←c0214)+19) ) == XR←GetReferentType(* (( (ptr) formal←c0215)+4) ))) {
         tc60 =  (word) ((*(int*)(* (( (ptr) formal←c0215)+4) )<0) == 0);
         }
      else {
         tc60 =  (word) 0;
         };
      if (tc60) {
         then059: ;
SOURCE(6015, 244)
         {
            word ropeKey←v6200;
SOURCE(6017, 27)
            ropeKey←v6200 = XR←Narrow((* (( (ptr) formal←c0215)+4) ), (* (( (ptr) gf←c0214)+19) ));
            if ((ropeKey←v6200 == 0)) {
               goto lab←L100047;
               };
            if (((*(int*)ropeKey←v6200<0) == 0)) {
               goto lab←L100047;
               };
            (void) XR←RaiseError(XR←NarrowFault, 0);
            lab←L100047: ;
SOURCE(6046, 196)
            {
               register word l←v6244;
               word var←c17608;
               word var←c17640;
               l←v6244 = (* (( (ptr) formal←c0215)+6) );
               lab←L100051: ;
               if ((l←v6244 != 0)) {
                  }
               else {
                  goto lab←L100048;
                  };
SOURCE(6097, 145)
               {
                  word tc61;
                  var←c17608 = (*  (ptr) (*  (ptr) l←v6244 ) );
                  if ((var←c17608 == 0)) {
                     tc61 =  (word) 1;
                     }
                  else {
                     if (((* (( (ptr) gf←c0214)+19) ) == XR←GetReferentType(var←c17608))) {
                        tc61 =  (word) ((*(int*)var←c17608<0) == 0);
                        }
                     else {
                        tc61 =  (word) 0;
                        };
                     };
                  if (tc61) {
SOURCE(6133, 109)
                     {
                        word pd62;
                        {
                           word var←c17672;
                           var←c17672 = XR←Narrow((*  (ptr) (*  (ptr) l←v6244 ) ), (* (( (ptr) gf←c0214)+19) ));
                           if ((var←c17672 == 0)) {
/*1*/   goto lab←L100052;
/*1*/   };
                           if (((*(int*)var←c17672<0) == 0)) {
/*1*/   goto lab←L100052;
/*1*/   };
                           (void) XR←RaiseError(XR←NarrowFault, 0);
                           lab←L100052: ;
                           var←c17640 = var←c17672;
                           };
                        pd62 = (* (( (ptr) (* (( (ptr) gf←c0214)+61)/* var←c17064 */  ))+8) );
                        if ((0 != (word) ( *( (fPt) ((*  (ptr) pd62 ))))(ropeKey←v6200, var←c17640, 1, pd62))) {
SOURCE(6210, 17)
                           (* (( (ptr) (*  (ptr) l←v6244 ))+1) ) = (* (( (ptr) formal←c0215)+5) );
SOURCE(6229, 13)
                           (void) (XR←MonitorExit((word) (( (bPt) gf←c0214)+16)/* LOCK←v2776 */ ));
                           (* (( (ptr) formal←c0215)+7) ) = (* (( (ptr) formal←c0215)+6) );
                           return(1);
                           };
                        };
                     };
                  };
               l←v6244 = (* (( (ptr) l←v6244)+1) );
               goto lab←L100051;
               lab←L100048: ;
               };
            };
         };
      };
SOURCE(6262, 55)
   {
      word var←c17704;
      {
         word pd63;
         pd63 = (* (( (ptr) (* (( (ptr) gf←c0214)+63)/* var←c17192 */  ))+22) );
         var←c17704 = (word) ( *( (fPt) ((*  (ptr) pd63 ))))((* (( (ptr) formal←c0215)+4) ), (* (( (ptr) formal←c0215)+5) ), (* (( (ptr) formal←c0215)+6)
             ), pd63);
         };
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0214)+16)/* LOCK←v2776 */ ));
      (* (( (ptr) formal←c0215)+7) ) = var←c17704;
      return(1);
      };
   /* c2c skipped dead code */ 
   }

static void NoName←Q2544(formal←c0164, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0164;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   register ptr gf←c0216 =  (ptr) &globalframe;
   if ((formal←c200017 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0216)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0164 ) = 0;
   (* (( (ptr) formal←c0164)+1) ) = 0;
   return;
   }

static void NoName←Q2604(formal←c0169, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0169;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0217 =  (ptr) &globalframe;
   if ((formal←c200013 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0217)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0169 ) = 0;
   (* (( (ptr) formal←c0169)+1) ) = 0;
   return;
   }

static void NoName←Q2664(formal←c0174, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0174;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0218 =  (ptr) &globalframe;
   if ((formal←c200009 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0218)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0174 ) = 0;
   (* (( (ptr) formal←c0174)+1) ) = 0;
   return;
   }

static void NoName←Q2724(formal←c0179, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0179;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0219 =  (ptr) &globalframe;
   if ((formal←c200005 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0219)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0179 ) = 0;
   (* (( (ptr) formal←c0179)+1) ) = 0;
   return;
   }

static void NoName←Q2784(formal←c0184, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0184;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0220 =  (ptr) &globalframe;
   if ((formal←c200001 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0220)+16)/* LOCK←v2776 */ ));
      };
   (*  (ptr) formal←c0184 ) = 0;
   (* (( (ptr) formal←c0184)+1) ) = 0;
   return;
   }

/* file: CommanderImpl, module: CommanderImpl, compiled at: January 19, 1993 12:22:12 pm PST */ 
extern void XR←install←CommanderImpl() {
   NoName←Q2184();
   }
extern void XR←run←CommanderImpl() { XR←Start(&globalframe); }