/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: November 1, 1993 12:06:58 pm PST */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerStrokeImpl, module: ImagerStrokeImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITXOR(x, y) (((word)(x)) ↑ ((word)(y)))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
static char versionStamp[] = "@(#)mob←version [1959909396,3256719583] ImagerStrokeImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W6 *W6Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W4 r;} W12;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W16 r;} W32;
typedef struct {W16 f; W2 r;} W18;
typedef struct {W32 f; W18 r;} W50;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef struct {W16 f; W13 r;} W29;
typedef struct {W8 f; word r;} W9;
typedef W8 *W8Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W16 f; W7 r;} W23;
typedef struct {W32 f; W8 r;} W40;
typedef struct {W16 f; W4 r;} W20;
typedef struct {W16 f; W5 r;} W21;
static float fc1 = 0.5;
#define SOURCE(p, l) /* source p, l */
static float fc20 = 1.0;
static float fc21 = 0.001;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc34 = 0.0;
static float fc321 = 0.9999;
static float fc353 = 2.0;
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
static float fc814 = 1.5;
#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 fc946 = 1.0e-8;
static float fc950 = 1.0e+8;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc963 = 1048576.0;
static void NoName←Q12456();
static void ImagerStrokeImpl←P0();
static void DBug←P60();
static void SetCurveTolerance←P180();
static word FindVertex←P600();
static void Reverse←P660();
static void PenBB←P720();
static void ExtendBB←P780();
static void SubDivideParabola←P840();
static void Interpolate←P2148();
static word TraverseParabola←P900();
static word Intersect←P960();
static void PenStroke←P1020();
static word RegionOf←P2376();
static void Finish←P2496();
static void Move←P2556();
static void RoundJoint←P2616();
static void Parabola←P2676();
static void Line←P2736();
static void Conic←P2796();
static void Curve←P2856();
static void Arc←P2916();
static void SignalSquareEndWithNoDirection←P1080();
static void PathFromStroke←P1140();
static void RoundEnd←P3504();
static void SquareEnd←P3564();
static word NoName←Q12516();
static void Beam←P3624();
static word NoName←Q12576();
static void ButtEnd←P3684();
static void RoundJoint←P3744();
static void BevelJoint←P3804();
static void MiterJoint←P3864();
static void MiterOrBevelJoint←P3924();
static void Path←P3984();
static void PathFromVector←P1200();
static void AverageSpeed←P1260();
static void DivideUntilSmooth←P1320();
static void SubDivide←P1380();
static void SubPiece←P1440();
static word MeasurePath←P1500();
static void move←P4800();
static void line←P4860();
static void piece←P4920();
static void curve←P4980();
static void conic←P5040();
static void arc←P5100();
static word ComputeStretch←P1560();
static word AdjustOffset←P1620();
static void Dashes←P1680();
static void Advance←P5352();
static void move←P5412();
static void line←P5472();
static void start←P5808();
static void stop←P5868();
static void curve←P5532();
static void piece←P5928();
static void start←P5988();
static void stop←P6048();
static void conic←P5592();
static void arc←P5652();
static void ConvolvePenWithPath←P1740();
static void Move←P6108();
static void Line←P6168();
static void Close←P6228();
static void MapBitPath←P1800();
static void Emit←P6336();
static void NoName←Q12636();
static void NoName←Q12696();
static struct {unsigned f; char r[4];} string2 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string3 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string4 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[52];} string5 = {3276852, "Zero-length stroke has no direction for square end\000"};
static struct {unsigned f; char r[36];} string6 = {2097188, "Negative element in dash pattern\000\000\000"};
static struct {unsigned f; char r[36];} string7 = {2162724, "Dash pattern sum must be positive\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\164\321\330\024\300\302\035\230\337\100\164\000\000"};
static struct {unsigned f; char r[8];} string9 = {458759, "\006\001@H\004G\377"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\354\147\236\353\300\316\347\225\106\100\150\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\247\031\224\326\300\123\162\224\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\314\116\377\204\300\167\024\373\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\065\223\325\152\300\153\212\013\164\100\150\000\000"};
static struct {
   word f0[86]; 
   } globalframe = {
   {0}
   };

static void NoName←Q12456()
   {
   register ptr gf←c0876 =  (ptr) &globalframe;
   word var←c58748;
   (* (( (ptr) gf←c0876)+4)/* curveTolerance←v3532 */  ) = (*  (ptr) &fc1 );
   (* (( (ptr) gf←c0876)+75) ) = ( ((word)  (fPt) ImagerStrokeImpl←P0) );
   (* (( (ptr) gf←c0876)+73) ) = ( ((word)  (fPt) DBug←P60) );
   (* (( (ptr) gf←c0876)+71) ) = ( ((word)  (fPt) SetCurveTolerance←P180) );
   (* (( (ptr) gf←c0876)+69) ) = ( ((word)  (fPt) FindVertex←P600) );
   (* (( (ptr) gf←c0876)+67) ) = ( ((word)  (fPt) Reverse←P660) );
   (* (( (ptr) gf←c0876)+65) ) = ( ((word)  (fPt) PenBB←P720) );
   (* (( (ptr) gf←c0876)+63) ) = ( ((word)  (fPt) ExtendBB←P780) );
   (* (( (ptr) gf←c0876)+61) ) = ( ((word)  (fPt) SubDivideParabola←P840) );
   (* (( (ptr) gf←c0876)+59) ) = ( ((word)  (fPt) TraverseParabola←P900) );
   (* (( (ptr) gf←c0876)+57) ) = ( ((word)  (fPt) Intersect←P960) );
   (* (( (ptr) gf←c0876)+55) ) = ( ((word)  (fPt) PenStroke←P1020) );
   (* (( (ptr) gf←c0876)+53) ) = ( ((word)  (fPt) SignalSquareEndWithNoDirection←P1080) );
   (* (( (ptr) gf←c0876)+51) ) = ( ((word)  (fPt) PathFromStroke←P1140) );
   (* (( (ptr) gf←c0876)+49) ) = ( ((word)  (fPt) PathFromVector←P1200) );
   (* (( (ptr) gf←c0876)+47) ) = ( ((word)  (fPt) AverageSpeed←P1260) );
   (* (( (ptr) gf←c0876)+45) ) = ( ((word)  (fPt) DivideUntilSmooth←P1320) );
   (* (( (ptr) gf←c0876)+43) ) = ( ((word)  (fPt) SubDivide←P1380) );
   (* (( (ptr) gf←c0876)+41) ) = ( ((word)  (fPt) SubPiece←P1440) );
   (* (( (ptr) gf←c0876)+39) ) = ( ((word)  (fPt) MeasurePath←P1500) );
   (* (( (ptr) gf←c0876)+37) ) = ( ((word)  (fPt) ComputeStretch←P1560) );
   (* (( (ptr) gf←c0876)+35) ) = ( ((word)  (fPt) AdjustOffset←P1620) );
   (* (( (ptr) gf←c0876)+33) ) = ( ((word)  (fPt) Dashes←P1680) );
   (* (( (ptr) gf←c0876)+31) ) = ( ((word)  (fPt) ConvolvePenWithPath←P1740) );
   (* (( (ptr) gf←c0876)+29) ) = ( ((word)  (fPt) MapBitPath←P1800) );
   (* (( (ptr) gf←c0876)+8) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c0876)+12) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string3);
   (*  (ptr) (( (bPt) gf←c0876)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0876)+12) ), (word) &string5);
   (*  (ptr) (( (bPt) gf←c0876)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0876)+12) ), (word) &string6);
   (*  (ptr) (( (bPt) gf←c0876)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0876)+12) ), (word) &string7);
   (void) XR←DeclareGlobalFrame((word) "ImagerStrokeImpl", &globalframe, (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9)
      , (word) (( (bPt) gf←c0876)+300)/* var←c46172 */ );
   var←c58748 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string10)), 3);
   (* (( (ptr) gf←c0876)+80)/* var←c51516 */  ) = var←c58748;
   var←c58748 = (word) XR←ImportInterface((word) "ImagerPath", (word) XR←GetTypeIndexS((word) (&string11)), 18);
   (* (( (ptr) gf←c0876)+79)/* var←c51484 */  ) = var←c58748;
   (void) XR←ImportProcS(var←c58748, 2097157);
   (void) XR←ImportProcS(var←c58748, 2097672);
   (void) XR←ImportProcS(var←c58748, 1835268);
   var←c58748 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string12)), 55);
   (* (( (ptr) gf←c0876)+81)/* var←c52092 */  ) = var←c58748;
   (void) XR←ImportProcS(var←c58748, 262401);
   (void) XR←ImportProcS(var←c58748, 270849);
   (void) XR←ImportProcS(var←c58748, 530946);
   (void) XR←ImportProcS(var←c58748, 68681734);
   (void) XR←ImportProcS(var←c58748, 135013122);
   (void) XR←ImportProcS(var←c58748, 135013378);
   (void) XR←ImportProcS(var←c58748, 135013890);
   var←c58748 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string13)), 11);
   (* (( (ptr) gf←c0876)+77)/* var←c46204 */  ) = var←c58748;
   (void) XR←ImportProcS(var←c58748, 67372033);
   (void) XR←ImportProcS(var←c58748, 67633154);
   var←c58748 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string14)), 36);
   (* (( (ptr) gf←c0876)+78)/* var←c50396 */  ) = var←c58748;
   (void) XR←ImportProcS(var←c58748, 67372289);
   var←c58748 = (word) XR←ImportInterface((word) "Vector2", (word) XR←GetTypeIndexS((word) (&string15)), 22);
   (* (( (ptr) gf←c0876)+82)/* var←c52156 */  ) = var←c58748;
   (void) XR←ImportProcS(var←c58748, 67637761);
   (void) XR←ImportProcS(var←c58748, 67638273);
   (void) XR←ImportProcS(var←c58748, 135005698);
   (void) XR←ImportProcS(var←c58748, 134743041);
   var←c58748 = (word) XR←ImportInterface((word) "ProcessProps", (word) XR←GetTypeIndexS((word) (&string16)), 6);
   (* (( (ptr) gf←c0876)+83)/* var←c58780 */  ) = var←c58748;
   (void) XR←ImportProcS(var←c58748, 67371777);
   var←c58748 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string17)), 103);
   (* (( (ptr) gf←c0876)+84)/* var←c58812 */  ) = var←c58748;
   (void) XR←ImportProcS(var←c58748, 801795);
   (void) XR←ImportProcS(var←c58748, 1063171);
   (void) XR←ImportProcS(var←c58748, 1071364);
   var←c58748 = (word) XR←ExportInterface((word) "ImagerStroke", (word) XR←GetTypeIndexS((word) (&string18)), 9);
   (* (( (ptr) gf←c0876)+85)/* var←c58844 */  ) = var←c58748;
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+212)/* var←c45820 */ , 0, (word) "SignalSquareEndWithNoDirection")
   ;
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+204)/* var←c45788 */ , 3932428, (word) "PathFromStroke");
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+196)/* var←c45756 */ , 2359815, (word) "PathFromVector");
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+220)/* var←c45852 */ , 3408650, (word) "PenStroke");
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+156)/* var←c45596 */ , 67634178, (word) "MeasurePath");
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+132)/* var←c45500 */ , 2622730, (word) "Dashes");
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+276)/* var←c46076 */ , 68158979, (word) "FindVertex");
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+124)/* var←c45468 */ , 1050372, (word) "ConvolvePenWithPath")
   ;
   (void) XR←ExportProcS(var←c58748, (word) (( (bPt) gf←c0876)+116)/* var←c45436 */ , 2361350, (word) "MapBitPath");
   }

static void ImagerStrokeImpl←P0(formal←c048, formal←c047)
   word formal←c048;
   word formal←c047;
   {
   register ptr gf←c58876 =  (ptr) &globalframe;
   /* ImagerStrokeImpl: */ 
SOURCE(163, 27381)
   /* moved to installation proc */ 
SOURCE(11992, 43)
   {
      word pd19;
      pd19 = (* (( (ptr) (* (( (ptr) gf←c58876)+77)/* var←c46204 */  ))+4) );
      (* (( (ptr) gf←c58876)+5)/* verySmallNumber←v4176 */  ) = (word) ( *( (fPt) ((*  (ptr) pd19 ))))((*  (ptr) &fc20 ),  (word) -20, pd19)
      ;
      };
SOURCE(18159, 13)
   (* (( (ptr) gf←c58876)+6)/* nPts←v4288 */  ) = 6;
SOURCE(18885, 17)
   (* (( (ptr) gf←c58876)+7)/* sigBits←v4372 */  ) = 10;
   }

static void DBug←P60(label←v4796, v←v4824, d←v4852)
   word label←v4796;
   word v←v4824;
   word d←v4852;
   {
   /* DBug: */ 
   }

static void SetCurveTolerance←P180(millis←v5128)
   word millis←v5128;
   {
   register ptr gf←c58908 =  (ptr) &globalframe;
   /* SetCurveTolerance: */ 
SOURCE(1518, 102)
SOURCE(1560, 60)
   if ( ( ( (int)millis←v5128 >=  (int)1) ? ( (int)millis←v5128 <=  (int)10000) : 0 ) ) {
SOURCE(1589, 31)
      {
         word x22;
         *(float*)(( (ptr) gf←c58908)+4)/* curveTolerance←v3532 */  = (float)(int)millis←v5128 * (
            x22 = (*  (ptr) &fc21 ),  *(float*)&x22
            );
         };
      };
   }

static word FindVertex←P600(pen←v5980, direction←v6008, i←v6036)
   word pen←v5980;
   W2 direction←v6008;
   word i←v6036;
   {
   word var←c6080;
   word penSize←v11020;
   word penSizeLess1←v11048;
   /* FindVertex: */ 
SOURCE(2187, 482)
SOURCE(2268, 23)
   penSize←v11020 = (* (( (ptr) pen←v5980)+5) );
SOURCE(2293, 29)
   penSizeLess1←v11048 = SGNCK((penSize←v11020 - 1));
SOURCE(2324, 153)
   lab←L100002: ;
SOURCE(2324, 153)
   {
      word prv←v11092;
      word dotPrv←v11120;
SOURCE(2327, 48)
      prv←v11092 =  ( (i←v6036 == 0) ? penSizeLess1←v11048 : (i←v6036 - 1) ) ;
SOURCE(2377, 66)
      {
         W2 v2←v45388;
         {
            W2 v1←v42232;
            W2 v2←v42260;
            {
               word limit23;
               v1←v42232 = (* (( (W2Pt) (( (ptr) pen←v5980)+6))+(
                     limit23 = (* (( (ptr) pen←v5980)+5) ),
                     BCK(prv←v11092, limit23)
                     )) );
               };
            {
               word limit24;
               v2←v42260 = (* (( (W2Pt) (( (ptr) pen←v5980)+6))+(
                     limit24 = (* (( (ptr) pen←v5980)+5) ),
                     BCK(i←v6036, limit24)
                     )) );
               };
SOURCE(1759, 31)
            {
               word x25;
               word x26;
               *(float*)&v2←v45388.f0 = (
                  x25 = v1←v42232.f0,  *(float*)&x25
                  ) - (
                  x26 = v2←v42260.f0,  *(float*)&x26
                  );
               };
            {
               word x27;
               word x28;
               *(float*)&v2←v45388.f1 = (
                  x27 = v1←v42232.f1,  *(float*)&x27
                  ) - (
                  x28 = v2←v42260.f1,  *(float*)&x28
                  );
               };
            };
         {
            word x29;
            word x30;
            word x31;
            word x32;
            *(float*)&dotPrv←v11120 = ((
               x29 = direction←v6008.f0,  *(float*)&x29
               ) * (
               x30 = v2←v45388.f0,  *(float*)&x30
               )) + ((
               x31 = direction←v6008.f1,  *(float*)&x31
               ) * (
               x32 = v2←v45388.f1,  *(float*)&x32
               ));
            };
         };
SOURCE(2445, 32)
      {
         word x33;
         word x35;
         if (((
            x33 = dotPrv←v11120,  *(float*)&x33
            ) > (
            x35 = (*  (ptr) &fc34 ),  *(float*)&x35
            ))) {
SOURCE(2464, 13)
            i←v6036 = prv←v11092;
            }
         else {
SOURCE(2477, 12)
            goto lab←L100001;
            };
         };
      };
   goto lab←L100002;
   lab←L100001: ;
SOURCE(2491, 153)
   lab←L100007: ;
SOURCE(2491, 153)
   {
      word nxt←v11164;
      word dotNxt←v11192;
SOURCE(2494, 48)
      nxt←v11164 =  ( (i←v6036 == penSizeLess1←v11048) ? 0 : (i←v6036 + 1) ) ;
SOURCE(2544, 66)
      {
         W2 v2←v45340;
         {
            W2 v1←v42156;
            W2 v2←v42184;
            {
               word limit36;
               v1←v42156 = (* (( (W2Pt) (( (ptr) pen←v5980)+6))+(
                     limit36 = (* (( (ptr) pen←v5980)+5) ),
                     BCK(nxt←v11164, limit36)
                     )) );
               };
            {
               word limit37;
               v2←v42184 = (* (( (W2Pt) (( (ptr) pen←v5980)+6))+(
                     limit37 = (* (( (ptr) pen←v5980)+5) ),
                     BCK(i←v6036, limit37)
                     )) );
               };
SOURCE(1759, 31)
            {
               word x38;
               word x39;
               *(float*)&v2←v45340.f0 = (
                  x38 = v1←v42156.f0,  *(float*)&x38
                  ) - (
                  x39 = v2←v42184.f0,  *(float*)&x39
                  );
               };
            {
               word x40;
               word x41;
               *(float*)&v2←v45340.f1 = (
                  x40 = v1←v42156.f1,  *(float*)&x40
                  ) - (
                  x41 = v2←v42184.f1,  *(float*)&x41
                  );
               };
            };
         {
            word x42;
            word x43;
            word x44;
            word x45;
            *(float*)&dotNxt←v11192 = ((
               x42 = direction←v6008.f0,  *(float*)&x42
               ) * (
               x43 = v2←v45340.f0,  *(float*)&x43
               )) + ((
               x44 = direction←v6008.f1,  *(float*)&x44
               ) * (
               x45 = v2←v45340.f1,  *(float*)&x45
               ));
            };
         };
SOURCE(2612, 32)
      {
         word x46;
         word x47;
         if (((
            x46 = dotNxt←v11192,  *(float*)&x46
            ) > (
            x47 = (*  (ptr) &fc34 ),  *(float*)&x47
            ))) {
SOURCE(2631, 13)
            i←v6036 = nxt←v11164;
            }
         else {
SOURCE(2644, 12)
            goto lab←L100006;
            };
         };
      };
   goto lab←L100007;
   lab←L100006: ;
SOURCE(2658, 11)
   return(i←v6036);
   }

static void Reverse←P660(formal←c074, state←v6268)
   word formal←c074;
   W6 state←v6268;
   {
   W6 var←c6312;
   word t←v11236;
   /* Reverse: */ 
SOURCE(2881, 193)
SOURCE(2930, 19)
   t←v11236 = state←v6268.f4;
SOURCE(2951, 24)
   state←v6268.f4 = state←v6268.f5;
SOURCE(2977, 15)
   state←v6268.f5 = t←v11236;
SOURCE(2994, 64)
   {
      word var←c46460;
      word var←c46524;
      var←c46460 = (word) XRM←BITXOR(state←v6268.f2, 2147483648);
      var←c46524 = (word) XRM←BITXOR(state←v6268.f3, 2147483648);
      state←v6268.f2 = var←c46460;
      state←v6268.f3 = var←c46524;
      };
SOURCE(3060, 14)
   var←c6312 = state←v6268;
   /* removed tail goto */ 
   (*  (W6Pt) formal←c074 ) = var←c6312;
   return;
   }

static void PenBB←P720(formal←c081, pen←v6372)
   word formal←c081;
   word pen←v6372;
   {
   W4 var←c6416;
   W4 box←v11280;
   /* PenBB: */ 
SOURCE(3080, 371)
SOURCE(3141, 83)
   box←v11280.f0 = 2139095039;
   box←v11280.f1 = 2139095039;
   {
      word x48;
      *(float*)&box←v11280.f2 =  - (
         x48 = 2139095039,  *(float*)&x48
         );
      };
   {
      word x49;
      *(float*)&box←v11280.f3 =  - (
         x49 = 2139095039,  *(float*)&x49
         );
      };
SOURCE(3226, 202)
   {
      register word i←v11324 = 0;
      register word noName←c46588;
      noName←c46588 = (* (( (ptr) pen←v6372)+5) );
      if ((i←v11324 >= noName←c46588)) {
         goto lab←L100012;
         };
      lab←L100015: ;
      {
         W2 p←v11368;
SOURCE(3257, 15)
         {
            word limit50;
            p←v11368 = (* (( (W2Pt) (( (ptr) pen←v6372)+6))+(
                  limit50 = (* (( (ptr) pen←v6372)+5) ),
                  BCK(i←v11324, limit50)
                  )) );
            };
SOURCE(3274, 37)
         {
            word x51;
            word x52;
            if (((
               x51 = p←v11368.f0,  *(float*)&x51
               ) < (
               x52 = box←v11280.f0,  *(float*)&x52
               ))) {
SOURCE(3297, 14)
               box←v11280.f0 = p←v11368.f0;
               };
            };
SOURCE(3313, 37)
         {
            word x53;
            word x54;
            if (((
               x53 = p←v11368.f0,  *(float*)&x53
               ) > (
               x54 = box←v11280.f2,  *(float*)&x54
               ))) {
SOURCE(3336, 14)
               box←v11280.f2 = p←v11368.f0;
               };
            };
SOURCE(3352, 37)
         {
            word x55;
            word x56;
            if (((
               x55 = p←v11368.f1,  *(float*)&x55
               ) < (
               x56 = box←v11280.f1,  *(float*)&x56
               ))) {
SOURCE(3375, 14)
               box←v11280.f1 = p←v11368.f1;
               };
            };
SOURCE(3391, 37)
         {
            word x57;
            word x58;
            if (((
               x57 = p←v11368.f1,  *(float*)&x57
               ) > (
               x58 = box←v11280.f3,  *(float*)&x58
               ))) {
SOURCE(3414, 14)
               box←v11280.f3 = p←v11368.f1;
               };
            };
         };
      i←v11324 = (i←v11324 + 1);
      if ((i←v11324 < noName←c46588)) {
         goto lab←L100015;
         };
      lab←L100012: ;
      };
SOURCE(3439, 12)
   var←c6416 = box←v11280;
   /* removed tail goto */ 
   (*  (W4Pt) formal←c081 ) = var←c6416;
   return;
   }

static void ExtendBB←P780(formal←c085, b0←v6476, b1←v6504)
   word formal←c085;
   W4 b0←v6476;
   W4 b1←v6504;
   {
   word var←c01012;
   word var←c01013;
   word var←c01014;
   word var←c01015;
   /* ExtendBB: */ 
SOURCE(3457, 169)
   /* Return var split */ 
SOURCE(3524, 102)
   {
      word x59;
      word x60;
      *(float*)&var←c01012 = (
         x59 = b0←v6476.f0,  *(float*)&x59
         ) + (
         x60 = b1←v6504.f0,  *(float*)&x60
         );
      };
   {
      word x61;
      word x62;
      *(float*)&var←c01013 = (
         x61 = b0←v6476.f1,  *(float*)&x61
         ) + (
         x62 = b1←v6504.f1,  *(float*)&x62
         );
      };
   {
      word x63;
      word x64;
      *(float*)&var←c01014 = (
         x63 = b0←v6476.f2,  *(float*)&x63
         ) + (
         x64 = b1←v6504.f2,  *(float*)&x64
         );
      };
   {
      word x65;
      word x66;
      *(float*)&var←c01015 = (
         x65 = b0←v6476.f3,  *(float*)&x65
         ) + (
         x66 = b1←v6504.f3,  *(float*)&x66
         );
      };
   /* removed tail goto */ 
   (* (( (ptr) formal←c085)+3) ) = var←c01015;
   (* (( (ptr) formal←c085)+2) ) = var←c01014;
   (* (( (ptr) formal←c085)+1) ) = var←c01013;
   (*  (ptr) formal←c085 ) = var←c01012;
   return;
   }

static void SubDivideParabola←P840(formal←c098, b←v6644, formal←c0981)
   word formal←c098;
   W6 b←v6644;
   word formal←c0981;
   {
   W8 var←c58940;
   /* declaration of t←v6672 skipped */ 
   W6 low←v6716;
   W6 high←v6744;
   /* declaration of var←c46652 skipped */ 
   /* declaration of s←v11412 skipped */ 
   W2 q1←v11468;
   W2 q2←v11496;
   W2 qp1←v11524;
   var←c58940.f4/* t←v6672 */  = formal←c0981;
   /* SubDivideParabola: */ 
SOURCE(3674, 343)
   {
      word tmpAddr67;
      tmpAddr67 = (word) (( (ptr) &var←c58940)+5)/* var←c46652 */ ;
      (*  (ptr) tmpAddr67 ) = ( ((word)  (fPt) Interpolate←P2148) );
      (* (( (ptr) tmpAddr67) + 1) ) = 1;
      };
SOURCE(3767, 13)
   {
      word x68;
      word x69;
      *(float*)&var←c58940.f7/* s←v11412 */  = (
         x68 = (*  (ptr) &fc20 ),  *(float*)&x68
         ) - (
         x69 = var←c58940.f4/* t←v6672 */ ,  *(float*)&x69
         );
      };
SOURCE(3869, 34)
   (void) Interpolate←P2148((word) &q1←v11468, (*  (W2Pt) &b←v6644 ), (*  (W2Pt) (( (ptr) &b←v6644)+2) ), (word) (( (bPt) &var←c58940)+20)
      /* var←c46652 */ );
SOURCE(3905, 33)
   (void) Interpolate←P2148((word) &q2←v11496, (*  (W2Pt) (( (ptr) &b←v6644)+2) ), (*  (W2Pt) (( (ptr) &b←v6644)+4) ), (word) (
         ( (bPt) &var←c58940)+20)/* var←c46652 */ );
SOURCE(3940, 30)
   (void) Interpolate←P2148((word) &qp1←v11524, q1←v11468, q2←v11496, (word) (( (bPt) &var←c58940)+20)/* var←c46652 */ );
SOURCE(3972, 21)
   (*  (W2Pt) &low←v6716 ) = (*  (W2Pt) &b←v6644 );
   (*  (W2Pt) (( (ptr) &low←v6716)+2) ) = q1←v11468;
   (*  (W2Pt) (( (ptr) &low←v6716)+4) ) = qp1←v11524;
SOURCE(3995, 22)
   (*  (W2Pt) &high←v6744 ) = qp1←v11524;
   (*  (W2Pt) (( (ptr) &high←v6744)+2) ) = q2←v11496;
   (*  (W2Pt) (( (ptr) &high←v6744)+4) ) = (*  (W2Pt) (( (ptr) &b←v6644)+4) );
   /* removed tail goto */ 
   (*  (W6Pt) formal←c098 ) = low←v6716;
   (*  (W6Pt) (( (ptr) formal←c098)+6) ) = high←v6744;
   return;
   }

static void Interpolate←P2148(formal←c0102, a←v11600, b←v11628, formal←c58972)
   word formal←c0102;
   W2 a←v11600;
   W2 b←v11628;
   word formal←c58972;
   {
   word var←c01016;
   word var←c01017;
   formal←c58972 = (formal←c58972 - 20);
   /* Interpolate: */ 
SOURCE(3782, 84)
   /* Return var split */ 
SOURCE(3830, 36)
   {
      word x70;
      word x71;
      word x72;
      word x73;
      *(float*)&var←c01016 = ((
         x70 = a←v11600.f0,  *(float*)&x70
         ) * (
         x71 = (* (( (ptr) formal←c58972)+7) ),  *(float*)&x71
         )) + ((
         x72 = b←v11628.f0,  *(float*)&x72
         ) * (
         x73 = (* (( (ptr) formal←c58972)+4) ),  *(float*)&x73
         ));
      };
   {
      word x74;
      word x75;
      word x76;
      word x77;
      *(float*)&var←c01017 = ((
         x74 = a←v11600.f1,  *(float*)&x74
         ) * (
         x75 = (* (( (ptr) formal←c58972)+7) ),  *(float*)&x75
         )) + ((
         x76 = b←v11628.f1,  *(float*)&x76
         ) * (
         x77 = (* (( (ptr) formal←c58972)+4) ),  *(float*)&x77
         ));
      };
   /* removed tail goto */ 
   (* (( (ptr) formal←c0102)+1) ) = var←c01017;
   (*  (ptr) formal←c0102 ) = var←c01016;
   return;
   }

static word TraverseParabola←P900(pen←v6904, p←v6932, vertex←v6960, endVertex←v6988, lineTo←v7016, conicTo←v7044, turning←v7072)
   word pen←v6904;
   W6 p←v6932;
   word vertex←v6960;
   word endVertex←v6988;
   word lineTo←v7016;
   word conicTo←v7044;
   word turning←v7072;
   {
   word var←c7116;
   word penSize←v11700;
   word max←v11728;
   W2 delta0←v11812;
   W2 delta1←v11840;
   W2 offset←v11868;
   word t←v11896;
   W6 b←v11924;
   word turnRight←v11952;
   /* TraverseParabola: */ 
SOURCE(4067, 1591)
SOURCE(4245, 23)
   penSize←v11700 = (* (( (ptr) pen←v6904)+5) );
SOURCE(4270, 20)
   max←v11728 = SGNCK((penSize←v11700 - 1));
SOURCE(4460, 29)
   {
      W2 v1←v42080;
      W2 v2←v42108;
      v1←v42080 = (*  (W2Pt) (( (ptr) &p←v6932)+2) );
      v2←v42108 = (*  (W2Pt) &p←v6932 );
SOURCE(1759, 31)
      {
         word x78;
         word x79;
         *(float*)&delta0←v11812.f0 = (
            x78 = v1←v42080.f0,  *(float*)&x78
            ) - (
            x79 = v2←v42108.f0,  *(float*)&x79
            );
         };
      {
         word x80;
         word x81;
         *(float*)&delta0←v11812.f1 = (
            x80 = v1←v42080.f1,  *(float*)&x80
            ) - (
            x81 = v2←v42108.f1,  *(float*)&x81
            );
         };
      };
SOURCE(4491, 29)
   {
      W2 v1←v42004;
      W2 v2←v42032;
      v1←v42004 = (*  (W2Pt) (( (ptr) &p←v6932)+4) );
      v2←v42032 = (*  (W2Pt) (( (ptr) &p←v6932)+2) );
SOURCE(1759, 31)
      {
         word x82;
         word x83;
         *(float*)&delta1←v11840.f0 = (
            x82 = v1←v42004.f0,  *(float*)&x82
            ) - (
            x83 = v2←v42032.f0,  *(float*)&x83
            );
         };
      {
         word x84;
         word x85;
         *(float*)&delta1←v11840.f1 = (
            x84 = v1←v42004.f1,  *(float*)&x84
            ) - (
            x85 = v2←v42032.f1,  *(float*)&x85
            );
         };
      };
SOURCE(4522, 25)
   {
      word limit86;
      offset←v11868 = (* (( (W2Pt) (( (ptr) pen←v6904)+6))+(
            limit86 = (* (( (ptr) pen←v6904)+5) ),
            BCK(vertex←v6960, limit86)
            )) );
      };
SOURCE(4549, 13)
   t←v11896 = (*  (ptr) &fc34 );
SOURCE(4564, 21)
   b←v11924 = p←v6932;
SOURCE(4587, 125)
   {
      word var←c46844;
      var←c46844 = turning←v7072;
      {
         word x87;
         word x88;
         word x89;
         word x90;
         word x91;
         if ((var←c46844 == 1)) {
            turnRight←v11952 = 0;
            }
         else {
            if ((var←c46844 == 2)) {
               turnRight←v11952 = 1;
               }
            else {
               turnRight←v11952 =  (unsigned) (((
                  x87 = delta0←v11812.f0,  *(float*)&x87
                  ) * (
                  x88 = delta1←v11840.f1,  *(float*)&x88
                  )) - ((
                  x89 = delta0←v11812.f1,  *(float*)&x89
                  ) * (
                  x90 = delta1←v11840.f0,  *(float*)&x90
                  )) < (
                  x91 = (*  (ptr) &fc34 ),  *(float*)&x91
                  ));
               };
            };
         };
      };
SOURCE(4830, 689)
   lab←L100023: ;
   if ((vertex←v6960 != endVertex←v6988)) {
      }
   else {
      goto lab←L100021;
      };
   {
      word nextVertex←v12204;
      W2 nextDirection←v12232;
      word d0←v12260;
      word d1←v12288;
      word r←v12316;
      word newT←v12344;
      W6 b0←v12372;
      W6 b1←v12400;
SOURCE(4858, 66)
      nextVertex←v12204 =  ( (0 != turnRight←v11952) ?  ( (vertex←v6960 == 0) ? max←v11728 : (vertex←v6960 - 1) )  :  ( (vertex←v6960 == max←v11728) ? 0 : (vertex←v6960 + 
      1) )  ) ;
SOURCE(4926, 49)
      {
         W2 v1←v41956;
         {
            word limit92;
            v1←v41956 = (* (( (W2Pt) (( (ptr) pen←v6904)+6))+(
                  limit92 = (* (( (ptr) pen←v6904)+5) ),
                  BCK(nextVertex←v12204, limit92)
                  )) );
            };
SOURCE(1759, 31)
         {
            word x93;
            word x94;
            *(float*)&nextDirection←v12232.f0 = (
               x93 = v1←v41956.f0,  *(float*)&x93
               ) - (
               x94 = offset←v11868.f0,  *(float*)&x94
               );
            };
         {
            word x95;
            word x96;
            *(float*)&nextDirection←v12232.f1 = (
               x95 = v1←v41956.f1,  *(float*)&x95
               ) - (
               x96 = offset←v11868.f1,  *(float*)&x96
               );
            };
         };
SOURCE(4977, 53)
      {
         word x97;
         word x98;
         word x99;
         word x100;
         *(float*)&d0←v12260 = ((
            x97 = delta0←v11812.f0,  *(float*)&x97
            ) * (
            x98 = nextDirection←v12232.f1,  *(float*)&x98
            )) - ((
            x99 = delta0←v11812.f1,  *(float*)&x99
            ) * (
            x100 = nextDirection←v12232.f0,  *(float*)&x100
            ));
         };
SOURCE(5032, 53)
      {
         word x101;
         word x102;
         word x103;
         word x104;
         *(float*)&d1←v12288 = ((
            x101 = delta1←v11840.f0,  *(float*)&x101
            ) * (
            x102 = nextDirection←v12232.f1,  *(float*)&x102
            )) - ((
            x103 = delta1←v11840.f1,  *(float*)&x103
            ) * (
            x104 = nextDirection←v12232.f0,  *(float*)&x104
            ));
         };
SOURCE(5087, 45)
      {
         word x105;
         word x106;
         word x107;
         word x108;
         word x109;
         float tf110;
         r←v12316 =  ( ((
            x105 = d0←v12260,  *(float*)&x105
            ) == (
            x106 = d1←v12288,  *(float*)&x106
            )) ? (*  (ptr) &fc20 ) : (
            tf110 = (
               x107 = d0←v12260,  *(float*)&x107
               ) / ((
               x108 = d0←v12260,  *(float*)&x108
               ) - (
               x109 = d1←v12288,  *(float*)&x109
               )),  *(word*)&tf110
            ) ) ;
         };
SOURCE(5134, 48)
      {
         word x111;
         word x112;
         word x113;
         word x114;
         newT←v12344 =  ( (((
            x111 = r←v12316,  *(float*)&x111
            ) < (
            x112 = t←v11896,  *(float*)&x112
            )) || ((
            x113 = r←v12316,  *(float*)&x113
            ) > (
            x114 = (*  (ptr) &fc20 ),  *(float*)&x114
            ))) ? (*  (ptr) &fc20 ) : r←v12316 ) ;
         };
SOURCE(5208, 74)
      {
         W12 var←c46940;
         {
            word x115;
            word x116;
            word x117;
            word x118;
            word x119;
            word x120;
            float tf121;
            (void) SubDivideParabola←P840((word) &var←c46940, b←v11924,  ( ((
                  x115 = t←v11896,  *(float*)&x115
                  ) == (
                  x116 = (*  (ptr) &fc20 ),  *(float*)&x116
                  )) ? (*  (ptr) &fc20 ) : (
                  tf121 = ((
                     x117 = newT←v12344,  *(float*)&x117
                     ) - (
                     x118 = t←v11896,  *(float*)&x118
                     )) / ((
                     x119 = (*  (ptr) &fc20 ),  *(float*)&x119
                     ) - (
                     x120 = t←v11896,  *(float*)&x120
                     )),  *(word*)&tf121
                  ) ) );
            };
         b1←v12400 = (*  (W6Pt) (( (ptr) &var←c46940)+6) );
         b0←v12372 = (*  (W6Pt) &var←c46940 );
         };
SOURCE(5284, 52)
      {
         W2 var←c46972;
         W2 var←c47068;
         {
            W2 v1←v41384;
            v1←v41384 = (*  (W2Pt) (( (ptr) &b0←v12372)+2) );
SOURCE(1675, 31)
            {
               word x122;
               word x123;
               *(float*)&var←c46972.f0 = (
                  x122 = v1←v41384.f0,  *(float*)&x122
                  ) + (
                  x123 = offset←v11868.f0,  *(float*)&x123
                  );
               };
            {
               word x124;
               word x125;
               *(float*)&var←c46972.f1 = (
                  x124 = v1←v41384.f1,  *(float*)&x124
                  ) + (
                  x125 = offset←v11868.f1,  *(float*)&x125
                  );
               };
            };
         {
            W2 v1←v41336;
            v1←v41336 = (*  (W2Pt) (( (ptr) &b0←v12372)+4) );
SOURCE(1675, 31)
            {
               word x126;
               word x127;
               *(float*)&var←c47068.f0 = (
                  x126 = v1←v41336.f0,  *(float*)&x126
                  ) + (
                  x127 = offset←v11868.f0,  *(float*)&x127
                  );
               };
            {
               word x128;
               word x129;
               *(float*)&var←c47068.f1 = (
                  x128 = v1←v41336.f1,  *(float*)&x128
                  ) + (
                  x129 = offset←v11868.f1,  *(float*)&x129
                  );
               };
            };
         (void) ( *( (fPt) ((*  (ptr) conicTo←v7044 ))))(var←c46972, var←c47068, (*  (ptr) &fc1 ), conicTo←v7044);
         };
SOURCE(5338, 19)
      vertex←v6960 = nextVertex←v12204;
SOURCE(5359, 20)
      {
         word limit130;
         offset←v11868 = (* (( (W2Pt) (( (ptr) pen←v6904)+6))+(
               limit130 = (* (( (ptr) pen←v6904)+5) ),
               BCK(vertex←v6960, limit130)
               )) );
         };
SOURCE(5381, 26)
      {
         W2 var←c47164;
         {
            W2 v1←v41288;
            v1←v41288 = (*  (W2Pt) &b1←v12400 );
SOURCE(1675, 31)
            {
               word x131;
               word x132;
               *(float*)&var←c47164.f0 = (
                  x131 = v1←v41288.f0,  *(float*)&x131
                  ) + (
                  x132 = offset←v11868.f0,  *(float*)&x132
                  );
               };
            {
               word x133;
               word x134;
               *(float*)&var←c47164.f1 = (
                  x133 = v1←v41288.f1,  *(float*)&x133
                  ) + (
                  x134 = offset←v11868.f1,  *(float*)&x134
                  );
               };
            };
         (void) ( *( (fPt) ((*  (ptr) lineTo←v7016 ))))(var←c47164, lineTo←v7016);
         };
SOURCE(5409, 6)
      b←v11924 = b1←v12400;
SOURCE(5511, 8)
      t←v11896 = newT←v12344;
      };
   goto lab←L100023;
   lab←L100021: ;
SOURCE(5530, 81)
   if ( ! XR←EqualWords(&b←v11924, (( (ptr) &b←v11924)+2), 2) ||  ! XR←EqualWords((( (ptr) &b←v11924)+2), (( (ptr) &b←v11924)+4)
      , 2)) {
SOURCE(5561, 50)
      {
         W2 var←c47260;
         W2 var←c47356;
         {
            W2 v1←v41240;
            v1←v41240 = (*  (W2Pt) (( (ptr) &b←v11924)+2) );
SOURCE(1675, 31)
            {
               word x135;
               word x136;
               *(float*)&var←c47260.f0 = (
                  x135 = v1←v41240.f0,  *(float*)&x135
                  ) + (
                  x136 = offset←v11868.f0,  *(float*)&x136
                  );
               };
            {
               word x137;
               word x138;
               *(float*)&var←c47260.f1 = (
                  x137 = v1←v41240.f1,  *(float*)&x137
                  ) + (
                  x138 = offset←v11868.f1,  *(float*)&x138
                  );
               };
            };
         {
            W2 v1←v41192;
            v1←v41192 = (*  (W2Pt) (( (ptr) &b←v11924)+4) );
SOURCE(1675, 31)
            {
               word x139;
               word x140;
               *(float*)&var←c47356.f0 = (
                  x139 = v1←v41192.f0,  *(float*)&x139
                  ) + (
                  x140 = offset←v11868.f0,  *(float*)&x140
                  );
               };
            {
               word x141;
               word x142;
               *(float*)&var←c47356.f1 = (
                  x141 = v1←v41192.f1,  *(float*)&x141
                  ) + (
                  x142 = offset←v11868.f1,  *(float*)&x142
                  );
               };
            };
         (void) ( *( (fPt) ((*  (ptr) conicTo←v7044 ))))(var←c47260, var←c47356, (*  (ptr) &fc1 ), conicTo←v7044);
         };
      };
SOURCE(5613, 45)
   if ((0 != turnRight←v11952)) {
      return(1);
      }
   else {
      return(2);
      };
   }

static word Intersect←P960(a←v7320, b←v7348)
   word a←v7320;
   word b←v7348;
   {
   word var←c7392;
   /* Intersect: */ 
SOURCE(5765, 110)
SOURCE(5817, 58)
   return((word) XRM←BITAND(a←v7320, b←v7348));
   }

static void PenStroke←P1020(path←v7452, formal←c0982, formal←c0983, formal←c0984, formal←c0985, formal←c0986, formal←c0987, formal←c0988, box←v7676, formal←c0989)
   word path←v7452;
   word formal←c0982;
   word formal←c0983;
   word formal←c0984;
   word formal←c0985;
   word formal←c0986;
   word formal←c0987;
   word formal←c0988;
   W4 box←v7676;
   word formal←c0989;
   {
   W50 var←c59004;
   /* declaration of pen←v7480 skipped */ 
   /* declaration of closed←v7508 skipped */ 
   /* declaration of moveTo←v7536 skipped */ 
   /* declaration of lineTo←v7564 skipped */ 
   /* declaration of conicTo←v7592 skipped */ 
   /* declaration of end←v7620 skipped */ 
   /* declaration of joint←v7648 skipped */ 
   /* declaration of cull←v7704 skipped */ 
   /* declaration of var←c47484 skipped */ 
   /* declaration of var←c47516 skipped */ 
   /* declaration of var←c47548 skipped */ 
   /* declaration of var←c47580 skipped */ 
   /* declaration of var←c47612 skipped */ 
   /* declaration of var←c47644 skipped */ 
   /* declaration of var←c47676 skipped */ 
   /* declaration of var←c47708 skipped */ 
   /* declaration of var←c47740 skipped */ 
   /* declaration of bb←v12444 skipped */ 
   /* declaration of where←v12500 skipped */ 
   /* declaration of first←v12528 skipped */ 
   /* declaration of last←v12556 skipped */ 
   /* declaration of depth←v12696 skipped */ 
   /* declaration of inCurve←v12724 skipped */ 
   /* declaration of firstHalf←v12836 skipped */ 
   (* (( (ptr) &var←c59004)+4)/* pen←v7480 */  ) = formal←c0982;
   (* (( (ptr) &var←c59004)+5)/* closed←v7508 */  ) = formal←c0983;
   (* (( (ptr) &var←c59004)+6)/* moveTo←v7536 */  ) = formal←c0984;
   (* (( (ptr) &var←c59004)+7)/* lineTo←v7564 */  ) = formal←c0985;
   (* (( (ptr) &var←c59004)+8)/* conicTo←v7592 */  ) = formal←c0986;
   (* (( (ptr) &var←c59004)+9)/* end←v7620 */  ) = formal←c0987;
   (* (( (ptr) &var←c59004)+10)/* joint←v7648 */  ) = formal←c0988;
   (* (( (ptr) &var←c59004)+11)/* cull←v7704 */  ) = formal←c0989;
   /* PenStroke: */ 
SOURCE(5923, 6063)
   {
      word tmpAddr143;
      tmpAddr143 = (word) (( (ptr) &var←c59004)+12)/* var←c47484 */ ;
      (*  (ptr) tmpAddr143 ) = ( ((word)  (fPt) Arc←P2916) );
      (* (( (ptr) tmpAddr143) + 1) ) = 1;
      };
   {
      word tmpAddr144;
      tmpAddr144 = (word) (( (ptr) &var←c59004)+14)/* var←c47516 */ ;
      (*  (ptr) tmpAddr144 ) = ( ((word)  (fPt) Curve←P2856) );
      (* (( (ptr) tmpAddr144) + 1) ) = 1;
      };
   {
      word tmpAddr145;
      tmpAddr145 = (word) (( (ptr) &var←c59004)+16)/* var←c47548 */ ;
      (*  (ptr) tmpAddr145 ) = ( ((word)  (fPt) Conic←P2796) );
      (* (( (ptr) tmpAddr145) + 1) ) = 1;
      };
   {
      word tmpAddr146;
      tmpAddr146 = (word) (( (ptr) &var←c59004)+18)/* var←c47580 */ ;
      (*  (ptr) tmpAddr146 ) = ( ((word)  (fPt) Line←P2736) );
      (* (( (ptr) tmpAddr146) + 1) ) = 1;
      };
   {
      word tmpAddr147;
      tmpAddr147 = (word) (( (ptr) &var←c59004)+20)/* var←c47612 */ ;
      (*  (ptr) tmpAddr147 ) = ( ((word)  (fPt) Parabola←P2676) );
      (* (( (ptr) tmpAddr147) + 1) ) = 1;
      };
   {
      word tmpAddr148;
      tmpAddr148 = (word) (( (ptr) &var←c59004)+22)/* var←c47644 */ ;
      (*  (ptr) tmpAddr148 ) = ( ((word)  (fPt) RoundJoint←P2616) );
      (* (( (ptr) tmpAddr148) + 1) ) = 1;
      };
   {
      word tmpAddr149;
      tmpAddr149 = (word) (( (ptr) &var←c59004)+24)/* var←c47676 */ ;
      (*  (ptr) tmpAddr149 ) = ( ((word)  (fPt) Move←P2556) );
      (* (( (ptr) tmpAddr149) + 1) ) = 1;
      };
   {
      word tmpAddr150;
      tmpAddr150 = (word) (( (ptr) &var←c59004)+26)/* var←c47708 */ ;
      (*  (ptr) tmpAddr150 ) = ( ((word)  (fPt) Finish←P2496) );
      (* (( (ptr) tmpAddr150) + 1) ) = 1;
      };
   {
      word tmpAddr151;
      tmpAddr151 = (word) (( (ptr) &var←c59004)+28)/* var←c47740 */ ;
      (*  (ptr) tmpAddr151 ) = ( ((word)  (fPt) RegionOf←P2376) );
      (* (( (ptr) tmpAddr151) + 1) ) = 1;
      };
SOURCE(6247, 45)
   {
      W4 var←c47772;
      (void) PenBB←P720((word) &var←c47772, (* (( (ptr) &var←c59004)+4)/* pen←v7480 */  ));
      {
         W4 var←c0170;
         (void) ExtendBB←P780((word) &var←c0170, var←c47772, box←v7676);
         (*  (W4Pt) (( (ptr) &var←c59004)+30)/* bb←v12444 */  ) = var←c0170;
         };
      };
SOURCE(6432, 7)
   (* (( (ptr) &var←c59004)+34)/* where←v12500 */  ) = 0;
SOURCE(6480, 17)
   (* (( (ptr) &var←c59004)+35) ) = 2139095042;
   (* (( (ptr) &var←c59004)+36) ) = 2139095042;
   (* (( (ptr) &var←c59004)+37) ) = 2139095042;
   (* (( (ptr) &var←c59004)+38) ) = 2139095042;
   (* (( (ptr) &var←c59004)+39) ) = 2147483647;
   (* (( (ptr) &var←c59004)+40) ) = 2147483647;
SOURCE(6499, 16)
   (* (( (ptr) &var←c59004)+41) ) = 2139095042;
   (* (( (ptr) &var←c59004)+42) ) = 2139095042;
   (* (( (ptr) &var←c59004)+43) ) = 2139095042;
   (* (( (ptr) &var←c59004)+44) ) = 2139095042;
   (* (( (ptr) &var←c59004)+45) ) = 2147483647;
   (* (( (ptr) &var←c59004)+46) ) = 2147483647;
SOURCE(7637, 14)
   (* (( (ptr) &var←c59004)+47)/* depth←v12696 */  ) = 0;
SOURCE(7707, 21)
   (* (( (ptr) &var←c59004)+48)/* inCurve←v12724 */  ) = 0;
SOURCE(10628, 23)
   (* (( (ptr) &var←c59004)+49)/* firstHalf←v12836 */  ) = 0;
SOURCE(11941, 35)
   (void) ( *( (fPt) ((*  (ptr) path←v7452 ))))((word) (( (bPt) &var←c59004)+96)/* var←c47676 */ , (word) (( (bPt) &var←c59004)+72)
      /* var←c47580 */ , (word) (( (bPt) &var←c59004)+56)/* var←c47516 */ , (word) (( (bPt) &var←c59004)+64)/* var←c47548 */ , (word) (
         ( (bPt) &var←c59004)+48)/* var←c47484 */ , path←v7452);
SOURCE(11978, 8)
   (void) Finish←P2496((word) ((( (bPt) &var←c59004)+104)/* var←c47708 */ ));
   }

static word RegionOf←P2376(p←v12968, formal←c59036)
   W2 p←v12968;
   word formal←c59036;
   {
   word var←c13012;
   formal←c59036 = (formal←c59036 - 112);
   /* RegionOf: */ 
SOURCE(6294, 135)
SOURCE(6339, 90)
   {
      word x152;
      word x153;
      word x154;
      word x155;
      word x156;
      word x157;
      word x158;
      word x159;
      return((((word) (((word) (((word)  (unsigned) ((
         x152 = p←v12968.f0,  *(float*)&x152
         ) < (
         x153 = (* (( (ptr) formal←c59036)+30) ),  *(float*)&x153
         )) << 1) +  (unsigned) ((
         x154 = p←v12968.f0,  *(float*)&x154
         ) > (
         x155 = (* (( (ptr) formal←c59036)+32) ),  *(float*)&x155
         ))) << 1) +  (unsigned) ((
         x156 = p←v12968.f1,  *(float*)&x156
         ) < (
         x157 = (* (( (ptr) formal←c59036)+31) ),  *(float*)&x157
         ))) << 1) +  (unsigned) ((
         x158 = p←v12968.f1,  *(float*)&x158
         ) > (
         x159 = (* (( (ptr) formal←c59036)+33) ),  *(float*)&x159
         ))));
      };
   }

static void Finish←P2496(formal←c59068)
   word formal←c59068;
   {
   formal←c59068 = (formal←c59068 - 104);
   /* Finish: */ 
SOURCE(6603, 789)
SOURCE(6620, 735)
   {
      word var←c47900;
      var←c47900 = (* (( (ptr) formal←c59068)+34) );
      if ((var←c47900 == 0)) {
         }
      else {
         if ((var←c47900 == 1)) {
SOURCE(6671, 36)
            {
               W2 var←c47932;
               {
                  W2 var←c47964;
                  W2 v1←v41116;
                  W2 v2←v41144;
                  v1←v41116 = (*  (W2Pt) (( (ptr) formal←c59068)+41) );
                  {
                     word idx160;
                     word limit161;
                     v2←v41144 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59068)+4) ))+6))+(
                           idx160 = (* (( (ptr) formal←c59068)+46) ),
                           limit161 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) ),
                           BCK(idx160, limit161)
                           )) );
                     };
SOURCE(1675, 31)
                  {
                     word x162;
                     word x163;
                     *(float*)&var←c47964.f0 = (
                        x162 = v1←v41116.f0,  *(float*)&x162
                        ) + (
                        x163 = v2←v41144.f0,  *(float*)&x163
                        );
                     };
                  {
                     word x164;
                     word x165;
                     *(float*)&var←c47964.f1 = (
                        x164 = v1←v41116.f1,  *(float*)&x164
                        ) + (
                        x165 = v2←v41144.f1,  *(float*)&x165
                        );
                     };
                  var←c47932 = var←c47964;
                  };
               {
                  word pd166;
                  pd166 = (* (( (ptr) formal←c59068)+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd166 ))))(var←c47932, pd166);
                  };
               };
SOURCE(6709, 58)
            {
               W2 var←c48028;
               {
                  word x167;
                  *(float*)&var←c48028.f0 =  - (
                     x167 = (* (( (ptr) formal←c59068)+43) ),  *(float*)&x167
                     );
                  };
               {
                  word x168;
                  *(float*)&var←c48028.f1 =  - (
                     x168 = (* (( (ptr) formal←c59068)+44) ),  *(float*)&x168
                     );
                  };
               {
                  word pd169;
                  pd169 = (* (( (ptr) formal←c59068)+9) );
                  (void) ( *( (fPt) ((*  (ptr) pd169 ))))((*  (W2Pt) (( (ptr) formal←c59068)+41) ), var←c48028, (* (( (ptr) formal←c59068)+46)
                      ), (* (( (ptr) formal←c59068)+45) ), pd169);
                  };
               };
SOURCE(6769, 42)
            {
               word pd170;
               pd170 = (* (( (ptr) formal←c59068)+9) );
               (void) ( *( (fPt) ((*  (ptr) pd170 ))))((*  (W2Pt) (( (ptr) formal←c59068)+41) ), (*  (W2Pt) (( (ptr) formal←c59068)+43) ), (* (
                     ( (ptr) formal←c59068)+45) ), (* (( (ptr) formal←c59068)+46) ), pd170);
               };
            }
         else {
SOURCE(6829, 526)
            if ((0 != (* (( (ptr) formal←c59068)+5) ))) {
SOURCE(6846, 13)
               (void) Line←P2736((*  (W2Pt) (( (ptr) formal←c59068)+35) ), (word) (( (bPt) formal←c59068)+72));
SOURCE(6861, 391)
               {
                  word var←c48092;
                  {
                     W2 v1←v45264;
                     W2 v2←v45292;
                     v1←v45264 = (*  (W2Pt) (( (ptr) formal←c59068)+43) );
                     v2←v45292 = (*  (W2Pt) (( (ptr) formal←c59068)+37) );
                     {
                        word x171;
                        word x172;
                        word x173;
                        word x174;
                        *(float*)&var←c48092 = ((
                           x171 = v1←v45264.f0,  *(float*)&x171
                           ) * (
                           x172 = v2←v45292.f1,  *(float*)&x172
                           )) - ((
                           x173 = v1←v45264.f1,  *(float*)&x173
                           ) * (
                           x174 = v2←v45292.f0,  *(float*)&x174
                           ));
                        };
                     };
                  {
                     word x175;
                     word x176;
                     word x192;
                     word x193;
                     if (((
                        x175 = var←c48092,  *(float*)&x175
                        ) > (
                        x176 = (*  (ptr) &fc34 ),  *(float*)&x176
                        ))) {
SOURCE(6919, 36)
                        {
                           W2 var←c48124;
                           {
/*1*/   W2 var←c48156;
/*1*/   W2 v1←v41040;
/*1*/   W2 v2←v41068;
/*1*/   v1←v41040 = (*  (W2Pt) (( (ptr) formal←c59068)+41) );
/*1*/   {
/*1*/      word idx177;
/*1*/      word limit178;
/*1*/      v2←v41068 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59068)+4) ))+6))+(
/*1*/            idx177 = (* (( (ptr) formal←c59068)+46) ),
/*1*/            limit178 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) ),
/*1*/            BCK(idx177, limit178)
/*1*/            )) );
/*1*/      };
SOURCE(1675, 31)
/*1*/   {
/*1*/      word x179;
/*1*/      word x180;
/*1*/      *(float*)&var←c48156.f0 = (
/*1*/         x179 = v1←v41040.f0,  *(float*)&x179
/*1*/         ) + (
/*1*/         x180 = v2←v41068.f0,  *(float*)&x180
/*1*/         );
/*1*/      };
/*1*/   {
/*1*/      word x181;
/*1*/      word x182;
/*1*/      *(float*)&var←c48156.f1 = (
/*1*/         x181 = v1←v41040.f1,  *(float*)&x181
/*1*/         ) + (
/*1*/         x182 = v2←v41068.f1,  *(float*)&x182
/*1*/         );
/*1*/      };
/*1*/   var←c48124 = var←c48156;
/*1*/   };
                           {
/*1*/   word pd183;
/*1*/   pd183 = (* (( (ptr) formal←c59068)+6) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd183 ))))(var←c48124, pd183);
/*1*/   };
                           };
SOURCE(6957, 18)
SOURCE(6556, 44)
                        {
                           word pd184;
                           pd184 = (* (( (ptr) formal←c59068)+10) );
                           (void) ( *( (fPt) ((*  (ptr) pd184 ))))((*  (W2Pt) (( (ptr) formal←c59068)+41) ), (*  (W2Pt) (( (ptr) formal←c59068)+43) ), (*  (W2Pt) (
/*1*/      ( (ptr) formal←c59068)+37) ), (* (( (ptr) formal←c59068)+46) ), (* (( (ptr) formal←c59068)+40) ), pd184);
                           };
SOURCE(6977, 35)
                        {
                           W2 var←c48220;
                           {
/*1*/   W2 var←c48252;
/*1*/   W2 v1←v40964;
/*1*/   W2 v2←v40992;
/*1*/   v1←v40964 = (*  (W2Pt) (( (ptr) formal←c59068)+41) );
/*1*/   {
/*1*/      word idx185;
/*1*/      word limit186;
/*1*/      v2←v40992 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59068)+4) ))+6))+(
/*1*/            idx185 = (* (( (ptr) formal←c59068)+45) ),
/*1*/            limit186 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) ),
/*1*/            BCK(idx185, limit186)
/*1*/            )) );
/*1*/      };
SOURCE(1675, 31)
/*1*/   {
/*1*/      word x187;
/*1*/      word x188;
/*1*/      *(float*)&var←c48252.f0 = (
/*1*/         x187 = v1←v40964.f0,  *(float*)&x187
/*1*/         ) + (
/*1*/         x188 = v2←v40992.f0,  *(float*)&x188
/*1*/         );
/*1*/      };
/*1*/   {
/*1*/      word x189;
/*1*/      word x190;
/*1*/      *(float*)&var←c48252.f1 = (
/*1*/         x189 = v1←v40964.f1,  *(float*)&x189
/*1*/         ) + (
/*1*/         x190 = v2←v40992.f1,  *(float*)&x190
/*1*/         );
/*1*/      };
/*1*/   var←c48220 = var←c48252;
/*1*/   };
                           {
/*1*/   word pd191;
/*1*/   pd191 = (* (( (ptr) formal←c59068)+7) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd191 ))))(var←c48220, pd191);
/*1*/   };
                           };
                        }
                     else {
                        if (((
                           x192 = var←c48092,  *(float*)&x192
                           ) < (
                           x193 = (*  (ptr) &fc34 ),  *(float*)&x193
                           ))) {
SOURCE(7026, 36)
                           {
/*1*/   W2 var←c48316;
/*1*/   {
/*1*/      W2 var←c48348;
/*1*/      W2 v1←v40888;
/*1*/      W2 v2←v40916;
/*1*/      v1←v40888 = (*  (W2Pt) (( (ptr) formal←c59068)+41) );
/*1*/      {
/*1*/         word idx194;
/*1*/         word limit195;
/*1*/         v2←v40916 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59068)+4) ))+6))+(
/*1*/               idx194 = (* (( (ptr) formal←c59068)+39) ),
/*1*/               limit195 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) ),
/*1*/               BCK(idx194, limit195)
/*1*/               )) );
/*1*/         };
SOURCE(1675, 31)
/*1*/      {
/*1*/         word x196;
/*1*/         word x197;
/*1*/         *(float*)&var←c48348.f0 = (
/*1*/            x196 = v1←v40888.f0,  *(float*)&x196
/*1*/            ) + (
/*1*/            x197 = v2←v40916.f0,  *(float*)&x197
/*1*/            );
/*1*/         };
/*1*/      {
/*1*/         word x198;
/*1*/         word x199;
/*1*/         *(float*)&var←c48348.f1 = (
/*1*/            x198 = v1←v40888.f1,  *(float*)&x198
/*1*/            ) + (
/*1*/            x199 = v2←v40916.f1,  *(float*)&x199
/*1*/            );
/*1*/         };
/*1*/      var←c48316 = var←c48348;
/*1*/      };
/*1*/   {
/*1*/      word pd200;
/*1*/      pd200 = (* (( (ptr) formal←c59068)+6) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd200 ))))(var←c48316, pd200);
/*1*/      };
/*1*/   };
SOURCE(7064, 36)
                           {
/*1*/   W6 s0←v43792;
/*1*/   W6 s1←v43820;
/*1*/   (void) Reverse←P660((word) &s0←v43792, (*  (W6Pt) (( (ptr) formal←c59068)+35) ));
/*1*/   (void) Reverse←P660((word) &s1←v43820, (*  (W6Pt) (( (ptr) formal←c59068)+41) ));
SOURCE(6556, 44)
/*1*/   {
/*1*/      word pd201;
/*1*/      pd201 = (* (( (ptr) formal←c59068)+10) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd201 ))))((*  (W2Pt) &s0←v43792 ), (*  (W2Pt) (( (ptr) &s0←v43792)+2) ), (*  (W2Pt) (( (ptr) &s1←v43820)+2)
/*1*/          ), s0←v43792.f5, s1←v43820.f5, pd201);
/*1*/      };
/*1*/   };
SOURCE(7102, 37)
                           {
/*1*/   W2 var←c48412;
/*1*/   {
/*1*/      W2 var←c48444;
/*1*/      W2 v1←v40812;
/*1*/      W2 v2←v40840;
/*1*/      v1←v40812 = (*  (W2Pt) (( (ptr) formal←c59068)+41) );
/*1*/      {
/*1*/         word idx202;
/*1*/         word limit203;
/*1*/         v2←v40840 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59068)+4) ))+6))+(
/*1*/               idx202 = (* (( (ptr) formal←c59068)+40) ),
/*1*/               limit203 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) ),
/*1*/               BCK(idx202, limit203)
/*1*/               )) );
/*1*/         };
SOURCE(1675, 31)
/*1*/      {
/*1*/         word x204;
/*1*/         word x205;
/*1*/         *(float*)&var←c48444.f0 = (
/*1*/            x204 = v1←v40812.f0,  *(float*)&x204
/*1*/            ) + (
/*1*/            x205 = v2←v40840.f0,  *(float*)&x205
/*1*/            );
/*1*/         };
/*1*/      {
/*1*/         word x206;
/*1*/         word x207;
/*1*/         *(float*)&var←c48444.f1 = (
/*1*/            x206 = v1←v40812.f1,  *(float*)&x206
/*1*/            ) + (
/*1*/            x207 = v2←v40840.f1,  *(float*)&x207
/*1*/            );
/*1*/         };
/*1*/      var←c48412 = var←c48444;
/*1*/      };
/*1*/   {
/*1*/      word pd208;
/*1*/      pd208 = (* (( (ptr) formal←c59068)+7) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd208 ))))(var←c48412, pd208);
/*1*/      };
/*1*/   };
                           }
                        else {
SOURCE(7157, 27)
                           {
/*1*/   W2 var←c48508;
/*1*/   {
/*1*/      W2 var←c48540;
/*1*/      W2 v1←v40736;
/*1*/      W2 v2←v40764;
/*1*/      v1←v40736 = (*  (W2Pt) (( (ptr) formal←c59068)+41) );
/*1*/      {
/*1*/         word limit209;
/*1*/         v2←v40764 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59068)+4) ))+6))+(
/*1*/               limit209 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) ),
/*1*/               BCK(0, limit209)
/*1*/               )) );
/*1*/         };
SOURCE(1675, 31)
/*1*/      {
/*1*/         word x210;
/*1*/         word x211;
/*1*/         *(float*)&var←c48540.f0 = (
/*1*/            x210 = v1←v40736.f0,  *(float*)&x210
/*1*/            ) + (
/*1*/            x211 = v2←v40764.f0,  *(float*)&x211
/*1*/            );
/*1*/         };
/*1*/      {
/*1*/         word x212;
/*1*/         word x213;
/*1*/         *(float*)&var←c48540.f1 = (
/*1*/            x212 = v1←v40736.f1,  *(float*)&x212
/*1*/            ) + (
/*1*/            x213 = v2←v40764.f1,  *(float*)&x213
/*1*/            );
/*1*/         };
/*1*/      var←c48508 = var←c48540;
/*1*/      };
/*1*/   {
/*1*/      word pd214;
/*1*/      pd214 = (* (( (ptr) formal←c59068)+6) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd214 ))))(var←c48508, pd214);
/*1*/      };
/*1*/   };
SOURCE(7186, 66)
                           {
/*1*/   register word i←v13624 = 1;
/*1*/   register word noName←c48604;
/*1*/   noName←c48604 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) );
/*1*/   if ((i←v13624 >= noName←c48604)) {
/*1*/      goto lab←L100037;
/*1*/      };
/*1*/   lab←L100040: ;
SOURCE(7225, 27)
/*1*/   {
/*1*/      W2 var←c48636;
/*1*/      {
/*1*/         W2 var←c48668;
/*1*/         W2 v1←v40660;
/*1*/         W2 v2←v40688;
/*1*/         v1←v40660 = (*  (W2Pt) (( (ptr) formal←c59068)+41) );
/*1*/         {
/*1*/            word limit215;
/*1*/            v2←v40688 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59068)+4) ))+6))+(
/*1*/                  limit215 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) ),
/*1*/                  BCK(i←v13624, limit215)
/*1*/                  )) );
/*1*/            };
SOURCE(1675, 31)
/*1*/         {
/*1*/            word x216;
/*1*/            word x217;
/*1*/            *(float*)&var←c48668.f0 = (
/*1*/               x216 = v1←v40660.f0,  *(float*)&x216
/*1*/               ) + (
/*1*/               x217 = v2←v40688.f0,  *(float*)&x217
/*1*/               );
/*1*/            };
/*1*/         {
/*1*/            word x218;
/*1*/            word x219;
/*1*/            *(float*)&var←c48668.f1 = (
/*1*/               x218 = v1←v40660.f1,  *(float*)&x218
/*1*/               ) + (
/*1*/               x219 = v2←v40688.f1,  *(float*)&x219
/*1*/               );
/*1*/            };
/*1*/         var←c48636 = var←c48668;
/*1*/         };
/*1*/      {
/*1*/         word pd220;
/*1*/         pd220 = (* (( (ptr) formal←c59068)+7) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd220 ))))(var←c48636, pd220);
/*1*/         };
/*1*/      };
/*1*/   i←v13624 = (i←v13624 + 1);
/*1*/   if ((i←v13624 < noName←c48604)) {
/*1*/      goto lab←L100040;
/*1*/      };
/*1*/   lab←L100037: ;
/*1*/   };
                           };
                        };
                     };
                  };
               }
            else {
SOURCE(7275, 36)
               {
                  W2 var←c48732;
                  {
                     W2 var←c48764;
                     W2 v1←v40584;
                     W2 v2←v40612;
                     v1←v40584 = (*  (W2Pt) (( (ptr) formal←c59068)+41) );
                     {
                        word idx221;
                        word limit222;
                        v2←v40612 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59068)+4) ))+6))+(
/*1*/   idx221 = (* (( (ptr) formal←c59068)+46) ),
/*1*/   limit222 = (* (( (ptr) (* (( (ptr) formal←c59068)+4) ))+5) ),
/*1*/   BCK(idx221, limit222)
/*1*/   )) );
                        };
SOURCE(1675, 31)
                     {
                        word x223;
                        word x224;
                        *(float*)&var←c48764.f0 = (
                           x223 = v1←v40584.f0,  *(float*)&x223
                           ) + (
                           x224 = v2←v40612.f0,  *(float*)&x224
                           );
                        };
                     {
                        word x225;
                        word x226;
                        *(float*)&var←c48764.f1 = (
                           x225 = v1←v40584.f1,  *(float*)&x225
                           ) + (
                           x226 = v2←v40612.f1,  *(float*)&x226
                           );
                        };
                     var←c48732 = var←c48764;
                     };
                  {
                     word pd227;
                     pd227 = (* (( (ptr) formal←c59068)+6) );
                     (void) ( *( (fPt) ((*  (ptr) pd227 ))))(var←c48732, pd227);
                     };
                  };
SOURCE(7313, 42)
               {
                  word pd228;
                  pd228 = (* (( (ptr) formal←c59068)+9) );
                  (void) ( *( (fPt) ((*  (ptr) pd228 ))))((*  (W2Pt) (( (ptr) formal←c59068)+41) ), (*  (W2Pt) (( (ptr) formal←c59068)+43) ), (* (
                        ( (ptr) formal←c59068)+46) ), (* (( (ptr) formal←c59068)+45) ), pd228);
                  };
               };
            };
         };
      };
SOURCE(7363, 15)
   (* (( (ptr) formal←c59068)+34) ) = 0;
SOURCE(7380, 12)
   (* (( (ptr) formal←c59068)+41) ) = 2139095042;
   (* (( (ptr) formal←c59068)+42) ) = 2139095042;
   }

static void Move←P2556(p←v13276, formal←c59100)
   W2 p←v13276;
   word formal←c59100;
   {
   formal←c59100 = (formal←c59100 - 96);
   /* Move: */ 
SOURCE(7397, 87)
SOURCE(7421, 8)
   (void) Finish←P2496((word) ((( (bPt) formal←c59100)+104)));
SOURCE(7431, 33)
   (*  (W2Pt) (( (ptr) formal←c59100)+41) ) = p←v13276;
   (* (( (ptr) formal←c59100)+43) ) = (*  (ptr) &fc34 );
   (* (( (ptr) formal←c59100)+44) ) = (*  (ptr) &fc34 );
   (* (( (ptr) formal←c59100)+45) ) = 0;
   (* (( (ptr) formal←c59100)+46) ) = ((* (( (ptr) (* (( (ptr) formal←c59100)+4) ))+5) ) >> 1);
SOURCE(7466, 18)
   (* (( (ptr) formal←c59100)+34) ) = 1;
   }

static void RoundJoint←P2616(p←v13336, v0←v13364, v1←v13392, i0←v13420, i1←v13448, formal←c59132)
   W2 p←v13336;
   W2 v0←v13364;
   W2 v1←v13392;
   word i0←v13420;
   word i1←v13448;
   word formal←c59132;
   {
   formal←c59132 = (formal←c59132 - 88);
   /* RoundJoint: */ 
SOURCE(7489, 134)
SOURCE(7553, 70)
   lab←L100045: ;
   if ((i0←v13420 != i1←v13448)) {
      }
   else {
      goto lab←L100043;
      };
SOURCE(7570, 28)
   {
      word var←c48828;
      word c←v43712;
      word mod←v43744;
      mod←v43744 = (* (( (ptr) (* (( (ptr) formal←c59132)+4) ))+5) );
      {
         word var←c0944;
SOURCE(2143, 38)
         c←v43712 = SGNCK((i0←v13420 + 1));
         var←c0944 = c←v43712;
         if ((var←c0944 >= mod←v43744)) {
SOURCE(2170, 11)
            c←v43712 = (c←v43712 - mod←v43744);
            };
SOURCE(2080, 101)
         var←c48828 = c←v43712;
         };
      i0←v13420 = var←c48828;
      };
SOURCE(7600, 23)
   {
      W2 var←c48860;
      {
         W2 var←c48892;
         W2 v2←v40536;
         {
            word limit229;
            v2←v40536 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59132)+4) ))+6))+(
                  limit229 = (* (( (ptr) (* (( (ptr) formal←c59132)+4) ))+5) ),
                  BCK(i0←v13420, limit229)
                  )) );
            };
SOURCE(1675, 31)
         {
            word x230;
            word x231;
            *(float*)&var←c48892.f0 = (
               x230 = p←v13336.f0,  *(float*)&x230
               ) + (
               x231 = v2←v40536.f0,  *(float*)&x231
               );
            };
         {
            word x232;
            word x233;
            *(float*)&var←c48892.f1 = (
               x232 = p←v13336.f1,  *(float*)&x232
               ) + (
               x233 = v2←v40536.f1,  *(float*)&x233
               );
            };
         var←c48860 = var←c48892;
         };
      {
         word pd234;
         pd234 = (* (( (ptr) formal←c59132)+7) );
         (void) ( *( (fPt) ((*  (ptr) pd234 ))))(var←c48860, pd234);
         };
      };
   goto lab←L100045;
   lab←L100043: ;
   }

static void Parabola←P2676(p1←v13508, p2←v13536, formal←c59164)
   W2 p1←v13508;
   W2 p2←v13536;
   word formal←c59164;
   {
   word join←v13668;
   W2 p0←v13696;
   word isLine←v13724;
   W2 v0←v13752;
   W2 v2←v13780;
   word turning←v13808 = 0;
   formal←c59164 = (formal←c59164 - 80);
   /* Parabola: */ 
SOURCE(7775, 1724)
SOURCE(7808, 12)
   join←v13668 =  ( (0 != (* (( (ptr) formal←c59164)+48) )) ? (word) (( (bPt) formal←c59164)+88) : (* (( (ptr) formal←c59164)+10)
    ) ) ;
SOURCE(7903, 16)
   p0←v13696 = (*  (W2Pt) (( (ptr) formal←c59164)+41) );
SOURCE(7921, 39)
   {
      word x235;
      word x236;
      word x237;
      word x238;
      word x239;
      word x240;
      word x241;
      word x242;
      isLine←v13724 =  (unsigned)  (  ( ((
         x235 = p1←v13508.f0,  *(float*)&x235
         ) == (
         x236 = p2←v13536.f0,  *(float*)&x236
         )) ? ((
         x237 = p1←v13508.f1,  *(float*)&x237
         ) == (
         x238 = p2←v13536.f1,  *(float*)&x238
         )) : 0 )  ? 1 :  ( ((
         x239 = p0←v13696.f0,  *(float*)&x239
         ) == (
         x240 = p1←v13508.f0,  *(float*)&x240
         )) ? ((
         x241 = p0←v13696.f1,  *(float*)&x241
         ) == (
         x242 = p1←v13508.f1,  *(float*)&x242
         )) : 0 )  ) ;
      };
SOURCE(7962, 44)
   {
      W2 v1←v41908;
      {
         word tcp243;
         if ((0 != isLine←v13724)) {
            tcp243 = (word) &p2←v13536;
            }
         else {
            tcp243 = (word) &p1←v13508;
            };
         v1←v41908 = (*  (W2Pt) tcp243 );
         };
SOURCE(1759, 31)
      {
         word x244;
         word x245;
         *(float*)&v0←v13752.f0 = (
            x244 = v1←v41908.f0,  *(float*)&x244
            ) - (
            x245 = p0←v13696.f0,  *(float*)&x245
            );
         };
      {
         word x246;
         word x247;
         *(float*)&v0←v13752.f1 = (
            x246 = v1←v41908.f1,  *(float*)&x246
            ) - (
            x247 = p0←v13696.f1,  *(float*)&x247
            );
         };
      };
SOURCE(8008, 44)
   if ((0 != isLine←v13724)) {
      v2←v13780 = v0←v13752;
      }
   else {
      {
         word x248;
         word x249;
         *(float*)&v2←v13780.f0 = (
            x248 = p2←v13536.f0,  *(float*)&x248
            ) - (
            x249 = p1←v13508.f0,  *(float*)&x249
            );
         };
      {
         word x250;
         word x251;
         *(float*)&v2←v13780.f1 = (
            x250 = p2←v13536.f1,  *(float*)&x250
            ) - (
            x251 = p1←v13508.f1,  *(float*)&x251
            );
         };
      };
SOURCE(8084, 1415)
   {
      word x252;
      word x253;
      word x254;
      word x255;
      if ((0 == isLine←v13724) ||  ( ((
         x252 = p0←v13696.f0,  *(float*)&x252
         ) != (
         x253 = p2←v13536.f0,  *(float*)&x253
         )) ? 1 : ((
         x254 = p0←v13696.f1,  *(float*)&x254
         ) != (
         x255 = p2←v13536.f1,  *(float*)&x255
         )) ) ) {
SOURCE(8120, 1381)
         {
            word left←v14024;
            word right←v14052;
            word newLeft←v14080;
            word newRight←v14108;
            word jointFirst←v14136;
SOURCE(8122, 61)
            {
               W2 var←c49052;
               {
                  word x256;
                  *(float*)&var←c49052.f0 =  - (
                     x256 = v0←v13752.f1,  *(float*)&x256
                     );
                  };
               var←c49052.f1 = v0←v13752.f0;
               left←v14024 = (word) FindVertex←P600((* (( (ptr) formal←c59164)+4) ), var←c49052, (* (( (ptr) formal←c59164)+45) ));
               };
SOURCE(8185, 63)
            {
               W2 var←c49084;
               var←c49084.f0 = v0←v13752.f1;
               {
                  word x257;
                  *(float*)&var←c49084.f1 =  - (
                     x257 = v0←v13752.f0,  *(float*)&x257
                     );
                  };
               right←v14052 = (word) FindVertex←P600((* (( (ptr) formal←c59164)+4) ), var←c49084, (* (( (ptr) formal←c59164)+46) ));
               };
SOURCE(8250, 84)
            if ((0 != isLine←v13724)) {
               newLeft←v14080 = left←v14024;
               }
            else {
               {
                  W2 var←c49116;
                  {
                     word x258;
                     *(float*)&var←c49116.f0 =  - (
                        x258 = v2←v13780.f1,  *(float*)&x258
                        );
                     };
                  var←c49116.f1 = v2←v13780.f0;
                  newLeft←v14080 = (word) FindVertex←P600((* (( (ptr) formal←c59164)+4) ), var←c49116, left←v14024);
                  };
               };
SOURCE(8336, 87)
            if ((0 != isLine←v13724)) {
               newRight←v14108 = right←v14052;
               }
            else {
               {
                  W2 var←c49148;
                  var←c49148.f0 = v2←v13780.f1;
                  {
                     word x259;
                     *(float*)&var←c49148.f1 =  - (
                        x259 = v2←v13780.f0,  *(float*)&x259
                        );
                     };
                  newRight←v14108 = (word) FindVertex←P600((* (( (ptr) formal←c59164)+4) ), var←c49148, right←v14052);
                  };
               };
SOURCE(8425, 54)
            {
               word var←c49180;
               W2 v1←v45216;
               v1←v45216 = (*  (W2Pt) (( (ptr) formal←c59164)+43) );
               {
                  word x260;
                  word x261;
                  word x262;
                  word x263;
                  *(float*)&var←c49180 = ((
                     x260 = v1←v45216.f0,  *(float*)&x260
                     ) * (
                     x261 = v0←v13752.f1,  *(float*)&x261
                     )) - ((
                     x262 = v1←v45216.f1,  *(float*)&x262
                     ) * (
                     x263 = v0←v13752.f0,  *(float*)&x263
                     ));
                  };
               {
                  word x264;
                  word x265;
                  jointFirst←v14136 =  (unsigned) ((
                     x264 = var←c49180,  *(float*)&x264
                     ) > (
                     x265 = (*  (ptr) &fc34 ),  *(float*)&x265
                     ));
                  };
               };
SOURCE(8571, 237)
            if (((* (( (ptr) formal←c59164)+34) ) == 2)) {
SOURCE(8596, 171)
               if ((0 != jointFirst←v14136)) {
SOURCE(8617, 32)
                  {
                     W2 var←c49212;
                     {
                        W2 var←c49244;
                        W2 v2←v40488;
                        {
                           word idx266;
                           word limit267;
                           v2←v40488 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59164)+4) ))+6))+(
/*1*/      idx266 = (* (( (ptr) formal←c59164)+46) ),
/*1*/      limit267 = (* (( (ptr) (* (( (ptr) formal←c59164)+4) ))+5) ),
/*1*/      BCK(idx266, limit267)
/*1*/      )) );
                           };
SOURCE(1675, 31)
                        {
                           word x268;
                           word x269;
                           *(float*)&var←c49244.f0 = (
/*1*/   x268 = p0←v13696.f0,  *(float*)&x268
/*1*/   ) + (
/*1*/   x269 = v2←v40488.f0,  *(float*)&x269
/*1*/   );
                           };
                        {
                           word x270;
                           word x271;
                           *(float*)&var←c49244.f1 = (
/*1*/   x270 = p0←v13696.f1,  *(float*)&x270
/*1*/   ) + (
/*1*/   x271 = v2←v40488.f1,  *(float*)&x271
/*1*/   );
                           };
                        var←c49212 = var←c49244;
                        };
                     {
                        word pd272;
                        pd272 = (* (( (ptr) formal←c59164)+6) );
                        (void) ( *( (fPt) ((*  (ptr) pd272 ))))(var←c49212, pd272);
                        };
                     };
SOURCE(8651, 66)
                  if (((* (( (ptr) formal←c59164)+46) ) != right←v14052)) {
SOURCE(8678, 39)
                     (void) ( *( (fPt) ((*  (ptr) join←v13668 ))))(p0←v13696, (*  (W2Pt) (( (ptr) formal←c59164)+43) ), v0←v13752, (* (( (ptr) formal←c59164)+46)
                         ), right←v14052, join←v13668);
                     };
                  }
               else {
SOURCE(8728, 10)
                  {
                     word pd273;
                     pd273 = (* (( (ptr) formal←c59164)+6) );
                     (void) ( *( (fPt) ((*  (ptr) pd273 ))))(p0←v13696, pd273);
                     };
SOURCE(8740, 27)
                  {
                     W2 var←c49308;
                     {
                        W2 var←c49340;
                        W2 v2←v40440;
                        {
                           word limit274;
                           v2←v40440 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59164)+4) ))+6))+(
/*1*/      limit274 = (* (( (ptr) (* (( (ptr) formal←c59164)+4) ))+5) ),
/*1*/      BCK(right←v14052, limit274)
/*1*/      )) );
                           };
SOURCE(1675, 31)
                        {
                           word x275;
                           word x276;
                           *(float*)&var←c49340.f0 = (
/*1*/   x275 = p0←v13696.f0,  *(float*)&x275
/*1*/   ) + (
/*1*/   x276 = v2←v40440.f0,  *(float*)&x276
/*1*/   );
                           };
                        {
                           word x277;
                           word x278;
                           *(float*)&var←c49340.f1 = (
/*1*/   x277 = p0←v13696.f1,  *(float*)&x277
/*1*/   ) + (
/*1*/   x278 = v2←v40440.f1,  *(float*)&x278
/*1*/   );
                           };
                        var←c49308 = var←c49340;
                        };
                     {
                        word pd279;
                        pd279 = (* (( (ptr) formal←c59164)+7) );
                        (void) ( *( (fPt) ((*  (ptr) pd279 ))))(var←c49308, pd279);
                        };
                     };
                  };
               }
            else {
SOURCE(8781, 27)
               {
                  W2 var←c49404;
                  {
                     W2 var←c49436;
                     W2 v2←v40392;
                     {
                        word limit280;
                        v2←v40392 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59164)+4) ))+6))+(
/*1*/   limit280 = (* (( (ptr) (* (( (ptr) formal←c59164)+4) ))+5) ),
/*1*/   BCK(right←v14052, limit280)
/*1*/   )) );
                        };
SOURCE(1675, 31)
                     {
                        word x281;
                        word x282;
                        *(float*)&var←c49436.f0 = (
                           x281 = p0←v13696.f0,  *(float*)&x281
                           ) + (
                           x282 = v2←v40392.f0,  *(float*)&x282
                           );
                        };
                     {
                        word x283;
                        word x284;
                        *(float*)&var←c49436.f1 = (
                           x283 = p0←v13696.f1,  *(float*)&x283
                           ) + (
                           x284 = v2←v40392.f1,  *(float*)&x284
                           );
                        };
                     var←c49404 = var←c49436;
                     };
                  {
                     word pd285;
                     pd285 = (* (( (ptr) formal←c59164)+6) );
                     (void) ( *( (fPt) ((*  (ptr) pd285 ))))(var←c49404, pd285);
                     };
                  };
               };
SOURCE(8813, 139)
            if ((0 != isLine←v13724)) {
SOURCE(8828, 36)
               {
                  W2 var←c49500;
                  {
                     W2 var←c49532;
                     W2 v2←v40344;
                     {
                        word limit286;
                        v2←v40344 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59164)+4) ))+6))+(
/*1*/   limit286 = (* (( (ptr) (* (( (ptr) formal←c59164)+4) ))+5) ),
/*1*/   BCK(newRight←v14108, limit286)
/*1*/   )) );
                        };
SOURCE(1675, 31)
                     {
                        word x287;
                        word x288;
                        *(float*)&var←c49532.f0 = (
                           x287 = p2←v13536.f0,  *(float*)&x287
                           ) + (
                           x288 = v2←v40344.f0,  *(float*)&x288
                           );
                        };
                     {
                        word x289;
                        word x290;
                        *(float*)&var←c49532.f1 = (
                           x289 = p2←v13536.f1,  *(float*)&x289
                           ) + (
                           x290 = v2←v40344.f1,  *(float*)&x290
                           );
                        };
                     var←c49500 = var←c49532;
                     };
                  {
                     word pd291;
                     pd291 = (* (( (ptr) formal←c59164)+7) );
                     (void) ( *( (fPt) ((*  (ptr) pd291 ))))(var←c49500, pd291);
                     };
                  };
               }
            else {
SOURCE(8864, 88)
               {
                  W6 var←c49596;
                  (*  (W2Pt) &var←c49596 ) = p0←v13696;
                  (*  (W2Pt) (( (ptr) &var←c49596)+2) ) = p1←v13508;
                  (*  (W2Pt) (( (ptr) &var←c49596)+4) ) = p2←v13536;
                  turning←v13808 = (word) TraverseParabola←P900((* (( (ptr) formal←c59164)+4) ), var←c49596, right←v14052, newRight←v14108, (* (
                        ( (ptr) formal←c59164)+7) ), (* (( (ptr) formal←c59164)+8) )
                     , turning←v13808);
                  };
               };
SOURCE(8954, 29)
            {
               W2 var←c49628;
               {
                  W2 var←c49660;
                  W2 v2←v40296;
                  {
                     word limit292;
                     v2←v40296 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59164)+4) ))+6))+(
                           limit292 = (* (( (ptr) (* (( (ptr) formal←c59164)+4) ))+5) ),
                           BCK(newLeft←v14080, limit292)
                           )) );
                     };
SOURCE(1675, 31)
                  {
                     word x293;
                     word x294;
                     *(float*)&var←c49660.f0 = (
                        x293 = p2←v13536.f0,  *(float*)&x293
                        ) + (
                        x294 = v2←v40296.f0,  *(float*)&x294
                        );
                     };
                  {
                     word x295;
                     word x296;
                     *(float*)&var←c49660.f1 = (
                        x295 = p2←v13536.f1,  *(float*)&x295
                        ) + (
                        x296 = v2←v40296.f1,  *(float*)&x296
                        );
                     };
                  var←c49628 = var←c49660;
                  };
               {
                  word pd297;
                  pd297 = (* (( (ptr) formal←c59164)+7) );
                  (void) ( *( (fPt) ((*  (ptr) pd297 ))))(var←c49628, pd297);
                  };
               };
SOURCE(8985, 133)
            if ((0 != isLine←v13724)) {
SOURCE(9000, 32)
               {
                  W2 var←c49724;
                  {
                     W2 var←c49756;
                     W2 v2←v40248;
                     {
                        word limit298;
                        v2←v40248 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59164)+4) ))+6))+(
/*1*/   limit298 = (* (( (ptr) (* (( (ptr) formal←c59164)+4) ))+5) ),
/*1*/   BCK(left←v14024, limit298)
/*1*/   )) );
                        };
SOURCE(1675, 31)
                     {
                        word x299;
                        word x300;
                        *(float*)&var←c49756.f0 = (
                           x299 = p0←v13696.f0,  *(float*)&x299
                           ) + (
                           x300 = v2←v40248.f0,  *(float*)&x300
                           );
                        };
                     {
                        word x301;
                        word x302;
                        *(float*)&var←c49756.f1 = (
                           x301 = p0←v13696.f1,  *(float*)&x301
                           ) + (
                           x302 = v2←v40248.f1,  *(float*)&x302
                           );
                        };
                     var←c49724 = var←c49756;
                     };
                  {
                     word pd303;
                     pd303 = (* (( (ptr) formal←c59164)+7) );
                     (void) ( *( (fPt) ((*  (ptr) pd303 ))))(var←c49724, pd303);
                     };
                  };
               }
            else {
SOURCE(9032, 86)
               {
                  W6 var←c49820;
                  (*  (W2Pt) &var←c49820 ) = p2←v13536;
                  (*  (W2Pt) (( (ptr) &var←c49820)+2) ) = p1←v13508;
                  (*  (W2Pt) (( (ptr) &var←c49820)+4) ) = p0←v13696;
                  turning←v13808 = (word) TraverseParabola←P900((* (( (ptr) formal←c59164)+4) ), var←c49820, newLeft←v14080, left←v14024, (* (
                        ( (ptr) formal←c59164)+7) ), (* (( (ptr) formal←c59164)+8) )
                     , turning←v13808);
                  };
               };
SOURCE(9120, 132)
            if (((* (( (ptr) formal←c59164)+34) ) == 2)) {
SOURCE(9145, 107)
               if ((0 != jointFirst←v14136)) {
SOURCE(9166, 11)
                  {
                     word pd304;
                     pd304 = (* (( (ptr) formal←c59164)+7) );
                     (void) ( *( (fPt) ((*  (ptr) pd304 ))))(p0←v13696, pd304);
                     };
                  }
               else {
SOURCE(9186, 66)
                  {
                     W2 var←c49852;
                     W2 var←c49884;
                     {
                        word x305;
                        *(float*)&var←c49852.f0 =  - (
                           x305 = v0←v13752.f0,  *(float*)&x305
                           );
                        };
                     {
                        word x306;
                        *(float*)&var←c49852.f1 =  - (
                           x306 = v0←v13752.f1,  *(float*)&x306
                           );
                        };
                     {
                        word x307;
                        *(float*)&var←c49884.f0 =  - (
                           x307 = (* (( (ptr) formal←c59164)+43) ),  *(float*)&x307
                           );
                        };
                     {
                        word x308;
                        *(float*)&var←c49884.f1 =  - (
                           x308 = (* (( (ptr) formal←c59164)+44) ),  *(float*)&x308
                           );
                        };
                     (void) ( *( (fPt) ((*  (ptr) join←v13668 ))))(p0←v13696, var←c49852, var←c49884, left←v14024, (* (( (ptr) formal←c59164)+45)
                         ), join←v13668);
                     };
                  };
               };
SOURCE(9257, 134)
            if (((* (( (ptr) formal←c59164)+34) ) == 1)) {
SOURCE(9286, 105)
               if ((0 != (* (( (ptr) formal←c59164)+5) ))) {
SOURCE(9301, 54)
                  (*  (W2Pt) (( (ptr) formal←c59164)+35) ) = p0←v13696;
                  (*  (W2Pt) (( (ptr) formal←c59164)+37) ) = v0←v13752;
                  (* (( (ptr) formal←c59164)+39) ) = left←v14024;
                  (* (( (ptr) formal←c59164)+40) ) = right←v14052;
                  }
               else {
SOURCE(9355, 36)
                  {
                     W2 var←c49916;
                     {
                        word x309;
                        *(float*)&var←c49916.f0 =  - (
                           x309 = v0←v13752.f0,  *(float*)&x309
                           );
                        };
                     {
                        word x310;
                        *(float*)&var←c49916.f1 =  - (
                           x310 = v0←v13752.f1,  *(float*)&x310
                           );
                        };
                     {
                        word pd311;
                        pd311 = (* (( (ptr) formal←c59164)+9) );
                        (void) ( *( (fPt) ((*  (ptr) pd311 ))))(p0←v13696, var←c49916, left←v14024, right←v14052, pd311);
                        };
                     };
                  };
               };
SOURCE(9396, 53)
            (*  (W2Pt) (( (ptr) formal←c59164)+41) ) = p2←v13536;
            (*  (W2Pt) (( (ptr) formal←c59164)+43) ) = v2←v13780;
            (* (( (ptr) formal←c59164)+45) ) = newLeft←v14080;
            (* (( (ptr) formal←c59164)+46) ) = newRight←v14108;
SOURCE(9451, 14)
            (* (( (ptr) formal←c59164)+34) ) = 2;
SOURCE(9467, 32)
            if (((* (( (ptr) formal←c59164)+47) ) != 0)) {
SOURCE(9485, 14)
               (* (( (ptr) formal←c59164)+48) ) = 1;
               };
            };
         };
      };
   }

static void Line←P2736(p1←v13596, formal←c59196)
   W2 p1←v13596;
   word formal←c59196;
   {
   word var←c49948;
   W2 b←v43156;
   word var←c49980;
   word var←c50012;
   formal←c59196 = (formal←c59196 - 72);
   /* Line: */ 
SOURCE(9508, 198)
SOURCE(9533, 154)
   {
      word tc317;
      b←v43156 = (*  (W2Pt) (( (ptr) formal←c59196)+41) );
SOURCE(2048, 28)
      {
         word x312;
         word x313;
         word x314;
         word x315;
         if (((
            x312 = p1←v13596.f0,  *(float*)&x312
            ) == (
            x313 = b←v43156.f0,  *(float*)&x313
            ))) {
            var←c49948 =  (unsigned) ((
               x314 = p1←v13596.f1,  *(float*)&x314
               ) == (
               x315 = b←v43156.f1,  *(float*)&x315
               ));
            }
         else {
            var←c49948 =  (unsigned) 0;
            };
         };
      if ((0 != var←c49948)) { goto then0316;};
      if ( (  ( (0 == (* (( (ptr) formal←c59196)+5) )) ? ((* (( (ptr) formal←c59196)+34) ) != 1) : 0 )  ? (0 != (* (( (ptr) formal←c59196)+11)
       )) : 0 ) ) {
         var←c49980 = (word) RegionOf←P2376((*  (W2Pt) (( (ptr) formal←c59196)+41) ), (word) (( (bPt) formal←c59196)+112));
         var←c50012 = (word) RegionOf←P2376(p1←v13596, (word) (( (bPt) formal←c59196)+112));
         tc317 =  (word) ((word) Intersect←P960(var←c49980, var←c50012) != 0);
         }
      else {
         tc317 =  (word) 0;
         };
      if (tc317) {
         then0316: ;
SOURCE(9667, 11)
         (*  (W2Pt) (( (ptr) formal←c59196)+41) ) = p1←v13596;
SOURCE(9680, 7)
         return;
         };
      };
SOURCE(9690, 16)
   (void) Parabola←P2676(p1←v13596, p1←v13596, (word) (( (bPt) formal←c59196)+80));
   }

static void Conic←P2796(p1←v32608, p2←v32636, r←v32664, formal←c59260)
   W2 p1←v32608;
   W2 p2←v32636;
   word r←v32664;
   word formal←c59260;
   {
   register ptr gf←c59228 =  (ptr) &globalframe;
   W2 p0←v14180;
   word var←c50044;
   word r←v14456;
   formal←c59260 = (formal←c59260 - 64);
   /* Conic: */ 
SOURCE(9711, 912)
SOURCE(9734, 16)
   p0←v14180 = (*  (W2Pt) (( (ptr) formal←c59260)+41) );
SOURCE(9975, 17)
   (* (( (ptr) formal←c59260)+47) ) = ((* (( (ptr) formal←c59260)+47) ) + 1);
SOURCE(9994, 566)
   {
      word x319;
      if (((* (( (ptr) formal←c59260)+47) ) > 15)) { goto then0318;};
      {
         word var←c50076;
         word var←c50108;
         var←c50076 = (word) RegionOf←P2376(p0←v14180, (word) (( (bPt) formal←c59260)+112));
         var←c50108 = (word) RegionOf←P2376(p2←v32636, (word) (( (bPt) formal←c59260)+112));
         r←v14456 = (word) Intersect←P960(var←c50076, var←c50108);
         };
SOURCE(9847, 37)
      if ((r←v14456 == 0)) {
SOURCE(9870, 14)
         var←c50044 = 0;
         goto lab←L100057;
         };
SOURCE(9886, 30)
      {
         word var←c50140;
         var←c50140 = (word) RegionOf←P2376(p1←v32608, (word) (( (bPt) formal←c59260)+112));
         r←v14456 = (word) Intersect←P960(r←v14456, var←c50140);
         };
SOURCE(9918, 37)
      if ((r←v14456 == 0)) {
SOURCE(9941, 14)
         var←c50044 = 0;
         goto lab←L100057;
         };
SOURCE(9957, 13)
      var←c50044 = 1;
      lab←L100057: ;
      x319 =  (word) (0 != var←c50044);
      if (x319) { goto then0318;};
      if (( (unsigned) (((unsigned)r←v32664 << 1) >> 24) == 255)) {
         then0318: ;
SOURCE(10069, 8)
         (void) Line←P2736(p1←v32608, (word) (( (bPt) formal←c59260)+72));
SOURCE(10079, 9)
         (void) Line←P2736(p2←v32636, (word) (( (bPt) formal←c59260)+72));
         }
      else {
SOURCE(10097, 463)
         {
            word var←c50172;
            var←c50172 = r←v32664;
            {
               word x320;
               word x322;
               word x323;
               word x324;
               if (((
                  x320 = var←c50172,  *(float*)&x320
                  ) > (
                  x322 = (*  (ptr) &fc321 ),  *(float*)&x322
                  ))) {
SOURCE(10125, 8)
                  (void) Line←P2736(p1←v32608, (word) (( (bPt) formal←c59260)+72));
SOURCE(10135, 9)
                  (void) Line←P2736(p2←v32636, (word) (( (bPt) formal←c59260)+72));
                  }
               else {
                  if (((
                     x323 = var←c50172,  *(float*)&x323
                     ) <= (
                     x324 = (*  (ptr) &fc34 ),  *(float*)&x324
                     ))) {
SOURCE(10159, 9)
                     (void) Line←P2736(p2←v32636, (word) (( (bPt) formal←c59260)+72));
                     }
                  else {
SOURCE(10182, 383)
                     {
                        W2 p02←v14312;
                        W2 m←v14340;
                        word var←c50332;
                        word r←v45120;
                        word var←c0945;
SOURCE(10184, 22)
                        {
                           word r←v42404;
                           {
/*1*/   word x325;
/*1*/   word x326;
/*1*/   *(float*)&r←v42404 = (
/*1*/      x325 = p0←v14180.f0,  *(float*)&x325
/*1*/      ) + (
/*1*/      x326 = p2←v32636.f0,  *(float*)&x326
/*1*/      );
/*1*/   };
SOURCE(1841, 14)
                           {
/*1*/   word x327;
/*1*/   word x328;
/*1*/   *(float*)&p02←v14312.f0 = (
/*1*/      x327 = r←v42404,  *(float*)&x327
/*1*/      ) * (
/*1*/      x328 = (*  (ptr) &fc1 ),  *(float*)&x328
/*1*/      );
/*1*/   };
                           };
                        {
                           word r←v42356;
                           {
/*1*/   word x329;
/*1*/   word x330;
/*1*/   *(float*)&r←v42356 = (
/*1*/      x329 = p0←v14180.f1,  *(float*)&x329
/*1*/      ) + (
/*1*/      x330 = p2←v32636.f1,  *(float*)&x330
/*1*/      );
/*1*/   };
SOURCE(1841, 14)
                           {
/*1*/   word x331;
/*1*/   word x332;
/*1*/   *(float*)&p02←v14312.f1 = (
/*1*/      x331 = r←v42356,  *(float*)&x331
/*1*/      ) * (
/*1*/      x332 = (*  (ptr) &fc1 ),  *(float*)&x332
/*1*/      );
/*1*/   };
                           };
SOURCE(10208, 33)
                        {
                           word x333;
                           word x334;
                           *(float*)&m←v14340.f0 = (
/*1*/   x333 = p1←v32608.f0,  *(float*)&x333
/*1*/   ) - (
/*1*/   x334 = p02←v14312.f0,  *(float*)&x334
/*1*/   );
                           };
                        {
                           word x335;
                           word x336;
                           *(float*)&m←v14340.f1 = (
/*1*/   x335 = p1←v32608.f1,  *(float*)&x335
/*1*/   ) - (
/*1*/   x336 = p02←v14312.f1,  *(float*)&x336
/*1*/   );
                           };
SOURCE(10243, 317)
                        {
                           word x342;
                           word x343;
                           {
/*1*/   word x337;
/*1*/   word x338;
/*1*/   *(float*)&r←v45120 = (
/*1*/      x337 = r←v32664,  *(float*)&x337
/*1*/      ) - (
/*1*/      x338 = (*  (ptr) &fc1 ),  *(float*)&x338
/*1*/      );
/*1*/   };
                           var←c50332 = ( (((unsigned)r←v45120 << 1) >> 1) );
                           {
/*1*/   word x339;
/*1*/   word x340;
/*1*/   word x341;
/*1*/   *(float*)&var←c0945 = ((
/*1*/      x339 = ( (((unsigned)m←v14340.f0 << 1) >> 1) ),  *(float*)&x339
/*1*/      ) + (
/*1*/      x340 = ( (((unsigned)m←v14340.f1 << 1) >> 1) ),  *(float*)&x340
/*1*/      )) * (
/*1*/      x341 = var←c50332,  *(float*)&x341
/*1*/      );
/*1*/   };
                           if ((((
/*1*/   x342 = var←c0945,  *(float*)&x342
/*1*/   ) < (
/*1*/   x343 = (* (( (ptr) gf←c59228)+4)/* curveTolerance←v3532 */  ),  *(float*)&x343
/*1*/   ))
                           )) {
SOURCE(10334, 17)
/*1*/   (void) Parabola←P2676(p1←v32608, p2←v32636, (word) (( (bPt) formal←c59260)+80));
/*1*/   }
                           else {
SOURCE(10358, 204)
/*1*/   {
/*1*/      W2 q←v14384;
/*1*/      word rNew←v14412;
SOURCE(10360, 35)
/*1*/      {
/*1*/         word x344;
/*1*/         word x345;
/*1*/         word x346;
/*1*/         *(float*)&q←v14384.f0 = ((
/*1*/            x344 = m←v14340.f0,  *(float*)&x344
/*1*/            ) * (
/*1*/            x345 = r←v32664,  *(float*)&x345
/*1*/            )) + (
/*1*/            x346 = p02←v14312.f0,  *(float*)&x346
/*1*/            );
/*1*/         };
/*1*/      {
/*1*/         word x347;
/*1*/         word x348;
/*1*/         word x349;
/*1*/         *(float*)&q←v14384.f1 = ((
/*1*/            x347 = m←v14340.f1,  *(float*)&x347
/*1*/            ) * (
/*1*/            x348 = r←v32664,  *(float*)&x348
/*1*/            )) + (
/*1*/            x349 = p02←v14312.f1,  *(float*)&x349
/*1*/            );
/*1*/         };
SOURCE(10397, 46)
/*1*/      {
/*1*/         word x350;
/*1*/         word x351;
/*1*/         word pd352;
/*1*/         word x354;
/*1*/         word x355;
/*1*/         word x356;
/*1*/         float tf357;
/*1*/         word x358;
/*1*/         pd352 = (* (( (ptr) (* (( (ptr) gf←c59228)+78)/* var←c50396 */  ))+9) );
/*1*/         *(float*)&rNew←v14412 = (
/*1*/            x350 = (*  (ptr) &fc20 ),  *(float*)&x350
/*1*/            ) / ((
/*1*/            x351 = (*  (ptr) &fc20 ),  *(float*)&x351
/*1*/            ) + (
/*1*/            x358 = (word) ( *( (fPt) ((*  (ptr) pd352 ))))((
/*1*/                  tf357 = (
/*1*/                     x354 = (*  (ptr) &fc353 ),  *(float*)&x354
/*1*/                     ) * ((
/*1*/                     x355 = (*  (ptr) &fc20 ),  *(float*)&x355
/*1*/                     ) - (
/*1*/                     x356 = r←v32664,  *(float*)&x356
/*1*/                     )),  *(word*)&tf357
/*1*/                  ), pd352),  *(float*)&x358
/*1*/            ));
/*1*/         };
SOURCE(10445, 56)
/*1*/      {
/*1*/         W2 var←c50428;
/*1*/         {
/*1*/            word x359;
/*1*/            word x360;
/*1*/            word x361;
/*1*/            word x362;
/*1*/            *(float*)&var←c50428.f0 = (((
/*1*/               x359 = p1←v32608.f0,  *(float*)&x359
/*1*/               ) - (
/*1*/               x360 = p0←v14180.f0,  *(float*)&x360
/*1*/               )) * (
/*1*/               x361 = r←v32664,  *(float*)&x361
/*1*/               )) + (
/*1*/               x362 = p0←v14180.f0,  *(float*)&x362
/*1*/               );
/*1*/            };
/*1*/         {
/*1*/            word x363;
/*1*/            word x364;
/*1*/            word x365;
/*1*/            word x366;
/*1*/            *(float*)&var←c50428.f1 = (((
/*1*/               x363 = p1←v32608.f1,  *(float*)&x363
/*1*/               ) - (
/*1*/               x364 = p0←v14180.f1,  *(float*)&x364
/*1*/               )) * (
/*1*/               x365 = r←v32664,  *(float*)&x365
/*1*/               )) + (
/*1*/               x366 = p0←v14180.f1,  *(float*)&x366
/*1*/               );
/*1*/            };
/*1*/         (void) Conic←P2796(var←c50428, q←v14384, rNew←v14412, (word) (( (bPt) formal←c59260)+64));
/*1*/         };
SOURCE(10503, 57)
/*1*/      {
/*1*/         W2 var←c50460;
/*1*/         {
/*1*/            word x367;
/*1*/            word x368;
/*1*/            word x369;
/*1*/            word x370;
/*1*/            *(float*)&var←c50460.f0 = (((
/*1*/               x367 = p1←v32608.f0,  *(float*)&x367
/*1*/               ) - (
/*1*/               x368 = p2←v32636.f0,  *(float*)&x368
/*1*/               )) * (
/*1*/               x369 = r←v32664,  *(float*)&x369
/*1*/               )) + (
/*1*/               x370 = p2←v32636.f0,  *(float*)&x370
/*1*/               );
/*1*/            };
/*1*/         {
/*1*/            word x371;
/*1*/            word x372;
/*1*/            word x373;
/*1*/            word x374;
/*1*/            *(float*)&var←c50460.f1 = (((
/*1*/               x371 = p1←v32608.f1,  *(float*)&x371
/*1*/               ) - (
/*1*/               x372 = p2←v32636.f1,  *(float*)&x372
/*1*/               )) * (
/*1*/               x373 = r←v32664,  *(float*)&x373
/*1*/               )) + (
/*1*/               x374 = p2←v32636.f1,  *(float*)&x374
/*1*/               );
/*1*/            };
/*1*/         (void) Conic←P2796(var←c50460, p2←v32636, rNew←v14412, (word) (( (bPt) formal←c59260)+64));
/*1*/         };
/*1*/      };
/*1*/   };
                           };
                        };
                     };
                  };
               };
            };
         };
      };
SOURCE(10571, 17)
   {
      word idx375;
      (* (( (ptr) formal←c59260)+47) ) = (
         idx375 = (word) ((* (( (ptr) formal←c59260)+47) ) - 1),
         SGNCK(idx375)
         );
      };
SOURCE(10590, 33)
   if (((* (( (ptr) formal←c59260)+47) ) == 0)) {
SOURCE(10608, 15)
      (* (( (ptr) formal←c59260)+48) ) = 0;
      };
   }

static void Curve←P2856(p1←v32724, p2←v32752, p3←v32780, formal←c59324)
   W2 p1←v32724;
   W2 p2←v32752;
   W2 p3←v32780;
   word formal←c59324;
   {
   register ptr gf←c59292 =  (ptr) &globalframe;
   W2 p0←v14484;
   word var←c50492;
   word r←v15220;
   formal←c59324 = (formal←c59324 - 56);
   /* Curve: */ 
SOURCE(10653, 1217)
SOURCE(10676, 16)
   p0←v14484 = (*  (W2Pt) (( (ptr) formal←c59324)+41) );
SOURCE(11045, 34)
   if (((* (( (ptr) formal←c59324)+47) ) == 0)) {
SOURCE(11063, 16)
      (* (( (ptr) formal←c59324)+49) ) = 1;
      };
SOURCE(11081, 17)
   (* (( (ptr) formal←c59324)+47) ) = ((* (( (ptr) formal←c59324)+47) ) + 1);
SOURCE(11100, 710)
   {
      word x377;
      if (((* (( (ptr) formal←c59324)+47) ) > 15)) { goto then0376;};
      {
         word var←c50524;
         word var←c50556;
         var←c50524 = (word) RegionOf←P2376(p0←v14484, (word) (( (bPt) formal←c59324)+112));
         var←c50556 = (word) RegionOf←P2376(p3←v32780, (word) (( (bPt) formal←c59324)+112));
         r←v15220 = (word) Intersect←P960(var←c50524, var←c50556);
         };
SOURCE(10789, 37)
      if ((r←v15220 == 0)) {
SOURCE(10812, 14)
         var←c50492 = 0;
         goto lab←L100061;
         };
SOURCE(10828, 30)
      {
         word var←c50588;
         var←c50588 = (word) RegionOf←P2376(p1←v32724, (word) (( (bPt) formal←c59324)+112));
         r←v15220 = (word) Intersect←P960(r←v15220, var←c50588);
         };
SOURCE(10860, 37)
      if ((r←v15220 == 0)) {
SOURCE(10883, 14)
         var←c50492 = 0;
         goto lab←L100061;
         };
SOURCE(10899, 30)
      {
         word var←c50620;
         var←c50620 = (word) RegionOf←P2376(p2←v32752, (word) (( (bPt) formal←c59324)+112));
         r←v15220 = (word) Intersect←P960(r←v15220, var←c50620);
         };
SOURCE(10931, 37)
      if ((r←v15220 == 0)) {
SOURCE(10954, 14)
         var←c50492 = 0;
         goto lab←L100061;
         };
SOURCE(10970, 13)
      var←c50492 = 1;
      lab←L100061: ;
      x377 =  (word) (0 != var←c50492);
      if (x377) {
         then0376: ;
SOURCE(11146, 8)
         (void) Line←P2736(p1←v32724, (word) (( (bPt) formal←c59324)+72));
SOURCE(11156, 8)
         (void) Line←P2736(p2←v32752, (word) (( (bPt) formal←c59324)+72));
SOURCE(11166, 9)
         (void) Line←P2736(p3←v32780, (word) (( (bPt) formal←c59324)+72));
         }
      else {
SOURCE(11182, 633)
         {
            W2 q1←v14672;
            W2 q2←v14700;
            word error←v14728;
SOURCE(11343, 21)
            {
               word var←c50684;
               word r←v42308;
               {
                  word x378;
                  word x379;
                  *(float*)&r←v42308 = (
                     x378 = p1←v32724.f0,  *(float*)&x378
                     ) - (
                     x379 = p0←v14484.f0,  *(float*)&x379
                     );
                  };
SOURCE(1841, 14)
               {
                  word x380;
                  word x381;
                  *(float*)&var←c50684 = (
                     x380 = r←v42308,  *(float*)&x380
                     ) * (
                     x381 = (*  (ptr) &fc1 ),  *(float*)&x381
                     );
                  };
               {
                  word x382;
                  word x383;
                  *(float*)&q1←v14672.f0 = (
                     x382 = p1←v32724.f0,  *(float*)&x382
                     ) + (
                     x383 = var←c50684,  *(float*)&x383
                     );
                  };
               };
            {
               word var←c50716;
               word r←v43900;
               {
                  word x384;
                  word x385;
                  *(float*)&r←v43900 = (
                     x384 = p1←v32724.f1,  *(float*)&x384
                     ) - (
                     x385 = p0←v14484.f1,  *(float*)&x385
                     );
                  };
SOURCE(1841, 14)
               {
                  word x386;
                  word x387;
                  *(float*)&var←c50716 = (
                     x386 = r←v43900,  *(float*)&x386
                     ) * (
                     x387 = (*  (ptr) &fc1 ),  *(float*)&x387
                     );
                  };
               {
                  word x388;
                  word x389;
                  *(float*)&q1←v14672.f1 = (
                     x388 = p1←v32724.f1,  *(float*)&x388
                     ) + (
                     x389 = var←c50716,  *(float*)&x389
                     );
                  };
               };
SOURCE(11366, 21)
            {
               word var←c50780;
               word r←v43960;
               {
                  word x390;
                  word x391;
                  *(float*)&r←v43960 = (
                     x390 = p2←v32752.f0,  *(float*)&x390
                     ) - (
                     x391 = p3←v32780.f0,  *(float*)&x391
                     );
                  };
SOURCE(1841, 14)
               {
                  word x392;
                  word x393;
                  *(float*)&var←c50780 = (
                     x392 = r←v43960,  *(float*)&x392
                     ) * (
                     x393 = (*  (ptr) &fc1 ),  *(float*)&x393
                     );
                  };
               {
                  word x394;
                  word x395;
                  *(float*)&q2←v14700.f0 = (
                     x394 = p2←v32752.f0,  *(float*)&x394
                     ) + (
                     x395 = var←c50780,  *(float*)&x395
                     );
                  };
               };
            {
               word var←c50812;
               word r←v44004;
               {
                  word x396;
                  word x397;
                  *(float*)&r←v44004 = (
                     x396 = p2←v32752.f1,  *(float*)&x396
                     ) - (
                     x397 = p3←v32780.f1,  *(float*)&x397
                     );
                  };
SOURCE(1841, 14)
               {
                  word x398;
                  word x399;
                  *(float*)&var←c50812 = (
                     x398 = r←v44004,  *(float*)&x398
                     ) * (
                     x399 = (*  (ptr) &fc1 ),  *(float*)&x399
                     );
                  };
               {
                  word x400;
                  word x401;
                  *(float*)&q2←v14700.f1 = (
                     x400 = p2←v32752.f1,  *(float*)&x400
                     ) + (
                     x401 = var←c50812,  *(float*)&x401
                     );
                  };
               };
SOURCE(11389, 65)
            {
               word var←c50844;
               word r←v45072;
               word var←c50876;
               word r←v45024;
               {
                  word x402;
                  word x403;
                  *(float*)&r←v45072 = (
                     x402 = q1←v14672.f0,  *(float*)&x402
                     ) - (
                     x403 = q2←v14700.f0,  *(float*)&x403
                     );
                  };
               var←c50844 = ( (((unsigned)r←v45072 << 1) >> 1) );
               {
                  word x404;
                  word x405;
                  *(float*)&r←v45024 = (
                     x404 = q1←v14672.f1,  *(float*)&x404
                     ) - (
                     x405 = q2←v14700.f1,  *(float*)&x405
                     );
                  };
               var←c50876 = ( (((unsigned)r←v45024 << 1) >> 1) );
               {
                  word x406;
                  word x407;
                  *(float*)&error←v14728 = (
                     x406 = var←c50844,  *(float*)&x406
                     ) + (
                     x407 = var←c50876,  *(float*)&x407
                     );
                  };
               };
SOURCE(11456, 354)
            {
               word x408;
               word x409;
               word x410;
               word x411;
               if ( ( ((
                  x408 = error←v14728,  *(float*)&x408
                  ) < (
                  x409 = (* (( (ptr) gf←c59292)+4)/* curveTolerance←v3532 */  ),  *(float*)&x409
                  )) ?  ( ((* (( (ptr) formal←c59324)+47) ) > 1) ? 1 : ((
                  x410 = error←v14728,  *(float*)&x410
                  ) == (
                  x411 = (*  (ptr) &fc34 ),  *(float*)&x411
                  )) )  : 0 ) ) {
SOURCE(11520, 43)
                  {
                     word tcp412;
                     if ((0 != (* (( (ptr) formal←c59324)+49) ))) {
                        tcp412 = (word) &q1←v14672;
                        }
                     else {
                        tcp412 = (word) &q2←v14700;
                        };
                     (void) Parabola←P2676((*  (W2Pt) tcp412 ), p3←v32780, (word) (( (bPt) formal←c59324)+80));
                     };
                  }
               else {
SOURCE(11570, 242)
                  {
                     W2 p01←v15036;
                     W2 p12←v15064;
                     W2 p23←v15092;
                     W2 p012←v15120;
                     W2 p123←v15148;
                     W2 p0123←v15176;
SOURCE(11572, 22)
                     {
                        word r←v42892;
                        {
                           word x413;
                           word x414;
                           *(float*)&r←v42892 = (
/*1*/   x413 = p0←v14484.f0,  *(float*)&x413
/*1*/   ) + (
/*1*/   x414 = p1←v32724.f0,  *(float*)&x414
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x415;
                           word x416;
                           *(float*)&p01←v15036.f0 = (
/*1*/   x415 = r←v42892,  *(float*)&x415
/*1*/   ) * (
/*1*/   x416 = (*  (ptr) &fc1 ),  *(float*)&x416
/*1*/   );
                           };
                        };
                     {
                        word r←v42936;
                        {
                           word x417;
                           word x418;
                           *(float*)&r←v42936 = (
/*1*/   x417 = p0←v14484.f1,  *(float*)&x417
/*1*/   ) + (
/*1*/   x418 = p1←v32724.f1,  *(float*)&x418
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x419;
                           word x420;
                           *(float*)&p01←v15036.f1 = (
/*1*/   x419 = r←v42936,  *(float*)&x419
/*1*/   ) * (
/*1*/   x420 = (*  (ptr) &fc1 ),  *(float*)&x420
/*1*/   );
                           };
                        };
SOURCE(11596, 22)
                     {
                        word r←v42804;
                        {
                           word x421;
                           word x422;
                           *(float*)&r←v42804 = (
/*1*/   x421 = p1←v32724.f0,  *(float*)&x421
/*1*/   ) + (
/*1*/   x422 = p2←v32752.f0,  *(float*)&x422
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x423;
                           word x424;
                           *(float*)&p12←v15064.f0 = (
/*1*/   x423 = r←v42804,  *(float*)&x423
/*1*/   ) * (
/*1*/   x424 = (*  (ptr) &fc1 ),  *(float*)&x424
/*1*/   );
                           };
                        };
                     {
                        word r←v42848;
                        {
                           word x425;
                           word x426;
                           *(float*)&r←v42848 = (
/*1*/   x425 = p1←v32724.f1,  *(float*)&x425
/*1*/   ) + (
/*1*/   x426 = p2←v32752.f1,  *(float*)&x426
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x427;
                           word x428;
                           *(float*)&p12←v15064.f1 = (
/*1*/   x427 = r←v42848,  *(float*)&x427
/*1*/   ) * (
/*1*/   x428 = (*  (ptr) &fc1 ),  *(float*)&x428
/*1*/   );
                           };
                        };
SOURCE(11620, 22)
                     {
                        word r←v42716;
                        {
                           word x429;
                           word x430;
                           *(float*)&r←v42716 = (
/*1*/   x429 = p2←v32752.f0,  *(float*)&x429
/*1*/   ) + (
/*1*/   x430 = p3←v32780.f0,  *(float*)&x430
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x431;
                           word x432;
                           *(float*)&p23←v15092.f0 = (
/*1*/   x431 = r←v42716,  *(float*)&x431
/*1*/   ) * (
/*1*/   x432 = (*  (ptr) &fc1 ),  *(float*)&x432
/*1*/   );
                           };
                        };
                     {
                        word r←v42760;
                        {
                           word x433;
                           word x434;
                           *(float*)&r←v42760 = (
/*1*/   x433 = p2←v32752.f1,  *(float*)&x433
/*1*/   ) + (
/*1*/   x434 = p3←v32780.f1,  *(float*)&x434
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x435;
                           word x436;
                           *(float*)&p23←v15092.f1 = (
/*1*/   x435 = r←v42760,  *(float*)&x435
/*1*/   ) * (
/*1*/   x436 = (*  (ptr) &fc1 ),  *(float*)&x436
/*1*/   );
                           };
                        };
SOURCE(11644, 25)
                     {
                        word r←v42628;
                        {
                           word x437;
                           word x438;
                           *(float*)&r←v42628 = (
/*1*/   x437 = p01←v15036.f0,  *(float*)&x437
/*1*/   ) + (
/*1*/   x438 = p12←v15064.f0,  *(float*)&x438
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x439;
                           word x440;
                           *(float*)&p012←v15120.f0 = (
/*1*/   x439 = r←v42628,  *(float*)&x439
/*1*/   ) * (
/*1*/   x440 = (*  (ptr) &fc1 ),  *(float*)&x440
/*1*/   );
                           };
                        };
                     {
                        word r←v42672;
                        {
                           word x441;
                           word x442;
                           *(float*)&r←v42672 = (
/*1*/   x441 = p01←v15036.f1,  *(float*)&x441
/*1*/   ) + (
/*1*/   x442 = p12←v15064.f1,  *(float*)&x442
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x443;
                           word x444;
                           *(float*)&p012←v15120.f1 = (
/*1*/   x443 = r←v42672,  *(float*)&x443
/*1*/   ) * (
/*1*/   x444 = (*  (ptr) &fc1 ),  *(float*)&x444
/*1*/   );
                           };
                        };
SOURCE(11671, 25)
                     {
                        word r←v42540;
                        {
                           word x445;
                           word x446;
                           *(float*)&r←v42540 = (
/*1*/   x445 = p12←v15064.f0,  *(float*)&x445
/*1*/   ) + (
/*1*/   x446 = p23←v15092.f0,  *(float*)&x446
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x447;
                           word x448;
                           *(float*)&p123←v15148.f0 = (
/*1*/   x447 = r←v42540,  *(float*)&x447
/*1*/   ) * (
/*1*/   x448 = (*  (ptr) &fc1 ),  *(float*)&x448
/*1*/   );
                           };
                        };
                     {
                        word r←v42584;
                        {
                           word x449;
                           word x450;
                           *(float*)&r←v42584 = (
/*1*/   x449 = p12←v15064.f1,  *(float*)&x449
/*1*/   ) + (
/*1*/   x450 = p23←v15092.f1,  *(float*)&x450
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x451;
                           word x452;
                           *(float*)&p123←v15148.f1 = (
/*1*/   x451 = r←v42584,  *(float*)&x451
/*1*/   ) * (
/*1*/   x452 = (*  (ptr) &fc1 ),  *(float*)&x452
/*1*/   );
                           };
                        };
SOURCE(11698, 28)
                     {
                        word r←v42452;
                        {
                           word x453;
                           word x454;
                           *(float*)&r←v42452 = (
/*1*/   x453 = p012←v15120.f0,  *(float*)&x453
/*1*/   ) + (
/*1*/   x454 = p123←v15148.f0,  *(float*)&x454
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x455;
                           word x456;
                           *(float*)&p0123←v15176.f0 = (
/*1*/   x455 = r←v42452,  *(float*)&x455
/*1*/   ) * (
/*1*/   x456 = (*  (ptr) &fc1 ),  *(float*)&x456
/*1*/   );
                           };
                        };
                     {
                        word r←v42496;
                        {
                           word x457;
                           word x458;
                           *(float*)&r←v42496 = (
/*1*/   x457 = p012←v15120.f1,  *(float*)&x457
/*1*/   ) + (
/*1*/   x458 = p123←v15148.f1,  *(float*)&x458
/*1*/   );
                           };
SOURCE(1841, 14)
                        {
                           word x459;
                           word x460;
                           *(float*)&p0123←v15176.f1 = (
/*1*/   x459 = r←v42496,  *(float*)&x459
/*1*/   ) * (
/*1*/   x460 = (*  (ptr) &fc1 ),  *(float*)&x460
/*1*/   );
                           };
                        };
SOURCE(11728, 23)
                     (void) Curve←P2856(p01←v15036, p012←v15120, p0123←v15176, (word) (( (bPt) formal←c59324)+56));
SOURCE(11753, 35)
                     if (((* (( (ptr) formal←c59324)+47) ) == 1)) {
SOURCE(11771, 17)
                        (* (( (ptr) formal←c59324)+49) ) = 0;
                        };
SOURCE(11790, 20)
                     (void) Curve←P2856(p123←v15148, p23←v15092, p3←v32780, (word) (( (bPt) formal←c59324)+56));
                     };
                  };
               };
            };
         };
      };
SOURCE(11818, 17)
   {
      word idx461;
      (* (( (ptr) formal←c59324)+47) ) = (
         idx461 = (word) ((* (( (ptr) formal←c59324)+47) ) - 1),
         SGNCK(idx461)
         );
      };
SOURCE(11837, 33)
   if (((* (( (ptr) formal←c59324)+47) ) == 0)) {
SOURCE(11855, 15)
      (* (( (ptr) formal←c59324)+48) ) = 0;
      };
   }

static void Arc←P2916(p1←v32840, p2←v32868, formal←c59388)
   W2 p1←v32840;
   W2 p2←v32868;
   word formal←c59388;
   {
   register ptr gf←c59356 =  (ptr) &globalframe;
   formal←c59388 = (formal←c59388 - 48);
   /* Arc: */ 
SOURCE(11875, 63)
SOURCE(11893, 45)
   {
      word pd462;
      pd462 = (* (( (ptr) (* (( (ptr) gf←c59356)+79)/* var←c51484 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd462 ))))((*  (W2Pt) (( (ptr) formal←c59388)+41) ), p1←v32840, p2←v32868, (word) (( (bPt) formal←c59388)+64)
         , pd462);
      };
   }

static void SignalSquareEndWithNoDirection←P1080()
   {
   register ptr gf←c59420 =  (ptr) &globalframe;
   /* SignalSquareEndWithNoDirection: */ 
SOURCE(12038, 162)
SOURCE(12086, 114)
   {
      W3 var←c0349;
      var←c0349.f0 = 120;
      var←c0349.f1 = (* (( (ptr) gf←c59420)+25) );
      var←c0349.f2 = 0;
      (void) (XR←RaiseSignal((* (( (ptr) (* (( (ptr) gf←c59420)+80)/* var←c51516 */  ))+5) ), 0, (word) &var←c0349));
      };
   }

static void PathFromStroke←P1140(formal←c0990, closed←v8124, formal←c0991, formal←c0992, joint←v8208, formal←c0993, moveTo←v8264, formal←c0994, conicTo←v8320, box←v8348, formal←c0995, formal←c0996)
   word formal←c0990;
   word closed←v8124;
   word formal←c0991;
   word formal←c0992;
   word joint←v8208;
   word formal←c0993;
   word moveTo←v8264;
   word formal←c0994;
   word conicTo←v8320;
   W4 box←v8348;
   word formal←c0995;
   word formal←c0996;
   {
   W29 var←c59452;
   /* declaration of path←v8096 skipped */ 
   /* declaration of pen←v8152 skipped */ 
   /* declaration of end←v8180 skipped */ 
   /* declaration of m←v8236 skipped */ 
   /* declaration of lineTo←v8292 skipped */ 
   /* declaration of pathT←v8376 skipped */ 
   /* declaration of miterLimit←v8404 skipped */ 
   /* declaration of var←c51580 skipped */ 
   /* declaration of var←c51612 skipped */ 
   /* declaration of var←c51644 skipped */ 
   /* declaration of var←c51676 skipped */ 
   /* declaration of var←c51708 skipped */ 
   /* declaration of var←c51740 skipped */ 
   /* declaration of var←c51772 skipped */ 
   /* declaration of var←c51804 skipped */ 
   /* declaration of var←c51836 skipped */ 
   word Joint←v15500;
   word End←v15528;
   (* (( (ptr) &var←c59452)+4)/* path←v8096 */  ) = formal←c0990;
   (* (( (ptr) &var←c59452)+5)/* pen←v8152 */  ) = formal←c0991;
   (* (( (ptr) &var←c59452)+6)/* end←v8180 */  ) = formal←c0992;
   (* (( (ptr) &var←c59452)+7)/* m←v8236 */  ) = formal←c0993;
   (* (( (ptr) &var←c59452)+8)/* lineTo←v8292 */  ) = formal←c0994;
   (* (( (ptr) &var←c59452)+9)/* pathT←v8376 */  ) = formal←c0995;
   (* (( (ptr) &var←c59452)+10)/* miterLimit←v8404 */  ) = formal←c0996;
   /* PathFromStroke: */ 
SOURCE(12206, 4003)
   {
      word tmpAddr463;
      tmpAddr463 = (word) (( (ptr) &var←c59452)+11)/* var←c51580 */ ;
      (*  (ptr) tmpAddr463 ) = ( ((word)  (fPt) Path←P3984) );
      (* (( (ptr) tmpAddr463) + 1) ) = 1;
      };
   {
      word tmpAddr464;
      tmpAddr464 = (word) (( (ptr) &var←c59452)+13)/* var←c51612 */ ;
      (*  (ptr) tmpAddr464 ) = ( ((word)  (fPt) MiterOrBevelJoint←P3924) );
      (* (( (ptr) tmpAddr464) + 1) ) = 1;
      };
   {
      word tmpAddr465;
      tmpAddr465 = (word) (( (ptr) &var←c59452)+15)/* var←c51644 */ ;
      (*  (ptr) tmpAddr465 ) = ( ((word)  (fPt) MiterJoint←P3864) );
      (* (( (ptr) tmpAddr465) + 1) ) = 1;
      };
   {
      word tmpAddr466;
      tmpAddr466 = (word) (( (ptr) &var←c59452)+17)/* var←c51676 */ ;
      (*  (ptr) tmpAddr466 ) = ( ((word)  (fPt) BevelJoint←P3804) );
      (* (( (ptr) tmpAddr466) + 1) ) = 1;
      };
   {
      word tmpAddr467;
      tmpAddr467 = (word) (( (ptr) &var←c59452)+19)/* var←c51708 */ ;
      (*  (ptr) tmpAddr467 ) = ( ((word)  (fPt) RoundJoint←P3744) );
      (* (( (ptr) tmpAddr467) + 1) ) = 1;
      };
   {
      word tmpAddr468;
      tmpAddr468 = (word) (( (ptr) &var←c59452)+21)/* var←c51740 */ ;
      (*  (ptr) tmpAddr468 ) = ( ((word)  (fPt) ButtEnd←P3684) );
      (* (( (ptr) tmpAddr468) + 1) ) = 1;
      };
   {
      word tmpAddr469;
      tmpAddr469 = (word) (( (ptr) &var←c59452)+23)/* var←c51772 */ ;
      (*  (ptr) tmpAddr469 ) = ( ((word)  (fPt) Beam←P3624) );
      (* (( (ptr) tmpAddr469) + 1) ) = 1;
      };
   {
      word tmpAddr470;
      tmpAddr470 = (word) (( (ptr) &var←c59452)+25)/* var←c51804 */ ;
      (*  (ptr) tmpAddr470 ) = ( ((word)  (fPt) SquareEnd←P3564) );
      (* (( (ptr) tmpAddr470) + 1) ) = 1;
      };
   {
      word tmpAddr471;
      tmpAddr471 = (word) (( (ptr) &var←c59452)+27)/* var←c51836 */ ;
      (*  (ptr) tmpAddr471 ) = ( ((word)  (fPt) RoundEnd←P3504) );
      (* (( (ptr) tmpAddr471) + 1) ) = 1;
      };
SOURCE(15472, 13)
   {
      word var←c51868;
      var←c51868 = joint←v8208;
      switch (var←c51868) {
         case 0: 
            {
               word var←c51900;
               var←c51900 = (* (( (ptr) &var←c59452)+10)/* miterLimit←v8404 */  );
               {
                  word x472;
                  word x473;
                  word x474;
                  word x475;
                  if (((
                     x472 = var←c51900,  *(float*)&x472
                     ) < (
                     x473 = (*  (ptr) &fc20 ),  *(float*)&x473
                     ))) {
                     Joint←v15500 = (word) (( (bPt) &var←c59452)+60)/* var←c51644 */ ;
                     }
                  else {
                     if (((
                        x474 = var←c51900,  *(float*)&x474
                        ) == (
                        x475 = (*  (ptr) &fc20 ),  *(float*)&x475
                        ))) {
                        Joint←v15500 = (word) (( (bPt) &var←c59452)+68)/* var←c51676 */ ;
                        }
                     else {
                        Joint←v15500 = (word) (( (bPt) &var←c59452)+52)/* var←c51612 */ ;
                        };
                     };
                  };
               };
            break;
         case 1: 
            Joint←v15500 = (word) (( (bPt) &var←c59452)+68)/* var←c51676 */ ;
            break;
         case 2: 
            Joint←v15500 = (word) (( (bPt) &var←c59452)+76)/* var←c51708 */ ;
            break;
         default: 
            Joint←v15500 = (word) (( (bPt) &var←c59452)+60)/* var←c51644 */ ;
            break;
         };
      };
SOURCE(15774, 11)
   {
      word var←c51932;
      var←c51932 = (* (( (ptr) &var←c59452)+6)/* end←v8180 */  );
      switch (var←c51932) {
         case 4294967295: case 0: 
            End←v15528 = (word) (( (bPt) &var←c59452)+100)/* var←c51804 */ ;
            break;
         case 1: 
            End←v15528 = (word) (( (bPt) &var←c59452)+84)/* var←c51740 */ ;
            break;
         case 2: 
            End←v15528 = (word) (( (bPt) &var←c59452)+108)/* var←c51836 */ ;
            break;
         default: 
            End←v15528 = (word) (( (bPt) &var←c59452)+100)/* var←c51804 */ ;
            break;
         };
      };
SOURCE(15998, 211)
   (void) PenStroke←P1020((word) (( (bPt) &var←c59452)+44)/* var←c51580 */ , (* (( (ptr) &var←c59452)+5)/* pen←v8152 */  ), closed←v8124, moveTo←v8264, (* (
         ( (ptr) &var←c59452)+8)/* lineTo←v8292 */  ), conicTo←v8320
      , End←v15528, Joint←v15500, box←v8348,  (unsigned)  (  ( (Joint←v15500 != (word) (( (bPt) &var←c59452)+60)/* var←c51644 */ ) ? (Joint←v15500 != (word) (
         ( (bPt) &var←c59452)+52)/* var←c51612 */ ) : 0 )  ? (End←v15528 != (word) (( (bPt) &var←c59452)+100)/* var←c51804 */ ) : 0 ) )
   ;
   }

static void RoundEnd←P3504(p←v15604, v←v15632, i0←v15660, i1←v15688, formal←c59484)
   W2 p←v15604;
   W2 v←v15632;
   word i0←v15660;
   word i1←v15688;
   word formal←c59484;
   {
   formal←c59484 = (formal←c59484 - 108);
   /* RoundEnd: */ 
SOURCE(12549, 127)
SOURCE(12606, 70)
   lab←L100082: ;
   if ((i0←v15660 != i1←v15688)) {
      }
   else {
      goto lab←L100080;
      };
SOURCE(12623, 28)
   {
      word var←c51964;
      word c←v43632;
      word mod←v43664;
      mod←v43664 = (* (( (ptr) (* (( (ptr) formal←c59484)+5) ))+5) );
      {
         word var←c0946;
SOURCE(2143, 38)
         c←v43632 = SGNCK((i0←v15660 + 1));
         var←c0946 = c←v43632;
         if ((var←c0946 >= mod←v43664)) {
SOURCE(2170, 11)
            c←v43632 = (c←v43632 - mod←v43664);
            };
SOURCE(2080, 101)
         var←c51964 = c←v43632;
         };
      i0←v15660 = var←c51964;
      };
SOURCE(12653, 23)
   {
      W2 var←c51996;
      {
         W2 var←c52028;
         W2 v2←v40200;
         {
            word limit476;
            v2←v40200 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59484)+5) ))+6))+(
                  limit476 = (* (( (ptr) (* (( (ptr) formal←c59484)+5) ))+5) ),
                  BCK(i0←v15660, limit476)
                  )) );
            };
SOURCE(1675, 31)
         {
            word x477;
            word x478;
            *(float*)&var←c52028.f0 = (
               x477 = p←v15604.f0,  *(float*)&x477
               ) + (
               x478 = v2←v40200.f0,  *(float*)&x478
               );
            };
         {
            word x479;
            word x480;
            *(float*)&var←c52028.f1 = (
               x479 = p←v15604.f1,  *(float*)&x479
               ) + (
               x480 = v2←v40200.f1,  *(float*)&x480
               );
            };
         var←c51996 = var←c52028;
         };
      {
         word pd481;
         pd481 = (* (( (ptr) formal←c59484)+8) );
         (void) ( *( (fPt) ((*  (ptr) pd481 ))))(var←c51996, pd481);
         };
      };
   goto lab←L100082;
   lab←L100080: ;
   }

static void SquareEnd←P3564(p←v15748, formal←c0997, i0←v15804, i1←v15832, formal←c59580)
   W2 p←v15748;
   W2 formal←c0997;
   word i0←v15804;
   word i1←v15832;
   word formal←c59580;
   {
   W9 var←c59516;
   /* declaration of v←v15776 skipped */ 
   register ptr gf←c59548 =  (ptr) &globalframe;
   formal←c59580 = (formal←c59580 - 100);
   (*  (W2Pt) (( (ptr) &var←c59516)+4)/* v←v15776 */  ) = formal←c0997;
   (*  (ptr) &var←c59516 ) = formal←c59580;
   /* SquareEnd: */ 
SOURCE(12690, 588)
SOURCE(12746, 532)
SOURCE(12748, 110)
   {
      word x482;
      word x483;
      word x484;
      word x485;
      if ( ( ((
         x482 = (* (( (ptr) &var←c59516)+4) ),  *(float*)&x482
         ) == (
         x483 = (*  (ptr) &fc34 ),  *(float*)&x483
         )) ? ((
         x484 = (* (( (ptr) &var←c59516)+5) ),  *(float*)&x484
         ) == (
         x485 = (*  (ptr) &fc34 ),  *(float*)&x485
         )) : 0 ) ) {
SOURCE(12782, 76)
         if (( (int)(* (( (ptr) formal←c59580)+6) ) ==  (int) (word) -1)) {
SOURCE(12826, 32)
            (void) SignalSquareEndWithNoDirection←P1080();
            };
SOURCE(12860, 14)
         goto lab←L100085;
         };
      };
SOURCE(12879, 350)
   {
      word ihalf←v17312;
      W2 V←v17340;
      W2 U←v17368;
      W2 u←v17396;
SOURCE(12881, 43)
      ihalf←v17312 = (word) FindVertex←P600((* (( (ptr) formal←c59580)+5) ), (*  (W2Pt) (( (ptr) &var←c59516)+4)/* v←v15776 */  ), i0←v15804)
      ;
SOURCE(12926, 79)
      {
         /* declaration of var←c01 skipped */ 
         (* (( (ptr) &var←c59516)+6)/* var←c01 */  ) = (* (( (ptr) (* (( (ptr) gf←c59548)+81)/* var←c52092 */  ))+42) );
         {
            /* declaration of var←c02 skipped */ 
            {
               word var←c03;
               {
                  word var←c0947;
                  var←c0947 = (word) &var←c59516;
                  var←c03 = (word) XR←Enable(( ((word)  (fPt) NoName←Q12516) ), ( ((word)  (fPt) NoName←Q12696) ), var←c0947);
                  };
               if ((var←c03 == 2)) {
                  goto lab←L100085;
                  };
               };
            V←v17340 = (*  (W2Pt) (( (ptr) &var←c59516)+7)/* var←c02 */  );
            };
         };
SOURCE(13022, 20)
      {
         word x486;
         *(float*)&U←v17368.f0 =  - (
            x486 = V←v17340.f1,  *(float*)&x486
            );
         };
      U←v17368.f1 = V←v17340.f0;
SOURCE(13044, 48)
      {
         word pd487;
         pd487 = (* (( (ptr) (* (( (ptr) gf←c59548)+81)/* var←c52092 */  ))+40) );
         (void) ( *( (fPt) ((*  (ptr) pd487 ))))((word) &u←v17396, (* (( (ptr) formal←c59580)+7) ), U←v17368, pd487);
         };
SOURCE(13094, 56)
      {
         word x488;
         word x489;
         word x490;
         word x491;
         word x492;
         if ((((
            x488 = u←v17396.f0,  *(float*)&x488
            ) * (
            x489 = (* (( (ptr) &var←c59516)+5) ),  *(float*)&x489
            )) - ((
            x490 = u←v17396.f1,  *(float*)&x490
            ) * (
            x491 = (* (( (ptr) &var←c59516)+4) ),  *(float*)&x491
            )) > (
            x492 = (*  (ptr) &fc34 ),  *(float*)&x492
            ))) {
SOURCE(13132, 18)
            {
               word pd493;
               pd493 = (* (( (ptr) (* (( (ptr) gf←c59548)+82)/* var←c52156 */  ))+8) );
               (void) ( *( (fPt) ((*  (ptr) pd493 ))))((word) &u←v17396, u←v17396, pd493);
               };
            };
         };
SOURCE(13152, 30)
      (void) MiterJoint←P3864(p←v15748, (*  (W2Pt) (( (ptr) &var←c59516)+4)/* v←v15776 */  ), u←v17396, i0←v15804, ihalf←v17312, (word) (
            ( (bPt) formal←c59580)+60));
SOURCE(13184, 43)
      {
         W2 var←c52188;
         {
            word pd494;
            pd494 = (* (( (ptr) (* (( (ptr) gf←c59548)+82)/* var←c52156 */  ))+8) );
            (void) ( *( (fPt) ((*  (ptr) pd494 ))))((word) &var←c52188, (*  (W2Pt) (( (ptr) &var←c59516)+4)/* v←v15776 */  ), pd494);
            };
         (void) MiterJoint←P3864(p←v15748, u←v17396, var←c52188, ihalf←v17312, i1←v15832, (word) (( (bPt) formal←c59580)+60));
         };
      };
   goto lab←L100088;
   lab←L100085: ;
SOURCE(13252, 23)
   {
      W2 var←c52220;
      {
         W2 var←c52252;
         W2 v2←v40152;
         {
            word limit495;
            v2←v40152 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59580)+5) ))+6))+(
                  limit495 = (* (( (ptr) (* (( (ptr) formal←c59580)+5) ))+5) ),
                  BCK(i1←v15832, limit495)
                  )) );
            };
SOURCE(1675, 31)
         {
            word x496;
            word x497;
            *(float*)&var←c52252.f0 = (
               x496 = p←v15748.f0,  *(float*)&x496
               ) + (
               x497 = v2←v40152.f0,  *(float*)&x497
               );
            };
         {
            word x498;
            word x499;
            *(float*)&var←c52252.f1 = (
               x498 = p←v15748.f1,  *(float*)&x498
               ) + (
               x499 = v2←v40152.f1,  *(float*)&x499
               );
            };
         var←c52220 = var←c52252;
         };
      {
         word pd500;
         pd500 = (* (( (ptr) formal←c59580)+8) );
         (void) ( *( (fPt) ((*  (ptr) pd500 ))))(var←c52220, pd500);
         };
      };
   lab←L100088: ;
   }

static word NoName←Q12516(formal←c0896)
   word formal←c0896;
   {
SOURCE(12926, 79)
   {
      word pd501;
      pd501 = (* (( (ptr) formal←c0896)+6) );
      (void) ( *( (fPt) ((*  (ptr) pd501 ))))((word) (( (bPt) formal←c0896)+28), (* (( (ptr) (*  (ptr) formal←c0896 ))+7) ), (*  (W2Pt) (
            ( (ptr) formal←c0896)+4) ), pd501);
      };
   return(0);
   }

static void Beam←P3624(formal←c0415, formal←c0998, i←v15920, formal←c59676)
   word formal←c0415;
   W2 formal←c0998;
   word i←v15920;
   word formal←c59676;
   {
   W9 var←c59612;
   /* declaration of v←v15892 skipped */ 
   register ptr gf←c59644 =  (ptr) &globalframe;
   W2 var←c15964;
   formal←c59676 = (formal←c59676 - 92);
   (*  (W2Pt) (( (ptr) &var←c59612)+4)/* v←v15892 */  ) = formal←c0998;
   (*  (ptr) &var←c59612 ) = formal←c59676;
   /* Beam: */ 
SOURCE(13281, 359)
SOURCE(13333, 307)
SOURCE(13335, 80)
   {
      W2 V←v17440;
      W2 u←v17468;
      word a←v17496;
      W2 beam←v17524;
SOURCE(13335, 80)
      {
         /* declaration of var←c04 skipped */ 
         (* (( (ptr) &var←c59612)+6)/* var←c04 */  ) = (* (( (ptr) (* (( (ptr) gf←c59644)+81)/* var←c52092 */  ))+42) );
         {
            /* declaration of var←c05 skipped */ 
            {
               word var←c06;
               {
                  word var←c0948;
                  var←c0948 = (word) &var←c59612;
                  var←c06 = (word) XR←Enable(( ((word)  (fPt) NoName←Q12576) ), ( ((word)  (fPt) NoName←Q12636) ), var←c0948);
                  };
               if ((var←c06 == 3)) {
                  goto lab←L100091;
                  };
               };
            V←v17440 = (*  (W2Pt) (( (ptr) &var←c59612)+7)/* var←c05 */  );
            };
         };
SOURCE(13431, 58)
      {
         W2 var←c0408;
         {
            W2 var←c52316;
            {
               word x502;
               *(float*)&var←c52316.f0 =  - (
                  x502 = V←v17440.f1,  *(float*)&x502
                  );
               };
            var←c52316.f1 = V←v17440.f0;
            {
               word pd503;
               pd503 = (* (( (ptr) (* (( (ptr) gf←c59644)+81)/* var←c52092 */  ))+40) );
               (void) ( *( (fPt) ((*  (ptr) pd503 ))))((word) &var←c0408, (* (( (ptr) formal←c59676)+7) ), var←c52316, pd503);
               };
            };
         u←v17468 = var←c0408;
         };
SOURCE(13491, 68)
      {
         word var←c52348;
         W2 v1←v45168;
         {
            word limit504;
            v1←v45168 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59676)+5) ))+6))+(
                  limit504 = (* (( (ptr) (* (( (ptr) formal←c59676)+5) ))+5) ),
                  BCK(i←v15920, limit504)
                  )) );
            };
         {
            word x505;
            word x506;
            word x507;
            word x508;
            *(float*)&var←c52348 = ((
               x505 = v1←v45168.f0,  *(float*)&x505
               ) * (
               x506 = (* (( (ptr) &var←c59612)+5) ),  *(float*)&x506
               )) - ((
               x507 = v1←v45168.f1,  *(float*)&x507
               ) * (
               x508 = (* (( (ptr) &var←c59612)+4) ),  *(float*)&x508
               ));
            };
         {
            word x509;
            word x510;
            word x511;
            word x512;
            word x513;
            *(float*)&a←v17496 = (
               x509 = var←c52348,  *(float*)&x509
               ) / (((
               x510 = u←v17468.f0,  *(float*)&x510
               ) * (
               x511 = (* (( (ptr) &var←c59612)+5) ),  *(float*)&x511
               )) - ((
               x512 = u←v17468.f1,  *(float*)&x512
               ) * (
               x513 = (* (( (ptr) &var←c59612)+4) ),  *(float*)&x513
               )));
            };
         };
SOURCE(13561, 29)
      {
         word pd514;
         pd514 = (* (( (ptr) (* (( (ptr) gf←c59644)+82)/* var←c52156 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd514 ))))((word) &beam←v17524, u←v17468, a←v17496, pd514);
         };
SOURCE(13592, 12)
      var←c15964 = beam←v17524;
      goto lab←L100090;
      };
   /* c2c skipped dead code */ 
   lab←L100091: ;
SOURCE(13625, 14)
   {
      W2 var←c52380;
      {
         word limit515;
         var←c52380 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59676)+5) ))+6))+(
               limit515 = (* (( (ptr) (* (( (ptr) formal←c59676)+5) ))+5) ),
               BCK(i←v15920, limit515)
               )) );
         };
      var←c15964 = var←c52380;
      goto lab←L100090;
      };
   lab←L100090: ;
   (*  (W2Pt) formal←c0415 ) = var←c15964;
   return;
   }

static word NoName←Q12576(formal←c0899)
   word formal←c0899;
   {
SOURCE(13335, 80)
   {
      word pd516;
      pd516 = (* (( (ptr) formal←c0899)+6) );
      (void) ( *( (fPt) ((*  (ptr) pd516 ))))((word) (( (bPt) formal←c0899)+28), (* (( (ptr) (*  (ptr) formal←c0899 ))+7) ), (*  (W2Pt) (
            ( (ptr) formal←c0899)+4) ), pd516);
      };
   return(0);
   }

static void ButtEnd←P3684(p←v16024, v←v16052, i0←v16080, i1←v16108, formal←c59708)
   W2 p←v16024;
   W2 v←v16052;
   word i0←v16080;
   word i1←v16108;
   word formal←c59708;
   {
   formal←c59708 = (formal←c59708 - 84);
   /* ButtEnd: */ 
SOURCE(13643, 174)
SOURCE(13699, 90)
   {
      word x517;
      word x518;
      word x519;
      word x520;
      if (((
         x517 = v←v16052.f0,  *(float*)&x517
         ) != (
         x518 = (*  (ptr) &fc34 ),  *(float*)&x518
         )) || ((
         x519 = v←v16052.f1,  *(float*)&x519
         ) != (
         x520 = (*  (ptr) &fc34 ),  *(float*)&x520
         ))) {
SOURCE(13729, 62)
         {
            W2 u←v17568;
SOURCE(13731, 20)
            (void) Beam←P3624((word) &u←v17568, v←v16052, i0←v16080, (word) (( (bPt) formal←c59708)+92));
SOURCE(13753, 17)
            {
               W2 var←c52412;
               {
                  word x521;
                  word x522;
                  *(float*)&var←c52412.f0 = (
                     x521 = p←v16024.f0,  *(float*)&x521
                     ) + (
                     x522 = u←v17568.f0,  *(float*)&x522
                     );
                  };
               {
                  word x523;
                  word x524;
                  *(float*)&var←c52412.f1 = (
                     x523 = p←v16024.f1,  *(float*)&x523
                     ) + (
                     x524 = u←v17568.f1,  *(float*)&x524
                     );
                  };
               {
                  word pd525;
                  pd525 = (* (( (ptr) formal←c59708)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd525 ))))(var←c52412, pd525);
                  };
               };
SOURCE(13772, 17)
            {
               W2 var←c52444;
               {
                  word x526;
                  word x527;
                  *(float*)&var←c52444.f0 = (
                     x526 = p←v16024.f0,  *(float*)&x526
                     ) - (
                     x527 = u←v17568.f0,  *(float*)&x527
                     );
                  };
               {
                  word x528;
                  word x529;
                  *(float*)&var←c52444.f1 = (
                     x528 = p←v16024.f1,  *(float*)&x528
                     ) - (
                     x529 = u←v17568.f1,  *(float*)&x529
                     );
                  };
               {
                  word pd530;
                  pd530 = (* (( (ptr) formal←c59708)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd530 ))))(var←c52444, pd530);
                  };
               };
            };
         };
      };
SOURCE(13794, 23)
   {
      W2 var←c52476;
      {
         W2 var←c52508;
         W2 v2←v40104;
         {
            word limit531;
            v2←v40104 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59708)+5) ))+6))+(
                  limit531 = (* (( (ptr) (* (( (ptr) formal←c59708)+5) ))+5) ),
                  BCK(i1←v16108, limit531)
                  )) );
            };
SOURCE(1675, 31)
         {
            word x532;
            word x533;
            *(float*)&var←c52508.f0 = (
               x532 = p←v16024.f0,  *(float*)&x532
               ) + (
               x533 = v2←v40104.f0,  *(float*)&x533
               );
            };
         {
            word x534;
            word x535;
            *(float*)&var←c52508.f1 = (
               x534 = p←v16024.f1,  *(float*)&x534
               ) + (
               x535 = v2←v40104.f1,  *(float*)&x535
               );
            };
         var←c52476 = var←c52508;
         };
      {
         word pd536;
         pd536 = (* (( (ptr) formal←c59708)+8) );
         (void) ( *( (fPt) ((*  (ptr) pd536 ))))(var←c52476, pd536);
         };
      };
   }

static void RoundJoint←P3744(p←v16168, v0←v16196, v1←v16224, i0←v16252, i1←v16280, formal←c59740)
   W2 p←v16168;
   W2 v0←v16196;
   W2 v1←v16224;
   word i0←v16252;
   word i1←v16280;
   word formal←c59740;
   {
   formal←c59740 = (formal←c59740 - 76);
   /* RoundJoint: */ 
SOURCE(13822, 134)
SOURCE(13886, 70)
   lab←L100099: ;
   if ((i0←v16252 != i1←v16280)) {
      }
   else {
      goto lab←L100097;
      };
SOURCE(13903, 28)
   {
      word var←c52572;
      word c←v43552;
      word mod←v43584;
      mod←v43584 = (* (( (ptr) (* (( (ptr) formal←c59740)+5) ))+5) );
      {
         word var←c0949;
SOURCE(2143, 38)
         c←v43552 = SGNCK((i0←v16252 + 1));
         var←c0949 = c←v43552;
         if ((var←c0949 >= mod←v43584)) {
SOURCE(2170, 11)
            c←v43552 = (c←v43552 - mod←v43584);
            };
SOURCE(2080, 101)
         var←c52572 = c←v43552;
         };
      i0←v16252 = var←c52572;
      };
SOURCE(13933, 23)
   {
      W2 var←c52604;
      {
         W2 var←c52636;
         W2 v2←v40056;
         {
            word limit537;
            v2←v40056 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59740)+5) ))+6))+(
                  limit537 = (* (( (ptr) (* (( (ptr) formal←c59740)+5) ))+5) ),
                  BCK(i0←v16252, limit537)
                  )) );
            };
SOURCE(1675, 31)
         {
            word x538;
            word x539;
            *(float*)&var←c52636.f0 = (
               x538 = p←v16168.f0,  *(float*)&x538
               ) + (
               x539 = v2←v40056.f0,  *(float*)&x539
               );
            };
         {
            word x540;
            word x541;
            *(float*)&var←c52636.f1 = (
               x540 = p←v16168.f1,  *(float*)&x540
               ) + (
               x541 = v2←v40056.f1,  *(float*)&x541
               );
            };
         var←c52604 = var←c52636;
         };
      {
         word pd542;
         pd542 = (* (( (ptr) formal←c59740)+8) );
         (void) ( *( (fPt) ((*  (ptr) pd542 ))))(var←c52604, pd542);
         };
      };
   goto lab←L100099;
   lab←L100097: ;
   }

static void BevelJoint←P3804(p←v16340, v0←v16368, v1←v16396, i0←v16424, i1←v16452, formal←c59772)
   W2 p←v16340;
   W2 v0←v16368;
   W2 v1←v16396;
   word i0←v16424;
   word i1←v16452;
   word formal←c59772;
   {
   formal←c59772 = (formal←c59772 - 68);
   /* BevelJoint: */ 
SOURCE(13970, 447)
SOURCE(14034, 355)
   {
      word x543;
      word x544;
      word x545;
      word x546;
      word x547;
      word x548;
      word x549;
      word x550;
      if ( ( (((
         x543 = v0←v16368.f0,  *(float*)&x543
         ) != (
         x544 = (*  (ptr) &fc34 ),  *(float*)&x544
         )) || ((
         x545 = v0←v16368.f1,  *(float*)&x545
         ) != (
         x546 = (*  (ptr) &fc34 ),  *(float*)&x546
         ))) ?  ( ((
         x547 = v1←v16396.f0,  *(float*)&x547
         ) != (
         x548 = (*  (ptr) &fc34 ),  *(float*)&x548
         )) ? 1 : ((
         x549 = v1←v16396.f1,  *(float*)&x549
         ) != (
         x550 = (*  (ptr) &fc34 ),  *(float*)&x550
         )) )  : 0 ) ) {
SOURCE(14089, 302)
         {
            W2 beam0←v17612;
            W2 beam1←v17640;
SOURCE(14091, 25)
            (void) Beam←P3624((word) &beam0←v17612, v0←v16368, i0←v16424, (word) (( (bPt) formal←c59772)+92));
SOURCE(14118, 25)
            (void) Beam←P3624((word) &beam1←v17640, v1←v16396, i1←v16452, (word) (( (bPt) formal←c59772)+92));
SOURCE(14145, 21)
            {
               W2 var←c52700;
               {
                  word x551;
                  word x552;
                  *(float*)&var←c52700.f0 = (
                     x551 = p←v16340.f0,  *(float*)&x551
                     ) + (
                     x552 = beam0←v17612.f0,  *(float*)&x552
                     );
                  };
               {
                  word x553;
                  word x554;
                  *(float*)&var←c52700.f1 = (
                     x553 = p←v16340.f1,  *(float*)&x553
                     ) + (
                     x554 = beam0←v17612.f1,  *(float*)&x554
                     );
                  };
               {
                  word pd555;
                  pd555 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd555 ))))(var←c52700, pd555);
                  };
               };
SOURCE(14168, 21)
            {
               W2 var←c52732;
               {
                  word x556;
                  word x557;
                  *(float*)&var←c52732.f0 = (
                     x556 = p←v16340.f0,  *(float*)&x556
                     ) - (
                     x557 = beam0←v17612.f0,  *(float*)&x557
                     );
                  };
               {
                  word x558;
                  word x559;
                  *(float*)&var←c52732.f1 = (
                     x558 = p←v16340.f1,  *(float*)&x558
                     ) - (
                     x559 = beam0←v17612.f1,  *(float*)&x559
                     );
                  };
               {
                  word pd560;
                  pd560 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd560 ))))(var←c52732, pd560);
                  };
               };
SOURCE(14191, 23)
            {
               W2 var←c52764;
               {
                  W2 var←c52796;
                  W2 v2←v41860;
                  {
                     word limit561;
                     v2←v41860 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59772)+5) ))+6))+(
                           limit561 = (* (( (ptr) (* (( (ptr) formal←c59772)+5) ))+5) ),
                           BCK(i0←v16424, limit561)
                           )) );
                     };
SOURCE(1759, 31)
                  {
                     word x562;
                     word x563;
                     *(float*)&var←c52796.f0 = (
                        x562 = p←v16340.f0,  *(float*)&x562
                        ) - (
                        x563 = v2←v41860.f0,  *(float*)&x563
                        );
                     };
                  {
                     word x564;
                     word x565;
                     *(float*)&var←c52796.f1 = (
                        x564 = p←v16340.f1,  *(float*)&x564
                        ) - (
                        x565 = v2←v41860.f1,  *(float*)&x565
                        );
                     };
                  var←c52764 = var←c52796;
                  };
               {
                  word pd566;
                  pd566 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd566 ))))(var←c52764, pd566);
                  };
               };
SOURCE(14216, 9)
            {
               word pd567;
               pd567 = (* (( (ptr) formal←c59772)+8) );
               (void) ( *( (fPt) ((*  (ptr) pd567 ))))(p←v16340, pd567);
               };
SOURCE(14227, 21)
            {
               W2 var←c52860;
               {
                  word x568;
                  word x569;
                  *(float*)&var←c52860.f0 = (
                     x568 = p←v16340.f0,  *(float*)&x568
                     ) + (
                     x569 = beam1←v17640.f0,  *(float*)&x569
                     );
                  };
               {
                  word x570;
                  word x571;
                  *(float*)&var←c52860.f1 = (
                     x570 = p←v16340.f1,  *(float*)&x570
                     ) + (
                     x571 = beam1←v17640.f1,  *(float*)&x571
                     );
                  };
               {
                  word pd572;
                  pd572 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd572 ))))(var←c52860, pd572);
                  };
               };
SOURCE(14250, 23)
            {
               W2 var←c52892;
               {
                  W2 var←c52924;
                  W2 v2←v40008;
                  {
                     word limit573;
                     v2←v40008 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59772)+5) ))+6))+(
                           limit573 = (* (( (ptr) (* (( (ptr) formal←c59772)+5) ))+5) ),
                           BCK(i1←v16452, limit573)
                           )) );
                     };
SOURCE(1675, 31)
                  {
                     word x574;
                     word x575;
                     *(float*)&var←c52924.f0 = (
                        x574 = p←v16340.f0,  *(float*)&x574
                        ) + (
                        x575 = v2←v40008.f0,  *(float*)&x575
                        );
                     };
                  {
                     word x576;
                     word x577;
                     *(float*)&var←c52924.f1 = (
                        x576 = p←v16340.f1,  *(float*)&x576
                        ) + (
                        x577 = v2←v40008.f1,  *(float*)&x577
                        );
                     };
                  var←c52892 = var←c52924;
                  };
               {
                  word pd578;
                  pd578 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd578 ))))(var←c52892, pd578);
                  };
               };
SOURCE(14275, 23)
            {
               W2 var←c52988;
               {
                  W2 var←c53020;
                  W2 v2←v41812;
                  {
                     word limit579;
                     v2←v41812 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59772)+5) ))+6))+(
                           limit579 = (* (( (ptr) (* (( (ptr) formal←c59772)+5) ))+5) ),
                           BCK(i1←v16452, limit579)
                           )) );
                     };
SOURCE(1759, 31)
                  {
                     word x580;
                     word x581;
                     *(float*)&var←c53020.f0 = (
                        x580 = p←v16340.f0,  *(float*)&x580
                        ) - (
                        x581 = v2←v41812.f0,  *(float*)&x581
                        );
                     };
                  {
                     word x582;
                     word x583;
                     *(float*)&var←c53020.f1 = (
                        x582 = p←v16340.f1,  *(float*)&x582
                        ) - (
                        x583 = v2←v41812.f1,  *(float*)&x583
                        );
                     };
                  var←c52988 = var←c53020;
                  };
               {
                  word pd584;
                  pd584 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd584 ))))(var←c52988, pd584);
                  };
               };
SOURCE(14300, 21)
            {
               W2 var←c53084;
               {
                  word x585;
                  word x586;
                  *(float*)&var←c53084.f0 = (
                     x585 = p←v16340.f0,  *(float*)&x585
                     ) - (
                     x586 = beam1←v17640.f0,  *(float*)&x586
                     );
                  };
               {
                  word x587;
                  word x588;
                  *(float*)&var←c53084.f1 = (
                     x587 = p←v16340.f1,  *(float*)&x587
                     ) - (
                     x588 = beam1←v17640.f1,  *(float*)&x588
                     );
                  };
               {
                  word pd589;
                  pd589 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd589 ))))(var←c53084, pd589);
                  };
               };
SOURCE(14323, 9)
            {
               word pd590;
               pd590 = (* (( (ptr) formal←c59772)+8) );
               (void) ( *( (fPt) ((*  (ptr) pd590 ))))(p←v16340, pd590);
               };
SOURCE(14334, 21)
            {
               W2 var←c53116;
               {
                  word x591;
                  word x592;
                  *(float*)&var←c53116.f0 = (
                     x591 = p←v16340.f0,  *(float*)&x591
                     ) + (
                     x592 = beam0←v17612.f0,  *(float*)&x592
                     );
                  };
               {
                  word x593;
                  word x594;
                  *(float*)&var←c53116.f1 = (
                     x593 = p←v16340.f1,  *(float*)&x593
                     ) + (
                     x594 = beam0←v17612.f1,  *(float*)&x594
                     );
                  };
               {
                  word pd595;
                  pd595 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd595 ))))(var←c53116, pd595);
                  };
               };
SOURCE(14357, 21)
            {
               W2 var←c53148;
               {
                  word x596;
                  word x597;
                  *(float*)&var←c53148.f0 = (
                     x596 = p←v16340.f0,  *(float*)&x596
                     ) + (
                     x597 = beam1←v17640.f0,  *(float*)&x597
                     );
                  };
               {
                  word x598;
                  word x599;
                  *(float*)&var←c53148.f1 = (
                     x598 = p←v16340.f1,  *(float*)&x598
                     ) + (
                     x599 = beam1←v17640.f1,  *(float*)&x599
                     );
                  };
               {
                  word pd600;
                  pd600 = (* (( (ptr) formal←c59772)+8) );
                  (void) ( *( (fPt) ((*  (ptr) pd600 ))))(var←c53148, pd600);
                  };
               };
SOURCE(14380, 9)
            {
               word pd601;
               pd601 = (* (( (ptr) formal←c59772)+8) );
               (void) ( *( (fPt) ((*  (ptr) pd601 ))))(p←v16340, pd601);
               };
            };
         };
      };
SOURCE(14394, 23)
   {
      W2 var←c53180;
      {
         W2 var←c53212;
         W2 v2←v39960;
         {
            word limit602;
            v2←v39960 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59772)+5) ))+6))+(
                  limit602 = (* (( (ptr) (* (( (ptr) formal←c59772)+5) ))+5) ),
                  BCK(i1←v16452, limit602)
                  )) );
            };
SOURCE(1675, 31)
         {
            word x603;
            word x604;
            *(float*)&var←c53212.f0 = (
               x603 = p←v16340.f0,  *(float*)&x603
               ) + (
               x604 = v2←v39960.f0,  *(float*)&x604
               );
            };
         {
            word x605;
            word x606;
            *(float*)&var←c53212.f1 = (
               x605 = p←v16340.f1,  *(float*)&x605
               ) + (
               x606 = v2←v39960.f1,  *(float*)&x606
               );
            };
         var←c53180 = var←c53212;
         };
      {
         word pd607;
         pd607 = (* (( (ptr) formal←c59772)+8) );
         (void) ( *( (fPt) ((*  (ptr) pd607 ))))(var←c53180, pd607);
         };
      };
   }

static void MiterJoint←P3864(p←v16512, v0←v16540, v1←v16568, i0←v16596, i1←v16624, formal←c59836)
   W2 p←v16512;
   W2 v0←v16540;
   W2 v1←v16568;
   word i0←v16596;
   word i1←v16624;
   word formal←c59836;
   {
   register ptr gf←c59804 =  (ptr) &globalframe;
   W2 u←v17684;
   word d←v17712;
   word a←v17740;
   formal←c59836 = (formal←c59836 - 60);
   /* MiterJoint: */ 
SOURCE(14422, 278)
SOURCE(14486, 30)
   {
      W2 v1←v41736;
      W2 v2←v41764;
      {
         word limit608;
         v1←v41736 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59836)+5) ))+6))+(
               limit608 = (* (( (ptr) (* (( (ptr) formal←c59836)+5) ))+5) ),
               BCK(i1←v16624, limit608)
               )) );
         };
      {
         word limit609;
         v2←v41764 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59836)+5) ))+6))+(
               limit609 = (* (( (ptr) (* (( (ptr) formal←c59836)+5) ))+5) ),
               BCK(i0←v16596, limit609)
               )) );
         };
SOURCE(1759, 31)
      {
         word x610;
         word x611;
         *(float*)&u←v17684.f0 = (
            x610 = v1←v41736.f0,  *(float*)&x610
            ) - (
            x611 = v2←v41764.f0,  *(float*)&x611
            );
         };
      {
         word x612;
         word x613;
         *(float*)&u←v17684.f1 = (
            x612 = v1←v41736.f1,  *(float*)&x612
            ) - (
            x613 = v2←v41764.f1,  *(float*)&x613
            );
         };
      };
SOURCE(14518, 37)
   {
      word x614;
      word x615;
      word x616;
      word x617;
      *(float*)&d←v17712 = ((
         x614 = v0←v16540.f0,  *(float*)&x614
         ) * (
         x615 = v1←v16568.f1,  *(float*)&x615
         )) - ((
         x616 = v0←v16540.f1,  *(float*)&x616
         ) * (
         x617 = v1←v16568.f0,  *(float*)&x617
         ));
      };
SOURCE(14557, 68)
   {
      word x618;
      word x619;
      word x620;
      word x621;
      word x622;
      word x623;
      word x624;
      *(float*)&a←v17740 = (((
         x618 = u←v17684.f0,  *(float*)&x618
         ) * (
         x619 = v1←v16568.f1,  *(float*)&x619
         )) - ((
         x620 = u←v17684.f1,  *(float*)&x620
         ) * (
         x621 = v1←v16568.f0,  *(float*)&x621
         ))) / (
         x624 =  ( ((
            x622 = d←v17712,  *(float*)&x622
            ) > (
            x623 = (* (( (ptr) gf←c59804)+5)/* verySmallNumber←v4176 */  ),  *(float*)&x623
            )) ? d←v17712 : (* (( (ptr) gf←c59804)+5)/* verySmallNumber←v4176 */  ) ) ,  *(float*)&x624
         );
      };
SOURCE(14627, 48)
   {
      W2 var←c53340;
      {
         W2 var←c53372;
         W2 v1←v39808;
         W2 v2←v39836;
         v1←v39808 = p←v16512;
         {
            W2 v1←v39884;
            W2 v2←v39912;
            {
               word limit625;
               v1←v39884 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59836)+5) ))+6))+(
                     limit625 = (* (( (ptr) (* (( (ptr) formal←c59836)+5) ))+5) ),
                     BCK(i0←v16596, limit625)
                     )) );
               };
            {
               word pd626;
               pd626 = (* (( (ptr) (* (( (ptr) gf←c59804)+82)/* var←c52156 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd626 ))))((word) &v2←v39912, v0←v16540, a←v17740, pd626);
               };
SOURCE(1675, 31)
            {
               word x627;
               word x628;
               *(float*)&v2←v39836.f0 = (
                  x627 = v1←v39884.f0,  *(float*)&x627
                  ) + (
                  x628 = v2←v39912.f0,  *(float*)&x628
                  );
               };
            {
               word x629;
               word x630;
               *(float*)&v2←v39836.f1 = (
                  x629 = v1←v39884.f1,  *(float*)&x629
                  ) + (
                  x630 = v2←v39912.f1,  *(float*)&x630
                  );
               };
            };
SOURCE(1675, 31)
         {
            word x631;
            word x632;
            *(float*)&var←c53372.f0 = (
               x631 = v1←v39808.f0,  *(float*)&x631
               ) + (
               x632 = v2←v39836.f0,  *(float*)&x632
               );
            };
         {
            word x633;
            word x634;
            *(float*)&var←c53372.f1 = (
               x633 = v1←v39808.f1,  *(float*)&x633
               ) + (
               x634 = v2←v39836.f1,  *(float*)&x634
               );
            };
         var←c53340 = var←c53372;
         };
      {
         word pd635;
         pd635 = (* (( (ptr) formal←c59836)+8) );
         (void) ( *( (fPt) ((*  (ptr) pd635 ))))(var←c53340, pd635);
         };
      };
SOURCE(14677, 23)
   {
      W2 var←c53500;
      {
         W2 var←c53532;
         W2 v2←v39760;
         {
            word limit636;
            v2←v39760 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59836)+5) ))+6))+(
                  limit636 = (* (( (ptr) (* (( (ptr) formal←c59836)+5) ))+5) ),
                  BCK(i1←v16624, limit636)
                  )) );
            };
SOURCE(1675, 31)
         {
            word x637;
            word x638;
            *(float*)&var←c53532.f0 = (
               x637 = p←v16512.f0,  *(float*)&x637
               ) + (
               x638 = v2←v39760.f0,  *(float*)&x638
               );
            };
         {
            word x639;
            word x640;
            *(float*)&var←c53532.f1 = (
               x639 = p←v16512.f1,  *(float*)&x639
               ) + (
               x640 = v2←v39760.f1,  *(float*)&x640
               );
            };
         var←c53500 = var←c53532;
         };
      {
         word pd641;
         pd641 = (* (( (ptr) formal←c59836)+8) );
         (void) ( *( (fPt) ((*  (ptr) pd641 ))))(var←c53500, pd641);
         };
      };
   }

static void MiterOrBevelJoint←P3924(p←v16684, v0←v16712, v1←v16740, i0←v16768, i1←v16796, formal←c59900)
   W2 p←v16684;
   W2 v0←v16712;
   W2 v1←v16740;
   word i0←v16768;
   word i1←v16796;
   word formal←c59900;
   {
   register ptr gf←c59868 =  (ptr) &globalframe;
   W2 u←v17784;
   word d←v17812;
   word a←v17840;
   W2 miterTipDelta←v17868;
   word var←c53724;
   word x←v44948;
   word y←v44976;
   word var←c0950;
   formal←c59900 = (formal←c59900 - 52);
   /* MiterOrBevelJoint: */ 
SOURCE(14705, 485)
SOURCE(14776, 30)
   {
      W2 v1←v41660;
      W2 v2←v41688;
      {
         word limit642;
         v1←v41660 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59900)+5) ))+6))+(
               limit642 = (* (( (ptr) (* (( (ptr) formal←c59900)+5) ))+5) ),
               BCK(i1←v16796, limit642)
               )) );
         };
      {
         word limit643;
         v2←v41688 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59900)+5) ))+6))+(
               limit643 = (* (( (ptr) (* (( (ptr) formal←c59900)+5) ))+5) ),
               BCK(i0←v16768, limit643)
               )) );
         };
SOURCE(1759, 31)
      {
         word x644;
         word x645;
         *(float*)&u←v17784.f0 = (
            x644 = v1←v41660.f0,  *(float*)&x644
            ) - (
            x645 = v2←v41688.f0,  *(float*)&x645
            );
         };
      {
         word x646;
         word x647;
         *(float*)&u←v17784.f1 = (
            x646 = v1←v41660.f1,  *(float*)&x646
            ) - (
            x647 = v2←v41688.f1,  *(float*)&x647
            );
         };
      };
SOURCE(14808, 37)
   {
      word x648;
      word x649;
      word x650;
      word x651;
      *(float*)&d←v17812 = ((
         x648 = v0←v16712.f0,  *(float*)&x648
         ) * (
         x649 = v1←v16740.f1,  *(float*)&x649
         )) - ((
         x650 = v0←v16712.f1,  *(float*)&x650
         ) * (
         x651 = v1←v16740.f0,  *(float*)&x651
         ));
      };
SOURCE(14847, 68)
   {
      word x652;
      word x653;
      word x654;
      word x655;
      word x656;
      word x657;
      word x658;
      *(float*)&a←v17840 = (((
         x652 = u←v17784.f0,  *(float*)&x652
         ) * (
         x653 = v1←v16740.f1,  *(float*)&x653
         )) - ((
         x654 = u←v17784.f1,  *(float*)&x654
         ) * (
         x655 = v1←v16740.f0,  *(float*)&x655
         ))) / (
         x658 =  ( ((
            x656 = d←v17812,  *(float*)&x656
            ) > (
            x657 = (* (( (ptr) gf←c59868)+5)/* verySmallNumber←v4176 */  ),  *(float*)&x657
            )) ? d←v17812 : (* (( (ptr) gf←c59868)+5)/* verySmallNumber←v4176 */  ) ) ,  *(float*)&x658
         );
      };
SOURCE(14917, 53)
   {
      W2 v1←v39684;
      W2 v2←v39712;
      {
         word limit659;
         v1←v39684 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59900)+5) ))+6))+(
               limit659 = (* (( (ptr) (* (( (ptr) formal←c59900)+5) ))+5) ),
               BCK(i0←v16768, limit659)
               )) );
         };
      {
         word pd660;
         pd660 = (* (( (ptr) (* (( (ptr) gf←c59868)+82)/* var←c52156 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd660 ))))((word) &v2←v39712, v0←v16712, a←v17840, pd660);
         };
SOURCE(1675, 31)
      {
         word x661;
         word x662;
         *(float*)&miterTipDelta←v17868.f0 = (
            x661 = v1←v39684.f0,  *(float*)&x661
            ) + (
            x662 = v2←v39712.f0,  *(float*)&x662
            );
         };
      {
         word x663;
         word x664;
         *(float*)&miterTipDelta←v17868.f1 = (
            x663 = v1←v39684.f1,  *(float*)&x663
            ) + (
            x664 = v2←v39712.f1,  *(float*)&x664
            );
         };
      };
SOURCE(14972, 218)
   {
      word x674;
      word x675;
      {
         word pd665;
         word limit666;
         pd665 = (* (( (ptr) (* (( (ptr) gf←c59868)+82)/* var←c52156 */  ))+24) );
         x←v44948 = (word) ( *( (fPt) ((*  (ptr) pd665 ))))((* ((( (W2Pt) (( (ptr) (* (( (ptr) formal←c59900)+5) ))+6))+(
                  limit666 = (* (( (ptr) (* (( (ptr) formal←c59900)+5) ))+5) ),
                  BCK(i0←v16768, limit666)
                  ))) ), pd665);
         };
      {
         word pd667;
         word limit668;
         pd667 = (* (( (ptr) (* (( (ptr) gf←c59868)+82)/* var←c52156 */  ))+24) );
         y←v44976 = (word) ( *( (fPt) ((*  (ptr) pd667 ))))((* ((( (W2Pt) (( (ptr) (* (( (ptr) formal←c59900)+5) ))+6))+(
                  limit668 = (* (( (ptr) (* (( (ptr) formal←c59900)+5) ))+5) ),
                  BCK(i1←v16796, limit668)
                  ))) ), pd667);
         };
      {
         word x669;
         word x670;
         var←c53724 = (x669 = ( (((unsigned)x←v44948 << 1) >> 1) ),
            x670 = ( (((unsigned)y←v44976 << 1) >> 1) ),
            MIN( (unsigned) , x669, x670));
         };
      {
         word pd671;
         word x672;
         word x673;
         pd671 = (* (( (ptr) (* (( (ptr) gf←c59868)+82)/* var←c52156 */  ))+24) );
         *(float*)&var←c0950 = (
            x672 = (word) ( *( (fPt) ((*  (ptr) pd671 ))))(miterTipDelta←v17868, pd671),  *(float*)&x672
            ) / (
            x673 = var←c53724,  *(float*)&x673
            );
         };
      if (((
         x674 = (* (( (ptr) formal←c59900)+10) ),  *(float*)&x674
         ) < (
         x675 = var←c0950,  *(float*)&x675
         ))) {
SOURCE(15095, 31)
         (void) BevelJoint←P3804(p←v16684, v0←v16712, v1←v16740, i0←v16768, i1←v16796, (word) (( (bPt) formal←c59900)+68));
         }
      else {
SOURCE(15135, 29)
         {
            W2 var←c53756;
            {
               word x676;
               word x677;
               *(float*)&var←c53756.f0 = (
                  x676 = p←v16684.f0,  *(float*)&x676
                  ) + (
                  x677 = miterTipDelta←v17868.f0,  *(float*)&x677
                  );
               };
            {
               word x678;
               word x679;
               *(float*)&var←c53756.f1 = (
                  x678 = p←v16684.f1,  *(float*)&x678
                  ) + (
                  x679 = miterTipDelta←v17868.f1,  *(float*)&x679
                  );
               };
            {
               word pd680;
               pd680 = (* (( (ptr) formal←c59900)+8) );
               (void) ( *( (fPt) ((*  (ptr) pd680 ))))(var←c53756, pd680);
               };
            };
SOURCE(15166, 24)
         {
            W2 var←c53788;
            {
               W2 var←c53820;
               W2 v2←v39636;
               {
                  word limit681;
                  v2←v39636 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c59900)+5) ))+6))+(
                        limit681 = (* (( (ptr) (* (( (ptr) formal←c59900)+5) ))+5) ),
                        BCK(i1←v16796, limit681)
                        )) );
                  };
SOURCE(1675, 31)
               {
                  word x682;
                  word x683;
                  *(float*)&var←c53820.f0 = (
                     x682 = p←v16684.f0,  *(float*)&x682
                     ) + (
                     x683 = v2←v39636.f0,  *(float*)&x683
                     );
                  };
               {
                  word x684;
                  word x685;
                  *(float*)&var←c53820.f1 = (
                     x684 = p←v16684.f1,  *(float*)&x684
                     ) + (
                     x685 = v2←v39636.f1,  *(float*)&x685
                     );
                  };
               var←c53788 = var←c53820;
               };
            {
               word pd686;
               pd686 = (* (( (ptr) formal←c59900)+8) );
               (void) ( *( (fPt) ((*  (ptr) pd686 ))))(var←c53788, pd686);
               };
            };
         };
      };
   }

static void Path←P3984(moveTo←v16856, lineTo←v16884, curveTo←v16912, conicTo←v16940, arcTo←v16968, formal←c59964)
   word moveTo←v16856;
   word lineTo←v16884;
   word curveTo←v16912;
   word conicTo←v16940;
   word arcTo←v16968;
   word formal←c59964;
   {
   register ptr gf←c59932 =  (ptr) &globalframe;
   formal←c59964 = (formal←c59964 - 44);
   /* Path: */ 
SOURCE(15196, 271)
SOURCE(15315, 152)
   {
      word pd687;
      pd687 = (* (( (ptr) (* (( (ptr) gf←c59932)+79)/* var←c51484 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd687 ))))((* (( (ptr) formal←c59964)+4) ),  ( ((* (( (ptr) formal←c59964)+9) ) == 0) ? (* (
            ( (ptr) formal←c59964)+7) ) : (* (( (ptr) formal←c59964)+9) ) ) , moveTo←v16856, lineTo←v16884, curveTo←v16912, conicTo←v16940
         , arcTo←v16968, 0, pd687);
      };
   }

static void PathFromVector←P1200(p0←v8464, p1←v8492, pen←v8520, end←v8548, m←v8576, moveTo←v8604, lineTo←v8632)
   W2 p0←v8464;
   W2 p1←v8492;
   word pen←v8520;
   word end←v8548;
   word m←v8576;
   word moveTo←v8604;
   word lineTo←v8632;
   {
   register ptr gf←c59996 =  (ptr) &globalframe;
   W2 d0←v17912;
   W2 d1←v17940;
   /* PathFromVector: */ 
SOURCE(16215, 1935)
SOURCE(16387, 47)
   {
      word pd688;
      pd688 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+39) );
      (void) ( *( (fPt) ((*  (ptr) pd688 ))))((word) &d0←v17912, m←v8576, p0←v8464, pd688);
      };
SOURCE(16436, 47)
   {
      word pd689;
      pd689 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+39) );
      (void) ( *( (fPt) ((*  (ptr) pd689 ))))((word) &d1←v17940, m←v8576, p1←v8492, pd689);
      };
SOURCE(16485, 1665)
   if (( (int)end←v8548 ==  (int)2)) {
SOURCE(16521, 490)
      {
         W2 direction←v18012;
         word ix0←v18040;
         word ix1←v18068;
SOURCE(16671, 28)
         {
            word x690;
            word x691;
            *(float*)&direction←v18012.f0 = (
               x690 = d1←v17940.f0,  *(float*)&x690
               ) - (
               x691 = d0←v17912.f0,  *(float*)&x691
               );
            };
         {
            word x692;
            word x693;
            *(float*)&direction←v18012.f1 = (
               x692 = d1←v17940.f1,  *(float*)&x692
               ) - (
               x693 = d0←v17912.f1,  *(float*)&x693
               );
            };
SOURCE(16701, 71)
         {
            W2 var←c53916;
            {
               word x694;
               *(float*)&var←c53916.f0 =  - (
                  x694 = direction←v18012.f1,  *(float*)&x694
                  );
               };
            var←c53916.f1 = direction←v18012.f0;
            ix0←v18040 = (word) FindVertex←P600(pen←v8520, var←c53916, 0);
            };
SOURCE(16774, 109)
         {
            word var←c53948;
            {
               word var←c53980;
               word c←v43444;
               word b←v43476;
               word mod←v43504;
               b←v43476 = ((* (( (ptr) pen←v8520)+5) ) >> 1);
               mod←v43504 = (* (( (ptr) pen←v8520)+5) );
               {
                  word var←c0951;
SOURCE(2143, 38)
                  c←v43444 = SGNCK((ix0←v18040 + b←v43476));
                  var←c0951 = c←v43444;
                  if ((var←c0951 >= mod←v43504)) {
SOURCE(2170, 11)
                     c←v43444 = (c←v43444 - mod←v43504);
                     };
SOURCE(2080, 101)
                  var←c53980 = c←v43444;
                  };
               var←c53948 = var←c53980;
               };
            {
               W2 var←c54012;
               var←c54012.f0 = direction←v18012.f1;
               {
                  word x695;
                  *(float*)&var←c54012.f1 =  - (
                     x695 = direction←v18012.f0,  *(float*)&x695
                     );
                  };
               ix1←v18068 = (word) FindVertex←P600(pen←v8520, var←c54012, var←c53948);
               };
            };
SOURCE(16885, 25)
         {
            W2 var←c54044;
            {
               W2 var←c54076;
               W2 v2←v39588;
               {
                  word limit696;
                  v2←v39588 = (* (( (W2Pt) (( (ptr) pen←v8520)+6))+(
                        limit696 = (* (( (ptr) pen←v8520)+5) ),
                        BCK(ix0←v18040, limit696)
                        )) );
                  };
SOURCE(1675, 31)
               {
                  word x697;
                  word x698;
                  *(float*)&var←c54076.f0 = (
                     x697 = d0←v17912.f0,  *(float*)&x697
                     ) + (
                     x698 = v2←v39588.f0,  *(float*)&x698
                     );
                  };
               {
                  word x699;
                  word x700;
                  *(float*)&var←c54076.f1 = (
                     x699 = d0←v17912.f1,  *(float*)&x699
                     ) + (
                     x700 = v2←v39588.f1,  *(float*)&x700
                     );
                  };
               var←c54044 = var←c54076;
               };
            (void) ( *( (fPt) ((*  (ptr) moveTo←v8604 ))))(var←c54044, moveTo←v8604);
            };
SOURCE(16912, 35)
         {
            W2 p←v44328;
            W2 v←v44356;
            word i0←v44384;
            word i1←v44412;
            p←v44328 = d0←v17912;
            {
               word x701;
               word x702;
               *(float*)&v←v44356.f0 = (
                  x701 = d0←v17912.f0,  *(float*)&x701
                  ) - (
                  x702 = d1←v17940.f0,  *(float*)&x702
                  );
               };
            {
               word x703;
               word x704;
               *(float*)&v←v44356.f1 = (
                  x703 = d0←v17912.f1,  *(float*)&x703
                  ) - (
                  x704 = d1←v17940.f1,  *(float*)&x704
                  );
               };
            i0←v44384 = ix0←v18040;
            i1←v44412 = ix1←v18068;
SOURCE(16587, 70)
            lab←L100118: ;
            if ((i0←v44384 != i1←v44412)) {
               }
            else {
               goto lab←L100116;
               };
SOURCE(16604, 28)
            {
               word var←c54172;
               word c←v43364;
               word mod←v43396;
               mod←v43396 = (* (( (ptr) pen←v8520)+5) );
               {
                  word var←c0952;
SOURCE(2143, 38)
                  c←v43364 = SGNCK((i0←v44384 + 1));
                  var←c0952 = c←v43364;
                  if ((var←c0952 >= mod←v43396)) {
SOURCE(2170, 11)
                     c←v43364 = (c←v43364 - mod←v43396);
                     };
SOURCE(2080, 101)
                  var←c54172 = c←v43364;
                  };
               i0←v44384 = var←c54172;
               };
SOURCE(16634, 23)
            {
               W2 var←c54204;
               {
                  W2 var←c54236;
                  W2 v2←v39492;
                  {
                     word limit705;
                     v2←v39492 = (* (( (W2Pt) (( (ptr) pen←v8520)+6))+(
                           limit705 = (* (( (ptr) pen←v8520)+5) ),
                           BCK(i0←v44384, limit705)
                           )) );
                     };
SOURCE(1675, 31)
                  {
                     word x706;
                     word x707;
                     *(float*)&var←c54236.f0 = (
                        x706 = p←v44328.f0,  *(float*)&x706
                        ) + (
                        x707 = v2←v39492.f0,  *(float*)&x707
                        );
                     };
                  {
                     word x708;
                     word x709;
                     *(float*)&var←c54236.f1 = (
                        x708 = p←v44328.f1,  *(float*)&x708
                        ) + (
                        x709 = v2←v39492.f1,  *(float*)&x709
                        );
                     };
                  var←c54204 = var←c54236;
                  };
               (void) ( *( (fPt) ((*  (ptr) lineTo←v8632 ))))(var←c54204, lineTo←v8632);
               };
            goto lab←L100118;
            lab←L100116: ;
            };
SOURCE(16949, 25)
         {
            W2 var←c54300;
            {
               W2 var←c54332;
               W2 v2←v39540;
               {
                  word limit710;
                  v2←v39540 = (* (( (W2Pt) (( (ptr) pen←v8520)+6))+(
                        limit710 = (* (( (ptr) pen←v8520)+5) ),
                        BCK(ix1←v18068, limit710)
                        )) );
                  };
SOURCE(1675, 31)
               {
                  word x711;
                  word x712;
                  *(float*)&var←c54332.f0 = (
                     x711 = d1←v17940.f0,  *(float*)&x711
                     ) + (
                     x712 = v2←v39540.f0,  *(float*)&x712
                     );
                  };
               {
                  word x713;
                  word x714;
                  *(float*)&var←c54332.f1 = (
                     x713 = d1←v17940.f1,  *(float*)&x713
                     ) + (
                     x714 = v2←v39540.f1,  *(float*)&x714
                     );
                  };
               var←c54300 = var←c54332;
               };
            (void) ( *( (fPt) ((*  (ptr) lineTo←v8632 ))))(var←c54300, lineTo←v8632);
            };
SOURCE(16976, 33)
         {
            W2 p←v44080;
            W2 v←v44108;
            word i0←v44136;
            word i1←v44164;
            p←v44080 = d1←v17940;
            v←v44108 = direction←v18012;
            i0←v44136 = ix1←v18068;
            i1←v44164 = ix0←v18040;
SOURCE(16587, 70)
            lab←L100124: ;
            if ((i0←v44136 != i1←v44164)) {
               }
            else {
               goto lab←L100122;
               };
SOURCE(16604, 28)
            {
               word var←c54396;
               word c←v44212;
               word mod←v44240;
               mod←v44240 = (* (( (ptr) pen←v8520)+5) );
               {
                  word var←c0953;
SOURCE(2143, 38)
                  c←v44212 = SGNCK((i0←v44136 + 1));
                  var←c0953 = c←v44212;
                  if ((var←c0953 >= mod←v44240)) {
SOURCE(2170, 11)
                     c←v44212 = (c←v44212 - mod←v44240);
                     };
SOURCE(2080, 101)
                  var←c54396 = c←v44212;
                  };
               i0←v44136 = var←c54396;
               };
SOURCE(16634, 23)
            {
               W2 var←c54428;
               {
                  W2 var←c54460;
                  W2 v2←v44284;
                  {
                     word limit715;
                     v2←v44284 = (* (( (W2Pt) (( (ptr) pen←v8520)+6))+(
                           limit715 = (* (( (ptr) pen←v8520)+5) ),
                           BCK(i0←v44136, limit715)
                           )) );
                     };
SOURCE(1675, 31)
                  {
                     word x716;
                     word x717;
                     *(float*)&var←c54460.f0 = (
                        x716 = p←v44080.f0,  *(float*)&x716
                        ) + (
                        x717 = v2←v44284.f0,  *(float*)&x717
                        );
                     };
                  {
                     word x718;
                     word x719;
                     *(float*)&var←c54460.f1 = (
                        x718 = p←v44080.f1,  *(float*)&x718
                        ) + (
                        x719 = v2←v44284.f1,  *(float*)&x719
                        );
                     };
                  var←c54428 = var←c54460;
                  };
               (void) ( *( (fPt) ((*  (ptr) lineTo←v8632 ))))(var←c54428, lineTo←v8632);
               };
            goto lab←L100124;
            lab←L100122: ;
            };
         };
      }
   else {
SOURCE(17018, 1134)
      {
         W2 min←v18256;
         W2 max←v18284;
         W2 delta←v18312;
         word s←v18340;
         word t←v18368 = 0;
SOURCE(17020, 29)
         min←v18256.f0 = 2139095039;
         min←v18256.f1 = 2139095039;
SOURCE(17051, 31)
         {
            word x720;
            *(float*)&max←v18284.f0 =  - (
               x720 = 2139095039,  *(float*)&x720
               );
            };
         {
            word x721;
            *(float*)&max←v18284.f1 =  - (
               x721 = 2139095039,  *(float*)&x721
               );
            };
SOURCE(17084, 24)
         {
            word x722;
            word x723;
            *(float*)&delta←v18312.f0 = (
               x722 = p1←v8492.f0,  *(float*)&x722
               ) - (
               x723 = p0←v8464.f0,  *(float*)&x723
               );
            };
         {
            word x724;
            word x725;
            *(float*)&delta←v18312.f1 = (
               x724 = p1←v8492.f1,  *(float*)&x724
               ) - (
               x725 = p0←v8464.f1,  *(float*)&x725
               );
            };
SOURCE(17110, 57)
         {
            word x726;
            word x727;
            *(float*)&s←v18340 = (
               x726 = ( (((unsigned)delta←v18312.f0 << 1) >> 1) ),  *(float*)&x726
               ) + (
               x727 = ( (((unsigned)delta←v18312.f1 << 1) >> 1) ),  *(float*)&x727
               );
            };
SOURCE(17194, 314)
         {
            word x728;
            word x729;
            if (((
               x728 = s←v18340,  *(float*)&x728
               ) == (
               x729 = (*  (ptr) &fc34 ),  *(float*)&x729
               ))) {
SOURCE(17210, 76)
               if (( (int)end←v8548 ==  (int) (word) -1)) {
SOURCE(17254, 32)
                  (void) SignalSquareEndWithNoDirection←P1080();
                  };
SOURCE(17288, 6)
               return;
               }
            else {
SOURCE(17303, 207)
               {
                  word cos←v18412;
                  word sin←v18440;
SOURCE(17305, 21)
                  {
                     word x730;
                     word x731;
                     *(float*)&cos←v18412 = (
                        x730 = delta←v18312.f0,  *(float*)&x730
                        ) / (
                        x731 = s←v18340,  *(float*)&x731
                        );
                     };
SOURCE(17328, 21)
                  {
                     word x732;
                     word x733;
                     *(float*)&sin←v18440 = (
                        x732 = delta←v18312.f1,  *(float*)&x732
                        ) / (
                        x733 = s←v18340,  *(float*)&x733
                        );
                     };
SOURCE(17351, 76)
                  {
                     word pd734;
                     word x735;
                     float tf736;
                     pd734 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+4) );
                     t←v18368 = (word) ( *( (fPt) ((*  (ptr) pd734 ))))(cos←v18412, (
                           tf736 =  - (
/*1*/   x735 = sin←v18440,  *(float*)&x735
/*1*/   ),  *(word*)&tf736
                           ), (*  (ptr) &fc34 ), sin←v18440, cos←v18412, (*  (ptr) &fc34 ), pd734);
                     };
SOURCE(17429, 42)
                  {
                     word pd737;
                     pd737 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+30) );
                     (void) ( *( (fPt) ((*  (ptr) pd737 ))))(t←v18368, m←v8576, pd737);
                     };
SOURCE(17473, 35)
                  {
                     word pd738;
                     pd738 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+38) );
                     (void) ( *( (fPt) ((*  (ptr) pd738 ))))(t←v18368, pd738);
                     };
                  };
               };
            };
SOURCE(17513, 216)
         {
            register word i←v18484 = 0;
            register word noName←c54620;
            noName←c54620 = (* (( (ptr) pen←v8520)+5) );
            if ((i←v18484 >= noName←c54620)) {
               goto lab←L100127;
               };
            lab←L100130: ;
            {
               W2 p←v18528;
SOURCE(17544, 53)
               {
                  word pd739;
                  word limit740;
                  pd739 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+40) );
                  (void) ( *( (fPt) ((*  (ptr) pd739 ))))((word) &p←v18528, t←v18368, (* (( (W2Pt) (( (ptr) pen←v8520)+6))+(
                           limit740 = (* (( (ptr) pen←v8520)+5) ),
                           BCK(i←v18484, limit740)
                           )) ), pd739);
                  };
SOURCE(17599, 31)
               {
                  word x741;
                  word x742;
                  if (((
                     x741 = p←v18528.f0,  *(float*)&x741
                     ) < (
                     x742 = min←v18256.f0,  *(float*)&x742
                     ))) {
SOURCE(17619, 11)
                     min←v18256.f0 = p←v18528.f0;
                     };
                  };
SOURCE(17632, 31)
               {
                  word x743;
                  word x744;
                  if (((
                     x743 = p←v18528.f0,  *(float*)&x743
                     ) > (
                     x744 = max←v18284.f0,  *(float*)&x744
                     ))) {
SOURCE(17652, 11)
                     max←v18284.f0 = p←v18528.f0;
                     };
                  };
SOURCE(17665, 31)
               {
                  word x745;
                  word x746;
                  if (((
                     x745 = p←v18528.f1,  *(float*)&x745
                     ) < (
                     x746 = min←v18256.f1,  *(float*)&x746
                     ))) {
SOURCE(17685, 11)
                     min←v18256.f1 = p←v18528.f1;
                     };
                  };
SOURCE(17698, 31)
               {
                  word x747;
                  word x748;
                  if (((
                     x747 = p←v18528.f1,  *(float*)&x747
                     ) > (
                     x748 = max←v18284.f1,  *(float*)&x748
                     ))) {
SOURCE(17718, 11)
                     max←v18284.f1 = p←v18528.f1;
                     };
                  };
               };
            i←v18484 = (i←v18484 + 1);
            if ((i←v18484 < noName←c54620)) {
               goto lab←L100130;
               };
            lab←L100127: ;
            };
SOURCE(17740, 35)
         {
            word pd749;
            pd749 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+38) );
            (void) ( *( (fPt) ((*  (ptr) pd749 ))))(t←v18368, pd749);
            };
SOURCE(17777, 55)
         if (( (int)end←v8548 ==  (int)1)) {
SOURCE(17814, 18)
            {
               word var←c54652;
               var←c54652 = (*  (ptr) &fc34 );
               max←v18284.f0 = var←c54652;
               min←v18256.f0 = var←c54652;
               };
            };
SOURCE(17835, 69)
         {
            W2 var←c54684;
            {
               W2 var←c54716;
               W2 v2←v39444;
               {
                  W2 var←c0575;
                  {
                     W2 var←c54748;
                     var←c54748.f0 = min←v18256.f0;
                     var←c54748.f1 = max←v18284.f1;
                     {
                        word pd750;
                        pd750 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+40) );
                        (void) ( *( (fPt) ((*  (ptr) pd750 ))))((word) &var←c0575, t←v18368, var←c54748, pd750);
                        };
                     };
                  v2←v39444 = var←c0575;
                  };
SOURCE(1675, 31)
               {
                  word x751;
                  word x752;
                  *(float*)&var←c54716.f0 = (
                     x751 = d0←v17912.f0,  *(float*)&x751
                     ) + (
                     x752 = v2←v39444.f0,  *(float*)&x752
                     );
                  };
               {
                  word x753;
                  word x754;
                  *(float*)&var←c54716.f1 = (
                     x753 = d0←v17912.f1,  *(float*)&x753
                     ) + (
                     x754 = v2←v39444.f1,  *(float*)&x754
                     );
                  };
               var←c54684 = var←c54716;
               };
            (void) ( *( (fPt) ((*  (ptr) moveTo←v8604 ))))(var←c54684, moveTo←v8604);
            };
SOURCE(17906, 69)
         {
            W2 var←c54812;
            {
               W2 var←c54844;
               W2 v2←v39396;
               {
                  W2 var←c0580;
                  {
                     W2 var←c54876;
                     var←c54876.f0 = min←v18256.f0;
                     var←c54876.f1 = min←v18256.f1;
                     {
                        word pd755;
                        pd755 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+40) );
                        (void) ( *( (fPt) ((*  (ptr) pd755 ))))((word) &var←c0580, t←v18368, var←c54876, pd755);
                        };
                     };
                  v2←v39396 = var←c0580;
                  };
SOURCE(1675, 31)
               {
                  word x756;
                  word x757;
                  *(float*)&var←c54844.f0 = (
                     x756 = d0←v17912.f0,  *(float*)&x756
                     ) + (
                     x757 = v2←v39396.f0,  *(float*)&x757
                     );
                  };
               {
                  word x758;
                  word x759;
                  *(float*)&var←c54844.f1 = (
                     x758 = d0←v17912.f1,  *(float*)&x758
                     ) + (
                     x759 = v2←v39396.f1,  *(float*)&x759
                     );
                  };
               var←c54812 = var←c54844;
               };
            (void) ( *( (fPt) ((*  (ptr) lineTo←v8632 ))))(var←c54812, lineTo←v8632);
            };
SOURCE(17977, 69)
         {
            W2 var←c54940;
            {
               W2 var←c54972;
               W2 v2←v39348;
               {
                  W2 var←c0585;
                  {
                     W2 var←c55004;
                     var←c55004.f0 = max←v18284.f0;
                     var←c55004.f1 = min←v18256.f1;
                     {
                        word pd760;
                        pd760 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+40) );
                        (void) ( *( (fPt) ((*  (ptr) pd760 ))))((word) &var←c0585, t←v18368, var←c55004, pd760);
                        };
                     };
                  v2←v39348 = var←c0585;
                  };
SOURCE(1675, 31)
               {
                  word x761;
                  word x762;
                  *(float*)&var←c54972.f0 = (
                     x761 = d1←v17940.f0,  *(float*)&x761
                     ) + (
                     x762 = v2←v39348.f0,  *(float*)&x762
                     );
                  };
               {
                  word x763;
                  word x764;
                  *(float*)&var←c54972.f1 = (
                     x763 = d1←v17940.f1,  *(float*)&x763
                     ) + (
                     x764 = v2←v39348.f1,  *(float*)&x764
                     );
                  };
               var←c54940 = var←c54972;
               };
            (void) ( *( (fPt) ((*  (ptr) lineTo←v8632 ))))(var←c54940, lineTo←v8632);
            };
SOURCE(18048, 69)
         {
            W2 var←c55068;
            {
               W2 var←c55100;
               W2 v2←v39300;
               {
                  W2 var←c0590;
                  {
                     W2 var←c55132;
                     var←c55132.f0 = max←v18284.f0;
                     var←c55132.f1 = max←v18284.f1;
                     {
                        word pd765;
                        pd765 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+40) );
                        (void) ( *( (fPt) ((*  (ptr) pd765 ))))((word) &var←c0590, t←v18368, var←c55132, pd765);
                        };
                     };
                  v2←v39300 = var←c0590;
                  };
SOURCE(1675, 31)
               {
                  word x766;
                  word x767;
                  *(float*)&var←c55100.f0 = (
                     x766 = d1←v17940.f0,  *(float*)&x766
                     ) + (
                     x767 = v2←v39300.f0,  *(float*)&x767
                     );
                  };
               {
                  word x768;
                  word x769;
                  *(float*)&var←c55100.f1 = (
                     x768 = d1←v17940.f1,  *(float*)&x768
                     ) + (
                     x769 = v2←v39300.f1,  *(float*)&x769
                     );
                  };
               var←c55068 = var←c55100;
               };
            (void) ( *( (fPt) ((*  (ptr) lineTo←v8632 ))))(var←c55068, lineTo←v8632);
            };
SOURCE(18119, 31)
         {
            word pd770;
            pd770 = (* (( (ptr) (* (( (ptr) gf←c59996)+81)/* var←c52092 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd770 ))))(t←v18368, pd770);
            };
         };
      };
   }

static void AverageSpeed←P1260(formal←c0623, p←v8764)
   word formal←c0623;
   W8 p←v8764;
   {
   register ptr gf←c60028 =  (ptr) &globalframe;
   W2 var←c8808;
   word nReal←v18572;
   word min←v18600 = 2139095039;
   word max←v18628;
   W6 delta←v18656;
   /* AverageSpeed: */ 
SOURCE(18233, 648)
SOURCE(18294, 18)
   {
      float tf771;
      nReal←v18572 = (
         tf771 = (float)(unsigned)(* (( (ptr) gf←c60028)+6)/* nPts←v4288 */  ),  *(word*)&tf771
         );
      };
SOURCE(18335, 13)
   max←v18628 = (*  (ptr) &fc34 );
SOURCE(18350, 80)
   {
      W2 v1←v41584;
      W2 v2←v41612;
      v1←v41584 = (*  (W2Pt) (( (ptr) &p←v8764)+2) );
      v2←v41612 = (*  (W2Pt) &p←v8764 );
SOURCE(1759, 31)
      {
         word x772;
         word x773;
         *(float*)&delta←v18656.f0 = (
            x772 = v1←v41584.f0,  *(float*)&x772
            ) - (
            x773 = v2←v41612.f0,  *(float*)&x773
            );
         };
      {
         word x774;
         word x775;
         *(float*)&delta←v18656.f1 = (
            x774 = v1←v41584.f1,  *(float*)&x774
            ) - (
            x775 = v2←v41612.f1,  *(float*)&x775
            );
         };
      };
   {
      W2 v1←v41508;
      W2 v2←v41536;
      v1←v41508 = (*  (W2Pt) (( (ptr) &p←v8764)+4) );
      v2←v41536 = (*  (W2Pt) (( (ptr) &p←v8764)+2) );
SOURCE(1759, 31)
      {
         word x776;
         word x777;
         *(float*)&delta←v18656.f2 = (
            x776 = v1←v41508.f0,  *(float*)&x776
            ) - (
            x777 = v2←v41536.f0,  *(float*)&x777
            );
         };
      {
         word x778;
         word x779;
         *(float*)&delta←v18656.f3 = (
            x778 = v1←v41508.f1,  *(float*)&x778
            ) - (
            x779 = v2←v41536.f1,  *(float*)&x779
            );
         };
      };
   {
      W2 v1←v41432;
      W2 v2←v41460;
      v1←v41432 = (*  (W2Pt) (( (ptr) &p←v8764)+6) );
      v2←v41460 = (*  (W2Pt) (( (ptr) &p←v8764)+4) );
SOURCE(1759, 31)
      {
         word x780;
         word x781;
         *(float*)&delta←v18656.f4 = (
            x780 = v1←v41432.f0,  *(float*)&x780
            ) - (
            x781 = v2←v41460.f0,  *(float*)&x781
            );
         };
      {
         word x782;
         word x783;
         *(float*)&delta←v18656.f5 = (
            x782 = v1←v41432.f1,  *(float*)&x782
            ) - (
            x783 = v2←v41460.f1,  *(float*)&x783
            );
         };
      };
SOURCE(18432, 348)
   {
      register word i←v18736 = 0;
      register word noName←c55516;
      noName←c55516 = (* (( (ptr) gf←c60028)+6)/* nPts←v4288 */  );
      if ((i←v18736 > noName←c55516)) {
         goto lab←L100139;
         };
      lab←L100142: ;
      {
         word t←v18780;
         word s←v18808;
         W2 d01←v18836;
         W2 d12←v18864;
         W2 d012←v18892;
         word sqr←v18920;
SOURCE(18459, 17)
         {
            word x784;
            *(float*)&t←v18780 = (float)(unsigned)i←v18736 / (
               x784 = nReal←v18572,  *(float*)&x784
               );
            };
SOURCE(18478, 15)
         {
            word x785;
            word x786;
            *(float*)&s←v18808 = (
               x785 = (*  (ptr) &fc20 ),  *(float*)&x785
               ) - (
               x786 = t←v18780,  *(float*)&x786
               );
            };
SOURCE(18495, 66)
         {
            W2 v1←v39224;
            W2 v2←v39252;
            {
               word pd787;
               pd787 = (* (( (ptr) (* (( (ptr) gf←c60028)+82)/* var←c52156 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd787 ))))((word) &v1←v39224, (*  (W2Pt) &delta←v18656 ), t←v18780, pd787);
               };
            {
               word pd788;
               pd788 = (* (( (ptr) (* (( (ptr) gf←c60028)+82)/* var←c52156 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd788 ))))((word) &v2←v39252, (*  (W2Pt) (( (ptr) &delta←v18656)+2) ), s←v18808, pd788);
               };
SOURCE(1675, 31)
            {
               word x789;
               word x790;
               *(float*)&d01←v18836.f0 = (
                  x789 = v1←v39224.f0,  *(float*)&x789
                  ) + (
                  x790 = v2←v39252.f0,  *(float*)&x790
                  );
               };
            {
               word x791;
               word x792;
               *(float*)&d01←v18836.f1 = (
                  x791 = v1←v39224.f1,  *(float*)&x791
                  ) + (
                  x792 = v2←v39252.f1,  *(float*)&x792
                  );
               };
            };
SOURCE(18563, 66)
         {
            W2 v1←v39148;
            W2 v2←v39176;
            {
               word pd793;
               pd793 = (* (( (ptr) (* (( (ptr) gf←c60028)+82)/* var←c52156 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd793 ))))((word) &v1←v39148, (*  (W2Pt) (( (ptr) &delta←v18656)+2) ), t←v18780, pd793);
               };
            {
               word pd794;
               pd794 = (* (( (ptr) (* (( (ptr) gf←c60028)+82)/* var←c52156 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd794 ))))((word) &v2←v39176, (*  (W2Pt) (( (ptr) &delta←v18656)+4) ), s←v18808, pd794);
               };
SOURCE(1675, 31)
            {
               word x795;
               word x796;
               *(float*)&d12←v18864.f0 = (
                  x795 = v1←v39148.f0,  *(float*)&x795
                  ) + (
                  x796 = v2←v39176.f0,  *(float*)&x796
                  );
               };
            {
               word x797;
               word x798;
               *(float*)&d12←v18864.f1 = (
                  x797 = v1←v39148.f1,  *(float*)&x797
                  ) + (
                  x798 = v2←v39176.f1,  *(float*)&x798
                  );
               };
            };
SOURCE(18631, 57)
         {
            W2 v1←v39072;
            W2 v2←v39100;
            {
               word pd799;
               pd799 = (* (( (ptr) (* (( (ptr) gf←c60028)+82)/* var←c52156 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd799 ))))((word) &v1←v39072, d01←v18836, t←v18780, pd799);
               };
            {
               word pd800;
               pd800 = (* (( (ptr) (* (( (ptr) gf←c60028)+82)/* var←c52156 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd800 ))))((word) &v2←v39100, d12←v18864, s←v18808, pd800);
               };
SOURCE(1675, 31)
            {
               word x801;
               word x802;
               *(float*)&d012←v18892.f0 = (
                  x801 = v1←v39072.f0,  *(float*)&x801
                  ) + (
                  x802 = v2←v39100.f0,  *(float*)&x802
                  );
               };
            {
               word x803;
               word x804;
               *(float*)&d012←v18892.f1 = (
                  x803 = v1←v39072.f1,  *(float*)&x803
                  ) + (
                  x804 = v2←v39100.f1,  *(float*)&x804
                  );
               };
            };
SOURCE(18690, 32)
         {
            word pd805;
            pd805 = (* (( (ptr) (* (( (ptr) gf←c60028)+82)/* var←c52156 */  ))+22) );
            sqr←v18920 = (word) ( *( (fPt) ((*  (ptr) pd805 ))))(d012←v18892, pd805);
            };
SOURCE(18724, 27)
         {
            word x806;
            word x807;
            if (((
               x806 = sqr←v18920,  *(float*)&x806
               ) > (
               x807 = max←v18628,  *(float*)&x807
               ))) {
SOURCE(18742, 9)
               max←v18628 = sqr←v18920;
               };
            };
SOURCE(18753, 27)
         {
            word x808;
            word x809;
            if (((
               x808 = sqr←v18920,  *(float*)&x808
               ) < (
               x809 = min←v18600,  *(float*)&x809
               ))) {
SOURCE(18771, 9)
               min←v18600 = sqr←v18920;
               };
            };
         };
      if ((i←v18736 >= noName←c55516)) {
         goto lab←L100139;
         };
      i←v18736 = (i←v18736 + 1);
      goto lab←L100142;
      lab←L100139: ;
      };
SOURCE(18791, 23)
   {
      word pd810;
      pd810 = (* (( (ptr) (* (( (ptr) gf←c60028)+78)/* var←c50396 */  ))+9) );
      max←v18628 = (word) ( *( (fPt) ((*  (ptr) pd810 ))))(max←v18628, pd810);
      };
SOURCE(18816, 23)
   {
      word pd811;
      pd811 = (* (( (ptr) (* (( (ptr) gf←c60028)+78)/* var←c50396 */  ))+9) );
      min←v18600 = (word) ( *( (fPt) ((*  (ptr) pd811 ))))(min←v18600, pd811);
      };
SOURCE(18841, 40)
   {
      word x812;
      word x813;
      word x815;
      *(float*)&var←c8808.f0 = ((
         x812 = max←v18628,  *(float*)&x812
         ) + (
         x813 = min←v18600,  *(float*)&x813
         )) * (
         x815 = (*  (ptr) &fc814 ),  *(float*)&x815
         );
      };
   {
      word x816;
      word x817;
      word x818;
      *(float*)&var←c8808.f1 = ((
         x816 = max←v18628,  *(float*)&x816
         ) - (
         x817 = min←v18600,  *(float*)&x817
         )) * (
         x818 = (*  (ptr) &fc814 ),  *(float*)&x818
         );
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0623 ) = var←c8808;
   return;
   }

static void DivideUntilSmooth←P1320(p←v8868, piece←v8896, fullScale←v8924, maxDepth←v8952)
   W8 p←v8868;
   word piece←v8896;
   word fullScale←v8924;
   word maxDepth←v8952;
   {
   register ptr gf←c60060 =  (ptr) &globalframe;
   W2 a←v18964;
   /* DivideUntilSmooth: */ 
SOURCE(18904, 662)
SOURCE(19014, 36)
   (void) AverageSpeed←P1260((word) &a←v18964, p←v8868);
SOURCE(19052, 466)
   lab←L100148: ;
   {
      word tc819;
      word pd820;
      word x821;
      word x822;
      if ((maxDepth←v8952 > 1)) {
         pd820 = (* (( (ptr) (* (( (ptr) gf←c60060)+77)/* var←c46204 */  ))+4) );
         tc819 =  (word) ((
            x821 = (word) ( *( (fPt) ((*  (ptr) pd820 ))))(a←v18964.f1, (* (( (ptr) gf←c60060)+7)/* sigBits←v4372 */  ), pd820),  *(float*)&x821
            ) > (
            x822 = fullScale←v8924,  *(float*)&x822
            ));
         }
      else {
         tc819 =  (word) 0;
         };
      if (tc819) {
         }
      else {
         goto lab←L100146;
         };
      };
   {
      W2 p01←v19036;
      W2 p12←v19064;
      W2 p23←v19092;
      W2 p012←v19120;
      W2 p123←v19148;
      W2 p0123←v19176;
SOURCE(19211, 25)
      {
         W2 a←v44644;
         W2 b←v44672;
         a←v44644 = (*  (W2Pt) &p←v8868 );
         b←v44672 = (*  (W2Pt) (( (ptr) &p←v8868)+2) );
SOURCE(19167, 39)
         {
            word x823;
            word x824;
            word x825;
            *(float*)&p01←v19036.f0 = ((
               x823 = a←v44644.f0,  *(float*)&x823
               ) + (
               x824 = b←v44672.f0,  *(float*)&x824
               )) * (
               x825 = (*  (ptr) &fc1 ),  *(float*)&x825
               );
            };
         {
            word x826;
            word x827;
            word x828;
            *(float*)&p01←v19036.f1 = ((
               x826 = a←v44644.f1,  *(float*)&x826
               ) + (
               x827 = b←v44672.f1,  *(float*)&x827
               )) * (
               x828 = (*  (ptr) &fc1 ),  *(float*)&x828
               );
            };
         };
SOURCE(19238, 25)
      {
         W2 a←v44568;
         W2 b←v44596;
         a←v44568 = (*  (W2Pt) (( (ptr) &p←v8868)+2) );
         b←v44596 = (*  (W2Pt) (( (ptr) &p←v8868)+4) );
SOURCE(19167, 39)
         {
            word x829;
            word x830;
            word x831;
            *(float*)&p12←v19064.f0 = ((
               x829 = a←v44568.f0,  *(float*)&x829
               ) + (
               x830 = b←v44596.f0,  *(float*)&x830
               )) * (
               x831 = (*  (ptr) &fc1 ),  *(float*)&x831
               );
            };
         {
            word x832;
            word x833;
            word x834;
            *(float*)&p12←v19064.f1 = ((
               x832 = a←v44568.f1,  *(float*)&x832
               ) + (
               x833 = b←v44596.f1,  *(float*)&x833
               )) * (
               x834 = (*  (ptr) &fc1 ),  *(float*)&x834
               );
            };
         };
SOURCE(19265, 25)
      {
         W2 a←v44492;
         W2 b←v44520;
         a←v44492 = (*  (W2Pt) (( (ptr) &p←v8868)+4) );
         b←v44520 = (*  (W2Pt) (( (ptr) &p←v8868)+6) );
SOURCE(19167, 39)
         {
            word x835;
            word x836;
            word x837;
            *(float*)&p23←v19092.f0 = ((
               x835 = a←v44492.f0,  *(float*)&x835
               ) + (
               x836 = b←v44520.f0,  *(float*)&x836
               )) * (
               x837 = (*  (ptr) &fc1 ),  *(float*)&x837
               );
            };
         {
            word x838;
            word x839;
            word x840;
            *(float*)&p23←v19092.f1 = ((
               x838 = a←v44492.f1,  *(float*)&x838
               ) + (
               x839 = b←v44520.f1,  *(float*)&x839
               )) * (
               x840 = (*  (ptr) &fc1 ),  *(float*)&x840
               );
            };
         };
SOURCE(19292, 24)
      {
         word x841;
         word x842;
         word x843;
         *(float*)&p012←v19120.f0 = ((
            x841 = p01←v19036.f0,  *(float*)&x841
            ) + (
            x842 = p12←v19064.f0,  *(float*)&x842
            )) * (
            x843 = (*  (ptr) &fc1 ),  *(float*)&x843
            );
         };
      {
         word x844;
         word x845;
         word x846;
         *(float*)&p012←v19120.f1 = ((
            x844 = p01←v19036.f1,  *(float*)&x844
            ) + (
            x845 = p12←v19064.f1,  *(float*)&x845
            )) * (
            x846 = (*  (ptr) &fc1 ),  *(float*)&x846
            );
         };
SOURCE(19318, 24)
      {
         word x847;
         word x848;
         word x849;
         *(float*)&p123←v19148.f0 = ((
            x847 = p12←v19064.f0,  *(float*)&x847
            ) + (
            x848 = p23←v19092.f0,  *(float*)&x848
            )) * (
            x849 = (*  (ptr) &fc1 ),  *(float*)&x849
            );
         };
      {
         word x850;
         word x851;
         word x852;
         *(float*)&p123←v19148.f1 = ((
            x850 = p12←v19064.f1,  *(float*)&x850
            ) + (
            x851 = p23←v19092.f1,  *(float*)&x851
            )) * (
            x852 = (*  (ptr) &fc1 ),  *(float*)&x852
            );
         };
SOURCE(19344, 27)
      {
         word x853;
         word x854;
         word x855;
         *(float*)&p0123←v19176.f0 = ((
            x853 = p012←v19120.f0,  *(float*)&x853
            ) + (
            x854 = p123←v19148.f0,  *(float*)&x854
            )) * (
            x855 = (*  (ptr) &fc1 ),  *(float*)&x855
            );
         };
      {
         word x856;
         word x857;
         word x858;
         *(float*)&p0123←v19176.f1 = ((
            x856 = p012←v19120.f1,  *(float*)&x856
            ) + (
            x857 = p123←v19148.f1,  *(float*)&x857
            )) * (
            x858 = (*  (ptr) &fc1 ),  *(float*)&x858
            );
         };
SOURCE(19373, 21)
      maxDepth←v8952 = SGNCK((maxDepth←v8952 - 1));
SOURCE(19396, 71)
      {
         W8 var←c56060;
         (*  (W2Pt) &var←c56060 ) = (*  (W2Pt) &p←v8868 );
         (*  (W2Pt) (( (ptr) &var←c56060)+2) ) = p01←v19036;
         (*  (W2Pt) (( (ptr) &var←c56060)+4) ) = p012←v19120;
         (*  (W2Pt) (( (ptr) &var←c56060)+6) ) = p0123←v19176;
         (void) DivideUntilSmooth←P1320(var←c56060, piece←v8896, fullScale←v8924, maxDepth←v8952);
         };
SOURCE(19469, 28)
      {
         W2 var←c56092;
         var←c56092 = (*  (W2Pt) (( (ptr) &p←v8868)+6) );
         (*  (W2Pt) &p←v8868 ) = p0123←v19176;
         (*  (W2Pt) (( (ptr) &p←v8868)+2) ) = p123←v19148;
         (*  (W2Pt) (( (ptr) &p←v8868)+4) ) = p23←v19092;
         (*  (W2Pt) (( (ptr) &p←v8868)+6) ) = var←c56092;
         };
SOURCE(19499, 19)
      (void) AverageSpeed←P1260((word) &a←v18964, p←v8868);
      };
   goto lab←L100148;
   lab←L100146: ;
SOURCE(19529, 37)
   {
      word x859;
      word x860;
      if (((
         x859 = a←v18964.f0,  *(float*)&x859
         ) != (
         x860 = (*  (ptr) &fc34 ),  *(float*)&x860
         ))) {
SOURCE(19549, 17)
         (void) ( *( (fPt) ((*  (ptr) piece←v8896 ))))(p←v8868, a←v18964.f0, piece←v8896);
         };
      };
   }

static void SubDivide←P1380(formal←c0664, b←v9100, t←v9128, hi←v9156)
   word formal←c0664;
   W8 b←v9100;
   word t←v9128;
   word hi←v9156;
   {
   W2 var←c01018;
   W2 var←c01019;
   W2 var←c01020;
   W2 var←c01021;
   word s←v19352;
   W2 q1←v19408;
   W2 q2←v19436;
   W2 q3←v19464;
   W2 qp1←v19492;
   W2 qp2←v19520;
   W2 q←v19548;
   /* SubDivide: */ 
SOURCE(19572, 442)
   /* Return var split */ 
SOURCE(19640, 13)
   {
      word x861;
      word x862;
      *(float*)&s←v19352 = (
         x861 = (*  (ptr) &fc20 ),  *(float*)&x861
         ) - (
         x862 = t←v9128,  *(float*)&x862
         );
      };
SOURCE(19749, 34)
   {
      W2 a←v44872;
      W2 b←v44900;
      a←v44872 = (*  (W2Pt) &b←v9100 );
      b←v44900 = (*  (W2Pt) (( (ptr) &b←v9100)+2) );
SOURCE(19710, 36)
      {
         word x863;
         word x864;
         word x865;
         word x866;
         *(float*)&q1←v19408.f0 = ((
            x863 = a←v44872.f0,  *(float*)&x863
            ) * (
            x864 = s←v19352,  *(float*)&x864
            )) + ((
            x865 = b←v44900.f0,  *(float*)&x865
            ) * (
            x866 = t←v9128,  *(float*)&x866
            ));
         };
      {
         word x867;
         word x868;
         word x869;
         word x870;
         *(float*)&q1←v19408.f1 = ((
            x867 = a←v44872.f1,  *(float*)&x867
            ) * (
            x868 = s←v19352,  *(float*)&x868
            )) + ((
            x869 = b←v44900.f1,  *(float*)&x869
            ) * (
            x870 = t←v9128,  *(float*)&x870
            ));
         };
      };
SOURCE(19785, 33)
   {
      W2 a←v44796;
      W2 b←v44824;
      a←v44796 = (*  (W2Pt) (( (ptr) &b←v9100)+2) );
      b←v44824 = (*  (W2Pt) (( (ptr) &b←v9100)+4) );
SOURCE(19710, 36)
      {
         word x871;
         word x872;
         word x873;
         word x874;
         *(float*)&q2←v19436.f0 = ((
            x871 = a←v44796.f0,  *(float*)&x871
            ) * (
            x872 = s←v19352,  *(float*)&x872
            )) + ((
            x873 = b←v44824.f0,  *(float*)&x873
            ) * (
            x874 = t←v9128,  *(float*)&x874
            ));
         };
      {
         word x875;
         word x876;
         word x877;
         word x878;
         *(float*)&q2←v19436.f1 = ((
            x875 = a←v44796.f1,  *(float*)&x875
            ) * (
            x876 = s←v19352,  *(float*)&x876
            )) + ((
            x877 = b←v44824.f1,  *(float*)&x877
            ) * (
            x878 = t←v9128,  *(float*)&x878
            ));
         };
      };
SOURCE(19820, 33)
   {
      W2 a←v44720;
      W2 b←v44748;
      a←v44720 = (*  (W2Pt) (( (ptr) &b←v9100)+4) );
      b←v44748 = (*  (W2Pt) (( (ptr) &b←v9100)+6) );
SOURCE(19710, 36)
      {
         word x879;
         word x880;
         word x881;
         word x882;
         *(float*)&q3←v19464.f0 = ((
            x879 = a←v44720.f0,  *(float*)&x879
            ) * (
            x880 = s←v19352,  *(float*)&x880
            )) + ((
            x881 = b←v44748.f0,  *(float*)&x881
            ) * (
            x882 = t←v9128,  *(float*)&x882
            ));
         };
      {
         word x883;
         word x884;
         word x885;
         word x886;
         *(float*)&q3←v19464.f1 = ((
            x883 = a←v44720.f1,  *(float*)&x883
            ) * (
            x884 = s←v19352,  *(float*)&x884
            )) + ((
            x885 = b←v44748.f1,  *(float*)&x885
            ) * (
            x886 = t←v9128,  *(float*)&x886
            ));
         };
      };
SOURCE(19855, 30)
   {
      word x887;
      word x888;
      word x889;
      word x890;
      *(float*)&qp1←v19492.f0 = ((
         x887 = q1←v19408.f0,  *(float*)&x887
         ) * (
         x888 = s←v19352,  *(float*)&x888
         )) + ((
         x889 = q2←v19436.f0,  *(float*)&x889
         ) * (
         x890 = t←v9128,  *(float*)&x890
         ));
      };
   {
      word x891;
      word x892;
      word x893;
      word x894;
      *(float*)&qp1←v19492.f1 = ((
         x891 = q1←v19408.f1,  *(float*)&x891
         ) * (
         x892 = s←v19352,  *(float*)&x892
         )) + ((
         x893 = q2←v19436.f1,  *(float*)&x893
         ) * (
         x894 = t←v9128,  *(float*)&x894
         ));
      };
SOURCE(19887, 30)
   {
      word x895;
      word x896;
      word x897;
      word x898;
      *(float*)&qp2←v19520.f0 = ((
         x895 = q2←v19436.f0,  *(float*)&x895
         ) * (
         x896 = s←v19352,  *(float*)&x896
         )) + ((
         x897 = q3←v19464.f0,  *(float*)&x897
         ) * (
         x898 = t←v9128,  *(float*)&x898
         ));
      };
   {
      word x899;
      word x900;
      word x901;
      word x902;
      *(float*)&qp2←v19520.f1 = ((
         x899 = q2←v19436.f1,  *(float*)&x899
         ) * (
         x900 = s←v19352,  *(float*)&x900
         )) + ((
         x901 = q3←v19464.f1,  *(float*)&x901
         ) * (
         x902 = t←v9128,  *(float*)&x902
         ));
      };
SOURCE(19919, 30)
   {
      word x903;
      word x904;
      word x905;
      word x906;
      *(float*)&q←v19548.f0 = ((
         x903 = qp1←v19492.f0,  *(float*)&x903
         ) * (
         x904 = s←v19352,  *(float*)&x904
         )) + ((
         x905 = qp2←v19520.f0,  *(float*)&x905
         ) * (
         x906 = t←v9128,  *(float*)&x906
         ));
      };
   {
      word x907;
      word x908;
      word x909;
      word x910;
      *(float*)&q←v19548.f1 = ((
         x907 = qp1←v19492.f1,  *(float*)&x907
         ) * (
         x908 = s←v19352,  *(float*)&x908
         )) + ((
         x909 = qp2←v19520.f1,  *(float*)&x909
         ) * (
         x910 = t←v9128,  *(float*)&x910
         ));
      };
SOURCE(19951, 63)
   if ((0 != hi←v9156)) {
      var←c01018 = q←v19548;
      var←c01019 = qp2←v19520;
      var←c01020 = q3←v19464;
      var←c01021 = (*  (W2Pt) (( (ptr) &b←v9100)+6) );
      }
   else {
      var←c01018 = (*  (W2Pt) &b←v9100 );
      var←c01019 = q1←v19408;
      var←c01020 = qp1←v19492;
      var←c01021 = q←v19548;
      };
   /* removed tail goto */ 
   (*  (W2Pt) (( (ptr) formal←c0664)+6) ) = var←c01021;
   (*  (W2Pt) (( (ptr) formal←c0664)+4) ) = var←c01020;
   (*  (W2Pt) (( (ptr) formal←c0664)+2) ) = var←c01019;
   (*  (W2Pt) formal←c0664 ) = var←c01018;
   return;
   }

static void SubPiece←P1440(formal←c0671, b←v9260, t0←v9288, t1←v9316)
   word formal←c0671;
   W8 b←v9260;
   word t0←v9288;
   word t1←v9316;
   {
   W8 var←c9360;
   /* SubPiece: */ 
SOURCE(20018, 209)
SOURCE(20080, 86)
   {
      word x911;
      word x912;
      if (((
         x911 = t1←v9316,  *(float*)&x911
         ) != (
         x912 = (*  (ptr) &fc20 ),  *(float*)&x912
         ))) {
SOURCE(20099, 27)
         (void) SubDivide←P1380((word) &b←v9260, b←v9260, t1←v9316, 0);
SOURCE(20128, 38)
         {
            word x913;
            word x914;
            if (((
               x913 = t1←v9316,  *(float*)&x913
               ) != (
               x914 = (*  (ptr) &fc34 ),  *(float*)&x914
               ))) {
SOURCE(20146, 10)
               {
                  word x915;
                  word x916;
                  *(float*)&t0←v9288 = (
                     x915 = t0←v9288,  *(float*)&x915
                     ) / (
                     x916 = t1←v9316,  *(float*)&x916
                     );
                  };
SOURCE(20158, 8)
               t1←v9316 = (*  (ptr) &fc20 );
               };
            };
         };
      };
SOURCE(20172, 43)
   {
      word x917;
      word x918;
      if (((
         x917 = t0←v9288,  *(float*)&x917
         ) != (
         x918 = (*  (ptr) &fc34 ),  *(float*)&x918
         ))) {
SOURCE(20189, 26)
         (void) SubDivide←P1380((word) &b←v9260, b←v9260, t0←v9288, 1);
         };
      };
SOURCE(20217, 10)
   var←c9360 = b←v9260;
   /* removed tail goto */ 
   (*  (W8Pt) formal←c0671 ) = var←c9360;
   return;
   }

static word MeasurePath←P1500(path←v9420, formal←c0999)
   word path←v9420;
   word formal←c0999;
   {
   W23 var←c60092;
   /* declaration of closed←v9448 skipped */ 
   /* declaration of sum←v9492 skipped */ 
   /* declaration of var←c56476 skipped */ 
   /* declaration of var←c56508 skipped */ 
   /* declaration of var←c56540 skipped */ 
   /* declaration of var←c56572 skipped */ 
   /* declaration of var←c56604 skipped */ 
   /* declaration of var←c56636 skipped */ 
   /* declaration of started←v19724 skipped */ 
   /* declaration of sp←v19752 skipped */ 
   /* declaration of lp←v19780 skipped */ 
   (* (( (ptr) &var←c60092)+4)/* closed←v9448 */  ) = formal←c0999;
   /* MeasurePath: */ 
SOURCE(20233, 861)
   {
      word tmpAddr919;
      tmpAddr919 = (word) (( (ptr) &var←c60092)+6)/* var←c56476 */ ;
      (*  (ptr) tmpAddr919 ) = ( ((word)  (fPt) arc←P5100) );
      (* (( (ptr) tmpAddr919) + 1) ) = 1;
      };
   {
      word tmpAddr920;
      tmpAddr920 = (word) (( (ptr) &var←c60092)+8)/* var←c56508 */ ;
      (*  (ptr) tmpAddr920 ) = ( ((word)  (fPt) conic←P5040) );
      (* (( (ptr) tmpAddr920) + 1) ) = 1;
      };
   {
      word tmpAddr921;
      tmpAddr921 = (word) (( (ptr) &var←c60092)+10)/* var←c56540 */ ;
      (*  (ptr) tmpAddr921 ) = ( ((word)  (fPt) curve←P4980) );
      (* (( (ptr) tmpAddr921) + 1) ) = 1;
      };
   {
      word tmpAddr922;
      tmpAddr922 = (word) (( (ptr) &var←c60092)+12)/* var←c56572 */ ;
      (*  (ptr) tmpAddr922 ) = ( ((word)  (fPt) piece←P4920) );
      (* (( (ptr) tmpAddr922) + 1) ) = 1;
      };
   {
      word tmpAddr923;
      tmpAddr923 = (word) (( (ptr) &var←c60092)+14)/* var←c56604 */ ;
      (*  (ptr) tmpAddr923 ) = ( ((word)  (fPt) line←P4860) );
      (* (( (ptr) tmpAddr923) + 1) ) = 1;
      };
   {
      word tmpAddr924;
      tmpAddr924 = (word) (( (ptr) &var←c60092)+16)/* var←c56636 */ ;
      (*  (ptr) tmpAddr924 ) = ( ((word)  (fPt) move←P4800) );
      (* (( (ptr) tmpAddr924) + 1) ) = 1;
      };
SOURCE(20233, 861)
   (* (( (ptr) &var←c60092)+5)/* sum←v9492 */  ) = (*  (ptr) &fc34 );
SOURCE(20327, 21)
   (* (( (ptr) &var←c60092)+18)/* started←v19724 */  ) = 0;
SOURCE(20350, 15)
   (* (( (ptr) &var←c60092)+19) ) = (*  (ptr) &fc34 );
   (* (( (ptr) &var←c60092)+20) ) = (*  (ptr) &fc34 );
SOURCE(20367, 15)
   (* (( (ptr) &var←c60092)+21) ) = (*  (ptr) &fc34 );
   (* (( (ptr) &var←c60092)+22) ) = (*  (ptr) &fc34 );
SOURCE(20981, 76)
   (void) ( *( (fPt) ((*  (ptr) path←v9420 ))))((word) (( (bPt) &var←c60092)+64)/* var←c56636 */ , (word) (( (bPt) &var←c60092)+56)
      /* var←c56604 */ , (word) (( (bPt) &var←c60092)+40)/* var←c56540 */ , (word) (( (bPt) &var←c60092)+32)/* var←c56508 */ , (word) (
         ( (bPt) &var←c60092)+24)/* var←c56476 */ , path←v9420);
SOURCE(21059, 35)
   if (((0 != (* (( (ptr) &var←c60092)+18)/* started←v19724 */  )) && (0 != (* (( (ptr) &var←c60092)+4)/* closed←v9448 */  )))) {
SOURCE(21086, 8)
      (void) line←P4860((*  (W2Pt) (( (ptr) &var←c60092)+19)/* sp←v19752 */  ), (word) (( (bPt) &var←c60092)+56)/* var←c56604 */ )
      ;
      };
SOURCE(20233, 861)
   return((* (( (ptr) &var←c60092)+5)/* sum←v9492 */  ));
   }

static void move←P4800(p0←v20024, formal←c60124)
   W2 p0←v20024;
   word formal←c60124;
   {
   formal←c60124 = (formal←c60124 - 64);
   /* move: */ 
SOURCE(20384, 90)
SOURCE(20409, 35)
   if (((0 != (* (( (ptr) formal←c60124)+18) )) && (0 != (* (( (ptr) formal←c60124)+4) )))) {
SOURCE(20436, 8)
      (void) line←P4860((*  (W2Pt) (( (ptr) formal←c60124)+19) ), (word) (( (bPt) formal←c60124)+56));
      };
SOURCE(20446, 12)
   (*  (W2Pt) (( (ptr) formal←c60124)+19) ) = p0←v20024;
   (*  (W2Pt) (( (ptr) formal←c60124)+21) ) = p0←v20024;
SOURCE(20460, 14)
   (* (( (ptr) formal←c60124)+18) ) = 1;
   }

static void line←P4860(p1←v20084, formal←c60188)
   W2 p1←v20084;
   word formal←c60188;
   {
   register ptr gf←c60156 =  (ptr) &globalframe;
   formal←c60188 = (formal←c60188 - 56);
   /* line: */ 
SOURCE(20479, 73)
SOURCE(20504, 39)
   {
      W2 var←c56764;
      word var←c0954;
      {
         word x925;
         word x926;
         *(float*)&var←c56764.f0 = (
            x925 = p1←v20084.f0,  *(float*)&x925
            ) - (
            x926 = (* (( (ptr) formal←c60188)+21) ),  *(float*)&x926
            );
         };
      {
         word x927;
         word x928;
         *(float*)&var←c56764.f1 = (
            x927 = p1←v20084.f1,  *(float*)&x927
            ) - (
            x928 = (* (( (ptr) formal←c60188)+22) ),  *(float*)&x928
            );
         };
      {
         word pd929;
         pd929 = (* (( (ptr) (* (( (ptr) gf←c60156)+82)/* var←c52156 */  ))+24) );
         var←c0954 = (word) ( *( (fPt) ((*  (ptr) pd929 ))))(var←c56764, pd929);
         };
      {
         word x930;
         word x931;
         *(float*)(( (ptr) formal←c60188)+5) = (
            x930 = (* (( (ptr) formal←c60188)+5) ),  *(float*)&x930
            ) + (
            x931 = var←c0954,  *(float*)&x931
            );
         };
      };
SOURCE(20545, 7)
   (*  (W2Pt) (( (ptr) formal←c60188)+21) ) = p1←v20084;
   }

static void piece←P4920(p←v20144, speed←v20172, formal←c60220)
   W8 p←v20144;
   word speed←v20172;
   word formal←c60220;
   {
   formal←c60220 = (formal←c60220 - 48);
   /* piece: */ 
SOURCE(20557, 58)
SOURCE(20598, 17)
   {
      word x932;
      word x933;
      *(float*)(( (ptr) formal←c60220)+5) = (
         x932 = (* (( (ptr) formal←c60220)+5) ),  *(float*)&x932
         ) + (
         x933 = speed←v20172,  *(float*)&x933
         );
      };
   }

static void curve←P4980(p1←v20232, p2←v20260, p3←v20288, formal←c60252)
   W2 p1←v20232;
   W2 p2←v20260;
   W2 p3←v20288;
   word formal←c60252;
   {
   W8 p←v20520;
   word fullScale←v20548;
   W2 var←c0695;
   formal←c60252 = (formal←c60252 - 40);
   /* curve: */ 
SOURCE(20620, 196)
SOURCE(20662, 28)
   (*  (W2Pt) &p←v20520 ) = (*  (W2Pt) (( (ptr) formal←c60252)+21) );
   (*  (W2Pt) (( (ptr) &p←v20520)+2) ) = p1←v20232;
   (*  (W2Pt) (( (ptr) &p←v20520)+4) ) = p2←v20260;
   (*  (W2Pt) (( (ptr) &p←v20520)+6) ) = p3←v20288;
SOURCE(20692, 39)
   (void) AverageSpeed←P1260((word) &var←c0695, p←v20520);
   fullScale←v20548 = var←c0695.f0;
SOURCE(20733, 74)
   {
      word x934;
      word x935;
      if (((
         x934 = fullScale←v20548,  *(float*)&x934
         ) > (
         x935 = (*  (ptr) &fc34 ),  *(float*)&x935
         ))) {
SOURCE(20757, 50)
         (void) DivideUntilSmooth←P1320(p←v20520, (word) (( (bPt) formal←c60252)+48), fullScale←v20548, 15);
         };
      };
SOURCE(20809, 7)
   (*  (W2Pt) (( (ptr) formal←c60252)+21) ) = p3←v20288;
   }

static void conic←P5040(p1←v20348, p2←v20376, r←v20404, formal←c60316)
   W2 p1←v20348;
   W2 p2←v20376;
   word r←v20404;
   word formal←c60316;
   {
   register ptr gf←c60284 =  (ptr) &globalframe;
   formal←c60316 = (formal←c60316 - 32);
   /* conic: */ 
SOURCE(20821, 86)
SOURCE(20860, 47)
   {
      word pd936;
      pd936 = (* (( (ptr) (* (( (ptr) gf←c60284)+79)/* var←c51484 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd936 ))))((*  (W2Pt) (( (ptr) formal←c60316)+21) ), p1←v20348, p2←v20376, r←v20404, (word) (
            ( (bPt) formal←c60316)+40), pd936);
      };
   }

static void arc←P5100(p1←v20464, p2←v20492, formal←c60380)
   W2 p1←v20464;
   W2 p2←v20492;
   word formal←c60380;
   {
   register ptr gf←c60348 =  (ptr) &globalframe;
   formal←c60380 = (formal←c60380 - 24);
   /* arc: */ 
SOURCE(20910, 68)
SOURCE(20937, 41)
   {
      word pd937;
      pd937 = (* (( (ptr) (* (( (ptr) gf←c60348)+79)/* var←c51484 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd937 ))))((*  (W2Pt) (( (ptr) formal←c60380)+21) ), p1←v20464, p2←v20492, (word) (( (bPt) formal←c60380)+32)
         , pd937);
      };
   }

static word ComputeStretch←P1560(path←v9724, length←v9752)
   word path←v9724;
   word length←v9752;
   {
   word var←c9796;
   /* ComputeStretch: */ 
SOURCE(21265, 252)
SOURCE(21347, 170)
   {
      word x938;
      word x939;
      if (((
         x938 = length←v9752,  *(float*)&x938
         ) <= (
         x939 = (*  (ptr) &fc34 ),  *(float*)&x939
         ))) {
SOURCE(21369, 18)
         return((*  (ptr) &fc20 ));
         }
      else {
SOURCE(21387, 132)
         {
            word pathUnits←v20592;
SOURCE(21389, 35)
            pathUnits←v20592 = (word) MeasurePath←P1500(path←v9724, 0);
SOURCE(21426, 36)
            {
               word x940;
               word x941;
               if (((
                  x940 = pathUnits←v20592,  *(float*)&x940
                  ) == (
                  x941 = (*  (ptr) &fc34 ),  *(float*)&x941
                  ))) {
SOURCE(21450, 12)
                  return((*  (ptr) &fc20 ));
                  };
               };
SOURCE(21464, 53)
            {
               word x942;
               word x943;
               float tf944;
               float tf945;
               word x947;
               float tf948;
               float tf949;
               word x951;
               float tf952;
               return((
                  tf952 = FMIN(FMAX(((
                           x942 = pathUnits←v20592,  *(float*)&x942
                           ) / (
                           x943 = length←v9752,  *(float*)&x943
                           )), (
                           x947 = (*  (ptr) &fc946 ),  *(float*)&x947
                           ), tf944, tf945), (
                        x951 = (*  (ptr) &fc950 ),  *(float*)&x951
                        ), tf948, tf949),  *(word*)&tf952
                  ));
               };
            };
         };
      };
   }

static word AdjustOffset←P1620(offset←v9856, patternLen←v9884, pattern←v9912)
   word offset←v9856;
   word patternLen←v9884;
   word pattern←v9912;
   {
   register ptr gf←c60412 =  (ptr) &globalframe;
   word var←c10060;
   word patternTotal←v20636;
   /* AdjustOffset: */ 
SOURCE(21526, 690)
SOURCE(21635, 24)
   patternTotal←v20636 = (*  (ptr) &fc34 );
SOURCE(21661, 207)
   {
      register word i←v20680 = 0;
      register word noName←c56828;
      noName←c56828 = patternLen←v9884;
      if (( (int)i←v20680 >=  (int)noName←c56828)) {
         goto lab←L100157;
         };
      lab←L100160: ;
      {
         word element←v20724;
SOURCE(21694, 26)
         element←v20724 = (word) ( *( (fPt) ((*  (ptr) pattern←v9912 ))))(SGNCK(i←v20680), pattern←v9912);
SOURCE(21722, 104)
         {
            word x953;
            word x954;
            if (((
               x953 = element←v20724,  *(float*)&x953
               ) < (
               x954 = (*  (ptr) &fc34 ),  *(float*)&x954
               ))) {
SOURCE(21746, 80)
               {
                  W3 var←c0714;
                  var←c0714.f0 = 72;
                  var←c0714.f1 = (* (( (ptr) gf←c60412)+26) );
                  var←c0714.f2 = 0;
                  (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c60412)+80)/* var←c51516 */  ))+4) ), (word) &var←c0714);
                  };
               };
            };
SOURCE(21831, 37)
         {
            word x955;
            word x956;
            *(float*)&patternTotal←v20636 = (
               x955 = patternTotal←v20636,  *(float*)&x955
               ) + (
               x956 = element←v20724,  *(float*)&x956
               );
            };
         };
      i←v20680 = (i←v20680 + 1);
      if (( (int)i←v20680 <  (int)noName←c56828)) {
         goto lab←L100160;
         };
      lab←L100157: ;
      };
SOURCE(21879, 170)
   if (( (unsigned) (((unsigned)patternTotal←v20636 << 1) >> 24) == 255) || ( (int)patternTotal←v20636 <=  (int)0)) {
SOURCE(21968, 81)
      {
         W3 var←c0716;
         var←c0716.f0 = 72;
         var←c0716.f1 = (* (( (ptr) gf←c60412)+27) );
         var←c0716.f2 = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c60412)+80)/* var←c51516 */  ))+4) ), (word) &var←c0716);
         };
      };
SOURCE(22054, 162)
   {
      word x957;
      word x958;
      if (((
         x957 = offset←v9856,  *(float*)&x957
         ) == (
         x958 = (*  (ptr) &fc34 ),  *(float*)&x958
         ))) {
SOURCE(22075, 18)
         return((*  (ptr) &fc34 ));
         }
      else {
SOURCE(22093, 123)
         {
            word r←v20768;
SOURCE(22095, 31)
            {
               word x959;
               word x960;
               *(float*)&r←v20768 = (
                  x959 = offset←v9856,  *(float*)&x959
                  ) / (
                  x960 = patternTotal←v20636,  *(float*)&x960
                  );
               };
SOURCE(22128, 38)
            {
               float tf961;
               word x962;
               word x964;
               if ((FABS((
                     x962 = r←v20768,  *(float*)&x962
                     ), tf961) >= (
                  x964 = (*  (ptr) &fc963 ),  *(float*)&x964
                  ))) {
SOURCE(22154, 12)
                  return((*  (ptr) &fc34 ));
                  };
               };
SOURCE(22171, 45)
            {
               word x965;
               word pd966;
               word x967;
               float tf968;
               pd966 = (* (( (ptr) (* (( (ptr) gf←c60412)+77)/* var←c46204 */  ))+8) );
               return((
                  tf968 = (
                     x965 = offset←v9856,  *(float*)&x965
                     ) - ((float)(int)(word) ( *( (fPt) ((*  (ptr) pd966 ))))(r←v20768, pd966) * (
                     x967 = patternTotal←v20636,  *(float*)&x967
                     )),  *(word*)&tf968
                  ));
               };
            };
         };
      };
   }

static void Dashes←P1680(path←v10120, formal←c01000, formal←c01001, offset←v10204, length←v10232, formal←c01002, formal←c01003, conicTo←v10316, formal←c01004, closed←v10372)
   word path←v10120;
   word formal←c01000;
   word formal←c01001;
   word offset←v10204;
   word length←v10232;
   word formal←c01002;
   word formal←c01003;
   word conicTo←v10316;
   word formal←c01004;
   word closed←v10372;
   {
   W40 var←c60444;
   /* declaration of patternLen←v10148 skipped */ 
   /* declaration of pattern←v10176 skipped */ 
   /* declaration of moveTo←v10260 skipped */ 
   /* declaration of lineTo←v10288 skipped */ 
   /* declaration of curveTo←v10344 skipped */ 
   /* declaration of var←c56956 skipped */ 
   /* declaration of var←c56988 skipped */ 
   /* declaration of var←c57020 skipped */ 
   /* declaration of var←c57052 skipped */ 
   /* declaration of var←c57084 skipped */ 
   /* declaration of var←c57116 skipped */ 
   /* declaration of stretch←v20812 skipped */ 
   /* declaration of lp←v20840 skipped */ 
   /* declaration of fp←v20868 skipped */ 
   /* declaration of startOfFirstDash←v20896 skipped */ 
   /* declaration of endOfFirstDash←v20924 skipped */ 
   /* declaration of index←v20952 skipped */ 
   /* declaration of residual←v20980 skipped */ 
   /* declaration of used←v21008 skipped */ 
   /* declaration of on←v21036 skipped */ 
   /* declaration of needsClosedSetup←v21064 skipped */ 
   /* declaration of firstDash←v21092 skipped */ 
   (* (( (ptr) &var←c60444)+4)/* patternLen←v10148 */  ) = formal←c01000;
   (* (( (ptr) &var←c60444)+5)/* pattern←v10176 */  ) = formal←c01001;
   (* (( (ptr) &var←c60444)+6)/* moveTo←v10260 */  ) = formal←c01002;
   (* (( (ptr) &var←c60444)+7)/* lineTo←v10288 */  ) = formal←c01003;
   (* (( (ptr) &var←c60444)+8)/* curveTo←v10344 */  ) = formal←c01004;
   /* Dashes: */ 
SOURCE(22223, 3627)
   {
      word tmpAddr969;
      tmpAddr969 = (word) (( (ptr) &var←c60444)+9)/* var←c56956 */ ;
      (*  (ptr) tmpAddr969 ) = ( ((word)  (fPt) arc←P5652) );
      (* (( (ptr) tmpAddr969) + 1) ) = 1;
      };
   {
      word tmpAddr970;
      tmpAddr970 = (word) (( (ptr) &var←c60444)+11)/* var←c56988 */ ;
      (*  (ptr) tmpAddr970 ) = ( ((word)  (fPt) conic←P5592) );
      (* (( (ptr) tmpAddr970) + 1) ) = 1;
      };
   {
      word tmpAddr971;
      tmpAddr971 = (word) (( (ptr) &var←c60444)+13)/* var←c57020 */ ;
      (*  (ptr) tmpAddr971 ) = ( ((word)  (fPt) curve←P5532) );
      (* (( (ptr) tmpAddr971) + 1) ) = 1;
      };
   {
      word tmpAddr972;
      tmpAddr972 = (word) (( (ptr) &var←c60444)+15)/* var←c57052 */ ;
      (*  (ptr) tmpAddr972 ) = ( ((word)  (fPt) line←P5472) );
      (* (( (ptr) tmpAddr972) + 1) ) = 1;
      };
   {
      word tmpAddr973;
      tmpAddr973 = (word) (( (ptr) &var←c60444)+17)/* var←c57084 */ ;
      (*  (ptr) tmpAddr973 ) = ( ((word)  (fPt) move←P5412) );
      (* (( (ptr) tmpAddr973) + 1) ) = 1;
      };
   {
      word tmpAddr974;
      tmpAddr974 = (word) (( (ptr) &var←c60444)+19)/* var←c57116 */ ;
      (*  (ptr) tmpAddr974 ) = ( ((word)  (fPt) Advance←P5352) );
      (* (( (ptr) tmpAddr974) + 1) ) = 1;
      };
SOURCE(22503, 44)
   (* (( (ptr) &var←c60444)+21)/* stretch←v20812 */  ) = (word) ComputeStretch←P1560(path←v10120, length←v10232);
SOURCE(22549, 54)
   (* (( (ptr) &var←c60444)+22) ) = (*  (ptr) &fc34 );
   (* (( (ptr) &var←c60444)+23) ) = (*  (ptr) &fc34 );
   (*  (W2Pt) (( (ptr) &var←c60444)+24)/* fp←v20868 */  ) = (*  (W2Pt) (( (ptr) &var←c60444)+22)/* lp←v20840 */  );
   (*  (W2Pt) (( (ptr) &var←c60444)+26)/* startOfFirstDash←v20896 */  ) = (*  (W2Pt) (( (ptr) &var←c60444)+24)/* fp←v20868 */  );
   (*  (W2Pt) (( (ptr) &var←c60444)+28)/* endOfFirstDash←v20924 */  ) = (*  (W2Pt) (( (ptr) &var←c60444)+26)/* startOfFirstDash←v20896 */  );
SOURCE(22605, 14)
   (* (( (ptr) &var←c60444)+30)/* index←v20952 */  ) = 0;
SOURCE(22668, 37)
   {
      word pd975;
      word x976;
      word x977;
      pd975 = (* (( (ptr) &var←c60444)+5)/* pattern←v10176 */  );
      *(float*)(( (ptr) &var←c60444)+31)/* residual←v20980 */  = (
         x976 = (word) ( *( (fPt) ((*  (ptr) pd975 ))))(0, pd975),  *(float*)&x976
         ) * (
         x977 = (* (( (ptr) &var←c60444)+21)/* stretch←v20812 */  ),  *(float*)&x977
         );
      };
SOURCE(22771, 16)
   (* (( (ptr) &var←c60444)+32)/* used←v21008 */  ) = (*  (ptr) &fc34 );
SOURCE(22834, 15)
   (* (( (ptr) &var←c60444)+33)/* on←v21036 */  ) = 1;
SOURCE(22851, 31)
   (* (( (ptr) &var←c60444)+34)/* needsClosedSetup←v21064 */  ) = closed←v10372;
SOURCE(22884, 42)
   (* (( (ptr) &var←c60444)+35) ) = 0;
   (* (( (ptr) &var←c60444)+36) ) = (*  (ptr) &fc34 );
   (* (( (ptr) &var←c60444)+37) ) = (*  (ptr) &fc34 );
   (* (( (ptr) &var←c60444)+38) ) = (*  (ptr) &fc34 );
   (* (( (ptr) &var←c60444)+39) ) = (*  (ptr) &fc34 );
SOURCE(25454, 60)
   {
      word var←c57212;
      {
         word x978;
         word x979;
         *(float*)&var←c57212 = (
            x978 = (word) AdjustOffset←P1620(offset←v10204, (* (( (ptr) &var←c60444)+4)/* patternLen←v10148 */  ), (* (( (ptr) &var←c60444)+5)
               /* pattern←v10176 */  )),  *(float*)&x978
            ) * (
            x979 = (* (( (ptr) &var←c60444)+21)/* stretch←v20812 */  ),  *(float*)&x979
            );
         };
      (void) Advance←P5352(var←c57212, 0, 0, (word) (( (bPt) &var←c60444)+76)/* var←c57116 */ );
      };
SOURCE(25516, 76)
   (void) ( *( (fPt) ((*  (ptr) path←v10120 ))))((word) (( (bPt) &var←c60444)+68)/* var←c57084 */ , (word) (( (bPt) &var←c60444)+60)
      /* var←c57052 */ , (word) (( (bPt) &var←c60444)+52)/* var←c57020 */ , (word) (( (bPt) &var←c60444)+44)/* var←c56988 */ , (word) (
         ( (bPt) &var←c60444)+36)/* var←c56956 */ , path←v10120);
SOURCE(25594, 256)
   if ((0 != closed←v10372)) {
SOURCE(25611, 58)
      if ((0 != (* (( (ptr) &var←c60444)+34)/* needsClosedSetup←v21064 */  ))) {
SOURCE(25636, 33)
         (*  (W2Pt) (( (ptr) &var←c60444)+28)/* endOfFirstDash←v20924 */  ) = (*  (W2Pt) (( (ptr) &var←c60444)+26)/* startOfFirstDash←v20896 */  );
         };
SOURCE(25671, 8)
      (void) line←P5472((*  (W2Pt) (( (ptr) &var←c60444)+24)/* fp←v20868 */  ), (word) (( (bPt) &var←c60444)+60)/* var←c57052 */ )
      ;
SOURCE(25681, 54)
      if ( ! XR←EqualWords((( (ptr) &var←c60444)+22)/* lp←v20840 */ , (( (ptr) &var←c60444)+26)/* startOfFirstDash←v20896 */ , 2)
      ) {
SOURCE(25711, 24)
         {
            word pd980;
            pd980 = (* (( (ptr) &var←c60444)+6)/* moveTo←v10260 */  );
            (void) ( *( (fPt) ((*  (ptr) pd980 ))))((*  (W2Pt) ((( (ptr) &var←c60444)+26)/* startOfFirstDash←v20896 */ ) ), pd980);
            };
         };
SOURCE(25737, 113)
      if (((* (( (ptr) &var←c60444)+35) ) == 0)) {
SOURCE(25771, 28)
         {
            word pd981;
            pd981 = (* (( (ptr) &var←c60444)+7)/* lineTo←v10288 */  );
            (void) ( *( (fPt) ((*  (ptr) pd981 ))))((*  (W2Pt) ((( (ptr) &var←c60444)+28)/* endOfFirstDash←v20924 */ ) ), pd981);
            };
         }
      else {
SOURCE(25799, 51)
         {
            word pd982;
            pd982 = (* (( (ptr) &var←c60444)+8)/* curveTo←v10344 */  );
            (void) ( *( (fPt) ((*  (ptr) pd982 ))))((*  (W2Pt) (( (ptr) &var←c60444)+36) ), (*  (W2Pt) (( (ptr) &var←c60444)+38) ), (*  (W2Pt) (
                  ( (ptr) &var←c60444)+28)/* endOfFirstDash←v20924 */  ), pd982);
            };
         };
      };
   }

static void Advance←P5352(patternOffset←v21336, startAction←v21364, stopAction←v21392, formal←c60476)
   word patternOffset←v21336;
   word startAction←v21364;
   word stopAction←v21392;
   word formal←c60476;
   {
   word anyProgress←v21876 = 1;
   formal←c60476 = (formal←c60476 - 76);
   /* Advance: */ 
SOURCE(22928, 754)
SOURCE(23031, 651)
   lab←L100163: ;
   {
      word x983;
      word x984;
      if (((
         x983 = (* (( (ptr) formal←c60476)+32) ),  *(float*)&x983
         ) < (
         x984 = patternOffset←v21336,  *(float*)&x984
         ))) {
         }
      else {
         goto lab←L100161;
         };
      };
   {
      word nextUsed←v21920;
SOURCE(23062, 32)
      {
         word x985;
         word x986;
         *(float*)&nextUsed←v21920 = (
            x985 = (* (( (ptr) formal←c60476)+32) ),  *(float*)&x985
            ) + (
            x986 = (* (( (ptr) formal←c60476)+31) ),  *(float*)&x986
            );
         };
SOURCE(23096, 586)
      {
         word x987;
         word x988;
         if (((
            x987 = nextUsed←v21920,  *(float*)&x987
            ) > (
            x988 = (* (( (ptr) formal←c60476)+32) ),  *(float*)&x988
            ))) {
SOURCE(23190, 185)
            {
               word nextResidual←v21964;
SOURCE(23192, 45)
               {
                  word x989;
                  word x990;
                  *(float*)&nextResidual←v21964 = (
                     x989 = nextUsed←v21920,  *(float*)&x989
                     ) - (
                     x990 = patternOffset←v21336,  *(float*)&x990
                     );
                  };
SOURCE(23239, 18)
               anyProgress←v21876 = 1;
SOURCE(23259, 113)
               {
                  word x991;
                  word x992;
                  if (((
                     x991 = nextResidual←v21964,  *(float*)&x991
                     ) <= (
                     x992 = (*  (ptr) &fc34 ),  *(float*)&x992
                     ))) {
SOURCE(23288, 14)
                     (* (( (ptr) formal←c60476)+31) ) = (*  (ptr) &fc34 );
SOURCE(23304, 15)
                     (* (( (ptr) formal←c60476)+32) ) = nextUsed←v21920;
                     }
                  else {
SOURCE(23327, 23)
                     (* (( (ptr) formal←c60476)+31) ) = nextResidual←v21964;
SOURCE(23352, 20)
                     (* (( (ptr) formal←c60476)+32) ) = patternOffset←v21336;
                     };
                  };
               };
            }
         else {
SOURCE(23384, 44)
            if ( ( (0 != (* (( (ptr) formal←c60476)+33) )) ? (stopAction←v21392 != 0) : 0 ) ) {
SOURCE(23416, 12)
               (void) ( *( (fPt) ((*  (ptr) stopAction←v21392 ))))(stopAction←v21392);
               };
SOURCE(23430, 17)
            (* (( (ptr) formal←c60476)+30) ) = ((* (( (ptr) formal←c60476)+30) ) + 1);
SOURCE(23449, 132)
            if (((* (( (ptr) formal←c60476)+30) ) == (* (( (ptr) formal←c60476)+4) ))) {
SOURCE(23478, 9)
               (* (( (ptr) formal←c60476)+30) ) = 0;
SOURCE(23489, 46)
               if ((0 == anyProgress←v21876)) {
SOURCE(23515, 20)
                  (* (( (ptr) formal←c60476)+32) ) = patternOffset←v21336;
                  };
SOURCE(23562, 19)
               anyProgress←v21876 = 0;
               };
SOURCE(23586, 35)
            {
               word pd993;
               word x994;
               word x995;
               pd993 = (* (( (ptr) formal←c60476)+5) );
               *(float*)(( (ptr) formal←c60476)+31) = (
                  x994 = (word) ( *( (fPt) ((*  (ptr) pd993 ))))((* ((( (ptr) formal←c60476)+30)) ), pd993),  *(float*)&x994
                  ) * (
                  x995 = (* (( (ptr) formal←c60476)+21) ),  *(float*)&x995
                  );
               };
SOURCE(23623, 11)
            (* (( (ptr) formal←c60476)+33) ) =  (unsigned) (0 == (* (( (ptr) formal←c60476)+33) ));
SOURCE(23636, 46)
            if ( ( (0 != (* (( (ptr) formal←c60476)+33) )) ? (startAction←v21364 != 0) : 0 ) ) {
SOURCE(23669, 13)
               (void) ( *( (fPt) ((*  (ptr) startAction←v21364 ))))(startAction←v21364);
               };
            };
         };
      };
   goto lab←L100163;
   lab←L100161: ;
   }

static void move←P5412(p0←v21468, formal←c60508)
   W2 p0←v21468;
   word formal←c60508;
   {
   formal←c60508 = (formal←c60508 - 68);
   /* move: */ 
SOURCE(23699, 109)
SOURCE(23724, 7)
   (*  (W2Pt) (( (ptr) formal←c60508)+22) ) = p0←v21468;
SOURCE(23733, 51)
   if ((0 != (* (( (ptr) formal←c60508)+34) ))) {
SOURCE(23758, 26)
      (*  (W2Pt) (( (ptr) formal←c60508)+24) ) = p0←v21468;
      (*  (W2Pt) (( (ptr) formal←c60508)+26) ) = p0←v21468;
      };
SOURCE(23786, 22)
   if ((0 != (* (( (ptr) formal←c60508)+33) ))) {
SOURCE(23797, 11)
      {
         word pd996;
         pd996 = (* (( (ptr) formal←c60508)+6) );
         (void) ( *( (fPt) ((*  (ptr) pd996 ))))((*  (W2Pt) ((( (ptr) formal←c60508)+22)) ), pd996);
         };
      };
   }

static void line←P5472(p1←v21528, formal←c60604)
   W2 p1←v21528;
   word formal←c60604;
   {
   W12 var←c60540;
   register ptr gf←c60572 =  (ptr) &globalframe;
   /* declaration of var←c57276 skipped */ 
   /* declaration of var←c57308 skipped */ 
   /* declaration of delta←v22008 skipped */ 
   /* declaration of d←v22036 skipped */ 
   /* declaration of segmentStart←v22064 skipped */ 
   word segmentEnd←v22092;
   formal←c60604 = (formal←c60604 - 60);
   (*  (ptr) &var←c60540 ) = formal←c60604;
   /* line: */ 
SOURCE(23811, 551)
   {
      word tmpAddr997;
      tmpAddr997 = (word) (( (ptr) &var←c60540)+4)/* var←c57276 */ ;
      (*  (ptr) tmpAddr997 ) = ( ((word)  (fPt) stop←P5868) );
      (* (( (ptr) tmpAddr997) + 1) ) = 1;
      };
   {
      word tmpAddr998;
      tmpAddr998 = (word) (( (ptr) &var←c60540)+6)/* var←c57308 */ ;
      (*  (ptr) tmpAddr998 ) = ( ((word)  (fPt) start←P5808) );
      (* (( (ptr) tmpAddr998) + 1) ) = 1;
      };
SOURCE(23836, 24)
   {
      word x999;
      word x1000;
      *(float*)(( (ptr) &var←c60540)+8) = (
         x999 = p1←v21528.f0,  *(float*)&x999
         ) - (
         x1000 = (* (( (ptr) formal←c60604)+22) ),  *(float*)&x1000
         );
      };
   {
      word x1001;
      word x1002;
      *(float*)(( (ptr) &var←c60540)+9) = (
         x1001 = p1←v21528.f1,  *(float*)&x1001
         ) - (
         x1002 = (* (( (ptr) formal←c60604)+23) ),  *(float*)&x1002
         );
      };
SOURCE(23862, 31)
   {
      word pd1003;
      pd1003 = (* (( (ptr) (* (( (ptr) gf←c60572)+82)/* var←c52156 */  ))+24) );
      (* (( (ptr) &var←c60540)+10)/* d←v22036 */  ) = (word) ( *( (fPt) ((*  (ptr) pd1003 ))))((*  (W2Pt) ((( (ptr) &var←c60540)+8)
         /* delta←v22008 */ ) ), pd1003);
      };
SOURCE(23895, 25)
   (* (( (ptr) &var←c60540)+11)/* segmentStart←v22064 */  ) = (* (( (ptr) formal←c60604)+32) );
SOURCE(23922, 27)
   {
      word x1004;
      word x1005;
      *(float*)&segmentEnd←v22092 = (
         x1004 = (* (( (ptr) formal←c60604)+32) ),  *(float*)&x1004
         ) + (
         x1005 = (* (( (ptr) &var←c60540)+10)/* d←v22036 */  ),  *(float*)&x1005
         );
      };
SOURCE(24298, 32)
   (void) Advance←P5352(segmentEnd←v22092, (word) (( (bPt) &var←c60540)+24)/* var←c57308 */ , (word) (( (bPt) &var←c60540)+16)
      /* var←c57276 */ , (word) (( (bPt) formal←c60604)+76));
SOURCE(24332, 21)
   if ((0 != (* (( (ptr) formal←c60604)+33) ))) {
SOURCE(24343, 10)
      {
         word pd1006;
         pd1006 = (* (( (ptr) formal←c60604)+7) );
         (void) ( *( (fPt) ((*  (ptr) pd1006 ))))(p1←v21528, pd1006);
         };
      };
SOURCE(24355, 7)
   (*  (W2Pt) (( (ptr) formal←c60604)+22) ) = p1←v21528;
   }

static void start←P5808(formal←c60668)
   word formal←c60668;
   {
   register ptr gf←c60636 =  (ptr) &globalframe;
   word s←v22224;
   W2 p←v22252;
   formal←c60668 = (formal←c60668 - 24);
   /* start: */ 
SOURCE(23951, 151)
SOURCE(23967, 35)
   {
      word x1007;
      word x1008;
      word x1009;
      *(float*)&s←v22224 = ((
         x1007 = (* (( (ptr) (*  (ptr) formal←c60668 ))+32) ),  *(float*)&x1007
         ) - (
         x1008 = (* (( (ptr) formal←c60668)+11) ),  *(float*)&x1008
         )) / (
         x1009 = (* (( (ptr) formal←c60668)+10) ),  *(float*)&x1009
         );
      };
SOURCE(24004, 39)
   {
      W2 v1←v38996;
      W2 v2←v39024;
      v1←v38996 = (*  (W2Pt) (( (ptr) (*  (ptr) formal←c60668 ))+22) );
      {
         word pd1010;
         pd1010 = (* (( (ptr) (* (( (ptr) gf←c60636)+82)/* var←c52156 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd1010 ))))((word) &v2←v39024, (*  (W2Pt) (( (ptr) formal←c60668)+8) ), s←v22224, pd1010);
         };
SOURCE(1675, 31)
      {
         word x1011;
         word x1012;
         *(float*)&p←v22252.f0 = (
            x1011 = v1←v38996.f0,  *(float*)&x1011
            ) + (
            x1012 = v2←v39024.f0,  *(float*)&x1012
            );
         };
      {
         word x1013;
         word x1014;
         *(float*)&p←v22252.f1 = (
            x1013 = v1←v38996.f1,  *(float*)&x1013
            ) + (
            x1014 = v2←v39024.f1,  *(float*)&x1014
            );
         };
      };
SOURCE(24046, 9)
   {
      word pd1015;
      pd1015 = (* (( (ptr) (*  (ptr) formal←c60668 ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd1015 ))))(p←v22252, pd1015);
      };
SOURCE(24057, 45)
   if ((0 != (* (( (ptr) (*  (ptr) formal←c60668 ))+34) ))) {
SOURCE(24082, 20)
      (*  (W2Pt) (( (ptr) (*  (ptr) formal←c60668 ))+26) ) = p←v22252;
      };
   }

static void stop←P5868(formal←c60732)
   word formal←c60732;
   {
   register ptr gf←c60700 =  (ptr) &globalframe;
   word s←v22296;
   W2 p←v22324;
   formal←c60732 = (formal←c60732 - 16);
   /* stop: */ 
SOURCE(24107, 185)
SOURCE(24122, 35)
   {
      word x1016;
      word x1017;
      word x1018;
      *(float*)&s←v22296 = ((
         x1016 = (* (( (ptr) (*  (ptr) formal←c60732 ))+32) ),  *(float*)&x1016
         ) - (
         x1017 = (* (( (ptr) formal←c60732)+11) ),  *(float*)&x1017
         )) / (
         x1018 = (* (( (ptr) formal←c60732)+10) ),  *(float*)&x1018
         );
      };
SOURCE(24159, 39)
   {
      W2 v1←v38920;
      W2 v2←v38948;
      v1←v38920 = (*  (W2Pt) (( (ptr) (*  (ptr) formal←c60732 ))+22) );
      {
         word pd1019;
         pd1019 = (* (( (ptr) (* (( (ptr) gf←c60700)+82)/* var←c52156 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd1019 ))))((word) &v2←v38948, (*  (W2Pt) (( (ptr) formal←c60732)+8) ), s←v22296, pd1019);
         };
SOURCE(1675, 31)
      {
         word x1020;
         word x1021;
         *(float*)&p←v22324.f0 = (
            x1020 = v1←v38920.f0,  *(float*)&x1020
            ) + (
            x1021 = v2←v38948.f0,  *(float*)&x1021
            );
         };
      {
         word x1022;
         word x1023;
         *(float*)&p←v22324.f1 = (
            x1022 = v1←v38920.f1,  *(float*)&x1022
            ) + (
            x1023 = v2←v38948.f1,  *(float*)&x1023
            );
         };
      };
SOURCE(24200, 92)
   if ((0 != (* (( (ptr) (*  (ptr) formal←c60732 ))+34) ))) {
SOURCE(24227, 18)
      (*  (W2Pt) (( (ptr) (*  (ptr) formal←c60732 ))+28) ) = p←v22324;
SOURCE(24247, 24)
      (* (( (ptr) (*  (ptr) formal←c60732 ))+34) ) = 0;
      }
   else {
SOURCE(24282, 10)
      {
         word pd1024;
         pd1024 = (* (( (ptr) (*  (ptr) formal←c60732 ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd1024 ))))(p←v22324, pd1024);
         };
      };
   }

static void curve←P5532(p1←v21588, p2←v21616, p3←v21644, formal←c60796)
   W2 p1←v21588;
   W2 p2←v21616;
   W2 p3←v21644;
   word formal←c60796;
   {
   W6 var←c60764;
   /* declaration of var←c57500 skipped */ 
   W8 p←v22396;
   word fullScale←v22424;
   W2 var←c0777;
   formal←c60796 = (formal←c60796 - 52);
   var←c60764.f0 = formal←c60796;
   /* curve: */ 
SOURCE(24367, 920)
   {
      word tmpAddr1025;
      tmpAddr1025 = (word) (( (ptr) &var←c60764)+4)/* var←c57500 */ ;
      (*  (ptr) tmpAddr1025 ) = ( ((word)  (fPt) piece←P5928) );
      (* (( (ptr) tmpAddr1025) + 1) ) = 1;
      };
SOURCE(25133, 28)
   (*  (W2Pt) &p←v22396 ) = (*  (W2Pt) (( (ptr) formal←c60796)+22) );
   (*  (W2Pt) (( (ptr) &p←v22396)+2) ) = p1←v21588;
   (*  (W2Pt) (( (ptr) &p←v22396)+4) ) = p2←v21616;
   (*  (W2Pt) (( (ptr) &p←v22396)+6) ) = p3←v21644;
SOURCE(25163, 39)
   (void) AverageSpeed←P1260((word) &var←c0777, p←v22396);
   fullScale←v22424 = var←c0777.f0;
SOURCE(25204, 74)
   {
      word x1026;
      word x1027;
      if (((
         x1026 = fullScale←v22424,  *(float*)&x1026
         ) > (
         x1027 = (*  (ptr) &fc34 ),  *(float*)&x1027
         ))) {
SOURCE(25228, 50)
         (void) DivideUntilSmooth←P1320(p←v22396, (word) (( (bPt) &var←c60764)+16)/* var←c57500 */ , fullScale←v22424, 15);
         };
      };
SOURCE(25280, 7)
   (*  (W2Pt) (( (ptr) formal←c60796)+22) ) = p3←v21644;
   }

static void piece←P5928(formal←c01005, formal←c01006, formal←c60860)
   W8 formal←c01005;
   word formal←c01006;
   word formal←c60860;
   {
   W20 var←c60828;
   /* declaration of p←v22500 skipped */ 
   /* declaration of speed←v22528 skipped */ 
   /* declaration of var←c57564 skipped */ 
   /* declaration of var←c57596 skipped */ 
   /* declaration of segmentStart←v22556 skipped */ 
   word segmentEnd←v22584;
   /* declaration of dashStartParam←v22612 skipped */ 
   /* declaration of needMove←v22640 skipped */ 
   formal←c60860 = (formal←c60860 - 16);
   (*  (W8Pt) (( (ptr) &var←c60828)+4)/* p←v22500 */  ) = formal←c01005;
   (* (( (ptr) &var←c60828)+12)/* speed←v22528 */  ) = formal←c01006;
   (*  (ptr) &var←c60828 ) = formal←c60860;
   /* piece: */ 
SOURCE(24401, 727)
   {
      word tmpAddr1028;
      tmpAddr1028 = (word) (( (ptr) &var←c60828)+13)/* var←c57564 */ ;
      (*  (ptr) tmpAddr1028 ) = ( ((word)  (fPt) stop←P6048) );
      (* (( (ptr) tmpAddr1028) + 1) ) = 1;
      };
   {
      word tmpAddr1029;
      tmpAddr1029 = (word) (( (ptr) &var←c60828)+15)/* var←c57596 */ ;
      (*  (ptr) tmpAddr1029 ) = ( ((word)  (fPt) start←P5988) );
      (* (( (ptr) tmpAddr1029) + 1) ) = 1;
      };
SOURCE(24442, 25)
   (* (( (ptr) &var←c60828)+17)/* segmentStart←v22556 */  ) = (* (( (ptr) (*  (ptr) formal←c60860 ))+32) );
SOURCE(24469, 31)
   {
      word x1030;
      word x1031;
      *(float*)&segmentEnd←v22584 = (
         x1030 = (* (( (ptr) (*  (ptr) formal←c60860 ))+32) ),  *(float*)&x1030
         ) + (
         x1031 = (* (( (ptr) &var←c60828)+12)/* speed←v22528 */  ),  *(float*)&x1031
         );
      };
SOURCE(24502, 24)
   (* (( (ptr) &var←c60828)+18)/* dashStartParam←v22612 */  ) = (*  (ptr) &fc34 );
SOURCE(24528, 22)
   (* (( (ptr) &var←c60828)+19)/* needMove←v22640 */  ) = 0;
SOURCE(25077, 32)
   (void) Advance←P5352(segmentEnd←v22584, (word) (( (bPt) &var←c60828)+60)/* var←c57596 */ , (word) (( (bPt) &var←c60828)+52)
      /* var←c57564 */ , (word) (( (bPt) (*  (ptr) formal←c60860 ))+76));
SOURCE(25111, 17)
   if ((0 != (* (( (ptr) (*  (ptr) formal←c60860 ))+33) ))) {
SOURCE(25122, 6)
      (void) stop←P6048((word) ((( (bPt) &var←c60828)+52)/* var←c57564 */ ));
      };
   }

static void start←P5988(formal←c60892)
   word formal←c60892;
   {
   formal←c60892 = (formal←c60892 - 60);
   /* start: */ 
SOURCE(24552, 108)
SOURCE(24568, 75)
   {
      word x1032;
      word x1033;
      word x1034;
      word x1035;
      word x1036;
      if (((
         x1032 = (* (( (ptr) formal←c60892)+12) ),  *(float*)&x1032
         ) == (
         x1033 = (*  (ptr) &fc34 ),  *(float*)&x1033
         ))) {
         (* (( (ptr) formal←c60892)+18) ) = (*  (ptr) &fc20 );
         }
      else {
         *(float*)(( (ptr) formal←c60892)+18) = ((
            x1034 = (* (( (ptr) (*  (ptr) (*  (ptr) formal←c60892 ) ))+32) ),  *(float*)&x1034
            ) - (
            x1035 = (* (( (ptr) formal←c60892)+17) ),  *(float*)&x1035
            )) / (
            x1036 = (* (( (ptr) formal←c60892)+12) ),  *(float*)&x1036
            );
         };
      };
SOURCE(24645, 15)
   (* (( (ptr) formal←c60892)+19) ) = 1;
   }

static void stop←P6048(formal←c60924)
   word formal←c60924;
   {
   word dashEndParam←v22772;
   W8 b←v22800;
   formal←c60924 = (formal←c60924 - 52);
   /* stop: */ 
SOURCE(24665, 407)
SOURCE(24680, 79)
   {
      word x1037;
      word x1038;
      word x1039;
      word x1040;
      word x1041;
      float tf1042;
      dashEndParam←v22772 =  ( ((
         x1037 = (* (( (ptr) formal←c60924)+12) ),  *(float*)&x1037
         ) == (
         x1038 = (*  (ptr) &fc34 ),  *(float*)&x1038
         )) ? (*  (ptr) &fc20 ) : (
         tf1042 = ((
            x1039 = (* (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+32) ),  *(float*)&x1039
            ) - (
            x1040 = (* (( (ptr) formal←c60924)+17) ),  *(float*)&x1040
            )) / (
            x1041 = (* (( (ptr) formal←c60924)+12) ),  *(float*)&x1041
            ),  *(word*)&tf1042
         ) ) ;
      };
SOURCE(24761, 53)
   (void) SubPiece←P1440((word) &b←v22800, (*  (W8Pt) (( (ptr) formal←c60924)+4) ), (* (( (ptr) formal←c60924)+18) ), dashEndParam←v22772)
   ;
SOURCE(24816, 177)
   if ((0 != (* (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+34) ))) {
SOURCE(24843, 23)
      (*  (W2Pt) (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+26) ) = (*  (W2Pt) &b←v22800 );
SOURCE(24868, 19)
      (*  (W2Pt) (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+36) ) = (*  (W2Pt) (( (ptr) &b←v22800)+2) );
SOURCE(24889, 19)
      (*  (W2Pt) (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+38) ) = (*  (W2Pt) (( (ptr) &b←v22800)+4) );
SOURCE(24910, 21)
      (*  (W2Pt) (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+28) ) = (*  (W2Pt) (( (ptr) &b←v22800)+6) );
SOURCE(24933, 26)
      (* (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+35) ) = 1;
SOURCE(24961, 24)
      (* (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+34) ) = 0;
SOURCE(24987, 6)
      return;
      };
SOURCE(24998, 29)
   if ((0 != (* (( (ptr) formal←c60924)+19) ))) {
SOURCE(25015, 12)
      {
         word pd1043;
         pd1043 = (* (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd1043 ))))((*  (W2Pt) (&b←v22800) ), pd1043);
         };
      };
SOURCE(25029, 25)
   {
      word pd1044;
      pd1044 = (* (( (ptr) (*  (ptr) (*  (ptr) formal←c60924 ) ))+8) );
      (void) ( *( (fPt) ((*  (ptr) pd1044 ))))((*  (W2Pt) (( (ptr) &b←v22800)+2) ), (*  (W2Pt) (( (ptr) &b←v22800)+4) ), (*  (W2Pt) (
            ( (ptr) &b←v22800)+6) ), pd1044);
      };
SOURCE(25056, 16)
   (* (( (ptr) formal←c60924)+19) ) = 0;
   }

static void conic←P5592(p1←v21704, p2←v21732, r←v21760, formal←c60988)
   W2 p1←v21704;
   W2 p2←v21732;
   word r←v21760;
   word formal←c60988;
   {
   register ptr gf←c60956 =  (ptr) &globalframe;
   formal←c60988 = (formal←c60988 - 44);
   /* conic: */ 
SOURCE(25292, 86)
SOURCE(25331, 47)
   {
      word pd1045;
      pd1045 = (* (( (ptr) (* (( (ptr) gf←c60956)+79)/* var←c51484 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd1045 ))))((*  (W2Pt) (( (ptr) formal←c60988)+22) ), p1←v21704, p2←v21732, r←v21760, (word) (
            ( (bPt) formal←c60988)+52), pd1045);
      };
   }

static void arc←P5652(p1←v21820, p2←v21848, formal←c61052)
   W2 p1←v21820;
   W2 p2←v21848;
   word formal←c61052;
   {
   register ptr gf←c61020 =  (ptr) &globalframe;
   formal←c61052 = (formal←c61052 - 36);
   /* arc: */ 
SOURCE(25381, 70)
SOURCE(25409, 42)
   {
      word pd1046;
      pd1046 = (* (( (ptr) (* (( (ptr) gf←c61020)+79)/* var←c51484 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd1046 ))))((*  (W2Pt) (( (ptr) formal←c61052)+22) ), p1←v21820, p2←v21848, (word) (( (bPt) formal←c61052)+44)
         , pd1046);
      };
   }

static void ConvolvePenWithPath←P1740(path←v10536, formal←c01007, formal←c01008, formal←c01009)
   word path←v10536;
   word formal←c01007;
   word formal←c01008;
   word formal←c01009;
   {
   W21 var←c61084;
   /* declaration of pen←v10564 skipped */ 
   /* declaration of moveTo←v10592 skipped */ 
   /* declaration of lineTo←v10620 skipped */ 
   /* declaration of var←c57628 skipped */ 
   /* declaration of var←c57660 skipped */ 
   /* declaration of var←c57692 skipped */ 
   /* declaration of started←v22844 skipped */ 
   /* declaration of move←v22872 skipped */ 
   /* declaration of fp←v22900 skipped */ 
   /* declaration of fi←v22928 skipped */ 
   /* declaration of lp←v22956 skipped */ 
   /* declaration of li←v22984 skipped */ 
   (* (( (ptr) &var←c61084)+4)/* pen←v10564 */  ) = formal←c01007;
   (* (( (ptr) &var←c61084)+5)/* moveTo←v10592 */  ) = formal←c01008;
   (* (( (ptr) &var←c61084)+6)/* lineTo←v10620 */  ) = formal←c01009;
   /* ConvolvePenWithPath: */ 
SOURCE(25859, 1041)
   {
      word tmpAddr1047;
      tmpAddr1047 = (word) (( (ptr) &var←c61084)+7)/* var←c57628 */ ;
      (*  (ptr) tmpAddr1047 ) = ( ((word)  (fPt) Close←P6228) );
      (* (( (ptr) tmpAddr1047) + 1) ) = 1;
      };
   {
      word tmpAddr1048;
      tmpAddr1048 = (word) (( (ptr) &var←c61084)+9)/* var←c57660 */ ;
      (*  (ptr) tmpAddr1048 ) = ( ((word)  (fPt) Line←P6168) );
      (* (( (ptr) tmpAddr1048) + 1) ) = 1;
      };
   {
      word tmpAddr1049;
      tmpAddr1049 = (word) (( (ptr) &var←c61084)+11)/* var←c57692 */ ;
      (*  (ptr) tmpAddr1049 ) = ( ((word)  (fPt) Move←P6108) );
      (* (( (ptr) tmpAddr1049) + 1) ) = 1;
      };
SOURCE(25996, 27)
   (* (( (ptr) &var←c61084)+13)/* started←v22844 */  ) = 0;
   (* (( (ptr) &var←c61084)+14)/* move←v22872 */  ) = 0;
SOURCE(26025, 20)
   (* (( (ptr) &var←c61084)+15) ) = (*  (ptr) &fc34 );
   (* (( (ptr) &var←c61084)+16) ) = (*  (ptr) &fc34 );
SOURCE(26047, 11)
   (* (( (ptr) &var←c61084)+17)/* fi←v22928 */  ) = 0;
SOURCE(26060, 20)
   (* (( (ptr) &var←c61084)+18) ) = (*  (ptr) &fc34 );
   (* (( (ptr) &var←c61084)+19) ) = (*  (ptr) &fc34 );
SOURCE(26082, 11)
   (* (( (ptr) &var←c61084)+20)/* li←v22984 */  ) = 0;
SOURCE(26803, 72)
   (void) ( *( (fPt) ((*  (ptr) path←v10536 ))))((word) (( (bPt) &var←c61084)+44)/* var←c57692 */ , (word) (( (bPt) &var←c61084)+36)
      /* var←c57660 */ , 0, 0, 0, path←v10536);
SOURCE(26877, 23)
   if ((0 != (* (( (ptr) &var←c61084)+13)/* started←v22844 */  ))) {
SOURCE(26893, 7)
      (void) Close←P6228((word) ((( (bPt) &var←c61084)+28)/* var←c57628 */ ));
      };
   }

static void Move←P6108(p←v38392, formal←c61116)
   W2 p←v38392;
   word formal←c61116;
   {
   formal←c61116 = (formal←c61116 - 44);
   /* Move: */ 
SOURCE(26095, 97)
SOURCE(26127, 23)
   if ((0 != (* (( (ptr) formal←c61116)+13) ))) {
SOURCE(26143, 7)
      (void) Close←P6228((word) ((( (bPt) formal←c61116)+28)));
      };
SOURCE(26152, 11)
   (*  (W2Pt) (( (ptr) formal←c61116)+15) ) = p←v38392;
   (*  (W2Pt) (( (ptr) formal←c61116)+18) ) = p←v38392;
SOURCE(26165, 14)
   (* (( (ptr) formal←c61116)+13) ) = 1;
SOURCE(26181, 11)
   (* (( (ptr) formal←c61116)+14) ) = 1;
   }

static void Line←P6168(p1←v38452, formal←c61148)
   W2 p1←v38452;
   word formal←c61148;
   {
   word dx←v23128;
   word dy←v23156;
   formal←c61148 = (formal←c61148 - 36);
   /* Line: */ 
SOURCE(26197, 366)
SOURCE(26229, 22)
   {
      word x1050;
      word x1051;
      *(float*)&dx←v23128 = (
         x1050 = p1←v38452.f0,  *(float*)&x1050
         ) - (
         x1051 = (* (( (ptr) formal←c61148)+18) ),  *(float*)&x1051
         );
      };
SOURCE(26253, 22)
   {
      word x1052;
      word x1053;
      *(float*)&dy←v23156 = (
         x1052 = p1←v38452.f1,  *(float*)&x1052
         ) - (
         x1053 = (* (( (ptr) formal←c61148)+19) ),  *(float*)&x1053
         );
      };
SOURCE(26277, 274)
   {
      word x1054;
      word x1055;
      word x1056;
      word x1057;
      if (((
         x1054 = dx←v23128,  *(float*)&x1054
         ) != (
         x1055 = (*  (ptr) &fc34 ),  *(float*)&x1055
         )) || ((
         x1056 = dy←v23156,  *(float*)&x1056
         ) != (
         x1057 = (*  (ptr) &fc34 ),  *(float*)&x1057
         ))) {
SOURCE(26313, 240)
         {
            word i←v23200;
SOURCE(26315, 58)
            {
               W2 var←c57820;
               var←c57820.f0 = dy←v23156;
               {
                  word x1058;
                  *(float*)&var←c57820.f1 =  - (
                     x1058 = dx←v23128,  *(float*)&x1058
                     );
                  };
               i←v23200 = (word) FindVertex←P600((* (( (ptr) formal←c61148)+4) ), var←c57820, (* (( (ptr) formal←c61148)+20) ));
               };
SOURCE(26375, 66)
            if ((0 != (* (( (ptr) formal←c61148)+14) ))) {
SOURCE(26390, 11)
               (* (( (ptr) formal←c61148)+17) ) = i←v23200;
               (* (( (ptr) formal←c61148)+20) ) = i←v23200;
SOURCE(26403, 24)
               {
                  W2 var←c57884;
                  {
                     W2 var←c57916;
                     W2 v2←v38872;
                     {
                        word idx1059;
                        word limit1060;
                        v2←v38872 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c61148)+4) ))+6))+(
/*1*/   idx1059 = (* (( (ptr) formal←c61148)+20) ),
/*1*/   limit1060 = (* (( (ptr) (* (( (ptr) formal←c61148)+4) ))+5) ),
/*1*/   BCK(idx1059, limit1060)
/*1*/   )) );
                        };
SOURCE(1675, 31)
                     {
                        word x1061;
                        word x1062;
                        *(float*)&var←c57916.f0 = (
                           x1061 = (* (( (ptr) formal←c61148)+18) ),  *(float*)&x1061
                           ) + (
                           x1062 = v2←v38872.f0,  *(float*)&x1062
                           );
                        };
                     {
                        word x1063;
                        word x1064;
                        *(float*)&var←c57916.f1 = (
                           x1063 = (* (( (ptr) formal←c61148)+19) ),  *(float*)&x1063
                           ) + (
                           x1064 = v2←v38872.f1,  *(float*)&x1064
                           );
                        };
                     var←c57884 = var←c57916;
                     };
                  {
                     word pd1065;
                     pd1065 = (* (( (ptr) formal←c61148)+5) );
                     (void) ( *( (fPt) ((*  (ptr) pd1065 ))))(var←c57884, pd1065);
                     };
                  };
SOURCE(26429, 12)
               (* (( (ptr) formal←c61148)+14) ) = 0;
               };
SOURCE(26446, 70)
            lab←L100169: ;
            if (((* (( (ptr) formal←c61148)+20) ) != i←v23200)) {
               }
            else {
               goto lab←L100167;
               };
SOURCE(26462, 28)
            {
               word var←c57980;
               word c←v43284;
               word mod←v43316;
               mod←v43316 = (* (( (ptr) (* (( (ptr) formal←c61148)+4) ))+5) );
               {
                  word var←c0955;
SOURCE(2143, 38)
                  {
                     word idx1066;
                     c←v43284 = (
                        idx1066 = (word) ((* (( (ptr) formal←c61148)+20) ) + 1),
                        SGNCK(idx1066)
                        );
                     };
                  var←c0955 = c←v43284;
                  if ((var←c0955 >= mod←v43316)) {
SOURCE(2170, 11)
                     c←v43284 = (c←v43284 - mod←v43316);
                     };
SOURCE(2080, 101)
                  var←c57980 = c←v43284;
                  };
               (* (( (ptr) formal←c61148)+20) ) = var←c57980;
               };
SOURCE(26492, 24)
            {
               W2 var←c58012;
               {
                  W2 var←c58044;
                  W2 v2←v38824;
                  {
                     word idx1067;
                     word limit1068;
                     v2←v38824 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c61148)+4) ))+6))+(
                           idx1067 = (* (( (ptr) formal←c61148)+20) ),
                           limit1068 = (* (( (ptr) (* (( (ptr) formal←c61148)+4) ))+5) ),
                           BCK(idx1067, limit1068)
                           )) );
                     };
SOURCE(1675, 31)
                  {
                     word x1069;
                     word x1070;
                     *(float*)&var←c58044.f0 = (
                        x1069 = (* (( (ptr) formal←c61148)+18) ),  *(float*)&x1069
                        ) + (
                        x1070 = v2←v38824.f0,  *(float*)&x1070
                        );
                     };
                  {
                     word x1071;
                     word x1072;
                     *(float*)&var←c58044.f1 = (
                        x1071 = (* (( (ptr) formal←c61148)+19) ),  *(float*)&x1071
                        ) + (
                        x1072 = v2←v38824.f1,  *(float*)&x1072
                        );
                     };
                  var←c58012 = var←c58044;
                  };
               {
                  word pd1073;
                  pd1073 = (* (( (ptr) formal←c61148)+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd1073 ))))(var←c58012, pd1073);
                  };
               };
            goto lab←L100169;
            lab←L100167: ;
SOURCE(26527, 24)
            {
               W2 var←c58108;
               {
                  W2 var←c58140;
                  W2 v2←v38776;
                  {
                     word idx1074;
                     word limit1075;
                     v2←v38776 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c61148)+4) ))+6))+(
                           idx1074 = (* (( (ptr) formal←c61148)+20) ),
                           limit1075 = (* (( (ptr) (* (( (ptr) formal←c61148)+4) ))+5) ),
                           BCK(idx1074, limit1075)
                           )) );
                     };
SOURCE(1675, 31)
                  {
                     word x1076;
                     word x1077;
                     *(float*)&var←c58140.f0 = (
                        x1076 = p1←v38452.f0,  *(float*)&x1076
                        ) + (
                        x1077 = v2←v38776.f0,  *(float*)&x1077
                        );
                     };
                  {
                     word x1078;
                     word x1079;
                     *(float*)&var←c58140.f1 = (
                        x1078 = p1←v38452.f1,  *(float*)&x1078
                        ) + (
                        x1079 = v2←v38776.f1,  *(float*)&x1079
                        );
                     };
                  var←c58108 = var←c58140;
                  };
               {
                  word pd1080;
                  pd1080 = (* (( (ptr) formal←c61148)+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd1080 ))))(var←c58108, pd1080);
                  };
               };
            };
         };
      };
SOURCE(26556, 7)
   (*  (W2Pt) (( (ptr) formal←c61148)+18) ) = p1←v38452;
   }

static void Close←P6228(formal←c61180)
   word formal←c61180;
   {
   formal←c61180 = (formal←c61180 - 28);
   /* Close: */ 
SOURCE(26568, 227)
SOURCE(26584, 211)
   if ((0 != (* (( (ptr) formal←c61180)+13) ))) {
SOURCE(26602, 80)
      if ((0 != (* (( (ptr) formal←c61180)+14) ))) {
SOURCE(26617, 15)
         {
            word idx1081;
            (* (( (ptr) formal←c61180)+17) ) = (
               idx1081 = (word) ((* (( (ptr) (* (( (ptr) formal←c61180)+4) ))+5) ) - 1),
               SGNCK(idx1081)
               );
            };
SOURCE(26634, 6)
         (* (( (ptr) formal←c61180)+20) ) = 0;
SOURCE(26642, 25)
         {
            W2 var←c58204;
            {
               W2 var←c58236;
               W2 v2←v38728;
               {
                  word idx1082;
                  word limit1083;
                  v2←v38728 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c61180)+4) ))+6))+(
                        idx1082 = (* (( (ptr) formal←c61180)+20) ),
                        limit1083 = (* (( (ptr) (* (( (ptr) formal←c61180)+4) ))+5) ),
                        BCK(idx1082, limit1083)
                        )) );
                  };
SOURCE(1675, 31)
               {
                  word x1084;
                  word x1085;
                  *(float*)&var←c58236.f0 = (
                     x1084 = (* (( (ptr) formal←c61180)+18) ),  *(float*)&x1084
                     ) + (
                     x1085 = v2←v38728.f0,  *(float*)&x1085
                     );
                  };
               {
                  word x1086;
                  word x1087;
                  *(float*)&var←c58236.f1 = (
                     x1086 = (* (( (ptr) formal←c61180)+19) ),  *(float*)&x1086
                     ) + (
                     x1087 = v2←v38728.f1,  *(float*)&x1087
                     );
                  };
               var←c58204 = var←c58236;
               };
            {
               word pd1088;
               pd1088 = (* (( (ptr) formal←c61180)+5) );
               (void) ( *( (fPt) ((*  (ptr) pd1088 ))))(var←c58204, pd1088);
               };
            };
         }
      else {
SOURCE(26674, 8)
         (void) Line←P6168((*  (W2Pt) (( (ptr) formal←c61180)+15) ), (word) (( (bPt) formal←c61180)+36));
         };
SOURCE(26684, 71)
      lab←L100176: ;
      if (((* (( (ptr) formal←c61180)+20) ) != (* (( (ptr) formal←c61180)+17) ))) {
         }
      else {
         goto lab←L100174;
         };
SOURCE(26701, 28)
      {
         word var←c58300;
         word c←v43204;
         word mod←v43236;
         mod←v43236 = (* (( (ptr) (* (( (ptr) formal←c61180)+4) ))+5) );
         {
            word var←c0956;
SOURCE(2143, 38)
            {
               word idx1089;
               c←v43204 = (
                  idx1089 = (word) ((* (( (ptr) formal←c61180)+20) ) + 1),
                  SGNCK(idx1089)
                  );
               };
            var←c0956 = c←v43204;
            if ((var←c0956 >= mod←v43236)) {
SOURCE(2170, 11)
               c←v43204 = (c←v43204 - mod←v43236);
               };
SOURCE(2080, 101)
            var←c58300 = c←v43204;
            };
         (* (( (ptr) formal←c61180)+20) ) = var←c58300;
         };
SOURCE(26731, 24)
      {
         W2 var←c58332;
         {
            W2 var←c58364;
            W2 v2←v38680;
            {
               word idx1090;
               word limit1091;
               v2←v38680 = (* (( (W2Pt) (( (ptr) (* (( (ptr) formal←c61180)+4) ))+6))+(
                     idx1090 = (* (( (ptr) formal←c61180)+20) ),
                     limit1091 = (* (( (ptr) (* (( (ptr) formal←c61180)+4) ))+5) ),
                     BCK(idx1090, limit1091)
                     )) );
               };
SOURCE(1675, 31)
            {
               word x1092;
               word x1093;
               *(float*)&var←c58364.f0 = (
                  x1092 = (* (( (ptr) formal←c61180)+15) ),  *(float*)&x1092
                  ) + (
                  x1093 = v2←v38680.f0,  *(float*)&x1093
                  );
               };
            {
               word x1094;
               word x1095;
               *(float*)&var←c58364.f1 = (
                  x1094 = (* (( (ptr) formal←c61180)+16) ),  *(float*)&x1094
                  ) + (
                  x1095 = v2←v38680.f1,  *(float*)&x1095
                  );
               };
            var←c58332 = var←c58364;
            };
         {
            word pd1096;
            pd1096 = (* (( (ptr) formal←c61180)+6) );
            (void) ( *( (fPt) ((*  (ptr) pd1096 ))))(var←c58332, pd1096);
            };
         };
      goto lab←L100176;
      lab←L100174: ;
SOURCE(26766, 15)
      (* (( (ptr) formal←c61180)+13) ) = 0;
SOURCE(26783, 12)
      (* (( (ptr) formal←c61180)+14) ) = 0;
      };
   }

static void MapBitPath←P1800(byte←v10680, p0←v10708, v1←v10736, v2←v10764, formal←c01010, formal←c01011)
   word byte←v10680;
   W2 p0←v10708;
   W2 v1←v10736;
   W2 v2←v10764;
   word formal←c01010;
   word formal←c01011;
   {
   W9 var←c61212;
   /* declaration of moveTo←v10792 skipped */ 
   /* declaration of lineTo←v10820 skipped */ 
   /* declaration of var←c58428 skipped */ 
   /* declaration of swap←v23244 skipped */ 
   word k←v23300;
   word started←v23328 = 0;
   W2 start←v23356;
   W2 pi←v23384;
   (* (( (ptr) &var←c61212)+4)/* moveTo←v10792 */  ) = formal←c01010;
   (* (( (ptr) &var←c61212)+5)/* lineTo←v10820 */  ) = formal←c01011;
   /* MapBitPath: */ 
SOURCE(26906, 638)
   {
      word tmpAddr1097;
      tmpAddr1097 = (word) (( (ptr) &var←c61212)+6)/* var←c58428 */ ;
      (*  (ptr) tmpAddr1097 ) = ( ((word)  (fPt) Emit←P6336) );
      (* (( (ptr) tmpAddr1097) + 1) ) = 1;
      };
SOURCE(27026, 44)
   {
      word x1098;
      word x1099;
      word x1100;
      word x1101;
      word x1102;
      (* (( (ptr) &var←c61212)+8)/* swap←v23244 */  ) =  (unsigned) (((
         x1098 = v1←v10736.f0,  *(float*)&x1098
         ) * (
         x1099 = v2←v10764.f1,  *(float*)&x1099
         )) - ((
         x1100 = v1←v10736.f1,  *(float*)&x1100
         ) * (
         x1101 = v2←v10764.f0,  *(float*)&x1101
         )) < (
         x1102 = (*  (ptr) &fc34 ),  *(float*)&x1102
         ));
      };
SOURCE(27239, 18)
   k←v23300 = byte←v10680;
SOURCE(27294, 12)
   pi←v23384 = p0←v10708;
SOURCE(27308, 236)
   {
      register word i←v23544 = 0;
      lab←L100182: ;
SOURCE(27332, 175)
      if ((k←v23300 >= 128)) {
SOURCE(27351, 11)
         k←v23300 = (k←v23300 - 128);
SOURCE(27364, 49)
         if ((0 == started←v23328)) {
SOURCE(27386, 14)
            started←v23328 = 1;
SOURCE(27402, 11)
            start←v23356 = pi←v23384;
            };
         }
      else {
SOURCE(27425, 82)
         if ((0 != started←v23328)) {
SOURCE(27443, 31)
            {
               W2 var←c58460;
               {
                  word x1103;
                  word x1104;
                  *(float*)&var←c58460.f0 = (
                     x1103 = pi←v23384.f0,  *(float*)&x1103
                     ) - (
                     x1104 = start←v23356.f0,  *(float*)&x1104
                     );
                  };
               {
                  word x1105;
                  word x1106;
                  *(float*)&var←c58460.f1 = (
                     x1105 = pi←v23384.f1,  *(float*)&x1105
                     ) - (
                     x1106 = start←v23356.f1,  *(float*)&x1106
                     );
                  };
               (void) Emit←P6336(start←v23356, v1←v10736, var←c58460, (word) (( (bPt) &var←c61212)+24)/* var←c58428 */ );
               };
SOURCE(27476, 15)
            started←v23328 = 0;
SOURCE(27493, 14)
            if ((k←v23300 == 0)) {
SOURCE(27507, 4)
               goto lab←L100180;
               };
            };
         };
SOURCE(27519, 7)
      k←v23300 = ((word) k←v23300 << 1);
SOURCE(27528, 16)
      {
         word var←c58492;
         word var←c58524;
         {
            word x1107;
            word x1108;
            *(float*)&var←c58492 = (
               x1107 = pi←v23384.f0,  *(float*)&x1107
               ) + (
               x1108 = v2←v10764.f0,  *(float*)&x1108
               );
            };
         {
            word x1109;
            word x1110;
            *(float*)&var←c58524 = (
               x1109 = pi←v23384.f1,  *(float*)&x1109
               ) + (
               x1110 = v2←v10764.f1,  *(float*)&x1110
               );
            };
         pi←v23384.f0 = var←c58492;
         pi←v23384.f1 = var←c58524;
         };
      if ((i←v23544 >= 8)) {
         goto lab←L100179;
         };
      i←v23544 = (i←v23544 + 1);
      goto lab←L100182;
      lab←L100179: ;
      lab←L100180: ;
      };
   }

static void Emit←P6336(p0←v23460, v1←v23488, v2←v23516, formal←c61244)
   W2 p0←v23460;
   W2 v1←v23488;
   W2 v2←v23516;
   word formal←c61244;
   {
   formal←c61244 = (formal←c61244 - 24);
   /* Emit: */ 
SOURCE(27072, 162)
SOURCE(27105, 44)
   if ((0 != (* (( (ptr) formal←c61244)+8) ))) {
SOURCE(27118, 31)
      {
         W2 t←v23588;
SOURCE(27120, 11)
         t←v23588 = v1←v23488;
SOURCE(27133, 7)
         v1←v23488 = v2←v23516;
SOURCE(27142, 7)
         v2←v23516 = t←v23588;
         };
      };
SOURCE(27152, 10)
   {
      word pd1111;
      pd1111 = (* (( (ptr) formal←c61244)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd1111 ))))(p0←v23460, pd1111);
      };
SOURCE(27164, 19)
   {
      W2 var←c58556;
      {
         word x1112;
         word x1113;
         *(float*)&var←c58556.f0 = (
            x1112 = p0←v23460.f0,  *(float*)&x1112
            ) + (
            x1113 = v1←v23488.f0,  *(float*)&x1113
            );
         };
      {
         word x1114;
         word x1115;
         *(float*)&var←c58556.f1 = (
            x1114 = p0←v23460.f1,  *(float*)&x1114
            ) + (
            x1115 = v1←v23488.f1,  *(float*)&x1115
            );
         };
      {
         word pd1116;
         pd1116 = (* (( (ptr) formal←c61244)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd1116 ))))(var←c58556, pd1116);
         };
      };
SOURCE(27185, 28)
   {
      W2 var←c58588;
      {
         W2 v2←v38632;
         {
            word x1117;
            word x1118;
            *(float*)&v2←v38632.f0 = (
               x1117 = v1←v23488.f0,  *(float*)&x1117
               ) + (
               x1118 = v2←v23516.f0,  *(float*)&x1118
               );
            };
         {
            word x1119;
            word x1120;
            *(float*)&v2←v38632.f1 = (
               x1119 = v1←v23488.f1,  *(float*)&x1119
               ) + (
               x1120 = v2←v23516.f1,  *(float*)&x1120
               );
            };
SOURCE(1675, 31)
         {
            word x1121;
            word x1122;
            *(float*)&var←c58588.f0 = (
               x1121 = p0←v23460.f0,  *(float*)&x1121
               ) + (
               x1122 = v2←v38632.f0,  *(float*)&x1122
               );
            };
         {
            word x1123;
            word x1124;
            *(float*)&var←c58588.f1 = (
               x1123 = p0←v23460.f1,  *(float*)&x1123
               ) + (
               x1124 = v2←v38632.f1,  *(float*)&x1124
               );
            };
         };
      {
         word pd1125;
         pd1125 = (* (( (ptr) formal←c61244)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd1125 ))))(var←c58588, pd1125);
         };
      };
SOURCE(27215, 19)
   {
      W2 var←c58716;
      {
         word x1126;
         word x1127;
         *(float*)&var←c58716.f0 = (
            x1126 = p0←v23460.f0,  *(float*)&x1126
            ) + (
            x1127 = v2←v23516.f0,  *(float*)&x1127
            );
         };
      {
         word x1128;
         word x1129;
         *(float*)&var←c58716.f1 = (
            x1128 = p0←v23460.f1,  *(float*)&x1128
            ) + (
            x1129 = v2←v23516.f1,  *(float*)&x1129
            );
         };
      {
         word pd1130;
         pd1130 = (* (( (ptr) formal←c61244)+5) );
         (void) ( *( (fPt) ((*  (ptr) pd1130 ))))(var←c58716, pd1130);
         };
      };
   }

static void NoName←Q12636(formal←c0867, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0867;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0942 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0942)+77)/* var←c46204 */  ))+11) ))) {
      {
         word flags←v35544;
         word vp←v35572;
         word clientFixup←v35616;
         flags←v35544 = (*  (ptr) formal←c200007 );
         vp←v35572 = (* (( (ptr) formal←c200007)+1) );
         clientFixup←v35616 = 0;
SOURCE(13415, 14)
         (*  (ptr) formal←c0867 ) = 2;
         (* (( (ptr) formal←c0867)+1) ) = 3;
         return;
         };
      };
   (*  (ptr) formal←c0867 ) = 0;
   (* (( (ptr) formal←c0867)+1) ) = 0;
   return;
   }

static void NoName←Q12696(formal←c0875, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0875;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0943 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0943)+77)/* var←c46204 */  ))+11) ))) {
      {
         word flags←v35112;
         word vp←v35140;
         word clientFixup←v35184;
         flags←v35112 = (*  (ptr) formal←c200003 );
         vp←v35140 = (* (( (ptr) formal←c200003)+1) );
         clientFixup←v35184 = 0;
SOURCE(13005, 15)
         (*  (ptr) formal←c0875 ) = 2;
         (* (( (ptr) formal←c0875)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0875 ) = 0;
   (* (( (ptr) formal←c0875)+1) ) = 0;
   return;
   }

/* file: ImagerStrokeImpl, module: ImagerStrokeImpl, compiled at: November 1, 1993 12:06:53 pm PST */ 
extern void XR←install←ImagerStrokeImpl() {
   NoName←Q12456();
   }
extern void XR←run←ImagerStrokeImpl() { XR←Start(&globalframe); }