/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: September 14, 1993 4:27:50 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: XlDispatchImpl, module: XlDispatchImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITOR(x, y) (((word)(x)) | ((word)(y)))
static char versionStamp[] = "@(#)mob←version [2982540542,2787658233] XlDispatchImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W7 *W7Pt;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W2 r;} W10;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q4512();
static void XlDispatchImpl←P0();
static void NotYetDefined←P60();
static void ProcRemoved←P120();
static word GetCache←P180();
static word GetDispatchHandle←P240();
static void FindAndDispatch←P360();
static void Dispatch←P420();
static void DispatchExplicite←P480();
static void DispatchOneList←P540();
static void RemoveWindowData←P600();
static word GetWindowData←P660();
static word GetOrCreateWindowData←P720();
static word UsedLength←P780();
static void SetDispatchList←P840();
static word GetDispatchList←P900();
static void EnsureEntry←P960();
static void AddMatchToList←P1020();
static void RemoveMatchFromList←P1080();
static word GetInternalEvents←P1140();
static void PrivateChangeEvents←P1200();
static void InternalAddMatch←P1260();
static void AddMatches←P1320();
static void AddMatch←P1380();
static void action←P3168();
static void RemoveMatch←P1440();
static void action←P3228();
static void AddMatchForUnregistered←P1500();
static void action←P3384();
static word EnforcedSetOfEvent←P1560();
static void AddPriviledgedMatch←P1620();
static void action←P3492();
static void RemovePriviledgedMatch←P1680();
static void action←P3552();
static void CheckForEmpty←P3612();
static void InitWindow←P1740();
static void RemoveWindow←P1800();
static void InitConnection←P1860();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\261\305\364\376\300\246\050\111\371\100\200\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\017\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\261\305\364\376\300\246\050\111\371\100\260\000\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\324\170\077\160\300\025\257\222\122\100\164\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string7 = {917520, "\216\257\300\261\305\364\376\300\246\050\111\371\100\214\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\261\305\364\376\300\246\050\111\371\100\214\000\000"};
static struct {unsigned f; char r[12];} string9 = {589833, "\011\000\034  \000\010\0044\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\261\305\364\376\300\246\050\111\371\100\164\000\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\003\010\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\223\215\300\016\300\070\141\304\023\100\150\000\000"};
static unsigned string13 = 1483472896;
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\337\070\153\303\300\227\216\321\214\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\304\042\023\266\300\315\144\243\337\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\044\126\136\322\300\125\273\233\107\100\150\000\000"};
static struct {unsigned f; char r[32];} string18 = {1900576, "\211\021\020\104\151\163\160\141\164\143\150\123\164\165\146\146\122\145\160\300\351\276\264\273\300\115\104\320\264\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\122\362\040\033\300\221\350\241\274\100\150\000\000"};
static struct {unsigned f; char r[32];} string20 = {1966112, "\211\022\021\104\151\163\160\141\164\143\150\110\141\156\144\154\145\122\145\143\300\122\362\040\033\300\221\350\241\274\000"};
static struct {unsigned f; char r[28];} string21 = {1703964, "\211\016\015\127\151\156\144\157\167\104\141\164\141\122\145\143\300\122\362\040\033\300\221\350\241\274\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\324\170\077\160\300\025\257\222\122\100\150\000\000"};
static struct {
   word f0[18]; 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; 
   word f41; word f42; word f43; word f44; 
   word f45; word f46; word f47; word f48; 
   word f49; word f50; word f51; word f52; 
   word f53; word f54; word f55; word f56; 
   word f57; word f58; word f59; word f60; 
   word f61; word f62; word f63; word f64; 
   word f65; word f66; word f67; word f68; 
   word f69; word f70; word f71; word f72; 
   word f73; word f74; word f75; word f76; 
   word f77; word f78; word f79[8]; 
   } globalframe = {
   {0}, (word) InitConnection←P1860, 0, (word) RemoveWindow←P1800, 
   0, (word) InitWindow←P1740, 0, (word) RemovePriviledgedMatch←P1680, 
   0, (word) AddPriviledgedMatch←P1620, 0, (word) EnforcedSetOfEvent←P1560, 
   0, (word) AddMatchForUnregistered←P1500, 0, (word) RemoveMatch←P1440, 
   0, (word) AddMatch←P1380, 0, (word) AddMatches←P1320, 
   0, (word) InternalAddMatch←P1260, 0, (word) PrivateChangeEvents←P1200, 
   0, (word) GetInternalEvents←P1140, 0, (word) RemoveMatchFromList←P1080, 
   0, (word) AddMatchToList←P1020, 0, (word) EnsureEntry←P960, 
   0, (word) GetDispatchList←P900, 0, (word) SetDispatchList←P840, 
   0, (word) UsedLength←P780, 0, (word) GetOrCreateWindowData←P720, 
   0, (word) GetWindowData←P660, 0, (word) RemoveWindowData←P600, 
   0, (word) DispatchOneList←P540, 0, (word) DispatchExplicite←P480, 
   0, (word) Dispatch←P420, 0, (word) FindAndDispatch←P360, 
   0, (word) GetDispatchHandle←P240, 0, (word) GetCache←P180, 
   0, (word) ProcRemoved←P120, 0, (word) NotYetDefined←P60, 
   0, (word) XlDispatchImpl←P0, {0}
   };

static void NoName←Q4512()
   {
   register ptr gf←c0248 =  (ptr) &globalframe;
   word var←c22200;
   (* (( (ptr) gf←c0248)+9) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0248)+10) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0248)+11) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0248)+15) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string4);
   (* (( (ptr) gf←c0248)+16) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (void) XR←DeclareGlobalFrame((word) "XlDispatchImpl", &globalframe, (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11)
      , (word) (( (bPt) gf←c0248)+312)/* var←c20248 */ );
   var←c22200 = (word) XR←ImportInterface((word) "CardTab", (word) XR←GetTypeIndexS((word) (&string12)), 12);
   (* (( (ptr) gf←c0248)+80)/* var←c20312 */  ) = var←c22200;
   (void) XR←ImportProcS(var←c22200, 67371265);
   (void) XR←ImportProcS(var←c22200, 67896835);
   (void) XR←ImportProcS(var←c22200, 67634946);
   (void) XR←ImportProcS(var←c22200, 134742786);
   var←c22200 = (word) XR←ImportInterface((word) &string13, (word) XR←GetTypeIndexS((word) (&string14)), 218);
   (* (( (ptr) gf←c0248)+81)/* var←c20536 */  ) = var←c22200;
   (void) XR←ImportProcS(var←c22200, 67910403);
   (void) XR←ImportProcS(var←c22200, 1063940);
   var←c22200 = (word) XR←ImportInterface((word) "XlDetails", (word) XR←GetTypeIndexS((word) (&string15)), 4);
   (* (( (ptr) gf←c0248)+84)/* var←c21688 */  ) = var←c22200;
   var←c22200 = (word) XR←ImportInterface((word) "XlPrivate", (word) XR←GetTypeIndexS((word) (&string16)), 77);
   (* (( (ptr) gf←c0248)+82)/* var←c21304 */  ) = var←c22200;
   (void) XR←ImportProcS(var←c22200, 786947);
   (void) XR←ImportProcS(var←c22200, 526594);
   (void) XR←ImportProcS(var←c22200, 539650);
   (void) XR←ImportProcS(var←c22200, 528642);
   (void) XR←ImportProcS(var←c22200, 530178);
   (void) XR←ImportProcS(var←c22200, 1051908);
   var←c22200 = (word) XR←ImportInterface((word) "XlPrivateResources", (word) XR←GetTypeIndexS((word) (&string17)), 9);
   (* (( (ptr) gf←c0248)+83)/* var←c21336 */  ) = var←c22200;
   (void) XR←ImportProcS(var←c22200, 525314);
   (void) XR←ImportProcS(var←c22200, 67634434);
   var←c22200 = (word) XR←ExportInterface((word) &string13, (word) XR←GetTypeIndexS((word) (&string14)), 218);
   (* (( (ptr) gf←c0248)+85)/* var←c22232 */  ) = var←c22200;
   (void) XR←ExportType((word) "DispatchStuffRep", (word) XR←GetTypeIndexS((word) (&string18)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   var←c22200 = (word) XR←ExportInterface((word) "XlDispatch", (word) XR←GetTypeIndexS((word) (&string19)), 18);
   (* (( (ptr) gf←c0248)+85)/* var←c22232 */  ) = var←c22200;
   (void) XR←ExportType((word) "DispatchHandleRec", (word) XR←GetTypeIndexS((word) (&string20)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+280)/* var←c20120 */ , 67371265, (word) "GetDispatchHandle");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+264)/* var←c20056 */ , 524802, (word) "Dispatch");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+272)/* var←c20088 */ , 262913, (word) "FindAndDispatch");
   (void) XR←ExportType((word) "WindowDataRec", (word) XR←GetTypeIndexS((word) (&string21)), (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4)
      );
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+232)/* var←c19928 */ , 67634434, (word) "GetWindowData");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+256)/* var←c20024 */ , 525826, (word) "DispatchExplicite");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+136)/* var←c19544 */ , 1312517, (word) "AddMatch");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+128)/* var←c19512 */ , 1050628, (word) "RemoveMatch");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+144)/* var←c19576 */ , 1313029, (word) "AddMatches");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+120)/* var←c19480 */ , 526850, (word) "AddMatchForUnregistered")
   ;
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+104)/* var←c19416 */ , 527106, (word) "AddPriviledgedMatch");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+96)/* var←c19384 */ , 527362, (word) "RemovePriviledgedMatch")
   ;
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+72)/* var←c19288 */ , 265473, (word) "InitConnection");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+88)/* var←c19352 */ , 527874, (word) "InitWindow");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+80)/* var←c19320 */ , 528130, (word) "RemoveWindow");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+152)/* var←c19608 */ , 1052676, (word) "InternalAddMatch");
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+112)/* var←c19448 */ , 67899651, (word) "EnforcedSetOfEvent")
   ;
   var←c22200 = (word) XR←ExportInterface((word) "XlRecycleMotionEvents", (word) XR←GetTypeIndexS((word) (&string22)), 2);
   (* (( (ptr) gf←c0248)+86)/* var←c22264 */  ) = var←c22200;
   (void) XR←ExportProcS(var←c22200, (word) (( (bPt) gf←c0248)+288)/* var←c20152 */ , 67633154, (word) "GetCache");
   }

static void XlDispatchImpl←P0(formal←c044, formal←c043)
   word formal←c044;
   word formal←c043;
   {
   register ptr gf←c22296 =  (ptr) &globalframe;
   /* XlDispatchImpl: */ 
SOURCE(124, 11060)
SOURCE(1422, 83)
   (* (( (ptr) gf←c22296)+8)/* dummy←v3112 */  ) = XR←NewObject(8, (* (( (ptr) gf←c22296)+11) ));
   }

static void NotYetDefined←P60(event←v12304, clientData←v12332, tq←v12360)
   word event←v12304;
   word clientData←v12332;
   word tq←v12360;
   {
   /* NotYetDefined: */ 
   }

static void ProcRemoved←P120(event←v12420, clientData←v12448, tq←v12476)
   word event←v12420;
   word clientData←v12448;
   word tq←v12476;
   {
   /* ProcRemoved: */ 
   }

static word GetCache←P180(c←v4720, w←v4748)
   word c←v4720;
   word w←v4748;
   {
   register ptr gf←c22328 =  (ptr) &globalframe;
   word cache←v4792;
   word h←v8000;
   /* GetCache: */ 
SOURCE(1508, 527)
SOURCE(1508, 527)
   cache←v4792 = (* (( (ptr) gf←c22328)+8)/* dummy←v3112 */  );
SOURCE(1654, 40)
   h←v8000 = (word) GetDispatchHandle←P240(c←v4720);
SOURCE(1696, 49)
   if ((w←v4748 ==  (word) -1)) {
SOURCE(1729, 16)
      return((* (( (ptr) h←v8000)+3) ));
      };
SOURCE(1773, 262)
   {
      word var←c20344;
      W2 var←c056;
      {
         word pd23;
         pd23 = (* (( (ptr) (* (( (ptr) gf←c22328)+80)/* var←c20312 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd23 ))))((word) &var←c056, (*  (ptr) h←v8000 ), w←v4748, pd23);
         };
      var←c20344 = var←c056.f1;
      if ((var←c20344 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) gf←c22328)+10) ) == XR←GetReferentType(var←c20344))) {
         {
            word wd←v8044;
            wd←v8044 = var←c20344;
SOURCE(1844, 194)
            {
               word dl←v8088;
SOURCE(1846, 24)
               dl←v8088 = (*  (ptr) wd←v8044 );
SOURCE(1872, 163)
               if ((dl←v8088 != 0)) {
SOURCE(1887, 148)
                  {
                     word count←v8132 = 0;
SOURCE(1905, 96)
                     {
                        register word i←v8176 = 0;
                        register word noName←c20376;
                        noName←c20376 = (*  (ptr) dl←v8088 );
                        if ((i←v8176 >= noName←c20376)) {
                           goto lab←L100001;
                           };
                        lab←L100004: ;
SOURCE(1941, 60)
                        {
                           word limit24;
                           if ((*  (bPt) (( (W7Pt) (( (bPt) dl←v8088)+8))+(
/*1*/      limit24 = (* (( (ptr) dl←v8088)+1) ),
/*1*/      BCK(i←v8176, limit24)
/*1*/      )) ) & 02) {
SOURCE(1978, 23)
/*1*/   count←v8132 = (count←v8132 + 1);
/*1*/   };
                           };
                        i←v8176 = (i←v8176 + 1);
                        if ((i←v8176 < noName←c20376)) {
                           goto lab←L100004;
                           };
                        lab←L100001: ;
                        };
SOURCE(2003, 32)
                     if (( (int)count←v8132 ==  (int)1)) {
SOURCE(2019, 16)
                        cache←v4792 = (* (( (ptr) h←v8000)+3) );
                        };
                     };
                  };
               };
            };
         }
      else {
         lab←L100000: ;
         };
      };
SOURCE(1508, 527)
   return(cache←v4792);
   }

static word GetDispatchHandle←P240(c←v4864)
   word c←v4864;
   {
   word var←c4908;
   /* GetDispatchHandle: */ 
SOURCE(2060, 101)
SOURCE(2136, 25)
   return((* (( (ptr) c←v4864)+27) ));
   }

static void FindAndDispatch←P360(event←v5056)
   word event←v5056;
   {
   register ptr gf←c22360 =  (ptr) &globalframe;
   /* FindAndDispatch: */ 
SOURCE(2497, 101)
SOURCE(2545, 53)
   {
      word handle←v18900;
      word event←v18928;
      handle←v18900 = (* (( (ptr) (* (( (ptr) event←v5056)+2) ))+27) );
      event←v18928 = event←v5056;
SOURCE(2236, 178)
      {
         word var←c20408;
         W2 var←c068;
         {
            word pd25;
            pd25 = (* (( (ptr) (* (( (ptr) gf←c22360)+80)/* var←c20312 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd25 ))))((word) &var←c068, (*  (ptr) handle←v18900 ), (* (( (ptr) event←v18928)+1) ), pd25)
            ;
            };
         var←c20408 = var←c068.f1;
         if ((var←c20408 == 0)) {
            goto lab←L100005;
            };
         if (((* (( (ptr) gf←c22360)+10) ) == XR←GetReferentType(var←c20408))) {
            {
               word wd←v8220;
               wd←v8220 = var←c20408;
SOURCE(2333, 29)
               (void) DispatchOneList←P540(event←v18928, (*  (ptr) wd←v8220 ));
               };
            }
         else {
            lab←L100005: ;
SOURCE(2375, 39)
            (void) DispatchOneList←P540(event←v18928, (*  (ptr) (* (( (ptr) handle←v18900)+2) ) ));
            };
         };
SOURCE(2416, 75)
      if (((* (( (ptr) handle←v18900)+1) ) != 0)) {
SOURCE(2448, 43)
         (void) DispatchOneList←P540(event←v18928, (* (( (ptr) handle←v18900)+1) ));
         };
      };
   }

static void Dispatch←P420(handle←v5116, event←v5144)
   word handle←v5116;
   word event←v5144;
   {
   register ptr gf←c22392 =  (ptr) &globalframe;
   /* Dispatch: */ 
SOURCE(2604, 94)
SOURCE(2669, 29)
   {
      word handle←v18780;
      word event←v18808;
      handle←v18780 = handle←v5116;
      event←v18808 = event←v5144;
SOURCE(2236, 178)
      {
         word var←c20440;
         W2 var←c075;
         {
            word pd26;
            pd26 = (* (( (ptr) (* (( (ptr) gf←c22392)+80)/* var←c20312 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd26 ))))((word) &var←c075, (*  (ptr) handle←v18780 ), (* (( (ptr) event←v18808)+1) ), pd26)
            ;
            };
         var←c20440 = var←c075.f1;
         if ((var←c20440 == 0)) {
            goto lab←L100006;
            };
         if (((* (( (ptr) gf←c22392)+10) ) == XR←GetReferentType(var←c20440))) {
            {
               word wd←v18856;
               wd←v18856 = var←c20440;
SOURCE(2333, 29)
               (void) DispatchOneList←P540(event←v18808, (*  (ptr) wd←v18856 ));
               };
            }
         else {
            lab←L100006: ;
SOURCE(2375, 39)
            (void) DispatchOneList←P540(event←v18808, (*  (ptr) (* (( (ptr) handle←v18780)+2) ) ));
            };
         };
SOURCE(2416, 75)
      if (((* (( (ptr) handle←v18780)+1) ) != 0)) {
SOURCE(2448, 43)
         (void) DispatchOneList←P540(event←v18808, (* (( (ptr) handle←v18780)+1) ));
         };
      };
   }

static void DispatchExplicite←P480(wd←v5204, event←v5232)
   word wd←v5204;
   word event←v5232;
   {
   /* DispatchExplicite: */ 
SOURCE(2703, 96)
SOURCE(2770, 29)
   (void) DispatchOneList←P540(event←v5232, (*  (ptr) wd←v5204 ));
   }

static void DispatchOneList←P540(e←v5292, dl←v5320)
   word e←v5292;
   word dl←v5320;
   {
   register ptr gf←c22424 =  (ptr) &globalframe;
   /* DispatchOneList: */ 
SOURCE(2804, 635)
SOURCE(2859, 21)
   if ((dl←v5320 == 0)) {
SOURCE(2874, 6)
      return;
      };
SOURCE(2882, 557)
   if (((word) XRM←BITAND((*  (ptr) e←v5292 ), 127) >= 64)) {
SOURCE(2961, 266)
      {
         word var←c20472;
         var←c20472 = e←v5292;
         if ((var←c20472 == 0)) {
            goto lab←L100007;
            };
         if (((* (( (ptr) var←c20472)+4) ) == 35)) {
            {
               word xEvent←v8248;
               xEvent←v8248 = var←c20472;
SOURCE(3008, 219)
               {
                  register word i←v8292 = 0;
                  register word noName←c20504;
                  noName←c20504 = (*  (ptr) dl←v5320 );
                  if ((i←v8292 >= noName←c20504)) {
                     goto lab←L100008;
                     };
                  lab←L100011: ;
SOURCE(3044, 183)
                  {
                     register word xl←v8336;
                     {
                        word limit27;
                        xl←v8336 = (* (( (W7Pt) (( (ptr) dl←v5320)+2))+(
/*1*/   limit27 = (* (( (ptr) dl←v5320)+1) ),
/*1*/   BCK(i←v8292, limit27)
/*1*/   )) ).f5;
                        };
                     lab←L100015: ;
                     if ((xl←v8336 != 0)) {
                        }
                     else {
                        goto lab←L100012;
                        };
SOURCE(3120, 107)
                     if (((*  (ptr) xl←v8336 ) == (* (( (ptr) xEvent←v8248)+6) ))) {
SOURCE(3150, 101)
                        {
                           word p←v8476;
SOURCE(3152, 29)
                           {
/*1*/   word limit28;
/*1*/   p←v8476 = (* (( (W7Pt) (( (ptr) dl←v5320)+2))+(
/*1*/         limit28 = (* (( (ptr) dl←v5320)+1) ),
/*1*/         BCK(i←v8292, limit28)
/*1*/         )) ).f3;
/*1*/   };
SOURCE(3192, 35)
                           {
/*1*/   word pd29;
/*1*/   word limit30;
/*1*/   word limit31;
/*1*/   pd29 = (* (( (ptr) (* (( (ptr) gf←c22424)+81)/* var←c20536 */  ))+64) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd29 ))))((* (( (W7Pt) (( (ptr) dl←v5320)+2))+(
/*1*/            limit30 = (* (( (ptr) dl←v5320)+1) ),
/*1*/            BCK(i←v8292, limit30)
/*1*/            )) ).f2, p←v8476, (* (( (W7Pt) (( (ptr) dl←v5320)+2))+(
/*1*/            limit31 = (* (( (ptr) dl←v5320)+1) ),
/*1*/            BCK(i←v8292, limit31)
/*1*/            )) ).f4, e←v5292, pd29);
/*1*/   };
SOURCE(3229, 22)
                           goto lab←L100013;
                           };
                        };
                     xl←v8336 = (* (( (ptr) xl←v8336)+1) );
                     goto lab←L100015;
                     lab←L100012: ;
                     lab←L100013: ;
                     };
                  i←v8292 = (i←v8292 + 1);
                  if ((i←v8292 < noName←c20504)) {
                     goto lab←L100011;
                     };
                  lab←L100008: ;
                  };
               };
            }
         else {
            lab←L100007: ;
            };
         };
      }
   else {
SOURCE(3295, 144)
      {
         register word i←v8520 = 0;
         register word noName←c20568;
         noName←c20568 = (*  (ptr) dl←v5320 );
         if ((i←v8520 >= noName←c20568)) {
            goto lab←L100016;
            };
         lab←L100019: ;
SOURCE(3331, 108)
         {
            word limit32;
            word ix33;
            if ((
               ix33 = (* (( (ptr) e←v5292)+4) ),
               ((*  (bPt) (( (bPt) (( (W7Pt) (( (bPt) dl←v5320)+8))+(
                        limit32 = (* (( (ptr) dl←v5320)+1) ),
                        BCK(i←v8520, limit32)
                        ))) + ((word) ix33 >> 3)) ) >> (7 - ((word) (ix33 & 7)))) & 1
               )) {
SOURCE(3362, 79)
               {
                  word p←v8564;
SOURCE(3364, 29)
                  {
                     word limit34;
                     p←v8564 = (* (( (W7Pt) (( (ptr) dl←v5320)+2))+(
                           limit34 = (* (( (ptr) dl←v5320)+1) ),
                           BCK(i←v8520, limit34)
                           )) ).f3;
                     };
SOURCE(3404, 35)
                  {
                     word pd35;
                     word limit36;
                     word limit37;
                     pd35 = (* (( (ptr) (* (( (ptr) gf←c22424)+81)/* var←c20536 */  ))+64) );
                     (void) ( *( (fPt) ((*  (ptr) pd35 ))))((* (( (W7Pt) (( (ptr) dl←v5320)+2))+(
/*1*/   limit36 = (* (( (ptr) dl←v5320)+1) ),
/*1*/   BCK(i←v8520, limit36)
/*1*/   )) ).f2, p←v8564, (* (( (W7Pt) (( (ptr) dl←v5320)+2))+(
/*1*/   limit37 = (* (( (ptr) dl←v5320)+1) ),
/*1*/   BCK(i←v8520, limit37)
/*1*/   )) ).f4, e←v5292, pd35);
                     };
                  };
               };
            };
         i←v8520 = (i←v8520 + 1);
         if ((i←v8520 < noName←c20568)) {
            goto lab←L100019;
            };
         lab←L100016: ;
         };
      };
   }

static void RemoveWindowData←P600(c←v5380, w←v5408)
   word c←v5380;
   word w←v5408;
   {
   register ptr gf←c22456 =  (ptr) &globalframe;
   word h←v8608;
   /* RemoveWindowData: */ 
SOURCE(3460, 139)
SOURCE(3525, 35)
   h←v8608 = (* (( (ptr) c←v5380)+27) );
SOURCE(3562, 37)
   {
      word var←c20600;
      word pd38;
      pd38 = (* (( (ptr) (* (( (ptr) gf←c22456)+80)/* var←c20312 */  ))+11) );
      var←c20600 = (word) ( *( (fPt) ((*  (ptr) pd38 ))))((*  (ptr) h←v8608 ), w←v5408, pd38);
      };
   }

static word GetWindowData←P660(c←v5468, w←v5496)
   word c←v5468;
   word w←v5496;
   {
   register ptr gf←c22488 =  (ptr) &globalframe;
   word var←c5540;
   word h←v8652;
   /* GetWindowData: */ 
SOURCE(3604, 168)
SOURCE(3683, 35)
   h←v8652 = (* (( (ptr) c←v5468)+27) );
SOURCE(3720, 52)
   {
      word var←c0282;
      {
         W2 var←c098;
         word var←c0281;
         {
            word pd39;
            pd39 = (* (( (ptr) (* (( (ptr) gf←c22488)+80)/* var←c20312 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd39 ))))((word) &var←c098, (*  (ptr) h←v8652 ), w←v5496, pd39);
            };
         var←c0281 = var←c098.f1;
         var←c0282 = XR←Narrow(var←c0281, (* (( (ptr) gf←c22488)+10) ));
         };
      return(var←c0282);
      };
   }

static word GetOrCreateWindowData←P720(c←v5600, w←v5628)
   word c←v5600;
   word w←v5628;
   {
   register ptr gf←c22520 =  (ptr) &globalframe;
   word wd←v5672;
   word h←v8696;
   /* GetOrCreateWindowData: */ 
SOURCE(3777, 315)
SOURCE(3777, 315)
   wd←v5672 = 0;
SOURCE(3872, 35)
   h←v8696 = (* (( (ptr) c←v5600)+27) );
SOURCE(3909, 48)
   {
      W2 var←c0103;
      word var←c0283;
      {
         word pd40;
         pd40 = (* (( (ptr) (* (( (ptr) gf←c22520)+80)/* var←c20312 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd40 ))))((word) &var←c0103, (*  (ptr) h←v8696 ), w←v5628, pd40);
         };
      var←c0283 = var←c0103.f1;
      wd←v5672 = XR←Narrow(var←c0283, (* (( (ptr) gf←c22520)+10) ));
      };
SOURCE(3959, 133)
   if ((wd←v5672 == 0)) {
SOURCE(3976, 23)
      wd←v5672 = XR←NewObject(12, (* (( (ptr) gf←c22520)+10) ));
SOURCE(4002, 56)
      {
         word pd41;
         pd41 = (* (( (ptr) (* (( (ptr) gf←c22520)+80)/* var←c20312 */  ))+10) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd41 ))))((*  (ptr) h←v8696 ), w←v5628, wd←v5672, pd41))) {
SOURCE(4047, 11)
            return(wd←v5672);
            };
         };
SOURCE(4060, 32)
      wd←v5672 = (word) GetOrCreateWindowData←P720(c←v5600, w←v5628);
      };
SOURCE(3777, 315)
   return(wd←v5672);
   }

static word UsedLength←P780(dl←v5732)
   word dl←v5732;
   {
   register ptr gf←c22552 =  (ptr) &globalframe;
   word n←v5776;
   /* UsedLength: */ 
SOURCE(4101, 152)
SOURCE(4101, 152)
   n←v5776 = 0;
SOURCE(4163, 90)
   if ((dl←v5732 != 0)) {
SOURCE(4179, 74)
      {
         register word i←v8740 = 0;
         register word noName←c20696;
         noName←c20696 = (*  (ptr) dl←v5732 );
         if ((i←v8740 >= noName←c20696)) {
            goto lab←L100020;
            };
         lab←L100023: ;
SOURCE(4215, 38)
         {
            word limit42;
            if (((* (( (W7Pt) (( (ptr) dl←v5732)+2))+(
                  limit42 = (* (( (ptr) dl←v5732)+1) ),
                  BCK(i←v8740, limit42)
                  )) ).f3 != (word) (( (bPt) gf←c22552)+296)/* var←c20184 */ )) {
SOURCE(4246, 7)
               n←v5776 = (n←v5776 + 1);
               };
            };
         i←v8740 = (i←v8740 + 1);
         if ((i←v8740 < noName←c20696)) {
            goto lab←L100023;
            };
         lab←L100020: ;
         };
      };
SOURCE(4101, 152)
   return(n←v5776);
   }

static void SetDispatchList←P840(container←v5836, dl←v5864)
   word container←v5836;
   word dl←v5864;
   {
   register ptr gf←c22584 =  (ptr) &globalframe;
   /* SetDispatchList: */ 
SOURCE(4268, 210)
SOURCE(4338, 140)
   {
      word var←c20728;
      word var←c20760;
      var←c20728 = container←v5836;
      if ((var←c20728 == 0)) {
         goto lab←L100024;
         };
      var←c20760 = XR←GetReferentType(var←c20728);
      if (((* (( (ptr) gf←c22584)+10) ) == var←c20760)) {
         {
            word wd←v8784;
            wd←v8784 = var←c20728;
SOURCE(4383, 10)
            (*  (ptr) wd←v8784 ) = dl←v5864;
            };
         goto endif043;
         };
      if (((* (( (ptr) gf←c22584)+15) ) == var←c20760)) {
         {
            word rdl←v8828;
            rdl←v8828 = var←c20728;
SOURCE(4420, 9)
            (*  (ptr) rdl←v8828 ) = dl←v5864;
            };
         goto endif043;
         };
      if (((* (( (ptr) gf←c22584)+9) ) == var←c20760)) {
         {
            word h←v8884;
            h←v8884 = var←c20728;
SOURCE(4459, 19)
            (* (( (ptr) h←v8884)+1) ) = dl←v5864;
            };
         goto endif043;
         };
      lab←L100024: ;
SOURCE(4491, 5)
      (void) XR←RaiseUnnamedError();
      goto endif043;
      endif043: ;
      };
   }

static word GetDispatchList←P900(container←v5936)
   word container←v5936;
   {
   register ptr gf←c22616 =  (ptr) &globalframe;
   word dl←v5992;
   /* GetDispatchList: */ 
SOURCE(4502, 219)
SOURCE(4502, 219)
   dl←v5992 = 0;
SOURCE(4581, 140)
   {
      word var←c20792;
      word var←c20824;
      var←c20792 = container←v5936;
      if ((var←c20792 == 0)) {
         goto lab←L100025;
         };
      var←c20824 = XR←GetReferentType(var←c20792);
      if (((* (( (ptr) gf←c22616)+10) ) == var←c20824)) {
         {
            word wd←v8940;
            wd←v8940 = var←c20792;
SOURCE(4626, 10)
            dl←v5992 = (*  (ptr) wd←v8940 );
            };
         goto endif044;
         };
      if (((* (( (ptr) gf←c22616)+15) ) == var←c20824)) {
         {
            word rdl←v8984;
            rdl←v8984 = var←c20792;
SOURCE(4663, 9)
            dl←v5992 = (*  (ptr) rdl←v8984 );
            };
         goto endif044;
         };
      if (((* (( (ptr) gf←c22616)+9) ) == var←c20824)) {
         {
            word h←v9040;
            h←v9040 = var←c20792;
SOURCE(4702, 19)
            dl←v5992 = (* (( (ptr) h←v9040)+1) );
            };
         goto endif044;
         };
      lab←L100025: ;
SOURCE(4734, 5)
      (void) XR←RaiseUnnamedError();
      goto endif044;
      endif044: ;
      };
SOURCE(4502, 219)
   return(dl←v5992);
   }

static void EnsureEntry←P960(formal←c0135, container←v6052)
   word formal←c0135;
   word container←v6052;
   {
   register ptr gf←c22648 =  (ptr) &globalframe;
   word i←v6108;
   word dl←v6136;
   /* EnsureEntry: */ 
SOURCE(4745, 779)
SOURCE(4745, 779)
   dl←v6136 = 0;
SOURCE(4828, 31)
   dl←v6136 = (word) GetDispatchList←P900(container←v6052);
SOURCE(4861, 515)
   if ((dl←v6136 == 0)) {
SOURCE(4878, 28)
      {
         word var←c20856;
         var←c20856 = XR←NewObject(120, (* (( (ptr) gf←c22648)+16) ));
         (* (( (ptr) var←c20856)+1) ) = 4;
         dl←v6136 = var←c20856;
         };
SOURCE(4908, 30)
      (void) SetDispatchList←P840(container←v6052, dl←v6136);
      }
   else {
SOURCE(4945, 431)
      if (((*  (ptr) dl←v6136 ) >= (* (( (ptr) dl←v6136)+1) ))) {
SOURCE(4983, 398)
         {
            word use←v9096;
SOURCE(4986, 25)
            {
               word idx45;
               use←v9096 = (
                  idx45 = (word) UsedLength←P780(dl←v6136),
                  SGNCK(idx45)
                  );
               };
SOURCE(5013, 363)
            if ((use←v9096 >= 2147483643)) {
SOURCE(5041, 31)
               {
                  word idx46;
                  (*  (ptr) dl←v6136 ) = (
                     idx46 = (word) ((*  (ptr) dl←v6136 ) - 1),
                     SGNCK(idx46)
                     );
                  };
               }
            else {
SOURCE(5081, 297)
               {
                  word new←v9140;
                  word dl2←v9168;
SOURCE(5083, 16)
                  new←v9140 = (use←v9096 + 4);
SOURCE(5101, 45)
                  {
                     word var←c20888;
                     word var←c20920;
                     word var←c20952;
                     var←c20888 = BCK(new←v9140, 9586980);
                     var←c20920 = ((word) var←c20888 * 28);
                     var←c20952 = XR←NewObject((8 + var←c20920), (* (( (ptr) gf←c22648)+16) ));
                     (* (( (ptr) var←c20952)+1) ) = var←c20888;
                     dl2←v9168 = var←c20952;
                     };
SOURCE(5148, 18)
                  (*  (ptr) dl2←v9168 ) = 0;
SOURCE(5168, 151)
                  if ((dl←v6136 != 0)) {
SOURCE(5185, 134)
                     {
                        register word i←v9212 = 0;
                        register word noName←c20984;
                        noName←c20984 = (*  (ptr) dl←v6136 );
                        if ((i←v9212 >= noName←c20984)) {
                           goto lab←L100027;
                           };
                        lab←L100030: ;
SOURCE(5222, 97)
                        {
                           word limit47;
                           if (((* (( (W7Pt) (( (ptr) dl←v6136)+2))+(
/*1*/      limit47 = (* (( (ptr) dl←v6136)+1) ),
/*1*/      BCK(i←v9212, limit47)
/*1*/      )) ).f3 != (word) (( (bPt) gf←c22648)+296)/* var←c20184 */ )) {
SOURCE(5255, 27)
/*1*/   {
/*1*/      word idx48;
/*1*/      word limit49;
/*1*/      word limit50;
/*1*/      (* (( (W7Pt) (( (ptr) dl2←v9168)+2))+(
/*1*/            idx48 = (*  (ptr) dl2←v9168 ),
/*1*/            limit49 = (* (( (ptr) dl2←v9168)+1) ),
/*1*/            BCK(idx48, limit49)
/*1*/            )) ) = (* (( (W7Pt) (( (ptr) dl←v6136)+2))+(
/*1*/            limit50 = (* (( (ptr) dl←v6136)+1) ),
/*1*/            BCK(i←v9212, limit50)
/*1*/            )) );
/*1*/      };
SOURCE(5284, 35)
/*1*/   (*  (ptr) dl2←v9168 ) = ((*  (ptr) dl2←v9168 ) + 1);
/*1*/   };
                           };
                        i←v9212 = (i←v9212 + 1);
                        if ((i←v9212 < noName←c20984)) {
                           goto lab←L100030;
                           };
                        lab←L100027: ;
                        };
                     };
SOURCE(5336, 8)
                  dl←v6136 = dl2←v9168;
SOURCE(5346, 30)
                  (void) SetDispatchList←P840(container←v6052, dl←v6136);
                  };
               };
            };
         };
      };
SOURCE(5384, 17)
   i←v6108 = (*  (ptr) dl←v6136 );
SOURCE(5404, 27)
   {
      word var←c21016;
      {
         word limit51;
         var←c21016 = (word) (( (W7Pt) (( (bPt) dl←v6136)+8))+(
               limit51 = (* (( (ptr) dl←v6136)+1) ),
               BCK(i←v6108, limit51)
               ));
         };
      (*  (ptr) var←c21016 ) = 0;
      (* (( (ptr) var←c21016)+1) ) = 0;
      };
SOURCE(5433, 30)
   {
      word limit52;
      (* (( (W7Pt) (( (ptr) dl←v6136)+2))+(
            limit52 = (* (( (ptr) dl←v6136)+1) ),
            BCK(i←v6108, limit52)
            )) ).f5 = 0;
      };
SOURCE(5465, 26)
   {
      word limit53;
      (* (( (W7Pt) (( (ptr) dl←v6136)+2))+(
            limit53 = (* (( (ptr) dl←v6136)+1) ),
            BCK(i←v6108, limit53)
            )) ).f3 = (word) (( (bPt) gf←c22648)+304)/* var←c20216 */ ;
      };
SOURCE(5493, 31)
   (*  (ptr) dl←v6136 ) = ((*  (ptr) dl←v6136 ) + 1);
   /* removed tail goto */ 
   (*  (ptr) formal←c0135 ) = i←v6108;
   (* (( (ptr) formal←c0135)+1) ) = dl←v6136;
   return;
   }

static void AddMatchToList←P1020(container←v6196, match←v6224, events←v6252)
   word container←v6196;
   word match←v6224;
   word events←v6252;
   {
   register ptr gf←c22680 =  (ptr) &globalframe;
   /* AddMatchToList: */ 
SOURCE(5531, 617)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c22680)+16)/* LOCK←v2804 */ ));
SOURCE(5633, 515)
   if ((match←v6224 != 0)) {
SOURCE(5651, 505)
      {
         W2 activate←v9256;
         word tq←v9284;
         word handles←v9312;
         word proc←v9340;
         W2 var←c21080;
SOURCE(5653, 20)
         activate←v9256.f0 = 0;
         activate←v9256.f1 = 0;
SOURCE(5675, 17)
         tq←v9284 = (* (( (ptr) match←v6224)+2) );
SOURCE(5694, 36)
         handles←v9312 = (* (( (ptr) match←v6224)+1) );
SOURCE(5732, 32)
         proc←v9340 = (*  (ptr) match←v6224 );
SOURCE(5766, 30)
         if ((tq←v9284 == 0)) {
SOURCE(5781, 15)
            {
               word pd54;
               pd54 = (* (( (ptr) (* (( (ptr) gf←c22680)+81)/* var←c20536 */  ))+63) );
               tq←v9284 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))(0, 0, 0, pd54);
               };
            };
SOURCE(5798, 106)
         {
            word tc56;
            if ((handles←v9312 == 0)) { goto then055;};
            if ((proc←v9340 == 0)) { goto then055;};
            var←c21080.f0 = 0;
            var←c21080.f1 = 0;
            if (XR←EqualWords(handles←v9312, &var←c21080, 2)) {
               tc56 =  (word) ((* (( (ptr) handles←v9312)+2) ) == 0);
               }
            else {
               tc56 =  (word) 0;
               };
            if (tc56) {
               then055: ;
SOURCE(5898, 6)
               (void) (XR←MonitorExit((word) (( (bPt) gf←c22680)+16)/* LOCK←v2804 */ ));
               return;
               };
            };
SOURCE(5907, 244)
         {
            word n←v9384;
            word dl←v9412 = 0;
SOURCE(5939, 32)
            {
               W2 var←c21112;
               (void) EnsureEntry←P960((word) &var←c21112, container←v6196);
               dl←v9412 = var←c21112.f1;
               n←v9384 = var←c21112.f0;
               };
SOURCE(5973, 23)
            {
               word limit57;
               (* (( (W7Pt) (( (ptr) dl←v9412)+2))+(
                     limit57 = (* (( (ptr) dl←v9412)+1) ),
                     BCK(n←v9384, limit57)
                     )) ).f4 = (* (( (ptr) match←v6224)+3) );
               };
SOURCE(5999, 13)
            {
               word limit58;
               (* (( (W7Pt) (( (ptr) dl←v9412)+2))+(
                     limit58 = (* (( (ptr) dl←v9412)+1) ),
                     BCK(n←v9384, limit58)
                     )) ).f2 = tq←v9284;
               };
SOURCE(6015, 21)
            {
               word limit59;
               (* (( (W7Pt) (( (ptr) dl←v9412)+2))+(
                     limit59 = (* (( (ptr) dl←v9412)+1) ),
                     BCK(n←v9384, limit59)
                     )) ).f6 = events←v6252;
               };
SOURCE(6039, 17)
            {
               word limit60;
               (* (( (W7Pt) (( (ptr) dl←v9412)+2))+(
                     limit60 = (* (( (ptr) dl←v9412)+1) ),
                     BCK(n←v9384, limit60)
                     )) ).f3 = XR←CheckProc(proc←v9340);
               };
SOURCE(6059, 53)
            {
               word limit61;
               (* (( (W7Pt) (( (ptr) dl←v9412)+2))+(
                     limit61 = (* (( (ptr) dl←v9412)+1) ),
                     BCK(n←v9384, limit61)
                     )) ).f5 = (* (( (ptr) handles←v9312)+2) );
               };
SOURCE(6115, 33)
            {
               word limit62;
               (*  (W2Pt) (( (W7Pt) (( (ptr) dl←v9412)+2))+(
                     limit62 = (* (( (ptr) dl←v9412)+1) ),
                     BCK(n←v9384, limit62)
                     )) ) = (*  (W2Pt) handles←v9312 );
               };
            };
         };
      };
SOURCE(5531, 617)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c22680)+16)/* LOCK←v2804 */ ));
   return;
   }

static void RemoveMatchFromList←P1080(container←v6324, proc←v6352, tq←v6380, data←v6408)
   word container←v6324;
   word proc←v6352;
   word tq←v6380;
   word data←v6408;
   {
   register ptr gf←c22712 =  (ptr) &globalframe;
   word dl←v9456;
   /* RemoveMatchFromList: */ 
SOURCE(6163, 343)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c22712)+16)/* LOCK←v2804 */ ));
SOURCE(6259, 45)
   dl←v9456 = (word) GetDispatchList←P900(container←v6324);
SOURCE(6306, 200)
   if ((dl←v9456 != 0)) {
SOURCE(6321, 185)
      {
         register word i←v9500 = 0;
         register word noName←c21144;
         noName←c21144 = (*  (ptr) dl←v9456 );
         if ((i←v9500 >= noName←c21144)) {
            goto lab←L100031;
            };
         lab←L100034: ;
SOURCE(6357, 149)
         {
            word tc63;
            word tc64;
            word limit65;
            word limit66;
            word limit67;
            if (((* (( (W7Pt) (( (ptr) dl←v9456)+2))+(
                  limit65 = (* (( (ptr) dl←v9456)+1) ),
                  BCK(i←v9500, limit65)
                  )) ).f3 == proc←v6352)) {
               tc64 =  (word) ((* (( (W7Pt) (( (ptr) dl←v9456)+2))+(
                     limit66 = (* (( (ptr) dl←v9456)+1) ),
                     BCK(i←v9500, limit66)
                     )) ).f2 == tq←v6380);
               }
            else {
               tc64 =  (word) 0;
               };
            if (tc64) {
               tc63 =  (word) ((* (( (W7Pt) (( (ptr) dl←v9456)+2))+(
                     limit67 = (* (( (ptr) dl←v9456)+1) ),
                     BCK(i←v9500, limit67)
                     )) ).f4 == data←v6408);
               }
            else {
               tc63 =  (word) 0;
               };
            if (tc63) {
SOURCE(6421, 27)
               {
                  word var←c21176;
                  {
                     word limit68;
                     var←c21176 = (word) (( (W7Pt) (( (bPt) dl←v9456)+8))+(
                           limit68 = (* (( (ptr) dl←v9456)+1) ),
                           BCK(i←v9500, limit68)
                           ));
                     };
                  (*  (ptr) var←c21176 ) = 0;
                  (* (( (ptr) var←c21176)+1) ) = 0;
                  };
SOURCE(6450, 30)
               {
                  word limit69;
                  (* (( (W7Pt) (( (ptr) dl←v9456)+2))+(
                        limit69 = (* (( (ptr) dl←v9456)+1) ),
                        BCK(i←v9500, limit69)
                        )) ).f5 = 0;
                  };
SOURCE(6482, 24)
               {
                  word limit70;
                  (* (( (W7Pt) (( (ptr) dl←v9456)+2))+(
                        limit70 = (* (( (ptr) dl←v9456)+1) ),
                        BCK(i←v9500, limit70)
                        )) ).f3 = (word) (( (bPt) gf←c22712)+296)/* var←c20184 */ ;
                  };
               };
            };
         i←v9500 = (i←v9500 + 1);
         if ((i←v9500 < noName←c21144)) {
            goto lab←L100034;
            };
         lab←L100031: ;
         };
      };
SOURCE(6163, 343)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c22712)+16)/* LOCK←v2804 */ ));
   return;
   }

static word GetInternalEvents←P1140(dl←v6492)
   word dl←v6492;
   {
   register ptr gf←c22744 =  (ptr) &globalframe;
   word events←v6536;
   /* GetInternalEvents: */ 
SOURCE(6523, 227)
SOURCE(6523, 227)
   events←v6536 = 0;
SOURCE(6619, 131)
   if ((dl←v6492 != 0)) {
SOURCE(6634, 116)
      {
         register word i←v9544 = 0;
         register word noName←c21208;
         noName←c21208 = (*  (ptr) dl←v6492 );
         if ((i←v9544 >= noName←c21208)) {
            goto lab←L100035;
            };
         lab←L100038: ;
SOURCE(6671, 79)
         {
            word limit71;
            if (((* (( (W7Pt) (( (ptr) dl←v6492)+2))+(
                  limit71 = (* (( (ptr) dl←v6492)+1) ),
                  BCK(i←v9544, limit71)
                  )) ).f3 != (word) (( (bPt) gf←c22744)+296)/* var←c20184 */ )) {
SOURCE(6703, 47)
               {
                  word var←c21240;
                  word s2←v19240;
                  {
                     word limit72;
                     s2←v19240 = (* (( (W7Pt) (( (ptr) dl←v6492)+2))+(
                           limit72 = (* (( (ptr) dl←v6492)+1) ),
                           BCK(i←v9544, limit72)
                           )) ).f6;
                     };
                  var←c21240 = (word) XRM←BITOR(events←v6536, s2←v19240);
                  events←v6536 = var←c21240;
                  };
               };
            };
         i←v9544 = (i←v9544 + 1);
         if ((i←v9544 < noName←c21208)) {
            goto lab←L100038;
            };
         lab←L100035: ;
         };
      };
SOURCE(6523, 227)
   return(events←v6536);
   }

static void PrivateChangeEvents←P1200(c←v6596, w←v6624, e←v6652, details←v6680)
   word c←v6596;
   word w←v6624;
   word e←v6652;
   word details←v6680;
   {
   register ptr gf←c22776 =  (ptr) &globalframe;
   /* PrivateChangeEvents: */ 
SOURCE(6764, 398)
SOURCE(6871, 24)
   if ((w←v6624 == 0)) {
SOURCE(6895, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(6904, 19)
   {
      word pd73;
      pd73 = (* (( (ptr) (* (( (ptr) gf←c22776)+82)/* var←c21304 */  ))+17) );
      (void) ( *( (fPt) ((*  (ptr) pd73 ))))(c←v6596, 2, 0, 4, pd73);
      };
SOURCE(6950, 18)
   {
      word pd74;
      pd74 = (* (( (ptr) (* (( (ptr) gf←c22776)+82)/* var←c21304 */  ))+27) );
      (void) ( *( (fPt) ((*  (ptr) pd74 ))))(c←v6596, w←v6624, pd74);
      };
SOURCE(6971, 16)
   {
      word pd75;
      pd75 = (* (( (ptr) (* (( (ptr) gf←c22776)+82)/* var←c21304 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd75 ))))(c←v6596, 2048, pd75);
      };
SOURCE(7013, 22)
   {
      word pd76;
      pd76 = (* (( (ptr) (* (( (ptr) gf←c22776)+82)/* var←c21304 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd76 ))))(c←v6596, e←v6652, pd76);
      };
SOURCE(7037, 29)
   {
      word pd77;
      pd77 = (* (( (ptr) (* (( (ptr) gf←c22776)+82)/* var←c21304 */  ))+64) );
      (void) ( *( (fPt) ((*  (ptr) pd77 ))))(c←v6596, details←v6680, pd77);
      };
SOURCE(7068, 94)
   if ((details←v6680 == 0)) {
SOURCE(7090, 72)
      {
         word c←v18992;
         word delay←v19020;
         c←v18992 = c←v6596;
         {
            word pd78;
            pd78 = (* (( (ptr) (* (( (ptr) gf←c22776)+83)/* var←c21336 */  ))+9) );
            delay←v19020 = (word) ( *( (fPt) ((*  (ptr) pd78 ))))(c←v6596, w←v6624, pd78);
            };
         {
            word pd79;
            if (((* (( (ptr) c←v18992)+5) ) != 0) || (0 != (* (( (ptr) c←v18992)+35) ))) {
               pd79 = (* (( (ptr) (* (( (ptr) gf←c22776)+82)/* var←c21304 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd79 ))))(c←v18992, delay←v19020, pd79);
               };
            };
         };
      };
   }

static void InternalAddMatch←P1260(c←v6740, w←v6768, match←v6796, generate←v6824)
   word c←v6740;
   word w←v6768;
   word match←v6796;
   word generate←v6824;
   {
   word wd←v9588;
   /* InternalAddMatch: */ 
SOURCE(7171, 323)
SOURCE(7279, 44)
   wd←v9588 = (word) GetOrCreateWindowData←P720(c←v6740, w←v6768);
SOURCE(7325, 31)
   generate←v6824 |= 131072;
SOURCE(7358, 61)
   {
      word var←c21368;
      {
         word var←c21400;
         word s2←v19192;
         s2←v19192 = (* (( (ptr) wd←v9588)+2) );
         var←c21400 = (word) XRM←BITOR(generate←v6824, s2←v19192);
         var←c21368 = var←c21400;
         };
      (* (( (ptr) wd←v9588)+2) ) = var←c21368;
      };
SOURCE(7459, 35)
   (void) AddMatchToList←P1020(wd←v9588, match←v6796, generate←v6824);
   }

static void AddMatches←P1320(c←v6884, w←v6912, matchList←v6940, generate←v6968, details←v6996)
   word c←v6884;
   word w←v6912;
   word matchList←v6940;
   word generate←v6968;
   word details←v6996;
   {
   /* AddMatches: */ 
SOURCE(7499, 217)
SOURCE(7622, 94)
   {
      register word l←v9632;
      l←v9632 = matchList←v6940;
      lab←L100044: ;
      if ((l←v9632 != 0)) {
         }
      else {
         goto lab←L100041;
         };
SOURCE(7674, 42)
      (void) AddMatch←P1380(c←v6884, w←v6912, (*  (ptr) l←v9632 ), generate←v6968, details←v6996);
      l←v9632 = (* (( (ptr) l←v9632)+1) );
      goto lab←L100044;
      lab←L100041: ;
      };
   }

static void AddMatch←P1380(c←v7056, formal←c0297, formal←c0298, formal←c0299, formal←c0300)
   word c←v7056;
   word formal←c0297;
   word formal←c0298;
   word formal←c0299;
   word formal←c0300;
   {
   W10 var←c22808;
   /* declaration of w←v7084 skipped */ 
   /* declaration of match←v7112 skipped */ 
   /* declaration of generate←v7140 skipped */ 
   /* declaration of details←v7168 skipped */ 
   register ptr gf←c22840 =  (ptr) &globalframe;
   /* declaration of var←c21464 skipped */ 
   (* (( (ptr) &var←c22808)+4)/* w←v7084 */  ) = formal←c0297;
   (* (( (ptr) &var←c22808)+5)/* match←v7112 */  ) = formal←c0298;
   (* (( (ptr) &var←c22808)+6)/* generate←v7140 */  ) = formal←c0299;
   (* (( (ptr) &var←c22808)+7)/* details←v7168 */  ) = formal←c0300;
   /* AddMatch: */ 
SOURCE(7730, 601)
   {
      word tmpAddr80;
      tmpAddr80 = (word) (( (ptr) &var←c22808)+8)/* var←c21464 */ ;
      (*  (ptr) tmpAddr80 ) = ( ((word)  (fPt) action←P3168) );
      (* (( (ptr) tmpAddr80) + 1) ) = 1;
      };
SOURCE(8267, 31)
   (* (( (ptr) (&var←c22808)) + 6) ) |= 131072;
SOURCE(8300, 31)
   {
      word pd81;
      pd81 = (* (( (ptr) (* (( (ptr) gf←c22840)+82)/* var←c21304 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd81 ))))(c←v7056, (word) (( (bPt) &var←c22808)+32)/* var←c21464 */ , (* (( (ptr) &var←c22808)+7)
         /* details←v7168 */  ), pd81);
      };
   }

static void action←P3168(c←v9752, formal←c22872)
   word c←v9752;
   word formal←c22872;
   {
   word wd←v9780;
   word newEvents←v9808;
   formal←c22872 = (formal←c22872 - 32);
   /* action: */ 
SOURCE(7837, 422)
SOURCE(7870, 44)
   wd←v9780 = (word) GetOrCreateWindowData←P720(c←v9752, (* (( (ptr) formal←c22872)+4) ));
SOURCE(7916, 79)
   {
      word s1←v19116;
      word s2←v19144;
      s1←v19116 = (* (( (ptr) wd←v9780)+1) );
      s2←v19144 = (* (( (ptr) wd←v9780)+2) );
      newEvents←v9808 = (word) XRM←BITOR(s1←v19116, s2←v19144);
      };
SOURCE(7997, 49)
   newEvents←v9808 = (word) XRM←BITOR(newEvents←v9808, (* (( (ptr) formal←c22872)+6) ));
SOURCE(8048, 32)
   newEvents←v9808 |= 131072;
SOURCE(8082, 35)
   (void) AddMatchToList←P1020(wd←v9780, (* (( (ptr) formal←c22872)+5) ), (* (( (ptr) formal←c22872)+6) ));
SOURCE(8119, 140)
   if ((newEvents←v9808 != (* (( (ptr) wd←v9780)+2) ))) {
SOURCE(8155, 27)
      (* (( (ptr) wd←v9780)+2) ) = newEvents←v9808;
SOURCE(8184, 75)
      if (((* (( (ptr) formal←c22872)+4) ) != 0)) {
SOURCE(8208, 51)
         (void) PrivateChangeEvents←P1200(c←v9752, (* (( (ptr) formal←c22872)+4) ), (* (( (ptr) wd←v9780)+2) ), (* (( (ptr) formal←c22872)+7)
             ));
         };
      };
   }

static void RemoveMatch←P1440(c←v7228, formal←c0301, formal←c0302, formal←c0303)
   word c←v7228;
   word formal←c0301;
   word formal←c0302;
   word formal←c0303;
   {
   W11 var←c22904;
   /* declaration of w←v7256 skipped */ 
   /* declaration of match←v7284 skipped */ 
   /* declaration of details←v7312 skipped */ 
   register ptr gf←c22936 =  (ptr) &globalframe;
   /* declaration of var←c21560 skipped */ 
   /* declaration of proc←v9880 skipped */ 
   /* declaration of wd←v9908 skipped */ 
   (* (( (ptr) &var←c22904)+4)/* w←v7256 */  ) = formal←c0301;
   (* (( (ptr) &var←c22904)+5)/* match←v7284 */  ) = formal←c0302;
   (* (( (ptr) &var←c22904)+6)/* details←v7312 */  ) = formal←c0303;
   /* RemoveMatch: */ 
SOURCE(8336, 789)
   {
      word tmpAddr82;
      tmpAddr82 = (word) (( (ptr) &var←c22904)+7)/* var←c21560 */ ;
      (*  (ptr) tmpAddr82 ) = ( ((word)  (fPt) action←P3228) );
      (* (( (ptr) tmpAddr82) + 1) ) = 1;
      };
SOURCE(8993, 32)
   (* (( (ptr) &var←c22904)+9)/* proc←v9880 */  ) = (*  (ptr) (* (( (ptr) &var←c22904)+5)/* match←v7284 */  ) );
SOURCE(9027, 36)
   (* (( (ptr) &var←c22904)+10)/* wd←v9908 */  ) = (word) GetWindowData←P660(c←v7228, (* (( (ptr) &var←c22904)+4)/* w←v7256 */  ))
   ;
SOURCE(9065, 60)
   if ( ( ((* (( (ptr) &var←c22904)+10)/* wd←v9908 */  ) != 0) ? ((* (( (ptr) &var←c22904)+5)/* match←v7284 */  ) != 0) : 0 ) ) {
SOURCE(9094, 31)
      {
         word pd83;
         pd83 = (* (( (ptr) (* (( (ptr) gf←c22936)+82)/* var←c21304 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd83 ))))(c←v7228, (word) (( (bPt) &var←c22904)+28)/* var←c21560 */ , (* (( (ptr) &var←c22904)+6)
            /* details←v7312 */  ), pd83);
         };
      };
   }

static void action←P3228(c←v9984, formal←c23000)
   word c←v9984;
   word formal←c23000;
   {
   register ptr gf←c22968 =  (ptr) &globalframe;
   formal←c23000 = (formal←c23000 - 28);
   /* action: */ 
SOURCE(8424, 556)
SOURCE(8510, 51)
   (void) RemoveMatchFromList←P1080((* (( (ptr) formal←c23000)+10) ), (* (( (ptr) formal←c23000)+9) ), (* (( (ptr) (* (( (ptr) formal←c23000)+5)
          ))+2) ), (* (( (ptr) (* (( (ptr) formal←c23000)+5) ))+3) ));
SOURCE(8563, 136)
   {
      word pd84;
      pd84 = (* (( (ptr) (* (( (ptr) gf←c22968)+83)/* var←c21336 */  ))+9) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd84 ))))(c←v9984, (* (( (ptr) formal←c23000)+4) ), pd84))) {
SOURCE(8605, 96)
         {
            word n←v10012;
SOURCE(8637, 26)
            {
               word idx85;
               n←v10012 = (
                  idx85 = (word) UsedLength←P780((*  (ptr) ((* (( (ptr) formal←c23000)+10) )) )),
                  SGNCK(idx85)
                  );
               };
SOURCE(8665, 34)
            if ((n←v10012 == 0)) {
SOURCE(8677, 22)
               (void) RemoveWindowData←P600(c←v9984, (* (( (ptr) formal←c23000)+4) ));
               };
            };
         };
      };
SOURCE(8704, 281)
   {
      word internal←v10056;
      word new←v10084;
SOURCE(8710, 47)
      internal←v10056 = (word) GetInternalEvents←P1140((*  (ptr) ((* (( (ptr) formal←c23000)+10) )) ));
SOURCE(8802, 60)
      {
         word s2←v19068;
         s2←v19068 = (* (( (ptr) (* (( (ptr) formal←c23000)+10) ))+1) );
         new←v10084 = (word) XRM←BITOR(internal←v10056, s2←v19068);
         };
SOURCE(8864, 116)
      if ((new←v10084 != (* (( (ptr) (* (( (ptr) formal←c23000)+10) ))+2) ))) {
SOURCE(8894, 21)
         (* (( (ptr) (* (( (ptr) formal←c23000)+10) ))+2) ) = new←v10084;
SOURCE(8917, 63)
         if (((* (( (ptr) formal←c23000)+4) ) != 0)) {
SOURCE(8941, 39)
            (void) PrivateChangeEvents←P1200(c←v9984, (* (( (ptr) formal←c23000)+4) ), new←v10084, (* (( (ptr) formal←c23000)+6) ));
            };
         };
      };
   }

static void AddMatchForUnregistered←P1500(c←v7372, formal←c0304)
   word c←v7372;
   word formal←c0304;
   {
   W7 var←c23032;
   /* declaration of match←v7400 skipped */ 
   register ptr gf←c23064 =  (ptr) &globalframe;
   /* declaration of var←c21656 skipped */ 
   var←c23032.f4/* match←v7400 */  = formal←c0304;
   /* AddMatchForUnregistered: */ 
SOURCE(9130, 224)
   {
      word tmpAddr86;
      tmpAddr86 = (word) (( (ptr) &var←c23032)+5)/* var←c21656 */ ;
      (*  (ptr) tmpAddr86 ) = ( ((word)  (fPt) action←P3384) );
      (* (( (ptr) tmpAddr86) + 1) ) = 1;
      };
SOURCE(9308, 46)
   {
      word pd87;
      pd87 = (* (( (ptr) (* (( (ptr) gf←c23064)+82)/* var←c21304 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd87 ))))(c←v7372, (word) (( (bPt) &var←c23032)+20)/* var←c21656 */ , (*  (ptr) (* (( (ptr) (* (
               ( (ptr) gf←c23064)+84)/* var←c21688 */  ))+5) ) ), pd87);
      };
   }

static void action←P3384(c←v10204, formal←c23096)
   word c←v10204;
   word formal←c23096;
   {
   word h←v10232;
   formal←c23096 = (formal←c23096 - 20);
   /* action: */ 
SOURCE(9201, 102)
SOURCE(9234, 35)
   h←v10232 = (* (( (ptr) c←v10204)+27) );
SOURCE(9271, 32)
   (void) AddMatchToList←P1020((* (( (ptr) h←v10232)+2) ), (* (( (ptr) formal←c23096)+4) ), 0);
   }

static word EnforcedSetOfEvent←P1560(c←v7460, w←v7488, external←v7516)
   word c←v7460;
   word w←v7488;
   word external←v7516;
   {
   word var←c7560;
   /* EnforcedSetOfEvent: */ 
SOURCE(9359, 437)
SOURCE(9359, 437)
   var←c7560 = 0;
SOURCE(9496, 300)
   if ((external←v7516 != 0)) {
SOURCE(9531, 267)
      {
         word wd←v10276;
         word internal←v10304;
SOURCE(9533, 44)
         wd←v10276 = (word) GetOrCreateWindowData←P720(c←v7460, w←v7488);
SOURCE(9579, 47)
         internal←v10304 = (word) GetInternalEvents←P1140((*  (ptr) (wd←v10276) ));
SOURCE(9628, 28)
         (* (( (ptr) wd←v10276)+1) ) = external←v7516;
SOURCE(9658, 47)
         external←v7516 = (word) XRM←BITOR(internal←v10304, external←v7516);
SOURCE(9707, 31)
         external←v7516 |= 131072;
SOURCE(9779, 17)
         return(external←v7516);
         };
      };
SOURCE(9359, 437)
   return(var←c7560);
   }

static void AddPriviledgedMatch←P1620(c←v7620, formal←c0305)
   word c←v7620;
   word formal←c0305;
   {
   W7 var←c23128;
   /* declaration of match←v7648 skipped */ 
   register ptr gf←c23160 =  (ptr) &globalframe;
   /* declaration of var←c21720 skipped */ 
   var←c23128.f4/* match←v7648 */  = formal←c0305;
   /* AddPriviledgedMatch: */ 
SOURCE(9805, 213)
   {
      word tmpAddr88;
      tmpAddr88 = (word) (( (ptr) &var←c23128)+5)/* var←c21720 */ ;
      (*  (ptr) tmpAddr88 ) = ( ((word)  (fPt) action←P3492) );
      (* (( (ptr) tmpAddr88) + 1) ) = 1;
      };
SOURCE(9972, 46)
   {
      word pd89;
      pd89 = (* (( (ptr) (* (( (ptr) gf←c23160)+82)/* var←c21304 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd89 ))))(c←v7620, (word) (( (bPt) &var←c23128)+20)/* var←c21720 */ , (*  (ptr) (* (( (ptr) (* (
               ( (ptr) gf←c23160)+84)/* var←c21688 */  ))+5) ) ), pd89);
      };
   }

static void action←P3492(c←v10424, formal←c23192)
   word c←v10424;
   word formal←c23192;
   {
   word h←v10452;
   formal←c23192 = (formal←c23192 - 20);
   /* action: */ 
SOURCE(9873, 94)
SOURCE(9906, 35)
   h←v10452 = (* (( (ptr) c←v10424)+27) );
SOURCE(9943, 24)
   (void) AddMatchToList←P1020(h←v10452, (* (( (ptr) formal←c23192)+4) ), 0);
   }

static void RemovePriviledgedMatch←P1680(c←v7708, formal←c0306)
   word c←v7708;
   word formal←c0306;
   {
   W8 var←c23224;
   /* declaration of match←v7736 skipped */ 
   register ptr gf←c23256 =  (ptr) &globalframe;
   /* declaration of var←c21752 skipped */ 
   /* declaration of proc←v10524 skipped */ 
   var←c23224.f4/* match←v7736 */  = formal←c0306;
   /* RemovePriviledgedMatch: */ 
SOURCE(10023, 405)
   {
      word tmpAddr90;
      tmpAddr90 = (word) (( (ptr) &var←c23224)+5)/* var←c21752 */ ;
      (*  (ptr) tmpAddr90 ) = ( ((word)  (fPt) action←P3552) );
      (* (( (ptr) tmpAddr90) + 1) ) = 1;
      };
SOURCE(10348, 32)
   var←c23224.f7/* proc←v10524 */  = (*  (ptr) var←c23224.f4/* match←v7736 */  );
SOURCE(10382, 46)
   {
      word pd91;
      pd91 = (* (( (ptr) (* (( (ptr) gf←c23256)+82)/* var←c21304 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd91 ))))(c←v7708, (word) (( (bPt) &var←c23224)+20)/* var←c21752 */ , (*  (ptr) (* (( (ptr) (* (
               ( (ptr) gf←c23256)+84)/* var←c21688 */  ))+5) ) ), pd91);
      };
   }

static void action←P3552(c←v10600, formal←c23320)
   word c←v10600;
   word formal←c23320;
   {
   W6 var←c23288;
   /* declaration of var←c21784 skipped */ 
   word h←v10656;
   formal←c23320 = (formal←c23320 - 20);
   var←c23288.f0 = formal←c23320;
   /* action: */ 
SOURCE(10093, 249)
   {
      word tmpAddr92;
      tmpAddr92 = (word) (( (ptr) &var←c23288)+4)/* var←c21784 */ ;
      (*  (ptr) tmpAddr92 ) = ( ((word)  (fPt) CheckForEmpty←P3612) );
      (* (( (ptr) tmpAddr92) + 1) ) = 1;
      };
SOURCE(10237, 35)
   h←v10656 = (* (( (ptr) c←v10600)+27) );
SOURCE(10274, 50)
   (void) RemoveMatchFromList←P1080(h←v10656, (* (( (ptr) formal←c23320)+7) ), (* (( (ptr) (* (( (ptr) formal←c23320)+4) ))+2)
       ), (* (( (ptr) (* (( (ptr) formal←c23320)+4) ))+3) ));
SOURCE(10326, 16)
   (void) CheckForEmpty←P3612(h←v10656, (word) (( (bPt) &var←c23288)+16)/* var←c21784 */ );
   }

static void CheckForEmpty←P3612(h←v10732, formal←c23384)
   word h←v10732;
   word formal←c23384;
   {
   register ptr gf←c23352 =  (ptr) &globalframe;
   formal←c23384 = (formal←c23384 - 16);
   /* CheckForEmpty: */ 
SOURCE(10126, 108)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c23352)+16)/* LOCK←v2804 */ ));
SOURCE(10176, 58)
   if (((word) UsedLength←P780((* ((( (ptr) h←v10732)+1)) )) == 0)) {
SOURCE(10213, 21)
      (* (( (ptr) h←v10732)+1) ) = 0;
      };
SOURCE(10126, 108)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c23352)+16)/* LOCK←v2804 */ ));
   return;
   }

static void InitWindow←P1740(c←v7796, w←v7824)
   word c←v7796;
   word w←v7824;
   {
   register ptr gf←c23416 =  (ptr) &globalframe;
   word h←v10760;
   /* InitWindow: */ 
SOURCE(10434, 129)
SOURCE(10489, 35)
   h←v10760 = (* (( (ptr) c←v7796)+27) );
SOURCE(10526, 37)
   {
      word var←c21816;
      word pd93;
      pd93 = (* (( (ptr) (* (( (ptr) gf←c23416)+80)/* var←c20312 */  ))+11) );
      var←c21816 = (word) ( *( (fPt) ((*  (ptr) pd93 ))))((*  (ptr) h←v10760 ), w←v7824, pd93);
      };
   }

static void RemoveWindow←P1800(c←v7884, w←v7912)
   word c←v7884;
   word w←v7912;
   {
   register ptr gf←c23448 =  (ptr) &globalframe;
   word h←v10804;
   /* RemoveWindow: */ 
SOURCE(10568, 271)
SOURCE(10625, 35)
   h←v10804 = (* (( (ptr) c←v7884)+27) );
SOURCE(10662, 177)
   if ((w←v7912 != 0)) {
SOURCE(10683, 158)
      {
         word deleted←v10848;
SOURCE(10685, 48)
         {
            word pd94;
            pd94 = (* (( (ptr) (* (( (ptr) gf←c23448)+80)/* var←c20312 */  ))+11) );
            deleted←v10848 = (word) ( *( (fPt) ((*  (ptr) pd94 ))))((*  (ptr) h←v10804 ), w←v7912, pd94);
            };
SOURCE(10736, 103)
         {
            word tc95;
            word pd96;
            if ((0 != deleted←v10848)) {
               pd96 = (* (( (ptr) (* (( (ptr) gf←c23448)+83)/* var←c21336 */  ))+9) );
               tc95 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd96 ))))(c←v7884, w←v7912, pd96));
               }
            else {
               tc95 =  (word) 0;
               };
            if (tc95) {
SOURCE(10792, 47)
               {
                  word pd97;
                  pd97 = (* (( (ptr) (* (( (ptr) gf←c23448)+83)/* var←c21336 */  ))+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd97 ))))(c←v7884, w←v7912, pd97);
                  };
               };
            };
         };
      };
   }

static void InitConnection←P1860(c←v7972)
   word c←v7972;
   {
   register ptr gf←c23480 =  (ptr) &globalframe;
   /* InitConnection: */ 
SOURCE(10847, 337)
SOURCE(10895, 147)
   {
      word var←c21848;
      {
         word var←c21880;
         word var←c21912;
         word var←c21976;
         word var←c22040;
         {
            word pd98;
            pd98 = (* (( (ptr) (* (( (ptr) gf←c23480)+80)/* var←c20312 */  ))+5) );
            var←c21880 = (word) ( *( (fPt) ((*  (ptr) pd98 ))))(17, pd98);
            };
         var←c21912 = XR←NewObject(4, (* (( (ptr) gf←c23480)+15) ));
         var←c21976 = XR←NewObject(8, (* (( (ptr) gf←c23480)+11) ));
         var←c22040 = XR←NewObject(16, (* (( (ptr) gf←c23480)+9) ));
         (*  (ptr) var←c22040 ) = var←c21880;
         (* (( (ptr) var←c22040)+2) ) = var←c21912;
         (* (( (ptr) var←c22040)+3) ) = var←c21976;
         var←c21848 = var←c22040;
         };
      (* (( (ptr) c←v7972)+27) ) = var←c21848;
      };
SOURCE(11044, 44)
   {
      word var←c22072;
      var←c22072 = (word) GetOrCreateWindowData←P720(c←v7972, 0);
      };
SOURCE(11090, 94)
   {
      register word i←v10892 = 0;
      register word noName←c22104;
      noName←c22104 = (*  (ptr) (* (( (ptr) (* (( (ptr) c←v7972)+16) ))+17) ) );
      if ((i←v10892 >= noName←c22104)) {
         goto lab←L100047;
         };
      lab←L100050: ;
SOURCE(11130, 54)
      {
         word var←c22168;
         {
            word var←c22136;
            word var←c0284;
            {
               word limit99;
               var←c22136 = (* (( (ptr) (* (( (ptr) c←v7972)+16) ))+17) );
               var←c0284 = (*  (ptr) (* ((( (ptr) var←c22136)+1)+(
                     limit99 = (*  (ptr) var←c22136 ),
                     BCK(i←v10892, limit99)
                     )) ) );
               };
            var←c22168 = (word) GetOrCreateWindowData←P720(c←v7972, var←c0284);
            };
         };
      i←v10892 = (i←v10892 + 1);
      if ((i←v10892 < noName←c22104)) {
         goto lab←L100050;
         };
      lab←L100047: ;
      };
   }

/* file: XlDispatchImpl, module: XlDispatchImpl, compiled at: September 14, 1993 4:27:49 pm PDT */ 
extern void XR←install←XlDispatchImpl() {
   NoName←Q4512();
   }
extern void XR←run←XlDispatchImpl() { XR←Start(&globalframe); }