/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 28, 1993 10:14:26 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerBrickImpl, module: ImagerBrickImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [375539787,3981983788] ImagerBrickImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W7 r;} W15;
static float fc1 = 0.314156;
static float fc2 = 0.271828;
#define SOURCE(p, l) /* source p, l */
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define INEG(x)  ( (word) ( - ((int) (word) (x)) ) )
#define IABS(i) ( ((int)(word)(i) > 0) ? (i) : (word)(-(int)(word)(i)) )
static float fc17 = 0.0;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc25 = 0.015625;
static float fc28 = 1.0;
static float fc29 = -1.0;
static float fc80 = 0.5;
static float fc85 = 2.0;
static float fc88 = 180.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#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 void NoName←Q1500();
static void ImagerBrickImpl←P0();
static void ExtendedEuclid←P60();
static word Sig←P120();
static void BrickShapeFromDeltas←P180();
static void BrickSpecFromTransformedRectangle←P360();
static void BrickFromDotScreen←P420();
static word Filter←P684();
static void BrickFromFilter←P480();
static word Encode←P744();
static word Equidistribute←P804();
static word Compare←P864();
static struct {unsigned f; char r[20];} string3 = {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[4];} string4 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\026bHK\300\355X@,Ap\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\026\142\110\113\300\355\130\100\054\100\164\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\144\364\322\150\300\206\136\277\046\100\150\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\247\031\224\326\300\123\162\224\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\041\257\203\366\300\322\161\356\007\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\361\072\110\004\300\054\212\055\367\100\150\000\000"};
static struct {
   word f0[30]; 
   } globalframe = {
   {0}
   };

static void NoName←Q1500()
   {
   register ptr gf←c0169 =  (ptr) &globalframe;
   word var←c15168;
   (* (( (ptr) gf←c0169)+4) ) = (*  (ptr) &fc1 );
   (* (( (ptr) gf←c0169)+5) ) = (*  (ptr) &fc2 );
   (* (( (ptr) gf←c0169)+20) ) = ( ((word)  (fPt) ImagerBrickImpl←P0) );
   (* (( (ptr) gf←c0169)+18) ) = ( ((word)  (fPt) ExtendedEuclid←P60) );
   (* (( (ptr) gf←c0169)+16) ) = ( ((word)  (fPt) Sig←P120) );
   (* (( (ptr) gf←c0169)+14) ) = ( ((word)  (fPt) BrickShapeFromDeltas←P180) );
   (* (( (ptr) gf←c0169)+12) ) = ( ((word)  (fPt) BrickSpecFromTransformedRectangle←P360) );
   (* (( (ptr) gf←c0169)+10) ) = ( ((word)  (fPt) BrickFromDotScreen←P420) );
   (* (( (ptr) gf←c0169)+8) ) = ( ((word)  (fPt) BrickFromFilter←P480) );
   (* (( (ptr) gf←c0169)+6) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0169)+7) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (void) XR←DeclareGlobalFrame((word) "ImagerBrickImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string6)), (word) (
         ( (bPt) gf←c0169)+80)/* var←c13504 */ );
   var←c15168 = (word) XR←ImportInterface((word) "List", (word) XR←GetTypeIndexS((word) (&string7)), 28);
   (* (( (ptr) gf←c0169)+27)/* var←c14976 */  ) = var←c15168;
   (void) XR←ImportProcS(var←c15168, 67639810);
   (void) XR←ImportProcS(var←c15168, 67639042);
   var←c15168 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string8)), 55);
   (* (( (ptr) gf←c0169)+22)/* var←c13696 */  ) = var←c15168;
   (void) XR←ImportProcS(var←c15168, 135013890);
   (void) XR←ImportProcS(var←c15168, 67372289);
   (void) XR←ImportProcS(var←c15168, 67371777);
   (void) XR←ImportProcS(var←c15168, 68160004);
   (void) XR←ImportProcS(var←c15168, 68681734);
   (void) XR←ImportProcS(var←c15168, 135013378);
   var←c15168 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string9)), 11);
   (* (( (ptr) gf←c0169)+24)/* var←c13888 */  ) = var←c15168;
   (void) XR←ImportProcS(var←c15168, 67371521);
   var←c15168 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string10)), 36);
   (* (( (ptr) gf←c0169)+25)/* var←c14432 */  ) = var←c15168;
   (void) XR←ImportProcS(var←c15168, 67373313);
   var←c15168 = (word) XR←ImportInterface((word) "Vector2", (word) XR←GetTypeIndexS((word) (&string11)), 22);
   (* (( (ptr) gf←c0169)+23)/* var←c13792 */  ) = var←c15168;
   (void) XR←ImportProcS(var←c15168, 135266306);
   (void) XR←ImportProcS(var←c15168, 68161538);
   (void) XR←ImportProcS(var←c15168, 135266818);
   var←c15168 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string12)), 60);
   (* (( (ptr) gf←c0169)+26)/* var←c14624 */  ) = var←c15168;
   (void) XR←ImportProcS(var←c15168, 1320708);
   (void) XR←ImportProcS(var←c15168, 273409);
   (void) XR←ImportProcS(var←c15168, 68685571);
   var←c15168 = (word) XR←ImportInterface((word) "ImagerSys", (word) XR←GetTypeIndexS((word) (&string13)), 15);
   (* (( (ptr) gf←c0169)+28)/* var←c15072 */  ) = var←c15168;
   (void) XR←ImportProcS(var←c15168, 67634434);
   var←c15168 = (word) XR←ExportInterface((word) "ImagerBrick", (word) XR←GetTypeIndexS((word) (&string14)), 4);
   (* (( (ptr) gf←c0169)+29)/* var←c15200 */  ) = var←c15168;
   (void) XR←ExportProcS(var←c15168, (word) (( (bPt) gf←c0169)+56)/* var←c13408 */ , 202375172, (word) "BrickShapeFromDeltas")
   ;
   (void) XR←ExportProcS(var←c15168, (word) (( (bPt) gf←c0169)+48)/* var←c13376 */ , 269746437, (word) "BrickSpecFromTransformedRectangle")
   ;
   (void) XR←ExportProcS(var←c15168, (word) (( (bPt) gf←c0169)+40)/* var←c13344 */ , 203424264, (word) "BrickFromDotScreen")
   ;
   (void) XR←ExportProcS(var←c15168, (word) (( (bPt) gf←c0169)+32)/* var←c13312 */ , 203162372, (word) "BrickFromFilter");
   }

static void ImagerBrickImpl←P0(formal←c020, formal←c019)
   word formal←c020;
   word formal←c019;
   {
   /* ImagerBrickImpl: */ 
SOURCE(432, 6177)
SOURCE(3671, 31)
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   }

static void ExtendedEuclid←P60(formal←c034, u←v3544, v←v3572)
   word formal←c034;
   word u←v3544;
   word v←v3572;
   {
   W3 var←c3616;
   word u1←v5416 = 1;
   word u2←v5444 = 0;
   word u3←v5472;
   word v1←v5500 = 0;
   word v2←v5528 = 1;
   word v3←v5556;
   /* ExtendedEuclid: */ 
SOURCE(772, 382)
SOURCE(865, 11)
   u3←v5472 = u←v3544;
SOURCE(912, 11)
   v3←v5556 = v←v3572;
SOURCE(925, 187)
   lab←L100003: ;
   if ((v3←v5556 != 0)) {
      }
   else {
      goto lab←L100001;
      };
   {
      word quotient←v5600;
      word t1←v5628;
      word t2←v5656;
      word t3←v5684;
SOURCE(941, 21)
      quotient←v5600 = (u3←v5472 / v3←v5556);
SOURCE(964, 30)
      t1←v5628 = (u1←v5416 - IOP2( * ,  (int)v1←v5500,  (int)quotient←v5600));
SOURCE(996, 30)
      t2←v5656 = (u2←v5444 - IOP2( * ,  (int)v2←v5528,  (int)quotient←v5600));
SOURCE(1028, 30)
      t3←v5684 = (u3←v5472 - (v3←v5556 * quotient←v5600));
SOURCE(1060, 7)
      u1←v5416 = v1←v5500;
SOURCE(1069, 7)
      u2←v5444 = v2←v5528;
SOURCE(1078, 7)
      u3←v5472 = v3←v5556;
SOURCE(1087, 7)
      v1←v5500 = t1←v5628;
SOURCE(1096, 7)
      v2←v5528 = t2←v5656;
SOURCE(1105, 7)
      v3←v5556 = SGNCK(t3←v5684);
      };
   goto lab←L100003;
   lab←L100001: ;
SOURCE(1123, 31)
   var←c3616.f0 = u1←v5416;
   var←c3616.f1 = u2←v5444;
   var←c3616.f2 = u3←v5472;
   /* removed tail goto */ 
   (*  (W3Pt) formal←c034 ) = var←c3616;
   return;
   }

static word Sig←P120(a←v3676, b←v3704)
   word a←v3676;
   word b←v3704;
   {
   word var←c3748;
   /* Sig: */ 
SOURCE(1158, 71)
SOURCE(1197, 32)
   if (( (int)a←v3676 <  (int)0)) {
      return(INEG(b←v3704));
      }
   else {
      return(b←v3704);
      };
   }

static void BrickShapeFromDeltas←P180(formal←c049, s0←v3808, f0←v3836, s1←v3864, f1←v3892)
   word formal←c049;
   word s0←v3808;
   word f0←v3836;
   word s1←v3864;
   word f1←v3892;
   {
   W3 var←c3936;
   word area←v5728;
   W3 gcd←v5756;
   word sSize←v5784;
   word fSize←v5812;
   word phase←v5840;
   /* BrickShapeFromDeltas: */ 
SOURCE(1233, 459)
SOURCE(1314, 51)
   {
      word x15;
      area←v5728 = (
         x15 = (IOP2( * ,  (int)s0←v3808,  (int)f1←v3892) - IOP2( * ,  (int)s1←v3864,  (int)f0←v3836)),
         IABS(x15)
         );
      };
SOURCE(1396, 51)
   (void) ExtendedEuclid←P60((word) &gcd←v5756, IABS(s0←v3808), IABS(s1←v3864));
SOURCE(1449, 19)
   sSize←v5784 = gcd←v5756.f2;
SOURCE(1470, 23)
   {
      word idx16;
      fSize←v5812 = (
         idx16 = (word) (area←v5728 / sSize←v5784),
         SGNCK(idx16)
         );
      };
SOURCE(1495, 60)
   phase←v5840 = (IOP2( * ,  (int)(word) Sig←P120(s0←v3808, f0←v3836),  (int)gcd←v5756.f0) + IOP2( * ,  (int)(word) Sig←P120(
         s1←v3864, f1←v3892),  (int)gcd←v5756.f1));
SOURCE(1557, 48)
   lab←L100007: ;
   if (( (int)phase←v5840 <  (int)0)) {
      }
   else {
      goto lab←L100005;
      };
SOURCE(1576, 29)
   phase←v5840 = (phase←v5840 + fSize←v5812);
   goto lab←L100007;
   lab←L100005: ;
SOURCE(1607, 53)
   lab←L100010: ;
   if (( (int)phase←v5840 >=  (int)fSize←v5812)) {
      }
   else {
      goto lab←L100008;
      };
SOURCE(1631, 29)
   phase←v5840 = (phase←v5840 - fSize←v5812);
   goto lab←L100010;
   lab←L100008: ;
SOURCE(1662, 30)
   var←c3936.f0 = sSize←v5784;
   var←c3936.f1 = SGNCK(fSize←v5812);
   var←c3936.f2 = SGNCK(phase←v5840);
   /* removed tail goto */ 
   (*  (W3Pt) formal←c049 ) = var←c3936;
   return;
   }

static void BrickSpecFromTransformedRectangle←P360(formal←c097, w←v4232, h←v4260, clientToDevice←v4288, allowedRelativeError←v4316, minLevels←v4344)
   word formal←c097;
   word w←v4232;
   word h←v4260;
   word clientToDevice←v4288;
   word allowedRelativeError←v4316;
   word minLevels←v4344;
   {
   register ptr gf←c15232 =  (ptr) &globalframe;
   W4 var←c4388;
   W4 v←v5884;
   W4 vMul←v5912;
   word allowSqr←v5940;
   word n0←v5968 = 1;
   word n1←v5996 = 1;
   /* BrickSpecFromTransformedRectangle: */ 
SOURCE(1902, 1666)
SOURCE(2063, 145)
   {
      W2 var←c058;
      {
         W2 var←c13664;
         var←c13664.f0 = w←v4232;
         var←c13664.f1 = (*  (ptr) &fc17 );
         {
            word pd18;
            pd18 = (* (( (ptr) (* (( (ptr) gf←c15232)+22)/* var←c13696 */  ))+40) );
            (void) ( *( (fPt) ((*  (ptr) pd18 ))))((word) &var←c058, clientToDevice←v4288, var←c13664, pd18);
            };
         };
      (*  (W2Pt) &v←v5884 ) = var←c058;
      };
   {
      W2 var←c060;
      {
         W2 var←c13760;
         var←c13760.f0 = (*  (ptr) &fc17 );
         var←c13760.f1 = h←v4260;
         {
            word pd19;
            pd19 = (* (( (ptr) (* (( (ptr) gf←c15232)+22)/* var←c13696 */  ))+40) );
            (void) ( *( (fPt) ((*  (ptr) pd19 ))))((word) &var←c060, clientToDevice←v4288, var←c13760, pd19);
            };
         };
      (*  (W2Pt) (( (ptr) &v←v5884)+2) ) = var←c060;
      };
SOURCE(2210, 29)
   vMul←v5912 = v←v5884;
SOURCE(2241, 58)
   {
      word x20;
      word x21;
      *(float*)&allowSqr←v5940 = (
         x20 = allowedRelativeError←v4316,  *(float*)&x20
         ) * (
         x21 = allowedRelativeError←v4316,  *(float*)&x21
         );
      };
SOURCE(2327, 190)
   {
      float tf22;
      word pd23;
      word x24;
      word x26;
      pd23 = (* (( (ptr) (* (( (ptr) gf←c15232)+23)/* var←c13792 */  ))+20) );
      if ((FABS((
            x24 = (word) ( *( (fPt) ((*  (ptr) pd23 ))))((*  (W2Pt) &v←v5884 ), (*  (W2Pt) (( (ptr) &v←v5884)+2) ), pd23),  *(float*)&x24
            ), tf22) < (
         x26 = (*  (ptr) &fc25 ),  *(float*)&x26
         ))) {
SOURCE(2379, 138)
         {
            W4 var←c13856;
            {
               W4 var←c13824;
               var←c13824.f0 = 1;
               var←c13824.f1 = 2;
               var←c13824.f2 = 1;
               {
                  word pd27;
                  pd27 = (* (( (ptr) (* (( (ptr) gf←c15232)+22)/* var←c13696 */  ))+4) );
                  var←c13824.f3 = (word) ( *( (fPt) ((*  (ptr) pd27 ))))((*  (ptr) &fc28 ), (*  (ptr) &fc29 ), (* (( (ptr) clientToDevice←v4288)+2)
                      ), (*  (ptr) &fc28 ), (*  (ptr) &fc28 ), (* (( (ptr) clientToDevice←v4288)+5) ), pd27);
                  };
               var←c13856 = var←c13824;
               };
            var←c4388 = var←c13856;
            goto lab←L100011;
            };
         };
      };
SOURCE(2520, 1048)
   lab←L100014: ;
SOURCE(2520, 1048)
   {
      word v0x←v6112;
      word v0y←v6140;
      word v1x←v6168;
      word v1y←v6196;
      word var←c13920;
      W2 u←v13220;
      W2 v←v13248;
      word var←c14048;
      W2 v←v13004;
      word var←c0180;
      word var←c14112;
      W2 u←v13100;
      W2 v←v13128;
      word var←c14240;
      W2 v←v12956;
      word var←c0181;
SOURCE(2523, 32)
      {
         word pd30;
         pd30 = (* (( (ptr) (* (( (ptr) gf←c15232)+24)/* var←c13888 */  ))+6) );
         v0x←v6112 = (word) ( *( (fPt) ((*  (ptr) pd30 ))))(vMul←v5912.f0, pd30);
         };
SOURCE(2557, 32)
      {
         word pd31;
         pd31 = (* (( (ptr) (* (( (ptr) gf←c15232)+24)/* var←c13888 */  ))+6) );
         v0y←v6140 = (word) ( *( (fPt) ((*  (ptr) pd31 ))))(vMul←v5912.f1, pd31);
         };
SOURCE(2591, 32)
      {
         word pd32;
         pd32 = (* (( (ptr) (* (( (ptr) gf←c15232)+24)/* var←c13888 */  ))+6) );
         v1x←v6168 = (word) ( *( (fPt) ((*  (ptr) pd32 ))))(vMul←v5912.f2, pd32);
         };
SOURCE(2625, 32)
      {
         word pd33;
         pd33 = (* (( (ptr) (* (( (ptr) gf←c15232)+24)/* var←c13888 */  ))+6) );
         v1y←v6196 = (word) ( *( (fPt) ((*  (ptr) pd33 ))))(vMul←v5912.f3, pd33);
         };
      {
         word x47;
         word x48;
         u←v13220 = (*  (W2Pt) &vMul←v5912 );
         {
            float tf34;
            v←v13248.f0 = (
               tf34 = (float)(int)v0x←v6112,  *(word*)&tf34
               );
            };
         {
            float tf35;
            v←v13248.f1 = (
               tf35 = (float)(int)v0y←v6140,  *(word*)&tf35
               );
            };
SOURCE(1822, 34)
         {
            word var←c14016;
            W2 v←v13052;
            {
               word pd36;
               pd36 = (* (( (ptr) (* (( (ptr) gf←c15232)+23)/* var←c13792 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd36 ))))((word) &v←v13052, u←v13220, v←v13248, pd36);
               };
SOURCE(1745, 24)
            {
               word x37;
               word x38;
               word x39;
               word x40;
               *(float*)&var←c14016 = ((
                  x37 = v←v13052.f0,  *(float*)&x37
                  ) * (
                  x38 = v←v13052.f0,  *(float*)&x38
                  )) + ((
                  x39 = v←v13052.f1,  *(float*)&x39
                  ) * (
                  x40 = v←v13052.f1,  *(float*)&x40
                  ));
               };
            var←c13920 = var←c14016;
            };
         v←v13004 = (*  (W2Pt) &vMul←v5912 );
SOURCE(1745, 24)
         {
            word x41;
            word x42;
            word x43;
            word x44;
            *(float*)&var←c14048 = ((
               x41 = v←v13004.f0,  *(float*)&x41
               ) * (
               x42 = v←v13004.f0,  *(float*)&x42
               )) + ((
               x43 = v←v13004.f1,  *(float*)&x43
               ) * (
               x44 = v←v13004.f1,  *(float*)&x44
               ));
            };
         {
            word x45;
            word x46;
            *(float*)&var←c0180 = (
               x45 = var←c14048,  *(float*)&x45
               ) * (
               x46 = allowSqr←v5940,  *(float*)&x46
               );
            };
         if (((
            x47 = var←c13920,  *(float*)&x47
            ) > (
            x48 = var←c0180,  *(float*)&x48
            ))) {
SOURCE(2736, 36)
            {
               W2 var←c14080;
               {
                  word pd49;
                  pd49 = (* (( (ptr) (* (( (ptr) gf←c15232)+23)/* var←c13792 */  ))+4) );
                  (void) ( *( (fPt) ((*  (ptr) pd49 ))))((word) &var←c14080, (*  (W2Pt) &v←v5884 ), (*  (W2Pt) &vMul←v5912 ), pd49);
                  };
               (*  (W2Pt) &vMul←v5912 ) = var←c14080;
               };
SOURCE(2774, 11)
            n0←v5968 = (n0←v5968 + 1);
            }
         else {
            {
               word x63;
               word x64;
               u←v13100 = (*  (W2Pt) (( (ptr) &vMul←v5912)+2) );
               {
                  float tf50;
                  v←v13128.f0 = (
                     tf50 = (float)(int)v1x←v6168,  *(word*)&tf50
                     );
                  };
               {
                  float tf51;
                  v←v13128.f1 = (
                     tf51 = (float)(int)v1y←v6196,  *(word*)&tf51
                     );
                  };
SOURCE(1822, 34)
               {
                  word var←c14208;
                  W2 v←v13176;
                  {
                     word pd52;
                     pd52 = (* (( (ptr) (* (( (ptr) gf←c15232)+23)/* var←c13792 */  ))+6) );
                     (void) ( *( (fPt) ((*  (ptr) pd52 ))))((word) &v←v13176, u←v13100, v←v13128, pd52);
                     };
SOURCE(1745, 24)
                  {
                     word x53;
                     word x54;
                     word x55;
                     word x56;
                     *(float*)&var←c14208 = ((
                        x53 = v←v13176.f0,  *(float*)&x53
                        ) * (
                        x54 = v←v13176.f0,  *(float*)&x54
                        )) + ((
                        x55 = v←v13176.f1,  *(float*)&x55
                        ) * (
                        x56 = v←v13176.f1,  *(float*)&x56
                        ));
                     };
                  var←c14112 = var←c14208;
                  };
               v←v12956 = (*  (W2Pt) (( (ptr) &vMul←v5912)+2) );
SOURCE(1745, 24)
               {
                  word x57;
                  word x58;
                  word x59;
                  word x60;
                  *(float*)&var←c14240 = ((
                     x57 = v←v12956.f0,  *(float*)&x57
                     ) * (
                     x58 = v←v12956.f0,  *(float*)&x58
                     )) + ((
                     x59 = v←v12956.f1,  *(float*)&x59
                     ) * (
                     x60 = v←v12956.f1,  *(float*)&x60
                     ));
                  };
               {
                  word x61;
                  word x62;
                  *(float*)&var←c0181 = (
                     x61 = var←c14240,  *(float*)&x61
                     ) * (
                     x62 = allowSqr←v5940,  *(float*)&x62
                     );
                  };
               if (((
                  x63 = var←c14112,  *(float*)&x63
                  ) > (
                  x64 = var←c0181,  *(float*)&x64
                  ))) {
SOURCE(2850, 36)
                  {
                     W2 var←c14272;
                     {
                        word pd65;
                        pd65 = (* (( (ptr) (* (( (ptr) gf←c15232)+23)/* var←c13792 */  ))+4) );
                        (void) ( *( (fPt) ((*  (ptr) pd65 ))))((word) &var←c14272, (*  (W2Pt) (( (ptr) &v←v5884)+2) ), (*  (W2Pt) (( (ptr) &vMul←v5912)+2)
                            ), pd65);
                        };
                     (*  (W2Pt) (( (ptr) &vMul←v5912)+2) ) = var←c14272;
                     };
SOURCE(2888, 11)
                  n1←v5996 = (n1←v5996 + 1);
                  }
               else {
SOURCE(2915, 653)
                  {
                     word n0w←v6240;
                     word n1h←v6268;
                     W3 bs←v6296;
                     W3 brickShape←v6324;
                     word m←v6352;
SOURCE(2917, 22)
                     {
                        word x66;
                        *(float*)&n0w←v6240 = (float)(int)n0←v5968 * (
                           x66 = w←v4232,  *(float*)&x66
                           );
                        };
SOURCE(2941, 22)
                     {
                        word x67;
                        *(float*)&n1h←v6268 = (float)(int)n1←v5996 * (
                           x67 = h←v4260,  *(float*)&x67
                           );
                        };
SOURCE(2965, 57)
                     (void) BrickShapeFromDeltas←P180((word) &bs←v6296, v0x←v6112, v0y←v6140, v1x←v6168, v1y←v6196);
SOURCE(3024, 27)
                     brickShape←v6324 = bs←v6296;
SOURCE(3053, 137)
                     {
                        word pd68;
                        word x69;
                        float tf70;
                        word x71;
                        float tf72;
                        word x73;
                        float tf74;
                        word x75;
                        float tf76;
                        pd68 = (* (( (ptr) (* (( (ptr) gf←c15232)+22)/* var←c13696 */  ))+4) );
                        m←v6352 = (word) ( *( (fPt) ((*  (ptr) pd68 ))))((
/*1*/   tf70 = (float)(int)v0x←v6112 / (
/*1*/      x69 = n0w←v6240,  *(float*)&x69
/*1*/      ),  *(word*)&tf70
/*1*/   ), (
/*1*/   tf72 = (float)(int)v1x←v6168 / (
/*1*/      x71 = n1h←v6268,  *(float*)&x71
/*1*/      ),  *(word*)&tf72
/*1*/   ), (* (( (ptr) clientToDevice←v4288)+2) ), (
/*1*/   tf74 = (float)(int)v0y←v6140 / (
/*1*/      x73 = n0w←v6240,  *(float*)&x73
/*1*/      ),  *(word*)&tf74
/*1*/   ), (
/*1*/   tf76 = (float)(int)v1y←v6196 / (
/*1*/      x75 = n1h←v6268,  *(float*)&x75
/*1*/      ),  *(word*)&tf76
/*1*/   ), (* (( (ptr) clientToDevice←v4288)+5) ), pd68);
                        };
SOURCE(3192, 337)
                     lab←L100023: ;
                     if (((brickShape←v6324.f0 * brickShape←v6324.f1) < minLevels←v4344)) {
                        }
                     else {
                        goto lab←L100021;
                        };
SOURCE(3247, 282)
                     if ((brickShape←v6324.f0 < brickShape←v6324.f1)) {
SOURCE(3293, 46)
                        brickShape←v6324.f0 = (brickShape←v6324.f0 + bs←v6296.f0);
SOURCE(3341, 46)
                        brickShape←v6324.f2 = (brickShape←v6324.f2 + bs←v6296.f2);
SOURCE(3389, 83)
                        if ((brickShape←v6324.f2 >= bs←v6296.f1)) {
SOURCE(3426, 46)
                           brickShape←v6324.f2 = (brickShape←v6324.f2 - bs←v6296.f1);
                           };
                        }
                     else {
SOURCE(3483, 46)
                        brickShape←v6324.f1 = (brickShape←v6324.f1 + bs←v6296.f1);
                        };
                     goto lab←L100023;
                     lab←L100021: ;
SOURCE(3543, 25)
                     (*  (W3Pt) &var←c4388 ) = brickShape←v6324;
                     var←c4388.f3 = m←v6352;
                     goto lab←L100011;
                     };
                  };
               };
            };
         };
      };
   goto lab←L100014;
   lab←L100011: ;
   (*  (W4Pt) formal←c097 ) = var←c4388;
   return;
   }

static void BrickFromDotScreen←P420(formal←c0115, pixelsPerDot←v4580, degrees←v4608, formal←c0187, allowedRelativeError←v4664, minLevels←v4692, maxSample←v4720, pixelToDevice←v4748, trc←v4776)
   word formal←c0115;
   word pixelsPerDot←v4580;
   word degrees←v4608;
   word formal←c0187;
   word allowedRelativeError←v4664;
   word minLevels←v4692;
   word maxSample←v4720;
   word pixelToDevice←v4748;
   word trc←v4776;
   {
   W7 var←c15264;
   /* declaration of shape←v4636 skipped */ 
   register ptr gf←c15296 =  (ptr) &globalframe;
   W3 var←c4924;
   /* declaration of var←c14336 skipped */ 
   word m←v6424;
   W4 brickSpec←v6452;
   W3 brick←v6480;
   var←c15264.f4/* shape←v4636 */  = formal←c0187;
   /* BrickFromDotScreen: */ 
SOURCE(3705, 696)
   {
      word tmpAddr77;
      tmpAddr77 = (word) (( (ptr) &var←c15264)+5)/* var←c14336 */ ;
      (*  (ptr) tmpAddr77 ) = ( ((word)  (fPt) Filter←P684) );
      (* (( (ptr) tmpAddr77) + 1) ) = 1;
      };
SOURCE(4075, 143)
   {
      word var←c14368;
      word var←c14400;
      {
         word pd78;
         word x79;
         word x81;
         float tf82;
         pd78 = (* (( (ptr) (* (( (ptr) gf←c15296)+22)/* var←c13696 */  ))+7) );
         var←c14368 = (word) ( *( (fPt) ((*  (ptr) pd78 ))))((
               tf82 = (
                  x79 = pixelsPerDot←v4580,  *(float*)&x79
                  ) * (
                  x81 = (*  (ptr) &fc80 ),  *(float*)&x81
                  ),  *(word*)&tf82
               ), pd78);
         };
      {
         word pd83;
         pd83 = (* (( (ptr) (* (( (ptr) gf←c15296)+22)/* var←c13696 */  ))+9) );
         var←c14400 = (word) ( *( (fPt) ((*  (ptr) pd83 ))))(degrees←v4608, pd83);
         };
      {
         word pd84;
         pd84 = (* (( (ptr) (* (( (ptr) gf←c15296)+22)/* var←c13696 */  ))+14) );
         m←v6424 = (word) ( *( (fPt) ((*  (ptr) pd84 ))))(var←c14368, var←c14400, pixelToDevice←v4748, 0, pd84);
         };
      };
SOURCE(4220, 98)
   (void) BrickSpecFromTransformedRectangle←P360((word) &brickSpec←v6452, (*  (ptr) &fc85 ), (*  (ptr) &fc85 ), m←v6424, allowedRelativeError←v4664, minLevels←v4692)
   ;
SOURCE(4320, 65)
   (void) BrickFromFilter←P480((word) &brick←v6480, brickSpec←v6452, (word) (( (bPt) &var←c15264)+20)/* var←c14336 */ , maxSample←v4720, trc←v4776)
   ;
SOURCE(4387, 14)
   var←c4924 = brick←v6480;
   /* removed tail goto */ 
   (*  (W3Pt) formal←c0115 ) = var←c4924;
   return;
   }

static word Filter←P684(x←v12284, y←v12312, formal←c15360)
   word x←v12284;
   word y←v12312;
   word formal←c15360;
   {
   register ptr gf←c15328 =  (ptr) &globalframe;
   word var←c12356;
   word tx←v6524;
   word ty←v6552;
   formal←c15360 = (formal←c15360 - 20);
   /* Filter: */ 
SOURCE(3936, 136)
SOURCE(3959, 38)
   {
      word pd86;
      word x87;
      word x89;
      word x90;
      float tf91;
      pd86 = (* (( (ptr) (* (( (ptr) gf←c15328)+25)/* var←c14432 */  ))+13) );
      tx←v6524 = (word) ( *( (fPt) ((*  (ptr) pd86 ))))((
            tf91 = ((
               x87 = x←v12284,  *(float*)&x87
               ) * (
               x89 = (*  (ptr) &fc88 ),  *(float*)&x89
               )) + (
               x90 = (* (( (ptr) gf←c15328)+4) ),  *(float*)&x90
               ),  *(word*)&tf91
            ), pd86);
      };
SOURCE(3999, 38)
   {
      word pd92;
      word x93;
      word x94;
      word x95;
      float tf96;
      pd92 = (* (( (ptr) (* (( (ptr) gf←c15328)+25)/* var←c14432 */  ))+13) );
      ty←v6552 = (word) ( *( (fPt) ((*  (ptr) pd92 ))))((
            tf96 = ((
               x93 = y←v12312,  *(float*)&x93
               ) * (
               x94 = (*  (ptr) &fc88 ),  *(float*)&x94
               )) + (
               x95 = (* (( (ptr) gf←c15328)+5) ),  *(float*)&x95
               ),  *(word*)&tf96
            ), pd92);
      };
SOURCE(4039, 33)
   {
      word x97;
      word x98;
      word x99;
      word x100;
      word x101;
      float tf102;
      return((
         tf102 = ((
            x97 = (* (( (ptr) formal←c15360)+4) ),  *(float*)&x97
            ) * (
            x98 = tx←v6524,  *(float*)&x98
            )) + (((
            x99 = (*  (ptr) &fc28 ),  *(float*)&x99
            ) - (
            x100 = (* (( (ptr) formal←c15360)+4) ),  *(float*)&x100
            )) * (
            x101 = ty←v6552,  *(float*)&x101
            )),  *(word*)&tf102
         ));
      };
   }

static void BrickFromFilter←P480(formal←c0157, brickSpec←v5156, filter←v5184, maxSample←v5212, trc←v5240)
   word formal←c0157;
   W4 brickSpec←v5156;
   word filter←v5184;
   word maxSample←v5212;
   word trc←v5240;
   {
   W15 var←c15392;
   register ptr gf←c15424 =  (ptr) &globalframe;
   W3 var←c5388;
   /* declaration of var←c14464 skipped */ 
   /* declaration of var←c14496 skipped */ 
   /* declaration of var←c14528 skipped */ 
   /* declaration of brickShape←v6596 skipped */ 
   /* declaration of n←v6652 skipped */ 
   /* declaration of m←v6680 skipped */ 
   word list←v6736 = 0;
   word bitsPerSample←v6792;
   word sampleMap←v6820;
   word scale←v6848;
   word realMaxSample←v6876;
   /* BrickFromFilter: */ 
SOURCE(4490, 2119)
   {
      word tmpAddr103;
      tmpAddr103 = (word) (( (ptr) &var←c15392)+4)/* var←c14464 */ ;
      (*  (ptr) tmpAddr103 ) = ( ((word)  (fPt) Compare←P864) );
      (* (( (ptr) tmpAddr103) + 1) ) = 1;
      };
   {
      word tmpAddr104;
      tmpAddr104 = (word) (( (ptr) &var←c15392)+6)/* var←c14496 */ ;
      (*  (ptr) tmpAddr104 ) = ( ((word)  (fPt) Equidistribute←P804) );
      (* (( (ptr) tmpAddr104) + 1) ) = 1;
      };
   {
      word tmpAddr105;
      tmpAddr105 = (word) (( (ptr) &var←c15392)+8)/* var←c14528 */ ;
      (*  (ptr) tmpAddr105 ) = ( ((word)  (fPt) Encode←P744) );
      (* (( (ptr) tmpAddr105) + 1) ) = 1;
      };
SOURCE(4636, 45)
   (*  (W3Pt) (( (ptr) &var←c15392)+10)/* brickShape←v6596 */  ) = (*  (W3Pt) &brickSpec←v5156 );
SOURCE(4796, 43)
   (* (( (ptr) &var←c15392)+13)/* n←v6652 */  ) = ((* (( (ptr) &var←c15392)+11) ) * (* (( (ptr) &var←c15392)+10) ));
SOURCE(4841, 37)
   (* (( (ptr) &var←c15392)+14)/* m←v6680 */  ) =  ( ((* (( (ptr) &var←c15392)+13)/* n←v6652 */  ) == 101) ? 53 : 101 ) ;
SOURCE(5258, 130)
   {
      word var←c14560;
      var←c14560 = maxSample←v5212;
      if ((var←c14560 <= 255)) {
         bitsPerSample←v6792 = 8;
         }
      else {
         if ((var←c14560 <= 65535)) {
            bitsPerSample←v6792 = 16;
            }
         else {
            bitsPerSample←v6792 = 32;
            };
         };
      };
SOURCE(5390, 147)
   {
      W4 var←c14592;
      var←c14592.f0 = 0;
      var←c14592.f1 = 0;
      {
         word idx106;
         var←c14592.f2 = (
            idx106 = (* (( (ptr) &var←c15392)+10) ),
            SGNCK(idx106)
            );
         };
      {
         word idx107;
         var←c14592.f3 = (
            idx107 = (* (( (ptr) &var←c15392)+11) ),
            SGNCK(idx107)
            );
         };
      {
         word pd108;
         pd108 = (* (( (ptr) (* (( (ptr) gf←c15424)+26)/* var←c14624 */  ))+19) );
         sampleMap←v6820 = (word) ( *( (fPt) ((*  (ptr) pd108 ))))(var←c14592, BCK(bitsPerSample←v6792, 33), 0, pd108);
         };
      };
SOURCE(5539, 25)
   {
      word x109;
      *(float*)&scale←v6848 = (
         x109 = (*  (ptr) &fc28 ),  *(float*)&x109
         ) / (float)(unsigned)(* (( (ptr) &var←c15392)+13)/* n←v6652 */  );
      };
SOURCE(5566, 37)
   {
      float tf110;
      realMaxSample←v6876 = (
         tf110 = (float)(unsigned)maxSample←v5212,  *(word*)&tf110
         );
      };
SOURCE(5605, 29)
   {
      word pd111;
      pd111 = (* (( (ptr) (* (( (ptr) gf←c15424)+26)/* var←c14624 */  ))+48) );
      (void) ( *( (fPt) ((*  (ptr) pd111 ))))(sampleMap←v6820, pd111);
      };
SOURCE(5636, 444)
   {
      register word s←v7128 = 0;
      register word noName←c14656;
      {
         word idx112;
         noName←c14656 = (
            idx112 = (* (( (ptr) &var←c15392)+10) ),
            SGNCK(idx112)
            );
         };
      if ((s←v7128 >= noName←c14656)) {
         goto lab←L100026;
         };
      lab←L100029: ;
SOURCE(5680, 400)
      {
         register word f←v7172 = 0;
         register word noName←c14688;
         {
            word idx113;
            noName←c14688 = (
               idx113 = (* (( (ptr) &var←c15392)+11) ),
               SGNCK(idx113)
               );
            };
         if ((f←v7172 >= noName←c14688)) {
            goto lab←L100030;
            };
         lab←L100033: ;
         {
            W2 p←v7216;
SOURCE(5724, 88)
            {
               W2 var←c0145;
               {
                  W2 var←c14720;
                  {
                     word x114;
                     *(float*)&var←c14720.f0 = (float)(unsigned)s←v7128 + (
                        x114 = (*  (ptr) &fc80 ),  *(float*)&x114
                        );
                     };
                  {
                     word x115;
                     *(float*)&var←c14720.f1 = (float)(unsigned)f←v7172 + (
                        x115 = (*  (ptr) &fc80 ),  *(float*)&x115
                        );
                     };
                  {
                     word pd116;
                     pd116 = (* (( (ptr) (* (( (ptr) gf←c15424)+22)/* var←c13696 */  ))+42) );
                     (void) ( *( (fPt) ((*  (ptr) pd116 ))))((word) &var←c0145, brickSpec←v5156.f3, var←c14720, pd116);
                     };
                  };
               p←v7216 = var←c0145;
               };
SOURCE(5814, 26)
            {
               word var←c14752;
               word var←c14816;
               {
                  word x117;
                  word x118;
                  *(float*)&var←c14752 = (
                     x117 = p←v7216.f0,  *(float*)&x117
                     ) - (
                     x118 = (*  (ptr) &fc28 ),  *(float*)&x118
                     );
                  };
               {
                  word x119;
                  word x120;
                  *(float*)&var←c14816 = (
                     x119 = p←v7216.f1,  *(float*)&x119
                     ) - (
                     x120 = (*  (ptr) &fc28 ),  *(float*)&x120
                     );
                  };
               p←v7216.f0 = var←c14752;
               p←v7216.f1 = var←c14816;
               };
SOURCE(5842, 42)
            lab←L100036: ;
            {
               word x121;
               word x122;
               if (((
                  x121 = p←v7216.f0,  *(float*)&x121
                  ) > (
                  x122 = (*  (ptr) &fc28 ),  *(float*)&x122
                  ))) {
                  }
               else {
                  goto lab←L100034;
                  };
               };
SOURCE(5861, 23)
            {
               word x123;
               word x124;
               *(float*)&p←v7216.f0 = (
                  x123 = p←v7216.f0,  *(float*)&x123
                  ) - (
                  x124 = (*  (ptr) &fc85 ),  *(float*)&x124
                  );
               };
            goto lab←L100036;
            lab←L100034: ;
SOURCE(5886, 43)
            lab←L100039: ;
            {
               word x125;
               word x126;
               if (((
                  x125 = p←v7216.f0,  *(float*)&x125
                  ) < (
                  x126 = (*  (ptr) &fc29 ),  *(float*)&x126
                  ))) {
                  }
               else {
                  goto lab←L100037;
                  };
               };
SOURCE(5906, 23)
            {
               word x127;
               word x128;
               *(float*)&p←v7216.f0 = (
                  x127 = p←v7216.f0,  *(float*)&x127
                  ) + (
                  x128 = (*  (ptr) &fc85 ),  *(float*)&x128
                  );
               };
            goto lab←L100039;
            lab←L100037: ;
SOURCE(5931, 42)
            lab←L100042: ;
            {
               word x129;
               word x130;
               if (((
                  x129 = p←v7216.f1,  *(float*)&x129
                  ) > (
                  x130 = (*  (ptr) &fc28 ),  *(float*)&x130
                  ))) {
                  }
               else {
                  goto lab←L100040;
                  };
               };
SOURCE(5950, 23)
            {
               word x131;
               word x132;
               *(float*)&p←v7216.f1 = (
                  x131 = p←v7216.f1,  *(float*)&x131
                  ) - (
                  x132 = (*  (ptr) &fc85 ),  *(float*)&x132
                  );
               };
            goto lab←L100042;
            lab←L100040: ;
SOURCE(5975, 43)
            lab←L100045: ;
            {
               word x133;
               word x134;
               if (((
                  x133 = p←v7216.f1,  *(float*)&x133
                  ) < (
                  x134 = (*  (ptr) &fc29 ),  *(float*)&x134
                  ))) {
                  }
               else {
                  goto lab←L100043;
                  };
               };
SOURCE(5995, 23)
            {
               word x135;
               word x136;
               *(float*)&p←v7216.f1 = (
                  x135 = p←v7216.f1,  *(float*)&x135
                  ) + (
                  x136 = (*  (ptr) &fc85 ),  *(float*)&x136
                  );
               };
            goto lab←L100045;
            lab←L100043: ;
SOURCE(6020, 60)
            {
               word var←c14848;
               word var←c14944;
               {
                  word var←c14880;
                  word var←c14912;
                  var←c14880 = (word) ( *( (fPt) ((*  (ptr) filter←v5184 ))))(p←v7216.f0, p←v7216.f1, filter←v5184);
                  var←c14912 = XR←NewObject(12, (* (( (ptr) gf←c15424)+7) ));
                  (*  (ptr) var←c14912 ) = s←v7128;
                  (* (( (ptr) var←c14912)+1) ) = f←v7172;
                  (* (( (ptr) var←c14912)+2) ) = var←c14880;
                  var←c14848 = var←c14912;
                  };
               var←c14944 = XR←NewObject(8, (* (( (ptr) gf←c15424)+6) ));
               (*  (ptr) var←c14944 ) = var←c14848;
               (* (( (ptr) var←c14944)+1) ) = list←v6736;
               list←v6736 = var←c14944;
               };
            };
         f←v7172 = (f←v7172 + 1);
         if ((f←v7172 < noName←c14688)) {
            goto lab←L100033;
            };
         lab←L100030: ;
         };
      s←v7128 = (s←v7128 + 1);
      if ((s←v7128 < noName←c14656)) {
         goto lab←L100029;
         };
      lab←L100026: ;
      };
SOURCE(6100, 50)
   {
      word pd137;
      pd137 = (* (( (ptr) (* (( (ptr) gf←c15424)+27)/* var←c14976 */  ))+27) );
      list←v6736 = (word) ( *( (fPt) ((*  (ptr) pd137 ))))(list←v6736, (word) (( (bPt) &var←c15392)+16)/* var←c14464 */ , pd137)
      ;
      };
SOURCE(6152, 396)
   {
      register word i←v7260 = 0;
      if ((i←v7260 >= (* (( (ptr) &var←c15392)+13)/* n←v6652 */  ))) {
         goto lab←L100046;
         };
      lab←L100049: ;
      {
         word node←v7304;
         word rest←v7332;
         word valReal←v7360;
SOURCE(6177, 38)
         node←v7304 = XR←Narrow((*  (ptr) list←v6736 ), (* (( (ptr) gf←c15424)+7) ));
SOURCE(6217, 6)
         rest←v7332 = (* (( (ptr) list←v6736)+1) );
SOURCE(6248, 29)
         {
            word x138;
            word x139;
            *(float*)&valReal←v7360 = ((float)(unsigned)i←v7260 + (
               x138 = (*  (ptr) &fc80 ),  *(float*)&x138
               )) * (
               x139 = scale←v6848,  *(float*)&x139
               );
            };
SOURCE(6279, 63)
         if ((trc←v5240 != 0)) {
SOURCE(6299, 43)
            {
               word x140;
               float tf141;
               float tf142;
               word x143;
               float tf144;
               float tf145;
               word x146;
               float tf147;
               valReal←v7360 = (
                  tf147 = FMIN(FMAX((
                           x140 = (word) ( *( (fPt) ((*  (ptr) trc←v5240 ))))(valReal←v7360, trc←v5240),  *(float*)&x140
                           ), (
                           x143 = (*  (ptr) &fc17 ),  *(float*)&x143
                           ), tf141, tf142), (
                        x146 = (*  (ptr) &fc28 ),  *(float*)&x146
                        ), tf144, tf145),  *(word*)&tf147
                  );
               };
            };
SOURCE(6345, 172)
         {
            word value←v7512;
SOURCE(6347, 55)
            {
               word x148;
               word x149;
               float tf150;
               word idx151;
               value←v7512 = (
                  idx151 = (word) XR←REAL32←Fix((
                        tf150 = (
                           x148 = valReal←v7360,  *(float*)&x148
                           ) * (
                           x149 = realMaxSample←v6876,  *(float*)&x149
                           ),  *(word*)&tf150
                        )),
                  SGNCK(idx151)
                  );
               };
SOURCE(6404, 46)
            if ((value←v7512 >= maxSample←v5212)) {
SOURCE(6431, 19)
               value←v7512 = (maxSample←v5212 - 1);
               };
SOURCE(6452, 63)
            {
               word pd152;
               pd152 = (* (( (ptr) (* (( (ptr) gf←c15424)+26)/* var←c14624 */  ))+43) );
               (void) ( *( (fPt) ((*  (ptr) pd152 ))))(sampleMap←v6820, (*  (W2Pt) node←v7304 ), value←v7512, 0, pd152);
               };
            };
SOURCE(6520, 15)
         (* (( (ptr) list←v6736)+1) ) = 0;
SOURCE(6537, 11)
         list←v6736 = rest←v7332;
         };
      i←v7260 = (i←v7260 + 1);
      if ((i←v7260 < (* (( (ptr) &var←c15392)+13)/* n←v6652 */  ))) {
         goto lab←L100049;
         };
      lab←L100046: ;
      };
SOURCE(6559, 50)
   var←c5388.f0 = maxSample←v5212;
   var←c5388.f1 = sampleMap←v6820;
   {
      word idx153;
      var←c5388.f2 = (
         idx153 = (* (( (ptr) &var←c15392)+12) ),
         SGNCK(idx153)
         );
      };
   /* removed tail goto */ 
   (*  (W3Pt) formal←c0157 ) = var←c5388;
   return;
   }

static word Encode←P744(pos←v6952, formal←c15488)
   W2 pos←v6952;
   word formal←c15488;
   {
   register ptr gf←c15456 =  (ptr) &globalframe;
   word var←c6996;
   formal←c15488 = (formal←c15488 - 32);
   /* Encode: */ 
SOURCE(4683, 110)
SOURCE(4729, 64)
   {
      word pd154;
      word idx155;
      word idx156;
      pd154 = (* (( (ptr) (* (( (ptr) gf←c15456)+28)/* var←c15072 */  ))+9) );
      return(((word) ( *( (fPt) ((*  (ptr) pd154 ))))((
            idx155 = (word) pos←v6952.f0,
            SGNCK(idx155)
            ), (* (( (ptr) formal←c15488)+11) ), pd154) + (
         idx156 = (word) pos←v6952.f1,
         SGNCK(idx156)
         )));
      };
   }

static word Equidistribute←P804(i←v7056, formal←c15520)
   word i←v7056;
   word formal←c15520;
   {
   word var←c7100;
   formal←c15520 = (formal←c15520 - 24);
   /* Equidistribute: */ 
SOURCE(4880, 74)
SOURCE(4930, 24)
   return((((i←v7056 * (* (( (ptr) formal←c15520)+14) )) + 13) % (* (( (ptr) formal←c15520)+13) )));
   }

static word Compare←P864(ref1←v12416, ref2←v12444, formal←c15584)
   word ref1←v12416;
   word ref2←v12444;
   word formal←c15584;
   {
   register ptr gf←c15552 =  (ptr) &globalframe;
   word var←c12488;
   word a←v7556;
   word b←v7584;
   word var←c15104;
   word var←c0182;
   word var←c15136;
   formal←c15584 = (formal←c15584 - 16);
   /* Compare: */ 
SOURCE(4975, 278)
SOURCE(5005, 29)
   a←v7556 = XR←Narrow(ref1←v12416, (* (( (ptr) gf←c15552)+7) ));
SOURCE(5036, 29)
   b←v7584 = XR←Narrow(ref2←v12444, (* (( (ptr) gf←c15552)+7) ));
SOURCE(5067, 39)
   {
      word x157;
      word x158;
      if (((
         x157 = (* (( (ptr) a←v7556)+2) ),  *(float*)&x157
         ) < (
         x158 = (* (( (ptr) b←v7584)+2) ),  *(float*)&x158
         ))) {
SOURCE(5093, 13)
         return(0);
         };
      };
SOURCE(5108, 42)
   {
      word x159;
      word x160;
      if (((
         x159 = (* (( (ptr) a←v7556)+2) ),  *(float*)&x159
         ) > (
         x160 = (* (( (ptr) b←v7584)+2) ),  *(float*)&x160
         ))) {
SOURCE(5134, 16)
         return(2);
         };
      };
SOURCE(5152, 83)
   var←c15104 = (word) Encode←P744((*  (W2Pt) a←v7556 ), (word) (( (bPt) formal←c15584)+32));
   var←c0182 = (word) Equidistribute←P804(var←c15104, (word) (( (bPt) formal←c15584)+24));
   var←c15136 = (word) Encode←P744((*  (W2Pt) b←v7584 ), (word) (( (bPt) formal←c15584)+32));
   if (((var←c0182 < (word) Equidistribute←P804(var←c15136, (word) (( (bPt) formal←c15584)+24)))
   )) {
SOURCE(5222, 13)
      return(0);
      };
SOURCE(5237, 16)
   return(2);
   }

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