/* Generated from Cedar to C at: May 9, 1988 5:26:49 pm PDT */
/* from module "YggLogBasicImpl" */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#include <cedar/Basics.h>
static char versionStamp[] = "@(#)mob←version [2876622077,3964313475] YggLogBasicImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bytePtr;
typedef unsigned short half, *halfPtr;
typedef struct {word f0; word f1; word f2; word f3} BIT128;
typedef struct {BIT128 f; BIT128 r} BIT256;
typedef struct {BIT256 f; BIT256 r} BIT512;
typedef struct {BIT512 f; BIT512 r} BIT1024;
typedef struct {BIT1024 f; BIT1024 r} BIT2048;
typedef struct {BIT2048 f; BIT2048 r} BIT4096;
typedef struct {word f0; word f1} BIT64;
typedef struct {BIT128 f; BIT64 r} BIT192;
typedef struct {BIT256 f; BIT192 r} BIT448;
typedef struct {BIT512 f; BIT448 r} BIT960;
typedef struct {BIT4096 f; BIT960 r} BIT5056;
typedef word (*funcPtr)();
typedef BIT1024 *BIT1024Ptr;
typedef struct {word f0; word f1; word f2} BIT96;
typedef BIT96 *BIT96Ptr;
typedef BIT256 *BIT256Ptr;
typedef BIT64 *BIT64Ptr;
typedef BIT128 *BIT128Ptr;
typedef struct {BIT128 f; word r} BIT160;
typedef BIT160 *BIT160Ptr;
typedef struct {word proc; word link} ProcDescBody;
typedef BIT192 *BIT192Ptr;
#define SOURCE(p, l) /* source p, l */
#define SOURCEPOP(p, l, op, ol) /* source←pop op */
#define SGNCK(i) ((int) (word) (i) >= 0 ? i : XR←RaiseArithmeticFault())
#define IOP2(op, x, y)  ( (word) (((int) (word) (x)) op ((int) (word) (y))) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define IOP1(op, x)  ( (word) ( op ((int) (word) (x)) ) )
static void YggLogBasicImpl();
static struct {unsigned f; char r[20];} string1 = {1179668, "\205\210\242\000\003\257\300\253\165\304\375\300\354\112\237\203\100\202\000\000"};
static struct {unsigned f; char r[8];} string2 = {393222, "\010\000 \004\003\003\000\000"};
static struct {unsigned f; char r[16];} string3 = {786448, "\257\300\253\165\304\375\300\354\112\237\203\072\000\000\000\000"};
static struct {unsigned f; char r[16];} string4 = {917518, "\006\003\020\001\064\010\000\040\004\003\003\100\350\014\000\000"};
static struct {unsigned f; char r[16];} string5 = {786448, "\257\300\223\372\371\166\300\350\005\245\226\064\000\000\000\000"};
static struct {unsigned f; char r[16];} string6 = {786448, "\257\300\176\376\130\133\300\036\160\324\226\064\000\000\000\000"};
static struct {unsigned f; char r[16];} string7 = {786448, "\257\300\026\033\105\164\300\355\324\177\221\064\000\000\000\000"};
static struct {unsigned f; char r[16];} string8 = {786448, "\257\300\036\115\133\355\300\135\116\033\024\064\000\000\000\000"};
static struct {unsigned f; char r[16];} string9 = {786448, "\257\300\377\035\135\330\300\363\373\363\176\064\000\000\000\000"};
static struct {unsigned f; char r[16];} string10 = {786448, "\257\300\104\264\246\031\300\066\220\147\257\064\000\000\000\000"};
static struct {unsigned f; char r[16];} string11 = {786448, "\257\300\000\277\107\161\300\106\322\316\107\072\000\000\000\000"};
static struct {unsigned f; char r[16];} string12 = {786448, "\257\300\231\020\357\041\300\373\357\163\372\064\000\000\000\000"};
static void L0();
static void EstablishLogFile←150();
static word LogFileSize←180();
static word LogUsage←210();
static void AdvanceChunk←270();
static void ForceChunk←300();
static void ForceTo←330();
static void TailForceRequired←1200();
static void AwaitForce←1230();
static void OpenBasicForPut←360();
static void AssertNormalOperation←390();
static void CloseBasicForPut←420();
static void WordNumberFromRecordID←450();
static ProcDescBody descXenablex100046 = {0, 0};
static void enable←100046();
static void VerifyGet←480();
static void Release←510();
static word OpenPageStream←540();
static void ClosePageStream←570();
static void ReadAhead←600();
static void SavePageStreamPos←630();
static void ForgetSavedPageStreamPos←690();
static word AdvancePageStream←720();
static void SetPageStreamPosFromSavedPos←750();
static void OpenRecordStreamFromWord←780();
static void OpenRecordStreamFromCheckpoint←810();
static ProcDescBody descXenablex100074 = {0, 0};
static void enable←100074();
static word OpenRecordStream←840();
static void CurrentWordNumber←870();
static void CloseRecordStream←900();
static word VerifyCurrentRecordID←930();
static word CheckCurrentRecord←960();
static void GetCurrentRecord←990();
static void GetCurrentPageAndVersion←1020();
static void AdvanceRecordStream←1050();
static void LocateFirstRecord←1080();
static word LocateStartingPage←1110();
static void SkipAhead←1578();
static void Get←1140();
static void GetChunk←1608();
static void Verify←1698();
static word Ln9();
static BIT5056 globalframe;

static void YggLogBasicImpl()
   {
   register ptr gf←0454 =  (ptr) &globalframe;
   word var←16496;
   word var←16528;
   (* (( (ptr) gf←0454)+149) ) = ( ((word)  (funcPtr) L0) );
   (* (( (ptr) gf←0454)+147) ) = ( ((word)  (funcPtr) EstablishLogFile←150) );
   (* (( (ptr) gf←0454)+145) ) = ( ((word)  (funcPtr) LogFileSize←180) );
   (* (( (ptr) gf←0454)+143) ) = ( ((word)  (funcPtr) LogUsage←210) );
   (* (( (ptr) gf←0454)+141) ) = ( ((word)  (funcPtr) AdvanceChunk←270) );
   (* (( (ptr) gf←0454)+139) ) = ( ((word)  (funcPtr) ForceChunk←300) );
   (* (( (ptr) gf←0454)+137) ) = ( ((word)  (funcPtr) ForceTo←330) );
   (* (( (ptr) gf←0454)+135) ) = ( ((word)  (funcPtr) OpenBasicForPut←360) );
   (* (( (ptr) gf←0454)+133) ) = ( ((word)  (funcPtr) AssertNormalOperation←390) );
   (* (( (ptr) gf←0454)+131) ) = ( ((word)  (funcPtr) CloseBasicForPut←420) );
   (* (( (ptr) gf←0454)+129) ) = ( ((word)  (funcPtr) WordNumberFromRecordID←450) );
   (* (( (ptr) gf←0454)+127) ) = ( ((word)  (funcPtr) VerifyGet←480) );
   (* (( (ptr) gf←0454)+125) ) = ( ((word)  (funcPtr) Release←510) );
   (* (( (ptr) gf←0454)+123) ) = ( ((word)  (funcPtr) OpenPageStream←540) );
   (* (( (ptr) gf←0454)+121) ) = ( ((word)  (funcPtr) ClosePageStream←570) );
   (* (( (ptr) gf←0454)+119) ) = ( ((word)  (funcPtr) ReadAhead←600) );
   (* (( (ptr) gf←0454)+117) ) = ( ((word)  (funcPtr) SavePageStreamPos←630) );
   (* (( (ptr) gf←0454)+115) ) = ( ((word)  (funcPtr) ForgetSavedPageStreamPos←690) );
   (* (( (ptr) gf←0454)+113) ) = ( ((word)  (funcPtr) AdvancePageStream←720) );
   (* (( (ptr) gf←0454)+111) ) = ( ((word)  (funcPtr) SetPageStreamPosFromSavedPos←750) );
   (* (( (ptr) gf←0454)+109) ) = ( ((word)  (funcPtr) OpenRecordStreamFromWord←780) );
   (* (( (ptr) gf←0454)+107) ) = ( ((word)  (funcPtr) OpenRecordStreamFromCheckpoint←810) );
   (* (( (ptr) gf←0454)+105) ) = ( ((word)  (funcPtr) OpenRecordStream←840) );
   (* (( (ptr) gf←0454)+103) ) = ( ((word)  (funcPtr) CurrentWordNumber←870) );
   (* (( (ptr) gf←0454)+101) ) = ( ((word)  (funcPtr) CloseRecordStream←900) );
   (* (( (ptr) gf←0454)+99) ) = ( ((word)  (funcPtr) VerifyCurrentRecordID←930) );
   (* (( (ptr) gf←0454)+97) ) = ( ((word)  (funcPtr) CheckCurrentRecord←960) );
   (* (( (ptr) gf←0454)+95) ) = ( ((word)  (funcPtr) GetCurrentRecord←990) );
   (* (( (ptr) gf←0454)+93) ) = ( ((word)  (funcPtr) GetCurrentPageAndVersion←1020) );
   (* (( (ptr) gf←0454)+91) ) = ( ((word)  (funcPtr) AdvanceRecordStream←1050) );
   (* (( (ptr) gf←0454)+89) ) = ( ((word)  (funcPtr) LocateFirstRecord←1080) );
   (* (( (ptr) gf←0454)+87) ) = ( ((word)  (funcPtr) LocateStartingPage←1110) );
   (* (( (ptr) gf←0454)+85) ) = ( ((word)  (funcPtr) Get←1140) );
   (* (( (ptr) gf←0454)+76) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (void) XR←DeclareGlobalFrame((word) "YggLogBasicImpl\000", &globalframe, (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4), (word) (( (bytePtr) gf←0454)+596)/* var←14128 */ );
   var←16496 = (word) XR←ImportInterface((word) "Basics\000", (word) XR←GetTypeIndex((word) &string5, 0, 0), 62);
   (* (( (ptr) gf←0454)+156)/* var←15280 */  ) = var←16496;
   var←16496 = (word) XR←ImportInterface((word) "YggDummyProcess\000", (word) XR←GetTypeIndex((word) &string6, 0, 0), 19);
   (* (( (ptr) gf←0454)+155)/* var←14784 */  ) = var←16496;
   (void) XR←ImportProc(var←16496, 5, 0, 8);
   var←16496 = (word) XR←ImportInterface((word) "YggFile\000", (word) XR←GetTypeIndex((word) &string7, 0, 0), 8);
   (* (( (ptr) gf←0454)+151)/* var←14656 */  ) = var←16496;
   (void) XR←ImportProc(var←16496, 7, 12, 4);
   var←16496 = (word) XR←ImportInterface((word) "YggFilePageMgr\000", (word) XR←GetTypeIndex((word) &string8, 0, 0), 28);
   (* (( (ptr) gf←0454)+152)/* var←14672 */  ) = var←16496;
   (void) XR←ImportProc(var←16496, 5, 0, 12);
   (void) XR←ImportProc(var←16496, 4, 16, 12);
   (void) XR←ImportProc(var←16496, 7, 0, 16);
   (void) XR←ImportProc(var←16496, 9, 0, 16);
   (void) XR←ImportProc(var←16496, 6, 16, 12);
   (void) XR←ImportProc(var←16496, 8, 0, 24);
   (void) XR←ImportProc(var←16496, 15, 4, 4);
   var←16496 = (word) XR←ImportInterface((word) "YggLog\000", (word) XR←GetTypeIndex((word) &string9, 0, 0), 9);
   (* (( (ptr) gf←0454)+153)/* var←14704 */  ) = var←16496;
   var←16496 = (word) XR←ImportInterface((word) "ConstArith\000", (word) XR←GetTypeIndex((word) &string10, 0, 0), 15);
   (* (( (ptr) gf←0454)+154)/* var←14720 */  ) = var←16496;
   (void) XR←ImportProc(var←16496, 9, 12, 24);
   (void) XR←ImportProc(var←16496, 4, 4, 12);
   (void) XR←ImportProc(var←16496, 10, 24, 24);
   (void) XR←ImportProc(var←16496, 8, 12, 24);
   (void) XR←ImportProc(var←16496, 5, 4, 12);
   (void) XR←ImportProc(var←16496, 7, 12, 24);
   (void) XR←ImportProc(var←16496, 14, 4, 24);
   (void) XR←ImportProc(var←16496, 2, 12, 4);
   (void) XR←ImportProc(var←16496, 6, 12, 24);
   (void) XR←ImportProc(var←16496, 3, 12, 4);
   (void) XR←ImportProc(var←16496, 11, 12, 24);
   var←16528 = (word) XR←ExportInterface((word) "YggLogBasic\000", (word) XR←GetTypeIndex((word) &string11, 0, 0), 22);
   (* (( (ptr) gf←0454)+157)/* var←16512 */  ) = var←16528;
   (void) XR←ExportProc(var←16528, 0, (word) (( (bytePtr) gf←0454)+588)/* var←14112 */ , 0, 4);
   (void) XR←ExportProc(var←16528, 1, (word) (( (bytePtr) gf←0454)+580)/* var←14096 */ , 4, 0);
   (void) XR←ExportProc(var←16528, 2, (word) (( (bytePtr) gf←0454)+572)/* var←14080 */ , 4, 0);
   (void) XR←ExportProc(var←16528, 3, (word) (( (bytePtr) gf←0454)+356)/* var←13648 */ , 12, 0);
   (void) XR←ExportProc(var←16528, 4, (word) (( (bytePtr) gf←0454)+436)/* var←13808 */ , 16, 12);
   (void) XR←ExportProc(var←16528, 5, (word) (( (bytePtr) gf←0454)+428)/* var←13792 */ , 16, 36);
   (void) XR←ExportVar(var←16528, 6, (word) (( (bytePtr) gf←0454)+336));
   (void) XR←ExportProc(var←16528, 7, (word) (( (bytePtr) gf←0454)+388)/* var←13712 */ , 4, 0);
   (void) XR←ExportProc(var←16528, 8, (word) (( (bytePtr) gf←0454)+380)/* var←13696 */ , 8, 24);
   (void) XR←ExportProc(var←16528, 9, (word) (( (bytePtr) gf←0454)+372)/* var←13680 */ , 8, 0);
   (void) XR←ExportProc(var←16528, 10, (word) (( (bytePtr) gf←0454)+364)/* var←13664 */ , 20, 0);
   (void) XR←ExportProc(var←16528, 11, (word) (( (bytePtr) gf←0454)+404)/* var←13744 */ , 0, 0);
   (void) XR←ExportProc(var←16528, 13, (word) (( (bytePtr) gf←0454)+532)/* var←14000 */ , 0, 0);
   (void) XR←ExportProc(var←16528, 15, (word) (( (bytePtr) gf←0454)+516)/* var←13968 */ , 12, 12);
   (void) XR←ExportProc(var←16528, 19, (word) (( (bytePtr) gf←0454)+500)/* var←13936 */ , 0, 12);
   (void) XR←ExportProc(var←16528, 20, (word) (( (bytePtr) gf←0454)+340)/* var←13616 */ , 8, 24);
   var←16528 = (word) XR←ExportInterface((word) "YggLogBasicInternal\000", (word) XR←GetTypeIndex((word) &string12, 0, 0), 4);
   (* (( (ptr) gf←0454)+157)/* var←16512 */  ) = var←16528;
   (void) XR←ExportProc(var←16528, 0, (word) (( (bytePtr) gf←0454)+564)/* var←14064 */ , 12, 0);
   (void) XR←ExportProc(var←16528, 1, (word) (( (bytePtr) gf←0454)+548)/* var←14032 */ , 0, 12);
   (void) XR←ExportProc(var←16528, 2, (word) (( (bytePtr) gf←0454)+540)/* var←14016 */ , 8, 20);
   (void) XR←ExportProc(var←16528, 3, (word) (( (bytePtr) gf←0454)+524)/* var←13984 */ , 0, 0);
   };

static void L0(formal←061, formal←058)
   word formal←061;
   word formal←058;
   {
   register word lf←0555;
   register ptr gf←0455 =  (ptr) &globalframe;
   lf←0555 = XR←ExtensionAlloc(36);
   XR←PushHandler(lf←0555, 0);
   /* YggLogBasicImpl */ 
SOURCE(170, 22341);
SOURCE(916, 37);
   (* (( (ptr) gf←0455)+8)/* logFileHandle←1654 */  ) = 0;
SOURCEPOP(916, 37, 170, 22341);
SOURCE(2450, 50);
   {
      /* declaration of var←14640 skipped */ 
      {
         BIT256 var←0499;
         {
            BIT256 var←14624;
            (*  (ptr) &var←14624 ) = 0;
            (* (( (ptr) &var←14624)+1) ) = 0;
            (* (( (ptr) &var←14624)+2) ) = 0;
            (* (( (ptr) &var←14624)+3) ) = 0;
            (* (( (ptr) &var←14624)+4) ) = 1;
            (* (( (ptr) &var←14624)+5) ) = 0;
            (* (( (ptr) &var←14624)+6) ) = 0;
            (* (( (ptr) &var←14624)+7) ) = 0;
            var←0499 = var←14624;
            };
         {
            BIT1024 allTemplate;
            XR←FillLongWords( &allTemplate, &var←0499, 8, 4);
            (*  (BIT1024Ptr) (( (ptr) lf←0555)+4)/* var←14640 */  ) = allTemplate;
            };
         };
      XR←AssignRefCompositeInit((word) (( (bytePtr) gf←0455)+52)/* chunkTable←1850 */ , (word) (( (bytePtr) lf←0555)+16)/* var←14640 */ , (* (( (ptr) gf←0455)+76) ), 32);
      };
SOURCEPOP(2450, 50, 170, 22341);
SOURCE(2525, 21);
   (* (( (ptr) gf←0455)+46) ) = 0;
   (* (( (ptr) gf←0455)+47) ) = 0;
   (* (( (ptr) gf←0455)+48) ) = 0;
   (* (( (ptr) gf←0455)+49) ) = 0;
   (* (( (ptr) gf←0455)+50) ) = 0;
   (* (( (ptr) gf←0455)+51) ) = 0;
SOURCEPOP(2525, 21, 170, 22341);
SOURCE(8375, 28);
   (* (( (ptr) gf←0455)+63) ) = 1;
SOURCEPOP(8375, 28, 170, 22341);
   XR←PopHandler();
   lf←0555 = XR←ExtensionFree(lf←0555);
   };

static void EstablishLogFile←150(logFile←2756)
   word logFile←2756;
   {
   register word lf←0556;
   register ptr gf←0456 =  (ptr) &globalframe;
   lf←0556 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0556, 0);
   /* EstablishLogFile */ 
SOURCE(1451, 264);
SOURCE(1516, 58);
   {
      word var←0500;
      {
         /* declaration of var←063 skipped */ 
         {
            word pd;
            pd = (* (( (ptr) (* (( (ptr) gf←0456)+151)/* var←14656 */  ))+11) );
            (void) ( *( (funcPtr) ((*  (ptr) pd ))))((word) (( (bytePtr) lf←0556)+16)/* var←063 */ , logFile←2756, pd);
            };
         var←0500 = (* (( (ptr) lf←0556)+4) );
         };
      XR←AssignRef((word) (( (bytePtr) gf←0456)+32)/* logFileHandle←1654 */ , var←0500);
      };
SOURCEPOP(1516, 58, 1451, 264);
SOURCE(1576, 51);
   {
      word pd13;
      pd13 = (* (( (ptr) (* (( (ptr) gf←0456)+152)/* var←14672 */  ))+19) );
      (* (( (ptr) gf←0456)+9)/* logFileSize←1668 */  ) = (word) ( *( (funcPtr) ((*  (ptr) pd13 ))))((* ((( (ptr) gf←0456)+8)/* logFileHandle←1654 */ ) ), pd13);
      };
SOURCEPOP(1576, 51, 1451, 264);
SOURCE(1629, 86);
   {
      BIT96 var←14688;
      word pages←13562;
      word deviceCharacteristics←13576;
SOURCE(859, 0);
      pages←13562 = (* (( (ptr) gf←0456)+9)/* logFileSize←1668 */  );
SOURCEPOP(859, 0, 1629, 86);
SOURCE(859, 0);
      deviceCharacteristics←13576 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0456)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(859, 0, 1629, 86);
      {
         /* declaration of var←067 skipped */ 
         {
            BIT96 var←0501;
            BIT96 var←0502;
            {
               /* declaration of var←068 skipped */ 
               {
                  word pd14;
                  pd14 = (* (( (ptr) (* (( (ptr) gf←0456)+154)/* var←14720 */  ))+7) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd14 ))))((word) (( (bytePtr) lf←0556)+28)/* var←068 */ , pages←13562, pd14);
                  };
               var←0501 = (*  (BIT96Ptr) (( (ptr) lf←0556)+7)/* var←068 */  );
               };
            {
               /* declaration of var←069 skipped */ 
               {
                  word pd15;
                  word ctmp;
                  pd15 = (* (( (ptr) (* (( (ptr) gf←0456)+154)/* var←14720 */  ))+7) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd15 ))))((word) (( (bytePtr) lf←0556)+28)/* var←069 */ , (
                        ctmp =  (unsigned) (*  (ptr) deviceCharacteristics←13576 ),
                        SGNCK(ctmp)
                        ), pd15);
                  };
               var←0502 = (*  (BIT96Ptr) (( (ptr) lf←0556)+7)/* var←069 */  );
               };
            {
               word pd16;
               pd16 = (* (( (ptr) (* (( (ptr) gf←0456)+154)/* var←14720 */  ))+15) );
               (void) ( *( (funcPtr) ((*  (ptr) pd16 ))))((word) (( (bytePtr) lf←0556)+16)/* var←067 */ , var←0501, var←0502, pd16);
               };
            };
         var←14688 = (*  (BIT96Ptr) (( (ptr) lf←0556)+4)/* var←067 */  );
         };
      goto lab←100000;
      lab←100000: ;
      (*  (BIT96Ptr) (( (ptr) gf←0456)+10)/* logFileLength←1682 */  ) = var←14688;
      };
SOURCEPOP(1629, 86, 1451, 264);
   XR←PopHandler();
   lf←0556 = XR←ExtensionFree(lf←0556);
   };

static word LogFileSize←180()
   {
   register ptr gf←0457 =  (ptr) &globalframe;
   /* LogFileSize */ 
SOURCE(1721, 71);
   /* removed dead decl of 2786 */ 
SOURCE(1773, 19);
   return((* (( (ptr) gf←0457)+9)/* logFileSize←1668 */  ));
SOURCEPOP(1773, 19, 1721, 71);
   };

static word LogUsage←210()
   {
   register ptr gf←0458 =  (ptr) &globalframe;
   word nPages←4290;
   /* LogUsage */ 
SOURCE(1798, 227);
   /* removed dead decl of 2816 */ 
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0458)+16)/* LOCK←1472 */ ));
SOURCE(1853, 11);
SOURCEPOP(1853, 11, 1798, 227);
SOURCE(1866, 159);
   {
      word var←14752;
      word var←0504;
      {
         word var←0503;
         {
            word var←14736;
            word p←12490;
            BIT64 pr←12506;
SOURCE(1172, 138);
SOURCEPOP(1172, 138, 1866, 159);
SOURCE(1172, 138);
            pr←12506 = (*  (BIT64Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0458)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0458)+45)/* tail←1864 */  )))+1) );
SOURCEPOP(1172, 138, 1866, 159);
SOURCE(1241, 25);
            p←12490 = IOP2( + , pr←12506.f0, pr←12506.f1);
SOURCEPOP(1241, 25, 1866, 159);
SOURCE(1268, 42);
            if ((p←12490 == (* (( (ptr) gf←0458)+9)/* logFileSize←1668 */  ))) {
               var←14736 = 0;
               }
            else {
               var←14736 = p←12490;
               };
            goto lab←100001;
SOURCEPOP(1268, 42, 1866, 159);
            lab←100001: ;
            var←0503 = var←14736;
            };
         var←0504 = (
            nPages←4290 = IOP2( - , var←0503, (* (( (ptr) gf←0458)+56)/* oldestFilePage←1920 */  ))
            );
         };
      if (IOP2( >= , var←0504, 0)) {
         var←14752 = IOP2( + , nPages←4290, 100);
         }
      else {
         var←14752 = IOP2( + , IOP2( + , nPages←4290, (* (( (ptr) gf←0458)+9)/* logFileSize←1668 */  )), 100);
         };
      (void) (XR←MonitorExit((word) (( (bytePtr) gf←0458)+16)/* LOCK←1472 */ ));
      return(var←14752);
      };
SOURCEPOP(1866, 159, 1798, 227);
   };

static void AdvanceChunk←270(formal←0115)
   word formal←0115;
   {
   register word lf←0557;
   register ptr gf←0459 =  (ptr) &globalframe;
   word var←14848;
   word version←2966;
   word pagesInChunk←2980;
   word firstPagePtr←2994;
   word newTail←4312;
   word nextPage←4326;
   BIT64 runForNextPage←4340;
   word biasedOldestFilePage←4354;
   lf←0557 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0557, 0);
   /* AdvanceChunk */ 
SOURCE(2696, 1565);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0459)+16)/* LOCK←1472 */ ));
SOURCE(2825, 24);
SOURCEPOP(2825, 24, 2696, 1565);
SOURCE(2851, 20);
SOURCEPOP(2851, 20, 2696, 1565);
SOURCE(2873, 23);
   {
      BIT64 var←14768;
      var←14768.f1 = 1;
      var←14768.f0 = 0;
      runForNextPage←4340 = var←14768;
      };
SOURCEPOP(2873, 23, 2696, 1565);
SOURCE(2898, 32);
SOURCEPOP(2898, 32, 2696, 1565);
SOURCE(2934, 39);
   (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0459)+45)/* tail←1864 */  )))+7) ) = 1;
SOURCEPOP(2934, 39, 2696, 1565);
SOURCE(2983, 55);
SOURCE(2984, 52);
   {
      /* declaration of var←087 skipped */ 
      word var←086;
      var←086 = XR←ExtensionAlloc(5);
      (*  (ptr) (word) var←086 ) = (word) ( ((word)  (funcPtr) Ln9) );
      (* (( (ptr) (word) var←086) + 1) ) = (word) 0;
      (* (( (ptr) (word) var←086) + 2) ) = (word) (( (bytePtr) gf←0459)+556)/* var←14048 */ ;
      (* (( (ptr) (word) var←086) + 3) ) = (word) 0;
      (* (( (ptr) (word) var←086) + 4) ) = (* (( (ptr) gf←0459)+45)/* tail←1864 */  );
      (void) XR←Fork((word) (( (bytePtr) lf←0557)+16)/* var←087 */ , var←086);
      {
         word pd17;
         pd17 = (* (( (ptr) (* (( (ptr) gf←0459)+155)/* var←14784 */  ))+9) );
         (void) ( *( (funcPtr) ((*  (ptr) pd17 ))))((*  (BIT64Ptr) ((( (ptr) lf←0557)+4)/* var←087 */ ) ), pd17);
         };
      };
SOURCEPOP(2984, 52, 2983, 55);
SOURCEPOP(2983, 55, 2696, 1565);
SOURCE(3042, 109);
   lab←100002: ;
SOURCE(3045, 35);
   if (((* (( (ptr) gf←0459)+45)/* tail←1864 */  ) == 3)) {
      newTail←4312 = 0;
      }
   else {
      newTail←4312 = ((* (( (ptr) gf←0459)+45)/* tail←1864 */  ) + 1);
      };
SOURCEPOP(3045, 35, 3042, 109);
SOURCE(3082, 48);
   if ((0 == (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+newTail←4312))+7) ))) {
SOURCE(3130, 4);
      goto lab←100005;
SOURCEPOP(3130, 4, 3082, 48);
      };
SOURCEPOP(3082, 48, 3042, 109);
SOURCE(3136, 15);
   (void) (XR←Wait((word) (( (bytePtr) gf←0459)+16)/* LOCK←1472 */ , (word) (( (bytePtr) gf←0459)+184)/* completion←1878 */ ));
SOURCEPOP(3136, 15, 3042, 109);
   goto lab←100002;
   lab←100005: ;
SOURCEPOP(3042, 109, 2696, 1565);
SOURCE(3163, 56);
   {
      word var←14800;
      word p←12450;
      BIT64 pr←12466;
SOURCE(1172, 138);
SOURCEPOP(1172, 138, 3163, 56);
SOURCE(1172, 138);
      pr←12466 = (*  (BIT64Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0459)+45)/* tail←1864 */  )))+1) );
SOURCEPOP(1172, 138, 3163, 56);
SOURCE(1241, 25);
      p←12450 = IOP2( + , pr←12466.f0, pr←12466.f1);
SOURCEPOP(1241, 25, 3163, 56);
SOURCE(1268, 42);
      if ((p←12450 == (* (( (ptr) gf←0459)+9)/* logFileSize←1668 */  ))) {
         var←14800 = 0;
         }
      else {
         var←14800 = p←12450;
         };
      goto lab←100007;
SOURCEPOP(1268, 42, 3163, 56);
      lab←100007: ;
      nextPage←4326 = var←14800;
      };
SOURCEPOP(3163, 56, 2696, 1565);
SOURCE(3221, 46);
   {
      BIT64 var←14816;
      BIT64 pr←12266;
SOURCE(1028, 140);
SOURCEPOP(1028, 140, 3221, 46);
SOURCE(1028, 140);
      pr←12266.f1 = 1;
      pr←12266.f0 = 0;
SOURCEPOP(1028, 140, 3221, 46);
SOURCE(1103, 65);
      {
         BIT64 var←14832;
         var←14832.f0 = nextPage←4326;
         {
            word x;
            var←14832.f1 = (x = IOP2( - , (* (( (ptr) gf←0459)+9)/* logFileSize←1668 */  ), nextPage←4326),
               MIN((int)(word), x, 4));
            };
         var←14816 = var←14832;
         };
      goto lab←100008;
SOURCEPOP(1103, 65, 3221, 46);
      lab←100008: ;
      runForNextPage←4340 = var←14816;
      };
SOURCEPOP(3221, 46, 2696, 1565);
SOURCE(3269, 52);
   biasedOldestFilePage←4354 = IOP2( - , (* (( (ptr) gf←0459)+56)/* oldestFilePage←1920 */  ), 100);
SOURCEPOP(3269, 52, 2696, 1565);
SOURCE(3323, 90);
   if (IOP2( < , biasedOldestFilePage←4354, 0)) {
SOURCE(3356, 57);
      biasedOldestFilePage←4354 = IOP2( + , biasedOldestFilePage←4354, (* (( (ptr) gf←0459)+9)/* logFileSize←1668 */  ));
SOURCEPOP(3356, 57, 3323, 90);
      };
SOURCEPOP(3323, 90, 2696, 1565);
SOURCE(3415, 182);
   if ( ( (0 != (* (( (ptr) gf←0459)+57)/* enforceBufferPages←1934 */  )) ?  ( (IOP2( >= , biasedOldestFilePage←4354, runForNextPage←4340.f0)) ? IOP2( < , biasedOldestFilePage←4354, IOP2( + , runForNextPage←4340.f0, runForNextPage←4340.f1)) : 0 )  : 0 )  ||  ( (IOP2( >= , (* (( (ptr) gf←0459)+56)/* oldestFilePage←1920 */  ), runForNextPage←4340.f0)) ? IOP2( < , (* (( (ptr) gf←0459)+56)/* oldestFilePage←1920 */  ), IOP2( + , runForNextPage←4340.f0, runForNextPage←4340.f1)) : 0 ) ) {
SOURCE(3560, 37);
      var←14848 = (* (( (ptr) (* (( (ptr) gf←0459)+153)/* var←14704 */  ))+10) );
      (void) (XR←MonitorExit((word) (( (bytePtr) gf←0459)+16)/* LOCK←1472 */ ));
      goto lab←100009;
SOURCEPOP(3560, 37, 3415, 182);
      };
SOURCEPOP(3415, 182, 2696, 1565);
SOURCE(3600, 149);
   if (((*  (ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+newTail←4312) ) != 0)) {
SOURCE(3646, 103);
      {
         word pd18;
         pd18 = (* (( (ptr) (* (( (ptr) gf←0459)+152)/* var←14672 */  ))+12) );
         (void) ( *( (funcPtr) ((*  (ptr) pd18 ))))((*  (BIT128Ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+newTail←4312) ), 4, 1, pd18);
         };
SOURCEPOP(3646, 103, 3600, 149);
      };
SOURCEPOP(3600, 149, 2696, 1565);
SOURCE(3752, 48);
   if ((nextPage←4326 == 0)) {
SOURCE(3773, 27);
      {
         word idx;
         (* (( (ptr) gf←0459)+52)/* curVersion←1892 */  ) = (
            idx = (word) IOP2( - , 1, (* (( (ptr) gf←0459)+52)/* curVersion←1892 */  )),
            BCK(idx, 2)
            );
         };
SOURCEPOP(3773, 27, 3752, 48);
      };
SOURCEPOP(3752, 48, 2696, 1565);
SOURCE(3802, 14);
   (* (( (ptr) gf←0459)+45)/* tail←1864 */  ) = newTail←4312;
SOURCEPOP(3802, 14, 2696, 1565);
SOURCE(3818, 43);
   (*  (BIT96Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0459)+45)/* tail←1864 */  )))+4) ) = (*  (BIT96Ptr) (( (ptr) gf←0459)+53)/* nextTailChunkID←1906 */  );
SOURCEPOP(3818, 43, 2696, 1565);
SOURCE(3863, 104);
   {
      BIT128 var←14864;
      {
         /* declaration of var←098 skipped */ 
         {
            word pd19;
            pd19 = (* (( (ptr) (* (( (ptr) gf←0459)+152)/* var←14672 */  ))+10) );
            (void) ( *( (funcPtr) ((*  (ptr) pd19 ))))((word) (( (bytePtr) lf←0557)+16)/* var←098 */ , (* (( (ptr) gf←0459)+8)/* logFileHandle←1654 */  ), runForNextPage←4340, pd19);
            };
         var←14864 = (*  (BIT128Ptr) (( (ptr) lf←0557)+4)/* var←098 */  );
         };
      (*  (BIT96Ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0459)+45)/* tail←1864 */  )) ) = (*  (BIT96Ptr) &var←14864 );
      XR←AssignRef((word) (( (bytePtr) (( (BIT256Ptr) (( (bytePtr) gf←0459)+52)/* chunkTable←1850 */ )+(* (( (ptr) gf←0459)+45)/* tail←1864 */  )))+12), var←14864.f3);
      };
SOURCEPOP(3863, 104, 2696, 1565);
SOURCE(3969, 164);
   {
      BIT96 var←14880;
      BIT96 r←13402;
      word words←13416;
SOURCE(960, 0);
      r←13402 = (*  (BIT96Ptr) (( (ptr) gf←0459)+53)/* nextTailChunkID←1906 */  );
SOURCEPOP(960, 0, 3969, 164);
SOURCE(960, 0);
      {
         word var←14896;
         word pages←13222;
         word deviceCharacteristics←13236;
SOURCE(628, 0);
         pages←13222 = (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0459)+45)/* tail←1864 */  )))+2) );
SOURCEPOP(628, 0, 960, 0);
SOURCE(628, 0);
         deviceCharacteristics←13236 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0459)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(628, 0, 960, 0);
         {
            word var←14912;
            word count←8250;
            count←8250 = (* (( (ptr) deviceCharacteristics←13236)+2) );
            {
               word idx20;
               if (IOP2( >= , count←8250, 0)) {
                  var←14912 = (word) XRM←BITLSHIFT(pages←13222, BCK(count←8250, 2147483648));
                  }
               else {
                  var←14912 = (word) XRM←BITRSHIFT(pages←13222, (
                        idx20 = (word) IOP1( - , count←8250),
                        BCK(idx20, 2147483648)
                        ));
                  };
               };
            goto lab←100010;
            lab←100010: ;
            var←14896 = var←14912;
            };
         goto lab←100011;
         lab←100011: ;
         words←13416 = var←14896;
         };
SOURCEPOP(960, 0, 3969, 164);
      {
         BIT96 var←14928;
         BIT96 r←7682;
         word words←7698;
         r←7682 = r←13402;
         words←7698 = words←13416;
         {
            /* declaration of var←0110 skipped */ 
            {
               BIT96 var←0505;
               {
                  /* declaration of var←0111 skipped */ 
                  {
                     word pd21;
                     pd21 = (* (( (ptr) (* (( (ptr) gf←0459)+154)/* var←14720 */  ))+6) );
                     (void) ( *( (funcPtr) ((*  (ptr) pd21 ))))((word) (( (bytePtr) lf←0557)+28)/* var←0111 */ , words←7698, pd21);
                     };
                  var←0505 = (*  (BIT96Ptr) (( (ptr) lf←0557)+7)/* var←0111 */  );
                  };
               {
                  word pd22;
                  pd22 = (* (( (ptr) (* (( (ptr) gf←0459)+154)/* var←14720 */  ))+10) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd22 ))))((word) (( (bytePtr) lf←0557)+16)/* var←0110 */ , r←7682, var←0505, pd22);
                  };
               };
            var←14928 = (*  (BIT96Ptr) (( (ptr) lf←0557)+4)/* var←0110 */  );
            };
         goto lab←100012;
         lab←100012: ;
         var←14880 = var←14928;
         };
      goto lab←100013;
      lab←100013: ;
      (*  (BIT96Ptr) (( (ptr) gf←0459)+53)/* nextTailChunkID←1906 */  ) = var←14880;
      };
SOURCEPOP(3969, 164, 2696, 1565);
SOURCE(4136, 125);
   {
      word var←14944;
      word var←14960;
      word var←14976;
      var←14944 = (* (( (ptr) gf←0459)+52)/* curVersion←1892 */  );
      var←14960 = (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0459)+45)/* tail←1864 */  )))+2) );
      var←14976 = (*  (ptr) (( (BIT256Ptr) (( (ptr) gf←0459)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0459)+45)/* tail←1864 */  )) );
      (void) (XR←MonitorExit((word) (( (bytePtr) gf←0459)+16)/* LOCK←1472 */ ));
      (*  (ptr) (word) formal←0115 ) = (word) var←14944;
      (* (( (ptr) (word) formal←0115) + 1) ) = (word) var←14960;
      (* (( (ptr) (word) formal←0115) + 2) ) = (word) var←14976;
      XR←PopHandler();
      goto lab←0209;
      };
SOURCEPOP(4136, 125, 2696, 1565);
   goto lab←100014;
   lab←100009: ;
SOURCE(3560, 37);
   (void) XR←RaiseError(var←14848, 0);
   lab←100014: ;
   XR←PopHandler();
   lab←0209: ;
   lf←0557 = XR←ExtensionFree(lf←0557);
   };

static void ForceChunk←300(index←3030)
   word index←3030;
   {
   register ptr gf←0460 =  (ptr) &globalframe;
   /* ForceChunk */ 
SOURCE(4268, 241);
SOURCE(4429, 57);
   {
      word pd23;
      pd23 = (* (( (ptr) (* (( (ptr) gf←0460)+152)/* var←14672 */  ))+13) );
      (void) ( *( (funcPtr) ((*  (ptr) pd23 ))))((*  (BIT128Ptr) ((( (BIT256Ptr) (( (ptr) gf←0460)+13)/* chunkTable←1850 */ )+index←3030)) ), pd23);
      };
SOURCEPOP(4429, 57, 4268, 241);
SOURCE(4488, 21);
SOURCE(4488, 21);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0460)+16)/* LOCK←1472 */ ));
SOURCE(4361, 41);
   (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0460)+13)/* chunkTable←1850 */ )+index←3030))+7) ) = 0;
SOURCEPOP(4361, 41, 4488, 21);
SOURCE(4404, 20);
   (void) (XR←Broadcast((word) (( (bytePtr) gf←0460)+184)/* completion←1878 */ ));
SOURCEPOP(4404, 20, 4488, 21);
SOURCE(4314, 110);
   goto lab←100015;
SOURCEPOP(4314, 110, 4488, 21);
SOURCEPOP(4488, 21, 4488, 21);
   lab←100015: ;
   (void) (XR←MonitorExit((word) (( (bytePtr) gf←0460)+16)/* LOCK←1472 */ ));
SOURCEPOP(4488, 21, 4268, 241);
   };

static void ForceTo←330(formal←0576)
   BIT96 formal←0576;
   {
   register word lf←0558;
   register ptr gf←0461 =  (ptr) &globalframe;
   /* declaration of var←14992 skipped */ 
   /* declaration of var←15008 skipped */ 
   word doForce←4434;
   BIT128 chunk←4448;
   lf←0558 = XR←ExtensionAlloc(16);
   (*  (BIT96Ptr) (( (ptr) lf←0558)+4)/* followingRecord←3060 */  ) = formal←0576;
   XR←PushHandler(lf←0558, 0);
   /* ForceTo */ 
SOURCE(4515, 1030);
   {
      word tmpAddr;
      tmpAddr = (word) (( (ptr) lf←0558)+7)/* var←14992 */ ;
      (*  (ptr) tmpAddr ) = (word) ( ((word)  (funcPtr) AwaitForce←1230) );
      (* (( (ptr) tmpAddr) + 1) ) = (word) 1;
      };
   {
      word tmpAddr24;
      tmpAddr24 = (word) (( (ptr) lf←0558)+9)/* var←15008 */ ;
      (*  (ptr) tmpAddr24 ) = (word) ( ((word)  (funcPtr) TailForceRequired←1200) );
      (* (( (ptr) tmpAddr24) + 1) ) = (word) 1;
      };
SOURCE(5288, 13);
SOURCEPOP(5288, 13, 4515, 1030);
SOURCE(5304, 31);
   {
      BIT128 var←15024;
      var←15024.f2 = 1;
      var←15024.f1 = 0;
      var←15024.f3 = 0;
      var←15024.f0 = 0;
      chunk←4448 = var←15024;
      };
SOURCEPOP(5304, 31, 4515, 1030);
SOURCE(5337, 38);
   {
      BIT160 var←15040;
      {
         /* declaration of var←0124 skipped */ 
         {
            word pd25;
            pd25 = ((word) (( (bytePtr) lf←0558)+36)/* var←15008 */ );
            (void) ( *( (funcPtr) ((*  (ptr) pd25 ))))((word) ((( (bytePtr) lf←0558)+44)/* var←0124 */ ), pd25);
            };
         var←15040 = (*  (BIT160Ptr) (( (ptr) lf←0558)+11)/* var←0124 */  );
         };
      chunk←4448 = (*  (BIT128Ptr) (( (ptr) &var←15040)+1) );
      doForce←4434 = (*  (ptr) &var←15040 );
      };
SOURCEPOP(5337, 38, 4515, 1030);
SOURCE(5377, 153);
   if ((0 != doForce←4434)) {
SOURCE(5395, 50);
      {
         word pd26;
         pd26 = (* (( (ptr) (* (( (ptr) gf←0461)+152)/* var←14672 */  ))+13) );
         (void) ( *( (funcPtr) ((*  (ptr) pd26 ))))(chunk←4448, pd26);
         };
SOURCEPOP(5395, 50, 5377, 153);
SOURCE(5447, 83);
      {
         word pd27;
         pd27 = (* (( (ptr) (* (( (ptr) gf←0461)+152)/* var←14672 */  ))+12) );
         (void) ( *( (funcPtr) ((*  (ptr) pd27 ))))(chunk←4448, 4, 1, pd27);
         };
SOURCEPOP(5447, 83, 5377, 153);
      };
SOURCEPOP(5377, 153, 4515, 1030);
SOURCE(5533, 12);
   {
      word pd28;
      pd28 = ((word) (( (bytePtr) lf←0558)+28)/* var←14992 */ );
      (void) ( *( (funcPtr) ((*  (ptr) pd28 ))))(pd28);
      };
SOURCEPOP(5533, 12, 4515, 1030);
   XR←PopHandler();
   lf←0558 = XR←ExtensionFree(lf←0558);
   };

static void TailForceRequired←1200(formal←0131, formal←0463)
   word formal←0131;
   word formal←0463;
   {
   register ptr gf←0462 =  (ptr) &globalframe;
   word var←15056;
   word doForce←4486;
   BIT128 chunk←4500;
   formal←0463 = (formal←0463 - 36);
   /* TailForceRequired */ 
SOURCE(4568, 440);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0462)+16)/* LOCK←1472 */ ));
SOURCE(4568, 440);
   chunk←4500.f2 = 1;
   chunk←4500.f1 = 0;
   chunk←4500.f3 = 0;
   chunk←4500.f0 = 0;
SOURCEPOP(4568, 440, 4568, 440);
SOURCE(4670, 111);
   {
      word pd29;
      pd29 = (* (( (ptr) (* (( (ptr) gf←0462)+154)/* var←14720 */  ))+18) );
      if (((word) ( *( (funcPtr) ((*  (ptr) pd29 ))))((*  (BIT96Ptr) (( (ptr) formal←0463)+4) ), (*  (BIT96Ptr) (( (ptr) gf←0462)+53)/* nextTailChunkID←1906 */  ), pd29) == 2)) {
SOURCE(4741, 40);
         var←15056 = (word) (( (bytePtr) gf←0462)+328);
         (void) (XR←MonitorExit((word) (( (bytePtr) gf←0462)+16)/* LOCK←1472 */ ));
         goto lab←100016;
SOURCEPOP(4741, 40, 4670, 111);
         };
      };
SOURCEPOP(4670, 111, 4568, 440);
SOURCE(4783, 225);
   {
      word pd30;
      pd30 = (* (( (ptr) (* (( (ptr) gf←0462)+154)/* var←14720 */  ))+18) );
      if (((word) ( *( (funcPtr) ((*  (ptr) pd30 ))))((*  (BIT96Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0462)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0462)+45)/* tail←1864 */  )))+4) ), (*  (BIT96Ptr) (( (ptr) formal←0463)+4) ), pd30) == 0)) {
SOURCE(4863, 53);
         {
            word pd31;
            pd31 = (* (( (ptr) (* (( (ptr) gf←0462)+152)/* var←14672 */  ))+11) );
            (void) ( *( (funcPtr) ((*  (ptr) pd31 ))))((*  (BIT128Ptr) ((( (BIT256Ptr) (( (ptr) gf←0462)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0462)+45)/* tail←1864 */  ))) ), pd31);
            };
SOURCEPOP(4863, 53, 4783, 225);
SOURCE(4918, 38);
         {
            BIT128 var←15072;
            var←15072 = (*  (BIT128Ptr) (( (BIT256Ptr) (( (ptr) gf←0462)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0462)+45)/* tail←1864 */  )) );
            (void) (XR←MonitorExit((word) (( (bytePtr) gf←0462)+16)/* LOCK←1472 */ ));
            (*  (ptr) (word) formal←0131 ) = (word) 1;
            (*  (BIT128Ptr) (( (ptr) (word) formal←0131) + 1) ) = var←15072;
            return;
            };
SOURCEPOP(4918, 38, 4783, 225);
         }
      else {
SOURCE(4963, 45);
         {
            BIT128 var←15104;
            {
               BIT128 var←15088;
               var←15088.f0 = 0;
               var←15088.f1 = 0;
               var←15088.f2 = 0;
               var←15088.f3 = 0;
               var←15104 = var←15088;
               };
            (void) (XR←MonitorExit((word) (( (bytePtr) gf←0462)+16)/* LOCK←1472 */ ));
            (*  (ptr) (word) formal←0131 ) = (word) 0;
            (*  (BIT128Ptr) (( (ptr) (word) formal←0131) + 1) ) = var←15104;
            return;
            };
SOURCEPOP(4963, 45, 4783, 225);
         };
      };
SOURCEPOP(4783, 225, 4568, 440);
   (void) (XR←MonitorExit((word) (( (bytePtr) gf←0462)+16)/* LOCK←1472 */ ));
   goto lab←100017;
   lab←100016: ;
SOURCE(4741, 40);
   (void) XR←RaiseError(var←15056, 0);
   lab←100017: ;
   };

static void AwaitForce←1230(formal←0465)
   word formal←0465;
   {
   register ptr gf←0464 =  (ptr) &globalframe;
   formal←0465 = (formal←0465 - 28);
   /* AwaitForce */ 
SOURCE(5011, 262);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0464)+16)/* LOCK←1472 */ ));
SOURCE(5041, 232);
   {
      register word currentChunk←4522 = 0;
SOURCE(5041, 0);
SOURCEPOP(5041, 0, 5041, 232);
      goto lab←100019;
      lab←100018: ;
      currentChunk←4522 = IOP2( + , currentChunk←4522, 1);
      lab←100019: ;
SOURCE(5105, 168);
SOURCE(5107, 155);
      {
         word pd32;
         pd32 = (* (( (ptr) (* (( (ptr) gf←0464)+154)/* var←14720 */  ))+18) );
         if (((word) ( *( (funcPtr) ((*  (ptr) pd32 ))))((*  (BIT96Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0464)+13)/* chunkTable←1850 */ )+currentChunk←4522))+4) ), (*  (BIT96Ptr) (( (ptr) formal←0465)+4) ), pd32) == 0)) {
SOURCE(5193, 69);
            lab←100023: ;
            if ((* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0464)+13)/* chunkTable←1850 */ )+currentChunk←4522))+7) )) {
               }
            else {
               goto lab←100025;
               };
SOURCE(5247, 15);
            (void) (XR←Wait((word) (( (bytePtr) gf←0464)+16)/* LOCK←1472 */ , (word) (( (bytePtr) gf←0464)+184)/* completion←1878 */ ));
SOURCEPOP(5247, 15, 5193, 69);
            goto lab←100023;
            lab←100025: ;
SOURCEPOP(5193, 69, 5107, 155);
            };
         };
SOURCEPOP(5107, 155, 5105, 168);
SOURCEPOP(5105, 168, 5041, 232);
      if (IOP2( < , currentChunk←4522, 3)) {
         goto lab←100018;
         };
      };
SOURCEPOP(5041, 232, 5011, 262);
SOURCE(5011, 262);
   (void) (XR←MonitorExit((word) (( (bytePtr) gf←0464)+16)/* LOCK←1472 */ ));
   return;
SOURCEPOP(5011, 262, 5011, 262);
   };

static void OpenBasicForPut←360(formal←0158, nextPage←3090, version←3104, nextRecord←3118)
   word formal←0158;
   word nextPage←3090;
   word version←3104;
   BIT96 nextRecord←3118;
   {
   register word lf←0559;
   register ptr gf←0466 =  (ptr) &globalframe;
   word pagesInChunk←3140;
   word firstPagePtr←3154;
   lf←0559 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0559, 0);
   /* OpenBasicForPut */ 
SOURCE(5551, 696);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0466)+16)/* LOCK←1472 */ ));
SOURCE(5724, 26);
   (* (( (ptr) gf←0466)+57)/* enforceBufferPages←1934 */  ) = 0;
SOURCEPOP(5724, 26, 5551, 696);
SOURCE(5752, 20);
   (* (( (ptr) gf←0466)+52)/* curVersion←1892 */  ) = version←3104;
SOURCEPOP(5752, 20, 5551, 696);
SOURCE(5774, 29);
   (* (( (ptr) gf←0466)+45)/* tail←1864 */  ) = 0;
SOURCEPOP(5774, 29, 5551, 696);
SOURCE(5805, 38);
   (*  (BIT96Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0466)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0466)+45)/* tail←1864 */  )))+4) ) = nextRecord←3118;
SOURCEPOP(5805, 38, 5551, 696);
SOURCE(5845, 119);
   {
      BIT128 var←15152;
      {
         /* declaration of var←0139 skipped */ 
         {
            BIT64 var←0506;
            {
               BIT64 var←15120;
               BIT64 pr←12242;
SOURCE(1028, 140);
SOURCEPOP(1028, 140, 5845, 119);
SOURCE(1028, 140);
               pr←12242.f1 = 1;
               pr←12242.f0 = 0;
SOURCEPOP(1028, 140, 5845, 119);
SOURCE(1103, 65);
               {
                  BIT64 var←15136;
                  var←15136.f0 = nextPage←3090;
                  {
                     word x33;
                     var←15136.f1 = (x33 = IOP2( - , (* (( (ptr) gf←0466)+9)/* logFileSize←1668 */  ), nextPage←3090),
                        MIN((int)(word), x33, 4));
                     };
                  var←15120 = var←15136;
                  };
               goto lab←100028;
SOURCEPOP(1103, 65, 5845, 119);
               lab←100028: ;
               var←0506 = var←15120;
               };
            {
               word pd34;
               pd34 = (* (( (ptr) (* (( (ptr) gf←0466)+152)/* var←14672 */  ))+10) );
               (void) ( *( (funcPtr) ((*  (ptr) pd34 ))))((word) (( (bytePtr) lf←0559)+16)/* var←0139 */ , (* (( (ptr) gf←0466)+8)/* logFileHandle←1654 */  ), var←0506, pd34);
               };
            };
         var←15152 = (*  (BIT128Ptr) (( (ptr) lf←0559)+4)/* var←0139 */  );
         };
      (*  (BIT96Ptr) (( (BIT256Ptr) (( (ptr) gf←0466)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0466)+45)/* tail←1864 */  )) ) = (*  (BIT96Ptr) &var←15152 );
      XR←AssignRef((word) (( (bytePtr) (( (BIT256Ptr) (( (bytePtr) gf←0466)+52)/* chunkTable←1850 */ )+(* (( (ptr) gf←0466)+45)/* tail←1864 */  )))+12), var←15152.f3);
      };
SOURCEPOP(5845, 119, 5551, 696);
SOURCE(5966, 174);
   {
      BIT96 var←15168;
      BIT96 r←13328;
      word words←13342;
SOURCE(960, 0);
      r←13328 = (*  (BIT96Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0466)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0466)+45)/* tail←1864 */  )))+4) );
SOURCEPOP(960, 0, 5966, 174);
SOURCE(960, 0);
      {
         word var←15184;
         word pages←13162;
         word deviceCharacteristics←13176;
SOURCE(628, 0);
         pages←13162 = (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0466)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0466)+45)/* tail←1864 */  )))+2) );
SOURCEPOP(628, 0, 960, 0);
SOURCE(628, 0);
         deviceCharacteristics←13176 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0466)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(628, 0, 960, 0);
         {
            word var←15200;
            word count←13200;
            count←13200 = (* (( (ptr) deviceCharacteristics←13176)+2) );
            {
               word idx35;
               if (IOP2( >= , count←13200, 0)) {
                  var←15200 = (word) XRM←BITLSHIFT(pages←13162, BCK(count←13200, 2147483648));
                  }
               else {
                  var←15200 = (word) XRM←BITRSHIFT(pages←13162, (
                        idx35 = (word) IOP1( - , count←13200),
                        BCK(idx35, 2147483648)
                        ));
                  };
               };
            goto lab←100029;
            lab←100029: ;
            var←15184 = var←15200;
            };
         goto lab←100030;
         lab←100030: ;
         words←13342 = var←15184;
         };
SOURCEPOP(960, 0, 5966, 174);
      {
         BIT96 var←15216;
         BIT96 r←13366;
         word words←13380;
         r←13366 = r←13328;
         words←13380 = words←13342;
         {
            /* declaration of var←0154 skipped */ 
            {
               BIT96 var←0507;
               {
                  /* declaration of var←0155 skipped */ 
                  {
                     word pd36;
                     pd36 = (* (( (ptr) (* (( (ptr) gf←0466)+154)/* var←14720 */  ))+6) );
                     (void) ( *( (funcPtr) ((*  (ptr) pd36 ))))((word) (( (bytePtr) lf←0559)+28)/* var←0155 */ , words←13380, pd36);
                     };
                  var←0507 = (*  (BIT96Ptr) (( (ptr) lf←0559)+7)/* var←0155 */  );
                  };
               {
                  word pd37;
                  pd37 = (* (( (ptr) (* (( (ptr) gf←0466)+154)/* var←14720 */  ))+10) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd37 ))))((word) (( (bytePtr) lf←0559)+16)/* var←0154 */ , r←13366, var←0507, pd37);
                  };
               };
            var←15216 = (*  (BIT96Ptr) (( (ptr) lf←0559)+4)/* var←0154 */  );
            };
         goto lab←100031;
         lab←100031: ;
         var←15168 = var←15216;
         };
      goto lab←100032;
      lab←100032: ;
      (*  (BIT96Ptr) (( (ptr) gf←0466)+53)/* nextTailChunkID←1906 */  ) = var←15168;
      };
SOURCEPOP(5966, 174, 5551, 696);
SOURCE(6142, 105);
   {
      word var←15232;
      word var←15248;
      var←15232 = (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0466)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0466)+45)/* tail←1864 */  )))+2) );
      var←15248 = (*  (ptr) (( (BIT256Ptr) (( (ptr) gf←0466)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0466)+45)/* tail←1864 */  )) );
      (void) (XR←MonitorExit((word) (( (bytePtr) gf←0466)+16)/* LOCK←1472 */ ));
      (*  (ptr) (word) formal←0158 ) = (word) var←15232;
      (* (( (ptr) (word) formal←0158) + 1) ) = (word) var←15248;
      XR←PopHandler();
      goto lab←0211;
      };
SOURCEPOP(6142, 105, 5551, 696);
   XR←PopHandler();
   lab←0211: ;
   lf←0559 = XR←ExtensionFree(lf←0559);
   };

static void AssertNormalOperation←390()
   {
   register ptr gf←0467 =  (ptr) &globalframe;
   /* AssertNormalOperation */ 
SOURCE(6253, 73);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0467)+16)/* LOCK←1472 */ ));
SOURCE(6301, 25);
   (* (( (ptr) gf←0467)+57)/* enforceBufferPages←1934 */  ) = 1;
SOURCEPOP(6301, 25, 6253, 73);
SOURCE(6253, 73);
   (void) (XR←MonitorExit((word) (( (bytePtr) gf←0467)+16)/* LOCK←1472 */ ));
   return;
SOURCEPOP(6253, 73, 6253, 73);
   };

static void CloseBasicForPut←420()
   {
   register ptr gf←0468 =  (ptr) &globalframe;
   /* CloseBasicForPut */ 
SOURCE(6332, 326);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0468)+16)/* LOCK←1472 */ ));
SOURCE(6375, 283);
   {
      register word i←4544 = 0;
SOURCE(6375, 0);
SOURCEPOP(6375, 0, 6375, 283);
      goto lab←100034;
      lab←100033: ;
      i←4544 = IOP2( + , i←4544, 1);
      lab←100034: ;
SOURCE(6420, 54);
      lab←100038: ;
      if ((* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544))+7) )) {
         }
      else {
         goto lab←100040;
         };
SOURCE(6459, 15);
      (void) (XR←Wait((word) (( (bytePtr) gf←0468)+16)/* LOCK←1472 */ , (word) (( (bytePtr) gf←0468)+184)/* completion←1878 */ ));
SOURCEPOP(6459, 15, 6420, 54);
      goto lab←100038;
      lab←100040: ;
SOURCEPOP(6420, 54, 6375, 283);
SOURCE(6485, 53);
      {
         word pd38;
         pd38 = (* (( (ptr) (* (( (ptr) gf←0468)+152)/* var←14672 */  ))+13) );
         (void) ( *( (funcPtr) ((*  (ptr) pd38 ))))((*  (BIT128Ptr) ((( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544)) ), pd38);
         };
SOURCEPOP(6485, 53, 6375, 283);
SOURCE(6540, 98);
      {
         word pd39;
         pd39 = (* (( (ptr) (* (( (ptr) gf←0468)+152)/* var←14672 */  ))+12) );
         (void) ( *( (funcPtr) ((*  (ptr) pd39 ))))((*  (BIT128Ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544) ), 4, 0, pd39);
         };
SOURCEPOP(6540, 98, 6375, 283);
SOURCE(6640, 18);
      (*  (ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544) ) = 0;
      (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544))+1) ) = 0;
      (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544))+2) ) = 0;
      XR←AssignRef((word) (( (bytePtr) (( (BIT256Ptr) (( (bytePtr) gf←0468)+52)/* chunkTable←1850 */ )+i←4544))+12), 0);
      (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544))+4) ) = 1;
      (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544))+5) ) = 0;
      (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544))+6) ) = 0;
      (* (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0468)+13)/* chunkTable←1850 */ )+i←4544))+7) ) = 0;
SOURCEPOP(6640, 18, 6375, 283);
      if (IOP2( < , i←4544, 3)) {
         goto lab←100033;
         };
      };
SOURCEPOP(6375, 283, 6332, 326);
SOURCE(6332, 326);
   (void) (XR←MonitorExit((word) (( (bytePtr) gf←0468)+16)/* LOCK←1472 */ ));
   return;
SOURCEPOP(6332, 326, 6332, 326);
   };

static void WordNumberFromRecordID←450(formal←0185, thisRecord←3206)
   word formal←0185;
   BIT96 thisRecord←3206;
   {
   register word lf←0560;
   register ptr gf←0469 =  (ptr) &globalframe;
   BIT96 result←3228;
   lf←0560 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0560, 0);
   /* WordNumberFromRecordID */ 
SOURCE(6673, 875);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0469)+16)/* LOCK←1472 */ ));
SOURCE(6769, 779);
SOURCE(6771, 34);
   {
      BIT96 offsetFromNextTailChunk←4566;
SOURCE(6771, 34);
SOURCEPOP(6771, 34, 6771, 34);
SOURCE(6815, 82);
SOURCE(6816, 66);
      {
         word pd40;
         pd40 = (* (( (ptr) (* (( (ptr) gf←0469)+154)/* var←14720 */  ))+18) );
         if (((word) ( *( (funcPtr) ((*  (ptr) pd40 ))))(thisRecord←3206, (*  (BIT96Ptr) (( (ptr) gf←0469)+53)/* nextTailChunkID←1906 */  ), pd40) == 2)) {
SOURCE(6882, 13);
            goto lab←100044;
SOURCEPOP(6882, 13, 6816, 66);
            };
         };
SOURCEPOP(6816, 66, 6815, 82);
SOURCEPOP(6815, 82, 6771, 34);
SOURCE(6900, 127);
      {
         BIT96 var←15264;
SOURCE(671, 0);
         switch (XR←PushHandler(lf←0560, &descXenablex100046)) { 
            case 0: {
                  /* declaration of var←0169 skipped */ 
                  {
                     word pd41;
                     pd41 = (* (( (ptr) (* (( (ptr) gf←0469)+154)/* var←14720 */  ))+11) );
                     (void) ( *( (funcPtr) ((*  (ptr) pd41 ))))((word) (( (bytePtr) lf←0560)+16)/* var←0169 */ , (*  (BIT96Ptr) (( (ptr) gf←0469)+53)/* nextTailChunkID←1906 */  ), thisRecord←3206, pd41);
                     };
                  var←15264 = (*  (BIT96Ptr) (( (ptr) lf←0560)+4)/* var←0169 */  );
                  };
               XR←PopHandler();
               goto lab←100048;
               XR←PopHandler(); break;
            case 1: XR←PopHandler(); goto L100045;
            default: XR←RaiseAbstractionFault();
            };
SOURCEPOP(671, 0, 6900, 127);
         lab←100048: ;
         offsetFromNextTailChunk←4566 = var←15264;
         };
SOURCEPOP(6900, 127, 6771, 34);
SOURCE(7043, 75);
      {
         word pd42;
         pd42 = (* (( (ptr) (* (( (ptr) gf←0469)+154)/* var←14720 */  ))+18) );
         if (((word) ( *( (funcPtr) ((*  (ptr) pd42 ))))(offsetFromNextTailChunk←4566, (*  (BIT96Ptr) (( (ptr) gf←0469)+10)/* logFileLength←1682 */  ), pd42) != 0)) {
SOURCE(7118, 13);
            goto L100045;
SOURCEPOP(7118, 13, 7043, 75);
            };
         };
SOURCEPOP(7043, 75, 6771, 34);
SOURCE(7133, 216);
      {
         BIT96 var←15296;
         BIT96 num←13064;
         BIT96 words←13078;
SOURCE(1215, 24);
         {
            BIT96 var←15312;
            word pages←13524;
            word deviceCharacteristics←13538;
SOURCE(859, 0);
            {
               word var←15328;
               word p←12410;
               BIT64 pr←12426;
SOURCE(1172, 138);
SOURCEPOP(1172, 138, 859, 0);
SOURCE(1172, 138);
               pr←12426 = (*  (BIT64Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0469)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0469)+45)/* tail←1864 */  )))+1) );
SOURCEPOP(1172, 138, 859, 0);
SOURCE(1241, 25);
               p←12410 = IOP2( + , pr←12426.f0, pr←12426.f1);
SOURCEPOP(1241, 25, 859, 0);
SOURCE(1268, 42);
               if ((p←12410 == (* (( (ptr) gf←0469)+9)/* logFileSize←1668 */  ))) {
                  var←15328 = 0;
                  }
               else {
                  var←15328 = p←12410;
                  };
               goto lab←100049;
SOURCEPOP(1268, 42, 859, 0);
               lab←100049: ;
               pages←13524 = var←15328;
               };
SOURCEPOP(859, 0, 1215, 24);
SOURCE(859, 0);
            deviceCharacteristics←13538 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0469)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(859, 0, 1215, 24);
            {
               /* declaration of var←0178 skipped */ 
               {
                  BIT96 var←0508;
                  BIT96 var←0509;
                  {
                     /* declaration of var←0179 skipped */ 
                     {
                        word pd43;
                        pd43 = (* (( (ptr) (* (( (ptr) gf←0469)+154)/* var←14720 */  ))+7) );
                        (void) ( *( (funcPtr) ((*  (ptr) pd43 ))))((word) (( (bytePtr) lf←0560)+28)/* var←0179 */ , pages←13524, pd43);
                        };
                     var←0508 = (*  (BIT96Ptr) (( (ptr) lf←0560)+7)/* var←0179 */  );
                     };
                  {
                     /* declaration of var←0180 skipped */ 
                     {
                        word pd44;
                        word ctmp45;
                        pd44 = (* (( (ptr) (* (( (ptr) gf←0469)+154)/* var←14720 */  ))+7) );
                        (void) ( *( (funcPtr) ((*  (ptr) pd44 ))))((word) (( (bytePtr) lf←0560)+28)/* var←0180 */ , (
/*1*/   ctmp45 =  (unsigned) (*  (ptr) deviceCharacteristics←13538 ),
/*1*/   SGNCK(ctmp45)
/*1*/   ), pd44);
                        };
                     var←0509 = (*  (BIT96Ptr) (( (ptr) lf←0560)+7)/* var←0180 */  );
                     };
                  {
                     word pd46;
                     pd46 = (* (( (ptr) (* (( (ptr) gf←0469)+154)/* var←14720 */  ))+15) );
                     (void) ( *( (funcPtr) ((*  (ptr) pd46 ))))((word) (( (bytePtr) lf←0560)+16)/* var←0178 */ , var←0508, var←0509, pd46);
                     };
                  };
               var←15312 = (*  (BIT96Ptr) (( (ptr) lf←0560)+4)/* var←0178 */  );
               };
            goto lab←100050;
            lab←100050: ;
            num←13064 = var←15312;
            };
SOURCEPOP(1215, 24, 7133, 216);
SOURCE(1215, 24);
         words←13078 = offsetFromNextTailChunk←4566;
SOURCEPOP(1215, 24, 7133, 216);
         {
            /* declaration of var←0182 skipped */ 
            {
               word pd47;
               pd47 = (* (( (ptr) (* (( (ptr) gf←0469)+154)/* var←14720 */  ))+11) );
               (void) ( *( (funcPtr) ((*  (ptr) pd47 ))))((word) (( (bytePtr) lf←0560)+16)/* var←0182 */ , num←13064, words←13078, pd47);
               };
            var←15296 = (*  (BIT96Ptr) (( (ptr) lf←0560)+4)/* var←0182 */  );
            };
         goto lab←100051;
         lab←100051: ;
         result←3228 = var←15296;
         };
SOURCEPOP(7133, 216, 6771, 34);
SOURCE(7351, 105);
      {
         BIT96 var←15344;
         if ((result←3228.f0 == 0)) {
            {
               /* declaration of var←0184 skipped */ 
               {
                  word pd48;
                  pd48 = (* (( (ptr) (* (( (ptr) gf←0469)+154)/* var←14720 */  ))+10) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd48 ))))((word) (( (bytePtr) lf←0560)+16)/* var←0184 */ , result←3228, (*  (BIT96Ptr) (( (ptr) gf←0469)+10)/* logFileLength←1682 */  ), pd48);
                  };
               var←15344 = (*  (BIT96Ptr) (( (ptr) lf←0560)+4)/* var←0184 */  );
               };
            }
         else {
            var←15344 = result←3228;
            };
         (void) (XR←MonitorExit((word) (( (bytePtr) gf←0469)+16)/* LOCK←1472 */ ));
         (*  (BIT96Ptr) formal←0185 ) = var←15344;
         XR←PopHandler();
         goto lab←0212;
         };
SOURCEPOP(7351, 105, 6771, 34);
      };
SOURCEPOP(6771, 34, 6769, 779);
   goto lab←100043;
   lab←100044: ;
SOURCE(7476, 28);
   (void) XR←RaiseError((word) (( (bytePtr) gf←0469)+328), 0);
SOURCEPOP(7476, 28, 6769, 779);
   goto lab←100043;
   L100045: ;
SOURCE(7518, 28);
   (void) XR←RaiseError((word) (( (bytePtr) gf←0469)+328), 0);
SOURCEPOP(7518, 28, 6769, 779);
   goto lab←100043;
   lab←100043: ;
SOURCEPOP(6769, 779, 6673, 875);
   (void) (XR←MonitorExit((word) (( (bytePtr) gf←0469)+16)/* LOCK←1472 */ ));
   XR←PopHandler();
   lab←0212: ;
   lf←0560 = XR←ExtensionFree(lf←0560);
   };

static void enable←100046(formal←0168, formal←200000, formal←200001, formal←200002, formal←200003)
   word formal←0168;
   word formal←200000;
   word formal←200001;
   word formal←200002;
   word formal←200003;
   {
   register ptr gf←0470 =  (ptr) &globalframe;
   if ((formal←200001 == (* (( (ptr) (* (( (ptr) gf←0470)+156)/* var←15280 */  ))+11) ))) {
SOURCE(7027, 14);
      (*  (ptr) (word) formal←0168 ) = (word) 2;
      (* (( (ptr) (word) formal←0168) + 1) ) = (word) 1;
      return;
      };
   (*  (ptr) (word) formal←0168 ) = (word) 0;
   (* (( (ptr) (word) formal←0168) + 1) ) = (word) 0;
   return;
   };

static void VerifyGet←480(page←3258, pagePtr←3272)
   word page←3258;
   word pagePtr←3272;
   {
   register ptr gf←0471 =  (ptr) &globalframe;
   word var←15360;
   word p←12106;
   word var←0510;
   /* VerifyGet */ 
SOURCE(7552, 187);
   (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0471)+16)/* LOCK←1472 */ ));
SOURCE(7627, 39);
SOURCE(7628, 36);
   {
      word x49;
SOURCE(807, 106);
      p←12106 = pagePtr←3272;
SOURCEPOP(807, 106, 7628, 36);
SOURCE(892, 21);
      var←15360 = p←12106;
      goto lab←100052;
SOURCEPOP(892, 21, 7628, 36);
      lab←100052: ;
      x49 =  (word) ( (unsigned) (*  (bytePtr) var←15360 ) >> 7);
      if (x49) {
SOURCE(7658, 6);
         (void) (XR←MonitorExit((word) (( (bytePtr) gf←0471)+16)/* LOCK←1472 */ ));
         return;
SOURCEPOP(7658, 6, 7628, 36);
         };
      };
SOURCEPOP(7628, 36, 7627, 39);
SOURCEPOP(7627, 39, 7552, 187);
SOURCE(7669, 70);
   {
      word var←15376;
      BIT64 pr←12530;
SOURCE(1314, 133);
      pr←12530 = (*  (BIT64Ptr) (( (ptr) (( (BIT256Ptr) (( (ptr) gf←0471)+13)/* chunkTable←1850 */ )+(* (( (ptr) gf←0471)+45)/* tail←1864 */  )))+1) );
SOURCEPOP(1314, 133, 7669, 70);
SOURCE(1393, 54);
      if (IOP2( >= , page←3258, pr←12530.f0)) {
         var←15376 = IOP2( < , page←3258, IOP2( + , pr←12530.f0, pr←12530.f1));
         }
      else {
         var←15376 = 0;
         };
      goto lab←100053;
SOURCEPOP(1393, 54, 7669, 70);
      lab←100053: ;
      var←0510 = var←15376;
      };
   if ((0 != var←0510)) {
SOURCE(7733, 6);
      (void) (XR←MonitorExit((word) (( (bytePtr) gf←0471)+16)/* LOCK←1472 */ ));
      return;
SOURCEPOP(7733, 6, 7669, 70);
      };
SOURCEPOP(7669, 70, 7552, 187);
SOURCE(7741, 5);
   (void) XR←RaiseError(XR←UnnamedError, 0);
SOURCEPOP(7741, 5, 7552, 187);
   (void) (XR←MonitorExit((word) (( (bytePtr) gf←0471)+16)/* LOCK←1472 */ ));
   };

static void Release←510(beforeRecord←3308)
   BIT96 beforeRecord←3308;
   {
   register word lf←0561;
   register ptr gf←0472 =  (ptr) &globalframe;
   lf←0561 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0561, 0);
   /* Release */ 
SOURCE(7753, 286);
SOURCE(7919, 120);
   {
      word newOldestFilePage←12554;
SOURCE(7919, 120);
      {
         word var←15392;
         BIT96 words←13026;
         word deviceCharacteristics←13040;
SOURCE(1117, 0);
         {
            /* declaration of var←0196 skipped */ 
            (void) WordNumberFromRecordID←450((word) (( (bytePtr) lf←0561)+16)/* var←0196 */ , beforeRecord←3308);
            words←13026 = (*  (BIT96Ptr) (( (ptr) lf←0561)+4)/* var←0196 */  );
            };
SOURCEPOP(1117, 0, 7919, 120);
SOURCE(1117, 0);
         deviceCharacteristics←13040 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0472)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(1117, 0, 7919, 120);
         {
            /* declaration of var←0198 skipped */ 
            /* declaration of var←0199 skipped */ 
            {
               word pd50;
               pd50 = (* (( (ptr) (* (( (ptr) gf←0472)+154)/* var←14720 */  ))+12) );
               {
                  word pd51;
                  pd51 = (* (( (ptr) (* (( (ptr) gf←0472)+154)/* var←14720 */  ))+6) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd51 ))))((word) (( (bytePtr) lf←0561)+28)/* var←0199 */ , (*  (ptr) deviceCharacteristics←13040 ), pd51);
                  };
               (void) ( *( (funcPtr) ((*  (ptr) pd50 ))))((word) (( (bytePtr) lf←0561)+16)/* var←0198 */ , words←13026, (*  (BIT96Ptr) (( (ptr) lf←0561)+7)/* var←0199 */  ), pd50);
               };
            {
               word pd52;
               pd52 = (* (( (ptr) (* (( (ptr) gf←0472)+154)/* var←14720 */  ))+9) );
               var←15392 = (word) ( *( (funcPtr) ((*  (ptr) pd52 ))))((*  (BIT96Ptr) ((( (ptr) lf←0561)+4)/* var←0198 */ ) ), pd52);
               };
            };
         goto lab←100054;
         lab←100054: ;
         newOldestFilePage←12554 = var←15392;
         };
SOURCEPOP(7919, 120, 7919, 120);
SOURCE(7919, 120);
      (void) (XR←MonitorEntry((word) (( (bytePtr) gf←0472)+16)/* LOCK←1472 */ ));
SOURCE(7881, 35);
      (* (( (ptr) gf←0472)+56)/* oldestFilePage←1920 */  ) = newOldestFilePage←12554;
SOURCEPOP(7881, 35, 7919, 120);
SOURCE(7803, 113);
      goto lab←100055;
SOURCEPOP(7803, 113, 7919, 120);
SOURCEPOP(7919, 120, 7919, 120);
      lab←100055: ;
      (void) (XR←MonitorExit((word) (( (bytePtr) gf←0472)+16)/* LOCK←1472 */ ));
      };
SOURCEPOP(7919, 120, 7753, 286);
   XR←PopHandler();
   lf←0561 = XR←ExtensionFree(lf←0561);
   };

static word OpenPageStream←540(p←3478)
   word p←3478;
   {
   word temp;
   word temp55;
   register word lf←0562;
   register ptr gf←0473 =  (ptr) &globalframe;
   word endOfLog←3500;
   lf←0562 = XR←ExtensionAlloc(8);
   XR←PushHandler(lf←0562, 0);
   /* OpenPageStream */ 
SOURCE(8406, 557);
SOURCE(8472, 107);
   {
      BIT128 var←15440;
      {
         /* declaration of var←0203 skipped */ 
         {
            BIT64 var←0511;
            {
               BIT64 var←15408;
               BIT64 pr←12218;
SOURCE(1028, 140);
SOURCEPOP(1028, 140, 8472, 107);
SOURCE(1028, 140);
               pr←12218.f1 = 1;
               pr←12218.f0 = 0;
SOURCEPOP(1028, 140, 8472, 107);
SOURCE(1103, 65);
               {
                  BIT64 var←15424;
                  var←15424.f0 = p←3478;
                  {
                     word x53;
                     var←15424.f1 = (x53 = IOP2( - , (* (( (ptr) gf←0473)+9)/* logFileSize←1668 */  ), p←3478),
                        MIN((int)(word), x53, 4));
                     };
                  var←15408 = var←15424;
                  };
               goto lab←100056;
SOURCEPOP(1103, 65, 8472, 107);
               lab←100056: ;
               var←0511 = var←15408;
               };
            {
               word pd54;
               pd54 = (* (( (ptr) (* (( (ptr) gf←0473)+152)/* var←14672 */  ))+8) );
               (void) ( *( (funcPtr) ((*  (ptr) pd54 ))))((word) (( (bytePtr) lf←0562)+16)/* var←0203 */ , (* (( (ptr) gf←0473)+8)/* logFileHandle←1654 */  ), var←0511, pd54);
               };
            };
         var←15440 = (*  (BIT128Ptr) (( (ptr) lf←0562)+4)/* var←0203 */  );
         };
      (*  (BIT96Ptr) (( (ptr) gf←0473)+58) ) = (*  (BIT96Ptr) &var←15440 );
      XR←AssignRef((word) (( (bytePtr) gf←0473)+244), var←15440.f3);
      };
SOURCEPOP(8472, 107, 8406, 557);
SOURCE(8581, 43);
   (* (( (ptr) gf←0473)+68) ) = (* (( (ptr) gf←0473)+58) );
SOURCEPOP(8581, 43, 8406, 557);
SOURCE(8626, 28);
   (* (( (ptr) gf←0473)+64) ) = 0;
SOURCEPOP(8626, 28, 8406, 557);
SOURCE(8656, 70);
   {
      word var←15456;
      word p←12370;
      BIT64 pr←12386;
SOURCE(1172, 138);
SOURCEPOP(1172, 138, 8656, 70);
SOURCE(1172, 138);
      pr←12386 = (*  (BIT64Ptr) (( (ptr) gf←0473)+59) );
SOURCEPOP(1172, 138, 8656, 70);
SOURCE(1241, 25);
      p←12370 = IOP2( + , pr←12386.f0, pr←12386.f1);
SOURCEPOP(1241, 25, 8656, 70);
SOURCE(1268, 42);
      if ((p←12370 == (* (( (ptr) gf←0473)+9)/* logFileSize←1668 */  ))) {
         var←15456 = 0;
         }
      else {
         var←15456 = p←12370;
         };
      goto lab←100057;
SOURCEPOP(1268, 42, 8656, 70);
      lab←100057: ;
      (* (( (ptr) gf←0473)+70) ) = var←15456;
      };
SOURCEPOP(8656, 70, 8406, 557);
SOURCE(8728, 52);
   {
      register word var←15472 = 1;
      if (IOP2( > , var←15472, 4)) {
         goto lab←100060;
         };
      goto lab←100059;
      lab←100058: ;
      var←15472 = IOP2( + , var←15472, 1);
      lab←100059: ;
SOURCE(8761, 19);
      (void) ReadAhead←600();
SOURCEPOP(8761, 19, 8728, 52);
      if (IOP2( < , var←15472, 4)) {
         goto lab←100058;
         };
      lab←100060: ;
      };
SOURCEPOP(8728, 52, 8406, 557);
SOURCE(8790, 127);
   {
      word var←0512;
SOURCE(8792, 58);
      {
         word var←15488;
         word p←12082;
SOURCE(807, 106);
         p←12082 = (* (( (ptr) gf←0473)+68) );
SOURCEPOP(807, 106, 8792, 58);
SOURCE(892, 21);
         var←15488 = p←12082;
         goto lab←100063;
SOURCEPOP(892, 21, 8792, 58);
         lab←100063: ;
         var←0512 = (var←0512 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←15488 ) >> 7)) << 0);
         };
      if ( ! (var←0512 & 01)) {
SOURCE(8837, 13);
         temp = 1;
         lf←0562 = XR←ExtensionFree(lf←0562);
         XR←PopHandler();
         return(temp);
SOURCEPOP(8837, 13, 8792, 58);
         };
SOURCEPOP(8792, 58, 8790, 127);
SOURCE(8852, 63);
      {
         word var←0513;
         {
            word var←15504;
            word p←12058;
SOURCE(807, 106);
            p←12058 = (* (( (ptr) gf←0473)+68) );
SOURCEPOP(807, 106, 8852, 63);
SOURCE(892, 21);
            var←15504 = p←12058;
            goto lab←100064;
SOURCEPOP(892, 21, 8852, 63);
            lab←100064: ;
            var←0513 = (var←0513 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←15504 ) >> 6 & 01)) << 0);
            };
         (* (( (ptr) gf←0473)+66) ) = (var←0513 & 01);
         };
SOURCEPOP(8852, 63, 8790, 127);
      };
SOURCEPOP(8790, 127, 8406, 557);
SOURCE(8920, 27);
   (* (( (ptr) gf←0473)+69) ) = 0;
SOURCEPOP(8920, 27, 8406, 557);
SOURCE(8949, 14);
   temp55 = 0;
   lf←0562 = XR←ExtensionFree(lf←0562);
   XR←PopHandler();
   return(temp55);
SOURCEPOP(8949, 14, 8406, 557);
   };

static void ClosePageStream←570()
   {
   register ptr gf←0474 =  (ptr) &globalframe;
   /* ClosePageStream */ 
SOURCE(8969, 173);
SOURCE(8998, 95);
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←0474)+152)/* var←14672 */  ))+12) );
      (void) ( *( (funcPtr) ((*  (ptr) pd56 ))))((*  (BIT128Ptr) (( (ptr) gf←0474)+58) ), 4, 0, pd56);
      };
SOURCEPOP(8998, 95, 8969, 173);
SOURCE(9095, 47);
   (* (( (ptr) gf←0474)+58) ) = 0;
   (* (( (ptr) gf←0474)+59) ) = 0;
   (* (( (ptr) gf←0474)+60) ) = 0;
   XR←AssignRef((word) (( (bytePtr) gf←0474)+244), 0);
SOURCEPOP(9095, 47, 8969, 173);
   };

static void ReadAhead←600()
   {
   register ptr gf←0475 =  (ptr) &globalframe;
   /* ReadAhead */ 
SOURCE(9148, 271);
SOURCE(9171, 99);
   {
      BIT64 var←0514;
      {
         BIT64 var←15520;
         BIT64 pr←12178;
         word p←12194;
SOURCE(1028, 140);
SOURCEPOP(1028, 140, 9171, 99);
SOURCE(1028, 140);
         p←12194 = (* (( (ptr) gf←0475)+70) );
SOURCEPOP(1028, 140, 9171, 99);
SOURCE(1028, 140);
         pr←12178.f1 = 1;
         pr←12178.f0 = 0;
SOURCEPOP(1028, 140, 9171, 99);
SOURCE(1103, 65);
         {
            BIT64 var←15536;
            var←15536.f0 = p←12194;
            {
               word x57;
               var←15536.f1 = (x57 = IOP2( - , (* (( (ptr) gf←0475)+9)/* logFileSize←1668 */  ), p←12194),
                  MIN((int)(word), x57, 4));
               };
            var←15520 = var←15536;
            };
         goto lab←100065;
SOURCEPOP(1103, 65, 9171, 99);
         lab←100065: ;
         var←0514 = var←15520;
         };
      {
         word pd58;
         pd58 = (* (( (ptr) (* (( (ptr) gf←0475)+152)/* var←14672 */  ))+9) );
         (void) ( *( (funcPtr) ((*  (ptr) pd58 ))))((* (( (ptr) gf←0475)+8)/* logFileHandle←1654 */  ), var←0514, pd58);
         };
      };
SOURCEPOP(9171, 99, 9148, 271);
SOURCE(9272, 147);
   if (IOP2( < , IOP2( + , (* (( (ptr) gf←0475)+70) ), 4), (* (( (ptr) gf←0475)+9)/* logFileSize←1668 */  ))) {
      (* (( (ptr) gf←0475)+70) ) = IOP2( + , (* (( (ptr) gf←0475)+70) ), 4);
      }
   else {
      (* (( (ptr) gf←0475)+70) ) = 0;
      };
SOURCEPOP(9272, 147, 9148, 271);
   };

static void SavePageStreamPos←630()
   {
   register ptr gf←0476 =  (ptr) &globalframe;
   /* SavePageStreamPos */ 
SOURCE(9425, 226);
SOURCE(9456, 49);
   (*  (BIT64Ptr) (( (ptr) gf←0476)+62) ) = (*  (BIT64Ptr) (( (ptr) gf←0476)+59) );
SOURCEPOP(9456, 49, 9425, 226);
SOURCE(9507, 55);
   (* (( (ptr) gf←0476)+65) ) = (* (( (ptr) gf←0476)+64) );
SOURCEPOP(9507, 55, 9425, 226);
SOURCE(9564, 59);
   (* (( (ptr) gf←0476)+67) ) = (* (( (ptr) gf←0476)+66) );
SOURCEPOP(9564, 59, 9425, 226);
SOURCE(9625, 26);
   (* (( (ptr) gf←0476)+69) ) = 1;
SOURCEPOP(9625, 26, 9425, 226);
   };

static void ForgetSavedPageStreamPos←690()
   {
   register ptr gf←0477 =  (ptr) &globalframe;
   /* ForgetSavedPageStreamPos */ 
SOURCE(9792, 195);
SOURCE(9830, 38);
   if ((0 == (* (( (ptr) gf←0477)+69) ))) {
SOURCE(9862, 6);
      return;
SOURCEPOP(9862, 6, 9830, 38);
      };
SOURCEPOP(9830, 38, 9792, 195);
SOURCE(9870, 88);
   if ( ! XR←EqualWords((( (ptr) gf←0477)+62), (( (ptr) gf←0477)+59), 2)) {
SOURCE(9928, 30);
      (void) XR←RaiseError((word) (( (bytePtr) gf←0477)+332), 0);
SOURCEPOP(9928, 30, 9870, 88);
      };
SOURCEPOP(9870, 88, 9792, 195);
SOURCE(9960, 27);
   (* (( (ptr) gf←0477)+69) ) = 0;
SOURCEPOP(9960, 27, 9792, 195);
   };

static word AdvancePageStream←720()
   {
   word temp64;
   register word lf←0563;
   register ptr gf←0478 =  (ptr) &globalframe;
   word endOfLog←3592;
   lf←0563 = XR←ExtensionAlloc(8);
   XR←PushHandler(lf←0563, 0);
   /* AdvancePageStream */ 
SOURCE(9993, 851);
SOURCE(10049, 53);
   (* (( (ptr) gf←0478)+64) ) = ((* (( (ptr) gf←0478)+64) ) + 1);
SOURCEPOP(10049, 53, 9993, 851);
SOURCE(10104, 610);
   {
      word ctmp59;
      if (((
         ctmp59 =  (unsigned) (* (( (ptr) gf←0478)+64) ),
         SGNCK(ctmp59)
         ) == (* (( (ptr) gf←0478)+60) ))) {
SOURCE(10170, 476);
         {
            word p←4640;
SOURCE(10172, 13);
SOURCEPOP(10172, 13, 10170, 476);
SOURCE(10187, 109);
            {
               word pd60;
               pd60 = (* (( (ptr) (* (( (ptr) gf←0478)+152)/* var←14672 */  ))+12) );
               (void) ( *( (funcPtr) ((*  (ptr) pd60 ))))((*  (BIT128Ptr) (( (ptr) gf←0478)+58) ), 4, (* (( (ptr) gf←0478)+69) ), pd60);
               };
SOURCEPOP(10187, 109, 10170, 476);
SOURCE(10298, 43);
            {
               word var←15552;
               word p←12330;
               BIT64 pr←12346;
SOURCE(1172, 138);
SOURCEPOP(1172, 138, 10298, 43);
SOURCE(1172, 138);
               pr←12346 = (*  (BIT64Ptr) (( (ptr) gf←0478)+59) );
SOURCEPOP(1172, 138, 10298, 43);
SOURCE(1241, 25);
               p←12330 = IOP2( + , pr←12346.f0, pr←12346.f1);
SOURCEPOP(1241, 25, 10298, 43);
SOURCE(1268, 42);
               if ((p←12330 == (* (( (ptr) gf←0478)+9)/* logFileSize←1668 */  ))) {
                  var←15552 = 0;
                  }
               else {
                  var←15552 = p←12330;
                  };
               goto lab←100066;
SOURCEPOP(1268, 42, 10298, 43);
               lab←100066: ;
               p←4640 = var←15552;
               };
SOURCEPOP(10298, 43, 10170, 476);
SOURCE(10343, 73);
            if ((p←4640 == 0)) {
SOURCE(10357, 59);
               {
                  word idx61;
                  (* (( (ptr) gf←0478)+66) ) = (
                     idx61 = (word) IOP2( - , 1, (* (( (ptr) gf←0478)+66) )),
                     BCK(idx61, 2)
                     );
                  };
SOURCEPOP(10357, 59, 10343, 73);
               };
SOURCEPOP(10343, 73, 10170, 476);
SOURCE(10418, 106);
            {
               BIT128 var←15600;
               {
                  /* declaration of var←0225 skipped */ 
                  {
                     BIT64 var←0515;
                     {
                        BIT64 var←15568;
                        BIT64 pr←12154;
SOURCE(1028, 140);
SOURCEPOP(1028, 140, 10418, 106);
SOURCE(1028, 140);
                        pr←12154.f1 = 1;
                        pr←12154.f0 = 0;
SOURCEPOP(1028, 140, 10418, 106);
SOURCE(1103, 65);
                        {
                           BIT64 var←15584;
                           var←15584.f0 = p←4640;
                           {
/*1*/   word x62;
/*1*/   var←15584.f1 = (x62 = IOP2( - , (* (( (ptr) gf←0478)+9)/* logFileSize←1668 */  ), p←4640),
/*1*/      MIN((int)(word), x62, 4));
/*1*/   };
                           var←15568 = var←15584;
                           };
                        goto lab←100067;
SOURCEPOP(1103, 65, 10418, 106);
                        lab←100067: ;
                        var←0515 = var←15568;
                        };
                     {
                        word pd63;
                        pd63 = (* (( (ptr) (* (( (ptr) gf←0478)+152)/* var←14672 */  ))+8) );
                        (void) ( *( (funcPtr) ((*  (ptr) pd63 ))))((word) (( (bytePtr) lf←0563)+16)/* var←0225 */ , (* (( (ptr) gf←0478)+8)/* logFileHandle←1654 */  ), var←0515, pd63);
                        };
                     };
                  var←15600 = (*  (BIT128Ptr) (( (ptr) lf←0563)+4)/* var←0225 */  );
                  };
               (*  (BIT96Ptr) (( (ptr) gf←0478)+58) ) = (*  (BIT96Ptr) &var←15600 );
               XR←AssignRef((word) (( (bytePtr) gf←0478)+244), var←15600.f3);
               };
SOURCEPOP(10418, 106, 10170, 476);
SOURCE(10526, 43);
            (* (( (ptr) gf←0478)+68) ) = (* (( (ptr) gf←0478)+58) );
SOURCEPOP(10526, 43, 10170, 476);
SOURCE(10571, 28);
            (* (( (ptr) gf←0478)+64) ) = 0;
SOURCEPOP(10571, 28, 10170, 476);
SOURCE(10601, 43);
            if ((0 == (* (( (ptr) gf←0478)+69) ))) {
SOURCE(10633, 11);
               (void) ReadAhead←600();
SOURCEPOP(10633, 11, 10601, 43);
               };
SOURCEPOP(10601, 43, 10170, 476);
            };
SOURCEPOP(10170, 476, 10104, 610);
         }
      else {
SOURCE(10653, 61);
         (* (( (ptr) gf←0478)+68) ) = IOP2( + , (* (( (ptr) gf←0478)+68) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0478)+153)/* var←14704 */  ))+5) ) ));
SOURCEPOP(10653, 61, 10104, 610);
         };
      };
SOURCEPOP(10104, 610, 9993, 851);
SOURCE(10724, 120);
SOURCE(10725, 117);
   {
      word var←0519;
      word var←0520;
      {
         word var←15632;
         word p←12034;
SOURCE(807, 106);
         p←12034 = (* (( (ptr) gf←0478)+68) );
SOURCEPOP(807, 106, 10725, 117);
SOURCE(892, 21);
         var←15632 = p←12034;
         goto lab←100069;
SOURCEPOP(892, 21, 10725, 117);
         lab←100069: ;
         var←0520 = (var←0520 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←15632 ) >> 7)) << 0);
         };
      if ( ! (var←0520 & 01)) {
         var←0519 = 1;
         }
      else {
         {
            word var←0518;
            {
               word var←0517;
               {
                  word var←0516;
                  {
                     word var←15616;
                     word p←12010;
SOURCE(807, 106);
                     p←12010 = (* (( (ptr) gf←0478)+68) );
SOURCEPOP(807, 106, 10725, 117);
SOURCE(892, 21);
                     var←15616 = p←12010;
                     goto lab←100068;
SOURCEPOP(892, 21, 10725, 117);
                     lab←100068: ;
                     var←0516 = (var←0516 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←15616 ) >> 6 & 01)) << 0);
                     };
                  var←0517 = (var←0516 & 01);
                  };
               var←0518 = (var←0518 & 4294967294) | ((01 & ((* (( (ptr) gf←0478)+66) ) != var←0517)) << 0);
               };
            var←0519 = (var←0518 & 01);
            };
         };
      temp64 = var←0519;
      lf←0563 = XR←ExtensionFree(lf←0563);
      XR←PopHandler();
      return(temp64);
      };
SOURCEPOP(10725, 117, 10724, 120);
SOURCEPOP(10724, 120, 9993, 851);
   };

static void SetPageStreamPosFromSavedPos←750()
   {
   register word lf←0564;
   register ptr gf←0479 =  (ptr) &globalframe;
   lf←0564 = XR←ExtensionAlloc(8);
   XR←PushHandler(lf←0564, 0);
   /* SetPageStreamPosFromSavedPos */ 
SOURCE(10851, 624);
SOURCE(10893, 62);
   if ((0 == (* (( (ptr) gf←0479)+69) ))) {
SOURCE(10925, 30);
      (void) XR←RaiseError((word) (( (bytePtr) gf←0479)+332), 0);
SOURCEPOP(10925, 30, 10893, 62);
      };
SOURCEPOP(10893, 62, 10851, 624);
SOURCE(10957, 322);
   if ( ! XR←EqualWords((( (ptr) gf←0479)+59), (( (ptr) gf←0479)+62), 2)) {
SOURCE(11017, 93);
      {
         word pd65;
         pd65 = (* (( (ptr) (* (( (ptr) gf←0479)+152)/* var←14672 */  ))+12) );
         (void) ( *( (funcPtr) ((*  (ptr) pd65 ))))((*  (BIT128Ptr) (( (ptr) gf←0479)+58) ), 4, 1, pd65);
         };
SOURCEPOP(11017, 93, 10957, 322);
SOURCE(11112, 106);
      {
         BIT128 var←15648;
         {
            /* declaration of var←0234 skipped */ 
            {
               word pd66;
               pd66 = (* (( (ptr) (* (( (ptr) gf←0479)+152)/* var←14672 */  ))+8) );
               (void) ( *( (funcPtr) ((*  (ptr) pd66 ))))((word) (( (bytePtr) lf←0564)+16)/* var←0234 */ , (* (( (ptr) gf←0479)+8)/* logFileHandle←1654 */  ), (*  (BIT64Ptr) (( (ptr) gf←0479)+62) ), pd66);
               };
            var←15648 = (*  (BIT128Ptr) (( (ptr) lf←0564)+4)/* var←0234 */  );
            };
         (*  (BIT96Ptr) (( (ptr) gf←0479)+58) ) = (*  (BIT96Ptr) &var←15648 );
         XR←AssignRef((word) (( (bytePtr) gf←0479)+244), var←15648.f3);
         };
SOURCEPOP(11112, 106, 10957, 322);
SOURCE(11220, 59);
      (* (( (ptr) gf←0479)+66) ) = (* (( (ptr) gf←0479)+67) );
SOURCEPOP(11220, 59, 10957, 322);
      };
SOURCEPOP(10957, 322, 10851, 624);
SOURCE(11284, 55);
   (* (( (ptr) gf←0479)+64) ) = (* (( (ptr) gf←0479)+65) );
SOURCEPOP(11284, 55, 10851, 624);
SOURCE(11341, 134);
   {
      word var←0521;
      {
         word var←15664;
         word pages←13102;
         word deviceCharacteristics←13116;
SOURCE(628, 0);
         pages←13102 = (* (( (ptr) gf←0479)+64) );
SOURCEPOP(628, 0, 11341, 134);
SOURCE(628, 0);
         deviceCharacteristics←13116 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0479)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(628, 0, 11341, 134);
         {
            word var←15680;
            word count←13140;
            count←13140 = (* (( (ptr) deviceCharacteristics←13116)+2) );
            {
               word idx67;
               if (IOP2( >= , count←13140, 0)) {
                  var←15680 = (word) XRM←BITLSHIFT(pages←13102, BCK(count←13140, 2147483648));
                  }
               else {
                  var←15680 = (word) XRM←BITRSHIFT(pages←13102, (
                        idx67 = (word) IOP1( - , count←13140),
                        BCK(idx67, 2147483648)
                        ));
                  };
               };
            goto lab←100070;
            lab←100070: ;
            var←15664 = var←15680;
            };
         goto lab←100071;
         lab←100071: ;
         var←0521 = var←15664;
         };
      (* (( (ptr) gf←0479)+68) ) = IOP2( + , (* (( (ptr) gf←0479)+58) ), var←0521);
      };
SOURCEPOP(11341, 134, 10851, 624);
   XR←PopHandler();
   lf←0564 = XR←ExtensionFree(lf←0564);
   };

static void OpenRecordStreamFromWord←780(formal←0243, firstWord←3652)
   word formal←0243;
   BIT96 firstWord←3652;
   {
   register ptr gf←0480 =  (ptr) &globalframe;
   word notStartOfRecord←3674;
   BIT96 currentRecord←3688;
   /* OpenRecordStreamFromWord */ 
SOURCE(11569, 286);
SOURCE(11693, 118);
   notStartOfRecord←3674 = (word) OpenRecordStream←840(firstWord←3652, firstWord←3652);
SOURCEPOP(11693, 118, 11569, 286);
SOURCE(11813, 42);
   (*  (ptr) (word) formal←0243 ) = (word) notStartOfRecord←3674;
   (*  (BIT96Ptr) (( (ptr) (word) formal←0243) + 1) ) = (*  (BIT96Ptr) (( (ptr) gf←0480)+71)/* recordStream←2256 */  );
   return;
SOURCEPOP(11813, 42, 11569, 286);
   };

static void OpenRecordStreamFromCheckpoint←810(formal←0260, checkpointWord←3718, checkpointRecord←3732, firstRecord←3746)
   word formal←0260;
   BIT96 checkpointWord←3718;
   BIT96 checkpointRecord←3732;
   BIT96 firstRecord←3746;
   {
   register word lf←0565;
   register ptr gf←0481 =  (ptr) &globalframe;
   word notStartOfRecord←3768;
   BIT96 currentRecord←3782;
   lf←0565 = XR←ExtensionAlloc(7);
   XR←PushHandler(lf←0565, 0);
   /* OpenRecordStreamFromCheckpoint */ 
SOURCE(11861, 929);
SOURCE(12046, 744);
SOURCE(12048, 42);
   {
      BIT96 offsetFromCheckpoint←4662;
      BIT96 firstWord←4676;
SOURCE(12048, 42);
SOURCEPOP(12048, 42, 12048, 42);
SOURCE(12048, 42);
SOURCEPOP(12048, 42, 12048, 42);
SOURCE(12100, 97);
SOURCE(12102, 93);
      {
         word pd68;
         pd68 = (* (( (ptr) (* (( (ptr) gf←0481)+154)/* var←14720 */  ))+18) );
         if (((word) ( *( (funcPtr) ((*  (ptr) pd68 ))))(checkpointRecord←3732, firstRecord←3746, pd68) == 0)) {
SOURCE(12167, 28);
            (void) XR←RaiseError((word) (( (bytePtr) gf←0481)+328), 0);
SOURCEPOP(12167, 28, 12102, 93);
            };
         };
SOURCEPOP(12102, 93, 12100, 97);
SOURCEPOP(12100, 97, 12048, 42);
SOURCE(12200, 126);
      {
         BIT96 var←15696;
SOURCE(671, 0);
         switch (XR←PushHandler(lf←0565, &descXenablex100074)) { 
            case 0: {
                  /* declaration of var←0257 skipped */ 
                  {
                     word pd69;
                     pd69 = (* (( (ptr) (* (( (ptr) gf←0481)+154)/* var←14720 */  ))+11) );
                     (void) ( *( (funcPtr) ((*  (ptr) pd69 ))))((word) (( (bytePtr) lf←0565)+16)/* var←0257 */ , checkpointRecord←3732, firstRecord←3746, pd69);
                     };
                  var←15696 = (*  (BIT96Ptr) (( (ptr) lf←0565)+4)/* var←0257 */  );
                  };
               XR←PopHandler();
               goto lab←100076;
               XR←PopHandler(); break;
            case 1: XR←PopHandler(); goto L100073;
            default: XR←RaiseAbstractionFault();
            };
SOURCEPOP(671, 0, 12200, 126);
         lab←100076: ;
         offsetFromCheckpoint←4662 = var←15696;
         };
SOURCEPOP(12200, 126, 12048, 42);
SOURCE(12342, 72);
      {
         word pd70;
         pd70 = (* (( (ptr) (* (( (ptr) gf←0481)+154)/* var←14720 */  ))+18) );
         if (((word) ( *( (funcPtr) ((*  (ptr) pd70 ))))(offsetFromCheckpoint←4662, (*  (BIT96Ptr) (( (ptr) gf←0481)+10)/* logFileLength←1682 */  ), pd70) != 0)) {
SOURCE(12414, 13);
            goto L100073;
SOURCEPOP(12414, 13, 12342, 72);
            };
         };
SOURCEPOP(12342, 72, 12048, 42);
SOURCE(12429, 81);
      {
         /* declaration of var←0258 skipped */ 
         {
            word pd71;
            pd71 = (* (( (ptr) (* (( (ptr) gf←0481)+154)/* var←14720 */  ))+11) );
            (void) ( *( (funcPtr) ((*  (ptr) pd71 ))))((word) (( (bytePtr) lf←0565)+16)/* var←0258 */ , checkpointWord←3718, offsetFromCheckpoint←4662, pd71);
            };
         firstWord←4676 = (*  (BIT96Ptr) (( (ptr) lf←0565)+4)/* var←0258 */  );
         };
SOURCEPOP(12429, 81, 12048, 42);
SOURCE(12512, 103);
      if ((firstWord←4676.f0 == 0)) {
SOURCE(12546, 69);
         {
            /* declaration of var←0259 skipped */ 
            {
               word pd72;
               pd72 = (* (( (ptr) (* (( (ptr) gf←0481)+154)/* var←14720 */  ))+10) );
               (void) ( *( (funcPtr) ((*  (ptr) pd72 ))))((word) (( (bytePtr) lf←0565)+16)/* var←0259 */ , firstWord←4676, (*  (BIT96Ptr) (( (ptr) gf←0481)+10)/* logFileLength←1682 */  ), pd72);
               };
            firstWord←4676 = (*  (BIT96Ptr) (( (ptr) lf←0565)+4)/* var←0259 */  );
            };
SOURCEPOP(12546, 69, 12512, 103);
         };
SOURCEPOP(12512, 103, 12048, 42);
SOURCE(12617, 83);
      notStartOfRecord←3768 = (word) OpenRecordStream←840(firstWord←4676, firstRecord←3746);
SOURCEPOP(12617, 83, 12048, 42);
SOURCE(12702, 38);
      (*  (ptr) (word) formal←0260 ) = (word) notStartOfRecord←3768;
      (*  (BIT96Ptr) (( (ptr) (word) formal←0260) + 1) ) = firstRecord←3746;
      XR←PopHandler();
      goto lab←0215;
SOURCEPOP(12702, 38, 12048, 42);
      };
SOURCEPOP(12048, 42, 12046, 744);
   goto lab←100072;
   L100073: ;
SOURCE(12760, 28);
   (void) XR←RaiseError((word) (( (bytePtr) gf←0481)+328), 0);
SOURCEPOP(12760, 28, 12046, 744);
   goto lab←100072;
   lab←100072: ;
SOURCEPOP(12046, 744, 11861, 929);
   XR←PopHandler();
   lab←0215: ;
   lf←0565 = XR←ExtensionFree(lf←0565);
   };

static void enable←100074(formal←0256, formal←200004, formal←200005, formal←200006, formal←200007)
   word formal←0256;
   word formal←200004;
   word formal←200005;
   word formal←200006;
   word formal←200007;
   {
   register ptr gf←0482 =  (ptr) &globalframe;
   if ((formal←200005 == (* (( (ptr) (* (( (ptr) gf←0482)+156)/* var←15280 */  ))+11) ))) {
SOURCE(12326, 14);
      (*  (ptr) (word) formal←0256 ) = (word) 2;
      (* (( (ptr) (word) formal←0256) + 1) ) = (word) 1;
      return;
      };
   (*  (ptr) (word) formal←0256 ) = (word) 0;
   (* (( (ptr) (word) formal←0256) + 1) ) = (word) 0;
   return;
   };

static word OpenRecordStream←840(firstWord←3812, firstRecord←3826)
   BIT96 firstWord←3812;
   BIT96 firstRecord←3826;
   {
   word temp80;
   register word lf←0566;
   register ptr gf←0483 =  (ptr) &globalframe;
   word notStartOfRecord←3848;
   lf←0566 = XR←ExtensionAlloc(13);
   XR←PushHandler(lf←0566, 0);
   /* OpenRecordStream */ 
SOURCE(12794, 543);
SOURCE(12899, 438);
SOURCE(12901, 13);
   {
      word p←4698;
      word w←4712;
      word var←0523;
SOURCE(12901, 13);
SOURCEPOP(12901, 13, 12901, 13);
SOURCE(12916, 11);
SOURCEPOP(12916, 11, 12901, 13);
SOURCE(12929, 95);
      {
         BIT64 var←15744;
         {
            BIT64 var←15712;
            BIT96 words←12988;
            word deviceCharacteristics←13002;
            BIT96 q←10362;
            BIT96 r←10378;
SOURCE(1376, 15);
            words←12988 = firstWord←3812;
SOURCEPOP(1376, 15, 12929, 95);
SOURCE(1376, 15);
            deviceCharacteristics←13002 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0483)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(1376, 15, 12929, 95);
            {
               BIT192 var←15728;
               {
                  /* declaration of var←0273 skipped */ 
                  {
                     BIT96 var←0522;
                     {
                        /* declaration of var←0274 skipped */ 
                        {
                           word pd73;
                           pd73 = (* (( (ptr) (* (( (ptr) gf←0483)+154)/* var←14720 */  ))+6) );
                           (void) ( *( (funcPtr) ((*  (ptr) pd73 ))))((word) (( (bytePtr) lf←0566)+40)/* var←0274 */ , (*  (ptr) deviceCharacteristics←13002 ), pd73);
                           };
                        var←0522 = (*  (BIT96Ptr) (( (ptr) lf←0566)+10)/* var←0274 */  );
                        };
                     {
                        word pd74;
                        pd74 = (* (( (ptr) (* (( (ptr) gf←0483)+154)/* var←14720 */  ))+14) );
                        (void) ( *( (funcPtr) ((*  (ptr) pd74 ))))((word) (( (bytePtr) lf←0566)+16)/* var←0273 */ , words←12988, var←0522, pd74);
                        };
                     };
                  var←15728 = (*  (BIT192Ptr) (( (ptr) lf←0566)+4)/* var←0273 */  );
                  };
               r←10378 = (*  (BIT96Ptr) (( (ptr) &var←15728)+3) );
               q←10362 = (*  (BIT96Ptr) &var←15728 );
               };
            {
               word pd75;
               word pd76;
               pd75 = (* (( (ptr) (* (( (ptr) gf←0483)+154)/* var←14720 */  ))+9) );
               (*  (ptr) (word) &var←15712 ) = (word) ( *( (funcPtr) ((*  (ptr) pd75 ))))(q←10362, pd75);
               pd76 = (* (( (ptr) (* (( (ptr) gf←0483)+154)/* var←14720 */  ))+9) );
               (* (( (ptr) (word) &var←15712) + 1) ) = (word) ( *( (funcPtr) ((*  (ptr) pd76 ))))(r←10378, pd76);
               };
            goto lab←100079;
            lab←100079: ;
            var←15744 = var←15712;
            };
         w←4712 = var←15744.f1;
         p←4698 = var←15744.f0;
         };
SOURCEPOP(12929, 95, 12901, 13);
SOURCE(13026, 110);
      {
         word var←15760;
         BIT96 r←12884;
         word wordsPerPage←12898;
SOURCE(1461, 0);
         r←12884 = firstRecord←3826;
SOURCEPOP(1461, 0, 13026, 110);
SOURCE(1461, 0);
         wordsPerPage←12898 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0483)+153)/* var←14704 */  ))+5) ) );
SOURCEPOP(1461, 0, 13026, 110);
         {
            /* declaration of var←0278 skipped */ 
            {
               BIT96 var←0524;
               {
                  /* declaration of var←0279 skipped */ 
                  {
                     word pd77;
                     pd77 = (* (( (ptr) (* (( (ptr) gf←0483)+154)/* var←14720 */  ))+6) );
                     (void) ( *( (funcPtr) ((*  (ptr) pd77 ))))((word) (( (bytePtr) lf←0566)+28)/* var←0279 */ , wordsPerPage←12898, pd77);
                     };
                  var←0524 = (*  (BIT96Ptr) (( (ptr) lf←0566)+7)/* var←0279 */  );
                  };
               {
                  word pd78;
                  pd78 = (* (( (ptr) (* (( (ptr) gf←0483)+154)/* var←14720 */  ))+13) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd78 ))))((word) (( (bytePtr) lf←0566)+16)/* var←0278 */ , r←12884, var←0524, pd78);
                  };
               };
            {
               word pd79;
               pd79 = (* (( (ptr) (* (( (ptr) gf←0483)+154)/* var←14720 */  ))+8) );
               var←15760 = (word) ( *( (funcPtr) ((*  (ptr) pd79 ))))((*  (BIT96Ptr) ((( (ptr) lf←0566)+4)/* var←0278 */ ) ), pd79);
               };
            };
         goto lab←100080;
         lab←100080: ;
         var←0523 = var←15760;
         };
      if ((var←0523 != w←4712)) {
SOURCE(13108, 28);
         (void) XR←RaiseError((word) (( (bytePtr) gf←0483)+328), 0);
SOURCEPOP(13108, 28, 13026, 110);
         };
SOURCEPOP(13026, 110, 12901, 13);
SOURCE(13138, 35);
      if ((0 != (word) OpenPageStream←540(p←4698))) {
SOURCE(13173, 16);
         goto lab←100078;
SOURCEPOP(13173, 16, 13138, 35);
         };
SOURCEPOP(13138, 35, 12901, 13);
SOURCE(13191, 19);
      (void) SavePageStreamPos←630();
SOURCEPOP(13191, 19, 12901, 13);
SOURCE(13212, 32);
      (*  (BIT96Ptr) (( (ptr) gf←0483)+71)/* recordStream←2256 */  ) = firstRecord←3826;
SOURCEPOP(13212, 32, 12901, 13);
SOURCE(13246, 49);
      temp80 = (word) VerifyCurrentRecordID←930();
      lf←0566 = XR←ExtensionFree(lf←0566);
      XR←PopHandler();
      return(temp80);
SOURCEPOP(13246, 49, 12901, 13);
      };
SOURCEPOP(12901, 13, 12899, 438);
   goto lab←100077;
   lab←100078: ;
SOURCE(13318, 17);
   (void) XR←RaiseError((word) (( (bytePtr) gf←0483)+336), 0);
SOURCEPOP(13318, 17, 12899, 438);
   goto lab←100077;
   lab←100077: ;
SOURCEPOP(12899, 438, 12794, 543);
   };

static void CurrentWordNumber←870(formal←0294)
   word formal←0294;
   {
   register word lf←0567;
   register ptr gf←0484 =  (ptr) &globalframe;
   BIT96 w←3886;
   lf←0567 = XR←ExtensionAlloc(16);
   XR←PushHandler(lf←0567, 0);
   /* CurrentWordNumber */ 
SOURCE(13376, 258);
SOURCE(13439, 195);
SOURCE(13440, 194);
   {
      /* declaration of var←0281 skipped */ 
      {
         BIT96 var←0527;
         BIT96 var←0530;
         {
            BIT96 var←15776;
            word pages←13486;
            word deviceCharacteristics←13500;
SOURCE(859, 0);
            {
               word ctmp81;
               pages←13486 = IOP2( + , (* (( (ptr) gf←0484)+59) ), (
                     ctmp81 =  (unsigned) (* (( (ptr) gf←0484)+64) ),
                     SGNCK(ctmp81)
                     ));
               };
SOURCEPOP(859, 0, 13440, 194);
SOURCE(859, 0);
            deviceCharacteristics←13500 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0484)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(859, 0, 13440, 194);
            {
               /* declaration of var←0285 skipped */ 
               {
                  BIT96 var←0525;
                  BIT96 var←0526;
                  {
                     /* declaration of var←0286 skipped */ 
                     {
                        word pd82;
                        pd82 = (* (( (ptr) (* (( (ptr) gf←0484)+154)/* var←14720 */  ))+7) );
                        (void) ( *( (funcPtr) ((*  (ptr) pd82 ))))((word) (( (bytePtr) lf←0567)+40)/* var←0286 */ , pages←13486, pd82);
                        };
                     var←0525 = (*  (BIT96Ptr) (( (ptr) lf←0567)+10)/* var←0286 */  );
                     };
                  {
                     /* declaration of var←0287 skipped */ 
                     {
                        word pd83;
                        word ctmp84;
                        pd83 = (* (( (ptr) (* (( (ptr) gf←0484)+154)/* var←14720 */  ))+7) );
                        (void) ( *( (funcPtr) ((*  (ptr) pd83 ))))((word) (( (bytePtr) lf←0567)+40)/* var←0287 */ , (
/*1*/   ctmp84 =  (unsigned) (*  (ptr) deviceCharacteristics←13500 ),
/*1*/   SGNCK(ctmp84)
/*1*/   ), pd83);
                        };
                     var←0526 = (*  (BIT96Ptr) (( (ptr) lf←0567)+10)/* var←0287 */  );
                     };
                  {
                     word pd85;
                     pd85 = (* (( (ptr) (* (( (ptr) gf←0484)+154)/* var←14720 */  ))+15) );
                     (void) ( *( (funcPtr) ((*  (ptr) pd85 ))))((word) (( (bytePtr) lf←0567)+28)/* var←0285 */ , var←0525, var←0526, pd85);
                     };
                  };
               var←15776 = (*  (BIT96Ptr) (( (ptr) lf←0567)+7)/* var←0285 */  );
               };
            goto lab←100081;
            lab←100081: ;
            var←0527 = var←15776;
            };
         {
            /* declaration of var←0288 skipped */ 
            {
               word var←0528;
               {
                  word var←15792;
                  BIT96 r←12846;
                  word wordsPerPage←12860;
SOURCE(1461, 0);
                  r←12846 = (*  (BIT96Ptr) (( (ptr) gf←0484)+71)/* recordStream←2256 */  );
SOURCEPOP(1461, 0, 13440, 194);
SOURCE(1461, 0);
                  wordsPerPage←12860 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0484)+153)/* var←14704 */  ))+5) ) );
SOURCEPOP(1461, 0, 13440, 194);
                  {
                     /* declaration of var←0292 skipped */ 
                     {
                        BIT96 var←0529;
                        {
                           /* declaration of var←0293 skipped */ 
                           {
/*1*/   word pd86;
/*1*/   pd86 = (* (( (ptr) (* (( (ptr) gf←0484)+154)/* var←14720 */  ))+6) );
/*1*/   (void) ( *( (funcPtr) ((*  (ptr) pd86 ))))((word) (( (bytePtr) lf←0567)+52)/* var←0293 */ , wordsPerPage←12860, pd86);
/*1*/   };
                           var←0529 = (*  (BIT96Ptr) (( (ptr) lf←0567)+13)/* var←0293 */  );
                           };
                        {
                           word pd87;
                           pd87 = (* (( (ptr) (* (( (ptr) gf←0484)+154)/* var←14720 */  ))+13) );
                           (void) ( *( (funcPtr) ((*  (ptr) pd87 ))))((word) (( (bytePtr) lf←0567)+40)/* var←0292 */ , r←12846, var←0529, pd87);
                           };
                        };
                     {
                        word pd88;
                        pd88 = (* (( (ptr) (* (( (ptr) gf←0484)+154)/* var←14720 */  ))+8) );
                        var←15792 = (word) ( *( (funcPtr) ((*  (ptr) pd88 ))))((*  (BIT96Ptr) ((( (ptr) lf←0567)+10)/* var←0292 */ ) ), pd88);
                        };
                     };
                  goto lab←100082;
                  lab←100082: ;
                  var←0528 = var←15792;
                  };
               {
                  word pd89;
                  pd89 = (* (( (ptr) (* (( (ptr) gf←0484)+154)/* var←14720 */  ))+6) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd89 ))))((word) (( (bytePtr) lf←0567)+28)/* var←0288 */ , var←0528, pd89);
                  };
               };
            var←0530 = (*  (BIT96Ptr) (( (ptr) lf←0567)+7)/* var←0288 */  );
            };
         {
            word pd90;
            pd90 = (* (( (ptr) (* (( (ptr) gf←0484)+154)/* var←14720 */  ))+10) );
            (void) ( *( (funcPtr) ((*  (ptr) pd90 ))))((word) (( (bytePtr) lf←0567)+16)/* var←0281 */ , var←0527, var←0530, pd90);
            };
         };
      w←3886 = (*  (BIT96Ptr) (( (ptr) lf←0567)+4)/* var←0281 */  );
      };
SOURCEPOP(13440, 194, 13439, 195);
SOURCEPOP(13439, 195, 13376, 258);
SOURCE(13376, 258);
   (*  (BIT96Ptr) formal←0294 ) = w←3886;
   XR←PopHandler();
   goto lab←0216;
SOURCEPOP(13376, 258, 13376, 258);
   XR←PopHandler();
   lab←0216: ;
   lf←0567 = XR←ExtensionFree(lf←0567);
   };

static void CloseRecordStream←900()
   {
   /* CloseRecordStream */ 
SOURCE(13641, 55);
SOURCE(13679, 17);
   (void) ClosePageStream←570();
SOURCEPOP(13679, 17, 13641, 55);
   };

static word VerifyCurrentRecordID←930()
   {
   word temp94;
   word temp95;
   register word lf←0568;
   register ptr gf←0485 =  (ptr) &globalframe;
   word notStartOfRecord←3924;
   word wordInPage←4734;
   lf←0568 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0568, 0);
   /* VerifyCurrentRecordID */ 
SOURCE(13702, 385);
SOURCE(13770, 96);
   {
      word var←15808;
      BIT96 r←12808;
      word wordsPerPage←12822;
SOURCE(1461, 0);
      r←12808 = (*  (BIT96Ptr) (( (ptr) gf←0485)+71)/* recordStream←2256 */  );
SOURCEPOP(1461, 0, 13770, 96);
SOURCE(1461, 0);
      wordsPerPage←12822 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0485)+153)/* var←14704 */  ))+5) ) );
SOURCEPOP(1461, 0, 13770, 96);
      {
         /* declaration of var←0300 skipped */ 
         /* declaration of var←0301 skipped */ 
         {
            word pd91;
            pd91 = (* (( (ptr) (* (( (ptr) gf←0485)+154)/* var←14720 */  ))+13) );
            {
               word pd92;
               pd92 = (* (( (ptr) (* (( (ptr) gf←0485)+154)/* var←14720 */  ))+6) );
               (void) ( *( (funcPtr) ((*  (ptr) pd92 ))))((word) (( (bytePtr) lf←0568)+28)/* var←0301 */ , wordsPerPage←12822, pd92);
               };
            (void) ( *( (funcPtr) ((*  (ptr) pd91 ))))((word) (( (bytePtr) lf←0568)+16)/* var←0300 */ , r←12808, (*  (BIT96Ptr) (( (ptr) lf←0568)+7)/* var←0301 */  ), pd91);
            };
         {
            word pd93;
            pd93 = (* (( (ptr) (* (( (ptr) gf←0485)+154)/* var←14720 */  ))+8) );
            var←15808 = (word) ( *( (funcPtr) ((*  (ptr) pd93 ))))((*  (BIT96Ptr) ((( (ptr) lf←0568)+4)/* var←0300 */ ) ), pd93);
            };
         };
      goto lab←100083;
      lab←100083: ;
      wordInPage←4734 = var←15808;
      };
SOURCEPOP(13770, 96, 13702, 385);
SOURCE(13876, 136);
   {
      word w←4756 = 0;
SOURCE(13878, 15);
SOURCEPOP(13878, 15, 13876, 136);
SOURCE(13895, 68);
      lab←100084: ;
      if ((w←4756 < wordInPage←4734)) {
         }
      else {
         goto lab←100086;
         };
SOURCE(13920, 43);
      {
         word var←0532;
         {
            word var←0531;
            {
               word var←15824;
               word p←11986;
SOURCE(807, 106);
               p←11986 = IOP2( + , (* (( (ptr) gf←0485)+68) ), w←4756);
SOURCEPOP(807, 106, 13920, 43);
SOURCE(892, 21);
               var←15824 = p←11986;
               goto lab←100089;
SOURCEPOP(892, 21, 13920, 43);
               lab←100089: ;
               var←0531 = (* (( (ptr) var←15824)+1) );
               };
            var←0532 = IOP2( + , (
                  SGNCK( (unsigned) w←4756)
                  ), var←0531);
            };
         w←4756 = var←0532;
         };
SOURCEPOP(13920, 43, 13895, 68);
      goto lab←100084;
      lab←100086: ;
SOURCEPOP(13895, 68, 13876, 136);
SOURCE(13974, 36);
      if ((w←4756 > wordInPage←4734)) {
SOURCE(13997, 13);
         temp94 = 1;
         lf←0568 = XR←ExtensionFree(lf←0568);
         XR←PopHandler();
         return(temp94);
SOURCEPOP(13997, 13, 13974, 36);
         };
SOURCEPOP(13974, 36, 13876, 136);
      };
SOURCEPOP(13876, 136, 13702, 385);
SOURCE(14023, 64);
SOURCE(14024, 61);
   {
      word var←0534;
      {
         word var←0533;
         {
            word var←15840;
            word p←11962;
SOURCE(807, 106);
            p←11962 = IOP2( + , (* (( (ptr) gf←0485)+68) ), wordInPage←4734);
SOURCEPOP(807, 106, 14024, 61);
SOURCE(892, 21);
            var←15840 = p←11962;
            goto lab←100090;
SOURCEPOP(892, 21, 14024, 61);
            lab←100090: ;
            var←0533 = (var←0533 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←15840 ) >> 4 & 01)) << 0);
            };
         var←0534 = (var←0533 & 01);
         };
      temp95 = var←0534;
      lf←0568 = XR←ExtensionFree(lf←0568);
      XR←PopHandler();
      return(temp95);
      };
SOURCEPOP(14024, 61, 14023, 64);
SOURCEPOP(14023, 64, 13702, 385);
   };

static word CheckCurrentRecord←960()
   {
   word temp105;
   word temp106;
   register word lf←0569;
   register ptr gf←0486 =  (ptr) &globalframe;
   word truncated←3954;
   lf←0569 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0569, 0);
   /* CheckCurrentRecord */ 
SOURCE(14094, 1145);
SOURCE(14165, 1074);
SOURCE(14167, 96);
   {
      word wordInPage←4778;
      word var←15872;
      word p←11938;
      word var←16000;
SOURCE(14167, 96);
      {
         word var←15856;
         BIT96 r←12770;
         word wordsPerPage←12784;
SOURCE(1461, 0);
         r←12770 = (*  (BIT96Ptr) (( (ptr) gf←0486)+71)/* recordStream←2256 */  );
SOURCEPOP(1461, 0, 14167, 96);
SOURCE(1461, 0);
         wordsPerPage←12784 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0486)+153)/* var←14704 */  ))+5) ) );
SOURCEPOP(1461, 0, 14167, 96);
         {
            /* declaration of var←0312 skipped */ 
            /* declaration of var←0313 skipped */ 
            {
               word pd96;
               pd96 = (* (( (ptr) (* (( (ptr) gf←0486)+154)/* var←14720 */  ))+13) );
               {
                  word pd97;
                  pd97 = (* (( (ptr) (* (( (ptr) gf←0486)+154)/* var←14720 */  ))+6) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd97 ))))((word) (( (bytePtr) lf←0569)+28)/* var←0313 */ , wordsPerPage←12784, pd97);
                  };
               (void) ( *( (funcPtr) ((*  (ptr) pd96 ))))((word) (( (bytePtr) lf←0569)+16)/* var←0312 */ , r←12770, (*  (BIT96Ptr) (( (ptr) lf←0569)+7)/* var←0313 */  ), pd96);
               };
            {
               word pd98;
               pd98 = (* (( (ptr) (* (( (ptr) gf←0486)+154)/* var←14720 */  ))+8) );
               var←15856 = (word) ( *( (funcPtr) ((*  (ptr) pd98 ))))((*  (BIT96Ptr) ((( (ptr) lf←0569)+4)/* var←0312 */ ) ), pd98);
               };
            };
         goto lab←100094;
         lab←100094: ;
         wordInPage←4778 = var←15856;
         };
SOURCEPOP(14167, 96, 14167, 96);
SOURCE(14265, 79);
      if ((0 != (word) VerifyCurrentRecordID←930())) {
SOURCE(14314, 30);
         (void) XR←RaiseError((word) (( (bytePtr) gf←0486)+332), 0);
SOURCEPOP(14314, 30, 14265, 79);
         };
SOURCEPOP(14265, 79, 14167, 96);
SOURCE(14346, 663);
      {
         word x99;
SOURCE(807, 106);
         p←11938 = IOP2( + , (* (( (ptr) gf←0486)+68) ), wordInPage←4778);
SOURCEPOP(807, 106, 14346, 663);
SOURCE(892, 21);
         var←15872 = p←11938;
         goto lab←100095;
SOURCEPOP(892, 21, 14346, 663);
         lab←100095: ;
         x99 =  (word) ( (unsigned) (*  (bytePtr) var←15872 ) >> 5 & 01);
         if (x99) {
            {
               word var←0536;
               word var←15968;
SOURCE(14410, 90);
               {
                  word ctmp100;
                  {
                     word var←0535;
                     {
                        word var←15888;
                        word p←11914;
SOURCE(807, 106);
                        p←11914 = IOP2( + , (* (( (ptr) gf←0486)+68) ), wordInPage←4778);
SOURCEPOP(807, 106, 14410, 90);
SOURCE(892, 21);
                        var←15888 = p←11914;
                        goto lab←100096;
SOURCEPOP(892, 21, 14410, 90);
                        lab←100096: ;
                        var←0535 = (* (( (ptr) var←15888)+1) );
                        };
                     var←0536 = IOP2( + , var←0535, (
                           SGNCK( (unsigned) wordInPage←4778)
                           ));
                     };
                  if ((var←0536 != (
                     ctmp100 =  (unsigned) (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0486)+153)/* var←14704 */  ))+5) ) ),
                     SGNCK(ctmp100)
                     ))) {
SOURCE(14500, 16);
                     goto lab←100092;
SOURCEPOP(14500, 16, 14410, 90);
                     };
                  };
SOURCEPOP(14410, 90, 14346, 663);
SOURCE(14518, 263);
               lab←100097: ;
               {
                  word var←0537;
                  word var←0538;
                  word var←0539;
SOURCE(14521, 37);
                  if ((0 != (word) AdvancePageStream←720())) {
SOURCE(14558, 20);
                     goto lab←100093;
SOURCEPOP(14558, 20, 14521, 37);
                     };
SOURCEPOP(14521, 37, 14518, 263);
SOURCE(14580, 54);
                  {
                     word var←15904;
                     word p←11890;
SOURCE(807, 106);
                     p←11890 = (* (( (ptr) gf←0486)+68) );
SOURCEPOP(807, 106, 14580, 54);
SOURCE(892, 21);
                     var←15904 = p←11890;
                     goto lab←100102;
SOURCEPOP(892, 21, 14580, 54);
                     lab←100102: ;
                     var←0537 = (var←0537 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←15904 ) >> 4 & 01)) << 0);
                     };
                  if ( ! (var←0537 & 01)) {
SOURCE(14634, 20);
                     goto lab←100093;
SOURCEPOP(14634, 20, 14580, 54);
                     };
SOURCEPOP(14580, 54, 14518, 263);
SOURCE(14656, 55);
                  {
                     word var←15920;
                     word p←11866;
SOURCE(807, 106);
                     p←11866 = (* (( (ptr) gf←0486)+68) );
SOURCEPOP(807, 106, 14656, 55);
SOURCE(892, 21);
                     var←15920 = p←11866;
                     goto lab←100103;
SOURCEPOP(892, 21, 14656, 55);
                     lab←100103: ;
                     var←0538 = (var←0538 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←15920 ) >> 5 & 01)) << 0);
                     };
                  if ( ! (var←0538 & 01)) {
SOURCE(14711, 4);
                     goto lab←100100;
SOURCEPOP(14711, 4, 14656, 55);
                     };
SOURCEPOP(14656, 55, 14518, 263);
SOURCE(14717, 64);
                  {
                     word ctmp101;
                     {
                        word var←15936;
                        word p←11842;
SOURCE(807, 106);
                        p←11842 = (* (( (ptr) gf←0486)+68) );
SOURCEPOP(807, 106, 14717, 64);
SOURCE(892, 21);
                        var←15936 = p←11842;
                        goto lab←100104;
SOURCEPOP(892, 21, 14717, 64);
                        lab←100104: ;
                        var←0539 = (* (( (ptr) var←15936)+1) );
                        };
                     if ((var←0539 != (
                        ctmp101 =  (unsigned) (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0486)+153)/* var←14704 */  ))+5) ) ),
                        SGNCK(ctmp101)
                        ))) {
SOURCE(14781, 16);
                        goto lab←100092;
SOURCEPOP(14781, 16, 14717, 64);
                        };
                     };
SOURCEPOP(14717, 64, 14518, 263);
                  };
               goto lab←100097;
               lab←100100: ;
SOURCEPOP(14518, 263, 14346, 663);
SOURCE(14808, 76);
               {
                  word tc;
                  word ctmp102;
                  {
                     word var←15952;
                     word p←11818;
SOURCE(807, 106);
                     p←11818 = (* (( (ptr) gf←0486)+68) );
SOURCEPOP(807, 106, 14808, 76);
SOURCE(892, 21);
                     var←15952 = p←11818;
                     goto lab←100105;
SOURCEPOP(892, 21, 14808, 76);
                     lab←100105: ;
                     var←15968 = (* (( (ptr) var←15952)+1) );
                     };
                  if (IOP2( < , var←15968, 1)) {
                     tc =  (word) 1;
                     }
                  else {
                     tc =  (word) IOP2( > , var←15968, (
                           ctmp102 =  (unsigned) (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0486)+153)/* var←14704 */  ))+5) ) ),
                           SGNCK(ctmp102)
                           ));
                     };
                  if (tc) {
SOURCE(14884, 16);
                     goto lab←100092;
SOURCEPOP(14884, 16, 14808, 76);
                     };
                  };
SOURCEPOP(14808, 76, 14346, 663);
               };
            }
         else {
SOURCE(14911, 98);
            {
               word tc103;
               word ctmp104;
               {
                  word var←15984;
                  word p←11794;
SOURCE(807, 106);
                  p←11794 = IOP2( + , (* (( (ptr) gf←0486)+68) ), wordInPage←4778);
SOURCEPOP(807, 106, 14911, 98);
SOURCE(892, 21);
                  var←15984 = p←11794;
                  goto lab←100106;
SOURCEPOP(892, 21, 14911, 98);
                  lab←100106: ;
                  var←16000 = (* (( (ptr) var←15984)+1) );
                  };
               if (IOP2( < , var←16000, 1)) {
                  tc103 =  (word) 1;
                  }
               else {
                  tc103 =  (word) IOP2( > , var←16000, (
                        ctmp104 =  (unsigned) ((*  (ptr) (* (( (ptr) (* (( (ptr) gf←0486)+153)/* var←14704 */  ))+5) ) ) - wordInPage←4778),
                        SGNCK(ctmp104)
                        ));
                  };
               if (tc103) {
SOURCE(15009, 16);
                  goto lab←100092;
SOURCEPOP(15009, 16, 14911, 98);
                  };
               };
SOURCEPOP(14911, 98, 14346, 663);
            };
         };
SOURCEPOP(14346, 663, 14167, 96);
SOURCE(15030, 30);
      (void) SetPageStreamPosFromSavedPos←750();
SOURCEPOP(15030, 30, 14167, 96);
SOURCE(15062, 14);
      temp105 = 0;
      lf←0569 = XR←ExtensionFree(lf←0569);
      XR←PopHandler();
      return(temp105);
SOURCEPOP(15062, 14, 14167, 96);
      };
SOURCEPOP(14167, 96, 14165, 1074);
   goto lab←100091;
   lab←100092: ;
SOURCE(15101, 30);
   (void) SetPageStreamPosFromSavedPos←750();
SOURCEPOP(15101, 30, 14165, 1074);
SOURCE(15134, 31);
   (void) XR←RaiseError((word) (( (bytePtr) gf←0486)+332), 0);
SOURCEPOP(15134, 31, 14165, 1074);
   goto lab←100091;
   lab←100093: ;
SOURCE(15189, 30);
   (void) SetPageStreamPosFromSavedPos←750();
SOURCEPOP(15189, 30, 14165, 1074);
SOURCE(15222, 14);
   temp106 = 1;
   lf←0569 = XR←ExtensionFree(lf←0569);
   XR←PopHandler();
   return(temp106);
SOURCEPOP(15222, 14, 14165, 1074);
   goto lab←100091;
   lab←100091: ;
SOURCEPOP(14165, 1074, 14094, 1145);
   };

static void GetCurrentRecord←990(formal←0351, currentRecord←3984, to←3998)
   word formal←0351;
   BIT96 currentRecord←3984;
   BIT96 to←3998;
   {
   register word lf←0570;
   register ptr gf←0487 =  (ptr) &globalframe;
   word status←4020;
   word wordsRead←4034;
   lf←0570 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0570, 0);
   /* GetCurrentRecord */ 
SOURCE(15244, 1727);
SOURCE(15381, 1590);
SOURCE(15383, 96);
   {
      word wordInPage←4800;
      word var←0540;
SOURCE(15383, 96);
      {
         word var←16016;
         BIT96 r←12732;
         word wordsPerPage←12746;
SOURCE(1461, 0);
         r←12732 = (*  (BIT96Ptr) (( (ptr) gf←0487)+71)/* recordStream←2256 */  );
SOURCEPOP(1461, 0, 15383, 96);
SOURCE(1461, 0);
         wordsPerPage←12746 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0487)+153)/* var←14704 */  ))+5) ) );
SOURCEPOP(1461, 0, 15383, 96);
         {
            /* declaration of var←0338 skipped */ 
            /* declaration of var←0339 skipped */ 
            {
               word pd107;
               pd107 = (* (( (ptr) (* (( (ptr) gf←0487)+154)/* var←14720 */  ))+13) );
               {
                  word pd108;
                  pd108 = (* (( (ptr) (* (( (ptr) gf←0487)+154)/* var←14720 */  ))+6) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd108 ))))((word) (( (bytePtr) lf←0570)+28)/* var←0339 */ , wordsPerPage←12746, pd108);
                  };
               (void) ( *( (funcPtr) ((*  (ptr) pd107 ))))((word) (( (bytePtr) lf←0570)+16)/* var←0338 */ , r←12732, (*  (BIT96Ptr) (( (ptr) lf←0570)+7)/* var←0339 */  ), pd107);
               };
            {
               word pd109;
               pd109 = (* (( (ptr) (* (( (ptr) gf←0487)+154)/* var←14720 */  ))+8) );
               var←16016 = (word) ( *( (funcPtr) ((*  (ptr) pd109 ))))((*  (BIT96Ptr) ((( (ptr) lf←0570)+4)/* var←0338 */ ) ), pd109);
               };
            };
         goto lab←100110;
         lab←100110: ;
         wordInPage←4800 = var←16016;
         };
SOURCEPOP(15383, 96, 15383, 96);
SOURCE(15481, 13);
      wordsRead←4034 = 0;
SOURCEPOP(15481, 13, 15383, 96);
SOURCE(15496, 97);
      {
         word var←16032;
         BIT96 b←12670;
SOURCE(327, 0);
         b←12670 = (*  (BIT96Ptr) (( (ptr) gf←0487)+71)/* recordStream←2256 */  );
SOURCEPOP(327, 0, 15496, 97);
         {
            word pd110;
            pd110 = (* (( (ptr) (* (( (ptr) gf←0487)+154)/* var←14720 */  ))+18) );
            var←16032 = (word) ( *( (funcPtr) ((*  (ptr) pd110 ))))(currentRecord←3984, b←12670, pd110);
            };
         goto lab←100111;
         lab←100111: ;
         var←0540 = var←16032;
         };
      if ((var←0540 != 1)) {
SOURCE(15565, 28);
         (void) XR←RaiseError((word) (( (bytePtr) gf←0487)+328), 0);
SOURCEPOP(15565, 28, 15496, 97);
         };
SOURCEPOP(15496, 97, 15383, 96);
SOURCE(15595, 1146);
      lab←100112: ;
SOURCE(15595, 1146);
      {
         word wordsThisBlock←4822;
         word wordsThisCopy←4836;
         word hasContinuation←4850;
         word isContinuation←4864;
SOURCE(15598, 39);
SOURCEPOP(15598, 39, 15595, 1146);
SOURCE(15598, 39);
SOURCEPOP(15598, 39, 15595, 1146);
SOURCE(15639, 37);
SOURCEPOP(15639, 37, 15595, 1146);
SOURCE(15639, 37);
SOURCEPOP(15639, 37, 15595, 1146);
SOURCE(15686, 135);
SOURCE(15688, 131);
         {
            BIT64 var←16064;
            {
               word var←16048;
               word p←11770;
SOURCE(807, 106);
               p←11770 = IOP2( + , (* (( (ptr) gf←0487)+68) ), wordInPage←4800);
SOURCEPOP(807, 106, 15688, 131);
SOURCE(892, 21);
               var←16048 = p←11770;
               goto lab←100117;
SOURCEPOP(892, 21, 15688, 131);
               lab←100117: ;
               var←16064 = (*  (BIT64Ptr) var←16048 );
               };
            wordsThisBlock←4822 = var←16064.f1;
            isContinuation←4864 = ( (unsigned) (*  (bytePtr) &var←16064 ) >> 4 & 01);
            hasContinuation←4850 = ( (unsigned) (*  (bytePtr) &var←16064 ) >> 5 & 01);
            };
SOURCEPOP(15688, 131, 15686, 135);
SOURCEPOP(15686, 135, 15595, 1146);
SOURCE(15824, 45);
         if ( ( (wordsRead←4034 > 0) ? (0 == isContinuation←4864) : 0 ) ) {
SOURCE(15869, 20);
            goto lab←100109;
SOURCEPOP(15869, 20, 15824, 45);
            };
SOURCEPOP(15824, 45, 15595, 1146);
SOURCE(15891, 54);
         wordsThisBlock←4822 = (wordsThisBlock←4822 - 8);
SOURCEPOP(15891, 54, 15595, 1146);
SOURCE(15947, 46);
         wordInPage←4800 = (wordInPage←4800 + 8);
SOURCEPOP(15947, 46, 15595, 1146);
SOURCE(15995, 746);
         lab←100118: ;
SOURCE(15998, 46);
         {
            word x111;
            wordsThisCopy←4836 = (x111 = to←3998.f1,
               MIN( (unsigned) , x111, wordsThisBlock←4822));
            };
SOURCEPOP(15998, 46, 15995, 746);
SOURCE(16046, 142);
         if ((to←3998.f0 != 0)) {
SOURCE(16070, 85);
            {
               word from←12632;
               word to←12646;
SOURCE(16070, 85);
               from←12632 = IOP2( + , (* (( (ptr) gf←0487)+68) ), wordInPage←4800);
SOURCEPOP(16070, 85, 16070, 85);
SOURCE(16070, 85);
               to←12646 = to←3998.f0;
SOURCEPOP(16070, 85, 16070, 85);
               (void) XR←MoveWords(to←12646, from←12632, BCK(wordsThisCopy←4836, 2147483648));
               };
SOURCEPOP(16070, 85, 16046, 142);
SOURCE(16157, 31);
            to←3998.f0 = IOP2( + , to←3998.f0, wordsThisCopy←4836);
SOURCEPOP(16157, 31, 16046, 142);
            };
SOURCEPOP(16046, 142, 15995, 746);
SOURCE(16193, 35);
         wordsRead←4034 = (wordsRead←4034 + wordsThisCopy←4836);
SOURCEPOP(16193, 35, 15995, 746);
SOURCE(16230, 511);
         if ((wordsThisCopy←4836 != to←3998.f1)) {
SOURCE(16266, 35);
            to←3998.f1 = (to←3998.f1 - wordsThisCopy←4836);
SOURCEPOP(16266, 35, 16230, 511);
SOURCE(16303, 28);
            if ((0 == hasContinuation←4850)) {
SOURCE(16331, 20);
               goto lab←100108;
SOURCEPOP(16331, 20, 16303, 28);
               };
SOURCEPOP(16303, 28, 16230, 511);
SOURCE(16353, 37);
            if ((0 != (word) AdvancePageStream←720())) {
SOURCE(16390, 20);
               goto lab←100109;
SOURCEPOP(16390, 20, 16353, 37);
               };
SOURCEPOP(16353, 37, 16230, 511);
SOURCE(16412, 14);
            wordInPage←4800 = 0;
SOURCEPOP(16412, 14, 16230, 511);
SOURCE(16428, 14);
            goto lab←100123;
SOURCEPOP(16428, 14, 16230, 511);
            }
         else {
SOURCE(16451, 290);
            if ((to←3998.f2 != 0)) {
SOURCE(16481, 105);
SOURCE(16483, 13);
               to←3998 = (*  (BIT96Ptr) to←3998.f2 );
SOURCEPOP(16483, 13, 16481, 105);
SOURCE(16498, 45);
               wordsThisBlock←4822 = (wordsThisBlock←4822 - wordsThisCopy←4836);
SOURCEPOP(16498, 45, 16481, 105);
SOURCE(16545, 39);
               wordInPage←4800 = (wordInPage←4800 + wordsThisCopy←4836);
SOURCEPOP(16545, 39, 16481, 105);
SOURCEPOP(16481, 105, 16451, 290);
               }
            else {
SOURCE(16595, 30);
               (void) SetPageStreamPosFromSavedPos←750();
SOURCEPOP(16595, 30, 16451, 290);
SOURCE(16627, 114);
               (*  (ptr) (word) formal←0351 ) = (word)  (  ( (0 == hasContinuation←4850) ? (wordsThisBlock←4822 == wordsThisCopy←4836) : 0 )  ? 0 : 1 ) ;
               (* (( (ptr) (word) formal←0351) + 1) ) = (word) wordsRead←4034;
               XR←PopHandler();
               goto lab←0217;
SOURCEPOP(16627, 114, 16451, 290);
               };
SOURCEPOP(16451, 290, 16230, 511);
            };
SOURCEPOP(16230, 511, 15995, 746);
         goto lab←100118;
         lab←100123: ;
         goto lab←100121;
         lab←100121: ;
SOURCEPOP(15995, 746, 15595, 1146);
         };
SOURCEPOP(15595, 1146, 15595, 1146);
      goto lab←100112;
SOURCEPOP(15595, 1146, 15383, 96);
      };
SOURCEPOP(15383, 96, 15381, 1590);
   goto lab←100107;
   lab←100108: ;
SOURCE(16814, 30);
   (void) SetPageStreamPosFromSavedPos←750();
SOURCEPOP(16814, 30, 15381, 1590);
SOURCE(16846, 36);
   (*  (ptr) (word) formal←0351 ) = (word) 2;
   (* (( (ptr) (word) formal←0351) + 1) ) = (word) wordsRead←4034;
   XR←PopHandler();
   goto lab←0217;
SOURCEPOP(16846, 36, 15381, 1590);
   goto lab←100107;
   lab←100109: ;
SOURCE(16906, 30);
   (void) SetPageStreamPosFromSavedPos←750();
SOURCEPOP(16906, 30, 15381, 1590);
SOURCE(16938, 28);
   (void) XR←RaiseError((word) (( (bytePtr) gf←0487)+328), 0);
SOURCEPOP(16938, 28, 15381, 1590);
   goto lab←100107;
   lab←100107: ;
SOURCEPOP(15381, 1590, 15244, 1727);
   XR←PopHandler();
   lab←0217: ;
   lf←0570 = XR←ExtensionFree(lf←0570);
   };

static void GetCurrentPageAndVersion←1020(formal←0354)
   word formal←0354;
   {
   register ptr gf←0488 =  (ptr) &globalframe;
   /* GetCurrentPageAndVersion */ 
SOURCE(16975, 144);
   /* removed dead decl of 4064 */ 
   /* removed dead decl of 4078 */ 
SOURCE(17064, 55);
   {
      word ctmp112;
      (*  (ptr) (word) formal←0354 ) = (word) IOP2( + , (* (( (ptr) gf←0488)+59) ), (
            ctmp112 =  (unsigned) (* (( (ptr) gf←0488)+64) ),
            SGNCK(ctmp112)
            ));
      (* (( (ptr) (word) formal←0354) + 1) ) = (* (( (ptr) gf←0488)+66) );
      };
   return;
SOURCEPOP(17064, 55, 16975, 144);
   };

static void AdvanceRecordStream←1050(formal←0383)
   word formal←0383;
   {
   register word lf←0571;
   register ptr gf←0489 =  (ptr) &globalframe;
   word endOfLog←4108;
   word truncatedRecord←4122;
   BIT96 currentRecord←4136;
   word wordsInRecord←4886 = 0;
   lf←0571 = XR←ExtensionAlloc(10);
   XR←PushHandler(lf←0571, 0);
   /* AdvanceRecordStream */ 
SOURCE(17125, 1321);
SOURCE(17240, 27);
SOURCEPOP(17240, 27, 17125, 1321);
SOURCE(17269, 34);
   endOfLog←4108 = (
      truncatedRecord←4122 = 0
      );
SOURCEPOP(17269, 34, 17125, 1321);
SOURCE(17305, 1141);
SOURCE(17326, 96);
   {
      word wordInPage←4908;
      word var←0545;
SOURCE(17326, 96);
      {
         word var←16080;
         BIT96 r←12694;
         word wordsPerPage←12708;
SOURCE(1461, 0);
         r←12694 = (*  (BIT96Ptr) (( (ptr) gf←0489)+71)/* recordStream←2256 */  );
SOURCEPOP(1461, 0, 17326, 96);
SOURCE(1461, 0);
         wordsPerPage←12708 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0489)+153)/* var←14704 */  ))+5) ) );
SOURCEPOP(1461, 0, 17326, 96);
         {
            /* declaration of var←0363 skipped */ 
            /* declaration of var←0364 skipped */ 
            {
               word pd113;
               pd113 = (* (( (ptr) (* (( (ptr) gf←0489)+154)/* var←14720 */  ))+13) );
               {
                  word pd114;
                  pd114 = (* (( (ptr) (* (( (ptr) gf←0489)+154)/* var←14720 */  ))+6) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd114 ))))((word) (( (bytePtr) lf←0571)+28)/* var←0364 */ , wordsPerPage←12708, pd114);
                  };
               (void) ( *( (funcPtr) ((*  (ptr) pd113 ))))((word) (( (bytePtr) lf←0571)+16)/* var←0363 */ , r←12694, (*  (BIT96Ptr) (( (ptr) lf←0571)+7)/* var←0364 */  ), pd113);
               };
            {
               word pd115;
               pd115 = (* (( (ptr) (* (( (ptr) gf←0489)+154)/* var←14720 */  ))+8) );
               var←16080 = (word) ( *( (funcPtr) ((*  (ptr) pd115 ))))((*  (BIT96Ptr) ((( (ptr) lf←0571)+4)/* var←0363 */ ) ), pd115);
               };
            };
         goto lab←100126;
         lab←100126: ;
         wordInPage←4908 = var←16080;
         };
SOURCEPOP(17326, 96, 17326, 96);
SOURCE(17424, 26);
      (void) ForgetSavedPageStreamPos←690();
SOURCEPOP(17424, 26, 17326, 96);
SOURCE(17452, 325);
      {
         word var←16096;
         word p←11746;
         lab←100127: ;
         {
            word x116;
SOURCE(807, 106);
            p←11746 = IOP2( + , (* (( (ptr) gf←0489)+68) ), wordInPage←4908);
SOURCEPOP(807, 106, 17452, 325);
SOURCE(892, 21);
            var←16096 = p←11746;
            goto lab←100132;
SOURCEPOP(892, 21, 17452, 325);
            lab←100132: ;
            x116 =  (word) ( (unsigned) (*  (bytePtr) var←16096 ) >> 5 & 01);
            if (x116) {
               }
            else {
               goto lab←100129;
               };
            };
         {
            word var←0543;
SOURCE(17515, 76);
            {
               word var←0542;
               {
                  word var←0541;
                  {
                     word var←16112;
                     word p←11722;
SOURCE(807, 106);
                     p←11722 = IOP2( + , (* (( (ptr) gf←0489)+68) ), wordInPage←4908);
SOURCEPOP(807, 106, 17515, 76);
SOURCE(892, 21);
                     var←16112 = p←11722;
                     goto lab←100133;
SOURCEPOP(892, 21, 17515, 76);
                     lab←100133: ;
                     var←0541 = (* (( (ptr) var←16112)+1) );
                     };
                  var←0542 = IOP2( + , (
                        SGNCK( (unsigned) wordsInRecord←4886)
                        ), var←0541);
                  };
               wordsInRecord←4886 = var←0542;
               };
SOURCEPOP(17515, 76, 17452, 325);
SOURCE(17593, 14);
            wordInPage←4908 = 0;
SOURCEPOP(17593, 14, 17452, 325);
SOURCE(17609, 72);
            if ((0 != (word) AdvancePageStream←720())) {
SOURCE(17648, 33);
               endOfLog←4108 = (
                  truncatedRecord←4122 = 1
                  );
SOURCEPOP(17648, 33, 17609, 72);
SOURCE(17684, 12);
               goto lab←100125;
SOURCEPOP(17684, 12, 17609, 72);
               };
SOURCEPOP(17609, 72, 17452, 325);
SOURCE(17699, 78);
            {
               word var←16128;
               word p←11698;
SOURCE(807, 106);
               p←11698 = (* (( (ptr) gf←0489)+68) );
SOURCEPOP(807, 106, 17699, 78);
SOURCE(892, 21);
               var←16128 = p←11698;
               goto lab←100134;
SOURCEPOP(892, 21, 17699, 78);
               lab←100134: ;
               var←0543 = (var←0543 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←16128 ) >> 4 & 01)) << 0);
               };
            if ( ! (var←0543 & 01)) {
SOURCE(17755, 22);
               truncatedRecord←4122 = 1;
SOURCEPOP(17755, 22, 17699, 78);
SOURCE(17780, 12);
               goto lab←100125;
SOURCEPOP(17780, 12, 17699, 78);
               };
SOURCEPOP(17699, 78, 17452, 325);
            };
         goto lab←100127;
         lab←100129: ;
         };
SOURCEPOP(17452, 325, 17326, 96);
SOURCE(17804, 170);
      {
         word wordsInLastBlock←4930;
SOURCE(17806, 73);
         {
            word var←0544;
            {
               word var←16144;
               word p←11674;
SOURCE(807, 106);
               p←11674 = IOP2( + , (* (( (ptr) gf←0489)+68) ), wordInPage←4908);
SOURCEPOP(807, 106, 17806, 73);
SOURCE(892, 21);
               var←16144 = p←11674;
               goto lab←100135;
SOURCEPOP(892, 21, 17806, 73);
               lab←100135: ;
               var←0544 = (* (( (ptr) var←16144)+1) );
               };
            wordsInLastBlock←4930 = var←0544;
            };
SOURCEPOP(17806, 73, 17804, 170);
SOURCE(17881, 42);
         wordInPage←4908 = (wordInPage←4908 + wordsInLastBlock←4930);
SOURCEPOP(17881, 42, 17804, 170);
SOURCE(17925, 49);
         wordsInRecord←4886 = (wordsInRecord←4886 + wordsInLastBlock←4930);
SOURCEPOP(17925, 49, 17804, 170);
         };
SOURCEPOP(17804, 170, 17326, 96);
SOURCE(17977, 194);
      {
         word tc117;
         if ((wordInPage←4908 < (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0489)+153)/* var←14704 */  ))+5) ) ))) {
            {
               word var←16160;
               word p←11650;
SOURCE(807, 106);
               p←11650 = IOP2( + , (* (( (ptr) gf←0489)+68) ), wordInPage←4908);
SOURCEPOP(807, 106, 17977, 194);
SOURCE(892, 21);
               var←16160 = p←11650;
               goto lab←100136;
SOURCEPOP(892, 21, 17977, 194);
               lab←100136: ;
               var←0545 = (* (( (ptr) var←16160)+1) );
               };
            tc117 =  (word) (var←0545 == 0);
            }
         else {
            tc117 =  (word) 0;
            };
         if (tc117) {
SOURCE(18073, 64);
            wordsInRecord←4886 = (wordsInRecord←4886 + ((*  (ptr) (* (( (ptr) (* (( (ptr) gf←0489)+153)/* var←14704 */  ))+5) ) ) - wordInPage←4908));
SOURCEPOP(18073, 64, 17977, 194);
SOURCE(18139, 32);
            wordInPage←4908 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0489)+153)/* var←14704 */  ))+5) ) );
SOURCEPOP(18139, 32, 17977, 194);
            };
         };
SOURCEPOP(17977, 194, 17326, 96);
SOURCE(18176, 91);
      if ( ( (wordInPage←4908 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0489)+153)/* var←14704 */  ))+5) ) )) ? (0 != (word) AdvancePageStream←720()) : 0 ) ) {
SOURCE(18252, 15);
         endOfLog←4108 = 1;
SOURCEPOP(18252, 15, 18176, 91);
         };
SOURCEPOP(18176, 91, 17326, 96);
SOURCE(18272, 18);
      goto lab←100125;
SOURCEPOP(18272, 18, 17326, 96);
      };
SOURCEPOP(17326, 96, 17305, 1141);
   goto lab←100124;
   lab←100125: ;
SOURCE(18302, 19);
   (void) SavePageStreamPos←630();
SOURCEPOP(18302, 19, 17305, 1141);
SOURCE(18323, 67);
   {
      BIT96 var←16176;
      BIT96 r←13268;
SOURCE(960, 0);
      r←13268 = (*  (BIT96Ptr) (( (ptr) gf←0489)+71)/* recordStream←2256 */  );
SOURCEPOP(960, 0, 18323, 67);
      {
         BIT96 var←16192;
         BIT96 r←13292;
         word words←13306;
         r←13292 = r←13268;
         words←13306 = wordsInRecord←4886;
         {
            /* declaration of var←0381 skipped */ 
            {
               BIT96 var←0546;
               {
                  /* declaration of var←0382 skipped */ 
                  {
                     word pd118;
                     pd118 = (* (( (ptr) (* (( (ptr) gf←0489)+154)/* var←14720 */  ))+6) );
                     (void) ( *( (funcPtr) ((*  (ptr) pd118 ))))((word) (( (bytePtr) lf←0571)+28)/* var←0382 */ , words←13306, pd118);
                     };
                  var←0546 = (*  (BIT96Ptr) (( (ptr) lf←0571)+7)/* var←0382 */  );
                  };
               {
                  word pd119;
                  pd119 = (* (( (ptr) (* (( (ptr) gf←0489)+154)/* var←14720 */  ))+10) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd119 ))))((word) (( (bytePtr) lf←0571)+16)/* var←0381 */ , r←13292, var←0546, pd119);
                  };
               };
            var←16192 = (*  (BIT96Ptr) (( (ptr) lf←0571)+4)/* var←0381 */  );
            };
         goto lab←100137;
         lab←100137: ;
         var←16176 = var←16192;
         };
      goto lab←100138;
      lab←100138: ;
      (*  (BIT96Ptr) (( (ptr) gf←0489)+71)/* recordStream←2256 */  ) = var←16176;
      };
SOURCEPOP(18323, 67, 17305, 1141);
SOURCE(18392, 51);
   (*  (ptr) (word) formal←0383 ) = (word) endOfLog←4108;
   (* (( (ptr) (word) formal←0383) + 1) ) = (word) truncatedRecord←4122;
   (*  (BIT96Ptr) (( (ptr) (word) formal←0383) + 2) ) = (*  (BIT96Ptr) (( (ptr) gf←0489)+71)/* recordStream←2256 */  );
   XR←PopHandler();
   goto lab←0218;
SOURCEPOP(18392, 51, 17305, 1141);
   goto lab←100124;
   lab←100124: ;
SOURCEPOP(17305, 1141, 17125, 1321);
   XR←PopHandler();
   lab←0218: ;
   lf←0571 = XR←ExtensionFree(lf←0571);
   };

static void LocateFirstRecord←1080(formal←0398)
   word formal←0398;
   {
   register word lf←0572;
   register ptr gf←0490 =  (ptr) &globalframe;
   BIT96 firstRecord←4166;
   word notStartOfRecord←4952;
   word endOfLog←4966 = 0;
   lf←0572 = XR←ExtensionAlloc(14);
   XR←PushHandler(lf←0572, 0);
   /* LocateFirstRecord */ 
SOURCE(18496, 463);
SOURCE(18568, 22);
SOURCEPOP(18568, 22, 18496, 463);
SOURCE(18592, 22);
SOURCEPOP(18592, 22, 18496, 463);
SOURCE(18616, 145);
   {
      BIT128 var←16224;
      {
         /* declaration of var←0388 skipped */ 
         {
            BIT96 var←0549;
            {
               BIT96 var←16208;
               word pages←13448;
               word deviceCharacteristics←13462;
SOURCE(859, 0);
               pages←13448 = (word) LocateStartingPage←1110();
SOURCEPOP(859, 0, 18616, 145);
SOURCE(859, 0);
               deviceCharacteristics←13462 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0490)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(859, 0, 18616, 145);
               {
                  /* declaration of var←0392 skipped */ 
                  {
                     BIT96 var←0547;
                     BIT96 var←0548;
                     {
                        /* declaration of var←0393 skipped */ 
                        {
                           word pd120;
                           pd120 = (* (( (ptr) (* (( (ptr) gf←0490)+154)/* var←14720 */  ))+7) );
                           (void) ( *( (funcPtr) ((*  (ptr) pd120 ))))((word) (( (bytePtr) lf←0572)+44)/* var←0393 */ , pages←13448, pd120);
                           };
                        var←0547 = (*  (BIT96Ptr) (( (ptr) lf←0572)+11)/* var←0393 */  );
                        };
                     {
                        /* declaration of var←0394 skipped */ 
                        {
                           word pd121;
                           word ctmp122;
                           pd121 = (* (( (ptr) (* (( (ptr) gf←0490)+154)/* var←14720 */  ))+7) );
                           (void) ( *( (funcPtr) ((*  (ptr) pd121 ))))((word) (( (bytePtr) lf←0572)+44)/* var←0394 */ , (
/*1*/      ctmp122 =  (unsigned) (*  (ptr) deviceCharacteristics←13462 ),
/*1*/      SGNCK(ctmp122)
/*1*/      ), pd121);
                           };
                        var←0548 = (*  (BIT96Ptr) (( (ptr) lf←0572)+11)/* var←0394 */  );
                        };
                     {
                        word pd123;
                        pd123 = (* (( (ptr) (* (( (ptr) gf←0490)+154)/* var←14720 */  ))+15) );
                        (void) ( *( (funcPtr) ((*  (ptr) pd123 ))))((word) (( (bytePtr) lf←0572)+32)/* var←0392 */ , var←0547, var←0548, pd123);
                        };
                     };
                  var←16208 = (*  (BIT96Ptr) (( (ptr) lf←0572)+8)/* var←0392 */  );
                  };
               goto lab←100139;
               lab←100139: ;
               var←0549 = var←16208;
               };
            (void) OpenRecordStreamFromWord←780((word) (( (bytePtr) lf←0572)+16)/* var←0388 */ , var←0549);
            };
         var←16224 = (*  (BIT128Ptr) (( (ptr) lf←0572)+4)/* var←0388 */  );
         };
      notStartOfRecord←4952 = var←16224.f0;
      };
SOURCEPOP(18616, 145, 18496, 463);
SOURCE(18763, 69);
   if ((0 != notStartOfRecord←4952)) {
SOURCE(18788, 44);
      {
         BIT160 var←16240;
         {
            /* declaration of var←0396 skipped */ 
            (void) AdvanceRecordStream←1050((word) ((( (bytePtr) lf←0572)+16)/* var←0396 */ ));
            var←16240 = (*  (BIT160Ptr) (( (ptr) lf←0572)+4)/* var←0396 */  );
            };
         endOfLog←4966 = (*  (ptr) &var←16240 );
         };
SOURCEPOP(18788, 44, 18763, 69);
      };
SOURCEPOP(18763, 69, 18496, 463);
SOURCE(18834, 47);
   if ((0 != endOfLog←4966)) {
SOURCE(18851, 30);
      (void) XR←RaiseError((word) (( (bytePtr) gf←0490)+332), 0);
SOURCEPOP(18851, 30, 18834, 47);
      };
SOURCEPOP(18834, 47, 18496, 463);
SOURCE(18883, 33);
   {
      /* declaration of var←0397 skipped */ 
      (void) CurrentWordNumber←870((word) ((( (bytePtr) lf←0572)+16)/* var←0397 */ ));
      firstRecord←4166 = (*  (BIT96Ptr) (( (ptr) lf←0572)+4)/* var←0397 */  );
      };
SOURCEPOP(18883, 33, 18496, 463);
SOURCE(18918, 19);
   (void) CloseRecordStream←900();
SOURCEPOP(18918, 19, 18496, 463);
SOURCE(18939, 20);
   (*  (BIT96Ptr) formal←0398 ) = firstRecord←4166;
   XR←PopHandler();
   goto lab←0219;
SOURCEPOP(18939, 20, 18496, 463);
   XR←PopHandler();
   lab←0219: ;
   lf←0572 = XR←ExtensionFree(lf←0572);
   };

static word LocateStartingPage←1110()
   {
   word temp130;
   register word lf←0573;
   register ptr gf←0491 =  (ptr) &globalframe;
   /* declaration of var←16256 skipped */ 
   word startPage←5002;
   word beginPage←5016;
   lf←0573 = XR←ExtensionAlloc(6);
   XR←PushHandler(lf←0573, 0);
   /* LocateStartingPage */ 
SOURCE(18965, 772);
   /* removed dead decl of 4196 */ 
   {
      word tmpAddr124;
      tmpAddr124 = (word) (( (ptr) lf←0573)+4)/* var←16256 */ ;
      (*  (ptr) tmpAddr124 ) = (word) ( ((word)  (funcPtr) SkipAhead←1578) );
      (* (( (ptr) tmpAddr124) + 1) ) = (word) 1;
      };
SOURCE(19200, 32);
SOURCEPOP(19200, 32, 18965, 772);
SOURCE(19200, 32);
SOURCEPOP(19200, 32, 18965, 772);
SOURCE(19234, 209);
SOURCE(19278, 35);
   if ((0 != (word) OpenPageStream←540(0))) {
SOURCE(19313, 9);
      goto lab←100141;
SOURCEPOP(19313, 9, 19278, 35);
      };
SOURCEPOP(19278, 35, 19234, 209);
SOURCE(19324, 72);
   {
      register word var←16272 = 0;
      goto lab←100143;
      lab←100142: ;
SOURCE(19359, 37);
      if ((0 != (word) AdvancePageStream←720())) {
SOURCE(19396, 9);
         goto lab←100141;
SOURCEPOP(19396, 9, 19359, 37);
         };
SOURCEPOP(19359, 37, 19324, 72);
      var←16272 = IOP2( + , var←16272, 1);
      lab←100143: ;
      if (IOP2( < , var←16272, 40)) {
         goto lab←100142;
         };
      };
SOURCEPOP(19324, 72, 19234, 209);
   goto lab←100140;
   lab←100141: ;
SOURCE(19430, 11);
   {
      word pd125;
      pd125 = ((word) (( (bytePtr) lf←0573)+16)/* var←16256 */ );
      (void) ( *( (funcPtr) ((*  (ptr) pd125 ))))(pd125);
      };
SOURCEPOP(19430, 11, 19234, 209);
   goto lab←100140;
   lab←100140: ;
SOURCEPOP(19234, 209, 18965, 772);
SOURCE(19446, 31);
   {
      word ctmp126;
      startPage←5002 = IOP2( + , (* (( (ptr) gf←0491)+59) ), (
            ctmp126 =  (unsigned) (* (( (ptr) gf←0491)+64) ),
            SGNCK(ctmp126)
            ));
      };
SOURCEPOP(19446, 31, 18965, 772);
SOURCE(19479, 41);
   lab←100147: ;
SOURCE(19483, 37);
   if ((0 != (word) AdvancePageStream←720())) {
SOURCE(19520, 13);
      goto lab←100150;
SOURCEPOP(19520, 13, 19483, 37);
      };
SOURCEPOP(19483, 37, 19479, 41);
   goto lab←100147;
   lab←100150: ;
SOURCEPOP(19479, 41, 18965, 772);
SOURCE(19535, 11);
   {
      word pd127;
      pd127 = ((word) (( (bytePtr) lf←0573)+16)/* var←16256 */ );
      (void) ( *( (funcPtr) ((*  (ptr) pd127 ))))(pd127);
      };
SOURCEPOP(19535, 11, 18965, 772);
SOURCE(19548, 31);
   {
      word ctmp128;
      beginPage←5016 = IOP2( + , (* (( (ptr) gf←0491)+59) ), (
            ctmp128 =  (unsigned) (* (( (ptr) gf←0491)+64) ),
            SGNCK(ctmp128)
            ));
      };
SOURCEPOP(19548, 31, 18965, 772);
SOURCE(19581, 108);
   lab←100152: ;
   {
      word ctmp129;
      if ((IOP2( + , (* (( (ptr) gf←0491)+59) ), (
            ctmp129 =  (unsigned) (* (( (ptr) gf←0491)+64) ),
            SGNCK(ctmp129)
            )) != startPage←5002)) {
         }
      else {
         goto lab←100154;
         };
      };
SOURCE(19622, 67);
   if ((0 != (word) AdvancePageStream←720())) {
SOURCE(19659, 30);
      (void) XR←RaiseError((word) (( (bytePtr) gf←0491)+332), 0);
SOURCEPOP(19659, 30, 19622, 67);
      };
SOURCEPOP(19622, 67, 19581, 108);
   goto lab←100152;
   lab←100154: ;
SOURCEPOP(19581, 108, 18965, 772);
SOURCE(19700, 17);
   (void) ClosePageStream←570();
SOURCEPOP(19700, 17, 18965, 772);
SOURCE(19719, 18);
   temp130 = beginPage←5016;
   lf←0573 = XR←ExtensionFree(lf←0573);
   XR←PopHandler();
   return(temp130);
SOURCEPOP(19719, 18, 18965, 772);
   };

static void SkipAhead←1578(formal←0493)
   word formal←0493;
   {
   register ptr gf←0492 =  (ptr) &globalframe;
   word nextPage←5046;
   formal←0493 = (formal←0493 - 16);
   /* SkipAhead */ 
SOURCE(19018, 177);
SOURCE(19041, 61);
   {
      word ctmp131;
      nextPage←5046 = IOP2( + , IOP2( + , (* (( (ptr) gf←0492)+59) ), (
               ctmp131 =  (unsigned) (* (( (ptr) gf←0492)+64) ),
               SGNCK(ctmp131)
               )), 40);
      };
SOURCEPOP(19041, 61, 19018, 177);
SOURCE(19104, 17);
   (void) ClosePageStream←570();
SOURCEPOP(19104, 17, 19018, 177);
SOURCE(19123, 72);
   if ((0 != (word) OpenPageStream←540(nextPage←5046))) {
SOURCE(19165, 30);
      (void) XR←RaiseError((word) (( (bytePtr) gf←0492)+332), 0);
SOURCEPOP(19165, 30, 19123, 72);
      };
SOURCEPOP(19123, 72, 19018, 177);
   };

static void Get←1140(formal←0445, thisRecord←4226, to←4240)
   word formal←0445;
   BIT96 thisRecord←4226;
   BIT96 to←4240;
   {
   register word lf←0574;
   register ptr gf←0494 =  (ptr) &globalframe;
   word status←4262;
   word wordsRead←4276;
   /* declaration of var←16288 skipped */ 
   /* declaration of var←16304 skipped */ 
   /* declaration of chunk←5068 skipped */ 
   /* declaration of pagePtr←5082 skipped */ 
   /* declaration of pagesLeftInChunk←5096 skipped */ 
   word isFirstPage←5152 = 1;
   word pageVersion←5166 = 0;
   /* declaration of wordInPage←5180 skipped */ 
   lf←0574 = XR←ExtensionAlloc(24);
   XR←PushHandler(lf←0574, 0);
   /* Get */ 
SOURCE(19745, 2766);
   {
      word tmpAddr132;
      tmpAddr132 = (word) (( (ptr) lf←0574)+4)/* var←16288 */ ;
      (*  (ptr) tmpAddr132 ) = (word) ( ((word)  (funcPtr) Verify←1698) );
      (* (( (ptr) tmpAddr132) + 1) ) = (word) 1;
      };
   {
      word tmpAddr133;
      tmpAddr133 = (word) (( (ptr) lf←0574)+6)/* var←16304 */ ;
      (*  (ptr) tmpAddr133 ) = (word) ( ((word)  (funcPtr) GetChunk←1608) );
      (* (( (ptr) tmpAddr133) + 1) ) = (word) 1;
      };
SOURCE(19876, 31);
   {
      BIT128 var←16320;
      var←16320.f2 = 1;
      var←16320.f1 = 0;
      var←16320.f3 = 0;
      var←16320.f0 = 0;
      (*  (BIT128Ptr) (( (ptr) lf←0574)+8)/* chunk←5068 */  ) = var←16320;
      };
SOURCEPOP(19876, 31, 19745, 2766);
SOURCE(19909, 21);
SOURCEPOP(19909, 21, 19745, 2766);
SOURCE(19932, 26);
SOURCEPOP(19932, 26, 19745, 2766);
SOURCE(20602, 24);
SOURCEPOP(20602, 24, 19745, 2766);
SOURCE(20628, 38);
SOURCEPOP(20628, 38, 19745, 2766);
SOURCE(20668, 20);
SOURCEPOP(20668, 20, 19745, 2766);
SOURCE(20866, 186);
   {
      word firstPage←5276;
SOURCE(20868, 21);
SOURCEPOP(20868, 21, 20866, 186);
SOURCE(20891, 138);
      {
         BIT64 var←16368;
         {
            BIT64 var←16336;
            BIT96 words←12922;
            word deviceCharacteristics←12936;
            BIT96 q←12952;
            BIT96 r←12966;
SOURCE(1376, 15);
            {
               /* declaration of var←0422 skipped */ 
               (void) WordNumberFromRecordID←450((word) (( (bytePtr) lf←0574)+60)/* var←0422 */ , thisRecord←4226);
               words←12922 = (*  (BIT96Ptr) (( (ptr) lf←0574)+15)/* var←0422 */  );
               };
SOURCEPOP(1376, 15, 20891, 138);
SOURCE(1376, 15);
            deviceCharacteristics←12936 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0494)+153)/* var←14704 */  ))+4) ) );
SOURCEPOP(1376, 15, 20891, 138);
            {
               BIT192 var←16352;
               {
                  /* declaration of var←0427 skipped */ 
                  {
                     BIT96 var←0550;
                     {
                        /* declaration of var←0428 skipped */ 
                        {
                           word pd134;
                           pd134 = (* (( (ptr) (* (( (ptr) gf←0494)+154)/* var←14720 */  ))+6) );
                           (void) ( *( (funcPtr) ((*  (ptr) pd134 ))))((word) (( (bytePtr) lf←0574)+84)/* var←0428 */ , (*  (ptr) deviceCharacteristics←12936 ), pd134);
                           };
                        var←0550 = (*  (BIT96Ptr) (( (ptr) lf←0574)+21)/* var←0428 */  );
                        };
                     {
                        word pd135;
                        pd135 = (* (( (ptr) (* (( (ptr) gf←0494)+154)/* var←14720 */  ))+14) );
                        (void) ( *( (funcPtr) ((*  (ptr) pd135 ))))((word) (( (bytePtr) lf←0574)+60)/* var←0427 */ , words←12922, var←0550, pd135);
                        };
                     };
                  var←16352 = (*  (BIT192Ptr) (( (ptr) lf←0574)+15)/* var←0427 */  );
                  };
               r←12966 = (*  (BIT96Ptr) (( (ptr) &var←16352)+3) );
               q←12952 = (*  (BIT96Ptr) &var←16352 );
               };
            {
               word pd136;
               word pd137;
               pd136 = (* (( (ptr) (* (( (ptr) gf←0494)+154)/* var←14720 */  ))+9) );
               (*  (ptr) (word) &var←16336 ) = (word) ( *( (funcPtr) ((*  (ptr) pd136 ))))(q←12952, pd136);
               pd137 = (* (( (ptr) (* (( (ptr) gf←0494)+154)/* var←14720 */  ))+9) );
               (* (( (ptr) (word) &var←16336) + 1) ) = (word) ( *( (funcPtr) ((*  (ptr) pd137 ))))(r←12966, pd137);
               };
            goto lab←100157;
            lab←100157: ;
            var←16368 = var←16336;
            };
         (* (( (ptr) lf←0574)+14)/* wordInPage←5180 */  ) = var←16368.f1;
         firstPage←5276 = var←16368.f0;
         };
SOURCEPOP(20891, 138, 20866, 186);
SOURCE(21031, 19);
      {
         word pd138;
         pd138 = ((word) (( (bytePtr) lf←0574)+24)/* var←16304 */ );
         (void) ( *( (funcPtr) ((*  (ptr) pd138 ))))(firstPage←5276, pd138);
         };
SOURCEPOP(21031, 19, 20866, 186);
      };
SOURCEPOP(20866, 186, 19745, 2766);
SOURCE(21055, 8);
   {
      word pd139;
      pd139 = ((word) (( (bytePtr) lf←0574)+16)/* var←16288 */ );
      (void) ( *( (funcPtr) ((*  (ptr) pd139 ))))(pd139);
      };
SOURCEPOP(21055, 8, 19745, 2766);
SOURCE(21065, 13);
   wordsRead←4276 = 0;
SOURCEPOP(21065, 13, 19745, 2766);
SOURCE(21080, 1431);
   lab←100158: ;
SOURCE(21080, 1431);
   {
      word wordsThisBlock←5298;
      word wordsThisCopy←5312;
      word hasContinuation←5326;
      word isContinuation←5340;
      word version←5354;
      word var←0551;
SOURCE(21083, 39);
SOURCEPOP(21083, 39, 21080, 1431);
SOURCE(21083, 39);
SOURCEPOP(21083, 39, 21080, 1431);
SOURCE(21124, 37);
SOURCEPOP(21124, 37, 21080, 1431);
SOURCE(21124, 37);
SOURCEPOP(21124, 37, 21080, 1431);
SOURCE(21163, 30);
SOURCEPOP(21163, 30, 21080, 1431);
SOURCE(21203, 125);
SOURCE(21205, 121);
      {
         word var←16384;
         word p←11626;
SOURCE(807, 106);
         p←11626 = (* (( (ptr) lf←0574)+12)/* pagePtr←5082 */  );
SOURCEPOP(807, 106, 21205, 121);
SOURCE(892, 21);
         var←16384 = p←11626;
         goto lab←100163;
SOURCEPOP(892, 21, 21205, 121);
         lab←100163: ;
         var←0551 = (var←0551 & 4294967294) | ((01 & ( (unsigned) (*  (bytePtr) var←16384 ) >> 7)) << 0);
         };
      if ( ! (var←0551 & 01)) {
SOURCE(21239, 87);
         {
            word ctmp140;
            (void) VerifyGet←480(IOP2( + , (* (( (ptr) lf←0574)+9) ), IOP2( - , (* (( (ptr) lf←0574)+10) ), (
                        ctmp140 =  (unsigned) ((* (( (ptr) lf←0574)+13)/* pagesLeftInChunk←5096 */  ) + 1),
                        SGNCK(ctmp140)
                        ))), (* (( (ptr) lf←0574)+12)/* pagePtr←5082 */  ));
            };
SOURCEPOP(21239, 87, 21205, 121);
         };
SOURCEPOP(21205, 121, 21203, 125);
SOURCEPOP(21203, 125, 21080, 1431);
SOURCE(21339, 141);
SOURCE(21340, 138);
      {
         BIT64 var←16416;
         {
            word var←16400;
            word p←11602;
SOURCE(807, 106);
            p←11602 = IOP2( + , (* (( (ptr) lf←0574)+12)/* pagePtr←5082 */  ), (* (( (ptr) lf←0574)+14)/* wordInPage←5180 */  ));
SOURCEPOP(807, 106, 21340, 138);
SOURCE(892, 21);
            var←16400 = p←11602;
            goto lab←100164;
SOURCEPOP(892, 21, 21340, 138);
            lab←100164: ;
            var←16416 = (*  (BIT64Ptr) var←16400 );
            };
         wordsThisBlock←5298 = var←16416.f1;
         isContinuation←5340 = ( (unsigned) (*  (bytePtr) &var←16416 ) >> 4 & 01);
         hasContinuation←5326 = ( (unsigned) (*  (bytePtr) &var←16416 ) >> 5 & 01);
         version←5354 = ( (unsigned) (*  (bytePtr) &var←16416 ) >> 6 & 01);
         };
SOURCEPOP(21340, 138, 21339, 141);
SOURCEPOP(21339, 141, 21080, 1431);
SOURCE(21483, 53);
      wordsThisBlock←5298 = (wordsThisBlock←5298 - 8);
SOURCEPOP(21483, 53, 21080, 1431);
SOURCE(21538, 45);
      (* (( (ptr) lf←0574)+14)/* wordInPage←5180 */  ) = ((* (( (ptr) lf←0574)+14)/* wordInPage←5180 */  ) + 8);
SOURCEPOP(21538, 45, 21080, 1431);
SOURCE(21585, 214);
      if ((0 != isFirstPage←5152)) {
SOURCE(21607, 53);
         if ((0 != isContinuation←5340)) {
SOURCE(21630, 30);
            (void) XR←RaiseError((word) (( (bytePtr) gf←0494)+332), 0);
SOURCEPOP(21630, 30, 21607, 53);
            };
SOURCEPOP(21607, 53, 21585, 214);
SOURCE(21662, 21);
         pageVersion←5166 = version←5354;
SOURCEPOP(21662, 21, 21585, 214);
SOURCE(21685, 20);
         isFirstPage←5152 = 0;
SOURCEPOP(21685, 20, 21585, 214);
         }
      else {
SOURCE(21714, 85);
         if ((0 == isContinuation←5340) || (version←5354 != pageVersion←5166)) {
SOURCE(21768, 31);
            (void) XR←RaiseError((word) (( (bytePtr) gf←0494)+332), 0);
SOURCEPOP(21768, 31, 21714, 85);
            };
SOURCEPOP(21714, 85, 21585, 214);
         };
SOURCEPOP(21585, 214, 21080, 1431);
SOURCE(21802, 709);
      lab←100165: ;
SOURCE(21805, 46);
      {
         word x141;
         wordsThisCopy←5312 = (x141 = to←4240.f1,
            MIN( (unsigned) , x141, wordsThisBlock←5298));
         };
SOURCEPOP(21805, 46, 21802, 709);
SOURCE(21853, 131);
      if ((to←4240.f0 != 0)) {
SOURCE(21877, 74);
         {
            word from←12594;
            word to←12608;
SOURCE(21877, 74);
            from←12594 = IOP2( + , (* (( (ptr) lf←0574)+12)/* pagePtr←5082 */  ), (* (( (ptr) lf←0574)+14)/* wordInPage←5180 */  ));
SOURCEPOP(21877, 74, 21877, 74);
SOURCE(21877, 74);
            to←12608 = to←4240.f0;
SOURCEPOP(21877, 74, 21877, 74);
            (void) XR←MoveWords(to←12608, from←12594, BCK(wordsThisCopy←5312, 2147483648));
            };
SOURCEPOP(21877, 74, 21853, 131);
SOURCE(21953, 31);
         to←4240.f0 = IOP2( + , to←4240.f0, wordsThisCopy←5312);
SOURCEPOP(21953, 31, 21853, 131);
         };
SOURCEPOP(21853, 131, 21802, 709);
SOURCE(21989, 35);
      wordsRead←4276 = (wordsRead←4276 + wordsThisCopy←5312);
SOURCEPOP(21989, 35, 21802, 709);
SOURCE(22026, 485);
      if ((wordsThisCopy←5312 != to←4240.f1)) {
SOURCE(22062, 35);
         to←4240.f1 = (to←4240.f1 - wordsThisCopy←5312);
SOURCEPOP(22062, 35, 22026, 485);
SOURCE(22099, 81);
         if ((0 == hasContinuation←5326)) {
SOURCE(22129, 14);
SOURCE(20213, 83);
            {
               word pd142;
               pd142 = (* (( (ptr) (* (( (ptr) gf←0494)+152)/* var←14672 */  ))+12) );
               (void) ( *( (funcPtr) ((*  (ptr) pd142 ))))((*  (BIT128Ptr) (( (ptr) lf←0574)+8)/* chunk←5068 */  ), 4, 0, pd142);
               };
SOURCEPOP(20213, 83, 22129, 14);
SOURCEPOP(22129, 14, 22099, 81);
SOURCE(22145, 35);
            (*  (ptr) (word) formal←0445 ) = (word) 2;
            (* (( (ptr) (word) formal←0445) + 1) ) = (word) wordsRead←4276;
            XR←PopHandler();
            goto lab←0220;
SOURCEPOP(22145, 35, 22099, 81);
            };
SOURCEPOP(22099, 81, 22026, 485);
SOURCE(22183, 13);
SOURCE(20334, 259);
         if (((* (( (ptr) lf←0574)+13)/* pagesLeftInChunk←5096 */  ) == 0)) {
            {
               word nextPage←5376;
SOURCE(20365, 51);
               {
                  word var←16432;
                  word p←12290;
                  BIT64 pr←12306;
SOURCE(1172, 138);
SOURCEPOP(1172, 138, 20365, 51);
SOURCE(1172, 138);
                  pr←12306 = (*  (BIT64Ptr) (( (ptr) lf←0574)+9) );
SOURCEPOP(1172, 138, 20365, 51);
SOURCE(1241, 25);
                  p←12290 = IOP2( + , pr←12306.f0, pr←12306.f1);
SOURCEPOP(1241, 25, 20365, 51);
SOURCE(1268, 42);
                  if ((p←12290 == (* (( (ptr) gf←0494)+9)/* logFileSize←1668 */  ))) {
                     var←16432 = 0;
                     }
                  else {
                     var←16432 = p←12290;
                     };
                  goto lab←100171;
SOURCEPOP(1268, 42, 20365, 51);
                  lab←100171: ;
                  nextPage←5376 = var←16432;
                  };
SOURCEPOP(20365, 51, 20334, 259);
SOURCE(20418, 14);
SOURCE(20213, 83);
               {
                  word pd143;
                  pd143 = (* (( (ptr) (* (( (ptr) gf←0494)+152)/* var←14672 */  ))+12) );
                  (void) ( *( (funcPtr) ((*  (ptr) pd143 ))))((*  (BIT128Ptr) (( (ptr) lf←0574)+8)/* chunk←5068 */  ), 4, 0, pd143);
                  };
SOURCEPOP(20213, 83, 20418, 14);
SOURCEPOP(20418, 14, 20334, 259);
SOURCE(20434, 48);
               if ((nextPage←5376 == 0)) {
SOURCE(20455, 27);
                  pageVersion←5166 = BCK(IOP2( - , 1, pageVersion←5166), 2);
SOURCEPOP(20455, 27, 20434, 48);
                  };
SOURCEPOP(20434, 48, 20334, 259);
SOURCE(20484, 18);
               {
                  word pd144;
                  pd144 = ((word) (( (bytePtr) lf←0574)+24)/* var←16304 */ );
                  (void) ( *( (funcPtr) ((*  (ptr) pd144 ))))(nextPage←5376, pd144);
                  };
SOURCEPOP(20484, 18, 20334, 259);
               };
            }
         else {
SOURCE(20513, 39);
            (* (( (ptr) lf←0574)+12)/* pagePtr←5082 */  ) = IOP2( + , (* (( (ptr) lf←0574)+12)/* pagePtr←5082 */  ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←0494)+153)/* var←14704 */  ))+5) ) ));
SOURCEPOP(20513, 39, 20334, 259);
SOURCE(20554, 39);
            (* (( (ptr) lf←0574)+13)/* pagesLeftInChunk←5096 */  ) = ((* (( (ptr) lf←0574)+13)/* pagesLeftInChunk←5096 */  ) - 1);
SOURCEPOP(20554, 39, 20334, 259);
            };
SOURCEPOP(20334, 259, 22183, 13);
SOURCEPOP(22183, 13, 22026, 485);
SOURCE(22198, 14);
         (* (( (ptr) lf←0574)+14)/* wordInPage←5180 */  ) = 0;
SOURCEPOP(22198, 14, 22026, 485);
SOURCE(22214, 14);
         goto lab←100170;
SOURCEPOP(22214, 14, 22026, 485);
         }
      else {
SOURCE(22237, 274);
         if ((to←4240.f2 != 0)) {
SOURCE(22267, 105);
SOURCE(22269, 13);
            to←4240 = (*  (BIT96Ptr) to←4240.f2 );
SOURCEPOP(22269, 13, 22267, 105);
SOURCE(22284, 45);
            wordsThisBlock←5298 = (wordsThisBlock←5298 - wordsThisCopy←5312);
SOURCEPOP(22284, 45, 22267, 105);
SOURCE(22331, 39);
            (* (( (ptr) lf←0574)+14)/* wordInPage←5180 */  ) = ((* (( (ptr) lf←0574)+14)/* wordInPage←5180 */  ) + wordsThisCopy←5312);
SOURCEPOP(22331, 39, 22267, 105);
SOURCEPOP(22267, 105, 22237, 274);
            }
         else {
SOURCE(22381, 14);
SOURCE(20213, 83);
            {
               word pd145;
               pd145 = (* (( (ptr) (* (( (ptr) gf←0494)+152)/* var←14672 */  ))+12) );
               (void) ( *( (funcPtr) ((*  (ptr) pd145 ))))((*  (BIT128Ptr) (( (ptr) lf←0574)+8)/* chunk←5068 */  ), 4, 0, pd145);
               };
SOURCEPOP(20213, 83, 22381, 14);
SOURCEPOP(22381, 14, 22237, 274);
SOURCE(22397, 114);
            (*  (ptr) (word) formal←0445 ) = (word)  (  ( (0 == hasContinuation←5326) ? (wordsThisBlock←5298 == wordsThisCopy←5312) : 0 )  ? 0 : 1 ) ;
            (* (( (ptr) (word) formal←0445) + 1) ) = (word) wordsRead←4276;
            XR←PopHandler();
            goto lab←0220;
SOURCEPOP(22397, 114, 22237, 274);
            };
SOURCEPOP(22237, 274, 22026, 485);
         };
SOURCEPOP(22026, 485, 21802, 709);
      goto lab←100165;
      lab←100170: ;
      goto lab←100168;
      lab←100168: ;
SOURCEPOP(21802, 709, 21080, 1431);
      };
SOURCEPOP(21080, 1431, 21080, 1431);
   goto lab←100158;
SOURCEPOP(21080, 1431, 19745, 2766);
   XR←PopHandler();
   lab←0220: ;
   lf←0574 = XR←ExtensionFree(lf←0574);
   };

static void GetChunk←1608(nextPage←5238, formal←0496)
   word nextPage←5238;
   word formal←0496;
   {
   register word lf←0575;
   register ptr gf←0495 =  (ptr) &globalframe;
   formal←0496 = (formal←0496 - 24);
   lf←0575 = XR←ExtensionAlloc(8);
   XR←PushHandler(lf←0575, 0);
   (*  (ptr) lf←0575 ) = formal←0496;
   /* GetChunk */ 
SOURCE(19961, 213);
SOURCE(20004, 103);
   {
      /* declaration of var←0447 skipped */ 
      {
         BIT64 var←0552;
         {
            BIT64 var←16448;
            BIT64 pr←12130;
SOURCE(1028, 140);
SOURCEPOP(1028, 140, 20004, 103);
SOURCE(1028, 140);
            pr←12130.f1 = 1;
            pr←12130.f0 = 0;
SOURCEPOP(1028, 140, 20004, 103);
SOURCE(1103, 65);
            {
               BIT64 var←16464;
               var←16464.f0 = nextPage←5238;
               {
                  word x146;
                  var←16464.f1 = (x146 = IOP2( - , (* (( (ptr) gf←0495)+9)/* logFileSize←1668 */  ), nextPage←5238),
                     MIN((int)(word), x146, 4));
                  };
               var←16448 = var←16464;
               };
            goto lab←100172;
SOURCEPOP(1103, 65, 20004, 103);
            lab←100172: ;
            var←0552 = var←16448;
            };
         {
            word pd147;
            pd147 = (* (( (ptr) (* (( (ptr) gf←0495)+152)/* var←14672 */  ))+8) );
            (void) ( *( (funcPtr) ((*  (ptr) pd147 ))))((word) (( (bytePtr) lf←0575)+16)/* var←0447 */ , (* (( (ptr) gf←0495)+8)/* logFileHandle←1654 */  ), var←0552, pd147);
            };
         };
      (*  (BIT128Ptr) (( (ptr) formal←0496)+8) ) = (*  (BIT128Ptr) (( (ptr) lf←0575)+4)/* var←0447 */  );
      };
SOURCEPOP(20004, 103, 19961, 213);
SOURCE(20109, 21);
   (* (( (ptr) formal←0496)+12) ) = (* (( (ptr) formal←0496)+8) );
SOURCEPOP(20109, 21, 19961, 213);
SOURCE(20132, 42);
   (* (( (ptr) formal←0496)+13) ) = IOP2( - , (* (( (ptr) formal←0496)+10) ), 1);
SOURCEPOP(20132, 42, 19961, 213);
   XR←PopHandler();
   lf←0575 = XR←ExtensionFree(lf←0575);
   };

static void Verify←1698(formal←0498)
   word formal←0498;
   {
   register ptr gf←0497 =  (ptr) &globalframe;
   word w←5390 = 0;
   formal←0498 = (formal←0498 - 16);
   /* Verify */ 
SOURCE(20691, 160);
SOURCE(20711, 15);
SOURCEPOP(20711, 15, 20691, 160);
SOURCE(20728, 123);
   lab←100173: ;
   if ((w←5390 != (* (( (ptr) formal←0498)+14) ))) {
      }
   else {
      goto lab←100175;
      };
SOURCE(20760, 35);
SOURCE(20761, 32);
   {
      word var←0554;
      {
         word var←0553;
         {
            word var←16480;
            word p←11578;
SOURCE(807, 106);
            p←11578 = IOP2( + , (* (( (ptr) formal←0498)+12) ), w←5390);
SOURCEPOP(807, 106, 20761, 32);
SOURCE(892, 21);
            var←16480 = p←11578;
            goto lab←100178;
SOURCEPOP(892, 21, 20761, 32);
            lab←100178: ;
            var←0553 = (* (( (ptr) var←16480)+1) );
            };
         var←0554 = IOP2( + , (
               SGNCK( (unsigned) w←5390)
               ), var←0553);
         };
      w←5390 = var←0554;
      };
SOURCEPOP(20761, 32, 20760, 35);
SOURCEPOP(20760, 35, 20728, 123);
SOURCE(20798, 53);
   if ((w←5390 > (* (( (ptr) formal←0498)+14) ))) {
SOURCE(20821, 30);
      (void) XR←RaiseError((word) (( (bytePtr) gf←0497)+332), 0);
SOURCEPOP(20821, 30, 20798, 53);
      };
SOURCEPOP(20798, 53, 20728, 123);
   goto lab←100173;
   lab←100175: ;
SOURCEPOP(20728, 123, 20691, 160);
   };

static word Ln9(formal←088)
   word formal←088;
   {
   word var←090;
   word var←089;
   /* intermediary proc for a FORK, nArgs: 1, nRets: 0 */ 
   var←090 = (* (( (ptr) formal←088)+4) );
   var←089 = (* (( (ptr) formal←088)+2) );
   formal←088 = XR←ExtensionFree(formal←088);
   (void) ( *( (funcPtr) ((*  (ptr) var←089 ))))(var←090, var←089);
   return(0);
   };

/* transformed in 6.45 seconds. */ 
extern void XR←install←YggLogBasicImpl() {
   descXenablex100046.proc = (int)  (funcPtr) enable←100046;
   descXenablex100074.proc = (int)  (funcPtr) enable←100074;
   YggLogBasicImpl();
   };
static void XR←install() {XR←install←YggLogBasicImpl();};
/* installation sequence */
static void XR←load←YggLogBasicImpl() { XR←install←YggLogBasicImpl(); };
static void XR←load() { XR←install←YggLogBasicImpl(); };
static void XR←run←YggLogBasicImpl() { XR←Start(&globalframe); };
static void XR←run() { XR←Start(&globalframe); };