/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: October 19, 1993 1:03:15 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: TJaMStackImpl, module: TJaMStackImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [453214179,2830877265] TJaMStackImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
#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←Q4116();
static void TJaMStackImpl←P0();
static word NewStack←P60();
static void Push←P120();
static void PushNum←P180();
static void PushInt←P240();
static void PushBool←P300();
static void PushReal←P360();
static void PushAtom←P420();
static void PushRope←P480();
static void PushStream←P540();
static void PushCmd←P600();
static void PushArray←P660();
static void PushDict←P720();
static void PushMark←P780();
static word Pop←P840();
static void Remove←P900();
static void PopNum←P960();
static word PopInt←P1020();
static word PopBool←P1080();
static word PopReal←P1140();
static word PopAtom←P1200();
static word PopRope←P1260();
static word PopStream←P1320();
static word PopCmd←P1380();
static word PopArray←P1440();
static word PopDict←P1500();
static word PopMark←P1560();
static void Copy←P1620();
static void Dup←P1680();
static void Roll←P1740();
static void Reverse←P3720();
static void Exch←P1800();
static word Top←P1860();
static word TopType←P1920();
static word StackIsEmpty←P1980();
static word CountStack←P2040();
static word Index←P2100();
static word CountToMark←P2160();
static void ClearToMark←P2220();
static void ClearStack←P2280();
static void ApplyPop←P2340();
static void ApplyCopy←P2400();
static void ApplyDup←P2460();
static void ApplyRoll←P2520();
static void ApplyExch←P2580();
static void ApplyCount←P2640();
static void ApplyClearStack←P2700();
static void ApplyIndex←P2760();
static void ApplyMark←P2820();
static void ApplyCountToMark←P2880();
static void ApplyClearToMark←P2940();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\101\034\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string3 = {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];} string4 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string5 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\354\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\101\004\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\340\000\000"};
static struct {unsigned f; char r[4];} string10 = {131074, "\004\006\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\112\064\000\000"};
static struct {unsigned f; char r[4];} string12 = {131074, "\004\037\000"};
static struct {unsigned f; char r[4];} string13 = {65540, "\251\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\230\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\367\310\321\062\300\174\163\370\126\100\214\000\000"};
static struct {unsigned f; char r[12];} string16 = {589833, "\011\000\014\100\100\040\000\014\001\000\000"};
static struct {unsigned f; char r[12];} string17 = {589836, ".clrtomrk\000\000"};
static struct {unsigned f; char r[8];} string18 = {327688, ".mark\000\000"};
static struct {unsigned f; char r[8];} string19 = {393224, ".index\000"};
static struct {unsigned f; char r[12];} string20 = {589836, ".cnttomrk\000\000"};
static struct {unsigned f; char r[8];} string21 = {458760, ".cntstk"};
static struct {unsigned f; char r[8];} string22 = {327688, ".roll\000\000"};
static struct {unsigned f; char r[8];} string23 = {327688, ".copy\000\000"};
static struct {unsigned f; char r[8];} string24 = {458760, ".clrstk"};
static struct {unsigned f; char r[8];} string25 = {262152, ".dup\000\000\000"};
static struct {unsigned f; char r[8];} string26 = {327688, ".exch\000\000"};
static struct {unsigned f; char r[8];} string27 = {262152, ".pop\000\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\033\003\177\343\300\250\273\302\121\100\164\000\000"};
static struct {unsigned f; char r[12];} string29 = {720907, "\006\003\020\001\024\001\100\114\004\107\377"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[4];} string31 = {1414160717, "\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\150\000\000"};
static struct {unsigned f; char r[28];} string33 = {1638428, "\211\015\014\106\162\141\155\145\111\155\160\154\122\145\160\300\243\004\305\073\300\011\303\367\103\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\367\310\321\062\300\174\163\370\126\100\164\000\000"};
static struct {unsigned f; char r[4];} string35 = {131074, "\004\017\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\367\310\321\062\300\174\163\370\126\100\150\000\000"};
static struct {
   word f0[30]; word f30; word f31; word f32; 
   word f33; word f34; word f35; word f36; 
   word f37; word f38; word f39; word f40; 
   word f41; word f42; word f43; word f44; 
   word f45; word f46; word f47; word f48; 
   word f49; word f50; word f51; word f52; 
   word f53; word f54; word f55; word f56; 
   word f57; word f58; word f59; word f60; 
   word f61; word f62; word f63; word f64; 
   word f65; word f66; word f67; word f68; 
   word f69; word f70; word f71; word f72; 
   word f73; word f74; word f75; word f76; 
   word f77; word f78; word f79; word f80; 
   word f81; word f82; word f83; word f84; 
   word f85; word f86; word f87; word f88; 
   word f89; word f90; word f91; word f92; 
   word f93; word f94; word f95; word f96; 
   word f97; word f98; word f99; word f100; 
   word f101; word f102; word f103; word f104; 
   word f105; word f106; word f107; word f108; 
   word f109; word f110; word f111; word f112; 
   word f113; word f114; word f115; word f116; 
   word f117; word f118; word f119; word f120; 
   word f121; word f122; word f123; word f124; 
   word f125; word f126; word f127; word f128; 
   word f129[5]; 
   } globalframe = {
   {0}, (word) ApplyClearToMark←P2940, 0, (word) ApplyCountToMark←P2880, 
   0, (word) ApplyMark←P2820, 0, (word) ApplyIndex←P2760, 
   0, (word) ApplyClearStack←P2700, 0, (word) ApplyCount←P2640, 
   0, (word) ApplyExch←P2580, 0, (word) ApplyRoll←P2520, 
   0, (word) ApplyDup←P2460, 0, (word) ApplyCopy←P2400, 
   0, (word) ApplyPop←P2340, 0, (word) ClearStack←P2280, 
   0, (word) ClearToMark←P2220, 0, (word) CountToMark←P2160, 
   0, (word) Index←P2100, 0, (word) CountStack←P2040, 
   0, (word) StackIsEmpty←P1980, 0, (word) TopType←P1920, 
   0, (word) Top←P1860, 0, (word) Exch←P1800, 
   0, (word) Roll←P1740, 0, (word) Dup←P1680, 
   0, (word) Copy←P1620, 0, (word) PopMark←P1560, 
   0, (word) PopDict←P1500, 0, (word) PopArray←P1440, 
   0, (word) PopCmd←P1380, 0, (word) PopStream←P1320, 
   0, (word) PopRope←P1260, 0, (word) PopAtom←P1200, 
   0, (word) PopReal←P1140, 0, (word) PopBool←P1080, 
   0, (word) PopInt←P1020, 0, (word) PopNum←P960, 
   0, (word) Remove←P900, 0, (word) Pop←P840, 
   0, (word) PushMark←P780, 0, (word) PushDict←P720, 
   0, (word) PushArray←P660, 0, (word) PushCmd←P600, 
   0, (word) PushStream←P540, 0, (word) PushRope←P480, 
   0, (word) PushAtom←P420, 0, (word) PushReal←P360, 
   0, (word) PushBool←P300, 0, (word) PushInt←P240, 
   0, (word) PushNum←P180, 0, (word) Push←P120, 
   0, (word) NewStack←P60, 0, (word) TJaMStackImpl←P0, 
   {0}
   };

static void NoName←Q4116()
   {
   register ptr gf←c0278 =  (ptr) &globalframe;
   word var←c24324;
   (* (( (ptr) gf←c0278)+7) ) = (word) XR←GetTypeIndexS((word) (&string1));
   (* (( (ptr) gf←c0278)+9) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c0278)+10) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0278)+12) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0278)+13) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string5);
   (* (( (ptr) gf←c0278)+14) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c0278)+15) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
   (* (( (ptr) gf←c0278)+16) ) = (word) XR←GetTypeIndexS((word) (&string13));
   (* (( (ptr) gf←c0278)+17) ) = (word) XR←GetTypeIndexS((word) (&string14));
   (* (( (ptr) gf←c0278)+18) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16);
   (*  (ptr) (( (bPt) gf←c0278)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0278)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0278)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0278)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0278)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0278)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0278)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0278)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0278)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0278)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0278)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0278)+10) ), (word) &string27);
   (void) XR←DeclareGlobalFrame((word) "TJaMStackImpl", &globalframe, (word) XR←GetTypeIndex((word) &string28, 0, (word) &string29)
      , (word) (( (bPt) gf←c0278)+512)/* var←c22596 */ );
   var←c24324 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string30)), 43);
   (* (( (ptr) gf←c0278)+130)/* var←c22628 */  ) = var←c24324;
   (void) XR←ImportProcS(var←c24324, 67378689);
   var←c24324 = (word) XR←ImportInterface((word) &string31, (word) XR←GetTypeIndexS((word) (&string32)), 101);
   (* (( (ptr) gf←c0278)+131)/* var←c22692 */  ) = var←c24324;
   (void) XR←ImportProcS(var←c24324, 67371777);
   (void) XR←ImportProcS(var←c24324, 67375105);
   (void) XR←ImportProcS(var←c24324, 67374849);
   (void) XR←ImportProcS(var←c24324, 67374593);
   (void) XR←ImportProcS(var←c24324, 67374337);
   (void) XR←ImportProcS(var←c24324, 67374081);
   (void) XR←ImportProcS(var←c24324, 67373825);
   (void) XR←ImportProcS(var←c24324, 67373569);
   (void) XR←ImportProcS(var←c24324, 67373057);
   (void) XR←ImportProcS(var←c24324, 67634689);
   (void) XR←ImportProcS(var←c24324, 67372801);
   (void) XR←ImportProcS(var←c24324, 67634433);
   (void) XR←ImportProcS(var←c24324, 67373313);
   (void) XR←ImportProcS(var←c24324, 285441);
   (void) XR←ImportProcS(var←c24324, 540930);
   (void) XR←ImportProcS(var←c24324, 67385601);
   (void) XR←ImportProcS(var←c24324, 812035);
   var←c24324 = (word) XR←ExportInterface((word) &string31, (word) XR←GetTypeIndexS((word) (&string32)), 101);
   (* (( (ptr) gf←c0278)+132)/* var←c24356 */  ) = var←c24324;
   (void) XR←ExportType((word) "FrameImplRep", (word) XR←GetTypeIndexS((word) (&string33)), (word) XR←GetTypeIndex((word) &string34, 0, (word) &string35)
      );
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+496)/* var←c22532 */ , 529666, (word) "Push");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+472)/* var←c22436 */ , 529922, (word) "PushBool");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+480)/* var←c22468 */ , 530178, (word) "PushInt");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+464)/* var←c22404 */ , 530434, (word) "PushReal");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+488)/* var←c22500 */ , 792834, (word) "PushNum");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+456)/* var←c22372 */ , 530946, (word) "PushAtom");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+448)/* var←c22340 */ , 531202, (word) "PushRope");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+440)/* var←c22308 */ , 531458, (word) "PushStream");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+432)/* var←c22276 */ , 531714, (word) "PushCmd");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+424)/* var←c22244 */ , 531970, (word) "PushArray");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+416)/* var←c22212 */ , 532226, (word) "PushDict");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+408)/* var←c22180 */ , 532482, (word) "PushMark");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+400)/* var←c22148 */ , 67379457, (word) "Pop");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+368)/* var←c22020 */ , 67379713, (word) "PopBool");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+376)/* var←c22052 */ , 67379969, (word) "PopInt");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+360)/* var←c21988 */ , 67380225, (word) "PopReal");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+384)/* var←c22084 */ , 134489345, (word) "PopNum");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+352)/* var←c21956 */ , 67380737, (word) "PopAtom");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+344)/* var←c21924 */ , 67380993, (word) "PopRope");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+336)/* var←c21892 */ , 67381249, (word) "PopStream");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+328)/* var←c21860 */ , 67381505, (word) "PopCmd");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+320)/* var←c21828 */ , 67381761, (word) "PopArray");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+312)/* var←c21796 */ , 67382017, (word) "PopDict");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+304)/* var←c21764 */ , 67382273, (word) "PopMark");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+264)/* var←c21604 */ , 67382529, (word) "Top");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+256)/* var←c21572 */ , 67382785, (word) "TopType");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+296)/* var←c21732 */ , 536322, (word) "Copy");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+288)/* var←c21700 */ , 274433, (word) "Dup");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+280)/* var←c21668 */ , 798979, (word) "Roll");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+272)/* var←c21636 */ , 274945, (word) "Exch");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+208)/* var←c21380 */ , 275201, (word) "ClearStack");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+240)/* var←c21508 */ , 67384321, (word) "CountStack");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+248)/* var←c21540 */ , 67384577, (word) "StackIsEmpty");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+216)/* var←c21412 */ , 275969, (word) "ClearToMark");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+224)/* var←c21444 */ , 67385089, (word) "CountToMark");
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+232)/* var←c21476 */ , 67647490, (word) "Index");
   var←c24324 = (word) XR←ExportInterface((word) "TJaMPrivate", (word) XR←GetTypeIndexS((word) (&string36)), 2);
   (* (( (ptr) gf←c0278)+133)/* var←c24388 */  ) = var←c24324;
   (void) XR←ExportProcS(var←c24324, (word) (( (bPt) gf←c0278)+504)/* var←c22564 */ , 67371009, (word) "NewStack");
   }

static void TJaMStackImpl←P0(formal←c061, formal←c060)
   word formal←c061;
   word formal←c060;
   {
   register ptr gf←c24420 =  (ptr) &globalframe;
   /* TJaMStackImpl: */ 
SOURCE(53, 10322)
SOURCE(2117, 33)
   {
      word pd37;
      pd37 = (* (( (ptr) (* (( (ptr) gf←c24420)+130)/* var←c22628 */  ))+34) );
      (* (( (ptr) gf←c24420)+4)/* emptyRope←v2748 */  ) = (word) ( *( (fPt) ((*  (ptr) pd37 ))))(0, pd37);
      };
SOURCE(9671, 38)
   (* (( (ptr) gf←c24420)+5)/* defaultMark←v3868 */  ) = XR←NewObject(4, (* (( (ptr) gf←c24420)+7) ));
SOURCE(9917, 35)
   {
      word pd38;
      pd38 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd38 ))))((* (( (ptr) gf←c24420)+29) ), (word) (( (bPt) gf←c24420)+200)/* var←c21348 */ , 0, pd38)
      ;
      };
SOURCE(9954, 37)
   {
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd39 ))))((* (( (ptr) gf←c24420)+28) ), (word) (( (bPt) gf←c24420)+168)/* var←c21220 */ , 0, pd39)
      ;
      };
SOURCE(9993, 35)
   {
      word pd40;
      pd40 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd40 ))))((* (( (ptr) gf←c24420)+27) ), (word) (( (bPt) gf←c24420)+184)/* var←c21284 */ , 0, pd40)
      ;
      };
SOURCE(10030, 45)
   {
      word pd41;
      pd41 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd41 ))))((* (( (ptr) gf←c24420)+26) ), (word) (( (bPt) gf←c24420)+152)/* var←c21156 */ , 0, pd41)
      ;
      };
SOURCE(10077, 37)
   {
      word pd42;
      pd42 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd42 ))))((* (( (ptr) gf←c24420)+25) ), (word) (( (bPt) gf←c24420)+192)/* var←c21316 */ , 0, pd42)
      ;
      };
SOURCE(10116, 37)
   {
      word pd43;
      pd43 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd43 ))))((* (( (ptr) gf←c24420)+24) ), (word) (( (bPt) gf←c24420)+176)/* var←c21252 */ , 0, pd43)
      ;
      };
SOURCE(10155, 40)
   {
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd44 ))))((* (( (ptr) gf←c24420)+23) ), (word) (( (bPt) gf←c24420)+160)/* var←c21188 */ , 0, pd44)
      ;
      };
SOURCE(10197, 48)
   {
      word pd45;
      pd45 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd45 ))))((* (( (ptr) gf←c24420)+22) ), (word) (( (bPt) gf←c24420)+128)/* var←c21060 */ , 0, pd45)
      ;
      };
SOURCE(10247, 48)
   {
      word pd46;
      pd46 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd46 ))))((* (( (ptr) gf←c24420)+19) ), (word) (( (bPt) gf←c24420)+120)/* var←c21028 */ , 0, pd46)
      ;
      };
SOURCE(10297, 37)
   {
      word pd47;
      pd47 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd47 ))))((* (( (ptr) gf←c24420)+20) ), (word) (( (bPt) gf←c24420)+136)/* var←c21092 */ , 0, pd47)
      ;
      };
SOURCE(10336, 39)
   {
      word pd48;
      pd48 = (* (( (ptr) (* (( (ptr) gf←c24420)+131)/* var←c22692 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd48 ))))((* (( (ptr) gf←c24420)+21) ), (word) (( (bPt) gf←c24420)+144)/* var←c21124 */ , 0, pd48)
      ;
      };
   }

static word NewStack←P60(size←v4032)
   word size←v4032;
   {
   register ptr gf←c24452 =  (ptr) &globalframe;
   word var←c4076;
   word stack←v7564;
   /* NewStack: */ 
SOURCE(215, 132)
SOURCE(269, 34)
   {
      word var←c22724;
      word var←c22756;
      word var←c22788;
      var←c22724 = BCK(size←v4032, 22369621);
      var←c22756 = ((word) var←c22724 * 12);
      var←c22788 = XR←NewObject((12 + var←c22756), (* (( (ptr) gf←c24452)+18) ));
      (* (( (ptr) var←c22788)+2) ) = var←c22724;
      stack←v7564 = var←c22788;
      };
SOURCE(305, 27)
   (* (( (ptr) stack←v7564)+1) ) = 0;
   (*  (ptr) stack←v7564 ) = 0;
SOURCE(334, 13)
   return(stack←v7564);
   }

static void Push←P120(frame←v4136, val←v4164)
   word frame←v4136;
   word val←v4164;
   {
   register ptr gf←c24484 =  (ptr) &globalframe;
   word impl←v7608;
   word stack←v7636;
   /* Push: */ 
SOURCE(354, 405)
SOURCE(401, 28)
   impl←v7608 = (*  (ptr) frame←v4136 );
SOURCE(431, 25)
   stack←v7636 = (*  (ptr) impl←v7608 );
SOURCE(458, 143)
   if (((*  (ptr) stack←v7636 ) >= (* (( (ptr) stack←v7636)+2) ))) {
SOURCE(493, 108)
      {
         word array←v7680;
SOURCE(494, 36)
         {
            word pd49;
            pd49 = (* (( (ptr) (* (( (ptr) gf←c24484)+131)/* var←c22692 */  ))+61) );
            array←v7680 = (word) ( *( (fPt) ((*  (ptr) pd49 ))))((*  (ptr) (stack←v7636) ), pd49);
            };
SOURCE(532, 20)
         {
            word pd50;
            pd50 = (* (( (ptr) (* (( (ptr) gf←c24484)+131)/* var←c22692 */  ))+69) );
            (void) ( *( (fPt) ((*  (ptr) pd50 ))))(frame←v4136, array←v7680, pd50);
            };
SOURCE(554, 18)
         (void) Push←P120(frame←v4136, array←v7680);
SOURCE(574, 27)
         {
            word pd51;
            pd51 = (* (( (ptr) (* (( (ptr) gf←c24484)+131)/* var←c22692 */  ))+95) );
            (void) ( *( (fPt) ((*  (ptr) pd51 ))))(7, pd51);
            };
         };
      };
SOURCE(604, 41)
   if ((val←v4164 == 0)) {
SOURCE(620, 25)
      {
         word pd52;
         pd52 = (* (( (ptr) (* (( (ptr) gf←c24484)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd52 ))))(4, pd52);
         };
      };
SOURCE(647, 28)
   {
      word idx53;
      word limit54;
      (* (( (W3Pt) (( (ptr) stack←v7636)+3))+(
            idx53 = (*  (ptr) stack←v7636 ),
            limit54 = (* (( (ptr) stack←v7636)+2) ),
            BCK(idx53, limit54)
            )) ).f0 = val←v4164;
      };
SOURCE(677, 27)
   (*  (ptr) stack←v7636 ) = ((*  (ptr) stack←v7636 ) + 1);
SOURCE(706, 53)
   if (((*  (ptr) stack←v7636 ) > (* (( (ptr) stack←v7636)+1) ))) {
SOURCE(736, 23)
      (* (( (ptr) stack←v7636)+1) ) = (*  (ptr) stack←v7636 );
      };
   }

static void PushNum←P180(frame←v4224, val←v4252)
   word frame←v4224;
   W2 val←v4252;
   {
   register ptr gf←c24516 =  (ptr) &globalframe;
   word impl←v7724;
   word stack←v7752;
   /* PushNum: */ 
SOURCE(765, 422)
SOURCE(821, 28)
   impl←v7724 = (*  (ptr) frame←v4224 );
SOURCE(851, 25)
   stack←v7752 = (*  (ptr) impl←v7724 );
SOURCE(878, 143)
   if (((*  (ptr) stack←v7752 ) >= (* (( (ptr) stack←v7752)+2) ))) {
SOURCE(913, 108)
      {
         word array←v7796;
SOURCE(914, 36)
         {
            word pd55;
            pd55 = (* (( (ptr) (* (( (ptr) gf←c24516)+131)/* var←c22692 */  ))+61) );
            array←v7796 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((*  (ptr) (stack←v7752) ), pd55);
            };
SOURCE(952, 20)
         {
            word pd56;
            pd56 = (* (( (ptr) (* (( (ptr) gf←c24516)+131)/* var←c22692 */  ))+69) );
            (void) ( *( (fPt) ((*  (ptr) pd56 ))))(frame←v4224, array←v7796, pd56);
            };
SOURCE(974, 18)
         (void) Push←P120(frame←v4224, array←v7796);
SOURCE(994, 27)
         {
            word pd57;
            pd57 = (* (( (ptr) (* (( (ptr) gf←c24516)+131)/* var←c22692 */  ))+95) );
            (void) ( *( (fPt) ((*  (ptr) pd57 ))))(7, pd57);
            };
         };
      };
SOURCE(1024, 35)
   {
      word idx58;
      word limit59;
      if (((* (( (W3Pt) (( (ptr) stack←v7752)+3))+(
            idx58 = (*  (ptr) stack←v7752 ),
            limit59 = (* (( (ptr) stack←v7752)+2) ),
            BCK(idx58, limit59)
            )) ).f0 != 0)) {
SOURCE(1059, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
SOURCE(1073, 29)
SOURCE(1074, 28)
   {
      word idx60;
      word limit61;
      (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v7752)+3))+(
               idx60 = (*  (ptr) stack←v7752 ),
               limit61 = (* (( (ptr) stack←v7752)+2) ),
               BCK(idx60, limit61)
               )))+1) ) = val←v4252;
      };
SOURCE(1105, 27)
   (*  (ptr) stack←v7752 ) = ((*  (ptr) stack←v7752 ) + 1);
SOURCE(1134, 53)
   if (((*  (ptr) stack←v7752 ) > (* (( (ptr) stack←v7752)+1) ))) {
SOURCE(1164, 23)
      (* (( (ptr) stack←v7752)+1) ) = (*  (ptr) stack←v7752 );
      };
   }

static void PushInt←P240(frame←v4312, val←v4340)
   word frame←v4312;
   word val←v4340;
   {
   word impl←v7840;
   word stack←v7868;
   W2 num←v7896;
   /* PushInt: */ 
SOURCE(1193, 349)
SOURCE(1243, 28)
   impl←v7840 = (*  (ptr) frame←v4312 );
SOURCE(1273, 25)
   stack←v7868 = (*  (ptr) impl←v7840 );
SOURCE(1300, 27)
   num←v7896.f0 = 0;
   num←v7896.f1 = val←v4340;
SOURCE(1329, 213)
   {
      word tc62;
      word idx63;
      word limit64;
      if (((*  (ptr) stack←v7868 ) < (* (( (ptr) stack←v7868)+2) ))) {
         tc62 =  (word) ((* (( (W3Pt) (( (ptr) stack←v7868)+3))+(
               idx63 = (*  (ptr) stack←v7868 ),
               limit64 = (* (( (ptr) stack←v7868)+2) ),
               BCK(idx63, limit64)
               )) ).f0 == 0);
         }
      else {
         tc62 =  (word) 0;
         };
      if (tc62) {
SOURCE(1400, 29)
SOURCE(1401, 28)
         {
            word idx65;
            word limit66;
            (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v7868)+3))+(
                     idx65 = (*  (ptr) stack←v7868 ),
                     limit66 = (* (( (ptr) stack←v7868)+2) ),
                     BCK(idx65, limit66)
                     )))+1) ) = num←v7896;
            };
SOURCE(1432, 27)
         (*  (ptr) stack←v7868 ) = ((*  (ptr) stack←v7868 ) + 1);
SOURCE(1461, 53)
         if (((*  (ptr) stack←v7868 ) > (* (( (ptr) stack←v7868)+1) ))) {
SOURCE(1491, 23)
            (* (( (ptr) stack←v7868)+1) ) = (*  (ptr) stack←v7868 );
            };
         }
      else {
SOURCE(1523, 19)
         (void) PushNum←P180(frame←v4312, num←v7896);
         };
      };
   }

static void PushBool←P300(frame←v4400, val←v4428)
   word frame←v4400;
   word val←v4428;
   {
   /* PushBool: */ 
SOURCE(1548, 88)
SOURCE(1600, 36)
   (void) PushInt←P240(frame←v4400,  ( (0 != val←v4428) ? 1 : 0 ) );
   }

static void PushReal←P360(frame←v4488, val←v4516)
   word frame←v4488;
   word val←v4516;
   {
   word impl←v7940;
   word stack←v7968;
   W2 num←v7996;
   /* PushReal: */ 
SOURCE(1642, 352)
SOURCE(1694, 28)
   impl←v7940 = (*  (ptr) frame←v4488 );
SOURCE(1724, 25)
   stack←v7968 = (*  (ptr) impl←v7940 );
SOURCE(1751, 28)
   num←v7996.f0 = 1;
   num←v7996.f1 = val←v4516;
SOURCE(1781, 213)
   {
      word tc67;
      word idx68;
      word limit69;
      if (((*  (ptr) stack←v7968 ) < (* (( (ptr) stack←v7968)+2) ))) {
         tc67 =  (word) ((* (( (W3Pt) (( (ptr) stack←v7968)+3))+(
               idx68 = (*  (ptr) stack←v7968 ),
               limit69 = (* (( (ptr) stack←v7968)+2) ),
               BCK(idx68, limit69)
               )) ).f0 == 0);
         }
      else {
         tc67 =  (word) 0;
         };
      if (tc67) {
SOURCE(1852, 29)
SOURCE(1853, 28)
         {
            word idx70;
            word limit71;
            (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v7968)+3))+(
                     idx70 = (*  (ptr) stack←v7968 ),
                     limit71 = (* (( (ptr) stack←v7968)+2) ),
                     BCK(idx70, limit71)
                     )))+1) ) = num←v7996;
            };
SOURCE(1884, 27)
         (*  (ptr) stack←v7968 ) = ((*  (ptr) stack←v7968 ) + 1);
SOURCE(1913, 53)
         if (((*  (ptr) stack←v7968 ) > (* (( (ptr) stack←v7968)+1) ))) {
SOURCE(1943, 23)
            (* (( (ptr) stack←v7968)+1) ) = (*  (ptr) stack←v7968 );
            };
         }
      else {
SOURCE(1975, 19)
         (void) PushNum←P180(frame←v4488, num←v7996);
         };
      };
   }

static void PushAtom←P420(frame←v4576, val←v4604)
   word frame←v4576;
   word val←v4604;
   {
   register ptr gf←c24548 =  (ptr) &globalframe;
   /* PushAtom: */ 
SOURCE(2000, 111)
SOURCE(2052, 41)
   if ((val←v4604 == 0)) {
SOURCE(2068, 25)
      {
         word pd72;
         pd72 = (* (( (ptr) (* (( (ptr) gf←c24548)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd72 ))))(4, pd72);
         };
      };
SOURCE(2095, 16)
   (void) Push←P120(frame←v4576, val←v4604);
   }

static void PushRope←P480(frame←v4664, val←v4692)
   word frame←v4664;
   word val←v4692;
   {
   register ptr gf←c24580 =  (ptr) &globalframe;
   word rope←v8040;
   /* PushRope: */ 
SOURCE(2153, 148)
SOURCE(2205, 47)
   rope←v8040 =  ( (val←v4692 == 0) ? (* (( (ptr) gf←c24580)+4)/* emptyRope←v2748 */  ) : val←v4692 ) ;
SOURCE(2284, 17)
   (void) Push←P120(frame←v4664, rope←v8040);
   }

static void PushStream←P540(frame←v4752, val←v4780)
   word frame←v4752;
   word val←v4780;
   {
   register ptr gf←c24612 =  (ptr) &globalframe;
   /* PushStream: */ 
SOURCE(2307, 115)
SOURCE(2363, 41)
   if ((val←v4780 == 0)) {
SOURCE(2379, 25)
      {
         word pd73;
         pd73 = (* (( (ptr) (* (( (ptr) gf←c24612)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd73 ))))(4, pd73);
         };
      };
SOURCE(2406, 16)
   (void) Push←P120(frame←v4752, val←v4780);
   }

static void PushCmd←P600(frame←v4840, val←v4868)
   word frame←v4840;
   word val←v4868;
   {
   register ptr gf←c24644 =  (ptr) &globalframe;
   /* PushCmd: */ 
SOURCE(2428, 109)
SOURCE(2478, 41)
   if ((val←v4868 == 0)) {
SOURCE(2494, 25)
      {
         word pd74;
         pd74 = (* (( (ptr) (* (( (ptr) gf←c24644)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd74 ))))(4, pd74);
         };
      };
SOURCE(2521, 16)
   (void) Push←P120(frame←v4840, val←v4868);
   }

static void PushArray←P660(frame←v4928, val←v4956)
   word frame←v4928;
   word val←v4956;
   {
   register ptr gf←c24676 =  (ptr) &globalframe;
   /* PushArray: */ 
SOURCE(2543, 113)
SOURCE(2597, 41)
   if ((val←v4956 == 0)) {
SOURCE(2613, 25)
      {
         word pd75;
         pd75 = (* (( (ptr) (* (( (ptr) gf←c24676)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd75 ))))(4, pd75);
         };
      };
SOURCE(2640, 16)
   (void) Push←P120(frame←v4928, val←v4956);
   }

static void PushDict←P720(frame←v5016, val←v5044)
   word frame←v5016;
   word val←v5044;
   {
   register ptr gf←c24708 =  (ptr) &globalframe;
   /* PushDict: */ 
SOURCE(2662, 111)
SOURCE(2714, 41)
   if ((val←v5044 == 0)) {
SOURCE(2730, 25)
      {
         word pd76;
         pd76 = (* (( (ptr) (* (( (ptr) gf←c24708)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd76 ))))(4, pd76);
         };
      };
SOURCE(2757, 16)
   (void) Push←P120(frame←v5016, val←v5044);
   }

static void PushMark←P780(frame←v5104, val←v5132)
   word frame←v5104;
   word val←v5132;
   {
   register ptr gf←c24740 =  (ptr) &globalframe;
   /* PushMark: */ 
SOURCE(2779, 111)
SOURCE(2831, 41)
   if ((val←v5132 == 0)) {
SOURCE(2847, 25)
      {
         word pd77;
         pd77 = (* (( (ptr) (* (( (ptr) gf←c24740)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd77 ))))(4, pd77);
         };
      };
SOURCE(2874, 16)
   (void) Push←P120(frame←v5104, val←v5132);
   }

static word Pop←P840(frame←v5192)
   word frame←v5192;
   {
   register ptr gf←c24772 =  (ptr) &globalframe;
   word var←c5236;
   word impl←v8084;
   word stack←v8112;
   word ref←v8140 = 0;
   /* Pop: */ 
SOURCE(2897, 345)
SOURCE(2947, 28)
   impl←v8084 = (*  (ptr) frame←v5192 );
SOURCE(2977, 25)
   stack←v8112 = (*  (ptr) impl←v8084 );
SOURCE(3014, 54)
   if (((*  (ptr) stack←v8112 ) <= 0)) {
SOURCE(3040, 28)
      {
         word pd78;
         pd78 = (* (( (ptr) (* (( (ptr) gf←c24772)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd78 ))))(6, pd78);
         };
      };
SOURCE(3070, 27)
   {
      word idx79;
      (*  (ptr) stack←v8112 ) = (
         idx79 = (word) ((*  (ptr) stack←v8112 ) - 1),
         SGNCK(idx79)
         );
      };
SOURCE(3099, 28)
   {
      word idx80;
      word limit81;
      ref←v8140 = (* (( (W3Pt) (( (ptr) stack←v8112)+3))+(
            idx80 = (*  (ptr) stack←v8112 ),
            limit81 = (* (( (ptr) stack←v8112)+2) ),
            BCK(idx80, limit81)
            )) ).f0;
      };
SOURCE(3129, 113)
   if ((ref←v8140 == 0)) {
SOURCE(3145, 53)
      {
         word var←c22916;
         var←c22916 = XR←NewObject(8, (* (( (ptr) gf←c24772)+17) ));
         {
            word idx82;
            word limit83;
            (*  (W2Pt) var←c22916 ) = (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v8112)+3))+(
                     idx82 = (*  (ptr) stack←v8112 ),
                     limit83 = (* (( (ptr) stack←v8112)+2) ),
                     BCK(idx82, limit83)
                     )))+1) );
            };
         return(var←c22916);
         };
      }
   else {
SOURCE(3200, 28)
      {
         word idx84;
         word limit85;
         (* (( (W3Pt) (( (ptr) stack←v8112)+3))+(
               idx84 = (*  (ptr) stack←v8112 ),
               limit85 = (* (( (ptr) stack←v8112)+2) ),
               BCK(idx84, limit85)
               )) ).f0 = 0;
         };
SOURCE(3230, 12)
      return(ref←v8140);
      };
   }

static void Remove←P900(frame←v5296)
   word frame←v5296;
   {
   register ptr gf←c24804 =  (ptr) &globalframe;
   word impl←v8200;
   word stack←v8228;
   /* Remove: */ 
SOURCE(3249, 237)
SOURCE(3281, 28)
   impl←v8200 = (*  (ptr) frame←v5296 );
SOURCE(3311, 25)
   stack←v8228 = (*  (ptr) impl←v8200 );
SOURCE(3338, 54)
   if (((*  (ptr) stack←v8228 ) <= 0)) {
SOURCE(3364, 28)
      {
         word pd86;
         pd86 = (* (( (ptr) (* (( (ptr) gf←c24804)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd86 ))))(6, pd86);
         };
      };
SOURCE(3394, 27)
   {
      word idx87;
      (*  (ptr) stack←v8228 ) = (
         idx87 = (word) ((*  (ptr) stack←v8228 ) - 1),
         SGNCK(idx87)
         );
      };
SOURCE(3423, 63)
   {
      word idx88;
      word limit89;
      if (((* (( (W3Pt) (( (ptr) stack←v8228)+3))+(
            idx88 = (*  (ptr) stack←v8228 ),
            limit89 = (* (( (ptr) stack←v8228)+2) ),
            BCK(idx88, limit89)
            )) ).f0 != 0)) {
SOURCE(3458, 28)
         {
            word idx90;
            word limit91;
            (* (( (W3Pt) (( (ptr) stack←v8228)+3))+(
                  idx90 = (*  (ptr) stack←v8228 ),
                  limit91 = (* (( (ptr) stack←v8228)+2) ),
                  BCK(idx90, limit91)
                  )) ).f0 = 0;
            };
         };
      };
   }

static void PopNum←P960(formal←c0121, frame←v5356)
   word formal←c0121;
   word frame←v5356;
   {
   register ptr gf←c24836 =  (ptr) &globalframe;
   W2 var←c5400;
   word impl←v8272;
   word stack←v8300;
   word ref←v8328 = 0;
   /* PopNum: */ 
SOURCE(3492, 353)
SOURCE(3551, 28)
   impl←v8272 = (*  (ptr) frame←v5356 );
SOURCE(3581, 25)
   stack←v8300 = (*  (ptr) impl←v8272 );
SOURCE(3618, 54)
   if (((*  (ptr) stack←v8300 ) <= 0)) {
SOURCE(3644, 28)
      {
         word pd92;
         pd92 = (* (( (ptr) (* (( (ptr) gf←c24836)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd92 ))))(6, pd92);
         };
      };
SOURCE(3674, 27)
   {
      word idx93;
      (*  (ptr) stack←v8300 ) = (
         idx93 = (word) ((*  (ptr) stack←v8300 ) - 1),
         SGNCK(idx93)
         );
      };
SOURCE(3703, 28)
   {
      word idx94;
      word limit95;
      ref←v8328 = (* (( (W3Pt) (( (ptr) stack←v8300)+3))+(
            idx94 = (*  (ptr) stack←v8300 ),
            limit95 = (* (( (ptr) stack←v8300)+2) ),
            BCK(idx94, limit95)
            )) ).f0;
      };
SOURCE(3733, 112)
   if ((ref←v8328 == 0)) {
SOURCE(3749, 36)
      {
         W2 var←c22948;
         {
            word idx96;
            word limit97;
            var←c22948 = (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v8300)+3))+(
                     idx96 = (*  (ptr) stack←v8300 ),
                     limit97 = (* (( (ptr) stack←v8300)+2) ),
                     BCK(idx96, limit97)
                     )))+1) );
            };
         var←c5400 = var←c22948;
         /* removed tail goto */ 
         };
      }
   else {
SOURCE(3787, 28)
      {
         word idx98;
         word limit99;
         (* (( (W3Pt) (( (ptr) stack←v8300)+3))+(
               idx98 = (*  (ptr) stack←v8300 ),
               limit99 = (* (( (ptr) stack←v8300)+2) ),
               BCK(idx98, limit99)
               )) ).f0 = 0;
         };
SOURCE(3817, 28)
      {
         W2 var←c23012;
         {
            word pd100;
            pd100 = (* (( (ptr) (* (( (ptr) gf←c24836)+131)/* var←c22692 */  ))+13) );
            var←c23012 = (*  (W2Pt) ( *( (fPt) ((*  (ptr) pd100 ))))(ref←v8328, pd100) );
            };
         var←c5400 = var←c23012;
         /* removed tail goto */ 
         };
      };
   (*  (W2Pt) formal←c0121 ) = var←c5400;
   return;
   }

static word PopInt←P1020(frame←v5460)
   word frame←v5460;
   {
   register ptr gf←c24868 =  (ptr) &globalframe;
   word var←c5504;
   word impl←v8384;
   word stack←v8412;
   word ref←v8440 = 0;
   /* PopInt: */ 
SOURCE(3852, 433)
SOURCE(3905, 28)
   impl←v8384 = (*  (ptr) frame←v5460 );
SOURCE(3935, 25)
   stack←v8412 = (*  (ptr) impl←v8384 );
SOURCE(3972, 54)
   if (((*  (ptr) stack←v8412 ) <= 0)) {
SOURCE(3998, 28)
      {
         word pd101;
         pd101 = (* (( (ptr) (* (( (ptr) gf←c24868)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd101 ))))(6, pd101);
         };
      };
SOURCE(4028, 27)
   {
      word idx102;
      (*  (ptr) stack←v8412 ) = (
         idx102 = (word) ((*  (ptr) stack←v8412 ) - 1),
         SGNCK(idx102)
         );
      };
SOURCE(4057, 28)
   {
      word idx103;
      word limit104;
      ref←v8440 = (* (( (W3Pt) (( (ptr) stack←v8412)+3))+(
            idx103 = (*  (ptr) stack←v8412 ),
            limit104 = (* (( (ptr) stack←v8412)+2) ),
            BCK(idx103, limit104)
            )) ).f0;
      };
SOURCE(4087, 198)
   if ((ref←v8440 == 0)) {
SOURCE(4103, 119)
      {
         W2 n←v8496;
SOURCE(4105, 37)
         {
            word idx105;
            word limit106;
            n←v8496 = (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v8412)+3))+(
                     idx105 = (*  (ptr) stack←v8412 ),
                     limit106 = (* (( (ptr) stack←v8412)+2) ),
                     BCK(idx105, limit106)
                     )))+1) );
            };
SOURCE(4144, 76)
         {
            word var←c23044;
            var←c23044 = n←v8496.f0;
            if ((var←c23044 == 0)) {
SOURCE(4173, 13)
               return(n←v8496.f1);
               }
            else {
SOURCE(4199, 21)
               {
                  word pd107;
                  pd107 = (* (( (ptr) (* (( (ptr) gf←c24868)+131)/* var←c22692 */  ))+9) );
                  return((word) ( *( (fPt) ((*  (ptr) pd107 ))))(n←v8496, pd107));
                  };
               };
            };
         };
      }
   else {
SOURCE(4231, 28)
      {
         word idx108;
         word limit109;
         (* (( (W3Pt) (( (ptr) stack←v8412)+3))+(
               idx108 = (*  (ptr) stack←v8412 ),
               limit109 = (* (( (ptr) stack←v8412)+2) ),
               BCK(idx108, limit109)
               )) ).f0 = 0;
         };
SOURCE(4261, 24)
      {
         word pd110;
         pd110 = (* (( (ptr) (* (( (ptr) gf←c24868)+131)/* var←c22692 */  ))+11) );
         return((word) ( *( (fPt) ((*  (ptr) pd110 ))))(ref←v8440, pd110));
         };
      };
   }

static word PopBool←P1080(frame←v5564)
   word frame←v5564;
   {
   word var←c5608;
   /* PopBool: */ 
SOURCE(4292, 78)
SOURCE(4347, 23)
   return( (unsigned) ( (int)(word) PopInt←P1020(frame←v5564) !=  (int)0));
   }

static word PopReal←P1140(frame←v5668)
   word frame←v5668;
   {
   register ptr gf←c24900 =  (ptr) &globalframe;
   word var←c5712;
   word impl←v8540;
   word stack←v8568;
   word ref←v8596 = 0;
   /* PopReal: */ 
SOURCE(4376, 467)
SOURCE(4431, 28)
   impl←v8540 = (*  (ptr) frame←v5668 );
SOURCE(4461, 25)
   stack←v8568 = (*  (ptr) impl←v8540 );
SOURCE(4498, 54)
   if (((*  (ptr) stack←v8568 ) <= 0)) {
SOURCE(4524, 28)
      {
         word pd111;
         pd111 = (* (( (ptr) (* (( (ptr) gf←c24900)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd111 ))))(6, pd111);
         };
      };
SOURCE(4554, 27)
   {
      word idx112;
      (*  (ptr) stack←v8568 ) = (
         idx112 = (word) ((*  (ptr) stack←v8568 ) - 1),
         SGNCK(idx112)
         );
      };
SOURCE(4583, 28)
   {
      word idx113;
      word limit114;
      ref←v8596 = (* (( (W3Pt) (( (ptr) stack←v8568)+3))+(
            idx113 = (*  (ptr) stack←v8568 ),
            limit114 = (* (( (ptr) stack←v8568)+2) ),
            BCK(idx113, limit114)
            )) ).f0;
      };
SOURCE(4613, 230)
   if ((ref←v8596 == 0)) {
SOURCE(4629, 150)
      {
         W2 n←v8652;
SOURCE(4631, 37)
         {
            word idx115;
            word limit116;
            n←v8652 = (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v8568)+3))+(
                     idx115 = (*  (ptr) stack←v8568 ),
                     limit116 = (* (( (ptr) stack←v8568)+2) ),
                     BCK(idx115, limit116)
                     )))+1) );
            };
SOURCE(4670, 107)
         {
            word var←c23172;
            var←c23172 = n←v8652.f0;
            if ((var←c23172 == 0)) {
SOURCE(4699, 19)
               {
                  float tf117;
                  return((
                     tf117 = (float)(int)n←v8652.f1,  *(word*)&tf117
                     ));
                  };
               }
            else {
               if ((var←c23172 == 1)) {
SOURCE(4728, 14)
                  return(n←v8652.f1);
                  }
               else {
SOURCE(4755, 22)
                  {
                     word pd118;
                     pd118 = (* (( (ptr) (* (( (ptr) gf←c24900)+131)/* var←c22692 */  ))+10) );
                     return((word) ( *( (fPt) ((*  (ptr) pd118 ))))(n←v8652, pd118));
                     };
                  };
               };
            };
         };
      }
   else {
SOURCE(4788, 28)
      {
         word idx119;
         word limit120;
         (* (( (W3Pt) (( (ptr) stack←v8568)+3))+(
               idx119 = (*  (ptr) stack←v8568 ),
               limit120 = (* (( (ptr) stack←v8568)+2) ),
               BCK(idx119, limit120)
               )) ).f0 = 0;
         };
SOURCE(4818, 25)
      {
         word pd121;
         pd121 = (* (( (ptr) (* (( (ptr) gf←c24900)+131)/* var←c22692 */  ))+12) );
         return((word) ( *( (fPt) ((*  (ptr) pd121 ))))(ref←v8596, pd121));
         };
      };
   }

static word PopAtom←P1200(frame←v5772)
   word frame←v5772;
   {
   register ptr gf←c24932 =  (ptr) &globalframe;
   word var←c5816;
   word x←v8696;
   /* PopAtom: */ 
SOURCE(4851, 150)
SOURCE(4906, 19)
   x←v8696 = (word) Pop←P840(frame←v5772);
SOURCE(4927, 74)
   {
      word var←c23268;
      var←c23268 = x←v8696;
      if ((var←c23268 == 0)) {
         goto lab←L100001;
         };
      if (((* (( (ptr) gf←c24932)+16) ) == XR←GetReferentType(var←c23268))) {
         {
            word x←v8740;
            x←v8740 = var←c23268;
SOURCE(4957, 9)
            return(x←v8740);
            };
         }
      else {
         lab←L100001: ;
SOURCE(4979, 22)
         {
            word pd122;
            pd122 = (* (( (ptr) (* (( (ptr) gf←c24932)+131)/* var←c22692 */  ))+14) );
            return((word) ( *( (fPt) ((*  (ptr) pd122 ))))(x←v8696, pd122));
            };
         };
      };
   }

static word PopRope←P1260(frame←v5876)
   word frame←v5876;
   {
   register ptr gf←c24964 =  (ptr) &globalframe;
   word var←c5920;
   word x←v8784;
   /* PopRope: */ 
SOURCE(5007, 150)
SOURCE(5062, 19)
   x←v8784 = (word) Pop←P840(frame←v5876);
SOURCE(5083, 74)
   {
      word var←c23332;
      var←c23332 = x←v8784;
      if ((var←c23332 == 0)) {
         goto lab←L100002;
         };
      {
         word tc123;
         if (((* (( (ptr) gf←c24964)+9) ) == XR←GetReferentType(var←c23332))) {
            tc123 =  (word) ( (unsigned) (*(int*)var←c23332<0) == 0);
            }
         else {
            tc123 =  (word) 0;
            };
         if (tc123) {
            {
               word x←v8828;
               x←v8828 = var←c23332;
SOURCE(5113, 9)
               return(x←v8828);
               };
            }
         else {
            lab←L100002: ;
SOURCE(5135, 22)
            {
               word pd124;
               pd124 = (* (( (ptr) (* (( (ptr) gf←c24964)+131)/* var←c22692 */  ))+15) );
               return((word) ( *( (fPt) ((*  (ptr) pd124 ))))(x←v8784, pd124));
               };
            };
         };
      };
   }

static word PopStream←P1320(frame←v5980)
   word frame←v5980;
   {
   register ptr gf←c24996 =  (ptr) &globalframe;
   word var←c6024;
   word x←v8872;
   /* PopStream: */ 
SOURCE(5163, 158)
SOURCE(5222, 19)
   x←v8872 = (word) Pop←P840(frame←v5980);
SOURCE(5243, 78)
   {
      word var←c23396;
      var←c23396 = x←v8872;
      if ((var←c23396 == 0)) {
         goto lab←L100003;
         };
      if (((* (( (ptr) gf←c24996)+15) ) == XR←GetReferentType(var←c23396))) {
         {
            word x←v8916;
            x←v8916 = var←c23396;
SOURCE(5275, 9)
            return(x←v8916);
            };
         }
      else {
         lab←L100003: ;
SOURCE(5297, 24)
         {
            word pd125;
            pd125 = (* (( (ptr) (* (( (ptr) gf←c24996)+131)/* var←c22692 */  ))+16) );
            return((word) ( *( (fPt) ((*  (ptr) pd125 ))))(x←v8872, pd125));
            };
         };
      };
   }

static word PopCmd←P1380(frame←v6084)
   word frame←v6084;
   {
   register ptr gf←c25028 =  (ptr) &globalframe;
   word var←c6128;
   word x←v8960;
   /* PopCmd: */ 
SOURCE(5327, 146)
SOURCE(5380, 19)
   x←v8960 = (word) Pop←P840(frame←v6084);
SOURCE(5401, 72)
   {
      word var←c23460;
      var←c23460 = x←v8960;
      if ((var←c23460 == 0)) {
         goto lab←L100004;
         };
      if (((* (( (ptr) gf←c25028)+14) ) == XR←GetReferentType(var←c23460))) {
         {
            word x←v9004;
            x←v9004 = var←c23460;
SOURCE(5430, 9)
            return(x←v9004);
            };
         }
      else {
         lab←L100004: ;
SOURCE(5452, 21)
         {
            word pd126;
            pd126 = (* (( (ptr) (* (( (ptr) gf←c25028)+131)/* var←c22692 */  ))+17) );
            return((word) ( *( (fPt) ((*  (ptr) pd126 ))))(x←v8960, pd126));
            };
         };
      };
   }

static word PopArray←P1440(frame←v6188)
   word frame←v6188;
   {
   register ptr gf←c25060 =  (ptr) &globalframe;
   word var←c6232;
   word x←v9048;
   /* PopArray: */ 
SOURCE(5479, 154)
SOURCE(5536, 19)
   x←v9048 = (word) Pop←P840(frame←v6188);
SOURCE(5557, 76)
   {
      word var←c23524;
      var←c23524 = x←v9048;
      if ((var←c23524 == 0)) {
         goto lab←L100005;
         };
      if (((* (( (ptr) gf←c25060)+13) ) == XR←GetReferentType(var←c23524))) {
         {
            word x←v9092;
            x←v9092 = var←c23524;
SOURCE(5588, 9)
            return(x←v9092);
            };
         }
      else {
         lab←L100005: ;
SOURCE(5610, 23)
         {
            word pd127;
            pd127 = (* (( (ptr) (* (( (ptr) gf←c25060)+131)/* var←c22692 */  ))+18) );
            return((word) ( *( (fPt) ((*  (ptr) pd127 ))))(x←v9048, pd127));
            };
         };
      };
   }

static word PopDict←P1500(frame←v6292)
   word frame←v6292;
   {
   register ptr gf←c25092 =  (ptr) &globalframe;
   word var←c6336;
   word x←v9136;
   /* PopDict: */ 
SOURCE(5639, 150)
SOURCE(5694, 19)
   x←v9136 = (word) Pop←P840(frame←v6292);
SOURCE(5715, 74)
   {
      word var←c23588;
      var←c23588 = x←v9136;
      if ((var←c23588 == 0)) {
         goto lab←L100006;
         };
      if (((* (( (ptr) gf←c25092)+12) ) == XR←GetReferentType(var←c23588))) {
         {
            word x←v9180;
            x←v9180 = var←c23588;
SOURCE(5745, 9)
            return(x←v9180);
            };
         }
      else {
         lab←L100006: ;
SOURCE(5767, 22)
         {
            word pd128;
            pd128 = (* (( (ptr) (* (( (ptr) gf←c25092)+131)/* var←c22692 */  ))+19) );
            return((word) ( *( (fPt) ((*  (ptr) pd128 ))))(x←v9136, pd128));
            };
         };
      };
   }

static word PopMark←P1560(frame←v6396)
   word frame←v6396;
   {
   register ptr gf←c25124 =  (ptr) &globalframe;
   word var←c6440;
   word x←v9224;
   /* PopMark: */ 
SOURCE(5795, 150)
SOURCE(5850, 19)
   x←v9224 = (word) Pop←P840(frame←v6396);
SOURCE(5871, 74)
   {
      word var←c23652;
      var←c23652 = x←v9224;
      if ((var←c23652 == 0)) {
         goto lab←L100007;
         };
      if (((* (( (ptr) gf←c25124)+7) ) == XR←GetReferentType(var←c23652))) {
         {
            word x←v9268;
            x←v9268 = var←c23652;
SOURCE(5901, 9)
            return(x←v9268);
            };
         }
      else {
         lab←L100007: ;
SOURCE(5923, 22)
         {
            word pd129;
            pd129 = (* (( (ptr) (* (( (ptr) gf←c25124)+131)/* var←c22692 */  ))+20) );
            return((word) ( *( (fPt) ((*  (ptr) pd129 ))))(x←v9224, pd129));
            };
         };
      };
   }

static void Copy←P1620(frame←v6500, n←v6528)
   word frame←v6500;
   word n←v6528;
   {
   register ptr gf←c25156 =  (ptr) &globalframe;
   word impl←v9312;
   word stack←v9340;
   /* Copy: */ 
SOURCE(5952, 484)
SOURCE(5997, 28)
   impl←v9312 = (*  (ptr) frame←v6500 );
SOURCE(6027, 25)
   stack←v9340 = (*  (ptr) impl←v9312 );
SOURCE(6054, 37)
   if (( (int)n←v6528 <  (int)0)) {
SOURCE(6066, 25)
      {
         word pd130;
         pd130 = (* (( (ptr) (* (( (ptr) gf←c25156)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd130 ))))(4, pd130);
         };
      };
SOURCE(6093, 50)
   if (( (int)(*  (ptr) stack←v9340 ) <  (int)n←v6528)) {
SOURCE(6115, 28)
      {
         word pd131;
         pd131 = (* (( (ptr) (* (( (ptr) gf←c25156)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd131 ))))(6, pd131);
         };
      };
SOURCE(6145, 143)
   if (( (int)((* (( (ptr) stack←v9340)+2) ) - (*  (ptr) stack←v9340 )) <  (int)n←v6528)) {
SOURCE(6180, 108)
      {
         word array←v9384;
SOURCE(6181, 36)
         {
            word pd132;
            pd132 = (* (( (ptr) (* (( (ptr) gf←c25156)+131)/* var←c22692 */  ))+61) );
            array←v9384 = (word) ( *( (fPt) ((*  (ptr) pd132 ))))((*  (ptr) (stack←v9340) ), pd132);
            };
SOURCE(6219, 20)
         {
            word pd133;
            pd133 = (* (( (ptr) (* (( (ptr) gf←c25156)+131)/* var←c22692 */  ))+69) );
            (void) ( *( (fPt) ((*  (ptr) pd133 ))))(frame←v6500, array←v9384, pd133);
            };
SOURCE(6241, 18)
         (void) Push←P120(frame←v6500, array←v9384);
SOURCE(6261, 27)
         {
            word pd134;
            pd134 = (* (( (ptr) (* (( (ptr) gf←c25156)+131)/* var←c22692 */  ))+95) );
            (void) ( *( (fPt) ((*  (ptr) pd134 ))))(7, pd134);
            };
         };
      };
SOURCE(6291, 145)
   if (( (int)n←v6528 !=  (int)0)) {
SOURCE(6303, 135)
      {
         word k←v9428;
         word b←v9456;
SOURCE(6305, 10)
         k←v9428 = SGNCK(n←v6528);
SOURCE(6317, 22)
         b←v9456 = ((*  (ptr) stack←v9340 ) - k←v9428);
SOURCE(6341, 57)
         {
            register word i←v9500;
            register word noName←c23716;
            i←v9500 = b←v9456;
            noName←c23716 = (b←v9456 + k←v9428);
            if ((i←v9500 >= noName←c23716)) {
               goto lab←L100008;
               };
            lab←L100011: ;
SOURCE(6374, 24)
SOURCE(6376, 22)
            {
               word var←c23748;
               var←c23748 = (i←v9500 + k←v9428);
               {
                  word limit135;
                  word limit136;
                  (* (( (W3Pt) (( (ptr) stack←v9340)+3))+(
                        limit135 = (* (( (ptr) stack←v9340)+2) ),
                        BCK(var←c23748, limit135)
                        )) ) = (* (( (W3Pt) (( (ptr) stack←v9340)+3))+(
                        limit136 = (* (( (ptr) stack←v9340)+2) ),
                        BCK(i←v9500, limit136)
                        )) );
                  };
               };
            i←v9500 = (i←v9500 + 1);
            if ((i←v9500 < noName←c23716)) {
               goto lab←L100011;
               };
            lab←L100008: ;
            };
SOURCE(6409, 27)
         {
            word idx137;
            (*  (ptr) stack←v9340 ) = (
               idx137 = (word) ((*  (ptr) stack←v9340 ) + k←v9428),
               SGNCK(idx137)
               );
            };
         };
      };
   }

static void Dup←P1680(frame←v6588)
   word frame←v6588;
   {
   /* Dup: */ 
SOURCE(6445, 51)
SOURCE(6481, 15)
   (void) Copy←P1620(frame←v6588, 1);
   }

static void Roll←P1740(frame←v6648, n←v6676, k←v6704)
   word frame←v6648;
   word n←v6676;
   word k←v6704;
   {
   W7 var←c25188;
   register ptr gf←c25220 =  (ptr) &globalframe;
   /* declaration of var←c23780 skipped */ 
   word impl←v9544;
   /* declaration of stack←v9572 skipped */ 
   /* Roll: */ 
SOURCE(6500, 594)
   {
      word tmpAddr138;
      tmpAddr138 = (word) (( (ptr) &var←c25188)+4)/* var←c23780 */ ;
      (*  (ptr) tmpAddr138 ) = ( ((word)  (fPt) Reverse←P3720) );
      (* (( (ptr) tmpAddr138) + 1) ) = 1;
      };
SOURCE(6548, 28)
   impl←v9544 = (*  (ptr) frame←v6648 );
SOURCE(6578, 25)
   var←c25188.f6/* stack←v9572 */  = (*  (ptr) impl←v9544 );
SOURCE(6605, 19)
   if (( (int)k←v6704 <  (int)0)) {
SOURCE(6617, 7)
      k←v6704 = (n←v6676 + k←v6704);
      };
SOURCE(6626, 51)
   if ((( (int)n←v6676 <  (int)0) || ( (int)k←v6704 <  (int)0)) || ( (int)k←v6704 >  (int)n←v6676)) {
SOURCE(6652, 25)
      {
         word pd139;
         pd139 = (* (( (ptr) (* (( (ptr) gf←c25220)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd139 ))))(4, pd139);
         };
      };
SOURCE(6679, 50)
   if (( (int)(*  (ptr) var←c25188.f6/* stack←v9572 */  ) <  (int)n←v6676)) {
SOURCE(6701, 28)
      {
         word pd140;
         pd140 = (* (( (ptr) (* (( (ptr) gf←c25220)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd140 ))))(6, pd140);
         };
      };
SOURCE(6731, 363)
   if ((( (int)n←v6676 ==  (int)0) || ( (int)k←v6704 ==  (int)0)) || ( (int)k←v6704 ==  (int)n←v6676)) {
      }
   else {
SOURCE(6767, 329)
      {
         word b←v9616;
         word m←v9644;
SOURCE(6769, 22)
         b←v9616 = ((*  (ptr) var←c25188.f6/* stack←v9572 */  ) - n←v6676);
SOURCE(6793, 12)
         m←v9644 = (n←v6676 - k←v6704);
SOURCE(7043, 15)
         (void) Reverse←P3720(b←v9616, (b←v9616 + m←v9644), (word) (( (bPt) &var←c25188)+16)/* var←c23780 */ );
SOURCE(7060, 17)
         (void) Reverse←P3720((b←v9616 + m←v9644), (b←v9616 + n←v6676), (word) (( (bPt) &var←c25188)+16)/* var←c23780 */ );
SOURCE(7079, 15)
         (void) Reverse←P3720(b←v9616, (b←v9616 + n←v6676), (word) (( (bPt) &var←c25188)+16)/* var←c23780 */ );
         };
      };
   }

static void Reverse←P3720(bot←v9748, top←v9776, formal←c25252)
   word bot←v9748;
   word top←v9776;
   word formal←c25252;
   {
   formal←c25252 = (formal←c25252 - 16);
   /* Reverse: */ 
SOURCE(6807, 15)
SOURCE(6868, 160)
   {
      register word x←v9804 = 0;
      register word noName←c23812;
      noName←c23812 = ((word) SGNCK((top←v9776 - bot←v9748)) >> 1);
      if ((x←v9804 >= noName←c23812)) {
         goto lab←L100012;
         };
      lab←L100015: ;
      {
         word i←v9848;
         word j←v9876;
         W3 temp←v9904;
SOURCE(6904, 14)
         i←v9848 = (bot←v9748 + x←v9804);
SOURCE(6920, 16)
         j←v9876 = ((top←v9776 - 1) - x←v9804);
SOURCE(6938, 29)
         {
            word limit141;
            temp←v9904 = (* (( (W3Pt) (( (ptr) (* (( (ptr) formal←c25252)+6) ))+3))+(
                  limit141 = (* (( (ptr) (* (( (ptr) formal←c25252)+6) ))+2) ),
                  BCK(i←v9848, limit141)
                  )) );
            };
SOURCE(6977, 22)
SOURCE(6979, 20)
         {
            word limit142;
            word limit143;
            (* (( (W3Pt) (( (ptr) (* (( (ptr) formal←c25252)+6) ))+3))+(
                  limit142 = (* (( (ptr) (* (( (ptr) formal←c25252)+6) ))+2) ),
                  BCK(i←v9848, limit142)
                  )) ) = (* (( (W3Pt) (( (ptr) (* (( (ptr) formal←c25252)+6) ))+3))+(
                  limit143 = (* (( (ptr) (* (( (ptr) formal←c25252)+6) ))+2) ),
                  BCK(j←v9876, limit143)
                  )) );
            };
SOURCE(7010, 18)
SOURCE(7012, 16)
         {
            word limit144;
            (* (( (W3Pt) (( (ptr) (* (( (ptr) formal←c25252)+6) ))+3))+(
                  limit144 = (* (( (ptr) (* (( (ptr) formal←c25252)+6) ))+2) ),
                  BCK(j←v9876, limit144)
                  )) ) = temp←v9904;
            };
         };
      x←v9804 = (x←v9804 + 1);
      if ((x←v9804 < noName←c23812)) {
         goto lab←L100015;
         };
      lab←L100012: ;
      };
   }

static void Exch←P1800(frame←v6764)
   word frame←v6764;
   {
   /* Exch: */ 
SOURCE(7102, 55)
SOURCE(7139, 18)
   (void) Roll←P1740(frame←v6764, 2, 1);
   }

static word Top←P1860(frame←v6824)
   word frame←v6824;
   {
   register ptr gf←c25284 =  (ptr) &globalframe;
   word var←c6868;
   word impl←v9948;
   word stack←v9976;
   word ref←v10004 = 0;
   word var←c23844;
   /* Top: */ 
SOURCE(7162, 287)
SOURCE(7212, 28)
   impl←v9948 = (*  (ptr) frame←v6824 );
SOURCE(7242, 25)
   stack←v9976 = (*  (ptr) impl←v9948 );
SOURCE(7279, 54)
   if (((*  (ptr) stack←v9976 ) <= 0)) {
SOURCE(7305, 28)
      {
         word pd145;
         pd145 = (* (( (ptr) (* (( (ptr) gf←c25284)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd145 ))))(6, pd145);
         };
      };
SOURCE(7335, 30)
   {
      word limit146;
      var←c23844 = ((*  (ptr) stack←v9976 ) - 1);
      ref←v10004 = (* (( (W3Pt) (( (ptr) stack←v9976)+3))+(
            limit146 = (* (( (ptr) stack←v9976)+2) ),
            BCK(var←c23844, limit146)
            )) ).f0;
      };
SOURCE(7367, 82)
   if ((ref←v10004 == 0)) {
SOURCE(7383, 55)
      {
         word var←c23908;
         word var←c23940;
         var←c23908 = XR←NewObject(8, (* (( (ptr) gf←c25284)+17) ));
         {
            word limit147;
            var←c23940 = ((*  (ptr) stack←v9976 ) - 1);
            (*  (W2Pt) var←c23908 ) = (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v9976)+3))+(
                     limit147 = (* (( (ptr) stack←v9976)+2) ),
                     BCK(var←c23940, limit147)
                     )))+1) );
            };
         return(var←c23908);
         };
      }
   else {
SOURCE(7438, 11)
      return(ref←v10004);
      };
   }

static word TopType←P1920(frame←v6928)
   word frame←v6928;
   {
   register ptr gf←c25316 =  (ptr) &globalframe;
   word var←c6972;
   word impl←v10060;
   word stack←v10088;
   word ref←v10116 = 0;
   word var←c23972;
   /* TopType: */ 
SOURCE(7455, 267)
SOURCE(7514, 28)
   impl←v10060 = (*  (ptr) frame←v6928 );
SOURCE(7544, 25)
   stack←v10088 = (*  (ptr) impl←v10060 );
SOURCE(7581, 54)
   if (((*  (ptr) stack←v10088 ) <= 0)) {
SOURCE(7607, 28)
      {
         word pd148;
         pd148 = (* (( (ptr) (* (( (ptr) gf←c25316)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd148 ))))(6, pd148);
         };
      };
SOURCE(7637, 30)
   {
      word limit149;
      var←c23972 = ((*  (ptr) stack←v10088 ) - 1);
      ref←v10116 = (* (( (W3Pt) (( (ptr) stack←v10088)+3))+(
            limit149 = (* (( (ptr) stack←v10088)+2) ),
            BCK(var←c23972, limit149)
            )) ).f0;
      };
SOURCE(7669, 53)
   if ((ref←v10116 == 0)) {
SOURCE(7685, 20)
      return(1);
      }
   else {
SOURCE(7705, 17)
      {
         word pd150;
         pd150 = (* (( (ptr) (* (( (ptr) gf←c25316)+131)/* var←c22692 */  ))+7) );
         return((word) ( *( (fPt) ((*  (ptr) pd150 ))))(ref←v10116, pd150));
         };
      };
   }

static word StackIsEmpty←P1980(frame←v7032)
   word frame←v7032;
   {
   word var←c7076;
   word impl←v10172;
   word stack←v10200;
   /* StackIsEmpty: */ 
SOURCE(7728, 138)
SOURCE(7788, 28)
   impl←v10172 = (*  (ptr) frame←v7032 );
SOURCE(7818, 25)
   stack←v10200 = (*  (ptr) impl←v10172 );
SOURCE(7845, 21)
   return( (unsigned) ((*  (ptr) stack←v10200 ) == 0));
   }

static word CountStack←P2040(frame←v7136)
   word frame←v7136;
   {
   word var←c7180;
   word impl←v10244;
   word stack←v10272;
   /* CountStack: */ 
SOURCE(7872, 133)
SOURCE(7929, 28)
   impl←v10244 = (*  (ptr) frame←v7136 );
SOURCE(7959, 25)
   stack←v10272 = (*  (ptr) impl←v10244 );
SOURCE(7986, 19)
   return((*  (ptr) stack←v10272 ));
   }

static word Index←P2100(frame←v7240, i←v7268)
   word frame←v7240;
   word i←v7268;
   {
   register ptr gf←c25348 =  (ptr) &globalframe;
   word var←c7312;
   word impl←v10316;
   word stack←v10344;
   word k←v10372;
   word ref←v10400 = 0;
   /* Index: */ 
SOURCE(8011, 338)
SOURCE(8071, 28)
   impl←v10316 = (*  (ptr) frame←v7240 );
SOURCE(8101, 25)
   stack←v10344 = (*  (ptr) impl←v10316 );
SOURCE(8146, 37)
   if (( (int)i←v7268 <  (int)0)) {
SOURCE(8158, 25)
      {
         word pd151;
         pd151 = (* (( (ptr) (* (( (ptr) gf←c25348)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd151 ))))(4, pd151);
         };
      };
SOURCE(8185, 51)
   if (( (int)i←v7268 >=  (int)(*  (ptr) stack←v10344 ))) {
SOURCE(8208, 28)
      {
         word pd152;
         pd152 = (* (( (ptr) (* (( (ptr) gf←c25348)+131)/* var←c22692 */  ))+95) );
         (void) ( *( (fPt) ((*  (ptr) pd152 ))))(6, pd152);
         };
      };
SOURCE(8238, 19)
   {
      word idx153;
      k←v10372 = (
         idx153 = (word) (((*  (ptr) stack←v10344 ) - 1) - i←v7268),
         SGNCK(idx153)
         );
      };
SOURCE(8259, 18)
   {
      word limit154;
      ref←v10400 = (* (( (W3Pt) (( (ptr) stack←v10344)+3))+(
            limit154 = (* (( (ptr) stack←v10344)+2) ),
            BCK(k←v10372, limit154)
            )) ).f0;
      };
SOURCE(8279, 70)
   if ((ref←v10400 == 0)) {
SOURCE(8295, 43)
      {
         word var←c24068;
         var←c24068 = XR←NewObject(8, (* (( (ptr) gf←c25348)+17) ));
         {
            word limit155;
            (*  (W2Pt) var←c24068 ) = (*  (W2Pt) (( (ptr) (( (W3Pt) (( (ptr) stack←v10344)+3))+(
                     limit155 = (* (( (ptr) stack←v10344)+2) ),
                     BCK(k←v10372, limit155)
                     )))+1) );
            };
         return(var←c24068);
         };
      }
   else {
SOURCE(8338, 11)
      return(ref←v10400);
      };
   }

static word CountToMark←P2160(frame←v7372)
   word frame←v7372;
   {
   register ptr gf←c25380 =  (ptr) &globalframe;
   word var←c7416;
   word impl←v10456;
   word stack←v10484;
   /* CountToMark: */ 
SOURCE(8355, 264)
SOURCE(8413, 28)
   impl←v10456 = (*  (ptr) frame←v7372 );
SOURCE(8443, 25)
   stack←v10484 = (*  (ptr) impl←v10456 );
SOURCE(8470, 110)
   {
      register word i←v10528;
      i←v10528 = (*  (ptr) stack←v10484 );
      if ((0 >= i←v10528)) {
         goto lab←L100016;
         };
      i←v10528 = (i←v10528 - 1);
      lab←L100019: ;
SOURCE(8514, 66)
      {
         word var←c24100;
         {
            word limit156;
            var←c24100 = (* (( (W3Pt) (( (ptr) stack←v10484)+3))+(
                  limit156 = (* (( (ptr) stack←v10484)+2) ),
                  BCK(i←v10528, limit156)
                  )) ).f0;
            };
         if ((var←c24100 == 0)) {
            goto lab←L100020;
            };
         if (((* (( (ptr) gf←c25380)+7) ) == XR←GetReferentType(var←c24100))) {
            {
               word x←v10572;
               x←v10572 = var←c24100;
SOURCE(8555, 25)
               return(((*  (ptr) stack←v10484 ) - (i←v10528 + 1)));
               };
            }
         else {
            lab←L100020: ;
            };
         };
      if ((0 >= i←v10528)) {
         goto lab←L100016;
         };
      i←v10528 = (i←v10528 - 1);
      goto lab←L100019;
      lab←L100016: ;
      };
SOURCE(8600, 19)
   return((*  (ptr) stack←v10484 ));
   }

static void ClearToMark←P2220(frame←v7476)
   word frame←v7476;
   {
   register ptr gf←c25412 =  (ptr) &globalframe;
   word impl←v10616;
   word stack←v10644;
   /* ClearToMark: */ 
SOURCE(8625, 242)
SOURCE(8669, 28)
   impl←v10616 = (*  (ptr) frame←v7476 );
SOURCE(8699, 25)
   stack←v10644 = (*  (ptr) impl←v10616 );
SOURCE(8726, 141)
   lab←L100023: ;
   if (((*  (ptr) stack←v10644 ) > 0)) {
      }
   else {
      goto lab←L100021;
      };
   {
      word ref←v10688;
      word var←c24164;
SOURCE(8749, 49)
      {
         word limit158;
         {
            word idx157;
            var←c24164 = (
               idx157 = (word) ((*  (ptr) stack←v10644 ) - 1),
               SGNCK(idx157)
               );
            };
         (*  (ptr) stack←v10644 ) = var←c24164;
         ref←v10688 = (* (( (W3Pt) (( (ptr) stack←v10644)+3))+(
               limit158 = (* (( (ptr) stack←v10644)+2) ),
               BCK(var←c24164, limit158)
               )) ).f0;
         };
SOURCE(8800, 44)
      if ((ref←v10688 != 0)) {
SOURCE(8816, 28)
         {
            word idx159;
            word limit160;
            (* (( (W3Pt) (( (ptr) stack←v10644)+3))+(
                  idx159 = (*  (ptr) stack←v10644 ),
                  limit160 = (* (( (ptr) stack←v10644)+2) ),
                  BCK(idx159, limit160)
                  )) ).f0 = 0;
            };
         };
SOURCE(8846, 21)
      {
         word var←c24196;
         var←c24196 = ref←v10688;
         if ((var←c24196 == 0)) {
            goto lab←L100024;
            };
         if (((* (( (ptr) gf←c25412)+7) ) == XR←GetReferentType(var←c24196))) {
            {
               word x←v10744;
               x←v10744 = var←c24196;
SOURCE(8878, 4)
               goto lab←L100022;
               };
            }
         else {
            lab←L100024: ;
            };
         };
      };
   goto lab←L100023;
   lab←L100021: ;
   lab←L100022: ;
   }

static void ClearStack←P2280(frame←v7536)
   word frame←v7536;
   {
   word impl←v10788;
   word stack←v10816;
   /* ClearStack: */ 
SOURCE(8906, 218)
SOURCE(8949, 28)
   impl←v10788 = (*  (ptr) frame←v7536 );
SOURCE(8979, 25)
   stack←v10816 = (*  (ptr) impl←v10788 );
SOURCE(9006, 118)
   lab←L100027: ;
   if (((*  (ptr) stack←v10816 ) > 0)) {
      }
   else {
      goto lab←L100025;
      };
   {
      word ref←v10860;
      word var←c24260;
SOURCE(9029, 49)
      {
         word limit162;
         {
            word idx161;
            var←c24260 = (
               idx161 = (word) ((*  (ptr) stack←v10816 ) - 1),
               SGNCK(idx161)
               );
            };
         (*  (ptr) stack←v10816 ) = var←c24260;
         ref←v10860 = (* (( (W3Pt) (( (ptr) stack←v10816)+3))+(
               limit162 = (* (( (ptr) stack←v10816)+2) ),
               BCK(var←c24260, limit162)
               )) ).f0;
         };
SOURCE(9080, 44)
      if ((ref←v10860 != 0)) {
SOURCE(9096, 28)
         {
            word idx163;
            word limit164;
            (* (( (W3Pt) (( (ptr) stack←v10816)+3))+(
                  idx163 = (*  (ptr) stack←v10816 ),
                  limit164 = (* (( (ptr) stack←v10816)+2) ),
                  BCK(idx163, limit164)
                  )) ).f0 = 0;
            };
         };
      };
   goto lab←L100027;
   lab←L100025: ;
   }

static void ApplyPop←P2340(frame←v13236, cmd←v13264)
   word frame←v13236;
   word cmd←v13264;
   {
   /* ApplyPop: */ 
SOURCE(9140, 39)
SOURCE(9166, 13)
   (void) Remove←P900(frame←v13236);
   }

static void ApplyCopy←P2400(frame←v13324, cmd←v13352)
   word frame←v13324;
   word cmd←v13352;
   {
   word n←v10916;
   /* ApplyCopy: */ 
SOURCE(9185, 65)
SOURCE(9212, 22)
   n←v10916 = (word) PopInt←P1020(frame←v13324);
SOURCE(9236, 14)
   (void) Copy←P1620(frame←v13324, n←v10916);
   }

static void ApplyDup←P2460(frame←v13412, cmd←v13440)
   word frame←v13412;
   word cmd←v13440;
   {
   /* ApplyDup: */ 
SOURCE(9256, 40)
SOURCE(9282, 14)
   (void) Copy←P1620(frame←v13412, 1);
   }

static void ApplyRoll←P2520(frame←v13500, cmd←v13528)
   word frame←v13500;
   word cmd←v13528;
   {
   word k←v10960;
   word n←v10988;
   /* ApplyRoll: */ 
SOURCE(9302, 92)
SOURCE(9329, 22)
   k←v10960 = (word) PopInt←P1020(frame←v13500);
SOURCE(9353, 22)
   n←v10988 = (word) PopInt←P1020(frame←v13500);
SOURCE(9377, 17)
   (void) Roll←P1740(frame←v13500, n←v10988, k←v10960);
   }

static void ApplyExch←P2580(frame←v13588, cmd←v13616)
   word frame←v13588;
   word cmd←v13616;
   {
   /* ApplyExch: */ 
SOURCE(9400, 44)
SOURCE(9427, 17)
   (void) Roll←P1740(frame←v13588, 2, 1);
   }

static void ApplyCount←P2640(frame←v13676, cmd←v13704)
   word frame←v13676;
   word cmd←v13704;
   {
   word n←v11032;
   /* ApplyCount: */ 
SOURCE(9450, 73)
SOURCE(9478, 26)
   n←v11032 = (word) CountStack←P2040(frame←v13676);
SOURCE(9506, 17)
   (void) PushInt←P240(frame←v13676, n←v11032);
   }

static void ApplyClearStack←P2700(frame←v13764, cmd←v13792)
   word frame←v13764;
   word cmd←v13792;
   {
   /* ApplyClearStack: */ 
SOURCE(9529, 50)
SOURCE(9562, 17)
   (void) ClearStack←P2280(frame←v13764);
   }

static void ApplyIndex←P2760(frame←v13852, cmd←v13880)
   word frame←v13852;
   word cmd←v13880;
   {
   word i←v11076;
   /* ApplyIndex: */ 
SOURCE(9585, 80)
SOURCE(9613, 22)
   i←v11076 = (word) PopInt←P1020(frame←v13852);
SOURCE(9637, 28)
   {
      word var←c24292;
      var←c24292 = (word) Index←P2100(frame←v13852, i←v11076);
      (void) Push←P120(frame←v13852, var←c24292);
      };
   }

static void ApplyMark←P2820(frame←v13972, cmd←v14000)
   word frame←v13972;
   word cmd←v14000;
   {
   register ptr gf←c25444 =  (ptr) &globalframe;
   /* ApplyMark: */ 
SOURCE(9712, 55)
SOURCE(9739, 28)
   (void) PushMark←P780(frame←v13972, (* (( (ptr) gf←c25444)+5)/* defaultMark←v3868 */  ));
   }

static void ApplyCountToMark←P2880(frame←v14060, cmd←v14088)
   word frame←v14060;
   word cmd←v14088;
   {
   word n←v11120;
   /* ApplyCountToMark: */ 
SOURCE(9773, 80)
SOURCE(9807, 27)
   n←v11120 = (word) CountToMark←P2160(frame←v14060);
SOURCE(9836, 17)
   (void) PushInt←P240(frame←v14060, n←v11120);
   }

static void ApplyClearToMark←P2940(frame←v14148, cmd←v14176)
   word frame←v14148;
   word cmd←v14176;
   {
   /* ApplyClearToMark: */ 
SOURCE(9859, 52)
SOURCE(9893, 18)
   (void) ClearToMark←P2220(frame←v14148);
   }

/* file: TJaMStackImpl, module: TJaMStackImpl, compiled at: October 19, 1993 1:03:13 pm PDT */ 
extern void XR←install←TJaMStackImpl() {
   NoName←Q4116();
   }
extern void XR←run←TJaMStackImpl() { XR←Start(&globalframe); }