/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: March 10, 1992 11:56:13 am PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: AISConvertersImpl, module: AISConvertersImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2670405889,2691797222] AISConvertersImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef W6 *W6Pt;
#define SOURCE(p, l) /* source p, l */
static float fc41 = 0.25;
static float fc43 = 0.0254;
static float fc47 = 0.0;
#define FMIN(x, y, tx, ty)  ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
static float fc52 = 2.0;
static float fc65 = 1.0;
static float fc71 = 0.5;
static float fc88 = 72.0;
static float fc93 = 9.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc120 = 8.5;
static float fc124 = 11.0;
static void NoName←Q876();
static void AISConvertersImpl←P0();
static void PixelArrayToInterpress←P60();
static void Paint←P360();
static void Caption←P420();
static void AISToInterpress←P120();
static void ColorAISToInterpress←P180();
static void AISToIPCmd←P240();
static word NoName←Q936();
static void Parse←P300();
static word FileChoice←P528();
static word AISSuffix←P648();
static word FileExists←P588();
static word NoName←Q996();
static void NoName←Q1056();
static void NoName←Q1116();
static struct {unsigned f; char r[16];} string1 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"};
static struct {unsigned f;  char r0[200]; char r1[68];} string4
   = { 17498380,
   "Usage: AISToIP <ip name> ← <ais name> [-q]\012\011 <ip name> is the name of the created Interpress master\012\011 <ais name> is either:\012\011 \011the name of a black/white AIS file (ending with \042.ais\042), or\012\011 \011the base n",
   "ame of an AIS color triplet\012\011 [-q] suppresses an Interpress caption"};
static struct {unsigned f; char r[8];} string5 = {458760, "AISToIP"};
static struct {unsigned f; char r[4];} string6 = {65540, "←\000\000"};
static struct {unsigned f; char r[4];} string7 = {131076, "-q\000"};
static struct {unsigned f; char r[4];} string8 = {131076, "\012\015\000"};
static struct {unsigned f; char r[32];} string9 = {1966112, "xerox/pressfonts/helvetica-mir\000"};
static struct {unsigned f; char r[8];} string10 = {458760, "Failure"};
static struct {unsigned f; char r[24];} string11 = {1376280, "Interpress/Xerox/3.0 \000\000"};
static struct {unsigned f; char r[12];} string12 = {524300, "bad file\000\000\000"};
static struct {unsigned f; char r[4];} string13 = {196612, "ais"};
static struct {unsigned f; char r[4];} string14 = {196612, "red"};
static struct {unsigned f; char r[4];} string15 = {65540, "r\000\000"};
static struct {unsigned f; char r[4];} string16 = {196612, "grn"};
static struct {unsigned f; char r[8];} string17 = {327688, "green\000\000"};
static struct {unsigned f; char r[4];} string18 = {65540, "g\000\000"};
static struct {unsigned f; char r[4];} string19 = {196612, "blu"};
static struct {unsigned f; char r[8];} string20 = {262152, "blue\000\000\000"};
static struct {unsigned f; char r[4];} string21 = {65540, "b\000\000"};
static struct {unsigned f; char r[8];} string22 = {262152, ".ais\000\000\000"};
static struct {unsigned f; char r[12];} string23 = {589836, "%g-%g.ais\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\237\053\051\001\300\240\161\220\346\100\164\000\000"};
static struct {unsigned f; char r[12];} string25 = {524296, "\006\001\054\010\000\004\024\001\000\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\150\223\370\056\300\265\120\000\347\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\373\225\000\071\300\362\156\307\320\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\311\235\133\064\300\165\175\234\175\100\150\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\103\154\257\030\300\165\276\076\350\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\344\212\014\176\300\070\230\121\123\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300ZT?\010\300\370;=;@h\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\046\300\267\143\300\022\215\240\122\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\124\360\214\337\300\200\347\202\313\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\056\204\102\044\300\111\366\033\137\100\150\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string39 = {851984, "\257\300\141\260\110\353\300\162\250\066\353\100\150\000\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {
   word f0[31]; word f31; word f32; word f33; 
   word f34; word f35; word f36; word f37; 
   word f38; word f39; word f40; word f41; 
   word f42[16]; 
   } globalframe = {
   {0}, (word) Parse←P300, 0, (word) AISToIPCmd←P240, 
   0, (word) ColorAISToInterpress←P180, 0, (word) AISToInterpress←P120, 
   0, (word) PixelArrayToInterpress←P60, 0, (word) AISConvertersImpl←P0, 
   {0}
   };

static void NoName←Q876()
   {
   register ptr gf←c0130 =  (ptr) &globalframe;
   word var←c21028;
   (* (( (ptr) gf←c0130)+6) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0130)+8) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c0130)+44) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string4);
   (*  (ptr) (( (bPt) gf←c0130)+48) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string5);
   (*  (ptr) (( (bPt) gf←c0130)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string6);
   (*  (ptr) (( (bPt) gf←c0130)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string7);
   (*  (ptr) (( (bPt) gf←c0130)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string8);
   (*  (ptr) (( (bPt) gf←c0130)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c0130)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+8) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c0130)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c0130)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0130)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0130)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0130)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0130)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0130)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0130)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0130)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0130)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0130)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0130)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0130)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0130)+6) ), (word) &string23);
   (void) XR←DeclareGlobalFrame((word) "AISConvertersImpl", &globalframe, (word) XR←GetTypeIndex((word) &string24, 0, (word) &string25)
      , (word) (( (bPt) gf←c0130)+164)/* var←c19428 */ );
   var←c21028 = (word) XR←ImportInterface((word) "AISIO", (word) XR←GetTypeIndexS((word) (&string26)), 9);
   (* (( (ptr) gf←c0130)+49)/* var←c19908 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 67371265);
   var←c21028 = (word) XR←ImportInterface((word) "Commander", (word) XR←GetTypeIndexS((word) (&string27)), 3);
   (* (( (ptr) gf←c0130)+43)/* var←c19460 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 1310725);
   var←c21028 = (word) XR←ImportInterface((word) "CommanderOps", (word) XR←GetTypeIndexS((word) (&string28)), 14);
   (* (( (ptr) gf←c0130)+53)/* var←c20068 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 67633666);
   var←c21028 = (word) XR←ImportInterface((word) "FileNames", (word) XR←GetTypeIndexS((word) (&string29)), 17);
   (* (( (ptr) gf←c0130)+55)/* var←c20356 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 67373313);
   (void) XR←ImportProcS(var←c21028, 67635202);
   (void) XR←ImportProcS(var←c21028, 67371265);
   var←c21028 = (word) XR←ImportInterface((word) "FS", (word) XR←GetTypeIndexS((word) (&string30)), 36);
   (* (( (ptr) gf←c0130)+57)/* var←c20964 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 403703812);
   var←c21028 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string31)), 84);
   (* (( (ptr) gf←c0130)+46)/* var←c19652 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 1319429);
   (void) XR←ImportProcS(var←c21028, 790786);
   (void) XR←ImportProcS(var←c21028, 530946);
   (void) XR←ImportProcS(var←c21028, 1326338);
   (void) XR←ImportProcS(var←c21028, 1062148);
   (void) XR←ImportProcS(var←c21028, 527106);
   (void) XR←ImportProcS(var←c21028, 790018);
   (void) XR←ImportProcS(var←c21028, 526338);
   (void) XR←ImportProcS(var←c21028, 543490);
   var←c21028 = (word) XR←ImportInterface((word) "ImagerColor", (word) XR←GetTypeIndexS((word) (&string32)), 32);
   (* (( (ptr) gf←c0130)+52)/* var←c20036 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 68161284);
   (void) XR←ImportProcS(var←c21028, 68159492);
   var←c21028 = (word) XR←ImportInterface((word) "ImagerFont", (word) XR←GetTypeIndexS((word) (&string33)), 26);
   (* (( (ptr) gf←c0130)+48)/* var←c19844 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 67633922);
   (void) XR←ImportProcS(var←c21028, 67634434);
   var←c21028 = (word) XR←ImportInterface((word) "ImagerInterpress", (word) XR←GetTypeIndexS((word) (&string34)), 10);
   (* (( (ptr) gf←c0130)+45)/* var←c19588 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 264193);
   (void) XR←ImportProcS(var←c21028, 67633410);
   (void) XR←ImportProcS(var←c21028, 788227);
   (void) XR←ImportProcS(var←c21028, 525570);
   var←c21028 = (word) XR←ImportInterface((word) "ImagerPixelArray", (word) XR←GetTypeIndexS((word) (&string35)), 13);
   (* (( (ptr) gf←c0130)+51)/* var←c19972 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 67633922);
   var←c21028 = (word) XR←ImportInterface((word) "ImagerPixelArrayAIS", (word) XR←GetTypeIndexS((word) (&string36)), 2);
   (* (( (ptr) gf←c0130)+50)/* var←c19940 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 67895555);
   (void) XR←ImportProcS(var←c21028, 67371009);
   var←c21028 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string37)), 55);
   (* (( (ptr) gf←c0130)+44)/* var←c19556 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 269756930);
   var←c21028 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string38)), 103);
   (* (( (ptr) gf←c0130)+56)/* var←c20932 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 68958724);
   var←c21028 = (word) XR←ImportInterface((word) "PFS", (word) XR←GetTypeIndexS((word) (&string39)), 40);
   (* (( (ptr) gf←c0130)+54)/* var←c20100 */  ) = var←c21028;
   var←c21028 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string40)), 43);
   (* (( (ptr) gf←c0130)+47)/* var←c19684 */  ) = var←c21028;
   (void) XR←ImportProcS(var←c21028, 67633666);
   (void) XR←ImportProcS(var←c21028, 67900419);
   (void) XR←ImportProcS(var←c21028, 67898627);
   (void) XR←ImportProcS(var←c21028, 67896323);
   (void) XR←ImportProcS(var←c21028, 67373313);
   }

static void AISConvertersImpl←P0(formal←c031, formal←c030)
   word formal←c031;
   word formal←c030;
   {
   register ptr gf←c21060 =  (ptr) &globalframe;
   /* AISConvertersImpl: */ 
SOURCE(209, 5128)
SOURCE(706, 29)
   {
      word x42;
      word x44;
      *(float*)(( (ptr) gf←c21060)+4)/* aisMargin←v3448 */  = (
         x42 = (*  (ptr) &fc41 ),  *(float*)&x42
         ) * (
         x44 = (*  (ptr) &fc43 ),  *(float*)&x44
         );
      };
SOURCE(5281, 56)
   {
      word pd45;
      pd45 = (* (( (ptr) (* (( (ptr) gf←c21060)+43)/* var←c19460 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd45 ))))((* (( (ptr) gf←c21060)+12) ), (word) (( (bPt) gf←c21060)+132)/* var←c19300 */ , (* (
            ( (ptr) gf←c21060)+11) ), 0, 1, pd45);
      };
   }

static void PixelArrayToInterpress←P60(formal←c0167, formal←c0168, ipRef←v3864, formal←c0169, formal←c0170, formal←c0171)
   word formal←c0167;
   word formal←c0168;
   word ipRef←v3864;
   word formal←c0169;
   word formal←c0170;
   word formal←c0171;
   {
   W16 var←c21092;
   /* declaration of pa←v3808 skipped */ 
   /* declaration of colorOp←v3836 skipped */ 
   /* declaration of width←v3892 skipped */ 
   /* declaration of height←v3920 skipped */ 
   /* declaration of caption←v3948 skipped */ 
   register ptr gf←c21124 =  (ptr) &globalframe;
   /* declaration of var←c19492 skipped */ 
   /* declaration of r←v4616 skipped */ 
   /* declaration of scale←v4644 skipped */ 
   (* (( (ptr) &var←c21092)+4)/* pa←v3808 */  ) = formal←c0167;
   (* (( (ptr) &var←c21092)+5)/* colorOp←v3836 */  ) = formal←c0168;
   (* (( (ptr) &var←c21092)+6)/* width←v3892 */  ) = formal←c0169;
   (* (( (ptr) &var←c21092)+7)/* height←v3920 */  ) = formal←c0170;
   (* (( (ptr) &var←c21092)+8)/* caption←v3948 */  ) = formal←c0171;
   /* PixelArrayToInterpress: */ 
SOURCE(926, 996)
   {
      word tmpAddr46;
      tmpAddr46 = (word) (( (ptr) &var←c21092)+9)/* var←c19492 */ ;
      (*  (ptr) tmpAddr46 ) = ( ((word)  (fPt) Paint←P360) );
      (* (( (ptr) tmpAddr46) + 1) ) = 1;
      };
SOURCE(1669, 92)
   {
      W4 var←c041;
      {
         W4 var←c19524;
         var←c19524.f0 = (*  (ptr) &fc47 );
         var←c19524.f1 = (*  (ptr) &fc47 );
         {
            float tf48;
            var←c19524.f2 = (
               tf48 = (float)(int)(* (( (ptr) (* (( (ptr) &var←c21092)+4)/* pa←v3808 */  ))+2) ),  *(word*)&tf48
               );
            };
         {
            float tf49;
            var←c19524.f3 = (
               tf49 = (float)(int)(* (( (ptr) (* (( (ptr) &var←c21092)+4)/* pa←v3808 */  ))+3) ),  *(word*)&tf49
               );
            };
         {
            word pd50;
            pd50 = (* (( (ptr) (* (( (ptr) gf←c21124)+44)/* var←c19556 */  ))+46) );
            (void) ( *( (fPt) ((*  (ptr) pd50 ))))((word) &var←c041, (* (( (ptr) (* (( (ptr) &var←c21092)+4)/* pa←v3808 */  ))+4) ), var←c19524, pd50)
            ;
            };
         };
      (*  (W4Pt) (( (ptr) &var←c21092)+11)/* r←v4616 */  ) = var←c041;
      };
SOURCE(1763, 68)
   {
      word x51;
      word x53;
      word x54;
      word x55;
      float tf56;
      float tf57;
      word x58;
      word x59;
      word x60;
      word x61;
      float tf62;
      (* (( (ptr) &var←c21092)+15)/* scale←v4644 */  ) = (
         tf62 = FMIN((((
               x51 = (* (( (ptr) &var←c21092)+6)/* width←v3892 */  ),  *(float*)&x51
               ) - ((
               x53 = (*  (ptr) &fc52 ),  *(float*)&x53
               ) * (
               x54 = (* (( (ptr) gf←c21124)+4)/* aisMargin←v3448 */  ),  *(float*)&x54
               ))) / (
               x55 = (* (( (ptr) &var←c21092)+13) ),  *(float*)&x55
               )), (((
               x58 = (* (( (ptr) &var←c21092)+7)/* height←v3920 */  ),  *(float*)&x58
               ) - ((
               x59 = (*  (ptr) &fc52 ),  *(float*)&x59
               ) * (
               x60 = (* (( (ptr) gf←c21124)+4)/* aisMargin←v3448 */  ),  *(float*)&x60
               ))) / (
               x61 = (* (( (ptr) &var←c21092)+14) ),  *(float*)&x61
               )), tf56, tf57),  *(word*)&tf62
         );
      };
SOURCE(1833, 45)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c21124)+45)/* var←c19588 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd63 ))))(ipRef←v3864, (* (( (ptr) &var←c21092)+4)/* pa←v3808 */  ), pd63);
      };
SOURCE(1880, 42)
   {
      word pd64;
      pd64 = (* (( (ptr) (* (( (ptr) gf←c21124)+45)/* var←c19588 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd64 ))))(ipRef←v3864, (word) (( (bPt) &var←c21092)+36)/* var←c19492 */ , (*  (ptr) &fc65 ), pd64)
      ;
      };
   }

static void Paint←P360(formal←c0172, formal←c21220)
   word formal←c0172;
   word formal←c21220;
   {
   W7 var←c21156;
   /* declaration of context←v4720 skipped */ 
   register ptr gf←c21188 =  (ptr) &globalframe;
   /* declaration of var←c19620 skipped */ 
   formal←c21220 = (formal←c21220 - 36);
   var←c21156.f4/* context←v4720 */  = formal←c0172;
   var←c21156.f0 = formal←c21220;
   /* Paint: */ 
SOURCE(1078, 586)
   {
      word tmpAddr66;
      tmpAddr66 = (word) (( (ptr) &var←c21156)+5)/* var←c19620 */ ;
      (*  (ptr) tmpAddr66 ) = ( ((word)  (fPt) Caption←P420) );
      (* (( (ptr) tmpAddr66) + 1) ) = 1;
      };
SOURCE(1328, 42)
   {
      word pd67;
      pd67 = (* (( (ptr) (* (( (ptr) gf←c21188)+46)/* var←c19652 */  ))+79) );
      (void) ( *( (fPt) ((*  (ptr) pd67 ))))(var←c21156.f4/* context←v4720 */ , 1, pd67);
      };
SOURCE(1372, 65)
   {
      word pd68;
      pd68 = (* (( (ptr) (* (( (ptr) gf←c21188)+47)/* var←c19684 */  ))+13) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd68 ))))((* ((( (ptr) formal←c21220)+8)) ), pd68))) {
SOURCE(1406, 31)
         {
            word pd69;
            pd69 = (* (( (ptr) (* (( (ptr) gf←c21188)+46)/* var←c19652 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd69 ))))(var←c21156.f4/* context←v4720 */ , (word) (( (bPt) &var←c21156)+20)/* var←c19620 */ , pd69)
            ;
            };
         };
      };
SOURCE(1439, 51)
   {
      W2 var←c19716;
      {
         word x70;
         word x72;
         *(float*)&var←c19716.f0 = (
            x70 = (* (( (ptr) formal←c21220)+6) ),  *(float*)&x70
            ) * (
            x72 = (*  (ptr) &fc71 ),  *(float*)&x72
            );
         };
      {
         word x73;
         word x74;
         *(float*)&var←c19716.f1 = (
            x73 = (* (( (ptr) formal←c21220)+7) ),  *(float*)&x73
            ) * (
            x74 = (*  (ptr) &fc71 ),  *(float*)&x74
            );
         };
      {
         word pd75;
         pd75 = (* (( (ptr) (* (( (ptr) gf←c21188)+46)/* var←c19652 */  ))+18) );
         (void) ( *( (fPt) ((*  (ptr) pd75 ))))(var←c21156.f4/* context←v4720 */ , var←c19716, pd75);
         };
      };
SOURCE(1492, 29)
   {
      word pd76;
      pd76 = (* (( (ptr) (* (( (ptr) gf←c21188)+46)/* var←c19652 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd76 ))))(var←c21156.f4/* context←v4720 */ , (* (( (ptr) formal←c21220)+15) ), pd76);
      };
SOURCE(1523, 60)
   {
      W2 var←c19748;
      {
         word x77;
         word x78;
         word x79;
         *(float*)&var←c19748.f0 =  - ((
            x77 = (* (( (ptr) formal←c21220)+11) ),  *(float*)&x77
            ) + ((
            x78 = (* (( (ptr) formal←c21220)+13) ),  *(float*)&x78
            ) * (
            x79 = (*  (ptr) &fc71 ),  *(float*)&x79
            )));
         };
      {
         word x80;
         word x81;
         word x82;
         *(float*)&var←c19748.f1 =  - ((
            x80 = (* (( (ptr) formal←c21220)+12) ),  *(float*)&x80
            ) + ((
            x81 = (* (( (ptr) formal←c21220)+14) ),  *(float*)&x81
            ) * (
            x82 = (*  (ptr) &fc71 ),  *(float*)&x82
            )));
         };
      {
         word pd83;
         pd83 = (* (( (ptr) (* (( (ptr) gf←c21188)+46)/* var←c19652 */  ))+18) );
         (void) ( *( (fPt) ((*  (ptr) pd83 ))))(var←c21156.f4/* context←v4720 */ , var←c19748, pd83);
         };
      };
SOURCE(1585, 45)
   {
      word pd84;
      pd84 = (* (( (ptr) (* (( (ptr) gf←c21188)+46)/* var←c19652 */  ))+57) );
      (void) ( *( (fPt) ((*  (ptr) pd84 ))))(var←c21156.f4/* context←v4720 */ , (* (( (ptr) formal←c21220)+4) ), 0, (* (( (ptr) formal←c21220)+5)
          ), pd84);
      };
SOURCE(1632, 32)
   {
      word pd85;
      pd85 = (* (( (ptr) (* (( (ptr) gf←c21188)+46)/* var←c19652 */  ))+65) );
      (void) ( *( (fPt) ((*  (ptr) pd85 ))))(var←c21156.f4/* context←v4720 */ , (*  (W4Pt) (( (ptr) formal←c21220)+11) ), pd85)
      ;
      };
   }

static void Caption←P420(formal←c21284)
   word formal←c21284;
   {
   register ptr gf←c21252 =  (ptr) &globalframe;
   formal←c21284 = (formal←c21284 - 20);
   /* Caption: */ 
SOURCE(1120, 203)
SOURCE(1138, 33)
   {
      word pd86;
      word x87;
      word x89;
      float tf90;
      pd86 = (* (( (ptr) (* (( (ptr) gf←c21252)+46)/* var←c19652 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd86 ))))((* (( (ptr) formal←c21284)+4) ), (
            tf90 = (
               x87 = (*  (ptr) &fc43 ),  *(float*)&x87
               ) / (
               x89 = (*  (ptr) &fc88 ),  *(float*)&x89
               ),  *(word*)&tf90
            ), pd86);
      };
SOURCE(1173, 77)
   {
      word var←c19780;
      {
         word var←c19812;
         {
            word pd91;
            pd91 = (* (( (ptr) (* (( (ptr) gf←c21252)+48)/* var←c19844 */  ))+7) );
            var←c19812 = (word) ( *( (fPt) ((*  (ptr) pd91 ))))((* (( (ptr) gf←c21252)+16) ), 1, pd91);
            };
         {
            word pd92;
            pd92 = (* (( (ptr) (* (( (ptr) gf←c21252)+48)/* var←c19844 */  ))+9) );
            var←c19780 = (word) ( *( (fPt) ((*  (ptr) pd92 ))))(var←c19812, (*  (ptr) &fc93 ), pd92);
            };
         };
      {
         word pd94;
         pd94 = (* (( (ptr) (* (( (ptr) gf←c21252)+46)/* var←c19652 */  ))+30) );
         (void) ( *( (fPt) ((*  (ptr) pd94 ))))((* (( (ptr) formal←c21284)+4) ), var←c19780, pd94);
         };
      };
SOURCE(1252, 36)
   {
      W2 var←c19876;
      var←c19876.f0 = (*  (ptr) &fc88 );
      var←c19876.f1 = (*  (ptr) &fc93 );
      {
         word pd95;
         pd95 = (* (( (ptr) (* (( (ptr) gf←c21252)+46)/* var←c19652 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd95 ))))((* (( (ptr) formal←c21284)+4) ), var←c19876, pd95);
         };
      };
SOURCE(1290, 33)
   {
      word pd96;
      pd96 = (* (( (ptr) (* (( (ptr) gf←c21252)+46)/* var←c19652 */  ))+38) );
      (void) ( *( (fPt) ((*  (ptr) pd96 ))))((* (( (ptr) formal←c21284)+4) ), (* (( (ptr) (*  (ptr) formal←c21284 ))+8) ), 0, 2147483647, 0, pd96)
      ;
      };
   }

static void AISToInterpress←P120(aisName←v4008, ipRef←v4036, width←v4064, height←v4092, caption←v4120)
   word aisName←v4008;
   word ipRef←v4036;
   word width←v4064;
   word height←v4092;
   word caption←v4120;
   {
   register ptr gf←c21316 =  (ptr) &globalframe;
   word info←v4808;
   word pa←v4836;
   word maxSample←v4864;
   word colorOp←v4892;
   word var←c20004;
   word h←v19220;
   /* AISToInterpress: */ 
SOURCE(1928, 616)
SOURCE(2087, 42)
   {
      word pd97;
      pd97 = (* (( (ptr) (* (( (ptr) gf←c21316)+49)/* var←c19908 */  ))+5) );
      info←v4808 = (word) ( *( (fPt) ((*  (ptr) pd97 ))))(aisName←v4008, pd97);
      };
SOURCE(2131, 53)
   {
      word pd98;
      pd98 = (* (( (ptr) (* (( (ptr) gf←c21316)+50)/* var←c19940 */  ))+4) );
      pa←v4836 = (word) ( *( (fPt) ((*  (ptr) pd98 ))))(aisName←v4008, pd98);
      };
SOURCE(2186, 60)
   {
      word pd99;
      pd99 = (* (( (ptr) (* (( (ptr) gf←c21316)+51)/* var←c19972 */  ))+7) );
      maxSample←v4864 = (word) ( *( (fPt) ((*  (ptr) pd99 ))))(pa←v4836, 0, pd99);
      };
SOURCE(2248, 228)
   {
      word pd100;
      float tf101;
      word pd102;
      float tf103;
      h←v19220 = (*  (hPt) (* (( (ptr) info←v4808)+2) ) );
      var←c20004 = h←v19220;
      if ((var←c20004 == 0)) {
         pd100 = (* (( (ptr) (* (( (ptr) gf←c21316)+52)/* var←c20036 */  ))+12) );
         colorOp←v4892 = (word) ( *( (fPt) ((*  (ptr) pd100 ))))((*  (ptr) &fc47 ), (
               tf101 = (float)(unsigned)maxSample←v4864,  *(word*)&tf101
               ), (maxSample←v4864 + 1), 0, pd100);
         }
      else {
         pd102 = (* (( (ptr) (* (( (ptr) gf←c21316)+52)/* var←c20036 */  ))+12) );
         colorOp←v4892 = (word) ( *( (fPt) ((*  (ptr) pd102 ))))((
               tf103 = (float)(unsigned)maxSample←v4864,  *(word*)&tf103
               ), (*  (ptr) &fc47 ), (maxSample←v4864 + 1), 0, pd102);
         };
      };
SOURCE(2478, 66)
   (void) PixelArrayToInterpress←P60(pa←v4836, colorOp←v4892, ipRef←v4036, width←v4064, height←v4092, caption←v4120);
   }

static void ColorAISToInterpress←P180(red←v4180, grn←v4208, blu←v4236, ipRef←v4264, width←v4292, height←v4320, caption←v4348)
   word red←v4180;
   word grn←v4208;
   word blu←v4236;
   word ipRef←v4264;
   word width←v4292;
   word height←v4320;
   word caption←v4348;
   {
   register ptr gf←c21348 =  (ptr) &globalframe;
   word pa←v4936;
   word maxSample←v4964;
   word colorOp←v4992;
   /* ColorAISToInterpress: */ 
SOURCE(2550, 441)
SOURCE(2720, 60)
   {
      word pd104;
      pd104 = (* (( (ptr) (* (( (ptr) gf←c21348)+50)/* var←c19940 */  ))+5) );
      pa←v4936 = (word) ( *( (fPt) ((*  (ptr) pd104 ))))(red←v4180, grn←v4208, blu←v4236, pd104);
      };
SOURCE(2782, 60)
   {
      word pd105;
      pd105 = (* (( (ptr) (* (( (ptr) gf←c21348)+51)/* var←c19972 */  ))+7) );
      maxSample←v4964 = (word) ( *( (fPt) ((*  (ptr) pd105 ))))(pa←v4936, 0, pd105);
      };
SOURCE(2844, 79)
   {
      word pd106;
      float tf107;
      pd106 = (* (( (ptr) (* (( (ptr) gf←c21348)+52)/* var←c20036 */  ))+19) );
      colorOp←v4992 = (word) ( *( (fPt) ((*  (ptr) pd106 ))))((
            tf107 = (float)(unsigned)maxSample←v4964,  *(word*)&tf107
            ), (*  (ptr) &fc47 ), 0, 0, pd106);
      };
SOURCE(2925, 66)
   (void) PixelArrayToInterpress←P60(pa←v4936, colorOp←v4992, ipRef←v4264, width←v4292, height←v4320, caption←v4348);
   }

static void AISToIPCmd←P240(formal←c079, formal←c0173)
   word formal←c079;
   word formal←c0173;
   {
   W6 var←c21380;
   /* declaration of cmd←v9588 skipped */ 
   register ptr gf←c21412 =  (ptr) &globalframe;
   word result←v9632;
   word msg←v9660;
   /* declaration of a←v5036 skipped */ 
   var←c21380.f4/* cmd←v9588 */  = formal←c0173;
   /* AISToIPCmd: */ 
SOURCE(3291, 705)
SOURCE(3291, 705)
   result←v9632 = 0;
SOURCE(3291, 705)
   msg←v9660 = 0;
SOURCE(3329, 56)
   {
      word pd108;
      pd108 = (* (( (ptr) (* (( (ptr) gf←c21412)+53)/* var←c20068 */  ))+6) );
      var←c21380.f5/* a←v5036 */  = (word) ( *( (fPt) ((*  (ptr) pd108 ))))(var←c21380.f4/* cmd←v9588 */ , 0, pd108);
      };
SOURCE(3387, 609)
   {
      word tc109;
      word tc110;
      word pd111;
      word limit112;
      word pd113;
      word limit114;
      if ((((*  (ptr) var←c21380.f5/* a←v5036 */  ) - 4) <= 1)) {
         pd111 = (* (( (ptr) (* (( (ptr) gf←c21412)+47)/* var←c19684 */  ))+8) );
         tc110 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd111 ))))((* ((( (ptr) var←c21380.f5/* a←v5036 */ )+1)+(
                  limit112 = (*  (ptr) var←c21380.f5/* a←v5036 */  ),
                  BCK(2, limit112)
                  )) ), (* (( (ptr) gf←c21412)+13) ), 1, pd111));
         }
      else {
         tc110 =  (word) 0;
         };
      if (tc110) {
         if (((*  (ptr) var←c21380.f5/* a←v5036 */  ) != 5)) {
            tc109 =  (word) 1;
            }
         else {
            pd113 = (* (( (ptr) (* (( (ptr) gf←c21412)+47)/* var←c19684 */  ))+8) );
            tc109 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd113 ))))((* ((( (ptr) var←c21380.f5/* a←v5036 */ )+1)+(
                     limit114 = (*  (ptr) var←c21380.f5/* a←v5036 */  ),
                     BCK(4, limit114)
                     )) ), (* (( (ptr) gf←c21412)+14) ), 1, pd113));
            };
         }
      else {
         tc109 =  (word) 0;
         };
      if (tc109) {
SOURCE(3481, 478)
SOURCE(3483, 431)
         {
            word var←c01;
            {
               word var←c0151;
               var←c0151 = (word) &var←c21380;
               var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q936) ), ( ((word)  (fPt) NoName←Q1116) ), var←c0151);
               };
            if ((var←c01 == 2)) {
               goto lab←L100002;
               };
            };
         goto lab←L100005;
         lab←L100002: ;
SOURCE(3929, 28)
         result←v9632 = (* (( (ptr) gf←c21412)+17) );
         msg←v9660 = (* (( (ptr) gf←c21412)+19) );
         goto lab←L100001;
         lab←L100005: ;
         }
      else {
SOURCE(3966, 30)
         result←v9632 = (* (( (ptr) gf←c21412)+17) );
         msg←v9660 = (* (( (ptr) gf←c21412)+11) );
         goto lab←L100001;
         };
      };
   /* removed tail goto */ 
   lab←L100001: ;
   (*  (ptr) formal←c079 ) = result←v9632;
   (* (( (ptr) formal←c079)+1) ) = msg←v9660;
   return;
   }

static word NoName←Q936(formal←c0141)
   word formal←c0141;
   {
   register ptr gf←c0140 =  (ptr) &globalframe;
SOURCE(3526, 116)
   {
      word comment←v5080;
      word ipRef←v5108;
      W4 i←v5136;
SOURCE(3526, 116)
      if (((*  (ptr) (* (( (ptr) formal←c0141)+5) ) ) == 5)) {
         comment←v5080 = 0;
         }
      else {
         {
            word var←c20132;
            {
               word pd115;
               pd115 = (* (( (ptr) (* (( (ptr) gf←c0140)+47)/* var←c19684 */  ))+24) );
               var←c20132 = (word) ( *( (fPt) ((*  (ptr) pd115 ))))((* (( (ptr) (* (( (ptr) formal←c0141)+4) ))+4) ), 0, (* (( (ptr) gf←c0140)+15)
                   ), pd115);
               };
            {
               word pd116;
               pd116 = (* (( (ptr) (* (( (ptr) gf←c0140)+47)/* var←c19684 */  ))+17) );
               comment←v5080 = (word) ( *( (fPt) ((*  (ptr) pd116 ))))((* (( (ptr) (* (( (ptr) formal←c0141)+4) ))+4) ), 0, var←c20132, pd116)
               ;
               };
            };
         };
SOURCE(3644, 69)
      {
         word pd117;
         word limit118;
         pd117 = (* (( (ptr) (* (( (ptr) gf←c0140)+45)/* var←c19588 */  ))+5) );
         ipRef←v5108 = (word) ( *( (fPt) ((*  (ptr) pd117 ))))((* ((( (ptr) (* (( (ptr) formal←c0141)+5) ))+1)+(
                  limit118 = (*  (ptr) (* (( (ptr) formal←c0141)+5) ) ),
                  BCK(1, limit118)
                  )) ), (* (( (ptr) gf←c0140)+18) ), pd117);
         };
SOURCE(3715, 25)
      {
         word limit119;
         (void) Parse←P300((word) &i←v5136, (* ((( (ptr) (* (( (ptr) formal←c0141)+5) ))+1)+(
                  limit119 = (*  (ptr) (* (( (ptr) formal←c0141)+5) ) ),
                  BCK(3, limit119)
                  )) ));
         };
SOURCE(3742, 141)
      if ((0 != i←v5136.f0)) {
SOURCE(3758, 80)
         {
            word x121;
            word x122;
            float tf123;
            word x125;
            word x126;
            float tf127;
            (void) ColorAISToInterpress←P180(i←v5136.f1, i←v5136.f2, i←v5136.f3, ipRef←v5108, (
                  tf123 = (
                     x121 = (*  (ptr) &fc120 ),  *(float*)&x121
                     ) * (
                     x122 = (*  (ptr) &fc43 ),  *(float*)&x122
                     ),  *(word*)&tf123
                  ), (
                  tf127 = (
                     x125 = (*  (ptr) &fc124 ),  *(float*)&x125
                     ) * (
                     x126 = (*  (ptr) &fc43 ),  *(float*)&x126
                     ),  *(word*)&tf127
                  )
               , comment←v5080);
            };
         }
      else {
SOURCE(3838, 45)
         {
            word x128;
            word x129;
            float tf130;
            word x131;
            word x132;
            float tf133;
            (void) AISToInterpress←P120(i←v5136.f1, ipRef←v5108, (
                  tf130 = (
                     x128 = (*  (ptr) &fc120 ),  *(float*)&x128
                     ) * (
                     x129 = (*  (ptr) &fc43 ),  *(float*)&x129
                     ),  *(word*)&tf130
                  ), (
                  tf133 = (
                     x131 = (*  (ptr) &fc124 ),  *(float*)&x131
                     ) * (
                     x132 = (*  (ptr) &fc43 ),  *(float*)&x132
                     ),  *(word*)&tf133
                  ), comment←v5080);
            };
         };
SOURCE(3885, 29)
      {
         word pd134;
         pd134 = (* (( (ptr) (* (( (ptr) gf←c0140)+45)/* var←c19588 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd134 ))))(ipRef←v5108, pd134);
         };
      };
   return(0);
   }

static void Parse←P300(formal←c097, fileName←v4516)
   word formal←c097;
   word fileName←v4516;
   {
   W8 var←c21444;
   register ptr gf←c21476 =  (ptr) &globalframe;
   W4 i←v4560;
   /* declaration of var←c20292 skipped */ 
   /* declaration of var←c20324 skipped */ 
   word name←v5236;
   word suffix←v5264;
   /* Parse: */ 
SOURCE(4090, 1186)
   {
      word tmpAddr135;
      tmpAddr135 = (word) (( (ptr) &var←c21444)+4)/* var←c20292 */ ;
      (*  (ptr) tmpAddr135 ) = ( ((word)  (fPt) FileExists←P588) );
      (* (( (ptr) tmpAddr135) + 1) ) = 1;
      };
   {
      word tmpAddr136;
      tmpAddr136 = (word) (( (ptr) &var←c21444)+6)/* var←c20324 */ ;
      (*  (ptr) tmpAddr136 ) = ( ((word)  (fPt) FileChoice←P528) );
      (* (( (ptr) tmpAddr136) + 1) ) = 1;
      };
SOURCE(4090, 1186)
   i←v4560.f0 = 0;
   i←v4560.f1 = 0;
   i←v4560.f2 = 0;
   i←v4560.f3 = 0;
SOURCE(4683, 52)
   {
      word pd137;
      pd137 = (* (( (ptr) (* (( (ptr) gf←c21476)+55)/* var←c20356 */  ))+5) );
      name←v5236 = (word) ( *( (fPt) ((*  (ptr) pd137 ))))(fileName←v4516, pd137);
      };
SOURCE(4737, 69)
   {
      word var←c20388;
      {
         word pd138;
         pd138 = (* (( (ptr) (* (( (ptr) gf←c21476)+55)/* var←c20356 */  ))+13) );
         var←c20388 = (word) ( *( (fPt) ((*  (ptr) pd138 ))))(name←v5236, pd138);
         };
      {
         word pd139;
         pd139 = (* (( (ptr) (* (( (ptr) gf←c21476)+55)/* var←c20356 */  ))+12) );
         suffix←v5264 = (word) ( *( (fPt) ((*  (ptr) pd139 ))))(var←c20388, 46, pd139);
         };
      };
   {
      word var←c20516;
SOURCE(4808, 88)
      {
         word tc140;
         word pd141;
         pd141 = (* (( (ptr) (* (( (ptr) gf←c21476)+47)/* var←c19684 */  ))+8) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd141 ))))(suffix←v5264, (* (( (ptr) gf←c21476)+20) ), 0, pd141))) {
            tc140 =  (word) (0 != (word) FileExists←P588(name←v5236, (word) (( (bPt) &var←c21444)+16)/* var←c20292 */ ));
            }
         else {
            tc140 =  (word) 0;
            };
         if (tc140) {
SOURCE(4871, 17)
            i←v4560.f1 = name←v5236;
SOURCE(4890, 6)
            goto lab←L100006;
            };
         };
SOURCE(4899, 41)
      {
         word var←c20420;
         var←c20420 = (word) FileChoice←P528(name←v5236, (* (( (ptr) gf←c21476)+21) ), (* (( (ptr) gf←c21476)+22) ), 0, (word) (( (bPt) &var←c21444)+24)
            /* var←c20324 */ );
         i←v4560.f1 = var←c20420;
         };
SOURCE(4942, 50)
      {
         word var←c20452;
         var←c20452 = (word) FileChoice←P528(name←v5236, (* (( (ptr) gf←c21476)+23) ), (* (( (ptr) gf←c21476)+24) ), (* (( (ptr) gf←c21476)+25)
             ), (word) (( (bPt) &var←c21444)+24)/* var←c20324 */ );
         i←v4560.f2 = var←c20452;
         };
SOURCE(4994, 49)
      {
         word var←c20484;
         var←c20484 = (word) FileChoice←P528(name←v5236, (* (( (ptr) gf←c21476)+26) ), (* (( (ptr) gf←c21476)+27) ), (* (( (ptr) gf←c21476)+28)
             ), (word) (( (bPt) &var←c21444)+24)/* var←c20324 */ );
         i←v4560.f3 = var←c20484;
         };
SOURCE(5045, 90)
      if ( (  ( (i←v4560.f1 != 0) ? (i←v4560.f2 != 0) : 0 )  ? (i←v4560.f3 != 0) : 0 ) ) {
SOURCE(5113, 14)
         i←v4560.f0 = 1;
SOURCE(5129, 6)
         goto lab←L100006;
         };
SOURCE(5138, 93)
      {
         word pd142;
         pd142 = (* (( (ptr) (* (( (ptr) gf←c21476)+47)/* var←c19684 */  ))+6) );
         var←c20516 = (word) ( *( (fPt) ((*  (ptr) pd142 ))))(name←v5236, (* (( (ptr) gf←c21476)+29) ), pd142);
         };
      if ((0 != (word) FileExists←P588(var←c20516, (word) (( (bPt) &var←c21444)+16)/* var←c20292 */ ))) {
SOURCE(5185, 38)
         {
            word var←c20548;
            {
               word pd143;
               pd143 = (* (( (ptr) (* (( (ptr) gf←c21476)+47)/* var←c19684 */  ))+6) );
               var←c20548 = (word) ( *( (fPt) ((*  (ptr) pd143 ))))(name←v5236, (* (( (ptr) gf←c21476)+29) ), pd143);
               };
            i←v4560.f1 = var←c20548;
            };
SOURCE(5225, 6)
         goto lab←L100006;
         };
SOURCE(5234, 42)
      if ((0 != (word) FileExists←P588(name←v5236, (word) (( (bPt) &var←c21444)+16)/* var←c20292 */ ))) {
SOURCE(5259, 17)
         i←v4560.f1 = name←v5236;
         };
      };
   /* removed tail goto */ 
   lab←L100006: ;
   (*  (W4Pt) formal←c097 ) = i←v4560;
   return;
   }

static word FileChoice←P528(r←v5340, a←v5368, b←v5396, c←v5424, formal←c21540)
   word r←v5340;
   word a←v5368;
   word b←v5396;
   word c←v5424;
   word formal←c21540;
   {
   W6 var←c21508;
   word ret←v5468;
   /* declaration of var←c20580 skipped */ 
   formal←c21540 = (formal←c21540 - 24);
   var←c21508.f0 = formal←c21540;
   /* FileChoice: */ 
SOURCE(4145, 409)
   {
      word tmpAddr144;
      tmpAddr144 = (word) (( (ptr) &var←c21508)+4)/* var←c20580 */ ;
      (*  (ptr) tmpAddr144 ) = ( ((word)  (fPt) AISSuffix←P648) );
      (* (( (ptr) tmpAddr144) + 1) ) = 1;
      };
SOURCE(4145, 409)
   ret←v5468 = 0;
   {
      word var←c20612;
      word var←c20676;
      word var←c20740;
SOURCE(4339, 48)
      {
         word var←c20644;
         var←c20644 = (word) AISSuffix←P648(r←v5340, a←v5368, (word) (( (bPt) &var←c21508)+16)/* var←c20580 */ );
         ret←v5468 = var←c20644;
         var←c20612 = var←c20644;
         };
      if ((0 != (word) FileExists←P588(var←c20612, (word) (( (bPt) formal←c21540)+16)))) {
SOURCE(4381, 6)
         return(ret←v5468);
         };
SOURCE(4389, 27)
      if ((b←v5396 == 0)) {
SOURCE(4405, 11)
         return(0);
         };
SOURCE(4418, 48)
      {
         word var←c20708;
         var←c20708 = (word) AISSuffix←P648(r←v5340, b←v5396, (word) (( (bPt) &var←c21508)+16)/* var←c20580 */ );
         ret←v5468 = var←c20708;
         var←c20676 = var←c20708;
         };
      if ((0 != (word) FileExists←P588(var←c20676, (word) (( (bPt) formal←c21540)+16)))) {
SOURCE(4460, 6)
         return(ret←v5468);
         };
SOURCE(4468, 27)
      if ((c←v5424 == 0)) {
SOURCE(4484, 11)
         return(0);
         };
SOURCE(4497, 57)
      {
         word var←c20772;
         var←c20772 = (word) AISSuffix←P648(r←v5340, c←v5424, (word) (( (bPt) &var←c21508)+16)/* var←c20580 */ );
         ret←v5468 = var←c20772;
         var←c20740 = var←c20772;
         };
      if ((0 == (word) FileExists←P588(var←c20740, (word) (( (bPt) formal←c21540)+16)))) {
SOURCE(4543, 11)
         return(0);
         };
      };
SOURCE(4145, 409)
   return(ret←v5468);
   }

static word AISSuffix←P648(base←v5676, suffix←v5704, formal←c21604)
   word base←v5676;
   word suffix←v5704;
   word formal←c21604;
   {
   register ptr gf←c21572 =  (ptr) &globalframe;
   word var←c5748;
   formal←c21604 = (formal←c21604 - 16);
   /* AISSuffix: */ 
SOURCE(4217, 117)
SOURCE(4273, 61)
   {
      word var←c0153;
      {
         W2 var←c20836;
         W2 var←c20868;
         W2 var←c0152;
         var←c20836.f0 = 11;
         var←c20836.f1 = base←v5676;
         var←c20868.f0 = 11;
         var←c20868.f1 = suffix←v5704;
         (*  (ptr) (word) &var←c0152 ) = 0;
         (* (( (ptr) (word) &var←c0152) + 1) ) = 0;
         {
            word pd145;
            pd145 = (* (( (ptr) (* (( (ptr) gf←c21572)+56)/* var←c20932 */  ))+62) );
            var←c0153 = (word) ( *( (fPt) ((*  (ptr) pd145 ))))((* (( (ptr) gf←c21572)+30) ), var←c20836, var←c20868, var←c0152, pd145)
            ;
            };
         };
      return(var←c0153);
      };
   }

static word FileExists←P588(formal←c0174, formal←c21700)
   word formal←c0174;
   word formal←c21700;
   {
   W13 var←c21636;
   /* declaration of name←v5528 skipped */ 
   register ptr gf←c21668 =  (ptr) &globalframe;
   /* declaration of ok←v5572 skipped */ 
   formal←c21700 = (formal←c21700 - 16);
   (* (( (ptr) &var←c21636)+4)/* name←v5528 */  ) = formal←c0174;
   (*  (ptr) &var←c21636 ) = formal←c21700;
   /* FileExists: */ 
SOURCE(4559, 107)
SOURCE(4559, 107)
   (* (( (ptr) &var←c21636)+5)/* ok←v5572 */  ) = 1;
SOURCE(4619, 47)
SOURCE(4619, 47)
   {
      W6 var←c20996;
      {
         /* declaration of var←c02 skipped */ 
         (* (( (ptr) &var←c21636)+6)/* var←c02 */  ) = (* (( (ptr) (* (( (ptr) gf←c21668)+57)/* var←c20964 */  ))+12) );
         {
            /* declaration of var←c03 skipped */ 
            {
               word var←c04;
               {
                  word var←c0154;
                  var←c0154 = (word) &var←c21636;
                  var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q996) ), ( ((word)  (fPt) NoName←Q1056) ), var←c0154);
                  };
               if ((var←c04 == 3)) {
                  goto lab←L100008;
                  };
               };
            var←c20996 = (*  (W6Pt) (( (ptr) &var←c21636)+7)/* var←c03 */  );
            };
         };
      };
   lab←L100008: ;
SOURCE(4559, 107)
   return((* (( (ptr) &var←c21636)+5)/* ok←v5572 */  ));
   }

static word NoName←Q996(formal←c0148)
   word formal←c0148;
   {
SOURCE(4619, 47)
   {
      word pd146;
      pd146 = (* (( (ptr) formal←c0148)+6) );
      (void) ( *( (fPt) ((*  (ptr) pd146 ))))((word) (( (bPt) formal←c0148)+28), (* (( (ptr) formal←c0148)+4) ), 2147483647, 1, 0, pd146)
      ;
      };
   return(0);
   }

static void NoName←Q1056(formal←c0124, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0124;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0149 =  (ptr) &globalframe;
   if ((formal←c200005 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0149)+57)/* var←c20964 */  ))+4) ) ))) {
      {
         W4 error←v19040;
         error←v19040 = (*  (W4Pt) formal←c200007 );
SOURCE(4656, 10)
         (* (( (ptr) formal←c200004)+5) ) = 0;
SOURCE(4668, 8)
         (*  (ptr) formal←c0124 ) = 2;
         (* (( (ptr) formal←c0124)+1) ) = 3;
         return;
         };
      };
   (*  (ptr) formal←c0124 ) = 0;
   (* (( (ptr) formal←c0124)+1) ) = 0;
   return;
   }

static void NoName←Q1116(formal←c0129, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0129;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0150 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0150)+54)/* var←c20100 */  ))+9) )) || (formal←c200001 == (* (( (ptr) (* (
         ( (ptr) gf←c0150)+49)/* var←c19908 */  ))+4) ))) {
SOURCE(3516, 8)
      (*  (ptr) formal←c0129 ) = 2;
      (* (( (ptr) formal←c0129)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0129 ) = 0;
   (* (( (ptr) formal←c0129)+1) ) = 0;
   return;
   }

/* file: AISConvertersImpl, module: AISConvertersImpl, compiled at: March 10, 1992 11:56:13 am PST */ 
extern void XR←install←AISConvertersImpl() {
   NoName←Q876();
   }
extern void XR←run←AISConvertersImpl() { XR←Start(&globalframe); }