/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 28, 1993 10:14:45 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerCDTypefaceImpl, module: ImagerCDTypefaceImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2453787825,2232377111] ImagerCDTypefaceImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W3 *W3Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; word r;} W17;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W16 f; W16 r;} W32;
typedef struct {W8 f; W7 r;} W15;
typedef struct {W16 f; W15 r;} W31;
typedef struct {W32 f; W31 r;} W63;
typedef W63 *W63Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
static float fc1 = 0.9875;
static float fc2 = 1.0125;
static float fc3 = 0.01;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
static float fc76 = 0.0;
static float fc85 = 25400.0;
#define INEG(x)  ( (word) ( - ((int) (word) (x)) ) )
static float fc91 = 60.0;
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
static float fc151 = 0.5;
static float fc157 = -0.05;
static float fc158 = 0.45;
static float fc159 = 0.6;
#define FMIN(x, y, tx, ty)  ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
static float fc189 = 90.0;
static float fc192 = 45.0;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc198 = 1.666667E-2;
static float fc224 = 0.05;
static float fc225 = 0.4;
static float fc230 = 1.0;
static void NoName←Q5124();
static void ImagerCDTypefaceImpl←P0();
static void RawFetch←P180();
static void ReadIXHeader←P240();
static void ReadRasterDefn←P300();
static word CDCreate←P360();
static word NoName←Q5184();
static void DecodeFamily←P420();
static word TypefaceFromRopes←P480();
static void ValidateFamilyAndFace←P2076();
static word P←P2424();
static word PropListFromGroups←P540();
static word InOrder←P600();
static word SortGroups←P660();
static word BuildSetTable←P720();
static void TransformBox←P780();
static void GetCharacterData←P840();
static word CDContains←P900();
static word CDNextChar←P960();
static void CDEscapement←P1020();
static word CDAmplified←P1080();
static word CDCorrection←P1140();
static void CDBoundingBox←P1200();
static void CDFontBoundingBox←P1260();
static void CDKern←P1320();
static word CDNextKern←P1380();
static word CDLigature←P1440();
static word CDNextLigature←P1500();
static word GetBitmap←P1560();
static word Right←P1620();
static word FindBestGroup←P1680();
static word GetClientToDevice←P1740();
static word NoName←Q5244();
static void CDMask←P1800();
static word CloseToIdentity←P1860();
static word CDMakeCharMask←P1920();
static void NoName←Q5304();
static void NoName←Q5364();
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\301\227\276\106\300\342\254\204\020\100\200\000\000"};
static struct {unsigned f; char r[8];} string5 = {458759, "\006\002\000\001@@\001"};
static struct {unsigned f; char r[4];} string6 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string7 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\222\101\324\261\300\205\017\137\027\100\244\000\000"};
static struct {unsigned f; char r[28];} string9 = {1769500, "\205\210\210\241\000\300\000\377\377\377\000\100\376\216\257\300\222\101\324\261\300\205\017\137\027\100\230"};
static struct {unsigned f; char r[8];} string10 = {393222, "\010\000\004@\377\001\000"};
static struct {unsigned f; char r[16];} string11 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\222\101\324\261\300\205\017\137\027\100\230\000\000"};
static struct {unsigned f; char r[12];} string13 = {589833, "\011\000\004\100\100\040\000\014\001\000\000"};
static struct {unsigned f; char r[20];} string14 = {1245204, "\254\205\210\210\241\000\300\000\377\377\377\000\100\376\210\241\000\100\377"};
static struct {unsigned f; char r[48];} string15 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\363\223\326\161\300\017\164\046\072\104\350\005\004\162\145\163\164\214\216\257\300\363\223\326\161\300\017\164\046\072\104\350\261\000\000\000"};
static struct {unsigned f; char r[4];} string16 = {131074, "\004\003\000"};
static struct {unsigned f; char r[20];} string17 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\164\000\000"};
static struct {unsigned f; char r[44];} string19 = {2752556, "\260\006\005\146\151\162\163\164\257\300\240\236\274\171\300\344\000\142\023\100\200\005\004\162\145\163\164\214\257\300\240\236\274\171\300\344\000\142\023\100\200\261\000"};
static struct {unsigned f; char r[4];} string20 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\222\101\324\261\300\205\017\137\027\100\200\000\000"};
static struct {unsigned f; char r[4];} string22 = {131074, "\004\005\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\222\101\324\261\300\205\017\137\027\101\130\000\000"};
static struct {unsigned f; char r[12];} string24 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\222\101\324\261\300\205\017\137\027\100\274\000\000"};
static struct {unsigned f; char r[4];} string26 = {196611, "\004A\001"};
static struct {unsigned f; char r[48];} string27 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\222\101\324\261\300\205\017\137\027\100\274\005\004\162\145\163\164\214\216\257\300\222\101\324\261\300\205\017\137\027\100\274\261\000\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\301\227\276\106\300\342\254\204\020\100\164\000\000"};
static struct {unsigned f; char r[4];} string29 = {196611, "\004@\357"};
static struct {unsigned f; char r[8];} string30 = {262152, "name\000\000\000"};
static struct {unsigned f; char r[16];} string31 = {917520, " is malformed.\000"};
static struct {unsigned f; char r[12];} string32 = {655372, "Font file \000"};
static struct {unsigned f; char r[32];} string33 = {1835040, "pixelArrayTransformationUses\000\000\000"};
static struct {unsigned f; char r[12];} string34 = {655372, "cd-bitmaps\000"};
static struct {unsigned f; char r[8];} string35 = {393224, "cd-300\000"};
static struct {unsigned f; char r[4];} string36 = {131076, "CD\000"};
static struct {unsigned f; char r[4];} string37 = {131076, "AC\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\222\101\324\261\300\205\017\137\027\100\164\000\000"};
static struct {unsigned f; char r[12];} string39 = {589833, "\006\002\044\001\100\230\004\101\377\000\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "\257\300\170\064\225\306\300\207\372\245\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\000\172\225\152\300\104\041\252\375\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\041\257\203\366\300\322\161\356\007\100\150\000\000"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\301\227\276\106\300\342\254\204\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string48 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string49 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {
   word f0[4]; word f4; word f5; word f6[114]; 
   } globalframe = {
   {0}, (word) 1, (word) 1, {0}
   };

static void NoName←Q5124()
   {
   register ptr gf←c0400 =  (ptr) &globalframe;
   word var←c42768;
   (* (( (ptr) gf←c0400)+6)/* minScale←v4680 */  ) = (*  (ptr) &fc1 );
   (* (( (ptr) gf←c0400)+7)/* maxScale←v4708 */  ) = (*  (ptr) &fc2 );
   (* (( (ptr) gf←c0400)+8)/* tolerance←v4820 */  ) = (*  (ptr) &fc3 );
   (* (( (ptr) gf←c0400)+108) ) = ( ((word)  (fPt) ImagerCDTypefaceImpl←P0) );
   (* (( (ptr) gf←c0400)+106) ) = ( ((word)  (fPt) RawFetch←P180) );
   (* (( (ptr) gf←c0400)+104) ) = ( ((word)  (fPt) ReadIXHeader←P240) );
   (* (( (ptr) gf←c0400)+102) ) = ( ((word)  (fPt) ReadRasterDefn←P300) );
   (* (( (ptr) gf←c0400)+100) ) = ( ((word)  (fPt) CDCreate←P360) );
   (* (( (ptr) gf←c0400)+98) ) = ( ((word)  (fPt) DecodeFamily←P420) );
   (* (( (ptr) gf←c0400)+96) ) = ( ((word)  (fPt) TypefaceFromRopes←P480) );
   (* (( (ptr) gf←c0400)+94) ) = ( ((word)  (fPt) PropListFromGroups←P540) );
   (* (( (ptr) gf←c0400)+92) ) = ( ((word)  (fPt) InOrder←P600) );
   (* (( (ptr) gf←c0400)+90) ) = ( ((word)  (fPt) SortGroups←P660) );
   (* (( (ptr) gf←c0400)+88) ) = ( ((word)  (fPt) BuildSetTable←P720) );
   (* (( (ptr) gf←c0400)+86) ) = ( ((word)  (fPt) TransformBox←P780) );
   (* (( (ptr) gf←c0400)+84) ) = ( ((word)  (fPt) GetCharacterData←P840) );
   (* (( (ptr) gf←c0400)+82) ) = ( ((word)  (fPt) CDContains←P900) );
   (* (( (ptr) gf←c0400)+80) ) = ( ((word)  (fPt) CDNextChar←P960) );
   (* (( (ptr) gf←c0400)+78) ) = ( ((word)  (fPt) CDEscapement←P1020) );
   (* (( (ptr) gf←c0400)+76) ) = ( ((word)  (fPt) CDAmplified←P1080) );
   (* (( (ptr) gf←c0400)+74) ) = ( ((word)  (fPt) CDCorrection←P1140) );
   (* (( (ptr) gf←c0400)+72) ) = ( ((word)  (fPt) CDBoundingBox←P1200) );
   (* (( (ptr) gf←c0400)+70) ) = ( ((word)  (fPt) CDFontBoundingBox←P1260) );
   (* (( (ptr) gf←c0400)+68) ) = ( ((word)  (fPt) CDKern←P1320) );
   (* (( (ptr) gf←c0400)+66) ) = ( ((word)  (fPt) CDNextKern←P1380) );
   (* (( (ptr) gf←c0400)+64) ) = ( ((word)  (fPt) CDLigature←P1440) );
   (* (( (ptr) gf←c0400)+62) ) = ( ((word)  (fPt) CDNextLigature←P1500) );
   (* (( (ptr) gf←c0400)+60) ) = ( ((word)  (fPt) GetBitmap←P1560) );
   (* (( (ptr) gf←c0400)+58) ) = ( ((word)  (fPt) Right←P1620) );
   (* (( (ptr) gf←c0400)+56) ) = ( ((word)  (fPt) FindBestGroup←P1680) );
   (* (( (ptr) gf←c0400)+54) ) = ( ((word)  (fPt) GetClientToDevice←P1740) );
   (* (( (ptr) gf←c0400)+52) ) = ( ((word)  (fPt) CDMask←P1800) );
   (* (( (ptr) gf←c0400)+50) ) = ( ((word)  (fPt) CloseToIdentity←P1860) );
   (* (( (ptr) gf←c0400)+48) ) = ( ((word)  (fPt) CDMakeCharMask←P1920) );
   (* (( (ptr) gf←c0400)+10) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0400)+11) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0400)+12) ) = (word) XR←GetTypeIndexS((word) (&string8));
   (* (( (ptr) gf←c0400)+16) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c0400)+20) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string7);
   (* (( (ptr) gf←c0400)+21) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
   (* (( (ptr) gf←c0400)+22) ) = (word) XR←GetTypeIndexS((word) (&string14));
   (* (( (ptr) gf←c0400)+25) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16);
   (* (( (ptr) gf←c0400)+26) ) = (word) XR←GetTypeIndex((word) &string17, 0, (word) &string16);
   (* (( (ptr) gf←c0400)+27) ) = (word) XR←GetTypeIndexS((word) (&string18));
   (* (( (ptr) gf←c0400)+28) ) = (word) XR←GetTypeIndex((word) &string19, 0, (word) &string20);
   (* (( (ptr) gf←c0400)+31) ) = (word) XR←GetTypeIndex((word) &string21, 0, (word) &string22);
   (* (( (ptr) gf←c0400)+32) ) = (word) XR←GetTypeIndex((word) &string23, 0, (word) &string24);
   (* (( (ptr) gf←c0400)+33) ) = (word) XR←GetTypeIndex((word) &string25, 0, (word) &string26);
   (* (( (ptr) gf←c0400)+34) ) = (word) XR←GetTypeIndex((word) &string27, 0, (word) &string16);
   (* (( (ptr) gf←c0400)+35) ) = (word) XR←GetTypeIndex((word) &string28, 0, (word) &string29);
   (*  (ptr) (( (bPt) gf←c0400)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+11) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0400)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+20) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0400)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+20) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0400)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+11) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0400)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+20) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0400)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+20) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0400)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+20) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0400)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+20) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0400)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0400)+11) ), (word) &string36);
   (void) XR←DeclareGlobalFrame((word) "ImagerCDTypefaceImpl", &globalframe, (word) XR←GetTypeIndex((word) &string38, 0, (word) &string39)
      , (word) (( (bPt) gf←c0400)+432)/* var←c38928 */ );
   var←c42768 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string40)), 84);
   (* (( (ptr) gf←c0400)+113)/* var←c39376 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 1326338);
   (void) XR←ImportProcS(var←c42768, 1853957);
   (void) XR←ImportProcS(var←c42768, 526850);
   var←c42768 = (word) XR←ImportInterface((word) "ImagerBackdoor", (word) XR←GetTypeIndexS((word) (&string41)), 42);
   (* (( (ptr) gf←c0400)+118)/* var←c42544 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 67899395);
   var←c42768 = (word) XR←ImportInterface((word) "ImagerBox", (word) XR←GetTypeIndexS((word) (&string42)), 7);
   (* (( (ptr) gf←c0400)+116)/* var←c41168 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 269484545);
   (void) XR←ImportProcS(var←c42768, 269484801);
   (void) XR←ImportProcS(var←c42768, 269484289);
   (void) XR←ImportProcS(var←c42768, 270533890);
   (void) XR←ImportProcS(var←c42768, 269484033);
   var←c42768 = (word) XR←ImportInterface((word) "ImagerMaskCache", (word) XR←GetTypeIndexS((word) (&string43)), 21);
   (* (( (ptr) gf←c0400)+119)/* var←c42736 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 67371521);
   var←c42768 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string44)), 60);
   (* (( (ptr) gf←c0400)+117)/* var←c42416 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 267009);
   (void) XR←ImportProcS(var←c42768, 68686339);
   var←c42768 = (word) XR←ImportInterface((word) "ImagerSys", (word) XR←GetTypeIndexS((word) (&string45)), 15);
   (* (( (ptr) gf←c0400)+112)/* var←c39216 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 67373825);
   (void) XR←ImportProcS(var←c42768, 67374081);
   var←c42768 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string46)), 55);
   (* (( (ptr) gf←c0400)+114)/* var←c40240 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 262401);
   (void) XR←ImportProcS(var←c42768, 402927105);
   (void) XR←ImportProcS(var←c42768, 67635458);
   (void) XR←ImportProcS(var←c42768, 269756930);
   (void) XR←ImportProcS(var←c42768, 135013378);
   (void) XR←ImportProcS(var←c42768, 134493185);
   (void) XR←ImportProcS(var←c42768, 67645698);
   (void) XR←ImportProcS(var←c42768, 67383297);
   (void) XR←ImportProcS(var←c42768, 530178);
   (void) XR←ImportProcS(var←c42768, 67634177);
   var←c42768 = (word) XR←ImportInterface((word) "ImagerTypeface", (word) XR←GetTypeIndexS((word) (&string47)), 12);
   (* (( (ptr) gf←c0400)+110)/* var←c39024 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 67371777);
   (void) XR←ImportProcS(var←c42768, 67635202);
   (void) XR←ImportProcS(var←c42768, 526082);
   var←c42768 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string48)), 11);
   (* (( (ptr) gf←c0400)+115)/* var←c40976 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 67633154);
   (void) XR←ImportProcS(var←c42768, 67372033);
   (void) XR←ImportProcS(var←c42768, 67634434);
   var←c42768 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string49)), 43);
   (* (( (ptr) gf←c0400)+111)/* var←c39184 */  ) = var←c42768;
   (void) XR←ImportProcS(var←c42768, 67896323);
   (void) XR←ImportProcS(var←c42768, 67901955);
   (void) XR←ImportProcS(var←c42768, 68160516);
   (void) XR←ImportProcS(var←c42768, 67902211);
   (void) XR←ImportProcS(var←c42768, 67898627);
   (void) XR←ImportProcS(var←c42768, 67373825);
   (void) XR←ImportProcS(var←c42768, 68419845);
   (void) XR←ImportProcS(var←c42768, 67634434);
   (void) XR←ImportProcS(var←c42768, 68429059);
   }

static void ImagerCDTypefaceImpl←P0(formal←c062, formal←c056)
   word formal←c062;
   word formal←c056;
   {
   register ptr gf←c42800 =  (ptr) &globalframe;
   /* ImagerCDTypefaceImpl: */ 
SOURCE(1011, 22420)
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
SOURCE(22626, 409)
   {
      word var←c38960;
      var←c38960 = XR←NewObject(68, (* (( (ptr) gf←c42800)+10) ));
      (*  (ptr) var←c38960 ) = (* (( (ptr) gf←c42800)+46) );
      (* (( (ptr) var←c38960)+2) ) = (word) (( (bPt) gf←c42800)+328)/* var←c38512 */ ;
      (* (( (ptr) var←c38960)+3) ) = (word) (( (bPt) gf←c42800)+320)/* var←c38480 */ ;
      (* (( (ptr) var←c38960)+4) ) = (word) (( (bPt) gf←c42800)+312)/* var←c38448 */ ;
      (* (( (ptr) var←c38960)+5) ) = (word) (( (bPt) gf←c42800)+304)/* var←c38416 */ ;
      (* (( (ptr) var←c38960)+6) ) = (word) (( (bPt) gf←c42800)+296)/* var←c38384 */ ;
      (* (( (ptr) var←c38960)+7) ) = (word) (( (bPt) gf←c42800)+288)/* var←c38352 */ ;
      (* (( (ptr) var←c38960)+8) ) = (word) (( (bPt) gf←c42800)+280)/* var←c38320 */ ;
      (* (( (ptr) var←c38960)+9) ) = (word) (( (bPt) gf←c42800)+256)/* var←c38224 */ ;
      (* (( (ptr) var←c38960)+10) ) = (word) (( (bPt) gf←c42800)+248)/* var←c38192 */ ;
      (* (( (ptr) var←c38960)+11) ) = (word) (( (bPt) gf←c42800)+272)/* var←c38288 */ ;
      (* (( (ptr) var←c38960)+12) ) = (word) (( (bPt) gf←c42800)+264)/* var←c38256 */ ;
      (* (( (ptr) var←c38960)+13) ) = (word) (( (bPt) gf←c42800)+208)/* var←c38032 */ ;
      (* (( (ptr) var←c38960)+14) ) = (word) (( (bPt) gf←c42800)+192)/* var←c37968 */ ;
      (* (( (ptr) var←c38960)+15) ) = XR←CheckProc(0);
      (* (( (ptr) gf←c42800)+9)/* cdClass←v4904 */  ) = var←c38960;
      };
SOURCE(23038, 87)
   {
      word var←c38992;
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c42800)+110)/* var←c39024 */  ))+12) );
         var←c38992 = (word) ( *( (fPt) ((*  (ptr) pd50 ))))((* (( (ptr) gf←c42800)+45) ), (word) (( (bPt) gf←c42800)+400)/* var←c38800 */ , pd50)
         ;
         };
      {
         word pd51;
         pd51 = (* (( (ptr) (* (( (ptr) gf←c42800)+110)/* var←c39024 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd51 ))))(var←c38992, 0, pd51);
         };
      };
SOURCE(23127, 87)
   {
      word var←c39056;
      {
         word pd52;
         pd52 = (* (( (ptr) (* (( (ptr) gf←c42800)+110)/* var←c39024 */  ))+12) );
         var←c39056 = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) gf←c42800)+44) ), (word) (( (bPt) gf←c42800)+400)/* var←c38800 */ , pd52)
         ;
         };
      {
         word pd53;
         pd53 = (* (( (ptr) (* (( (ptr) gf←c42800)+110)/* var←c39024 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd53 ))))(var←c39056, 0, pd53);
         };
      };
SOURCE(23216, 91)
   {
      word var←c39088;
      {
         word pd54;
         pd54 = (* (( (ptr) (* (( (ptr) gf←c42800)+110)/* var←c39024 */  ))+12) );
         var←c39088 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))((* (( (ptr) gf←c42800)+43) ), (word) (( (bPt) gf←c42800)+400)/* var←c38800 */ , pd54)
         ;
         };
      {
         word pd55;
         pd55 = (* (( (ptr) (* (( (ptr) gf←c42800)+110)/* var←c39024 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd55 ))))(var←c39088, 0, pd55);
         };
      };
SOURCE(23336, 95)
   {
      word var←c39120;
      {
         word pd56;
         pd56 = (* (( (ptr) (* (( (ptr) gf←c42800)+110)/* var←c39024 */  ))+12) );
         var←c39120 = (word) ( *( (fPt) ((*  (ptr) pd56 ))))((* (( (ptr) gf←c42800)+42) ), (word) (( (bPt) gf←c42800)+400)/* var←c38800 */ , pd56)
         ;
         };
      {
         word pd57;
         pd57 = (* (( (ptr) (* (( (ptr) gf←c42800)+110)/* var←c39024 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd57 ))))(var←c39120, 0, pd57);
         };
      };
   }

static void RawFetch←P180(base←v6032, byteOffset←v6060, destination←v6088, nBytes←v6116)
   word base←v6032;
   word byteOffset←v6060;
   word destination←v6088;
   word nBytes←v6116;
   {
   register ptr gf←c42832 =  (ptr) &globalframe;
   word bytesMoved←v10524;
   /* RawFetch: */ 
SOURCE(2542, 1511)
SOURCE(2648, 127)
   {
      W3 var←c39152;
      var←c39152.f0 = destination←v6088;
      var←c39152.f1 = 0;
      var←c39152.f2 = nBytes←v6116;
      {
         word pd58;
         pd58 = (* (( (ptr) (* (( (ptr) gf←c42832)+111)/* var←c39184 */  ))+41) );
         bytesMoved←v10524 = (word) ( *( (fPt) ((*  (ptr) pd58 ))))(var←c39152, base←v6032, byteOffset←v6060, pd58);
         };
      };
SOURCE(2777, 27)
SOURCE(2417, 40)
   if (( (int)bytesMoved←v10524 !=  (int)nBytes←v6116)) {
SOURCE(2435, 22)
      (void) XR←RaiseError((word) (( (bPt) gf←c42832)+188)/* var←c37936 */ , 0);
      };
   }

static void ReadIXHeader←P240(formal←c074, base←v6280, byteOffset←v6308)
   word formal←c074;
   word base←v6280;
   word byteOffset←v6308;
   {
   register ptr gf←c42864 =  (ptr) &globalframe;
   W2 ix←v6352;
   word bytes←v10568 = 0;
   word header←v10596;
   /* ReadIXHeader: */ 
SOURCE(2889, 1164)
SOURCE(3031, 35)
   header←v10596 = 0;
SOURCE(3068, 985)
   {
      word pd59;
      pd59 = (* (( (ptr) (* (( (ptr) gf←c42864)+111)/* var←c39184 */  ))+9) );
      bytes←v10568 = (bytes←v10568 & 4294902015) | (((word) ((word) ( *( (fPt) ((*  (ptr) pd59 ))))(base←v6280, byteOffset←v6308, pd59)
             & 0377)) << 8);
      };
SOURCE(3131, 922)
   {
      word pd60;
      pd60 = (* (( (ptr) (* (( (ptr) gf←c42864)+111)/* var←c39184 */  ))+9) );
      bytes←v10568 = (bytes←v10568 & 4294967040) | ((word) ((word) ( *( (fPt) ((*  (ptr) pd60 ))))(base←v6280, (byteOffset←v6308 + 
            1), pd60) & 0377));
      };
SOURCE(3196, 24)
   header←v10596 = bytes←v10568;
SOURCE(3222, 21)
   ix←v6352.f0 =  (unsigned) (((unsigned)header←v10596 << 16) >> 28);
SOURCE(3245, 25)
   ix←v6352.f1 =  (unsigned) (header←v10596 & 07777);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c074 ) = ix←v6352;
   return;
   }

static void ReadRasterDefn←P300(formal←c080, base←v6524, byteOffset←v6552)
   word formal←c080;
   word base←v6524;
   word byteOffset←v6552;
   {
   register ptr gf←c42896 =  (ptr) &globalframe;
   W2 rd←v6596;
   word bytes←v10768 = 0;
   word raster←v10796;
   /* ReadRasterDefn: */ 
SOURCE(3341, 712)
SOURCE(3487, 37)
   raster←v10796 = 0;
SOURCE(3526, 527)
   {
      word pd61;
      pd61 = (* (( (ptr) (* (( (ptr) gf←c42896)+111)/* var←c39184 */  ))+9) );
      bytes←v10768 = (bytes←v10768 & 4294902015) | (((word) ((word) ( *( (fPt) ((*  (ptr) pd61 ))))(base←v6524, byteOffset←v6552, pd61)
             & 0377)) << 8);
      };
SOURCE(3589, 464)
   {
      word pd62;
      pd62 = (* (( (ptr) (* (( (ptr) gf←c42896)+111)/* var←c39184 */  ))+9) );
      bytes←v10768 = (bytes←v10768 & 4294967040) | ((word) ((word) ( *( (fPt) ((*  (ptr) pd62 ))))(base←v6524, (byteOffset←v6552 + 
            1), pd62) & 0377));
      };
SOURCE(3654, 24)
   raster←v10796 = bytes←v10768;
SOURCE(3680, 25)
   rd←v6596.f0 =  (unsigned) (((unsigned)raster←v10796 << 16) >> 26);
SOURCE(3707, 23)
   rd←v6596.f1 =  (unsigned) (raster←v10796 & 01777);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c080 ) = rd←v6596;
   return;
   }

static word CDCreate←P360(stream←v6656)
   word stream←v6656;
   {
   W7 var←c42928;
   register ptr gf←c42960 =  (ptr) &globalframe;
   word var←c6700;
   /* declaration of name←v10968 skipped */ 
   word base←v10996;
   /* CDCreate: */ 
SOURCE(3736, 317)
SOURCE(3794, 45)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c42960)+112)/* var←c39216 */  ))+16) );
      var←c42928.f4/* name←v10968 */  = (word) ( *( (fPt) ((*  (ptr) pd63 ))))(stream←v6656, pd63);
      };
SOURCE(3841, 45)
   {
      word pd64;
      pd64 = (* (( (ptr) (* (( (ptr) gf←c42960)+112)/* var←c39216 */  ))+15) );
      base←v10996 = (word) ( *( (fPt) ((*  (ptr) pd64 ))))(stream←v6656, pd64);
      };
SOURCE(3888, 165)
   {
      word var←c39312;
      word var←c39344;
      /* declaration of var←c39280 skipped */ 
      var←c39312 = XR←NewObject(8, (* (( (ptr) gf←c42960)+25) ));
      var←c39344 = var←c39312;
      (*  (ptr) var←c39344 ) = base←v10996;
      var←c42928.f5/* var←c39280 */  = var←c39312;
      {
         /* declaration of var←c01 skipped */ 
          (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q5184) ), ( ((word)  (fPt) NoName←Q5364) ), (word) &var←c42928);
         return(var←c42928.f6/* var←c01 */ );
         };
      };
   }

static word NoName←Q5184(formal←c0406)
   word formal←c0406;
   {
SOURCE(3888, 165)
   (* (( (ptr) formal←c0406)+6) ) = (word) TypefaceFromRopes←P480((* ((( (ptr) formal←c0406)+5)) ));
   return(0);
   }

static void DecodeFamily←P420(formal←c097, family←v6964)
   word formal←c097;
   word family←v6964;
   {
   register ptr gf←c42992 =  (ptr) &globalframe;
   W3 var←c7008;
   word size←v11040;
   word charSet←v11068 = 0;
   word hasCharSet←v11096 = 0;
   /* DecodeFamily: */ 
SOURCE(4777, 513)
SOURCE(4839, 29)
   {
      word pd65;
      word idx66;
      pd65 = (* (( (ptr) (* (( (ptr) gf←c42992)+111)/* var←c39184 */  ))+15) );
      size←v11040 = (
         idx66 = (word) ( *( (fPt) ((*  (ptr) pd65 ))))(family←v6964, pd65),
         SGNCK(idx66)
         );
      };
SOURCE(4915, 20)
SOURCE(2417, 40)
   if ((family←v6964 == 0)) {
SOURCE(2435, 22)
      (void) XR←RaiseError((word) (( (bPt) gf←c42992)+188)/* var←c37936 */ , 0);
      };
SOURCE(4937, 196)
   if ((size←v11040 >= 3)) {
SOURCE(4957, 17)
      hasCharSet←v11096 = 1;
SOURCE(4976, 157)
      {
         register word i←v11140;
         i←v11140 = (size←v11040 - 3);
         if (( (int)i←v11140 >=  (int)size←v11040)) {
            goto lab←L100005;
            };
         lab←L100008: ;
         {
            word c←v11184;
SOURCE(5010, 31)
            {
               word pd67;
               pd67 = (* (( (ptr) (* (( (ptr) gf←c42992)+111)/* var←c39184 */  ))+9) );
               c←v11184 = (word) ( *( (fPt) ((*  (ptr) pd67 ))))(family←v6964, i←v11140, pd67);
               };
SOURCE(5043, 90)
            if (((c←v11184 - 48) <= 7)) {
SOURCE(5066, 28)
               {
                  word idx68;
                  charSet←v11068 = (
                     idx68 = (word) (((word) charSet←v11068 << 3) + (c←v11184 - 48)),
                     BCK(idx68, 256)
                     );
                  };
               }
            else {
SOURCE(5102, 18)
               hasCharSet←v11096 = 0;
SOURCE(5122, 11)
               charSet←v11068 = 0;
SOURCE(5135, 4)
               goto lab←L100006;
               };
            };
         i←v11140 = (i←v11140 + 1);
         if (( (int)i←v11140 <  (int)size←v11040)) {
            goto lab←L100008;
            };
         lab←L100005: ;
         lab←L100006: ;
         };
      };
SOURCE(5154, 136)
   {
      W3 var←c39600;
      {
         W3 var←c39568;
         {
            word pd69;
            if ((0 != hasCharSet←v11096)) {
               pd69 = (* (( (ptr) (* (( (ptr) gf←c42992)+111)/* var←c39184 */  ))+17) );
               var←c39568.f0 = (word) ( *( (fPt) ((*  (ptr) pd69 ))))(family←v6964, 0, (size←v11040 - 3), pd69);
               }
            else {
               var←c39568.f0 = family←v6964;
               };
            };
         var←c39568.f1 = hasCharSet←v11096;
         var←c39568.f2 = charSet←v11068;
         var←c39600 = var←c39568;
         };
      var←c7008 = var←c39600;
      /* removed tail goto */ 
      };
   (*  (W3Pt) formal←c097 ) = var←c7008;
   return;
   }

static word TypefaceFromRopes←P480(contents←v7068)
   word contents←v7068;
   {
   W17 var←c43024;
   register ptr gf←c43056 =  (ptr) &globalframe;
   word var←c7196;
   /* declaration of var←c39632 skipped */ 
   /* declaration of var←c39664 skipped */ 
   word data←v11228;
   W2 ix←v11256;
   /* declaration of indexFace←v11284 skipped */ 
   /* declaration of indexFamilySansCharSet←v11312 skipped */ 
   word groups←v11340 = 0;
   /* TypefaceFromRopes: */ 
SOURCE(5294, 4635)
   {
      word tmpAddr70;
      tmpAddr70 = (word) (( (ptr) &var←c43024)+4)/* var←c39632 */ ;
      (*  (ptr) tmpAddr70 ) = ( ((word)  (fPt) P←P2424) );
      (* (( (ptr) tmpAddr70) + 1) ) = 1;
      };
   {
      word tmpAddr71;
      tmpAddr71 = (word) (( (ptr) &var←c43024)+6)/* var←c39664 */ ;
      (*  (ptr) tmpAddr71 ) = ( ((word)  (fPt) ValidateFamilyAndFace←P2076) );
      (* (( (ptr) tmpAddr71) + 1) ) = 1;
      };
SOURCE(5366, 30)
   data←v11228 = XR←NewObject(12, (* (( (ptr) gf←c43056)+31) ));
SOURCE(5412, 19)
   (* (( (ptr) &var←c43024)+8)/* indexFace←v11284 */  ) = 0;
SOURCE(5433, 34)
   (* (( (ptr) &var←c43024)+9)/* indexFamilySansCharSet←v11312 */  ) = 0;
SOURCE(5790, 3809)
   {
      register word each←v11584;
      each←v11584 = contents←v7068;
      lab←L100012: ;
      if ((each←v11584 != 0)) {
         }
      else {
         goto lab←L100009;
         };
      {
         word base←v11712;
         word byteOffset←v11740 = 0;
         word nameTable←v11768 = 0;
         word maxNameCode←v11796 = 0;
SOURCE(5855, 23)
         base←v11712 = (*  (ptr) each←v11584 );
SOURCE(5956, 463)
         lab←L100015: ;
SOURCE(5956, 463)
SOURCE(6060, 35)
         (void) ReadIXHeader←P240((word) &ix←v11256, base←v11712, byteOffset←v11740);
SOURCE(6097, 254)
         {
            word var←c39728;
            var←c39728 = ix←v11256.f0;
            if ((var←c39728 == 0)) {
SOURCE(6124, 4)
               goto lab←L100014;
               }
            else {
               if ((var←c39728 == 1)) {
SOURCE(6138, 215)
                  {
                     W6 name←v11884;
SOURCE(6140, 39)
                     name←v11884.f5 = 0;
SOURCE(6248, 59)
SOURCE(6250, 57)
                     (void) RawFetch←P180(base←v11712, (byteOffset←v11740 + 2), (word) &name←v11884, 22);
SOURCE(6310, 41)
                     {
                        word x72;
                        maxNameCode←v11796 = (x72 =  (unsigned) (*  (hPt) &name←v11884 ),
                           MAX( (unsigned) , maxNameCode←v11796, x72));
                        };
                     };
                  }
               else {
                  };
               };
            };
SOURCE(6373, 46)
         {
            word var←c39760;
            word fileWords←v37812;
            fileWords←v37812 = ix←v11256.f1;
SOURCE(2518, 20)
            var←c39760 = IOP2( * ,  (int)fileWords←v37812,  (int)2);
            byteOffset←v11740 = (byteOffset←v11740 + var←c39760);
            };
         goto lab←L100015;
         lab←L100014: ;
SOURCE(6430, 44)
         {
            word var←c39792;
            word var←c39824;
            word var←c39856;
            var←c39792 = BCK((maxNameCode←v11796 + 1), 67108863);
            var←c39824 = ((word) var←c39792 << 2);
            var←c39856 = XR←NewObject((4 + var←c39824), (* (( (ptr) gf←c43056)+32) ));
            (*  (ptr) var←c39856 ) = var←c39792;
            nameTable←v11768 = var←c39856;
            };
SOURCE(6476, 14)
         byteOffset←v11740 = 0;
SOURCE(6492, 560)
         lab←L100019: ;
SOURCE(6492, 560)
SOURCE(6596, 35)
         (void) ReadIXHeader←P240((word) &ix←v11256, base←v11712, byteOffset←v11740);
SOURCE(6633, 351)
         {
            word var←c39888;
            var←c39888 = ix←v11256.f0;
            if ((var←c39888 == 0)) {
SOURCE(6660, 4)
               goto lab←L100018;
               }
            else {
               if ((var←c39888 == 1)) {
SOURCE(6674, 312)
                  {
                     /* declaration of name←v12000 skipped */ 
                     /* declaration of i←v12056 skipped */ 
SOURCE(6676, 39)
                     (* (( (ptr) &var←c43024)+15) ) = 0;
SOURCE(6776, 10)
                     (* (( (ptr) &var←c43024)+16)/* i←v12056 */  ) = 0;
SOURCE(6860, 59)
SOURCE(6862, 57)
                     (void) RawFetch←P180(base←v11712, (byteOffset←v11740 + 2), (word) (( (bPt) &var←c43024)+40)/* name←v12000 */ , 22);
SOURCE(6922, 62)
                     {
                        word var←c39920;
                        {
                           word pd73;
                           pd73 = (* (( (ptr) (* (( (ptr) gf←c43056)+111)/* var←c39184 */  ))+31) );
                           var←c39920 = (word) ( *( (fPt) ((*  (ptr) pd73 ))))( (unsigned) (* (( (bPt) &var←c43024)+42) ), (word) (( (bPt) &var←c43024)+16)
/*1*/   /* var←c39632 */ , 2147483647, pd73);
                           };
                        {
                           word idx74;
                           word limit75;
                           (* ((( (ptr) nameTable←v11768)+1)+(
/*1*/      idx74 = (word)  (unsigned) (* (( (hPt) &var←c43024)+20) ),
/*1*/      limit75 = (*  (ptr) nameTable←v11768 ),
/*1*/      BCK(idx74, limit75)
/*1*/      )) ) = var←c39920;
                           };
                        };
                     };
                  }
               else {
                  };
               };
            };
SOURCE(7006, 46)
         {
            word var←c39952;
            word fileWords←v37764;
            fileWords←v37764 = ix←v11256.f1;
SOURCE(2518, 20)
            var←c39952 = IOP2( * ,  (int)fileWords←v37764,  (int)2);
            byteOffset←v11740 = (byteOffset←v11740 + var←c39952);
            };
         goto lab←L100019;
         lab←L100018: ;
SOURCE(7063, 14)
         byteOffset←v11740 = 0;
SOURCE(7079, 2520)
         lab←L100023: ;
SOURCE(7079, 2520)
SOURCE(7161, 35)
         (void) ReadIXHeader←P240((word) &ix←v11256, base←v11712, byteOffset←v11740);
SOURCE(7198, 2331)
         {
            word var←c39984;
            var←c39984 = ix←v11256.f0;
            switch (var←c39984) {
               case 0: 
SOURCE(7225, 4)
                  goto lab←L100022;
               case 1: 
                  break;
               case 2: 
                  break;
               case 3: 
SOURCE(7316, 2178)
                  {
                     W5 index←v12232;
                     word group←v12288;
                     word charUnitsPerResolutionUnit←v12316;
                     W3 decodedFamily←v12344;
                     word var←c40112;
SOURCE(7429, 36)
                     group←v12288 = XR←NewObject(36, (* (( (ptr) gf←c43056)+33) ));
SOURCE(7467, 36)
                     charUnitsPerResolutionUnit←v12316 = (*  (ptr) &fc76 );
SOURCE(7505, 33)
                     decodedFamily←v12344.f0 = 0;
                     decodedFamily←v12344.f1 = 0;
                     decodedFamily←v12344.f2 = 0;
SOURCE(7540, 36)
                     (* (( (ptr) group←v12288)+4) ) = 1;
SOURCE(7578, 13)
                     (* (( (ptr) group←v12288)+1) ) = 0;
SOURCE(7593, 53)
                     {
                        word truth←v37476;
                        {
                           word var←c40080;
                           word fileWords←v37716;
                           fileWords←v37716 = ix←v11256.f1;
SOURCE(2518, 20)
                           var←c40080 = IOP2( * ,  (int)fileWords←v37716,  (int)2);
                           truth←v37476 =  (unsigned) ( (int)var←c40080 ==  (int)22);
                           };
SOURCE(2417, 40)
                        if ((0 == truth←v37476)) {
SOURCE(2435, 22)
                           (void) XR←RaiseError((word) (( (bPt) gf←c43056)+188)/* var←c37936 */ , 0);
                           };
                        };
SOURCE(7656, 59)
SOURCE(7658, 57)
                     (void) RawFetch←P180(base←v11712, (byteOffset←v11740 + 2), (word) &index←v12232, 20);
SOURCE(7718, 297)
                     if ((0 != (* (( (ptr) gf←c43056)+4)/* checkForBogusResolution←v3952 */  ))) {
SOURCE(7752, 263)
                        {
                           word tc77;
                           word tc79;
                           if (( (unsigned) (* (( (hPt) &index←v12232)+8) ) ==  (unsigned) (* (( (hPt) &index←v12232)+9) ))) {
/*1*/   tc77 =  (word) ( (unsigned) (* (( (hPt) &index←v12232)+8) ) != 0);
/*1*/   }
                           else {
/*1*/   tc77 =  (word) 0;
/*1*/   };
                           if (tc77) { goto then078;};
                           if (( (unsigned) (* (( (hPt) &index←v12232)+8) ) != 0)) {
/*1*/   tc79 =  (word) (((word)  (unsigned) (* (( (hPt) &index←v12232)+8) ) % 1500) == 0);
/*1*/   }
                           else {
/*1*/   tc79 =  (word) 0;
/*1*/   };
                           if (tc79) { goto then078;};
                           var←c40112 =  (unsigned) (* (( (hPt) &index←v12232)+8) );
                           if ((0 !=  ( (((((var←c40112 == 3840) || (var←c40112 == 2000)) || (var←c40112 == 2540)) || (var←c40112 == 2400)) || (var←c40112 == 720)) ? 1 : 0 ) )) {
/*1*/   then078: ;
/*1*/   }
                           else {
SOURCE(7990, 25)
/*1*/   (* (( (hPt) &index←v12232)+8) ) = 3000;
/*1*/   };
                           };
                        };
SOURCE(8018, 170)
                     if ((0 != (* (( (ptr) gf←c43056)+5)/* tryForCharSet←v3980 */  ))) {
SOURCE(8042, 146)
                        {
                           word tc80;
                           if ((((word)  (unsigned) (* (( (hPt) &index←v12232)+9) ) % 10) == 0)) {
/*1*/   tc80 =  (word) (((word)  (unsigned) (* (( (hPt) &index←v12232)+9) ) / 10) <= 254);
/*1*/   }
                           else {
/*1*/   tc80 =  (word) 0;
/*1*/   };
                           if (tc80) {
SOURCE(8117, 32)
/*1*/   {
/*1*/      word idx81;
/*1*/      (* (( (ptr) group←v12288)+1) ) = (
/*1*/         idx81 = ((word)  (unsigned) (* (( (hPt) &index←v12232)+9) ) / 10),
/*1*/         BCK(idx81, 256)
/*1*/         );
/*1*/      };
SOURCE(8151, 37)
/*1*/   (* (( (hPt) &index←v12232)+9) ) = (* (( (hPt) &index←v12232)+8) );
/*1*/   };
                           };
                        };
SOURCE(8196, 28)
                     {
                        word truth←v37428;
                        truth←v37428 =  (unsigned) ( (unsigned) (* (( (bPt) &index←v12232)+2) ) <=  (unsigned) (* (( (bPt) &index←v12232)+3) ));
SOURCE(2417, 40)
                        if ((0 == truth←v37428)) {
SOURCE(2435, 22)
                           (void) XR←RaiseError((word) (( (bPt) gf←c43056)+188)/* var←c37936 */ , 0);
                           };
                        };
SOURCE(8226, 17)
                     (*  (ptr) group←v12288 ) = base←v11712;
SOURCE(8245, 19)
                     (* (( (ptr) group←v12288)+2) ) =  (unsigned) (* (( (bPt) &index←v12232)+2) );
SOURCE(8266, 19)
                     (* (( (ptr) group←v12288)+3) ) =  (unsigned) (* (( (bPt) &index←v12232)+3) );
SOURCE(8287, 49)
                     {
                        word fileWords←v37668;
                        {
                           word idx82;
                           fileWords←v37668 = (
/*1*/   idx82 = (word) index←v12232.f2,
/*1*/   SGNCK(idx82)
/*1*/   );
                           };
SOURCE(2518, 20)
                        (* (( (ptr) group←v12288)+5) ) = IOP2( * ,  (int)fileWords←v37668,  (int)2);
                        };
SOURCE(8338, 53)
                     {
                        word fileWords←v37620;
                        {
                           word idx83;
                           fileWords←v37620 = (
/*1*/   idx83 = (word) index←v12232.f3,
/*1*/   SGNCK(idx83)
/*1*/   );
                           };
SOURCE(2518, 20)
                        (* (( (ptr) group←v12288)+7) ) = IOP2( * ,  (int)fileWords←v37620,  (int)2);
                        };
SOURCE(8393, 70)
                     {
                        word truth←v37380;
                        {
                           word pd84;
                           pd84 = (* (( (ptr) (* (( (ptr) gf←c43056)+111)/* var←c39184 */  ))+15) );
                           truth←v37380 =  (unsigned) ( (int)((* (( (ptr) group←v12288)+5) ) + (* (( (ptr) group←v12288)+7) )) <=  (int)(word) ( *( (fPt) (
/*1*/   (*  (ptr) pd84 ))))(base←v11712, pd84));
                           };
SOURCE(2417, 40)
                        if ((0 == truth←v37380)) {
SOURCE(2435, 22)
                           (void) XR←RaiseError((word) (( (bPt) gf←c43056)+188)/* var←c37936 */ , 0);
                           };
                        };
SOURCE(8465, 114)
                     (* (( (ptr) group←v12288)+6) ) = ((* (( (ptr) group←v12288)+5) ) + IOP2( * ,  (int)(( (unsigned) (* (( (bPt) &index←v12232)+3)
                         ) -  (unsigned) (* (( (bPt) &index←v12232)+2) )) + 1),  (int)16));
SOURCE(8581, 47)
                     {
                        word x86;
                        *(float*)&charUnitsPerResolutionUnit←v12316 = (
                           x86 = (*  (ptr) &fc85 ),  *(float*)&x86
                           ) / (float)(unsigned)(* (( (hPt) &index←v12232)+2) );
                        };
SOURCE(8676, 143)
                     {
                        W2 var←c40208;
                        {
                           word x87;
                           *(float*)&var←c40208.f0 = (
/*1*/   x87 = charUnitsPerResolutionUnit←v12316,  *(float*)&x87
/*1*/   ) / (float)(unsigned)(* (( (hPt) &index←v12232)+8) );
                           };
                        {
                           word x88;
                           *(float*)&var←c40208.f1 = (
/*1*/   x88 = charUnitsPerResolutionUnit←v12316,  *(float*)&x88
/*1*/   ) / (float)(unsigned)(* (( (hPt) &index←v12232)+9) );
                           };
                        {
                           word pd89;
                           pd89 = (* (( (ptr) (* (( (ptr) gf←c43056)+114)/* var←c40240 */  ))+8) );
                           (* (( (ptr) group←v12288)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd89 ))))(var←c40208, pd89);
                           };
                        };
SOURCE(8821, 79)
                     if (( (unsigned) (* (( (hPt) &index←v12232)+3) ) != 0)) {
SOURCE(8846, 54)
                        {
                           word pd90;
                           word x92;
                           float tf93;
                           pd90 = (* (( (ptr) (* (( (ptr) gf←c43056)+114)/* var←c40240 */  ))+27) );
                           (void) ( *( (fPt) ((*  (ptr) pd90 ))))((* (( (ptr) group←v12288)+8) ), (
/*1*/      tf93 = (float)(int)INEG( (unsigned) (* (( (hPt) &index←v12232)+3) )) / (
/*1*/         x92 = (*  (ptr) &fc91 ),  *(float*)&x92
/*1*/         ),  *(word*)&tf93
/*1*/      ), pd90);
                           };
                        };
SOURCE(8902, 53)
                     {
                        word idx94;
                        word limit95;
                        (void) DecodeFamily←P420((word) &decodedFamily←v12344, (* ((( (ptr) nameTable←v11768)+1)+(
/*1*/      idx94 = (word)  (unsigned) (*  (bPt) &index←v12232 ),
/*1*/      limit95 = (*  (ptr) nameTable←v11768 ),
/*1*/      BCK(idx94, limit95)
/*1*/      )) ));
                        };
SOURCE(8957, 86)
                     (void) ValidateFamilyAndFace←P2076( (unsigned) (* (( (bPt) &index←v12232)+1) ), decodedFamily←v12344.f0, (word) (( (bPt) &var←c43024)+24)
                        /* var←c39664 */ );
SOURCE(9045, 66)
                     if ((0 != decodedFamily←v12344.f1)) {
SOURCE(9078, 33)
                        (* (( (ptr) group←v12288)+1) ) = decodedFamily←v12344.f2;
                        };
SOURCE(9113, 348)
                     {
                        word len←v12444;
SOURCE(9241, 69)
                        {
                           word idx96;
                           len←v12444 = (
/*1*/   idx96 = (word) IOP2( * ,  (int)(((* (( (ptr) group←v12288)+3) ) - (* (( (ptr) group←v12288)+2) )) + 1),  (int)20),
/*1*/   SGNCK(idx96)
/*1*/   );
                           };
SOURCE(9312, 147)
                        {
                           word var←c40272;
                           {
/*1*/   word pd97;
/*1*/   pd97 = (* (( (ptr) (* (( (ptr) gf←c43056)+111)/* var←c39184 */  ))+30) );
/*1*/   var←c40272 = (word) ( *( (fPt) ((*  (ptr) pd97 ))))(base←v11712, (* (( (ptr) group←v12288)+5) ), len←v12444, pd97);
/*1*/   };
                           {
/*1*/   word pd98;
/*1*/   pd98 = (* (( (ptr) (* (( (ptr) gf←c43056)+111)/* var←c39184 */  ))+16) );
/*1*/   (*  (ptr) group←v12288 ) = (word) ( *( (fPt) ((*  (ptr) pd98 ))))(base←v11712, (* (( (ptr) group←v12288)+5) ), len←v12444, var←c40272, pd98)
/*1*/   ;
/*1*/   };
                           };
                        };
SOURCE(9464, 28)
                     {
                        word var←c40304;
                        var←c40304 = XR←NewObject(8, (* (( (ptr) gf←c43056)+34) ));
                        (*  (ptr) var←c40304 ) = group←v12288;
                        (* (( (ptr) var←c40304)+1) ) = groups←v11340;
                        groups←v11340 = var←c40304;
                        };
                     };
                  break;
               default: 
SOURCE(9508, 21)
                  (void) XR←RaiseError((word) (( (bPt) gf←c43056)+188)/* var←c37936 */ , 0);
                  break;
               };
            };
SOURCE(9553, 46)
         {
            word var←c40336;
            word fileWords←v37572;
            fileWords←v37572 = ix←v11256.f1;
SOURCE(2518, 20)
            var←c40336 = IOP2( * ,  (int)fileWords←v37572,  (int)2);
            byteOffset←v11740 = (byteOffset←v11740 + var←c40336);
            };
         goto lab←L100023;
         lab←L100022: ;
         };
      each←v11584 = (* (( (ptr) each←v11584)+1) );
      goto lab←L100012;
      lab←L100009: ;
      };
SOURCE(9619, 36)
SOURCE(2417, 40)
   if (((* (( (ptr) &var←c43024)+9)/* indexFamilySansCharSet←v11312 */  ) == 0)) {
SOURCE(2435, 22)
      (void) XR←RaiseError((word) (( (bPt) gf←c43056)+188)/* var←c37936 */ , 0);
      };
SOURCE(9657, 32)
   (* (( (ptr) data←v11228)+2) ) = (word) SortGroups←P660(groups←v11340);
SOURCE(9691, 42)
   (*  (ptr) data←v11228 ) = (word) BuildSetTable←P720((* ((( (ptr) data←v11228)+2)) ));
SOURCE(9735, 34)
   (* (( (ptr) data←v11228)+1) ) =  (unsigned) ((* (( (ptr) &var←c43024)+8)/* indexFace←v11284 */  ) < 18);
SOURCE(9816, 113)
   {
      word var←c40400;
      word var←c40432;
      var←c40400 = (word) PropListFromGroups←P540((* ((( (ptr) data←v11228)+2)) ));
      var←c40432 = XR←NewObject(32, (* (( (ptr) gf←c43056)+35) ));
      (*  (ptr) var←c40432 ) = (* (( (ptr) gf←c43056)+9)/* cdClass←v4904 */  );
      (* (( (ptr) var←c40432)+1) ) = data←v11228;
      (* (( (ptr) var←c40432)+4) ) = 2147483647;
      (* (( (ptr) var←c40432)+7) ) = var←c40400;
      return(var←c40432);
      };
   }

static void ValidateFamilyAndFace←P2076(newFace←v11528, newFamily←v11556, formal←c43120)
   word newFace←v11528;
   word newFamily←v11556;
   word formal←c43120;
   {
   register ptr gf←c43088 =  (ptr) &globalframe;
   formal←c43120 = (formal←c43120 - 24);
   /* ValidateFamilyAndFace: */ 
SOURCE(5502, 283)
SOURCE(5567, 124)
   if (((* (( (ptr) formal←c43120)+9) ) == 0)) {
SOURCE(5628, 34)
      (* (( (ptr) formal←c43120)+9) ) = newFamily←v11556;
SOURCE(5664, 19)
      (* (( (ptr) formal←c43120)+8) ) = newFace←v11528;
SOURCE(5685, 6)
      return;
      };
SOURCE(5696, 27)
   {
      word truth←v37332;
      truth←v37332 =  (unsigned) ((* (( (ptr) formal←c43120)+8) ) == newFace←v11528);
SOURCE(2417, 40)
      if ((0 == truth←v37332)) {
SOURCE(2435, 22)
         (void) XR←RaiseError((word) (( (bPt) gf←c43088)+188)/* var←c37936 */ , 0);
         };
      };
SOURCE(5725, 60)
   {
      word truth←v37284;
      {
         word pd99;
         pd99 = (* (( (ptr) (* (( (ptr) gf←c43088)+111)/* var←c39184 */  ))+8) );
         truth←v37284 = (word) ( *( (fPt) ((*  (ptr) pd99 ))))(newFamily←v11556, (* (( (ptr) formal←c43120)+9) ), 0, pd99);
         };
SOURCE(2417, 40)
      if ((0 == truth←v37284)) {
SOURCE(2435, 22)
         (void) XR←RaiseError((word) (( (bPt) gf←c43088)+188)/* var←c37936 */ , 0);
         };
      };
   }

static word P←P2424(formal←c43152)
   word formal←c43152;
   {
   word var←c12160;
   formal←c43152 = (formal←c43152 - 16);
   /* P: */ 
SOURCE(6788, 17)
SOURCE(6814, 35)
   {
      word var←c0433;
      {
         word var←c0432;
         {
            word idx100;
            (* (( (ptr) formal←c43152)+16) ) = ((* (( (ptr) formal←c43152)+16) ) + 1);
            var←c0432 = (var←c0432 & 4294967040) | ((word) (word) (* ((( (bPt) formal←c43152)+42)+(
                     idx100 = (* (( (ptr) formal←c43152)+16) ),
                     BCK(idx100, 20)
                     )) ));
            };
         var←c0433 =  (unsigned) (var←c0432 & 0377);
         };
      return(var←c0433);
      };
   }

static word PropListFromGroups←P540(groups←v7256)
   word groups←v7256;
   {
   register ptr gf←c43184 =  (ptr) &globalframe;
   word var←c7384;
   word list←v12488 = 0;
   /* PropListFromGroups: */ 
SOURCE(9935, 542)
SOURCE(10041, 342)
   {
      register word tail←v12632;
      tail←v12632 = groups←v7256;
      lab←L100031: ;
      if ((tail←v12632 != 0)) {
         }
      else {
         goto lab←L100028;
         };
      {
         word m←v12760;
SOURCE(10109, 42)
         m←v12760 = (* (( (ptr) (*  (ptr) tail←v12632 ))+8) );
SOURCE(10153, 230)
         {
            word tc101;
            word pd102;
            if ((m←v12760 != 0)) {
               pd102 = (* (( (ptr) (* (( (ptr) gf←c43184)+114)/* var←c40240 */  ))+52) );
               tc101 =  (word) (0 == (word) ( *( (fPt) ((*  (ptr) pd102 ))))(m←v12760, pd102));
               }
            else {
               tc101 =  (word) 0;
               };
            if (tc101) {
SOURCE(10212, 115)
               {
                  register word t←v12804;
                  word var←c40464;
                  t←v12804 = list←v12488;
                  lab←L100035: ;
                  if ((t←v12804 != 0)) {
                     }
                  else {
                     goto lab←L100032;
                     };
SOURCE(10263, 64)
                  {
                     word pd103;
                     var←c40464 = XR←Narrow((*  (ptr) t←v12804 ), (* (( (ptr) gf←c43184)+27) ));
                     pd103 = (* (( (ptr) (* (( (ptr) gf←c43184)+114)/* var←c40240 */  ))+53) );
                     if ((0 != (word) ( *( (fPt) ((*  (ptr) pd103 ))))(m←v12760, var←c40464, pd103))) {
SOURCE(10320, 7)
                        m←v12760 = 0;
SOURCE(10329, 4)
                        goto lab←L100033;
                        };
                     };
                  t←v12804 = (* (( (ptr) t←v12804)+1) );
                  goto lab←L100035;
                  lab←L100032: ;
                  lab←L100033: ;
                  };
SOURCE(10347, 36)
               if ((m←v12760 != 0)) {
SOURCE(10363, 20)
                  {
                     word var←c40496;
                     var←c40496 = XR←NewObject(8, (* (( (ptr) gf←c43184)+26) ));
                     (*  (ptr) var←c40496 ) = m←v12760;
                     (* (( (ptr) var←c40496)+1) ) = list←v12488;
                     list←v12488 = var←c40496;
                     };
                  };
               };
            };
         };
      tail←v12632 = (* (( (ptr) tail←v12632)+1) );
      goto lab←L100031;
      lab←L100028: ;
      };
SOURCE(10397, 80)
   if ((list←v12488 == 0)) {
      return(0);
      }
   else {
      {
         word var←c40560;
         word var←c40592;
         var←c40560 = XR←NewObject(12, (* (( (ptr) gf←c43184)+28) ));
         var←c40592 = var←c40560;
         (*  (ptr) var←c40592 ) = (* (( (ptr) gf←c43184)+41) );
         (* (( (ptr) var←c40592)+1) ) = list←v12488;
         return(var←c40560);
         };
      };
   }

static word InOrder←P600(a←v7444, b←v7472)
   word a←v7444;
   word b←v7472;
   {
   register ptr gf←c43216 =  (ptr) &globalframe;
   word var←c7516;
   /* InOrder: */ 
SOURCE(10483, 496)
   if (((* (( (ptr) a←v7444)+1) ) != (* (( (ptr) b←v7472)+1) ))) {
SOURCE(10568, 22)
      return( (unsigned) ((* (( (ptr) a←v7444)+1) ) < (* (( (ptr) b←v7472)+1) )));
      }
   else {
      if ( ( ((* (( (ptr) a←v7444)+4) ) != (* (( (ptr) b←v7472)+4) )) ?  ( ((* (( (ptr) a←v7444)+4) ) == 0) ? 1 : ((* (( (ptr) b←v7472)+4)
       ) == 0) )  : 0 ) ) {
SOURCE(10688, 44)
         return( (unsigned) ((* (( (ptr) a←v7444)+4) ) < (* (( (ptr) b←v7472)+4) )));
         }
      else {
SOURCE(10745, 236)
         {
            W2 sva←v12944;
            W2 svb←v12972;
SOURCE(10747, 61)
            {
               word pd104;
               pd104 = (* (( (ptr) (* (( (ptr) gf←c43216)+114)/* var←c40240 */  ))+56) );
               (void) ( *( (fPt) ((*  (ptr) pd104 ))))((word) &sva←v12944, (* (( (ptr) a←v7444)+8) ), pd104);
               };
SOURCE(10810, 61)
            {
               word pd105;
               pd105 = (* (( (ptr) (* (( (ptr) gf←c43216)+114)/* var←c40240 */  ))+56) );
               (void) ( *( (fPt) ((*  (ptr) pd105 ))))((word) &svb←v12972, (* (( (ptr) b←v7472)+8) ), pd105);
               };
SOURCE(10873, 35)
            {
               word x106;
               word x107;
               if (((
                  x106 = sva←v12944.f0,  *(float*)&x106
                  ) < (
                  x107 = svb←v12972.f0,  *(float*)&x107
                  ))) {
SOURCE(10895, 13)
                  return(1);
                  };
               };
SOURCE(10910, 53)
            {
               word x108;
               word x109;
               word x110;
               word x111;
               if ( ( ((
                  x108 = sva←v12944.f0,  *(float*)&x108
                  ) == (
                  x109 = svb←v12972.f0,  *(float*)&x109
                  )) ? ((
                  x110 = sva←v12944.f1,  *(float*)&x110
                  ) < (
                  x111 = svb←v12972.f1,  *(float*)&x111
                  )) : 0 ) ) {
SOURCE(10950, 13)
                  return(1);
                  };
               };
SOURCE(10965, 14)
            return(0);
            };
         };
      };
   }

static word SortGroups←P660(groups←v7576)
   word groups←v7576;
   {
   word var←c7704;
   word unconsumed←v13016;
   word new←v13044 = 0;
   /* SortGroups: */ 
SOURCE(10988, 543)
SOURCE(11065, 12)
   unconsumed←v13016 = groups←v7576;
SOURCE(11135, 373)
   lab←L100038: ;
   if ((unconsumed←v13016 != 0)) {
      }
   else {
      goto lab←L100036;
      };
   {
      word rest←v13256;
      word current←v13284;
      word a←v13312;
      word p←v13340 = 0;
SOURCE(11161, 6)
      rest←v13256 = (* (( (ptr) unconsumed←v13016)+1) );
SOURCE(11204, 37)
      current←v13284 = (*  (ptr) unconsumed←v13016 );
SOURCE(11243, 3)
      a←v13312 = new←v13044;
SOURCE(11299, 74)
      lab←L100041: ;
      if ( ( (a←v13312 != 0) ? (0 == (word) InOrder←P600((*  (ptr) a←v13312 ), current←v13284)) : 0 ) ) {
         }
      else {
         goto lab←L100039;
         };
SOURCE(11348, 5)
      p←v13340 = a←v13312;
SOURCE(11355, 18)
      a←v13312 = (* (( (ptr) a←v13312)+1) );
      goto lab←L100041;
      lab←L100039: ;
SOURCE(11375, 113)
      if ((p←v13340 == 0)) {
SOURCE(11393, 21)
         (* (( (ptr) unconsumed←v13016)+1) ) = new←v13044;
SOURCE(11416, 17)
         new←v13044 = unconsumed←v13016;
         }
      else {
SOURCE(11442, 24)
         (* (( (ptr) unconsumed←v13016)+1) ) = (* (( (ptr) p←v13340)+1) );
SOURCE(11468, 20)
         (* (( (ptr) p←v13340)+1) ) = unconsumed←v13016;
         };
SOURCE(11491, 17)
      unconsumed←v13016 = rest←v13256;
      };
   goto lab←L100038;
   lab←L100036: ;
SOURCE(11519, 12)
   return(new←v13044);
   }

static word BuildSetTable←P720(groups←v7848)
   word groups←v7848;
   {
   register ptr gf←c43248 =  (ptr) &globalframe;
   word var←c7976;
   word setTable←v13636;
   word setbc←v13664;
   word setec←v13692;
   /* BuildSetTable: */ 
SOURCE(11537, 2085)
SOURCE(11608, 48)
   setTable←v13636 = XR←NewObject(1020, (* (( (ptr) gf←c43248)+16) ));
SOURCE(11658, 93)
   setbc←v13664 = XR←NewObject(256, (* (( (ptr) gf←c43248)+22) ));
   XR←FillWords(&(* (W63Pt) (setbc←v13664)), 63,  (word) -1);
   (* (( (ptr) setbc←v13664) + 63) ) |= 4294967040;
SOURCE(11753, 94)
   setec←v13692 = XR←NewObject(256, (* (( (ptr) gf←c43248)+22) ));
SOURCE(11849, 204)
   {
      register word each←v13824;
      each←v13824 = groups←v7848;
      lab←L100045: ;
      if ((each←v13824 != 0)) {
         }
      else {
         goto lab←L100042;
         };
      {
         word group←v13952;
         word set←v13980;
SOURCE(11917, 29)
         group←v13952 = (*  (ptr) each←v13824 );
SOURCE(11948, 21)
         set←v13980 = (* (( (ptr) group←v13952)+1) );
SOURCE(11971, 40)
         {
            word x112;
            word x113;
            (* (( (bPt) setbc←v13664)+BCK(set←v13980, 255)) ) = (x112 = (* (( (ptr) group←v13952)+2) ),
               x113 =  (unsigned) (word) (* (( (bPt) setbc←v13664)+BCK(set←v13980, 255)) ),
               MIN( (unsigned) , x112, x113));
            };
SOURCE(12013, 40)
         {
            word x114;
            word x115;
            (* (( (bPt) setec←v13692)+BCK(set←v13980, 255)) ) = (x114 = (* (( (ptr) group←v13952)+3) ),
               x115 =  (unsigned) (word) (* (( (bPt) setec←v13692)+BCK(set←v13980, 255)) ),
               MAX( (unsigned) , x114, x115));
            };
         };
      each←v13824 = (* (( (ptr) each←v13824)+1) );
      goto lab←L100045;
      lab←L100042: ;
      };
SOURCE(12064, 279)
   {
      register word set←v14024 = 0;
      lab←L100049: ;
SOURCE(12095, 248)
      if (( (unsigned) (word) (* (( (bPt) setbc←v13664)+set←v14024) ) <=  (unsigned) (word) (* (( (bPt) setec←v13692)+set←v14024)
       ))) {
SOURCE(12128, 217)
         {
            word charTable←v14068;
SOURCE(12130, 65)
            {
               word var←c40720;
               word var←c40752;
               word var←c40784;
               {
                  word idx116;
                  var←c40720 = (
                     idx116 = (word) (( (unsigned) (word) (* (( (bPt) setec←v13692)+set←v14024) ) -  (unsigned) (word) (* (( (bPt) setbc←v13664)+set←v14024)
                      )) + 1),
                     SGNCK(idx116)
                     );
                  };
               var←c40752 = ((word) var←c40720 << 2);
               var←c40784 = XR←NewObject((12 + var←c40752), (* (( (ptr) gf←c43248)+21) ));
               (* (( (ptr) var←c40784)+2) ) = var←c40720;
               charTable←v14068 = var←c40784;
               };
SOURCE(12197, 26)
            (*  (ptr) charTable←v14068 ) =  (unsigned) (word) (* (( (bPt) setbc←v13664)+set←v14024) );
SOURCE(12225, 26)
            (* (( (ptr) charTable←v14068)+1) ) =  (unsigned) (word) (* (( (bPt) setec←v13692)+set←v14024) );
SOURCE(12253, 63)
            {
               register word i←v14112 = 0;
               register word noName←c40816;
               noName←c40816 = (* (( (ptr) charTable←v14068)+2) );
               if ((i←v14112 >= noName←c40816)) {
                  goto lab←L100050;
                  };
               lab←L100053: ;
SOURCE(12290, 26)
               {
                  word limit117;
                  (* ((( (ptr) charTable←v14068)+3)+(
                        limit117 = (* (( (ptr) charTable←v14068)+2) ),
                        BCK(i←v14112, limit117)
                        )) ) = 0;
                  };
               i←v14112 = (i←v14112 + 1);
               if ((i←v14112 < noName←c40816)) {
                  goto lab←L100053;
                  };
               lab←L100050: ;
               };
SOURCE(12318, 25)
            (* (( (ptr) setTable←v13636)+set←v14024) ) = charTable←v14068;
            };
         };
      if ((set←v14024 >= 254)) {
         goto lab←L100046;
         };
      set←v14024 = (set←v14024 + 1);
      goto lab←L100049;
      lab←L100046: ;
      };
SOURCE(12357, 1018)
   {
      register word each←v14156;
      each←v14156 = groups←v7848;
      lab←L100057: ;
      if ((each←v14156 != 0)) {
         }
      else {
         goto lab←L100054;
         };
      {
         word group←v14284;
         word charTable←v14312;
SOURCE(12425, 29)
         group←v14284 = (*  (ptr) each←v14156 );
SOURCE(12456, 42)
         {
            word idx118;
            charTable←v14312 = (* (( (ptr) setTable←v13636)+(
                  idx118 = (* (( (ptr) group←v14284)+1) ),
                  BCK(idx118, 255)
                  )) );
            };
SOURCE(12500, 875)
         {
            register word code←v14356;
            register word noName←c40848;
            code←v14356 = (* (( (ptr) group←v14284)+2) );
            noName←c40848 = (* (( (ptr) group←v14284)+3) );
            if ((code←v14356 > noName←c40848)) {
               goto lab←L100058;
               };
            lab←L100061: ;
SOURCE(12542, 833)
            {
               word var←c40880;
               var←c40880 = (* (( (ptr) group←v14284)+4) );
               if ((var←c40880 == 0)) {
SOURCE(12585, 21)
                  (void) XR←RaiseError((word) (( (bPt) gf←c43248)+188)/* var←c37936 */ , 0);
                  }
               else {
                  if ((var←c40880 == 1)) {
SOURCE(12625, 862)
                     {
                        W4 cd←v14400;
SOURCE(12627, 68)
                        (void) GetCharacterData←P840((word) &cd←v14400, group←v14284, code←v14356);
SOURCE(12697, 678)
                        if (( (int) ( short )(* (( (hPt) &cd←v14400)+7) ) !=  (int) ( short )65535)) {
SOURCE(12749, 735)
                           {
/*1*/   word wx←v14444;
/*1*/   word wy←v14472;
/*1*/   W2 e←v14500;
/*1*/   W4 box←v14528;
/*1*/   word charMetrics←v14556;
SOURCE(12751, 66)
/*1*/   {
/*1*/      word var←c40912;
/*1*/      {
/*1*/         word var←c40944;
/*1*/         {
/*1*/            word pd119;
/*1*/            float tf120;
/*1*/            pd119 = (* (( (ptr) (* (( (ptr) gf←c43248)+115)/* var←c40976 */  ))+4) );
/*1*/            var←c40944 = (word) ( *( (fPt) ((*  (ptr) pd119 ))))((
/*1*/                  tf120 = (float)(int)cd←v14400.f0,  *(word*)&tf120
/*1*/                  ),  (word) -16, pd119);
/*1*/            };
/*1*/         {
/*1*/            word pd121;
/*1*/            pd121 = (* (( (ptr) (* (( (ptr) gf←c43248)+115)/* var←c40976 */  ))+8) );
/*1*/            var←c40912 = (word) ( *( (fPt) ((*  (ptr) pd121 ))))(var←c40944, pd121);
/*1*/            };
/*1*/         };
/*1*/      {
/*1*/         word pd122;
/*1*/         pd122 = (* (( (ptr) (* (( (ptr) gf←c43248)+115)/* var←c40976 */  ))+9) );
/*1*/         wx←v14444 = (word) ( *( (fPt) ((*  (ptr) pd122 ))))(var←c40912, 0, pd122);
/*1*/         };
/*1*/      };
SOURCE(12819, 66)
/*1*/   {
/*1*/      word var←c41008;
/*1*/      {
/*1*/         word var←c41040;
/*1*/         {
/*1*/            word pd123;
/*1*/            float tf124;
/*1*/            pd123 = (* (( (ptr) (* (( (ptr) gf←c43248)+115)/* var←c40976 */  ))+4) );
/*1*/            var←c41040 = (word) ( *( (fPt) ((*  (ptr) pd123 ))))((
/*1*/                  tf124 = (float)(int)cd←v14400.f1,  *(word*)&tf124
/*1*/                  ),  (word) -16, pd123);
/*1*/            };
/*1*/         {
/*1*/            word pd125;
/*1*/            pd125 = (* (( (ptr) (* (( (ptr) gf←c43248)+115)/* var←c40976 */  ))+8) );
/*1*/            var←c41008 = (word) ( *( (fPt) ((*  (ptr) pd125 ))))(var←c41040, pd125);
/*1*/            };
/*1*/         };
/*1*/      {
/*1*/         word pd126;
/*1*/         pd126 = (* (( (ptr) (* (( (ptr) gf←c43248)+115)/* var←c40976 */  ))+9) );
/*1*/         wy←v14472 = (word) ( *( (fPt) ((*  (ptr) pd126 ))))(var←c41008, 0, pd126);
/*1*/         };
/*1*/      };
SOURCE(12887, 71)
/*1*/   {
/*1*/      W2 var←c0211;
/*1*/      {
/*1*/         W2 var←c41072;
/*1*/         var←c41072.f0 = wx←v14444;
/*1*/         var←c41072.f1 = wy←v14472;
/*1*/         {
/*1*/            word pd127;
/*1*/            pd127 = (* (( (ptr) (* (( (ptr) gf←c43248)+114)/* var←c40240 */  ))+40) );
/*1*/            (void) ( *( (fPt) ((*  (ptr) pd127 ))))((word) &var←c0211, (* (( (ptr) group←v14284)+8) ), var←c41072, pd127);
/*1*/            };
/*1*/         };
/*1*/      e←v14500 = var←c0211;
/*1*/      };
SOURCE(12960, 157)
/*1*/   {
/*1*/      W4 var←c41104;
/*1*/      {
/*1*/         W4 var←c0215;
/*1*/         {
/*1*/            W4 var←c41136;
/*1*/            {
/*1*/               float tf128;
/*1*/               var←c41136.f0 = (
/*1*/                  tf128 = (float)(int)( (int) ( short )(* (( (hPt) &cd←v14400)+4) )),  *(word*)&tf128
/*1*/                  );
/*1*/               };
/*1*/            {
/*1*/               float tf129;
/*1*/               var←c41136.f1 = (
/*1*/                  tf129 = (float)(int)( (int) ( short )(* (( (hPt) &cd←v14400)+5) )),  *(word*)&tf129
/*1*/                  );
/*1*/               };
/*1*/            {
/*1*/               float tf130;
/*1*/               var←c41136.f2 = (
/*1*/                  tf130 = (float)(int)( (int) ( short )(* (( (hPt) &cd←v14400)+6) )),  *(word*)&tf130
/*1*/                  );
/*1*/               };
/*1*/            {
/*1*/               float tf131;
/*1*/               var←c41136.f3 = (
/*1*/                  tf131 = (float)(int)( (int) ( short )(* (( (hPt) &cd←v14400)+7) )),  *(word*)&tf131
/*1*/                  );
/*1*/               };
/*1*/            {
/*1*/               word pd132;
/*1*/               pd132 = (* (( (ptr) (* (( (ptr) gf←c43248)+114)/* var←c40240 */  ))+46) );
/*1*/               (void) ( *( (fPt) ((*  (ptr) pd132 ))))((word) &var←c0215, (* (( (ptr) group←v14284)+8) ), var←c41136, pd132);
/*1*/               };
/*1*/            };
/*1*/         var←c41104 = var←c0215;
/*1*/         };
/*1*/      {
/*1*/         W4 var←c0216;
/*1*/         {
/*1*/            word pd133;
/*1*/            pd133 = (* (( (ptr) (* (( (ptr) gf←c43248)+116)/* var←c41168 */  ))+4) );
/*1*/            (void) ( *( (fPt) ((*  (ptr) pd133 ))))((word) &var←c0216, var←c41104, pd133);
/*1*/            };
/*1*/         box←v14528 = var←c0216;
/*1*/         };
/*1*/      };
SOURCE(13119, 55)
/*1*/   {
/*1*/      word var←c41200;
/*1*/      var←c41200 = (code←v14356 - (*  (ptr) charTable←v14312 ));
/*1*/      {
/*1*/         word limit134;
/*1*/         charMetrics←v14556 = (* ((( (ptr) charTable←v14312)+3)+(
/*1*/               limit134 = (* (( (ptr) charTable←v14312)+2) ),
/*1*/               BCK(var←c41200, limit134)
/*1*/               )) );
/*1*/         };
/*1*/      };
SOURCE(13176, 199)
/*1*/   if ((charMetrics←v14556 == 0)) {
SOURCE(13202, 84)
/*1*/      {
/*1*/         word var←c41264;
/*1*/         var←c41264 = (code←v14356 - (*  (ptr) charTable←v14312 ));
/*1*/         {
/*1*/            word var←c41232;
/*1*/            var←c41232 = XR←NewObject(24, (* (( (ptr) gf←c43248)+12) ));
/*1*/            (*  (W2Pt) var←c41232 ) = e←v14500;
/*1*/            (*  (W4Pt) (( (ptr) var←c41232)+2) ) = box←v14528;
/*1*/            {
/*1*/               word limit135;
/*1*/               (* ((( (ptr) charTable←v14312)+3)+(
/*1*/                     limit135 = (* (( (ptr) charTable←v14312)+2) ),
/*1*/                     BCK(var←c41264, limit135)
/*1*/                     )) ) = var←c41232;
/*1*/               };
/*1*/            };
/*1*/         };
/*1*/      }
/*1*/   else {
SOURCE(13288, 59)
/*1*/      {
/*1*/         word pd136;
/*1*/         pd136 = (* (( (ptr) (* (( (ptr) gf←c43248)+116)/* var←c41168 */  ))+9) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd136 ))))((word) (( (bPt) charMetrics←v14556)+8), (*  (W4Pt) (( (ptr) charMetrics←v14556)+2)
/*1*/             ), box←v14528, pd136);
/*1*/         };
SOURCE(13349, 26)
/*1*/      (*  (W2Pt) charMetrics←v14556 ) = e←v14500;
/*1*/      };
/*1*/   };
                           };
                        };
                     }
                  else {
SOURCE(13501, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            if ((code←v14356 >= noName←c40848)) {
               goto lab←L100058;
               };
            code←v14356 = (code←v14356 + 1);
            goto lab←L100061;
            lab←L100058: ;
            };
         };
      each←v14156 = (* (( (ptr) each←v14156)+1) );
      goto lab←L100057;
      lab←L100054: ;
      };
SOURCE(13526, 11)
   setbc←v13664 = 0;
SOURCE(13539, 11)
   setec←v13692 = 0;
SOURCE(13604, 18)
   return(setTable←v13636);
   }

static void TransformBox←P780(formal←c0231, m←v8036, box←v8064)
   word formal←c0231;
   word m←v8036;
   W4 box←v8064;
   {
   register ptr gf←c43280 =  (ptr) &globalframe;
   W4 var←c8108;
   /* TransformBox: */ 
SOURCE(13626, 200)
SOURCE(13713, 113)
   {
      W4 var←c41392;
      {
         W4 var←c41328;
         {
            W4 var←c41360;
            {
               word pd137;
               pd137 = (* (( (ptr) (* (( (ptr) gf←c43280)+116)/* var←c41168 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd137 ))))((word) &var←c41360, box←v8064, pd137);
               };
            {
               W4 var←c0229;
               {
                  word pd138;
                  pd138 = (* (( (ptr) (* (( (ptr) gf←c43280)+114)/* var←c40240 */  ))+46) );
                  (void) ( *( (fPt) ((*  (ptr) pd138 ))))((word) &var←c0229, m←v8036, var←c41360, pd138);
                  };
               var←c41328 = var←c0229;
               };
            };
         {
            W4 var←c0230;
            {
               word pd139;
               pd139 = (* (( (ptr) (* (( (ptr) gf←c43280)+116)/* var←c41168 */  ))+4) );
               (void) ( *( (fPt) ((*  (ptr) pd139 ))))((word) &var←c0230, var←c41328, pd139);
               };
            var←c41392 = var←c0230;
            };
         };
      var←c8108 = var←c41392;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0231 ) = var←c8108;
   return;
   }

static void GetCharacterData←P840(formal←c0236, group←v8168, code←v8196)
   word formal←c0236;
   word group←v8168;
   word code←v8196;
   {
   W4 var←c8240;
   W4 characterData←v14600;
   /* GetCharacterData: */ 
SOURCE(13830, 484)
SOURCE(14036, 45)
   if (((* (( (ptr) group←v8168)+4) ) != 1)) {
SOURCE(14081, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(14088, 56)
   (* (( (hPt) &characterData←v14600)+7) ) = 65535;
SOURCE(14146, 143)
   if ( ( (code←v8196 >= (* (( (ptr) group←v8168)+2) )) ? (code←v8196 <= (* (( (ptr) group←v8168)+3) )) : 0 ) ) {
SOURCE(14191, 98)
SOURCE(14193, 96)
      (void) RawFetch←P180((*  (ptr) group←v8168 ), ((* (( (ptr) group←v8168)+5) ) + IOP2( * ,  (int)(code←v8196 - (* (( (ptr) group←v8168)+2)
             )),  (int)16)), (word) &characterData←v14600, 16);
      };
SOURCE(14292, 22)
   var←c8240 = characterData←v14600;
   /* removed tail goto */ 
   (*  (W4Pt) formal←c0236 ) = var←c8240;
   return;
   }

static word CDContains←P900(self←v8300, char←v8328)
   word self←v8300;
   word char←v8328;
   {
   register ptr gf←c43312 =  (ptr) &globalframe;
   word var←c8372;
   word data←v14672;
   word charTable←v14700;
   word var←c41424;
   /* CDContains: */ 
SOURCE(14320, 312)
SOURCE(14397, 30)
   data←v14672 = XR←Narrow((* (( (ptr) self←v8300)+1) ), (* (( (ptr) gf←c43312)+31) ));
SOURCE(14429, 52)
   {
      word idx140;
      charTable←v14700 = (* (( (ptr) (*  (ptr) data←v14672 ))+(
            idx140 = (word) ((word) char←v8328 >> 8),
            BCK(idx140, 255)
            )) );
      };
SOURCE(14483, 93)
   if ((charTable←v14700 == 0)) { goto then0141;};
   var←c41424 = (char←v8328 & 0377);
   if ( ( (var←c41424 < (*  (ptr) charTable←v14700 )) ? 1 : (var←c41424 > (* (( (ptr) charTable←v14700)+1) )) ) ) {
      then0141: ;
SOURCE(14562, 14)
      return(0);
      };
SOURCE(14578, 54)
   {
      word var←c0434;
      {
         word var←c41456;
         var←c41456 = ((char←v8328 & 0377) - (*  (ptr) charTable←v14700 ));
         {
            word limit142;
            var←c0434 =  (unsigned) ((* ((( (ptr) charTable←v14700)+3)+(
                  limit142 = (* (( (ptr) charTable←v14700)+2) ),
                  BCK(var←c41456, limit142)
                  )) ) != 0);
            };
         };
      return(var←c0434);
      };
   }

static word CDNextChar←P960(self←v8432, char←v8460)
   word self←v8432;
   word char←v8460;
   {
   register ptr gf←c43344 =  (ptr) &globalframe;
   word var←c8504;
   word data←v14744;
   word next←v14772;
   word charTable←v14800;
   /* CDNextChar: */ 
SOURCE(14638, 774)
SOURCE(14727, 30)
   data←v14744 = XR←Narrow((* (( (ptr) self←v8432)+1) ), (* (( (ptr) gf←c43344)+31) ));
SOURCE(14759, 70)
   next←v14772 =  ( (char←v8460 ==  (word) -1) ? 0 : (char←v8460 + 1) ) ;
SOURCE(14831, 95)
   {
      word idx143;
      charTable←v14800 =  ( (((word) next←v14772 >> 8) <= 254) ? (* (( (ptr) (*  (ptr) data←v14744 ))+(
            idx143 = (word) ((word) next←v14772 >> 8),
            BCK(idx143, 255)
            )) ) : 0 ) ;
      };
SOURCE(14928, 460)
   {
      word var←c41488;
      word var←c41520;
      lab←L100066: ;
      {
         word tc144;
         word limit146;
         if ((next←v14772 !=  (word) -1)) {
            if ((charTable←v14800 == 0)) { goto then0145;};
            var←c41488 = (next←v14772 & 0377);
            if ( ( (var←c41488 < (*  (ptr) charTable←v14800 )) ? 1 : (var←c41488 > (* (( (ptr) charTable←v14800)+1) )) ) ) {
               then0145: ;
               tc144 =  (word) 1;
               }
            else {
               var←c41520 = ((next←v14772 & 0377) - (*  (ptr) charTable←v14800 ));
               tc144 =  (word) ((* ((( (ptr) charTable←v14800)+3)+(
                     limit146 = (* (( (ptr) charTable←v14800)+2) ),
                     BCK(var←c41520, limit146)
                     )) ) == 0);
               };
            }
         else {
            tc144 =  (word) 0;
            };
         if (tc144) {
            }
         else {
            goto lab←L100064;
            };
         };
      if ((charTable←v14800 == 0) || ((next←v14772 & 0377) > (* (( (ptr) charTable←v14800)+1) ))) {
SOURCE(15149, 16)
         next←v14772 = (next←v14772 + 1);
SOURCE(15167, 55)
         if ((((word) next←v14772 >> 8) > 254)) {
SOURCE(15206, 16)
            next←v14772 =  (word) -1;
SOURCE(15224, 4)
            goto lab←L100065;
            };
SOURCE(15231, 41)
         {
            word idx147;
            charTable←v14800 = (* (( (ptr) (*  (ptr) data←v14744 ))+(
                  idx147 = (word) ((word) next←v14772 >> 8),
                  BCK(idx147, 255)
                  )) );
            };
         }
      else {
         if (((next←v14772 & 0377) < (*  (ptr) charTable←v14800 ))) {
SOURCE(15313, 46)
            {
               word var←c41552;
               word set←v37860;
               word code←v37888;
               set←v37860 = ((word) next←v14772 >> 8);
               code←v37888 = (*  (ptr) charTable←v14800 );
               var←c41552 = (((word) set←v37860 << 8) + code←v37888);
               next←v14772 = var←c41552;
               };
            }
         else {
SOURCE(15372, 16)
            next←v14772 = (next←v14772 + 1);
            };
         };
      goto lab←L100066;
      lab←L100064: ;
      lab←L100065: ;
      };
SOURCE(15399, 13)
   return(next←v14772);
   }

static void CDEscapement←P1020(formal←c0264, self←v8564, char←v8592)
   word formal←c0264;
   word self←v8564;
   word char←v8592;
   {
   register ptr gf←c43376 =  (ptr) &globalframe;
   W2 var←c8636;
   word data←v14844;
   word charTable←v14872;
   word var←c41584;
   /* CDEscapement: */ 
SOURCE(15418, 387)
SOURCE(15496, 30)
   data←v14844 = XR←Narrow((* (( (ptr) self←v8564)+1) ), (* (( (ptr) gf←c43376)+31) ));
SOURCE(15528, 52)
   {
      word idx148;
      charTable←v14872 = (* (( (ptr) (*  (ptr) data←v14844 ))+(
            idx148 = (word) ((word) char←v8592 >> 8),
            BCK(idx148, 255)
            )) );
      };
SOURCE(15582, 204)
   {
      word tc149;
      if ((charTable←v14872 != 0)) {
         var←c41584 = (char←v8592 & 0377);
         if ((var←c41584 >= (*  (ptr) charTable←v14872 ))) {
            tc149 =  (word) (var←c41584 <= (* (( (ptr) charTable←v14872)+1) ));
            }
         else {
            tc149 =  (word) 0;
            };
         }
      else {
         tc149 =  (word) 0;
         };
      if (tc149) {
SOURCE(15658, 128)
         {
            word charMetrics←v14916;
SOURCE(15660, 66)
            {
               word var←c41616;
               var←c41616 = ((char←v8592 & 0377) - (*  (ptr) charTable←v14872 ));
               {
                  word limit150;
                  charMetrics←v14916 = (* ((( (ptr) charTable←v14872)+3)+(
                        limit150 = (* (( (ptr) charTable←v14872)+2) ),
                        BCK(var←c41616, limit150)
                        )) );
                  };
               };
SOURCE(15728, 58)
            if ((charMetrics←v14916 != 0)) {
SOURCE(15754, 32)
               var←c8636 = (*  (W2Pt) charMetrics←v14916 );
               goto lab←L100068;
               };
            };
         };
      };
SOURCE(15789, 16)
   var←c8636.f0 = (*  (ptr) &fc151 );
   var←c8636.f1 = (*  (ptr) &fc76 );
   /* removed tail goto */ 
   lab←L100068: ;
   (*  (W2Pt) formal←c0264 ) = var←c8636;
   return;
   }

static word CDAmplified←P1080(self←v8696, char←v8724)
   word self←v8696;
   word char←v8724;
   {
   register ptr gf←c43408 =  (ptr) &globalframe;
   word var←c8768;
   word data←v14960;
   /* CDAmplified: */ 
SOURCE(15811, 176)
SOURCE(15889, 30)
   data←v14960 = XR←Narrow((* (( (ptr) self←v8696)+1) ), (* (( (ptr) gf←c43408)+31) ));
SOURCE(15921, 66)
   {
      word tc152;
      if ((0 != (* (( (ptr) data←v14960)+1) ))) {
         tc152 =  (word)  (unsigned) (char←v8724 == 32);
         }
      else {
         tc152 =  (word)  (unsigned) 0;
         };
      return(tc152);
      };
   }

static word CDCorrection←P1140(self←v8828, char←v8856)
   word self←v8828;
   word char←v8856;
   {
   register ptr gf←c43440 =  (ptr) &globalframe;
   word var←c8900;
   word data←v15004;
   /* CDCorrection: */ 
SOURCE(15993, 275)
SOURCE(16093, 30)
   data←v15004 = XR←Narrow((* (( (ptr) self←v8828)+1) ), (* (( (ptr) gf←c43440)+31) ));
SOURCE(16125, 126)
   if ((0 != (word) CDContains←P900(self←v8828, char←v8856))) {
SOURCE(16158, 79)
      if ( ( (0 != (* (( (ptr) data←v15004)+1) )) ? (char←v8856 == 32) : 0 ) ) {
SOURCE(16224, 13)
         return(1);
         };
SOURCE(16239, 12)
      return(0);
      };
SOURCE(16256, 12)
   return(2);
   }

static void CDBoundingBox←P1200(formal←c0285, self←v8960, char←v8988)
   word formal←c0285;
   word self←v8960;
   word char←v8988;
   {
   register ptr gf←c43472 =  (ptr) &globalframe;
   W4 var←c9032;
   word data←v15048;
   word charTable←v15076;
   word var←c41712;
   /* CDBoundingBox: */ 
SOURCE(16274, 542)
SOURCE(16357, 30)
   data←v15048 = XR←Narrow((* (( (ptr) self←v8960)+1) ), (* (( (ptr) gf←c43472)+31) ));
SOURCE(16389, 52)
   {
      word idx153;
      charTable←v15076 = (* (( (ptr) (*  (ptr) data←v15048 ))+(
            idx153 = (word) ((word) char←v8988 >> 8),
            BCK(idx153, 255)
            )) );
      };
SOURCE(16443, 221)
   {
      word tc154;
      if ((charTable←v15076 != 0)) {
         var←c41712 = (char←v8988 & 0377);
         if ((var←c41712 >= (*  (ptr) charTable←v15076 ))) {
            tc154 =  (word) (var←c41712 <= (* (( (ptr) charTable←v15076)+1) ));
            }
         else {
            tc154 =  (word) 0;
            };
         }
      else {
         tc154 =  (word) 0;
         };
      if (tc154) {
SOURCE(16519, 147)
         {
            word charMetrics←v15120;
SOURCE(16521, 66)
            {
               word var←c41744;
               var←c41744 = ((char←v8988 & 0377) - (*  (ptr) charTable←v15076 ));
               {
                  word limit155;
                  charMetrics←v15120 = (* ((( (ptr) charTable←v15076)+3)+(
                        limit155 = (* (( (ptr) charTable←v15076)+2) ),
                        BCK(var←c41744, limit155)
                        )) );
                  };
               };
SOURCE(16589, 75)
            if ((charMetrics←v15120 != 0)) {
SOURCE(16615, 49)
               {
                  W4 var←c41808;
                  {
                     word pd156;
                     pd156 = (* (( (ptr) (* (( (ptr) gf←c43472)+116)/* var←c41168 */  ))+7) );
                     (void) ( *( (fPt) ((*  (ptr) pd156 ))))((word) &var←c41808, (*  (W4Pt) (( (ptr) charMetrics←v15120)+2) ), pd156);
                     };
                  var←c9032 = var←c41808;
                  goto lab←L100069;
                  };
               };
            };
         };
      };
SOURCE(16669, 74)
   if ((char←v8988 != 61642)) {
SOURCE(16699, 44)
      {
         W4 var←c41872;
         (void) CDBoundingBox←P1200((word) &var←c41872, self←v8960, 61642);
         var←c9032 = var←c41872;
         goto lab←L100069;
         };
      };
SOURCE(16745, 71)
   var←c9032.f0 = (*  (ptr) &fc157 );
   var←c9032.f1 = (*  (ptr) &fc158 );
   var←c9032.f2 = (*  (ptr) &fc76 );
   var←c9032.f3 = (*  (ptr) &fc159 );
   /* removed tail goto */ 
   lab←L100069: ;
   (*  (W4Pt) formal←c0285 ) = var←c9032;
   return;
   }

static void CDFontBoundingBox←P1260(formal←c0307, self←v9092)
   word formal←c0307;
   word self←v9092;
   {
   register ptr gf←c43504 =  (ptr) &globalframe;
   W4 var←c9136;
   word data←v15164;
   word setTable←v15192;
   W4 bb←v15220;
   /* CDFontBoundingBox: */ 
SOURCE(16822, 659)
SOURCE(16885, 30)
   data←v15164 = XR←Narrow((* (( (ptr) self←v9092)+1) ), (* (( (ptr) gf←c43504)+31) ));
SOURCE(16917, 34)
   setTable←v15192 = (*  (ptr) data←v15164 );
SOURCE(16953, 81)
   {
      W4 var←c41936;
      (void) CDBoundingBox←P1200((word) &var←c41936, self←v9092, 61642);
      {
         W4 var←c0293;
         {
            word pd160;
            pd160 = (* (( (ptr) (* (( (ptr) gf←c43504)+116)/* var←c41168 */  ))+6) );
            (void) ( *( (fPt) ((*  (ptr) pd160 ))))((word) &var←c0293, var←c41936, pd160);
            };
         bb←v15220 = var←c0293;
         };
      };
SOURCE(17036, 383)
   {
      register word set←v15264 = 0;
      lab←L100074: ;
      {
         word charTable←v15308;
SOURCE(17067, 36)
         charTable←v15308 = (* (( (ptr) setTable←v15192)+set←v15264) );
SOURCE(17105, 314)
         if ((charTable←v15308 != 0)) {
SOURCE(17131, 288)
            {
               register word code←v15352;
               register word noName←c41968;
               code←v15352 = (*  (ptr) charTable←v15308 );
               noName←c41968 = (* (( (ptr) charTable←v15308)+1) );
               if ((code←v15352 > noName←c41968)) {
                  goto lab←L100075;
                  };
               lab←L100078: ;
               {
                  word charMetrics←v15396;
SOURCE(17181, 55)
                  {
                     word var←c42000;
                     var←c42000 = (code←v15352 - (*  (ptr) charTable←v15308 ));
                     {
                        word limit161;
                        charMetrics←v15396 = (* ((( (ptr) charTable←v15308)+3)+(
/*1*/   limit161 = (* (( (ptr) charTable←v15308)+2) ),
/*1*/   BCK(var←c42000, limit161)
/*1*/   )) );
                        };
                     };
SOURCE(17238, 181)
                  if ((charMetrics←v15396 != 0)) {
SOURCE(17264, 155)
                     {
                        W4 b←v15440;
SOURCE(17266, 33)
                        b←v15440 = (*  (W4Pt) (( (ptr) charMetrics←v15396)+2) );
SOURCE(17301, 118)
                        {
                           word var←c42032;
                           word var←c42096;
                           word var←c42160;
                           word var←c42224;
                           {
/*1*/   word x162;
/*1*/   float tf163;
/*1*/   float tf164;
/*1*/   word x165;
/*1*/   float tf166;
/*1*/   var←c42032 = (
/*1*/      tf166 = FMIN((
/*1*/            x162 = bb←v15220.f0,  *(float*)&x162
/*1*/            ), (
/*1*/            x165 = b←v15440.f0,  *(float*)&x165
/*1*/            ), tf163, tf164),  *(word*)&tf166
/*1*/      );
/*1*/   };
                           {
/*1*/   word x167;
/*1*/   float tf168;
/*1*/   float tf169;
/*1*/   word x170;
/*1*/   float tf171;
/*1*/   var←c42096 = (
/*1*/      tf171 = FMIN((
/*1*/            x167 = bb←v15220.f1,  *(float*)&x167
/*1*/            ), (
/*1*/            x170 = b←v15440.f1,  *(float*)&x170
/*1*/            ), tf168, tf169),  *(word*)&tf171
/*1*/      );
/*1*/   };
                           {
/*1*/   word x172;
/*1*/   float tf173;
/*1*/   float tf174;
/*1*/   word x175;
/*1*/   float tf176;
/*1*/   var←c42160 = (
/*1*/      tf176 = FMAX((
/*1*/            x172 = bb←v15220.f2,  *(float*)&x172
/*1*/            ), (
/*1*/            x175 = b←v15440.f2,  *(float*)&x175
/*1*/            ), tf173, tf174),  *(word*)&tf176
/*1*/      );
/*1*/   };
                           {
/*1*/   word x177;
/*1*/   float tf178;
/*1*/   float tf179;
/*1*/   word x180;
/*1*/   float tf181;
/*1*/   var←c42224 = (
/*1*/      tf181 = FMAX((
/*1*/            x177 = bb←v15220.f3,  *(float*)&x177
/*1*/            ), (
/*1*/            x180 = b←v15440.f3,  *(float*)&x180
/*1*/            ), tf178, tf179),  *(word*)&tf181
/*1*/      );
/*1*/   };
                           bb←v15220.f0 = var←c42032;
                           bb←v15220.f1 = var←c42096;
                           bb←v15220.f2 = var←c42160;
                           bb←v15220.f3 = var←c42224;
                           };
                        };
                     };
                  };
               if ((code←v15352 >= noName←c41968)) {
                  goto lab←L100075;
                  };
               code←v15352 = (code←v15352 + 1);
               goto lab←L100078;
               lab←L100075: ;
               };
            };
         };
      if ((set←v15264 >= 254)) {
         goto lab←L100071;
         };
      set←v15264 = (set←v15264 + 1);
      goto lab←L100074;
      lab←L100071: ;
      };
SOURCE(17443, 38)
   {
      W4 var←c42288;
      {
         word pd182;
         pd182 = (* (( (ptr) (* (( (ptr) gf←c43504)+116)/* var←c41168 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd182 ))))((word) &var←c42288, bb←v15220, pd182);
         };
      var←c9136 = var←c42288;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0307 ) = var←c9136;
   return;
   }

static void CDKern←P1320(formal←c0312, self←v9196, char←v9224, successor←v9252)
   word formal←c0312;
   word self←v9196;
   word char←v9224;
   word successor←v9252;
   {
   /* CDKern: */ 
SOURCE(17485, 98)
   /* Return var split */ 
SOURCE(17568, 15)
   /* eliminated constant return field */ 
   /* eliminated constant return field */ 
   /* removed tail goto */ 
   (* (( (ptr) formal←c0312)+1) ) = (*  (ptr) &fc76 );
   (*  (ptr) formal←c0312 ) = (*  (ptr) &fc76 );
   return;
   }

static word CDNextKern←P1380(self←v9356, char←v9384, successor←v9412)
   word self←v9356;
   word char←v9384;
   word successor←v9412;
   {
   word var←c9456;
   /* CDNextKern: */ 
SOURCE(17587, 129)
SOURCE(17687, 29)
   return( (word) -1);
   }

static word CDLigature←P1440(self←v9516, char←v9544, successor←v9572)
   word self←v9516;
   word char←v9544;
   word successor←v9572;
   {
   word var←c9616;
   /* CDLigature: */ 
SOURCE(17720, 129)
SOURCE(17820, 29)
   return( (word) -1);
   }

static word CDNextLigature←P1500(self←v9676, char←v9704, successor←v9732)
   word self←v9676;
   word char←v9704;
   word successor←v9732;
   {
   word var←c9776;
   /* CDNextLigature: */ 
SOURCE(17853, 133)
SOURCE(17957, 29)
   return( (word) -1);
   }

static word GetBitmap←P1560(group←v9836, code←v9864)
   word group←v9836;
   word code←v9864;
   {
   register ptr gf←c43536 =  (ptr) &globalframe;
   word var←c9908;
   word sampleMap←v15484 = 0;
   W4 cd←v15512;
   /* GetBitmap: */ 
SOURCE(17990, 1233)
SOURCE(18127, 68)
   (void) GetCharacterData←P840((word) &cd←v15512, group←v9836, code←v9864);
SOURCE(18197, 996)
   if (( (int) ( short )(* (( (hPt) &cd←v15512)+7) ) !=  (int) ( short )65535)) {
SOURCE(18257, 945)
      {
         word rfpBytePos←v15584;
         word rfp←v15612;
SOURCE(18313, 68)
         rfpBytePos←v15584 = ((* (( (ptr) group←v9836)+6) ) + IOP2( * ,  (int)(code←v9864 - (* (( (ptr) group←v9836)+2) )),  (int)4)
         );
SOURCE(18427, 50)
SOURCE(18428, 49)
         (void) RawFetch←P180((*  (ptr) group←v9836 ), rfpBytePos←v15584, (word) &rfp←v15612, 4);
SOURCE(18480, 713)
         if (( (int)rfp←v15612 !=  (int)2147483647)) {
SOURCE(18528, 671)
            {
               word relativeByte←v15656;
               W2 rd←v15712;
SOURCE(18530, 34)
               relativeByte←v15656 = IOP2( * ,  (int)rfp←v15612,  (int)2);
SOURCE(18619, 83)
               (void) ReadRasterDefn←P300((word) &rd←v15712, (*  (ptr) group←v9836 ), ((* (( (ptr) group←v9836)+6) ) + relativeByte←v15656))
               ;
SOURCE(18704, 54)
               {
                  word truth←v37236;
                  {
                     word tc183;
                     if (( (int)rd←v15712.f1 ==  (int) ( short )(* (( (hPt) &cd←v15512)+6) ))) {
                        tc183 =  (word) ( (int)rd←v15712.f0 ==  (int)IOP2( / ,  (int)( (int) ( short )(* (( (hPt) &cd←v15512)+7) ) + 15),  (int)16)
                        );
                        }
                     else {
                        tc183 =  (word) 0;
                        };
                     truth←v37236 =  (unsigned) tc183;
                     };
SOURCE(2417, 40)
                  if ((0 == truth←v37236)) {
SOURCE(2435, 22)
                     (void) XR←RaiseError((word) (( (bPt) gf←c43536)+188)/* var←c37936 */ , 0);
                     };
                  };
SOURCE(18760, 433)
               {
                  word tc184;
                  if (( (int) ( short )(* (( (hPt) &cd←v15512)+6) ) >  (int)0)) {
                     tc184 =  (word) ( (int) ( short )(* (( (hPt) &cd←v15512)+7) ) >  (int)0);
                     }
                  else {
                     tc184 =  (word) 0;
                     };
                  if (tc184) {
SOURCE(18792, 404)
                     {
                        word rasterBytes←v15756;
SOURCE(18794, 54)
                        {
                           word fileWords←v37524;
                           fileWords←v37524 = IOP2( * ,  (int)rd←v15712.f0,  (int)rd←v15712.f1);
SOURCE(2518, 20)
                           rasterBytes←v15756 = IOP2( * ,  (int)fileWords←v37524,  (int)2);
                           };
SOURCE(18850, 212)
                        {
                           W4 var←c42384;
                           var←c42384.f0 =  (int) ( short )(* (( (hPt) &cd←v15512)+4) );
                           var←c42384.f1 =  (int) ( short )(* (( (hPt) &cd←v15512)+5) );
                           var←c42384.f2 = ( (int) ( short )(* (( (hPt) &cd←v15512)+6) ) +  (int) ( short )(* (( (hPt) &cd←v15512)+4) ));
                           var←c42384.f3 = ( (int) ( short )(* (( (hPt) &cd←v15512)+7) ) +  (int) ( short )(* (( (hPt) &cd←v15512)+5) ));
                           {
/*1*/   word pd185;
/*1*/   pd185 = (* (( (ptr) (* (( (ptr) gf←c43536)+117)/* var←c42416 */  ))+22) );
/*1*/   sampleMap←v15484 = (word) ( *( (fPt) ((*  (ptr) pd185 ))))(var←c42384, 1, ((word) rd←v15712.f0 << 4), pd185);
/*1*/   };
                           };
SOURCE(19072, 121)
SOURCE(19073, 120)
                        (void) RawFetch←P180((*  (ptr) group←v9836 ), (((* (( (ptr) group←v9836)+6) ) + relativeByte←v15656) + 2), (* (( (ptr) sampleMap←v15484)+8)
                            ), SGNCK(rasterBytes←v15756));
                        };
                     };
                  };
               };
            };
         };
      };
SOURCE(19205, 18)
   return(sampleMap←v15484);
   }

static word Right←P1620(angle←v9968)
   word angle←v9968;
   {
   word var←c10012;
   /* Right: */ 
SOURCE(19229, 181)
SOURCE(19274, 47)
   lab←L100083: ;
   {
      word x186;
      word x187;
      if (((
         x186 = angle←v9968,  *(float*)&x186
         ) < (
         x187 = (*  (ptr) &fc76 ),  *(float*)&x187
         ))) {
         }
      else {
         goto lab←L100081;
         };
      };
SOURCE(19293, 28)
   {
      word x188;
      word x190;
      *(float*)&angle←v9968 = (
         x188 = angle←v9968,  *(float*)&x188
         ) + (
         x190 = (*  (ptr) &fc189 ),  *(float*)&x190
         );
      };
   goto lab←L100083;
   lab←L100081: ;
SOURCE(19323, 50)
   lab←L100086: ;
   {
      word x191;
      word x193;
      if (((
         x191 = angle←v9968,  *(float*)&x191
         ) > (
         x193 = (*  (ptr) &fc192 ),  *(float*)&x193
         ))) {
         }
      else {
         goto lab←L100084;
         };
      };
SOURCE(19345, 28)
   {
      word x194;
      word x195;
      *(float*)&angle←v9968 = (
         x194 = angle←v9968,  *(float*)&x194
         ) - (
         x195 = (*  (ptr) &fc189 ),  *(float*)&x195
         );
      };
   goto lab←L100086;
   lab←L100084: ;
SOURCE(19375, 35)
   {
      float tf196;
      word x197;
      word x199;
      return( (unsigned) (FABS((
            x197 = angle←v9968,  *(float*)&x197
            ), tf196) <= (
         x199 = (*  (ptr) &fc198 ),  *(float*)&x199
         )));
      };
   }

static word FindBestGroup←P1680(data←v10072, char←v10100, t←v10128)
   word data←v10072;
   word char←v10100;
   word t←v10128;
   {
   register ptr gf←c43568 =  (ptr) &globalframe;
   word var←c10172;
   word best←v15800 = 0;
   /* FindBestGroup: */ 
SOURCE(19464, 1043)
SOURCE(19587, 816)
   {
      register word each←v15844;
      each←v15844 = (* (( (ptr) data←v10072)+2) );
      lab←L100090: ;
      if ((each←v15844 != 0)) {
         }
      else {
         goto lab←L100087;
         };
      {
         word group←v15972;
SOURCE(19660, 29)
         group←v15972 = (*  (ptr) each←v15844 );
SOURCE(19691, 712)
         if (((* (( (ptr) group←v15972)+1) ) == ((word) char←v10100 >> 8))) {
SOURCE(19728, 675)
            {
               word var←c42448;
               var←c42448 = (* (( (ptr) group←v15972)+4) );
               if ((var←c42448 == 0)) {
SOURCE(19771, 21)
                  (void) XR←RaiseError((word) (( (bPt) gf←c43568)+188)/* var←c37936 */ , 0);
                  }
               else {
                  if ((var←c42448 == 1)) {
SOURCE(19811, 604)
                     {
                        W4 cd←v16016;
SOURCE(19813, 79)
                        (void) GetCharacterData←P840((word) &cd←v16016, group←v15972, (char←v10100 & 0377));
SOURCE(19894, 509)
                        if (( (int) ( short )(* (( (hPt) &cd←v16016)+7) ) !=  (int) ( short )65535)) {
SOURCE(19948, 455)
                           if ((t←v10128 != 0)) {
SOURCE(19964, 445)
/*1*/   {
/*1*/      word composite←v16060;
/*1*/      W6 f←v16088;
/*1*/      word var←c42480;
/*1*/      word var←c42512;
SOURCE(19966, 77)
/*1*/      {
/*1*/         word pd200;
/*1*/         pd200 = (* (( (ptr) (* (( (ptr) gf←c43568)+114)/* var←c40240 */  ))+13) );
/*1*/         composite←v16060 = (word) ( *( (fPt) ((*  (ptr) pd200 ))))((* (( (ptr) group←v15972)+8) ), t←v10128, pd200);
/*1*/         };
SOURCE(20045, 87)
/*1*/      {
/*1*/         word pd201;
/*1*/         pd201 = (* (( (ptr) (* (( (ptr) gf←c43568)+114)/* var←c40240 */  ))+50) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd201 ))))((word) &f←v16088, composite←v16060, pd201);
/*1*/         };
SOURCE(20134, 39)
/*1*/      {
/*1*/         word pd202;
/*1*/         pd202 = (* (( (ptr) (* (( (ptr) gf←c43568)+114)/* var←c40240 */  ))+5) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd202 ))))(composite←v16060, pd202);
/*1*/         };
SOURCE(20175, 15)
/*1*/      composite←v16060 = 0;
SOURCE(20192, 12)
/*1*/      best←v15800 = group←v15972;
SOURCE(20289, 114)
/*1*/      {
/*1*/         word tc203;
/*1*/         word tc204;
/*1*/         word x208;
/*1*/         word x209;
/*1*/         word x210;
/*1*/         word x211;
/*1*/         word x215;
/*1*/         word x216;
/*1*/         word x217;
/*1*/         word x218;
/*1*/         if ( ( (0 != (word) Right←P1620(f←v16088.f0)) ? (0 != (word) Right←P1620(f←v16088.f3)) : 0 ) ) {
/*1*/            {
/*1*/               float tf205;
/*1*/               word x206;
/*1*/               float tf207;
/*1*/               var←c42480 = (
/*1*/                  tf207 = FABS((
/*1*/                        x206 = f←v16088.f1,  *(float*)&x206
/*1*/                        ), tf205),  *(word*)&tf207
/*1*/                  );
/*1*/               };
/*1*/            if (((
/*1*/               x208 = var←c42480,  *(float*)&x208
/*1*/               ) >= (
/*1*/               x209 = (* (( (ptr) gf←c43568)+6)/* minScale←v4680 */  ),  *(float*)&x209
/*1*/               ))) {
/*1*/               tc204 =  (word) ((
/*1*/                  x210 = var←c42480,  *(float*)&x210
/*1*/                  ) <= (
/*1*/                  x211 = (* (( (ptr) gf←c43568)+7)/* maxScale←v4708 */  ),  *(float*)&x211
/*1*/                  ));
/*1*/               }
/*1*/            else {
/*1*/               tc204 =  (word) 0;
/*1*/               };
/*1*/            }
/*1*/         else {
/*1*/            tc204 =  (word) 0;
/*1*/            };
/*1*/         if (tc204) {
/*1*/            {
/*1*/               float tf212;
/*1*/               word x213;
/*1*/               float tf214;
/*1*/               var←c42512 = (
/*1*/                  tf214 = FABS((
/*1*/                        x213 = f←v16088.f2,  *(float*)&x213
/*1*/                        ), tf212),  *(word*)&tf214
/*1*/                  );
/*1*/               };
/*1*/            if (((
/*1*/               x215 = var←c42512,  *(float*)&x215
/*1*/               ) >= (
/*1*/               x216 = (* (( (ptr) gf←c43568)+6)/* minScale←v4680 */  ),  *(float*)&x216
/*1*/               ))) {
/*1*/               tc203 =  (word) ((
/*1*/                  x217 = var←c42512,  *(float*)&x217
/*1*/                  ) <= (
/*1*/                  x218 = (* (( (ptr) gf←c43568)+7)/* maxScale←v4708 */  ),  *(float*)&x218
/*1*/                  ));
/*1*/               }
/*1*/            else {
/*1*/               tc203 =  (word) 0;
/*1*/               };
/*1*/            }
/*1*/         else {
/*1*/            tc203 =  (word) 0;
/*1*/            };
/*1*/         if (tc203) {
SOURCE(20403, 4)
/*1*/            goto lab←L100088;
/*1*/            };
/*1*/         };
/*1*/      };
/*1*/   };
                           };
                        };
                     }
                  else {
SOURCE(20429, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            };
         };
      each←v15844 = (* (( (ptr) each←v15844)+1) );
      goto lab←L100090;
      lab←L100087: ;
      lab←L100088: ;
      };
SOURCE(20448, 19)
   if ((best←v15800 == 0)) {
SOURCE(20467, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(20494, 13)
   return(best←v15800);
   }

static word GetClientToDevice←P1740(formal←c0442)
   word formal←c0442;
   {
   W7 var←c43600;
   /* declaration of context←v10232 skipped */ 
   register ptr gf←c43632 =  (ptr) &globalframe;
   word t←v10276;
   var←c43600.f4/* context←v10232 */  = formal←c0442;
   /* GetClientToDevice: */ 
SOURCE(20513, 186)
SOURCE(20513, 186)
   t←v10276 = 0;
SOURCE(20601, 98)
SOURCE(20601, 98)
   {
      /* declaration of var←c02 skipped */ 
      var←c43600.f5/* var←c02 */  = (* (( (ptr) (* (( (ptr) gf←c43632)+118)/* var←c42544 */  ))+20) );
      {
         /* declaration of var←c03 skipped */ 
         {
            word var←c04;
            {
               word var←c0435;
               var←c0435 = (word) &var←c43600;
               var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q5244) ), ( ((word)  (fPt) NoName←Q5304) ), var←c0435);
               };
            if ((var←c04 == 2)) {
               goto lab←L100092;
               };
            };
         t←v10276 = var←c43600.f6/* var←c03 */ ;
         };
      };
   lab←L100092: ;
SOURCE(20513, 186)
   return(t←v10276);
   }

static word NoName←Q5244(formal←c0426)
   word formal←c0426;
   {
SOURCE(20601, 98)
   {
      word pd219;
      pd219 = (* (( (ptr) formal←c0426)+5) );
      (* (( (ptr) formal←c0426)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd219 ))))((* (( (ptr) formal←c0426)+4) ), 0, 3, pd219);
      };
   return(0);
   }

static void CDMask←P1800(self←v10336, char←v10364, context←v10392)
   word self←v10336;
   word char←v10364;
   word context←v10392;
   {
   register ptr gf←c43664 =  (ptr) &globalframe;
   word data←v16132;
   /* CDMask: */ 
SOURCE(20714, 852)
SOURCE(20797, 30)
   data←v16132 = XR←Narrow((* (( (ptr) self←v10336)+1) ), (* (( (ptr) gf←c43664)+31) ));
SOURCE(20829, 737)
   if ((0 != (word) CDContains←P900(self←v10336, char←v10364))) {
SOURCE(20860, 574)
      {
         word t←v16176;
         word group←v16204;
SOURCE(20862, 46)
         t←v16176 = (word) GetClientToDevice←P1740(context←v10392);
SOURCE(20910, 47)
         group←v16204 = (word) FindBestGroup←P1680(data←v16132, char←v10364, t←v16176);
SOURCE(20959, 58)
         if ((t←v16176 != 0)) {
SOURCE(20977, 31)
            {
               word pd220;
               pd220 = (* (( (ptr) (* (( (ptr) gf←c43664)+114)/* var←c40240 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd220 ))))(t←v16176, pd220);
               };
SOURCE(21010, 7)
            t←v16176 = 0;
            };
SOURCE(21020, 388)
         {
            word var←c42576;
            var←c42576 = (* (( (ptr) group←v16204)+4) );
            if ((var←c42576 == 0)) {
SOURCE(21063, 21)
               (void) XR←RaiseError((word) (( (bPt) gf←c43664)+188)/* var←c37936 */ , 0);
               }
            else {
               if ((var←c42576 == 1)) {
SOURCE(21103, 310)
                  {
                     word bitmap←v16248;
SOURCE(21105, 66)
                     bitmap←v16248 = (word) GetBitmap←P1560(group←v16204, (char←v10364 & 0377));
SOURCE(21173, 235)
                     if ((bitmap←v16248 != 0)) {
SOURCE(21196, 42)
                        {
                           word pd221;
                           pd221 = (* (( (ptr) (* (( (ptr) gf←c43664)+113)/* var←c39376 */  ))+14) );
                           (void) ( *( (fPt) ((*  (ptr) pd221 ))))(context←v10392, (* (( (ptr) group←v16204)+8) ), pd221);
                           };
SOURCE(21240, 128)
                        {
                           W2 var←c42608;
                           W2 var←c42640;
                           var←c42608.f0 = 0;
                           var←c42608.f1 = 0;
                           var←c42640.f0 = (*  (ptr) &fc76 );
                           var←c42640.f1 = (*  (ptr) &fc76 );
                           {
/*1*/   word pd222;
/*1*/   pd222 = (* (( (ptr) (* (( (ptr) gf←c43664)+113)/* var←c39376 */  ))+78) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd222 ))))(context←v10392, bitmap←v16248, var←c42608, 6, var←c42640, pd222);
/*1*/   };
                           };
SOURCE(21370, 38)
                        {
                           word pd223;
                           pd223 = (* (( (ptr) (* (( (ptr) gf←c43664)+117)/* var←c42416 */  ))+23) );
                           (void) ( *( (fPt) ((*  (ptr) pd223 ))))(bitmap←v16248, pd223);
                           };
                        };
                     };
                  }
               else {
SOURCE(21427, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      }
   else {
SOURCE(21443, 123)
      if ((char←v10364 != 61642)) {
SOURCE(21473, 43)
         (void) CDMask←P1800(self←v10336, 61642, context←v10392);
         }
      else {
SOURCE(21516, 50)
         {
            W4 var←c42672;
            var←c42672.f0 = (*  (ptr) &fc224 );
            var←c42672.f1 = (*  (ptr) &fc76 );
            var←c42672.f2 = (*  (ptr) &fc225 );
            var←c42672.f3 = (*  (ptr) &fc159 );
            {
               word pd226;
               pd226 = (* (( (ptr) (* (( (ptr) gf←c43664)+113)/* var←c39376 */  ))+65) );
               (void) ( *( (fPt) ((*  (ptr) pd226 ))))(context←v10392, var←c42672, pd226);
               };
            };
         };
      };
   }

static word CloseToIdentity←P1860(t←v10452)
   word t←v10452;
   {
   register ptr gf←c43696 =  (ptr) &globalframe;
   word var←c10496;
   /* CloseToIdentity: */ 
SOURCE(21659, 263)
SOURCE(21720, 68)
   if (((0 == (* (( (ptr) t←v10452)+8) )) || ( (int)(* (( (ptr) t←v10452)+6) ) !=  (int)0)) || ( (int)(* (( (ptr) t←v10452)+7)
    ) !=  (int)0)) {
SOURCE(21775, 13)
      return(0);
      };
SOURCE(21790, 31)
   if (((* (( (ptr) t←v10452)+9) ) == 3)) {
SOURCE(21809, 12)
      return(1);
      };
SOURCE(21823, 84)
   {
      word tc227;
      float tf228;
      word x229;
      word x231;
      float tf232;
      float tf233;
      float tf234;
      word x235;
      word x236;
      word x237;
      if (((* (( (ptr) t←v10452)+9) ) == 1)) {
         tc227 =  (word) (FMAX(FABS(((
                  x229 = (*  (ptr) t←v10452 ),  *(float*)&x229
                  ) - (
                  x231 = (*  (ptr) &fc230 ),  *(float*)&x231
                  )), tf228), FABS(((
                  x235 = (* (( (ptr) t←v10452)+4) ),  *(float*)&x235
                  ) - (
                  x236 = (*  (ptr) &fc230 ),  *(float*)&x236
                  )), tf234), tf232, tf233) <= (
            x237 = (* (( (ptr) gf←c43696)+8)/* tolerance←v4820 */  ),  *(float*)&x237
            ));
         }
      else {
         tc227 =  (word) 0;
         };
      if (tc227) {
SOURCE(21895, 12)
         return(1);
         };
      };
SOURCE(21909, 13)
   return(0);
   }

static word CDMakeCharMask←P1920(parameters←v25704, font←v25732, char←v25760)
   word parameters←v25704;
   word font←v25732;
   word char←v25760;
   {
   register ptr gf←c43728 =  (ptr) &globalframe;
   word var←c25804;
   word self←v16292;
   word data←v16320;
   word charMask←v16348 = 0;
   /* CDMakeCharMask: */ 
SOURCE(21926, 694)
SOURCE(21979, 54)
   {
      word pd238;
      pd238 = (* (( (ptr) (* (( (ptr) gf←c43728)+110)/* var←c39024 */  ))+7) );
      self←v16292 = (word) ( *( (fPt) ((*  (ptr) pd238 ))))(font←v25732, pd238);
      };
SOURCE(22035, 30)
   data←v16320 = XR←Narrow((* (( (ptr) self←v16292)+1) ), (* (( (ptr) gf←c43728)+31) ));
SOURCE(22109, 467)
   if ((0 != (word) CDContains←P900(self←v16292, char←v25760))) {
SOURCE(22140, 461)
      {
         word group←v16392;
         word t←v16420 = 0;
SOURCE(22142, 63)
         group←v16392 = (word) FindBestGroup←P1680(data←v16320, char←v25760, (*  (ptr) font←v25732 ));
SOURCE(22232, 69)
         {
            word pd239;
            pd239 = (* (( (ptr) (* (( (ptr) gf←c43728)+114)/* var←c40240 */  ))+13) );
            t←v16420 = (word) ( *( (fPt) ((*  (ptr) pd239 ))))((* (( (ptr) group←v16392)+8) ), (*  (ptr) font←v25732 ), pd239);
            };
SOURCE(22303, 273)
         if ((0 != (word) CloseToIdentity←P1860(t←v16420))) {
SOURCE(22330, 246)
            {
               word var←c42704;
               var←c42704 = (* (( (ptr) group←v16392)+4) );
               if ((var←c42704 == 1)) {
SOURCE(22380, 201)
                  {
                     word bitmap←v16464;
SOURCE(22382, 66)
                     bitmap←v16464 = (word) GetBitmap←P1560(group←v16392, (char←v25760 & 0377));
SOURCE(22450, 126)
                     if ((bitmap←v16464 != 0)) {
SOURCE(22473, 63)
                        {
                           word pd240;
                           pd240 = (* (( (ptr) (* (( (ptr) gf←c43728)+119)/* var←c42736 */  ))+6) );
                           charMask←v16348 = (word) ( *( (fPt) ((*  (ptr) pd240 ))))(bitmap←v16464, pd240);
                           };
SOURCE(22538, 38)
                        {
                           word pd241;
                           pd241 = (* (( (ptr) (* (( (ptr) gf←c43728)+117)/* var←c42416 */  ))+23) );
                           (void) ( *( (fPt) ((*  (ptr) pd241 ))))(bitmap←v16464, pd241);
                           };
                        };
                     };
                  }
               else {
                  };
               };
            };
         };
      };
SOURCE(22604, 16)
   return(charMask←v16348);
   }

static void NoName←Q5304(formal←c0388, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0388;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0430 =  (ptr) &globalframe;
   if ((formal←c200005 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0430)+113)/* var←c39376 */  ))+6) ) ))) {
      {
         W3 error←v36624;
         error←v36624 = (*  (W3Pt) formal←c200007 );
SOURCE(20699, 9)
         (*  (ptr) formal←c0388 ) = 2;
         (* (( (ptr) formal←c0388)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0388 ) = 0;
   (* (( (ptr) formal←c0388)+1) ) = 0;
   return;
   }

static void NoName←Q5364(formal←c0399, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0399;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0431 =  (ptr) &globalframe;
   if ((formal←c200001 == (word) (( (bPt) gf←c0431)+188)/* var←c37936 */ )) {
SOURCE(3946, 107)
      {
         word var←c39408;
         word var←c39440;
         {
            word pd242;
            pd242 = (* (( (ptr) (* (( (ptr) gf←c0431)+111)/* var←c39184 */  ))+5) );
            var←c39408 = (word) ( *( (fPt) ((*  (ptr) pd242 ))))((* (( (ptr) gf←c0431)+40) ), (* (( (ptr) formal←c200000)+4) ), (* (( (ptr) gf←c0431)+39)
                ), 0, 0, pd242);
            };
         {
            word var←c39472;
            word var←c39504;
            var←c39472 = XR←NewObject(12, (* (( (ptr) gf←c0431)+28) ));
            var←c39504 = var←c39472;
            (*  (ptr) var←c39504 ) = (* (( (ptr) gf←c0431)+38) );
            (* (( (ptr) var←c39504)+1) ) = (* (( (ptr) formal←c200000)+4) );
            var←c39440 = var←c39472;
            };
         {
            W3 var←c0398;
            var←c0398.f0 = 43;
            var←c0398.f1 = var←c39408;
            var←c0398.f2 = var←c39440;
            (void) XR←RaiseError((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0431)+113)/* var←c39376 */  ))+6) ) ), (word) &var←c0398);
            };
         };
      };
   (*  (ptr) formal←c0399 ) = 0;
   (* (( (ptr) formal←c0399)+1) ) = 0;
   return;
   }

/* file: ImagerCDTypefaceImpl, module: ImagerCDTypefaceImpl, compiled at: July 28, 1993 10:14:43 am PDT */ 
extern void XR←install←ImagerCDTypefaceImpl() {
   NoName←Q5124();
   }
extern void XR←run←ImagerCDTypefaceImpl() { XR←Start(&globalframe); }