/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: February 21, 1992 5:38:37 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: UXStringsImpl, module: UXStringsImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [127296091,1255415823] UXStringsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q2124();
static void UXStringsImpl←P0();
static word ToRope←P60();
static word PerChar←P660();
static word Create←P120();
static word CreateSpace←P180();
static void CopyRefToString←P240();
static word ViewRefText←P300();
static word CreateScratch←P420();
static word ObtainScratch←P480();
static void ReleaseScratch←P540();
static void InitializeScratchPool←P600();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\007\226\142\133\300\112\324\040\017\100\230\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string3 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[44];} string4 = {2752556, "\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261\000"};
static struct {unsigned f; char r[48];} string5 = {2883632, "\260\006\005\146\151\162\163\164\220\257\300\227\306\253\223\300\107\163\142\023\101\144\005\004\162\145\163\164\214\220\257\300\227\306\253\223\300\107\163\142\023\101\144\261\000\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\007\226\142\133\300\112\324\040\017\100\164\000\000"};
static struct {unsigned f; char r[4];} string8 = {196611, "\004O\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\220\270\074\115\300\121\012\115\357\100\150\000\000"};
static struct {
   word f0[23]; word f23; word f24; word f25; 
   word f26; word f27; word f28; word f29; 
   word f30; word f31; word f32; word f33; 
   word f34; word f35; word f36; word f37; 
   word f38; word f39; word f40; word f41; 
   word f42[3]; 
   } globalframe = {
   {0}, (word) InitializeScratchPool←P600, 0, (word) ReleaseScratch←P540, 
   0, (word) ObtainScratch←P480, 0, (word) CreateScratch←P420, 
   0, (word) ViewRefText←P300, 0, (word) CopyRefToString←P240, 
   0, (word) CreateSpace←P180, 0, (word) Create←P120, 
   0, (word) ToRope←P60, 0, (word) UXStringsImpl←P0, 
   {0}
   };

static void NoName←Q2124()
   {
   register ptr gf←c0118 =  (ptr) &globalframe;
   word var←c12656;
   (* (( (ptr) gf←c0118)+18) ) = (word) XR←GetTypeIndexS((word) (&string1));
   (* (( (ptr) gf←c0118)+19) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c0118)+20) ) = (word) XR←GetTypeIndexS((word) (&string4));
   (* (( (ptr) gf←c0118)+21) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (void) XR←DeclareGlobalFrame((word) "UXStringsImpl", &globalframe, (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8)
      , (word) (( (bPt) gf←c0118)+164)/* var←c11216 */ );
   var←c12656 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string9)), 43);
   (* (( (ptr) gf←c0118)+43)/* var←c11312 */  ) = var←c12656;
   (void) XR←ImportProcS(var←c12656, 67634434);
   (void) XR←ImportProcS(var←c12656, 67373569);
   (void) XR←ImportProcS(var←c12656, 67902211);
   var←c12656 = (word) XR←ExportInterface((word) "UXStrings", (word) XR←GetTypeIndexS((word) (&string10)), 9);
   (* (( (ptr) gf←c0118)+44)/* var←c12688 */  ) = var←c12656;
   (void) XR←ExportVar(var←c12656, 0, (word) (( (bPt) gf←c0118)+88)/* var←c10896 */ );
   (void) XR←ExportProcS(var←c12656, (word) (( (bPt) gf←c0118)+148)/* var←c11152 */ , 67371265);
   (void) XR←ExportProcS(var←c12656, (word) (( (bPt) gf←c0118)+140)/* var←c11120 */ , 67371521);
   (void) XR←ExportProcS(var←c12656, (word) (( (bPt) gf←c0118)+156)/* var←c11184 */ , 67633922);
   (void) XR←ExportProcS(var←c12656, (word) (( (bPt) gf←c0118)+124)/* var←c11056 */ , 67372033);
   (void) XR←ExportProcS(var←c12656, (word) (( (bPt) gf←c0118)+116)/* var←c11024 */ , 67372289);
   (void) XR←ExportProcS(var←c12656, (word) (( (bPt) gf←c0118)+108)/* var←c10992 */ , 67372545);
   (void) XR←ExportProcS(var←c12656, (word) (( (bPt) gf←c0118)+100)/* var←c10960 */ , 263937);
   (void) XR←ExportProcS(var←c12656, (word) (( (bPt) gf←c0118)+132)/* var←c11088 */ , 526338);
   }

static void UXStringsImpl←P0(formal←c021, formal←c020)
   word formal←c021;
   word formal←c020;
   {
   /* UXStringsImpl: */ 
SOURCE(38, 4696)
SOURCE(4711, 23)
   (void) InitializeScratchPool←P600();
   }

static word ToRope←P60(formal←c0133, maxLength←v3164)
   word formal←c0133;
   word maxLength←v3164;
   {
   W8 var←c12720;
   /* declaration of from←v3136 skipped */ 
   register ptr gf←c12752 =  (ptr) &globalframe;
   word r←v3208;
   /* declaration of var←c11248 skipped */ 
   word len←v4552 = 0;
   /* declaration of pos←v4580 skipped */ 
   var←c12720.f4/* from←v3136 */  = formal←c0133;
   /* ToRope: */ 
SOURCE(132, 358)
   {
      word tmpAddr11;
      tmpAddr11 = (word) (( (ptr) &var←c12720)+5)/* var←c11248 */ ;
      (*  (ptr) tmpAddr11 ) = ( ((word)  (fPt) PerChar←P660) );
      (* (( (ptr) tmpAddr11) + 1) ) = 1;
      };
SOURCE(132, 358)
   r←v3208 = 0;
SOURCE(231, 17)
   var←c12720.f7/* pos←v4580 */  = 0;
SOURCE(326, 28)
   if ((var←c12720.f4/* from←v3136 */  == 0)) {
SOURCE(343, 11)
      return(0);
      };
SOURCE(356, 67)
   lab←L100002: ;
   {
      word tc12;
      if (((word) (* (( (bPt) var←c12720.f4/* from←v3136 */ )+len←v4552) ) != 0)) {
         tc12 =  (word) ( (int)len←v4552 <  (int)maxLength←v3164);
         }
      else {
         tc12 =  (word) 0;
         };
      if (tc12) {
         }
      else {
         goto lab←L100000;
         };
      };
SOURCE(402, 21)
   len←v4552 = (len←v4552 + 1);
   goto lab←L100002;
   lab←L100000: ;
SOURCE(425, 27)
   if (( (int)len←v4552 ==  (int)0)) {
SOURCE(441, 11)
      return(0);
      };
SOURCE(454, 36)
   {
      word pd13;
      pd13 = (* (( (ptr) (* (( (ptr) gf←c12752)+43)/* var←c11312 */  ))+31) );
      return((word) ( *( (fPt) ((*  (ptr) pd13 ))))(len←v4552, (word) (( (bPt) &var←c12720)+20)/* var←c11248 */ , 2147483647, pd13)
      );
      };
   }

static word PerChar←P660(formal←c12784)
   word formal←c12784;
   {
   word c←v4684;
   formal←c12784 = (formal←c12784 - 20);
   /* PerChar: */ 
SOURCE(250, 71)
SOURCE(294, 14)
   c←v4684 = (word) (* (( (bPt) (* (( (ptr) formal←c12784)+4) ))+(* (( (ptr) formal←c12784)+7) )) );
SOURCE(310, 11)
   (* (( (ptr) formal←c12784)+7) ) = ((* (( (ptr) formal←c12784)+7) ) + 1);
SOURCE(250, 71)
   return(c←v4684);
   }

static word Create←P120(from←v3360)
   word from←v3360;
   {
   register ptr gf←c12816 =  (ptr) &globalframe;
   word string←v3420;
   /* Create: */ 
SOURCE(572, 620)
SOURCE(572, 620)
   string←v3420 = 0;
SOURCE(634, 558)
   {
      word var←c11344;
      word var←c11376;
      var←c11344 = from←v3360;
      if ((var←c11344 == 0)) {
         goto lab←L100003;
         };
      var←c11376 = XR←GetReferentType(var←c11344);
      {
         word tc14;
         if (((* (( (ptr) gf←c12816)+19) ) == var←c11376)) {
            tc14 =  (word) ((*(int*)var←c11344<0) == 0);
            }
         else {
            tc14 =  (word) 0;
            };
         if (tc14) {
            {
               word r←v4712;
               r←v4712 = var←c11344;
SOURCE(672, 189)
               {
                  word len←v4756;
                  word rtn←v4784;
SOURCE(674, 25)
                  {
                     word pd15;
                     pd15 = (* (( (ptr) (* (( (ptr) gf←c12816)+43)/* var←c11312 */  ))+14) );
                     len←v4756 = (word) ( *( (fPt) ((*  (ptr) pd15 ))))(r←v4712, pd15);
                     };
SOURCE(701, 48)
                  {
                     word var←c11408;
                     word var←c11440;
                     word var←c11472;
                     var←c11408 = (len←v4756 + 1);
                     var←c11440 = (((var←c11408 + 3) >> 2) << 2);
                     var←c11472 = XR←NewObject(var←c11440, (* (( (ptr) gf←c12816)+18) ));
                     rtn←v4784 = var←c11472;
                     };
SOURCE(759, 75)
SOURCE(761, 53)
                  {
                     register word i←v4840 = 0;
                     register word noName←c11504;
                     noName←c11504 = len←v4756;
                     if (( (int)i←v4840 >=  (int)noName←c11504)) {
                        goto lab←L100004;
                        };
                     lab←L100007: ;
SOURCE(787, 27)
                     {
                        word var←c11536;
                        {
                           word pd16;
                           pd16 = (* (( (ptr) (* (( (ptr) gf←c12816)+43)/* var←c11312 */  ))+9) );
                           var←c11536 = (word) ( *( (fPt) ((*  (ptr) pd16 ))))(r←v4712, i←v4840, pd16);
                           };
                        (* (( (bPt) rtn←v4784)+i←v4840) ) = var←c11536;
                        };
                     i←v4840 = (i←v4840 + 1);
                     if (( (int)i←v4840 <  (int)noName←c11504)) {
                        goto lab←L100007;
                        };
                     lab←L100004: ;
                     };
SOURCE(816, 16)
                  (* (( (bPt) rtn←v4784)+len←v4756) ) = 0;
SOURCE(837, 22)
                  string←v3420 = rtn←v4784;
                  };
               };
            }
         else {
            if (((* (( (ptr) gf←c12816)+20) ) == var←c11376)) {
               {
                  word r←v4884;
                  r←v4884 = var←c11344;
SOURCE(879, 186)
                  {
                     word len←v4940;
                     word rtn←v4968;
SOURCE(881, 28)
                     {
                        word base←v10848;
                        base←v10848 = r←v4884;
                        {
                           word tc17;
                           word idx18;
                           if ((base←v10848 == 0)) {
/*1*/   tc17 =  (word) 0;
/*1*/   }
                           else {
/*1*/   tc17 =  (word) (*  (hPt) base←v10848 );
/*1*/   };
                           len←v4940 = (
/*1*/   idx18 = (word) tc17,
/*1*/   BCK(idx18, 32768)
/*1*/   );
                           };
                        };
SOURCE(911, 48)
                     {
                        word var←c11600;
                        word var←c11632;
                        word var←c11664;
                        var←c11600 = (len←v4940 + 1);
                        var←c11632 = (((var←c11600 + 3) >> 2) << 2);
                        var←c11664 = XR←NewObject(var←c11632, (* (( (ptr) gf←c12816)+18) ));
                        rtn←v4968 = var←c11664;
                        };
SOURCE(969, 69)
SOURCE(971, 47)
                     {
                        register word i←v5024 = 0;
                        register word noName←c11696;
                        noName←c11696 = len←v4940;
                        if (( (int)i←v5024 >=  (int)noName←c11696)) {
                           goto lab←L100009;
                           };
                        lab←L100012: ;
SOURCE(997, 21)
                        {
                           word limit19;
                           (* (( (bPt) rtn←v4968)+i←v5024) ) = (word) (* ((( (bPt) r←v4884)+4)+(
/*1*/      limit19 = (word) (* (( (hPt) r←v4884)+1) ),
/*1*/      BCK(i←v5024, limit19)
/*1*/      )) );
                           };
                        i←v5024 = (i←v5024 + 1);
                        if (( (int)i←v5024 <  (int)noName←c11696)) {
                           goto lab←L100012;
                           };
                        lab←L100009: ;
                        };
SOURCE(1020, 16)
                     (* (( (bPt) rtn←v4968)+len←v4940) ) = 0;
SOURCE(1041, 22)
                     string←v3420 = rtn←v4968;
                     };
                  };
               }
            else {
               lab←L100003: ;
SOURCE(1080, 112)
               if ((from←v3360 == 0)) {
SOURCE(1106, 88)
                  {
                     word rtn←v5068;
SOURCE(1108, 44)
                     rtn←v5068 = XR←NewObject(4, (* (( (ptr) gf←c12816)+18) ));
SOURCE(1154, 14)
                     (*  (bPt) rtn←v5068 ) = 0;
SOURCE(1170, 22)
                     string←v3420 = rtn←v5068;
                     };
                  }
               else {
SOURCE(1201, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      };
SOURCE(572, 620)
   return(string←v3420);
   }

static word CreateSpace←P180(size←v3480)
   word size←v3480;
   {
   register ptr gf←c12848 =  (ptr) &globalframe;
   word string←v3524;
   word rtn←v5124;
   /* CreateSpace: */ 
SOURCE(1236, 140)
SOURCE(1236, 140)
   string←v3524 = 0;
SOURCE(1303, 49)
   {
      word var←c11760;
      word var←c11792;
      word var←c11824;
      var←c11760 = (size←v3480 + 1);
      var←c11792 = (((var←c11760 + 3) >> 2) << 2);
      var←c11824 = XR←NewObject(var←c11792, (* (( (ptr) gf←c12848)+18) ));
      rtn←v5124 = var←c11824;
      };
SOURCE(1354, 22)
   string←v3524 = rtn←v5124;
SOURCE(1236, 140)
   return(string←v3524);
   }

static void CopyRefToString←P240(ref←v3584, string←v3612)
   word ref←v3584;
   word string←v3612;
   {
   register ptr gf←c12880 =  (ptr) &globalframe;
   word rtn←v5180;
   /* CopyRefToString: */ 
SOURCE(1382, 460)
SOURCE(1460, 40)
   rtn←v5180 = string←v3612;
SOURCE(1502, 340)
   {
      word var←c11856;
      word var←c11888;
      var←c11856 = ref←v3584;
      if ((var←c11856 == 0)) {
         goto lab←L100013;
         };
      var←c11888 = XR←GetReferentType(var←c11856);
      {
         word tc20;
         if (((* (( (ptr) gf←c12880)+19) ) == var←c11888)) {
            tc20 =  (word) ((*(int*)var←c11856<0) == 0);
            }
         else {
            tc20 =  (word) 0;
            };
         if (tc20) {
            {
               word r←v5236;
               r←v5236 = var←c11856;
SOURCE(1539, 115)
               {
                  word len←v5280;
SOURCE(1541, 25)
                  {
                     word pd21;
                     pd21 = (* (( (ptr) (* (( (ptr) gf←c12880)+43)/* var←c11312 */  ))+14) );
                     len←v5280 = (word) ( *( (fPt) ((*  (ptr) pd21 ))))(r←v5236, pd21);
                     };
SOURCE(1576, 75)
SOURCE(1578, 53)
                  {
                     register word i←v5324 = 0;
                     register word noName←c11920;
                     noName←c11920 = len←v5280;
                     if (( (int)i←v5324 >=  (int)noName←c11920)) {
                        goto lab←L100014;
                        };
                     lab←L100017: ;
SOURCE(1604, 27)
                     {
                        word var←c11952;
                        {
                           word pd22;
                           pd22 = (* (( (ptr) (* (( (ptr) gf←c12880)+43)/* var←c11312 */  ))+9) );
                           var←c11952 = (word) ( *( (fPt) ((*  (ptr) pd22 ))))(r←v5236, i←v5324, pd22);
                           };
                        (* (( (bPt) rtn←v5180)+i←v5324) ) = var←c11952;
                        };
                     i←v5324 = (i←v5324 + 1);
                     if (( (int)i←v5324 <  (int)noName←c11920)) {
                        goto lab←L100017;
                        };
                     lab←L100014: ;
                     };
SOURCE(1633, 16)
                  (* (( (bPt) rtn←v5180)+len←v5280) ) = 0;
                  };
               };
            }
         else {
            if (((* (( (ptr) gf←c12880)+20) ) == var←c11888)) {
               {
                  word r←v5368;
                  r←v5368 = var←c11856;
SOURCE(1672, 112)
                  {
                     word len←v5424;
SOURCE(1674, 28)
                     {
                        word base←v10800;
                        base←v10800 = r←v5368;
                        {
                           word tc23;
                           word idx24;
                           if ((base←v10800 == 0)) {
/*1*/   tc23 =  (word) 0;
/*1*/   }
                           else {
/*1*/   tc23 =  (word) (*  (hPt) base←v10800 );
/*1*/   };
                           len←v5424 = (
/*1*/   idx24 = (word) tc23,
/*1*/   BCK(idx24, 32768)
/*1*/   );
                           };
                        };
SOURCE(1712, 69)
SOURCE(1714, 47)
                     {
                        register word i←v5468 = 0;
                        register word noName←c12016;
                        noName←c12016 = len←v5424;
                        if (( (int)i←v5468 >=  (int)noName←c12016)) {
                           goto lab←L100019;
                           };
                        lab←L100022: ;
SOURCE(1740, 21)
                        {
                           word limit25;
                           (* (( (bPt) rtn←v5180)+i←v5468) ) = (word) (* ((( (bPt) r←v5368)+4)+(
/*1*/      limit25 = (word) (* (( (hPt) r←v5368)+1) ),
/*1*/      BCK(i←v5468, limit25)
/*1*/      )) );
                           };
                        i←v5468 = (i←v5468 + 1);
                        if (( (int)i←v5468 <  (int)noName←c12016)) {
                           goto lab←L100022;
                           };
                        lab←L100019: ;
                        };
SOURCE(1763, 16)
                     (* (( (bPt) rtn←v5180)+len←v5424) ) = 0;
                     };
                  };
               }
            else {
               lab←L100013: ;
SOURCE(1799, 43)
               if ((ref←v3584 == 0)) {
SOURCE(1824, 18)
SOURCE(1826, 14)
                  (*  (bPt) rtn←v5180 ) = 0;
                  }
               else {
SOURCE(1849, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      };
   }

static word ViewRefText←P300(from←v3684)
   word from←v3684;
   {
   word string←v3740;
   /* ViewRefText: */ 
SOURCE(1884, 134)
SOURCE(1884, 134)
   string←v3740 = 0;
SOURCE(1963, 55)
   return((from←v3684 + 4));
   }

static word CreateScratch←P420(from←v4288)
   word from←v4288;
   {
   register ptr gf←c12912 =  (ptr) &globalframe;
   word string←v4344;
   /* CreateScratch: */ 
SOURCE(2536, 662)
SOURCE(2536, 662)
   string←v4344 = 0;
SOURCE(2605, 593)
   {
      word var←c12048;
      word var←c12080;
      var←c12048 = from←v4288;
      if ((var←c12048 == 0)) {
         goto lab←L100023;
         };
      var←c12080 = XR←GetReferentType(var←c12048);
      {
         word tc26;
         if (((* (( (ptr) gf←c12912)+19) ) == var←c12080)) {
            tc26 =  (word) ((*(int*)var←c12048<0) == 0);
            }
         else {
            tc26 =  (word) 0;
            };
         if (tc26) {
            {
               word r←v5512;
               r←v5512 = var←c12048;
SOURCE(2643, 200)
               {
                  word len←v5556;
                  word rtn←v5584;
SOURCE(2645, 25)
                  {
                     word pd27;
                     pd27 = (* (( (ptr) (* (( (ptr) gf←c12912)+43)/* var←c11312 */  ))+14) );
                     len←v5556 = (word) ( *( (fPt) ((*  (ptr) pd27 ))))(r←v5512, pd27);
                     };
SOURCE(2672, 59)
                  rtn←v5584 = (word) ObtainScratch←P480(len←v5556);
SOURCE(2741, 75)
SOURCE(2743, 53)
                  {
                     register word i←v5640 = 0;
                     register word noName←c12112;
                     noName←c12112 = len←v5556;
                     if (( (int)i←v5640 >=  (int)noName←c12112)) {
                        goto lab←L100024;
                        };
                     lab←L100027: ;
SOURCE(2769, 27)
                     {
                        word var←c12144;
                        {
                           word pd28;
                           pd28 = (* (( (ptr) (* (( (ptr) gf←c12912)+43)/* var←c11312 */  ))+9) );
                           var←c12144 = (word) ( *( (fPt) ((*  (ptr) pd28 ))))(r←v5512, i←v5640, pd28);
                           };
                        (* (( (bPt) rtn←v5584)+i←v5640) ) = var←c12144;
                        };
                     i←v5640 = (i←v5640 + 1);
                     if (( (int)i←v5640 <  (int)noName←c12112)) {
                        goto lab←L100027;
                        };
                     lab←L100024: ;
                     };
SOURCE(2798, 16)
                  (* (( (bPt) rtn←v5584)+len←v5556) ) = 0;
SOURCE(2819, 22)
                  string←v4344 = rtn←v5584;
                  };
               };
            }
         else {
            if (((* (( (ptr) gf←c12912)+20) ) == var←c12080)) {
               {
                  word r←v5684;
                  r←v5684 = var←c12048;
SOURCE(2861, 197)
                  {
                     word len←v5740;
                     word rtn←v5768;
SOURCE(2863, 28)
                     {
                        word base←v10752;
                        base←v10752 = r←v5684;
                        {
                           word tc29;
                           word idx30;
                           if ((base←v10752 == 0)) {
/*1*/   tc29 =  (word) 0;
/*1*/   }
                           else {
/*1*/   tc29 =  (word) (*  (hPt) base←v10752 );
/*1*/   };
                           len←v5740 = (
/*1*/   idx30 = (word) tc29,
/*1*/   BCK(idx30, 32768)
/*1*/   );
                           };
                        };
SOURCE(2893, 59)
                     rtn←v5768 = (word) ObtainScratch←P480(len←v5740);
SOURCE(2962, 69)
SOURCE(2964, 47)
                     {
                        register word i←v5824 = 0;
                        register word noName←c12208;
                        noName←c12208 = len←v5740;
                        if (( (int)i←v5824 >=  (int)noName←c12208)) {
                           goto lab←L100029;
                           };
                        lab←L100032: ;
SOURCE(2990, 21)
                        {
                           word limit31;
                           (* (( (bPt) rtn←v5768)+i←v5824) ) = (word) (* ((( (bPt) r←v5684)+4)+(
/*1*/      limit31 = (word) (* (( (hPt) r←v5684)+1) ),
/*1*/      BCK(i←v5824, limit31)
/*1*/      )) );
                           };
                        i←v5824 = (i←v5824 + 1);
                        if (( (int)i←v5824 <  (int)noName←c12208)) {
                           goto lab←L100032;
                           };
                        lab←L100029: ;
                        };
SOURCE(3013, 16)
                     (* (( (bPt) rtn←v5768)+len←v5740) ) = 0;
SOURCE(3034, 22)
                     string←v4344 = rtn←v5768;
                     };
                  };
               }
            else {
               lab←L100023: ;
SOURCE(3073, 125)
               if ((from←v4288 == 0)) {
SOURCE(3099, 101)
                  {
                     word rtn←v5868;
SOURCE(3101, 57)
                     rtn←v5868 = (word) ObtainScratch←P480(0);
SOURCE(3160, 14)
                     (*  (bPt) rtn←v5868 ) = 0;
SOURCE(3176, 22)
                     string←v4344 = rtn←v5868;
                     };
                  }
               else {
SOURCE(3207, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      };
SOURCE(2536, 662)
   return(string←v4344);
   }

static word ObtainScratch←P480(nChars←v4404)
   word nChars←v4404;
   {
   register ptr gf←c12944 =  (ptr) &globalframe;
   word var←c12368;
   word var←c12400;
   word var←c4448;
   register word i←v5924 = 0;
   word avail←v5952 = 0;
   /* ObtainScratch: */ 
SOURCE(3241, 730)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c12944)+16)/* LOCK←v2524 */ ));
SOURCE(3362, 18)
SOURCE(2461, 26)
   (* (( (ptr) gf←c12944)+12) ) = ((* (( (ptr) gf←c12944)+12) ) + 1);
SOURCE(3382, 151)
   {
      register word noName←c12240 = 0;
      W2 var←c12272;
      word var←c0128;
      lab←L100036: ;
      i←v5924 = noName←c12240;
SOURCE(3419, 37)
      var←c12272.f0 = 100;
      var←c12272.f1 = 512;
      var←c0128 = (* (( (ptr) &var←c12272)+i←v5924) );
      if (( (int)nChars←v4404 <=  (int)var←c0128)) {
SOURCE(3456, 4)
         goto lab←L100034;
         };
      noName←c12240 = i←v5924;
      if ((noName←c12240 >= 1)) {
         goto lab←L100033;
         };
      noName←c12240 = (noName←c12240 + 1);
      goto lab←L100036;
      lab←L100033: ;
SOURCE(3483, 20)
SOURCE(2461, 26)
      (* (( (ptr) gf←c12944)+13) ) = ((* (( (ptr) gf←c12944)+13) ) + 1);
SOURCE(3505, 28)
      {
         word var←c12304;
         var←c12304 = (word) CreateSpace←P180(nChars←v4404);
         (void) (XR←MonitorExit((word) (( (bPt) gf←c12944)+16)/* LOCK←v2524 */ ));
         return(var←c12304);
         };
      lab←L100034: ;
      };
SOURCE(3547, 225)
   avail←v5952 = (* (( (ptr) (* ((( (ptr) gf←c12944)+8)/* available←v2804 */ +i←v5924) ))+1) );
   if ((avail←v5952 == 0)) {
SOURCE(3589, 183)
      {
         word r←v6080 = 0;
SOURCE(3611, 16)
SOURCE(2461, 26)
         (* (( (ptr) gf←c12944)+14) ) = ((* (( (ptr) gf←c12944)+14) ) + 1);
SOURCE(3629, 15)
         r←v6080 = (* ((( (ptr) gf←c12944)+10)/* reserved←v2832 */ +i←v5924) );
SOURCE(3646, 45)
         lab←L100039: ;
         if (((* (( (ptr) (* (( (ptr) r←v6080)+1) ))+1) ) != 0)) {
            }
         else {
            goto lab←L100037;
            };
SOURCE(3673, 18)
         r←v6080 = (* (( (ptr) r←v6080)+1) );
         goto lab←L100039;
         lab←L100037: ;
SOURCE(3693, 15)
         avail←v5952 = (* (( (ptr) r←v6080)+1) );
SOURCE(3711, 12)
         (* (( (ptr) r←v6080)+1) ) = 0;
SOURCE(3726, 46)
         {
            W2 var←c12336;
            word var←c0129;
            var←c12336.f0 = 100;
            var←c12336.f1 = 512;
            var←c0129 = (* (( (ptr) &var←c12336)+i←v5924) );
            (*  (ptr) avail←v5952 ) = (word) CreateSpace←P180(var←c0129);
            };
         };
      };
SOURCE(3775, 30)
   (* (( (ptr) (* ((( (ptr) gf←c12944)+8)/* available←v2804 */ +i←v5924) ))+1) ) = (* (( (ptr) avail←v5952)+1) );
SOURCE(3807, 29)
   (* (( (ptr) avail←v5952)+1) ) = (* (( (ptr) (* ((( (ptr) gf←c12944)+10)/* reserved←v2832 */ +i←v5924) ))+1) );
SOURCE(3839, 24)
   (* (( (ptr) (* ((( (ptr) gf←c12944)+10)/* reserved←v2832 */ +i←v5924) ))+1) ) = avail←v5952;
SOURCE(3865, 84)
   if (((*  (bPt) (*  (ptr) avail←v5952 ) ) != 0)) {
SOURCE(3896, 53)
      var←c12368 = (word) (( (bPt) gf←c12944)+88)/* var←c10896 */ ;
      var←c12400 = 0;
      (void) (XR←MonitorExit((word) (( (bPt) gf←c12944)+16)/* LOCK←v2524 */ ));
      goto lab←L100040;
      };
SOURCE(3951, 20)
   {
      word var←c12432;
      var←c12432 = (*  (ptr) avail←v5952 );
      (void) (XR←MonitorExit((word) (( (bPt) gf←c12944)+16)/* LOCK←v2524 */ ));
      return(var←c12432);
      };
   /* c2c skipped dead code */ 
   lab←L100040: ;
SOURCE(3896, 53)
   {
      word var←c0104;
      var←c0104 = var←c12400;
      (void) XR←RaiseError(var←c12368, (word) &var←c0104);
      };
   }

static void ReleaseScratch←P540(s←v4508)
   word s←v4508;
   {
   register ptr gf←c12976 =  (ptr) &globalframe;
   register word i←v6208 = 0;
   word r←v6236 = 0;
   word l←v6264 = 0;
   /* ReleaseScratch: */ 
SOURCE(3977, 329)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c12976)+16)/* LOCK←v2524 */ ));
SOURCE(4079, 22)
   if ((s←v4508 == 0)) {
SOURCE(4095, 6)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c12976)+16)/* LOCK←v2524 */ ));
      return;
      };
SOURCE(4103, 203)
   {
      register word noName←c12464 = 0;
      lab←L100045: ;
      i←v6208 = noName←c12464;
SOURCE(4140, 15)
      r←v6236 = (* ((( (ptr) gf←c12976)+10)/* reserved←v2832 */ +i←v6208) );
SOURCE(4157, 149)
      lab←L100048: ;
      l←v6264 = (* (( (ptr) r←v6236)+1) );
      if ((l←v6264 != 0)) {
         }
      else {
         goto lab←L100046;
         };
SOURCE(4185, 111)
      if (((*  (ptr) l←v6264 ) == s←v4508)) {
SOURCE(4207, 15)
         (* (( (ptr) r←v6236)+1) ) = (* (( (ptr) l←v6264)+1) );
SOURCE(4224, 26)
         (* (( (ptr) l←v6264)+1) ) = (* (( (ptr) (* ((( (ptr) gf←c12976)+8)/* available←v2804 */ +i←v6208) ))+1) );
SOURCE(4253, 21)
         (* (( (ptr) (* ((( (ptr) gf←c12976)+8)/* available←v2804 */ +i←v6208) ))+1) ) = l←v6264;
SOURCE(4276, 12)
         (*  (bPt) s←v4508 ) = 0;
SOURCE(4290, 6)
         (void) (XR←MonitorExit((word) (( (bPt) gf←c12976)+16)/* LOCK←v2524 */ ));
         return;
         };
SOURCE(4301, 5)
      r←v6236 = l←v6264;
      goto lab←L100048;
      lab←L100046: ;
      noName←c12464 = i←v6208;
      if ((noName←c12464 >= 1)) {
         goto lab←L100042;
         };
      noName←c12464 = (noName←c12464 + 1);
      goto lab←L100045;
      lab←L100042: ;
      };
SOURCE(3977, 329)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c12976)+16)/* LOCK←v2524 */ ));
   return;
   }

static void InitializeScratchPool←P600()
   {
   register ptr gf←c13008 =  (ptr) &globalframe;
   /* InitializeScratchPool: */ 
SOURCE(4330, 357)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c13008)+16)/* LOCK←v2524 */ ));
SOURCE(4371, 149)
   {
      register word i←v6392 = 0;
      lab←L100052: ;
SOURCE(4408, 28)
      (* ((( (ptr) gf←c13008)+10)/* reserved←v2832 */ +i←v6392) ) = XR←NewObject(8, (* (( (ptr) gf←c13008)+21) ));
SOURCE(4438, 82)
      {
         register word j←v6436 = 0;
         register word noName←c12560;
         W2 var←c12528;
         var←c12528.f0 = 8;
         var←c12528.f1 = 2;
         noName←c12560 = (* (( (ptr) &var←c12528)+i←v6392) );
         if ((j←v6436 > noName←c12560)) {
            goto lab←L100053;
            };
         lab←L100056: ;
SOURCE(4482, 38)
         {
            word var←c12592;
            var←c12592 = XR←NewObject(8, (* (( (ptr) gf←c13008)+21) ));
            (* (( (ptr) var←c12592)+1) ) = (* ((( (ptr) gf←c13008)+8)/* available←v2804 */ +i←v6392) );
            (* ((( (ptr) gf←c13008)+8)/* available←v2804 */ +i←v6392) ) = var←c12592;
            };
         if ((j←v6436 >= noName←c12560)) {
            goto lab←L100053;
            };
         j←v6436 = (j←v6436 + 1);
         goto lab←L100056;
         lab←L100053: ;
         };
      if ((i←v6392 >= 1)) {
         goto lab←L100049;
         };
      i←v6392 = (i←v6392 + 1);
      goto lab←L100052;
      lab←L100049: ;
      };
SOURCE(4540, 147)
   {
      register word i←v6480 = 0;
      lab←L100060: ;
      {
         word l←v6524;
SOURCE(4577, 3)
         l←v6524 = (* (( (ptr) (* ((( (ptr) gf←c13008)+8)/* available←v2804 */ +i←v6480) ))+1) );
SOURCE(4617, 70)
         lab←L100063: ;
         if ((l←v6524 != 0)) {
            }
         else {
            goto lab←L100061;
            };
SOURCE(4634, 41)
         {
            W2 var←c12624;
            word var←c0130;
            var←c12624.f0 = 100;
            var←c12624.f1 = 512;
            var←c0130 = (* (( (ptr) &var←c12624)+i←v6480) );
            (*  (ptr) l←v6524 ) = (word) CreateSpace←P180(var←c0130);
            };
SOURCE(4677, 10)
         l←v6524 = (* (( (ptr) l←v6524)+1) );
         goto lab←L100063;
         lab←L100061: ;
         };
      if ((i←v6480 >= 1)) {
         goto lab←L100057;
         };
      i←v6480 = (i←v6480 + 1);
      goto lab←L100060;
      lab←L100057: ;
      };
SOURCE(4330, 357)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c13008)+16)/* LOCK←v2524 */ ));
   return;
   }

/* file: UXStringsImpl, module: UXStringsImpl, compiled at: February 21, 1992 5:38:36 pm PST */ 
extern void XR←install←UXStringsImpl() {
   NoName←Q2124();
   }
extern void XR←run←UXStringsImpl() { XR←Start(&globalframe); }