/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1994 by Xerox Corporation.  All rights reserved. */
/* time: March 9, 1994 11:51:54 am PST */
/* C2C version: January 12, 1994 (sun4) */
/* ref-counting: off */
/* file: ImagerSampleImpl, module: ImagerSampleImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITNOT(x) (~((word)(x)))
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITOR(x, y) (((word)(x)) | ((word)(y)))
#define XRM←BITXOR(x, y) (((word)(x)) ↑ ((word)(y)))
#define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y))
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
static char versionStamp[] = "@(#)mob←version [3449137387,837082302] ImagerSampleImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef W11 *W11Pt;
typedef struct {W8 f; W6 r;} W14;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W8 f; W7 r;} W15;
typedef struct {W16 f; W15 r;} W31;
typedef struct {W16 f; W2 r;} W18;
typedef W8 *W8Pt;
typedef struct {W8 f; W2 r;} W10;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef struct {W16 f; W16 r;} W32;
typedef struct {W32 f; W32 r;} W64;
typedef struct {W8 f; word r;} W9;
typedef struct {W8 f; W4 r;} W12;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#define INEG(x)  ( (word) ( - ((int) (word) (x)) ) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
static void NoName←Q20736();
static void ImagerSampleImpl←P0();
static word Lg←P240();
static word NewSamples←P720();
static word ObtainScratchSamples←P780();
static void ReleaseScratchSamples←P840();
static void DoWithScratchSamples←P900();
static word NoName←Q20796();
static word PointerToSamples←P1020();
static void FlipSamples←P1080();
static void FillSamples←P1140();
static void CopySamples←P1200();
static void ClearSamples←P1260();
static word UnsafeNewSampleMap←P1320();
static word BitsForSamples←P1380();
static word WordsForLines←P1440();
static word WordsForMap←P1500();
static word NewSampleMap←P1620();
static word NewObjectSampleMap←P1680();
static word Copy←P1740();
static word NewDescriptor←P1800();
static void ReleaseDescriptor←P1860();
static word ObtainScratchMap←P1920();
static word TryObtainScratch←P5496();
static void ReleaseScratchMap←P1980();
static void ClearScratchMaps←P2040();
static void DoWithScratchMap←P2100();
static word NoName←Q20856();
static void InPlaceClip←P2160();
static void InPlaceShift←P2340();
static word ObtainUnsafeDescriptor←P2400();
static void CheckBuffer←P2460();
static void ReIndexGetSamples←P2520();
static void ReIndexPutSamples←P2580();
static word ReIndex←P2640();
static word Clip←P2700();
static word Shift←P2760();
static word ZeroOrigin←P2820();
static void GetUnsafeBlock←P2880();
static word ApplyFunction←P2940();
static void ApplyToSamples←P3000();
static word Get←P3120();
static void Put←P3180();
static void GetSamples←P3240();
static void PutSamples←P3300();
static void Clear←P3360();
static void BufferTransfer←P3420();
static void transferAction←P8340();
static void BasicTransfer←P3480();
static void RawListTransfer←P3540();
static void Transfer←P3600();
static void TransferBoxes←P3660();
static void FastTransfer←P8976();
static void SlowTransfer←P9132();
static void Move←P3720();
static void BufferFill←P3780();
static void Fill←P3840();
static void FillBoxes←P3900();
static void FastFill←P10008();
static void SlowFill←P10164();
static void RegionFill←P3960();
static void edgeAction←P10224();
static word TileFromStipple←P4020();
static void DivMod←P4080();
static word Mod←P4140();
static void GeneralTile←P4260();
static void boxes←P10872();
static void GetTileSamples←P4320();
static void GeneralTileBoxes←P4380();
static void GeneralTile←P10932();
static void Tile←P4440();
static void boxes←P11088();
static void TileBoxes←P4500();
static void FastTile←P11292();
static void BoxesFromBitmap←P4560();
static void Halftone←P4620();
static word Zeros←P4680();
static word Equal←P4740();
static void BandAction←P12048();
static word IsAll←P4800();
static void BandAction←P12252();
static void Trim←P4860();
static void BandAction←P12360();
static void NoName←Q20916();
static void NoName←Q20976();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\315\225\250\353\300\061\344\334\276\103\324\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\003\002\000"};
static struct {unsigned f; char r[16];} string5 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\315\225\250\353\300\061\344\334\276\102\234\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\023\276\127\215\300\151\061\365\150\100\164\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\164\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\101\034\000\000"};
static struct {unsigned f; char r[12];} string10 = {655370, "\007\100\300\040\002\003\012\004\101\200\000"};
static struct {unsigned f; char r[8];} string11 = {262152, "true\000\000\000"};
static struct {unsigned f; char r[28];} string12 = {1703964, "Use CharBlt for characters\000"};
static struct {unsigned f; char r[8];} string13 = {458760, "charblt"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\315\225\250\353\300\061\344\334\276\100\164\000\000"};
static struct {unsigned f; char r[24];} string15 = {1376277, "\006\004\044\004\117\377\100\130\004\200\177\377\100\224\004\103\377\101\000\004\007\000\000"};
static struct {unsigned f; char r[12];} string16 = {720908, "\257\300/\002\345\247\245\243T@h"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\207\330\332\257\300\255\011\025\200\100\150\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\277\374\326\303\300\302\136\022\175\100\150\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[32];} string22 = {1966112, "\211\022\021\123\141\155\160\154\145\115\141\160\103\154\141\163\163\122\145\160\300\213\226\301\143\300\072\355\320\373\000"};
static struct {
   word f0[68]; word f68; word f69; word f70; 
   word f71; word f72; word f73; word f74; 
   word f75; word f76; word f77; word f78; 
   word f79; word f80; word f81; word f82; 
   word f83; word f84; word f85; word f86; 
   word f87; word f88; word f89; word f90; 
   word f91; word f92; word f93; word f94; 
   word f95; word f96; word f97; word f98; 
   word f99; word f100; word f101; word f102; 
   word f103; word f104; word f105; word f106; 
   word f107; word f108; word f109; word f110; 
   word f111; word f112; word f113; word f114; 
   word f115; word f116; word f117; word f118; 
   word f119; word f120; word f121; word f122; 
   word f123; word f124; word f125; word f126; 
   word f127; word f128; word f129; word f130; 
   word f131; word f132; word f133; word f134; 
   word f135; word f136; word f137; word f138; 
   word f139; word f140; word f141; word f142; 
   word f143; word f144; word f145; word f146; 
   word f147; word f148; word f149; word f150; 
   word f151; word f152; word f153; word f154; 
   word f155; word f156; word f157; word f158; 
   word f159; word f160; word f161; word f162; 
   word f163; word f164; word f165; word f166; 
   word f167; word f168; word f169; word f170; 
   word f171; word f172; word f173; word f174; 
   word f175; word f176; word f177; word f178; 
   word f179; word f180; word f181; word f182; 
   word f183; word f184; word f185; word f186; 
   word f187; word f188; word f189; word f190; 
   word f191; word f192; word f193; word f194; 
   word f195; word f196; word f197; word f198; 
   word f199[2]; word f201; word f202; word f203; 
   word f204; word f205; word f206; word f207; 
   word f208; word f209; word f210; word f211; 
   word f212; word f213; word f214; word f215; 
   word f216; word f217; word f218; word f219[2]; 
   word f221; word f222; word f223[6]; 
   } globalframe = {
   {0}, (word) Trim←P4860, 0, (word) IsAll←P4800, 
   0, (word) Equal←P4740, 0, (word) Zeros←P4680, 
   0, (word) Halftone←P4620, 0, (word) BoxesFromBitmap←P4560, 
   0, (word) TileBoxes←P4500, 0, (word) Tile←P4440, 
   0, (word) GeneralTileBoxes←P4380, 0, (word) GetTileSamples←P4320, 
   0, (word) GeneralTile←P4260, 0, (word) Mod←P4140, 
   0, (word) DivMod←P4080, 0, (word) TileFromStipple←P4020, 
   0, (word) RegionFill←P3960, 0, (word) FillBoxes←P3900, 
   0, (word) Fill←P3840, 0, (word) BufferFill←P3780, 
   0, (word) Move←P3720, 0, (word) TransferBoxes←P3660, 
   0, (word) Transfer←P3600, 0, (word) RawListTransfer←P3540, 
   0, (word) BasicTransfer←P3480, 0, (word) BufferTransfer←P3420, 
   0, (word) Clear←P3360, 0, (word) PutSamples←P3300, 
   0, (word) GetSamples←P3240, 0, (word) Put←P3180, 
   0, (word) Get←P3120, 0, (word) ApplyToSamples←P3000, 
   0, (word) ApplyFunction←P2940, 0, (word) GetUnsafeBlock←P2880, 
   0, (word) ZeroOrigin←P2820, 0, (word) Shift←P2760, 
   0, (word) Clip←P2700, 0, (word) ReIndex←P2640, 
   0, (word) ReIndexPutSamples←P2580, 0, (word) ReIndexGetSamples←P2520, 
   0, (word) CheckBuffer←P2460, 0, (word) ObtainUnsafeDescriptor←P2400, 
   0, (word) InPlaceShift←P2340, 0, (word) InPlaceClip←P2160, 
   0, (word) DoWithScratchMap←P2100, 0, (word) ClearScratchMaps←P2040, 
   0, (word) ReleaseScratchMap←P1980, 0, (word) ObtainScratchMap←P1920, 
   0, (word) ReleaseDescriptor←P1860, 0, (word) NewDescriptor←P1800, 
   0, (word) Copy←P1740, 0, (word) NewObjectSampleMap←P1680, 
   0, (word) NewSampleMap←P1620, 0, (word) WordsForMap←P1500, 
   0, (word) WordsForLines←P1440, 0, (word) BitsForSamples←P1380, 
   0, (word) UnsafeNewSampleMap←P1320, 0, (word) ClearSamples←P1260, 
   0, (word) CopySamples←P1200, 0, (word) FillSamples←P1140, 
   0, (word) FlipSamples←P1080, 0, (word) PointerToSamples←P1020, 
   0, (word) DoWithScratchSamples←P900, 0, (word) ReleaseScratchSamples←P840, 
   0, (word) ObtainScratchSamples←P780, 0, (word) NewSamples←P720, 
   0, (word) Lg←P240, 0, (word) ImagerSampleImpl←P0, 
   {0}, (word) 33751811, (word) 50594820, (word) 67372036, 
   (word) 67437829, (word) 84215045, (word) 84215045, (word) 84215045, 
   0, (word) 2147483648, (word) 2147483648, (word) 2147483647, 
   (word) 2147483647, (word) 4294967295, (word) 1431655765, (word) 286331153, 
   (word) 16843009, (word) 65537, (word) 1, {0}, 
   (word) 4, (word) 4, {0}
   };

static void NoName←Q20736()
   {
   register ptr gf←c01259 =  (ptr) &globalframe;
   word var←c80540;
   (* (( (ptr) gf←c01259)+49) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c01259)+50) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c01259)+53) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string2);
   (* (( (ptr) gf←c01259)+55) ) = (word) XR←GetTypeIndexS((word) (&string6));
   (* (( (ptr) gf←c01259)+56) ) = (word) XR←GetTypeIndexS((word) (&string7));
   (* (( (ptr) gf←c01259)+61) ) = (word) XR←GetTypeIndexS((word) (&string8));
   (* (( (ptr) gf←c01259)+62) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (*  (ptr) (( (bPt) gf←c01259)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01259)+49) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c01259)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01259)+53) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c01259)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01259)+49) ), (word) &string13);
   (void) XR←DeclareGlobalFrame((word) "ImagerSampleImpl", &globalframe, (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15)
      , (word) (( (bPt) gf←c01259)+792)/* var←c66268 */ );
   var←c80540 = (word) XR←ImportInterface((word) "ImagerSwitches", (word) XR←GetTypeIndexS((word) (&string16)), 8);
   (* (( (ptr) gf←c01259)+223)/* var←c66556 */  ) = var←c80540;
   (void) XR←ImportProcS(var←c80540, 68157444);
   var←c80540 = (word) XR←ImportInterface((word) "RasterOp", (word) XR←GetTypeIndexS((word) (&string17)), 8);
   (* (( (ptr) gf←c01259)+226)/* var←c70076 */  ) = var←c80540;
   (void) XR←ImportProcS(var←c80540, 1574662);
   (void) XR←ImportProcS(var←c80540, 1574406);
   (void) XR←ImportProcS(var←c80540, 1310724);
   (void) XR←ImportProcS(var←c80540, 1310980);
   var←c80540 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string18)), 27);
   (* (( (ptr) gf←c01259)+227)/* var←c70300 */  ) = var←c80540;
   var←c80540 = (word) XR←ImportInterface((word) "SafeStorage", (word) XR←GetTypeIndexS((word) (&string19)), 27);
   (* (( (ptr) gf←c01259)+224)/* var←c66588 */  ) = var←c80540;
   (void) XR←ImportProcS(var←c80540, 67109376);
   var←c80540 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string20)), 19);
   (* (( (ptr) gf←c01259)+225)/* var←c67164 */  ) = var←c80540;
   (void) XR←ImportProcS(var←c80540, 270535426);
   (void) XR←ImportProcS(var←c80540, 135270145);
   var←c80540 = (word) XR←ExportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string21)), 60);
   (* (( (ptr) gf←c01259)+228)/* var←c80572 */  ) = var←c80540;
   (void) XR←ExportVar(var←c80540, 0, (word) (( (bPt) gf←c01259)+268)/* var←c64156 */ );
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+776)/* var←c66204 */ , 67633410, (word) "NewSamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+768)/* var←c66172 */ , 67371521, (word) "ObtainScratchSamples")
   ;
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+760)/* var←c66140 */ , 262913, (word) "ReleaseScratchSamples")
   ;
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+752)/* var←c66108 */ , 525314, (word) "DoWithScratchSamples")
   ;
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+744)/* var←c66076 */ , 67896579, (word) "PointerToSamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+736)/* var←c66044 */ , 787971, (word) "FlipSamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+728)/* var←c66012 */ , 1050372, (word) "FillSamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+720)/* var←c65980 */ , 1312773, (word) "CopySamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+712)/* var←c65948 */ , 788739, (word) "ClearSamples");
   (void) XR←ExportType((word) "SampleMapClassRep", (word) XR←GetTypeIndexS((word) (&string22)), (word) XR←GetTypeIndexS((word) (&string7))
      );
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+704)/* var←c65916 */ , 69995271, (word) "UnsafeNewSampleMap")
   ;
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+696)/* var←c65884 */ , 67636226, (word) "BitsForSamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+688)/* var←c65852 */ , 67636482, (word) "WordsForLines");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+680)/* var←c65820 */ , 68161027, (word) "WordsForMap");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+672)/* var←c65788 */ , 68685571, (word) "NewSampleMap");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+664)/* var←c65756 */ , 69210117, (word) "NewObjectSampleMap")
   ;
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+656)/* var←c65724 */ , 68948227, (word) "Copy");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+632)/* var←c65628 */ , 68686339, (word) "ObtainScratchMap");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+624)/* var←c65596 */ , 267009, (word) "ReleaseScratchMap");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+608)/* var←c65532 */ , 1577987, (word) "DoWithScratchMap");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+584)/* var←c65436 */ , 70259976, (word) "ObtainUnsafeDescriptor")
   ;
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+552)/* var←c65308 */ , 68949507, (word) "ReIndex");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+544)/* var←c65276 */ , 68425474, (word) "Clip");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+536)/* var←c65244 */ , 67901442, (word) "Shift");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+528)/* var←c65212 */ , 67377409, (word) "ZeroOrigin");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+640)/* var←c65660 */ , 268801, (word) "ReleaseDescriptor");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+520)/* var←c65180 */ , 201597441, (word) "GetUnsafeBlock");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+512)/* var←c65148 */ , 67904771, (word) "ApplyFunction");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+496)/* var←c65084 */ , 67905026, (word) "Get");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+488)/* var←c65052 */ , 1320708, (word) "Put");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+480)/* var←c65020 */ , 2107398, (word) "GetSamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+344)/* var←c64476 */ , 1321220, (word) "GetTileSamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+304)/* var←c64316 */ , 1583621, (word) "Halftone");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+472)/* var←c64988 */ , 2370311, (word) "PutSamples");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+464)/* var←c64956 */ , 273409, (word) "Clear");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+448)/* var←c64892 */ , 2370822, (word) "BasicTransfer");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+432)/* var←c64828 */ , 1322500, (word) "Transfer");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+416)/* var←c64764 */ , 2109189, (word) "Move");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+400)/* var←c64700 */ , 1847300, (word) "Fill");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+440)/* var←c64860 */ , 798979, (word) "RawListTransfer");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+376)/* var←c64604 */ , 68432389, (word) "TileFromStipple");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+328)/* var←c64412 */ , 2110213, (word) "Tile");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+320)/* var←c64380 */ , 1324037, (word) "TileBoxes");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+424)/* var←c64796 */ , 1586437, (word) "TransferBoxes");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+392)/* var←c64668 */ , 1062404, (word) "FillBoxes");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+384)/* var←c64636 */ , 1062660, (word) "RegionFill");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+312)/* var←c64348 */ , 538626, (word) "BoxesFromBitmap");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+272)/* var←c64188 */ , 270022915, (word) "Trim");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+280)/* var←c64220 */ , 68696579, (word) "IsAll");
   (void) XR←ExportProcS(var←c80540, (word) (( (bPt) gf←c01259)+288)/* var←c64252 */ , 67648258, (word) "Equal");
   }

static void ImagerSampleImpl←P0(formal←c090, formal←c089)
   word formal←c090;
   word formal←c089;
   {
   register ptr gf←c80604 =  (ptr) &globalframe;
   /* ImagerSampleImpl: */ 
SOURCE(900, 56336)
   (* (( (hPt) gf←c80604)+401) ) = 258;
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   (* (( (bPt) gf←c80604)+832) ) = 5;
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
SOURCE(1076, 99)
   {
      word pd23;
      pd23 = (* (( (ptr) (* (( (ptr) gf←c80604)+223)/* var←c66556 */  ))+4) );
      (* (( (ptr) gf←c80604)+8)/* useCharBlt←v2916 */  ) = (word) ( *( (fPt) ((*  (ptr) pd23 ))))(2, (* (( (ptr) gf←c80604)+66)
          ), (* (( (ptr) gf←c80604)+65) ), (* (( (ptr) gf←c80604)+64) ), pd23);
      };
SOURCE(42447, 29)
   (* (( (ptr) gf←c80604)+47)/* tileFromStippleRepl←v5464 */  ) = 32;
SOURCE(46481, 21)
   (* (( (ptr) gf←c80604)+48)/* smallWidth←v5744 */  ) = 256;
   }

static word Lg←P240(a←v6404)
   word a←v6404;
   {
   register ptr gf←c80636 =  (ptr) &globalframe;
   word lg←v6448;
   /* Lg: */ 
SOURCE(2037, 119)
SOURCE(2037, 119)
   lg←v6448 = 0;
SOURCE(2081, 44)
   lab←L100002: ;
   if ((a←v6404 > 32)) {
      }
   else {
      goto lab←L100000;
      };
SOURCE(2097, 15)
   a←v6404 = ((word) (a←v6404 + 31) >> 5);
SOURCE(2114, 11)
   lg←v6448 = (lg←v6448 + 5);
   goto lab←L100002;
   lab←L100000: ;
SOURCE(2136, 20)
   {
      word idx24;
      lg←v6448 = (
         idx24 = (word) (lg←v6448 +  (unsigned) (word) (* ((( (bPt) gf←c80636)+800)/* var←c66332 */ +BCK(a←v6404, 33)) )),
         SGNCK(idx24)
         );
      };
SOURCE(2037, 119)
   return(lg←v6448);
   }

static word NewSamples←P720(length←v7408, scratch←v7436)
   word length←v7408;
   word scratch←v7436;
   {
   register ptr gf←c80668 =  (ptr) &globalframe;
   word var←c7480;
   word new←v18376;
   /* NewSamples: */ 
SOURCE(3388, 275)
SOURCE(3482, 27)
   new←v18376 = scratch←v7436;
SOURCE(3511, 116)
   if ((new←v18376 == 0) || ((* (( (ptr) new←v18376)+1) ) < length←v7408)) {
SOURCE(3559, 68)
SOURCE(3561, 64)
      {
         word var←c66620;
         word var←c66652;
         word var←c66716;
         var←c66620 = BCK(length←v7408, 67108863);
         var←c66652 = ((word) var←c66620 << 2);
         {
            word var←c66684;
            {
               word pd25;
               pd25 = (* (( (ptr) (* (( (ptr) gf←c80668)+224)/* var←c66588 */  ))+6) );
               var←c66684 = (word) ( *( (fPt) ((*  (ptr) pd25 ))))(pd25);
               };
            {
               word pd26;
               pd26 = (*  (ptr) var←c66684 );
               var←c66716 = (word) ( *( (fPt) ((*  (ptr) pd26 ))))(var←c66684, (8 + var←c66652), (* (( (ptr) gf←c80668)+61) ), pd26);
               };
            };
         (* (( (ptr) var←c66716)+1) ) = var←c66620;
         new←v18376 = var←c66716;
         };
      };
SOURCE(3630, 19)
   (*  (ptr) new←v18376 ) = length←v7408;
SOURCE(3651, 12)
   return(new←v18376);
   }

static word ObtainScratchSamples←P780(length←v7576)
   word length←v7576;
   {
   register ptr gf←c80700 =  (ptr) &globalframe;
   word var←c7620;
   word buf←v18420 = 0;
   /* ObtainScratchSamples: */ 
SOURCE(3786, 419)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c80700)+16)/* LOCK←v2888 */ ));
SOURCE(3892, 187)
   {
      register word i←v18464 = 0;
      lab←L100006: ;
SOURCE(3936, 29)
      buf←v18420 = (* ((( (ptr) gf←c80700)+9)/* scratchSampleBuffers←v3700 */ +BCK(i←v18464, 12)) );
SOURCE(3967, 112)
      if ( ( (buf←v18420 != 0) ? ((* (( (ptr) buf←v18420)+1) ) >= length←v7576) : 0 ) ) {
SOURCE(4015, 29)
         (* ((( (ptr) gf←c80700)+9)/* scratchSampleBuffers←v3700 */ +BCK(i←v18464, 12)) ) = 0;
SOURCE(4046, 19)
         (*  (ptr) buf←v18420 ) = length←v7576;
SOURCE(4067, 12)
         (void) (XR←MonitorExit((word) (( (bPt) gf←c80700)+16)/* LOCK←v2888 */ ));
         return(buf←v18420);
         };
      if ((i←v18464 >= 11)) {
         goto lab←L100003;
         };
      i←v18464 = (i←v18464 + 1);
      goto lab←L100006;
      lab←L100003: ;
      };
SOURCE(4101, 67)
SOURCE(4103, 65)
   {
      word var←c66748;
      word var←c66780;
      word var←c66844;
      var←c66748 = BCK(length←v7576, 67108863);
      var←c66780 = ((word) var←c66748 << 2);
      {
         word var←c66812;
         {
            word pd27;
            pd27 = (* (( (ptr) (* (( (ptr) gf←c80700)+224)/* var←c66588 */  ))+6) );
            var←c66812 = (word) ( *( (fPt) ((*  (ptr) pd27 ))))(pd27);
            };
         {
            word pd28;
            pd28 = (*  (ptr) var←c66812 );
            var←c66844 = (word) ( *( (fPt) ((*  (ptr) pd28 ))))(var←c66812, (8 + var←c66780), (* (( (ptr) gf←c80700)+61) ), pd28);
            };
         };
      (* (( (ptr) var←c66844)+1) ) = var←c66748;
      buf←v18420 = var←c66844;
      };
SOURCE(4171, 19)
   (*  (ptr) buf←v18420 ) = length←v7576;
SOURCE(4192, 13)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c80700)+16)/* LOCK←v2888 */ ));
   return(buf←v18420);
   }

static void ReleaseScratchSamples←P840(buffer←v7680)
   word buffer←v7680;
   {
   register ptr gf←c80732 =  (ptr) &globalframe;
   word var←c66876;
   word slot←v18508 = 0;
   /* ReleaseScratchSamples: */ 
SOURCE(4209, 326)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c80732)+16)/* LOCK←v2888 */ ));
SOURCE(4292, 17)
   (*  (ptr) buffer←v7680 ) = 0;
SOURCE(4311, 178)
   {
      register word i←v18552 = 0;
      lab←L100010: ;
      {
         word t←v18596;
SOURCE(4355, 41)
         t←v18596 = (* ((( (ptr) gf←c80732)+9)/* scratchSampleBuffers←v3700 */ +BCK(i←v18552, 12)) );
SOURCE(4398, 91)
         if ((t←v18596 == 0)) {
SOURCE(4414, 14)
            slot←v18508 = i←v18552;
            }
         else {
SOURCE(4428, 61)
            if ((buffer←v7680 == t←v18596)) {
SOURCE(4447, 42)
               var←c66876 = (word) (( (bPt) gf←c80732)+268)/* var←c64156 */ ;
               (void) (XR←MonitorExit((word) (( (bPt) gf←c80732)+16)/* LOCK←v2888 */ ));
               goto lab←L100011;
               };
            };
         };
      if ((i←v18552 >= 11)) {
         goto lab←L100007;
         };
      i←v18552 = (i←v18552 + 1);
      goto lab←L100010;
      lab←L100007: ;
      };
SOURCE(4500, 35)
   (* ((( (ptr) gf←c80732)+9)/* scratchSampleBuffers←v3700 */ +BCK(slot←v18508, 12)) ) = buffer←v7680;
SOURCE(4209, 326)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c80732)+16)/* LOCK←v2888 */ ));
   return;
   /* c2c skipped dead code */ 
   lab←L100011: ;
SOURCE(4447, 42)
   (void) XR←RaiseError(var←c66876, 0);
   }

static void DoWithScratchSamples←P900(length←v7740, formal←c01359)
   word length←v7740;
   word formal←c01359;
   {
   W6 var←c80764;
   /* declaration of action←v7768 skipped */ 
   /* declaration of scratch←v18640 skipped */ 
   var←c80764.f4/* action←v7768 */  = formal←c01359;
   /* DoWithScratchSamples: */ 
SOURCE(4541, 225)
SOURCE(4622, 52)
   var←c80764.f5/* scratch←v18640 */  = (word) ObtainScratchSamples←P780(length←v7740);
SOURCE(4676, 58)
   {
      word var←c01315;
      var←c01315 = (word) &var←c80764;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q20796) ), ( ((word)  (fPt) NoName←Q20976) ), var←c01315);
      };
SOURCE(4736, 30)
   (void) ReleaseScratchSamples←P840(var←c80764.f5/* scratch←v18640 */ );
   }

static word NoName←Q20796(formal←c01265)
   word formal←c01265;
   {
SOURCE(4676, 58)
   {
      word pd29;
      pd29 = (* (( (ptr) formal←c01265)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd29 ))))((* ((( (ptr) formal←c01265)+5)) ), pd29);
      };
   return(0);
   }

static word PointerToSamples←P1020(buffer←v8048, start←v8076, count←v8104)
   word buffer←v8048;
   word start←v8076;
   word count←v8104;
   {
   word var←c8148;
   /* PointerToSamples: */ 
SOURCE(5013, 160)
SOURCE(5119, 54)
   {
      word var←c66940;
      word check←v18684;
      check←v18684 = (((* (( (ptr) buffer←v8048)+1) ) - start←v8076) - count←v8104);
SOURCE(4940, 67)
      var←c66940 = (buffer←v8048 + ((word) ((word) (((word) BCK(start←v8076, 67108861) << 5) + 95) >> 5) << 2));
      return(var←c66940);
      };
   }

static void FlipSamples←P1080(buffer←v8208, start←v8236, count←v8264)
   word buffer←v8208;
   word start←v8236;
   word count←v8264;
   {
   word size←v18724;
   /* FlipSamples: */ 
SOURCE(5177, 342)
SOURCE(5248, 43)
   {
      word x30;
      size←v18724 = (x30 = ((*  (ptr) buffer←v8208 ) - start←v8236),
         MIN((int)(word), x30, count←v8264));
      };
SOURCE(5293, 226)
   if ((size←v18724 > 0)) {
SOURCE(5318, 212)
      {
         word pointer←v18768;
         word last←v18796;
SOURCE(5320, 68)
         {
            word check←v59924;
            check←v59924 = (((* (( (ptr) buffer←v8208)+1) ) - start←v8236) - size←v18724);
SOURCE(4940, 67)
            pointer←v18768 = (buffer←v8208 + ((word) ((word) (((word) BCK(start←v8236, 67108861) << 5) + 95) >> 5) << 2));
            };
SOURCE(5390, 18)
         last←v18796 = SGNCK((size←v18724 - 1));
SOURCE(5410, 109)
         {
            register word j←v18840 = 0;
            register word noName←c67004;
            noName←c67004 = ((word) size←v18724 >> 1);
            if ((j←v18840 >= noName←c67004)) {
               goto lab←L100017;
               };
            lab←L100020: ;
            {
               word k←v18884;
               word t←v18912;
SOURCE(5439, 15)
               k←v18884 = (last←v18796 - j←v18840);
SOURCE(5456, 22)
               t←v18912 = (* (( (ptr) pointer←v18768)+j←v18840) );
SOURCE(5480, 23)
               (* (( (ptr) pointer←v18768)+j←v18840) ) = (* (( (ptr) pointer←v18768)+k←v18884) );
SOURCE(5505, 14)
               (* (( (ptr) pointer←v18768)+k←v18884) ) = t←v18912;
               };
            j←v18840 = (j←v18840 + 1);
            if ((j←v18840 < noName←c67004)) {
               goto lab←L100020;
               };
            lab←L100017: ;
            };
         };
      };
   }

static void FillSamples←P1140(buffer←v8324, value←v8352, start←v8380, count←v8408)
   word buffer←v8324;
   word value←v8352;
   word start←v8380;
   word count←v8408;
   {
   word size←v18956;
   /* FillSamples: */ 
SOURCE(5537, 285)
SOURCE(5623, 43)
   {
      word x31;
      size←v18956 = (x31 = ((*  (ptr) buffer←v8324 ) - start←v8380),
         MIN((int)(word), x31, count←v8408));
      };
SOURCE(5668, 154)
   if ((size←v18956 > 0)) {
SOURCE(5693, 131)
      {
         word pointer←v19000;
SOURCE(5695, 68)
         {
            word check←v59880;
            check←v59880 = (((* (( (ptr) buffer←v8324)+1) ) - start←v8380) - size←v18956);
SOURCE(4940, 67)
            pointer←v19000 = (buffer←v8324 + ((word) ((word) (((word) BCK(start←v8380, 67108861) << 5) + 95) >> 5) << 2));
            };
SOURCE(5765, 57)
         (void) Basics←FillWords(pointer←v19000, size←v18956, value←v8352);
         };
      };
   }

static void CopySamples←P1200(dst←v8468, src←v8496, dstStart←v8524, srcStart←v8552, count←v8580)
   word dst←v8468;
   word src←v8496;
   word dstStart←v8524;
   word srcStart←v8552;
   word count←v8580;
   {
   word size←v19044;
   /* CopySamples: */ 
SOURCE(5831, 745)
SOURCE(5917, 74)
   {
      word x32;
      word x33;
      word x34;
      size←v19044 = (x32 = ((*  (ptr) dst←v8468 ) - dstStart←v8524),
         x33 = ((*  (ptr) src←v8496 ) - srcStart←v8552),
         x34 = MIN((int)(word), x32, x33),
         MIN((int)(word), x34, count←v8580));
      };
SOURCE(5993, 583)
   if ((size←v19044 > 0)) {
SOURCE(6018, 566)
      {
         word dstPointer←v19088;
         word srcPointer←v19116;
         word rem←v19144;
SOURCE(6020, 71)
         {
            word check←v59836;
            check←v59836 = (((* (( (ptr) dst←v8468)+1) ) - dstStart←v8524) - size←v19044);
SOURCE(4940, 67)
            dstPointer←v19088 = (dst←v8468 + ((word) ((word) (((word) BCK(dstStart←v8524, 67108861) << 5) + 95) >> 5) << 2));
            };
SOURCE(6093, 71)
         {
            word check←v59792;
            check←v59792 = (((* (( (ptr) src←v8496)+1) ) - srcStart←v8552) - size←v19044);
SOURCE(4940, 67)
            srcPointer←v19116 = (src←v8496 + ((word) ((word) (((word) BCK(srcStart←v8552, 67108861) << 5) + 95) >> 5) << 2));
            };
SOURCE(6166, 19)
         rem←v19144 = size←v19044;
SOURCE(6187, 235)
         lab←L100026: ;
         if (( (int)rem←v19144 >=  (int)4)) {
            }
         else {
            goto lab←L100024;
            };
SOURCE(6205, 29)
         (*  (ptr) dstPointer←v19088 ) = (*  (ptr) srcPointer←v19116 );
SOURCE(6236, 29)
         (* (( (ptr) dstPointer←v19088)+1) ) = (* (( (ptr) srcPointer←v19116)+1) );
SOURCE(6267, 29)
         (* (( (ptr) dstPointer←v19088)+2) ) = (* (( (ptr) srcPointer←v19116)+2) );
SOURCE(6298, 29)
         (* (( (ptr) dstPointer←v19088)+3) ) = (* (( (ptr) srcPointer←v19116)+3) );
SOURCE(6329, 38)
         dstPointer←v19088 = (dstPointer←v19088 + 16);
SOURCE(6369, 38)
         srcPointer←v19116 = (srcPointer←v19116 + 16);
SOURCE(6409, 13)
         rem←v19144 = (rem←v19144 - 4);
         goto lab←L100026;
         lab←L100024: ;
SOURCE(6433, 143)
         if (( (int)rem←v19144 >  (int)0)) {
SOURCE(6451, 29)
            (*  (ptr) dstPointer←v19088 ) = (*  (ptr) srcPointer←v19116 );
SOURCE(6482, 94)
            if (( (int)rem←v19144 >  (int)1)) {
SOURCE(6500, 29)
               (* (( (ptr) dstPointer←v19088)+1) ) = (* (( (ptr) srcPointer←v19116)+1) );
SOURCE(6531, 45)
               if (( (int)rem←v19144 >  (int)2)) {
SOURCE(6547, 29)
                  (* (( (ptr) dstPointer←v19088)+2) ) = (* (( (ptr) srcPointer←v19116)+2) );
                  };
               };
            };
         };
      };
   }

static void ClearSamples←P1260(buffer←v8640, start←v8668, count←v8696)
   word buffer←v8640;
   word start←v8668;
   word count←v8696;
   {
   word size←v19188;
   /* ClearSamples: */ 
SOURCE(6591, 267)
SOURCE(6663, 43)
   {
      word x35;
      size←v19188 = (x35 = ((*  (ptr) buffer←v8640 ) - start←v8668),
         MIN((int)(word), x35, count←v8696));
      };
SOURCE(6708, 150)
   if ((size←v19188 > 0)) {
SOURCE(6733, 127)
      {
         word pointer←v19232;
SOURCE(6735, 68)
         {
            word check←v59748;
            check←v59748 = (((* (( (ptr) buffer←v8640)+1) ) - start←v8668) - size←v19188);
SOURCE(4940, 67)
            pointer←v19232 = (buffer←v8640 + ((word) ((word) (((word) BCK(start←v8668, 67108861) << 5) + 95) >> 5) << 2));
            };
SOURCE(6805, 53)
         (void) Basics←FillWords(pointer←v19232, size←v19188, 0);
         };
      };
   }

static word UnsafeNewSampleMap←P1320(box←v8756, bitsPerSample←v8784, bitsPerLine←v8812, base←v8840, ref←v8868, words←v8896, scratchDescriptor←v8924)
   W4 box←v8756;
   word bitsPerSample←v8784;
   word bitsPerLine←v8812;
   W2 base←v8840;
   word ref←v8868;
   word words←v8896;
   word scratchDescriptor←v8924;
   {
   register ptr gf←c80796 =  (ptr) &globalframe;
   word var←c8984;
   W2 size←v19276;
   word bpl←v19304;
   word dataBitsPerLine←v19332;
   word fillBits←v19360;
   word totalBits←v19388;
   word totalWords←v19416;
   word spareWords←v19444;
   word s←v19472 = 0;
   /* UnsafeNewSampleMap: */ 
SOURCE(6867, 851)
SOURCE(7071, 24)
   {
      word pd36;
      pd36 = (* (( (ptr) (* (( (ptr) gf←c80796)+225)/* var←c67164 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd36 ))))((word) &size←v19276, box←v8756, pd36);
      };
SOURCE(7097, 23)
   bpl←v19304 = SGNCK(bitsPerLine←v8812);
SOURCE(7122, 55)
   {
      word idx37;
      dataBitsPerLine←v19332 = ((
         idx37 = (word) size←v19276.f1,
         SGNCK(idx37)
         ) * bitsPerSample←v8784);
      };
SOURCE(7179, 54)
   fillBits←v19360 = (bitsPerLine←v8812 - SGNCK(dataBitsPerLine←v19332));
SOURCE(7267, 53)
   {
      word idx38;
      totalBits←v19388 = ((((
         idx38 = (word) size←v19276.f0,
         SGNCK(idx38)
         ) * bpl←v19304) + base←v8840.f1) - fillBits←v19360);
      };
SOURCE(7322, 42)
   totalWords←v19416 = ((word) (totalBits←v19388 + 31) >> 5);
SOURCE(7366, 59)
   {
      word value←v64108;
      value←v64108 = (words←v8896 - SGNCK(totalWords←v19416));
      spareWords←v19444 = SGNCK(value←v64108);
      };
SOURCE(7479, 102)
   {
      word var←c67228;
      var←c67228 = scratchDescriptor←v8924;
      if ((var←c67228 == 0)) {
         goto lab←L100029;
         };
      if (((* (( (ptr) var←c67228)+6) ) == 0)) {
         {
            word r←v19516;
            r←v19516 = var←c67228;
SOURCE(7536, 17)
            s←v19472 = r←v19516;
            };
         }
      else {
         lab←L100029: ;
SOURCE(7553, 28)
         s←v19472 = XR←NewObject(44, (* (( (ptr) gf←c80796)+62) ));
         };
      };
SOURCE(7583, 124)
   {
      W4 var←c67292;
      {
         W4 box←v56564;
         box←v56564 = box←v8756;
SOURCE(1846, 74)
         if (( (int)box←v56564.f0 >=  (int)box←v56564.f2) || ( (int)box←v56564.f1 >=  (int)box←v56564.f3)) {
SOURCE(1903, 17)
            (*  (W2Pt) (( (ptr) &box←v56564)+2) ) = (*  (W2Pt) &box←v56564 );
            };
SOURCE(1922, 12)
         var←c67292 = box←v56564;
         };
      (*  (W4Pt) s←v19472 ) = var←c67292;
      (* (( (ptr) s←v19472)+4) ) = 0;
      (* (( (ptr) s←v19472)+5) ) = bitsPerSample←v8784;
      (* (( (ptr) s←v19472)+6) ) = 0;
      (* (( (ptr) s←v19472)+7) ) = bpl←v19304;
      (*  (W2Pt) (( (ptr) s←v19472)+8) ) = base←v8840;
      (* (( (ptr) s←v19472)+10) ) = ref←v8868;
      };
SOURCE(7709, 9)
   return(s←v19472);
   }

static word BitsForSamples←P1380(fSize←v9044, bitsPerSample←v9072)
   word fSize←v9044;
   word bitsPerSample←v9072;
   {
   word var←c9116;
   word num←v19560;
   /* BitsForSamples: */ 
SOURCE(7724, 161)
SOURCE(7803, 69)
   num←v19560 = ((word) ((word) ((fSize←v9044 * bitsPerSample←v9072) + 31) >> 5) << 5);
SOURCE(7874, 11)
   return(SGNCK(num←v19560));
   }

static word WordsForLines←P1440(sSize←v9176, bitsPerLine←v9204)
   word sSize←v9176;
   word bitsPerLine←v9204;
   {
   word var←c9248;
   /* WordsForLines: */ 
SOURCE(7891, 121)
SOURCE(7967, 45)
   {
      word var←c01316;
      {
         word var←c67388;
         word bitCount←v56708;
         bitCount←v56708 = (sSize←v9176 * SGNCK(bitsPerLine←v9204));
SOURCE(2535, 32)
         var←c67388 = ((word) (bitCount←v56708 + 31) >> 5);
         var←c01316 = SGNCK(var←c67388);
         };
      return(var←c01316);
      };
   }

static word WordsForMap←P1500(size←v9308, bitsPerSample←v9336, bitsPerLine←v9364)
   W2 size←v9308;
   word bitsPerSample←v9336;
   word bitsPerLine←v9364;
   {
   word var←c9408;
   /* WordsForMap: */ 
SOURCE(8018, 225)
SOURCE(8126, 73)
   if (( (int)bitsPerLine←v9364 ==  (int)0)) {
SOURCE(8148, 51)
      {
         word idx39;
         bitsPerLine←v9364 = (word) BitsForSamples←P1380((
               idx39 = (word) size←v9308.f1,
               SGNCK(idx39)
               ), bitsPerSample←v9336);
         };
      };
SOURCE(8201, 42)
   {
      word idx40;
      return((word) WordsForLines←P1440((
            idx40 = (word) size←v9308.f0,
            SGNCK(idx40)
            ), bitsPerLine←v9364));
      };
   }

static word NewSampleMap←P1620(box←v9688, bitsPerSample←v9716, bitsPerLine←v9744)
   W4 box←v9688;
   word bitsPerSample←v9716;
   word bitsPerLine←v9744;
   {
   register ptr gf←c80828 =  (ptr) &globalframe;
   word var←c9788;
   W2 size←v19616;
   word actualBitsPerLine←v19644;
   word words←v19672;
   word wordSeq←v19700;
   word map←v19728;
   /* NewSampleMap: */ 
SOURCE(8470, 618)
SOURCE(8597, 24)
   {
      word pd41;
      pd41 = (* (( (ptr) (* (( (ptr) gf←c80828)+225)/* var←c67164 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd41 ))))((word) &size←v19616, box←v9688, pd41);
      };
SOURCE(8623, 115)
   {
      word var←c67452;
      var←c67452 = bitsPerLine←v9744;
      {
         word idx42;
         if (( (int)var←c67452 ==  (int)0)) {
            actualBitsPerLine←v19644 = (word) BitsForSamples←P1380((
                  idx42 = (word) size←v19616.f1,
                  SGNCK(idx42)
                  ), bitsPerSample←v9716);
            }
         else {
            actualBitsPerLine←v19644 = bitsPerLine←v9744;
            };
         };
      };
SOURCE(8740, 53)
   {
      word idx43;
      words←v19672 = (word) WordsForLines←P1440((
            idx43 = (word) size←v19616.f0,
            SGNCK(idx43)
            ), actualBitsPerLine←v19644);
      };
SOURCE(8795, 78)
   {
      word var←c67484;
      word var←c67516;
      word var←c67580;
      var←c67484 = BCK(words←v19672, 67108863);
      var←c67516 = ((word) var←c67484 << 2);
      {
         word var←c67548;
         {
            word pd44;
            pd44 = (* (( (ptr) (* (( (ptr) gf←c80828)+224)/* var←c66588 */  ))+6) );
            var←c67548 = (word) ( *( (fPt) ((*  (ptr) pd44 ))))(pd44);
            };
         {
            word pd45;
            pd45 = (*  (ptr) var←c67548 );
            var←c67580 = (word) ( *( (fPt) ((*  (ptr) pd45 ))))(var←c67548, (4 + var←c67516), (* (( (ptr) gf←c80828)+55) ), pd45);
            };
         };
      (*  (ptr) var←c67580 ) = var←c67484;
      wordSeq←v19700 = var←c67580;
      };
SOURCE(8875, 199)
   {
      word var←c67612;
      {
         word wordSeq←v60032;
         wordSeq←v60032 = wordSeq←v19700;
SOURCE(8405, 61)
         var←c67612 = (wordSeq←v60032 + 4);
         };
      {
         W2 var←c67676;
         var←c67676.f0 = var←c67612;
         var←c67676.f1 = 0;
         map←v19728 = (word) UnsafeNewSampleMap←P1320(box←v9688, bitsPerSample←v9716, actualBitsPerLine←v19644, var←c67676, wordSeq←v19700, (*  (ptr) wordSeq←v19700 )
            , 0);
         };
      };
SOURCE(9076, 12)
   return(map←v19728);
   }

static word NewObjectSampleMap←P1680(box←v9848, bitsPerSample←v9876, getSamples←v9904, putSamples←v9932, data←v9960)
   W4 box←v9848;
   word bitsPerSample←v9876;
   word getSamples←v9904;
   word putSamples←v9932;
   word data←v9960;
   {
   register ptr gf←c80860 =  (ptr) &globalframe;
   word var←c10016;
   word new←v19784;
   /* NewObjectSampleMap: */ 
SOURCE(9092, 415)
SOURCE(9260, 232)
   {
      W4 var←c67708;
      word var←c67772;
      word var←c67836;
      {
         W4 box←v56516;
         box←v56516 = box←v9848;
SOURCE(1846, 74)
         if (( (int)box←v56516.f0 >=  (int)box←v56516.f2) || ( (int)box←v56516.f1 >=  (int)box←v56516.f3)) {
SOURCE(1903, 17)
            (*  (W2Pt) (( (ptr) &box←v56516)+2) ) = (*  (W2Pt) &box←v56516 );
            };
SOURCE(1922, 12)
         var←c67708 = box←v56516;
         };
      {
         word var←c67804;
         var←c67804 = XR←NewObject(8, (* (( (ptr) gf←c80860)+56) ));
         (*  (ptr) var←c67804 ) = XR←CheckProc(getSamples←v9904);
         (* (( (ptr) var←c67804)+1) ) = XR←CheckProc(putSamples←v9932);
         var←c67772 = var←c67804;
         };
      var←c67836 = XR←NewObject(36, (* (( (ptr) gf←c80860)+62) ));
      (*  (W4Pt) var←c67836 ) = var←c67708;
      (* (( (ptr) var←c67836)+4) ) =  (unsigned) (putSamples←v9932 == 0);
      (* (( (ptr) var←c67836)+5) ) = bitsPerSample←v9876;
      (* (( (ptr) var←c67836)+6) ) = 1;
      (* (( (ptr) var←c67836)+7) ) = var←c67772;
      (* (( (ptr) var←c67836)+8) ) = data←v9960;
      new←v19784 = var←c67836;
      };
SOURCE(9494, 13)
   return(new←v19784);
   }

static word Copy←P1740(map←v10076, delta←v10104, box←v10132)
   word map←v10076;
   W2 delta←v10104;
   W4 box←v10132;
   {
   word var←c10176;
   word temp←v19828;
   word new←v19856;
   /* Copy: */ 
SOURCE(9511, 284)
SOURCE(9598, 42)
   temp←v19828 = (word) ReIndex←P2640(map←v10076, delta←v10104, box←v10132);
SOURCE(9642, 84)
   new←v19856 = (word) NewSampleMap←P1620((*  (W4Pt) temp←v19828 ), (* (( (ptr) map←v10076)+5) ), 0);
SOURCE(9728, 29)
   {
      W2 var←c67868;
      var←c67868.f0 = 0;
      var←c67868.f1 = 0;
      (void) Transfer←P3600(new←v19856, temp←v19828, var←c67868, 0);
      };
SOURCE(9759, 23)
   (void) ReleaseDescriptor←P1860(temp←v19828);
SOURCE(9784, 11)
   return(new←v19856);
   }

static word NewDescriptor←P1800(map←v10292)
   word map←v10292;
   {
   register ptr gf←c80892 =  (ptr) &globalframe;
   word new←v10336;
   /* NewDescriptor: */ 
SOURCE(9938, 307)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c80892)+16)/* LOCK←v2888 */ ));
SOURCE(9938, 307)
   new←v10336 = 0;
SOURCE(10034, 177)
   if (((* (( (ptr) gf←c80892)+21)/* scratchDescsTop←v4260 */  ) == 0)) {
SOURCE(10062, 36)
      new←v10336 = XR←NewObject(44, (* (( (ptr) gf←c80892)+62) ));
      }
   else {
SOURCE(10100, 37)
      {
         word idx46;
         (* (( (ptr) gf←c80892)+21)/* scratchDescsTop←v4260 */  ) = (
            idx46 = (word) ((* (( (ptr) gf←c80892)+21)/* scratchDescsTop←v4260 */  ) - 1),
            BCK(idx46, 16)
            );
         };
SOURCE(10139, 35)
      {
         word idx47;
         new←v10336 = (* ((( (ptr) gf←c80892)+22)/* scratchDescs←v4288 */ +(
               idx47 = (* (( (ptr) gf←c80892)+21)/* scratchDescsTop←v4260 */  ),
               BCK(idx47, 15)
               )) );
         };
SOURCE(10176, 35)
      {
         word idx48;
         (* ((( (ptr) gf←c80892)+22)/* scratchDescs←v4288 */ +(
               idx48 = (* (( (ptr) gf←c80892)+21)/* scratchDescsTop←v4260 */  ),
               BCK(idx48, 15)
               )) ) = 0;
         };
      };
SOURCE(10216, 29)
   if ((map←v10292 != 0)) {
SOURCE(10234, 11)
      (*  (W11Pt) new←v10336 ) = (*  (W11Pt) map←v10292 );
      };
SOURCE(9938, 307)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c80892)+16)/* LOCK←v2888 */ ));
   return(new←v10336);
   }

static void ReleaseDescriptor←P1860(map←v10396)
   word map←v10396;
   {
   register ptr gf←c80924 =  (ptr) &globalframe;
   word var←c67996;
   /* ReleaseDescriptor: */ 
SOURCE(10251, 403)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c80924)+16)/* LOCK←v2888 */ ));
SOURCE(10309, 345)
   {
      word var←c67932;
      var←c67932 = map←v10396;
      if ((var←c67932 == 0)) {
         goto lab←L100034;
         };
      if (((* (( (ptr) var←c67932)+6) ) == 0)) {
         {
            word map←v19900;
            map←v19900 = var←c67932;
SOURCE(10356, 110)
            {
               register word i←v19944 = 0;
               register word noName←c67964;
               noName←c67964 = (* (( (ptr) gf←c80924)+21)/* scratchDescsTop←v4260 */  );
               if ((i←v19944 >= noName←c67964)) {
                  goto lab←L100035;
                  };
               lab←L100038: ;
SOURCE(10394, 72)
               if ((map←v19900 == (* ((( (ptr) gf←c80924)+22)/* scratchDescs←v4288 */ +BCK(i←v19944, 15)) ))) {
SOURCE(10424, 42)
                  var←c67996 = (word) (( (bPt) gf←c80924)+268)/* var←c64156 */ ;
                  (void) (XR←MonitorExit((word) (( (bPt) gf←c80924)+16)/* LOCK←v2888 */ ));
                  goto lab←L100039;
                  };
               i←v19944 = (i←v19944 + 1);
               if ((i←v19944 < noName←c67964)) {
                  goto lab←L100038;
                  };
               lab←L100035: ;
               };
SOURCE(10477, 177)
            if (((* (( (ptr) gf←c80924)+21)/* scratchDescsTop←v4260 */  ) < 15)) {
SOURCE(10519, 23)
               (*  (ptr) map←v19900 ) = 0;
               (* (( (ptr) map←v19900)+1) ) = 0;
               (* (( (ptr) map←v19900)+2) ) = 0;
               (* (( (ptr) map←v19900)+3) ) = 0;
SOURCE(10544, 19)
               (* (( (ptr) map←v19900)+8) ) = 0;
SOURCE(10565, 13)
               (* (( (ptr) map←v19900)+10) ) = 0;
SOURCE(10580, 35)
               {
                  word idx49;
                  (* ((( (ptr) gf←c80924)+22)/* scratchDescs←v4288 */ +(
                        idx49 = (* (( (ptr) gf←c80924)+21)/* scratchDescsTop←v4260 */  ),
                        BCK(idx49, 15)
                        )) ) = map←v19900;
                  };
SOURCE(10617, 37)
               {
                  word idx50;
                  (* (( (ptr) gf←c80924)+21)/* scratchDescsTop←v4260 */  ) = (
                     idx50 = (word) ((* (( (ptr) gf←c80924)+21)/* scratchDescsTop←v4260 */  ) + 1),
                     BCK(idx50, 16)
                     );
                  };
               };
            };
         }
      else {
         lab←L100034: ;
         };
      };
SOURCE(10251, 403)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c80924)+16)/* LOCK←v2888 */ ));
   return;
   /* c2c skipped dead code */ 
   lab←L100039: ;
SOURCE(10424, 42)
   (void) XR←RaiseError(var←c67996, 0);
   }

static word ObtainScratchMap←P1920(box←v10492, bitsPerSample←v10520, bitsPerLine←v10548)
   W4 box←v10492;
   word bitsPerSample←v10520;
   word bitsPerLine←v10548;
   {
   W6 var←c80956;
   register ptr gf←c80988 =  (ptr) &globalframe;
   word var←c10592;
   /* declaration of var←c68028 skipped */ 
   W2 size←v19988;
   word actualBitsPerLine←v20016;
   word nWords←v20044;
   word s←v20100;
   /* ObtainScratchMap: */ 
SOURCE(10776, 1291)
   {
      word tmpAddr51;
      tmpAddr51 = (word) (( (ptr) &var←c80956)+4)/* var←c68028 */ ;
      (*  (ptr) tmpAddr51 ) = ( ((word)  (fPt) TryObtainScratch←P5496) );
      (* (( (ptr) tmpAddr51) + 1) ) = 1;
      };
SOURCE(10900, 24)
   {
      word pd52;
      pd52 = (* (( (ptr) (* (( (ptr) gf←c80988)+225)/* var←c67164 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd52 ))))((word) &size←v19988, box←v10492, pd52);
      };
SOURCE(10926, 115)
   {
      word var←c68060;
      var←c68060 = bitsPerLine←v10548;
      {
         word idx53;
         if (( (int)var←c68060 ==  (int)0)) {
            actualBitsPerLine←v20016 = (word) BitsForSamples←P1380((
                  idx53 = (word) size←v19988.f1,
                  SGNCK(idx53)
                  ), bitsPerSample←v10520);
            }
         else {
            actualBitsPerLine←v20016 = bitsPerLine←v10548;
            };
         };
      };
SOURCE(11043, 74)
   {
      word idx54;
      nWords←v20044 = (word) WordsForLines←P1440((
            idx54 = (word) size←v19988.f0,
            SGNCK(idx54)
            ), actualBitsPerLine←v20016);
      };
SOURCE(11809, 45)
   s←v20100 = (word) TryObtainScratch←P5496(nWords←v20044, (word) (( (bPt) &var←c80956)+16)/* var←c68028 */ );
SOURCE(11856, 195)
   if ((s←v20100 == 0)) {
SOURCE(11872, 88)
      s←v20100 = (word) NewSampleMap←P1620(box←v10492, bitsPerSample←v10520, bitsPerLine←v10548);
      }
   else {
SOURCE(11962, 21)
      {
         W4 box←v56468;
         box←v56468 = box←v10492;
SOURCE(1846, 74)
         if (( (int)box←v56468.f0 >=  (int)box←v56468.f2) || ( (int)box←v56468.f1 >=  (int)box←v56468.f3)) {
SOURCE(1903, 17)
            (*  (W2Pt) (( (ptr) &box←v56468)+2) ) = (*  (W2Pt) &box←v56468 );
            };
SOURCE(1922, 12)
         (*  (W4Pt) s←v20100 ) = box←v56468;
         };
SOURCE(11985, 31)
      (* (( (ptr) s←v20100)+5) ) = bitsPerSample←v10520;
SOURCE(12018, 33)
      (* (( (ptr) s←v20100)+7) ) = SGNCK(actualBitsPerLine←v20016);
      };
SOURCE(12056, 11)
   return(s←v20100);
   }

static word TryObtainScratch←P5496(nw←v20176, formal←c81052)
   word nw←v20176;
   word formal←c81052;
   {
   register ptr gf←c81020 =  (ptr) &globalframe;
   word var←c20220;
   word besti←v20248 =  (word) -1;
   word smallestWaste←v20276 = 2147483647;
   formal←c81052 = (formal←c81052 - 16);
   /* TryObtainScratch: */ 
SOURCE(11119, 687)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c81020)+16)/* LOCK←v2888 */ ));
SOURCE(11244, 271)
   {
      register word i←v20320 = 0;
      lab←L100045: ;
      {
         word s←v20364;
SOURCE(11279, 35)
         s←v20364 = (* ((( (ptr) gf←c81020)+37)/* scratchMaps←v4400 */ +BCK(i←v20320, 10)) );
SOURCE(11316, 199)
         if ((s←v20364 != 0)) {
SOURCE(11334, 181)
            {
               word var←c68124;
               var←c68124 = (* (( (ptr) s←v20364)+10) );
               if ((var←c68124 == 0)) {
                  goto lab←L100046;
                  };
               if (((* (( (ptr) gf←c81020)+55) ) == XR←GetReferentType(var←c68124))) {
                  {
                     word wordSeq←v20408;
                     wordSeq←v20408 = var←c68124;
SOURCE(11386, 129)
                     if (( (int)nw←v20176 <=  (int)(*  (ptr) wordSeq←v20408 ))) {
SOURCE(11415, 105)
                        {
                           word waste←v20464;
SOURCE(11417, 32)
                           waste←v20464 = ((*  (ptr) wordSeq←v20408 ) - nw←v20176);
SOURCE(11451, 64)
                           if (( (int)waste←v20464 <  (int)smallestWaste←v20276)) {
SOURCE(11483, 9)
/*1*/   besti←v20248 = i←v20320;
SOURCE(11494, 21)
/*1*/   smallestWaste←v20276 = waste←v20464;
/*1*/   };
                           };
                        };
                     };
                  }
               else {
                  lab←L100046: ;
                  };
               };
            };
         };
      if ((i←v20320 >= 9)) {
         goto lab←L100042;
         };
      i←v20320 = (i←v20320 + 1);
      goto lab←L100045;
      lab←L100042: ;
      };
SOURCE(11547, 241)
   if (( (int)besti←v20248 >=  (int)0)) {
SOURCE(11566, 224)
      {
         word s←v20508;
SOURCE(11568, 39)
         s←v20508 = (* ((( (ptr) gf←c81020)+37)/* scratchMaps←v4400 */ +BCK(besti←v20248, 10)) );
SOURCE(11609, 24)
         (* ((( (ptr) gf←c81020)+37)/* scratchMaps←v4400 */ +BCK(besti←v20248, 10)) ) = 0;
SOURCE(11635, 120)
         {
            word var←c68156;
            var←c68156 = (* (( (ptr) s←v20508)+10) );
            if ((var←c68156 == 0)) {
               goto lab←L100047;
               };
            if (((* (( (ptr) gf←c81020)+55) ) == XR←GetReferentType(var←c68156))) {
               {
                  word wordSeq←v20552;
                  wordSeq←v20552 = var←c68156;
SOURCE(11685, 72)
                  {
                     word ptr←v20608;
SOURCE(11687, 38)
                     {
                        word wordSeq←v59984;
                        wordSeq←v59984 = wordSeq←v20552;
SOURCE(8405, 61)
                        ptr←v20608 = (wordSeq←v59984 + 4);
                        };
SOURCE(11727, 28)
                     (* (( (ptr) s←v20508)+8) ) = ptr←v20608;
                     (* (( (ptr) s←v20508)+9) ) = 0;
                     };
                  };
               }
            else {
               lab←L100047: ;
SOURCE(11771, 5)
               (void) XR←RaiseUnnamedError();
               };
            };
SOURCE(11778, 10)
         (void) (XR←MonitorExit((word) (( (bPt) gf←c81020)+16)/* LOCK←v2888 */ ));
         return(s←v20508);
         };
      };
SOURCE(11793, 13)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c81020)+16)/* LOCK←v2888 */ ));
   return(0);
   }

static void ReleaseScratchMap←P1980(map←v10652)
   word map←v10652;
   {
   register ptr gf←c81084 =  (ptr) &globalframe;
   word var←c68284;
   /* ReleaseScratchMap: */ 
SOURCE(12071, 557)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c81084)+16)/* LOCK←v2888 */ ));
SOURCE(12129, 28)
   if ((0 != (* (( (ptr) map←v10652)+4) ))) {
SOURCE(12151, 6)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c81084)+16)/* LOCK←v2888 */ ));
      return;
      };
SOURCE(12159, 469)
   {
      word var←c68220;
      var←c68220 = map←v10652;
      if ((var←c68220 == 0)) {
         goto lab←L100049;
         };
      if (((* (( (ptr) var←c68220)+6) ) == 0)) {
         {
            word map←v20664;
            map←v20664 = var←c68220;
SOURCE(12204, 438)
            {
               word slot←v20708 =  (word) -1;
SOURCE(12222, 73)
               {
                  word var←c68252;
                  var←c68252 = (* (( (ptr) map←v20664)+10) );
                  if ((var←c68252 == 0)) {
                     goto lab←L100050;
                     };
                  if (((* (( (ptr) gf←c81084)+55) ) == XR←GetReferentType(var←c68252))) {
                     {
                        word wordSeq←v20752;
                        wordSeq←v20752 = var←c68252;
                        };
                     }
                  else {
                     lab←L100050: ;
SOURCE(12289, 6)
                     (void) (XR←MonitorExit((word) (( (bPt) gf←c81084)+16)/* LOCK←v2888 */ ));
                     return;
                     };
                  };
SOURCE(12297, 182)
               {
                  register word i←v20808 = 0;
                  lab←L100054: ;
                  {
                     word t←v20852;
SOURCE(12332, 35)
                     t←v20852 = (* ((( (ptr) gf←c81084)+37)/* scratchMaps←v4400 */ +BCK(i←v20808, 10)) );
                     if ((t←v20852 == 0)) {
SOURCE(12397, 8)
                        slot←v20708 = i←v20808;
                        }
                     else {
                        if ((map←v20664 == t←v20852) || ((* (( (ptr) map←v20664)+10) ) == (* (( (ptr) t←v20852)+10) ))) {
SOURCE(12437, 42)
                           var←c68284 = (word) (( (bPt) gf←c81084)+268)/* var←c64156 */ ;
                           (void) (XR←MonitorExit((word) (( (bPt) gf←c81084)+16)/* LOCK←v2888 */ ));
                           goto lab←L100055;
                           };
                        };
                     };
                  if ((i←v20808 >= 9)) {
                     goto lab←L100051;
                     };
                  i←v20808 = (i←v20808 + 1);
                  goto lab←L100054;
                  lab←L100051: ;
                  };
SOURCE(12499, 129)
               if (( (int)slot←v20708 >=  (int)0)) {
SOURCE(12519, 23)
                  (* ((( (ptr) gf←c81084)+37)/* scratchMaps←v4400 */ +BCK(slot←v20708, 10)) ) = map←v20664;
                  }
               else {
SOURCE(12551, 20)
                  (* (( (ptr) gf←c81084)+37) ) = map←v20664;
SOURCE(12573, 55)
                  {
                     register word i←v20896 = 1;
                     lab←L100059: ;
SOURCE(12608, 20)
                     (* ((( (ptr) gf←c81084)+37)/* scratchMaps←v4400 */ +BCK(i←v20896, 10)) ) = 0;
                     if ((i←v20896 >= 9)) {
                        goto lab←L100056;
                        };
                     i←v20896 = (i←v20896 + 1);
                     goto lab←L100059;
                     lab←L100056: ;
                     };
                  };
               };
            };
         }
      else {
         lab←L100049: ;
         };
      };
SOURCE(12071, 557)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c81084)+16)/* LOCK←v2888 */ ));
   return;
   /* c2c skipped dead code */ 
   lab←L100055: ;
SOURCE(12437, 42)
   (void) XR←RaiseError(var←c68284, 0);
   }

static void ClearScratchMaps←P2040()
   {
   register ptr gf←c81116 =  (ptr) &globalframe;
   /* ClearScratchMaps: */ 
SOURCE(12658, 88)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c81116)+16)/* LOCK←v2888 */ ));
SOURCE(12691, 55)
   {
      register word i←v20940 = 1;
      lab←L100064: ;
SOURCE(12726, 20)
      (* ((( (ptr) gf←c81116)+37)/* scratchMaps←v4400 */ +BCK(i←v20940, 10)) ) = 0;
      if ((i←v20940 >= 9)) {
         goto lab←L100061;
         };
      i←v20940 = (i←v20940 + 1);
      goto lab←L100064;
      lab←L100061: ;
      };
SOURCE(12658, 88)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c81116)+16)/* LOCK←v2888 */ ));
   return;
   }

static void DoWithScratchMap←P2100(box←v10728, bitsPerSample←v10756, formal←c01360)
   W4 box←v10728;
   word bitsPerSample←v10756;
   word formal←c01360;
   {
   W6 var←c81148;
   /* declaration of action←v10784 skipped */ 
   /* declaration of scratch←v20984 skipped */ 
   var←c81148.f4/* action←v10784 */  = formal←c01360;
   /* DoWithScratchMap: */ 
SOURCE(12761, 274)
SOURCE(12868, 83)
   var←c81148.f5/* scratch←v20984 */  = (word) ObtainScratchMap←P1920(box←v10728, bitsPerSample←v10756, 0);
SOURCE(12953, 54)
   {
      word var←c01317;
      var←c01317 = (word) &var←c81148;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q20856) ), ( ((word)  (fPt) NoName←Q20916) ), var←c01317);
      };
SOURCE(13009, 26)
   (void) ReleaseScratchMap←P1980(var←c81148.f5/* scratch←v20984 */ );
   }

static word NoName←Q20856(formal←c01276)
   word formal←c01276;
   {
SOURCE(12953, 54)
   {
      word pd55;
      pd55 = (* (( (ptr) formal←c01276)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd55 ))))((* ((( (ptr) formal←c01276)+5)) ), pd55);
      };
   return(0);
   }

static void InPlaceClip←P2160(map←v10904, box←v10932)
   word map←v10904;
   W4 box←v10932;
   {
   W4 newBox←v21028;
   word skipBits←v21056;
   /* InPlaceClip: */ 
SOURCE(13040, 307)
SOURCE(13102, 46)
   {
      W4 box1←v63096;
      box1←v63096 = (*  (W4Pt) map←v10904 );
      {
         W2 v1←v48904;
         W2 v2←v48936;
         v1←v48904 = (*  (W2Pt) &box←v10932 );
         v2←v48936 = (*  (W2Pt) &box1←v63096 );
         if (( (int)v2←v48936.f0 >=  (int)v1←v48904.f0)) {
            newBox←v21028.f0 = v2←v48936.f0;
            }
         else {
            newBox←v21028.f0 = v1←v48904.f0;
            };
         if (( (int)v2←v48936.f1 >=  (int)v1←v48904.f1)) {
            newBox←v21028.f1 = v2←v48936.f1;
            }
         else {
            newBox←v21028.f1 = v1←v48904.f1;
            };
         };
      {
         W2 v1←v49280;
         W2 v2←v49312;
         v1←v49280 = (*  (W2Pt) (( (ptr) &box1←v63096)+2) );
         v2←v49312 = (*  (W2Pt) (( (ptr) &box←v10932)+2) );
         if (( (int)v1←v49280.f0 <=  (int)v2←v49312.f0)) {
            newBox←v21028.f2 = v1←v49280.f0;
            }
         else {
            newBox←v21028.f2 = v2←v49312.f0;
            };
         if (( (int)v1←v49280.f1 <=  (int)v2←v49312.f1)) {
            newBox←v21028.f3 = v1←v49280.f1;
            }
         else {
            newBox←v21028.f3 = v2←v49312.f1;
            };
         };
      };
SOURCE(13150, 128)
   {
      word idx56;
      word idx57;
      skipBits←v21056 = (((
         idx56 = (word) (newBox←v21028.f0 - (*  (ptr) map←v10904 )),
         SGNCK(idx56)
         ) * (* (( (ptr) map←v10904)+7) )) + ((
         idx57 = (word) (newBox←v21028.f1 - (* (( (ptr) map←v10904)+1) )),
         SGNCK(idx57)
         ) * (* (( (ptr) map←v10904)+5) )));
      };
SOURCE(13280, 26)
   {
      W4 box←v56420;
      box←v56420 = newBox←v21028;
SOURCE(1846, 74)
      if (( (int)box←v56420.f0 >=  (int)box←v56420.f2) || ( (int)box←v56420.f1 >=  (int)box←v56420.f3)) {
SOURCE(1903, 17)
         (*  (W2Pt) (( (ptr) &box←v56420)+2) ) = (*  (W2Pt) &box←v56420 );
         };
SOURCE(1922, 12)
      (*  (W4Pt) map←v10904 ) = box←v56420;
      };
SOURCE(13308, 39)
   {
      W2 var←c68540;
      W2 addr←v58088;
      addr←v58088 = (*  (W2Pt) (( (ptr) map←v10904)+8) );
      {
         word bitOffset←v18252;
         word mod←v18280;
         bitOffset←v18252 = (skipBits←v21056 + addr←v58088.f1);
         mod←v18280 = (bitOffset←v18252 & 037);
SOURCE(2833, 63)
         var←c68540.f0 = (addr←v58088.f0 + IOP2( / ,  (int)(bitOffset←v18252 - mod←v18280),  (int)8));
         var←c68540.f1 = mod←v18280;
         };
      (*  (W2Pt) (( (ptr) map←v10904)+8) ) = var←c68540;
      };
   }

static void InPlaceShift←P2340(map←v11256, delta←v11284)
   word map←v11256;
   W2 delta←v11284;
   {
   W2 newmin←v21100;
   W2 newmax←v21128;
   W4 chk←v21156;
   /* InPlaceShift: */ 
SOURCE(13678, 354)
SOURCE(13753, 50)
   {
      W2 a←v60424;
      a←v60424 = (*  (W2Pt) map←v11256 );
SOURCE(13614, 60)
      {
         word a←v60156;
         word b←v60184;
         a←v60156 = a←v60424.f0;
         b←v60184 = delta←v11284.f0;
SOURCE(13415, 136)
         if (( (int)a←v60156 >  (int)0)) {
SOURCE(13429, 63)
            if (( (int)b←v60184 <  (int)(2147483647 - a←v60156))) {
               newmin←v21100.f0 = (a←v60156 + b←v60184);
               }
            else {
               newmin←v21100.f0 = 2147483647;
               };
            }
         else {
SOURCE(13492, 59)
            if (( (int)b←v60184 >  (int)(2147483648 - a←v60156))) {
               newmin←v21100.f0 = (a←v60156 + b←v60184);
               }
            else {
               newmin←v21100.f0 = 2147483648;
               };
            };
         };
      {
         word a←v60080;
         word b←v60108;
         a←v60080 = a←v60424.f1;
         b←v60108 = delta←v11284.f1;
SOURCE(13415, 136)
         if (( (int)a←v60080 >  (int)0)) {
SOURCE(13429, 63)
            if (( (int)b←v60108 <  (int)(2147483647 - a←v60080))) {
               newmin←v21100.f1 = (a←v60080 + b←v60108);
               }
            else {
               newmin←v21100.f1 = 2147483647;
               };
            }
         else {
SOURCE(13492, 59)
            if (( (int)b←v60108 >  (int)(2147483648 - a←v60080))) {
               newmin←v21100.f1 = (a←v60080 + b←v60108);
               }
            else {
               newmin←v21100.f1 = 2147483648;
               };
            };
         };
      };
SOURCE(13805, 50)
   {
      W2 a←v60232;
      a←v60232 = (*  (W2Pt) (( (ptr) map←v11256)+2) );
SOURCE(13614, 60)
      {
         word a←v60280;
         word b←v60308;
         a←v60280 = a←v60232.f0;
         b←v60308 = delta←v11284.f0;
SOURCE(13415, 136)
         if (( (int)a←v60280 >  (int)0)) {
SOURCE(13429, 63)
            if (( (int)b←v60308 <  (int)(2147483647 - a←v60280))) {
               newmax←v21128.f0 = (a←v60280 + b←v60308);
               }
            else {
               newmax←v21128.f0 = 2147483647;
               };
            }
         else {
SOURCE(13492, 59)
            if (( (int)b←v60308 >  (int)(2147483648 - a←v60280))) {
               newmax←v21128.f0 = (a←v60280 + b←v60308);
               }
            else {
               newmax←v21128.f0 = 2147483648;
               };
            };
         };
      {
         word a←v60352;
         word b←v60380;
         a←v60352 = a←v60232.f1;
         b←v60380 = delta←v11284.f1;
SOURCE(13415, 136)
         if (( (int)a←v60352 >  (int)0)) {
SOURCE(13429, 63)
            if (( (int)b←v60380 <  (int)(2147483647 - a←v60352))) {
               newmax←v21128.f1 = (a←v60352 + b←v60380);
               }
            else {
               newmax←v21128.f1 = 2147483647;
               };
            }
         else {
SOURCE(13492, 59)
            if (( (int)b←v60380 >  (int)(2147483648 - a←v60352))) {
               newmax←v21128.f1 = (a←v60352 + b←v60380);
               }
            else {
               newmax←v21128.f1 = 2147483648;
               };
            };
         };
      };
SOURCE(13857, 82)
   chk←v21156.f0 = (newmin←v21100.f0 - delta←v11284.f0);
   chk←v21156.f1 = (newmin←v21100.f1 - delta←v11284.f1);
   chk←v21156.f2 = (newmax←v21128.f0 - delta←v11284.f0);
   chk←v21156.f3 = (newmax←v21128.f1 - delta←v11284.f1);
SOURCE(13941, 43)
   if ( ! XR←EqualWords(&chk←v21156, map←v11256, 4)) {
SOURCE(13963, 21)
      (void) InPlaceClip←P2160(map←v11256, chk←v21156);
      };
SOURCE(13986, 46)
   {
      W4 box←v56372;
      (*  (W2Pt) &box←v56372 ) = newmin←v21100;
      (*  (W2Pt) (( (ptr) &box←v56372)+2) ) = newmax←v21128;
SOURCE(1846, 74)
      if (( (int)box←v56372.f0 >=  (int)box←v56372.f2) || ( (int)box←v56372.f1 >=  (int)box←v56372.f3)) {
SOURCE(1903, 17)
         (*  (W2Pt) (( (ptr) &box←v56372)+2) ) = (*  (W2Pt) &box←v56372 );
         };
SOURCE(1922, 12)
      (*  (W4Pt) map←v11256 ) = box←v56372;
      };
   }

static word ObtainUnsafeDescriptor←P2400(size←v11344, bitsPerSample←v11372, bitsPerLine←v11400, base←v11428, ref←v11456, words←v11484, rawMin←v11512, delta←v11540)
   W2 size←v11344;
   word bitsPerSample←v11372;
   word bitsPerLine←v11400;
   W2 base←v11428;
   word ref←v11456;
   word words←v11484;
   W2 rawMin←v11512;
   W2 delta←v11540;
   {
   word var←c11596;
   word new←v21200;
   /* ObtainUnsafeDescriptor: */ 
SOURCE(14038, 541)
SOURCE(14252, 212)
   {
      word var←c68956;
      var←c68956 = (word) NewDescriptor←P1800(0);
      {
         W4 var←c68988;
         var←c68988.f0 = 0;
         var←c68988.f1 = 0;
         var←c68988.f2 = (rawMin←v11512.f0 + size←v11344.f0);
         var←c68988.f3 = (rawMin←v11512.f1 + size←v11344.f1);
         new←v21200 = (word) UnsafeNewSampleMap←P1320(var←c68988, bitsPerSample←v11372, bitsPerLine←v11400, base←v11428, ref←v11456, words←v11484
            , var←c68956);
         };
      };
SOURCE(14466, 39)
   {
      W2 var←c69020;
      var←c69020.f0 = INEG(rawMin←v11512.f0);
      var←c69020.f1 = INEG(rawMin←v11512.f1);
      (void) InPlaceShift←P2340(new←v21200, var←c69020);
      };
SOURCE(14507, 32)
   {
      W4 var←c69052;
      var←c69052.f0 = 0;
      var←c69052.f1 = 0;
      (*  (W2Pt) (( (ptr) &var←c69052)+2) ) = size←v11344;
      (void) InPlaceClip←P2160(new←v21200, var←c69052);
      };
SOURCE(14541, 24)
   (void) InPlaceShift←P2340(new←v21200, delta←v11540);
SOURCE(14567, 12)
   return(new←v21200);
   }

static void CheckBuffer←P2460(map←v11656, sInitIndex←v11684, fInitIndex←v11712, sDelta←v11740, fDelta←v11768, count←v11796)
   word map←v11656;
   word sInitIndex←v11684;
   word fInitIndex←v11712;
   word sDelta←v11740;
   word fDelta←v11768;
   word count←v11796;
   {
   /* CheckBuffer: */ 
SOURCE(14585, 619)
SOURCE(14712, 492)
   if ((count←v11796 != 0)) {
SOURCE(14730, 476)
      {
         word countMinus1←v21244;
         word s0←v21272;
         word s1←v21300;
         word f0←v21328;
         word f1←v21356;
SOURCE(14732, 30)
         countMinus1←v21244 = (count←v11796 - 1);
SOURCE(14764, 24)
         s0←v21272 = sInitIndex←v11684;
SOURCE(14790, 73)
         s1←v21300 = (sInitIndex←v11684 +  ( ( (int)sDelta←v11740 ==  (int)0) ? 0 : IOP2( * ,  (int)sDelta←v11740,  (int)countMinus1←v21244)
          ) );
SOURCE(14865, 24)
         f0←v21328 = fInitIndex←v11712;
SOURCE(14891, 83)
         f1←v21356 = (fInitIndex←v11712 +  ( ( (int)fDelta←v11768 ==  (int)1) ? countMinus1←v21244 : IOP2( * ,  (int)fDelta←v11768,  (int)countMinus1←v21244)
          ) );
SOURCE(14976, 51)
         if (( (int)s0←v21272 >  (int)s1←v21300)) {
SOURCE(14992, 35)
            {
               word t←v21400;
SOURCE(14994, 15)
               t←v21400 = s0←v21272;
SOURCE(15011, 7)
               s0←v21272 = s1←v21300;
SOURCE(15020, 7)
               s1←v21300 = t←v21400;
               };
            };
SOURCE(15030, 51)
         if (( (int)f0←v21328 >  (int)f1←v21356)) {
SOURCE(15046, 35)
            {
               word t←v21444;
SOURCE(15048, 15)
               t←v21444 = f0←v21328;
SOURCE(15065, 7)
               f0←v21328 = f1←v21356;
SOURCE(15074, 7)
               f1←v21356 = t←v21444;
               };
            };
SOURCE(15084, 120)
         if (((( (int)s0←v21272 <  (int)(*  (ptr) map←v11656 )) || ( (int)f0←v21328 <  (int)(* (( (ptr) map←v11656)+1) ))) || ( (int)s1←v21300 >=  (int)(* (
            ( (ptr) map←v11656)+2) ))) || ( (int)f1←v21356 >=  (int)(* (( (ptr) map←v11656)+3) ))) {
SOURCE(15179, 25)
            (void) XR←RaiseBoundsFault();
            };
         };
      };
   }

static void ReIndexGetSamples←P2520(self←v11928, initIndex←v11956, buffer←v11984, start←v12012, count←v12040)
   word self←v11928;
   W2 initIndex←v11956;
   word buffer←v11984;
   word start←v12012;
   word count←v12040;
   {
   register ptr gf←c81180 =  (ptr) &globalframe;
   word data←v21488;
   /* ReIndexGetSamples: */ 
SOURCE(15278, 337)
SOURCE(15390, 44)
   data←v21488 = XR←Narrow((* (( (ptr) self←v11928)+8) ), (* (( (ptr) gf←c81180)+50) ));
SOURCE(15436, 39)
   {
      word x58;
      count←v12040 = (x58 = ((*  (ptr) buffer←v11984 ) - start←v12012),
         MIN((int)(word), x58, count←v12040));
      };
SOURCE(15477, 138)
   if ((count←v12040 > 0)) {
SOURCE(15497, 118)
      {
         W2 var←c69084;
         {
            W2 var←c69116;
            W2 v2←v61676;
            v2←v61676 = (*  (W2Pt) data←v21488 );
            var←c69116.f0 = (initIndex←v11956.f0 - v2←v61676.f0);
            var←c69116.f1 = (initIndex←v11956.f1 - v2←v61676.f1);
            var←c69084 = var←c69116;
            };
         {
            W2 var←c69180;
            var←c69180.f0 = 0;
            var←c69180.f1 = 1;
            (void) GetSamples←P3240((* (( (ptr) data←v21488)+2) ), var←c69084, var←c69180, buffer←v11984, start←v12012, count←v12040)
            ;
            };
         };
      };
   }

static void ReIndexPutSamples←P2580(self←v12100, initIndex←v12128, buffer←v12156, start←v12184, count←v12212, function←v12240)
   word self←v12100;
   W2 initIndex←v12128;
   word buffer←v12156;
   word start←v12184;
   word count←v12212;
   word function←v12240;
   {
   register ptr gf←c81212 =  (ptr) &globalframe;
   word data←v21544;
   /* ReIndexPutSamples: */ 
SOURCE(15624, 377)
SOURCE(15756, 44)
   data←v21544 = XR←Narrow((* (( (ptr) self←v12100)+8) ), (* (( (ptr) gf←c81212)+50) ));
SOURCE(15802, 39)
   {
      word x59;
      count←v12212 = (x59 = ((*  (ptr) buffer←v12156 ) - start←v12184),
         MIN((int)(word), x59, count←v12212));
      };
SOURCE(15843, 158)
   if ((count←v12212 > 0)) {
SOURCE(15863, 138)
      {
         W2 var←c69212;
         {
            W2 var←c69244;
            W2 v2←v61628;
            v2←v61628 = (*  (W2Pt) data←v21544 );
            var←c69244.f0 = (initIndex←v12128.f0 - v2←v61628.f0);
            var←c69244.f1 = (initIndex←v12128.f1 - v2←v61628.f1);
            var←c69212 = var←c69244;
            };
         {
            W2 var←c69308;
            var←c69308.f0 = 0;
            var←c69308.f1 = 1;
            (void) PutSamples←P3300((* (( (ptr) data←v21544)+2) ), var←c69212, var←c69308, buffer←v12156, start←v12184, count←v12212
               , function←v12240);
            };
         };
      };
   }

static word ReIndex←P2640(map←v12300, delta←v12328, box←v12356)
   word map←v12300;
   W2 delta←v12328;
   W4 box←v12356;
   {
   register ptr gf←c81244 =  (ptr) &globalframe;
   word var←c12400;
   /* ReIndex: */ 
SOURCE(16010, 654)
SOURCE(16102, 562)
   {
      word var←c69340;
      var←c69340 = map←v12300;
      if ((var←c69340 == 0)) {
         goto lab←L100081;
         };
      {
         word var←c69500;
         var←c69500 = (* (( (ptr) var←c69340)+6) );
         if ((var←c69500 == 0)) {
            {
               word map←v21600;
               map←v21600 = var←c69340;
SOURCE(16147, 107)
               {
                  word new←v21644;
SOURCE(16149, 41)
                  new←v21644 = (word) NewDescriptor←P1800(map←v21600);
SOURCE(16192, 24)
                  (void) InPlaceShift←P2340(new←v21644, delta←v12328);
SOURCE(16218, 21)
                  (void) InPlaceClip←P2160(new←v21644, box←v12356);
SOURCE(16241, 13)
                  return(new←v21644);
                  };
               };
            }
         else {
            if ((var←c69500 == 1)) {
               {
                  word map←v21688;
                  map←v21688 = var←c69340;
SOURCE(16281, 357)
                  {
                     word data←v21732;
                     W4 newBox←v21760;
                     word new←v21788;
SOURCE(16283, 74)
                     data←v21732 = XR←NewObject(12, (* (( (ptr) gf←c81244)+50) ));
                     (*  (W2Pt) data←v21732 ) = delta←v12328;
                     (* (( (ptr) data←v21732)+2) ) = map←v21688;
SOURCE(16359, 69)
                     {
                        W4 var←c69404;
                        {
                           W4 var←c69436;
                           W4 box←v63464;
                           box←v63464 = (*  (W4Pt) map←v21688 );
                           var←c69436.f0 = (box←v63464.f0 + delta←v12328.f0);
                           var←c69436.f1 = (box←v63464.f1 + delta←v12328.f1);
                           var←c69436.f2 = (box←v63464.f2 + delta←v12328.f0);
                           var←c69436.f3 = (box←v63464.f3 + delta←v12328.f1);
                           var←c69404 = var←c69436;
                           };
                        {
                           W4 var←c0371;
                           {
/*1*/   word pd60;
/*1*/   pd60 = (* (( (ptr) (* (( (ptr) gf←c81244)+225)/* var←c67164 */  ))+15) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd60 ))))((word) &var←c0371, box←v12356, var←c69404, pd60);
/*1*/   };
                           newBox←v21760 = var←c0371;
                           };
                        };
SOURCE(16430, 193)
                     new←v21788 = (word) NewObjectSampleMap←P1680(newBox←v21760, (* (( (ptr) map←v21688)+5) ), (word) (( (bPt) gf←c81244)+568)
                        /* var←c65372 */ ,  ( (0 != (* (( (ptr) map←v21688)+4) )) ? 0 : (word) (( (bPt) gf←c81244)+560)/* var←c65340 */  ) , data←v21732)
                     ;
SOURCE(16625, 13)
                     return(new←v21788);
                     };
                  };
               }
            else {
               lab←L100081: ;
SOURCE(16652, 12)
               return(0);
               };
            };
         };
      };
   }

static word Clip←P2700(map←v12460, box←v12488)
   word map←v12460;
   W4 box←v12488;
   {
   word var←c12532;
   /* Clip: */ 
SOURCE(16670, 120)
SOURCE(16739, 51)
   {
      word var←c01318;
      {
         W2 var←c69564;
         var←c69564.f0 = 0;
         var←c69564.f1 = 0;
         var←c01318 = (word) ReIndex←P2640(map←v12460, var←c69564, box←v12488);
         };
      return(var←c01318);
      };
   }

static word Shift←P2760(map←v12592, delta←v12620)
   word map←v12592;
   W2 delta←v12620;
   {
   register ptr gf←c81276 =  (ptr) &globalframe;
   word var←c12664;
   /* Shift: */ 
SOURCE(16796, 124)
SOURCE(16868, 52)
   return((word) ReIndex←P2640(map←v12592, delta←v12620, (*  (W4Pt) (( (ptr) gf←c81276)+209)/* var←c66396 */  )));
   }

static word ZeroOrigin←P2820(map←v12724)
   word map←v12724;
   {
   register ptr gf←c81308 =  (ptr) &globalframe;
   word var←c12768;
   /* ZeroOrigin: */ 
SOURCE(16926, 137)
SOURCE(16991, 72)
   {
      W2 var←c69692;
      W2 v←v62300;
      W2 var←c69660;
      v←v62300 = (*  (W2Pt) map←v12724 );
      var←c69692.f0 = INEG(v←v62300.f0);
      var←c69692.f1 = INEG(v←v62300.f1);
      var←c69660 = (var←c69692
      );
      return((word) ReIndex←P2640(map←v12724, var←c69660, (*  (W4Pt) (( (ptr) gf←c81308)+209)/* var←c66396 */  )));
      };
   }

static void GetUnsafeBlock←P2880(formal←c0397, map←v12828)
   word formal←c0397;
   word map←v12828;
   {
   word var←c01387;
   word var←c01388;
   word var←c01389;
   W2 size←v21844;
   word bitsPerLine←v21872;
   word dataBitsPerLine←v21900;
   word fillBitsPerLine←v21928;
   word padStart←v21956;
   word nBytes←v21984;
   /* GetUnsafeBlock: */ 
SOURCE(17069, 440)
   /* Return var split */ 
SOURCE(17153, 27)
   {
      word map←v56228;
      map←v56228 = map←v12828;
SOURCE(1717, 74)
      size←v21844.f0 = ((* (( (ptr) map←v56228)+2) ) - (*  (ptr) map←v56228 ));
      size←v21844.f1 = ((* (( (ptr) map←v56228)+3) ) - (* (( (ptr) map←v56228)+1) ));
      };
SOURCE(17182, 35)
   bitsPerLine←v21872 = (* (( (ptr) map←v12828)+7) );
SOURCE(17219, 60)
   {
      word idx61;
      dataBitsPerLine←v21900 = ((* (( (ptr) map←v12828)+5) ) * (
         idx61 = (word) size←v21844.f1,
         SGNCK(idx61)
         ));
      };
SOURCE(17281, 55)
   fillBitsPerLine←v21928 = BCK((bitsPerLine←v21872 - dataBitsPerLine←v21900), 1);
SOURCE(17338, 37)
   {
      word idx62;
      padStart←v21956 = (
         idx62 = ((* (( (ptr) map←v12828)+9) ) & 7),
         BCK(idx62, 1)
         );
      };
SOURCE(17377, 46)
   {
      word idx63;
      nBytes←v21984 = ((word) (((
         idx63 = (word) size←v21844.f0,
         SGNCK(idx63)
         ) * bitsPerLine←v21872) + 7) >> 3);
      };
SOURCE(17425, 84)
   var←c01387 = (* (( (ptr) map←v12828)+8) );
   var←c01388 = ((* (( (ptr) map←v12828)+9) ) >> 3);
   var←c01389 = nBytes←v21984;
   /* removed tail goto */ 
   (* (( (ptr) formal←c0397)+2) ) = var←c01389;
   (* (( (ptr) formal←c0397)+1) ) = var←c01388;
   (*  (ptr) formal←c0397 ) = var←c01387;
   return;
   }

static word ApplyFunction←P2940(function←v12932, dstVal←v12960, srcVal←v12988)
   word function←v12932;
   word dstVal←v12960;
   word srcVal←v12988;
   {
   word var←c13032;
   /* ApplyFunction: */ 
SOURCE(17513, 354)
SOURCE(17606, 68)
   if (( (unsigned) (function←v12932 & 1) == 1)) {
SOURCE(17644, 30)
      srcVal←v12988 = (word) XRM←BITNOT(srcVal←v12988);
      };
SOURCE(17676, 191)
   {
      word var←c69884;
      var←c69884 =  (unsigned) (((unsigned)function←v12932 << 29) >> 30);
      switch (var←c69884) {
         case 0: 
SOURCE(17713, 15)
            return(srcVal←v12988);
         case 1: 
SOURCE(17737, 38)
            return((word) XRM←BITAND(dstVal←v12960, srcVal←v12988));
         case 2: 
SOURCE(17783, 37)
            return((word) XRM←BITOR(dstVal←v12960, srcVal←v12988));
         case 3: 
SOURCE(17829, 38)
            return((word) XRM←BITXOR(dstVal←v12960, srcVal←v12988));
         default: 
SOURCE(17880, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
   }

static void ApplyToSamples←P3000(function←v13092, dst←v13120, src←v13148, start←v13176, count←v13204)
   word function←v13092;
   word dst←v13120;
   word src←v13148;
   word start←v13176;
   word count←v13204;
   {
   register ptr gf←c81340 =  (ptr) &globalframe;
   word clippedCount←v22068;
   word d←v22096;
   word s←v22124;
   /* ApplyToSamples: */ 
SOURCE(17891, 557)
SOURCE(17987, 77)
   {
      word x64;
      word x65;
      word x66;
      word idx67;
      clippedCount←v22068 = (
         idx67 = (word) (x64 = ((*  (ptr) dst←v13120 ) - start←v13176),
            x65 = MIN((int)(word), count←v13204, x64),
            x66 = ((*  (ptr) src←v13148 ) - start←v13176),
            MIN((int)(word), x65, x66)),
         SGNCK(idx67)
         );
      };
SOURCE(18066, 61)
   d←v22096 = (word) PointerToSamples←P1020(dst←v13120, start←v13176, SGNCK(clippedCount←v22068));
SOURCE(18129, 61)
   s←v22124 = (word) PointerToSamples←P1020(src←v13148, start←v13176, SGNCK(clippedCount←v22068));
SOURCE(18192, 256)
   if ((clippedCount←v22068 != 0)) {
SOURCE(18225, 225)
      {
         word bits←v22168;
SOURCE(18227, 44)
         bits←v22168 = ((word) clippedCount←v22068 << 5);
SOURCE(18273, 175)
         {
            W2 var←c70012;
            W2 var←c70044;
            var←c70012.f0 = d←v22096;
            var←c70012.f1 = 0;
            var←c70044.f0 = s←v22124;
            var←c70044.f1 = 0;
            {
               word pd68;
               pd68 = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c81340)+226)/* var←c70076 */  ))+8) ))+(((unsigned)function←v13092 << 29) >> 30))
                  )+(function←v13092 & 1)) );
               (void) ( *( (fPt) ((*  (ptr) pd68 ))))(var←c70012, var←c70044, bits←v22168, bits←v22168, 1, bits←v22168, pd68);
               };
            };
         };
      };
   }

static word Get←P3120(map←v13388, index←v13416)
   word map←v13388;
   W2 index←v13416;
   {
   register ptr gf←c81372 =  (ptr) &globalframe;
   word var←c13460;
   /* Get: */ 
SOURCE(18553, 1083)
SOURCE(18628, 1008)
   {
      word var←c70108;
      var←c70108 = map←v13388;
      if ((var←c70108 == 0)) {
         goto lab←L100086;
         };
      {
         word var←c70684;
         var←c70684 = (* (( (ptr) var←c70108)+6) );
         if ((var←c70684 == 0)) {
            {
               word map←v22212;
               map←v22212 = var←c70108;
SOURCE(18673, 627)
               {
                  W2 size←v22256;
                  W2 v←v22284;
                  word bitsPerSample←v22312;
                  word bitIndex←v22340;
                  word pointer←v22368;
                  word shiftAmt←v22396;
                  word mask←v22424;
                  word shiftedBits←v22452;
SOURCE(18675, 27)
                  {
                     word map←v56180;
                     map←v56180 = map←v22212;
SOURCE(1717, 74)
                     size←v22256.f0 = ((* (( (ptr) map←v56180)+2) ) - (*  (ptr) map←v56180 ));
                     size←v22256.f1 = ((* (( (ptr) map←v56180)+3) ) - (* (( (ptr) map←v56180)+1) ));
                     };
SOURCE(18704, 41)
                  {
                     W2 v2←v61580;
                     v2←v61580 = (*  (W2Pt) map←v22212 );
                     v←v22284.f0 = (index←v13416.f0 - v2←v61580.f0);
                     v←v22284.f1 = (index←v13416.f1 - v2←v61580.f1);
                     };
SOURCE(18747, 38)
                  bitsPerSample←v22312 = (* (( (ptr) map←v22212)+5) );
SOURCE(18787, 123)
                  {
                     word var←c70268;
                     word limit←v58692;
                     word var←c01319;
                     word var←c70332;
                     word limit←v58644;
                     word var←c01320;
                     {
                        word idx69;
                        limit←v58692 = (
                           idx69 = (word) size←v22256.f0,
                           SGNCK(idx69)
                           );
                        };
SOURCE(3132, 92)
                     if ((v←v22284.f0 >= limit←v58692)) {
SOURCE(3175, 36)
                        (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81372)+227)/* var←c70300 */  ))+8) ), 0);
                        }
                     else {
SOURCE(3211, 13)
                        {
                           word idx70;
                           var←c70268 = (
/*1*/   idx70 = (word) v←v22284.f0,
/*1*/   SGNCK(idx70)
/*1*/   );
                           };
                        };
                     var←c01319 = (var←c70268 * (* (( (ptr) map←v22212)+7) ));
                     {
                        word idx71;
                        limit←v58644 = (
                           idx71 = (word) size←v22256.f1,
                           SGNCK(idx71)
                           );
                        };
SOURCE(3132, 92)
                     if ((v←v22284.f1 >= limit←v58644)) {
SOURCE(3175, 36)
                        (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81372)+227)/* var←c70300 */  ))+8) ), 0);
                        }
                     else {
SOURCE(3211, 13)
                        {
                           word idx72;
                           var←c70332 = (
/*1*/   idx72 = (word) v←v22284.f1,
/*1*/   SGNCK(idx72)
/*1*/   );
                           };
                        };
                     var←c01320 = (var←c01319 + (var←c70332 * bitsPerSample←v22312));
                     bitIndex←v22340 = (var←c01320 + (* (( (ptr) map←v22212)+9) ));
                     };
SOURCE(18912, 59)
                  {
                     word word←v58212;
                     word←v58212 = (* (( (ptr) map←v22212)+8) );
                     {
                        word mod←v18328;
                        mod←v18328 = (bitIndex←v22340 & 037);
SOURCE(3022, 40)
                        pointer←v22368 = (word←v58212 + IOP2( / ,  (int)(bitIndex←v22340 - mod←v18328),  (int)8));
                        };
                     };
SOURCE(18973, 55)
                  {
                     word var←c70396;
                     word i←v60840;
                     i←v60840 = SGNCK(bitIndex←v22340);
SOURCE(18510, 39)
                     var←c70396 = (i←v60840 & 037);
                     shiftAmt←v22396 = ((var←c70396 + bitsPerSample←v22312) - 32);
                     };
SOURCE(19030, 39)
                  {
                     word var←c70428;
                     {
                        word i←v60888;
                        i←v60888 = (32 - bitsPerSample←v22312);
SOURCE(18510, 39)
                        var←c70428 = (i←v60888 & 037);
                        };
                     mask←v22424 = (word) XRM←BITRSHIFT( (word) -1, var←c70428);
                     };
SOURCE(19071, 185)
                  if (( (int)shiftAmt←v22396 <=  (int)0)) {
                     {
                        word var←c70492;
                        {
                           word i←v60792;
                           i←v60792 = INEG(shiftAmt←v22396);
SOURCE(18510, 39)
                           var←c70492 = (i←v60792 & 037);
                           };
                        shiftedBits←v22452 = (word) XRM←BITRSHIFT((*  (ptr) pointer←v22368 ), var←c70492);
                        };
                     }
                  else {
                     {
                        word var←c70556;
                        word var←c01321;
                        {
                           word i←v60744;
                           i←v60744 = (32 - shiftAmt←v22396);
SOURCE(18510, 39)
                           var←c70556 = (i←v60744 & 037);
                           };
                        var←c01321 = (word) XRM←BITRSHIFT((* (( (ptr) pointer←v22368)+1) ), var←c70556);
                        shiftedBits←v22452 = ((word) XRM←BITLSHIFT((*  (ptr) pointer←v22368 ), (shiftAmt←v22396 & 037)) + var←c01321);
                        };
                     };
SOURCE(19258, 40)
                  return((word) XRM←BITAND(shiftedBits←v22452, mask←v22424));
                  };
               };
            }
         else {
            if ((var←c70684 == 1)) {
               {
                  word map←v22496;
                  map←v22496 = var←c70108;
SOURCE(19327, 309)
                  {
                     word buffer←v22540;
                     word sample←v22568 = 0;
                     word true←v22596;
                     word class←v22624;
SOURCE(19329, 46)
                     buffer←v22540 = (word) ObtainScratchSamples←P780(1);
SOURCE(19397, 52)
                     {
                        word var←c70652;
                        W4 box←v63224;
                        box←v63224 = (*  (W4Pt) map←v22496 );
                        if ( ( ( (int)index←v13416.f0 >=  (int)box←v63224.f0) ? ( (int)index←v13416.f0 <  (int)box←v63224.f2) : 0 ) ) {
                           if (( (int)index←v13416.f1 >=  (int)box←v63224.f1)) {
/*1*/   var←c70652 =  (unsigned) ( (int)index←v13416.f1 <  (int)box←v63224.f3);
/*1*/   }
                           else {
/*1*/   var←c70652 =  (unsigned) 0;
/*1*/   };
                           }
                        else {
                           var←c70652 =  (unsigned) 0;
                           };
                        true←v22596 = BCK((var←c70652 - 1), 1);
                        };
SOURCE(19451, 33)
                     class←v22624 = (* (( (ptr) map←v22496)+7) );
SOURCE(19486, 81)
                     {
                        word pd73;
                        pd73 = (*  (ptr) class←v22624 );
                        (void) ( *( (fPt) ((*  (ptr) pd73 ))))(map←v22496, index←v13416, buffer←v22540, 0, 1, pd73);
                        };
SOURCE(19569, 18)
                     {
                        word limit74;
                        sample←v22568 = (* ((( (ptr) buffer←v22540)+2)+(
/*1*/   limit74 = (* (( (ptr) buffer←v22540)+1) ),
/*1*/   BCK(0, limit74)
/*1*/   )) );
                        };
SOURCE(19589, 29)
                     (void) ReleaseScratchSamples←P840(buffer←v22540);
SOURCE(19620, 16)
                     return(sample←v22568);
                     };
                  };
               }
            else {
               lab←L100086: ;
SOURCE(19650, 5)
               (void) XR←RaiseUnnamedError();
               };
            };
         };
      };
   }

static void Put←P3180(map←v13520, index←v13548, value←v13576, function←v13604)
   word map←v13520;
   W2 index←v13548;
   word value←v13576;
   word function←v13604;
   {
   register ptr gf←c81404 =  (ptr) &globalframe;
   word false←v22688;
   /* Put: */ 
SOURCE(19661, 910)
SOURCE(19761, 41)
   {
      word idx75;
      false←v22688 = (
         idx75 = (* (( (ptr) map←v13520)+4) ),
         BCK(idx75, 1)
         );
      };
SOURCE(19804, 767)
   {
      word var←c70716;
      var←c70716 = map←v13520;
      if ((var←c70716 == 0)) {
         goto lab←L100097;
         };
      {
         word var←c71036;
         var←c71036 = (* (( (ptr) var←c70716)+6) );
         if ((var←c71036 == 0)) {
            {
               word map←v22752;
               map←v22752 = var←c70716;
SOURCE(19857, 397)
               {
                  W2 size←v22796;
                  W2 v←v22824;
                  word bitsPerSample←v22852;
                  word bitIndex←v22880;
SOURCE(19859, 27)
                  {
                     word map←v56132;
                     map←v56132 = map←v22752;
SOURCE(1717, 74)
                     size←v22796.f0 = ((* (( (ptr) map←v56132)+2) ) - (*  (ptr) map←v56132 ));
                     size←v22796.f1 = ((* (( (ptr) map←v56132)+3) ) - (* (( (ptr) map←v56132)+1) ));
                     };
SOURCE(19888, 41)
                  {
                     W2 v2←v61532;
                     v2←v61532 = (*  (W2Pt) map←v22752 );
                     v←v22824.f0 = (index←v13548.f0 - v2←v61532.f0);
                     v←v22824.f1 = (index←v13548.f1 - v2←v61532.f1);
                     };
SOURCE(19931, 38)
                  bitsPerSample←v22852 = (* (( (ptr) map←v22752)+5) );
SOURCE(19971, 123)
                  {
                     word var←c70876;
                     word limit←v58596;
                     word var←c01322;
                     word var←c70908;
                     word limit←v58548;
                     word var←c01323;
                     {
                        word idx76;
                        limit←v58596 = (
                           idx76 = (word) size←v22796.f0,
                           SGNCK(idx76)
                           );
                        };
SOURCE(3132, 92)
                     if ((v←v22824.f0 >= limit←v58596)) {
SOURCE(3175, 36)
                        (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81404)+227)/* var←c70300 */  ))+8) ), 0);
                        }
                     else {
SOURCE(3211, 13)
                        {
                           word idx77;
                           var←c70876 = (
/*1*/   idx77 = (word) v←v22824.f0,
/*1*/   SGNCK(idx77)
/*1*/   );
                           };
                        };
                     var←c01322 = (var←c70876 * (* (( (ptr) map←v22752)+7) ));
                     {
                        word idx78;
                        limit←v58548 = (
                           idx78 = (word) size←v22796.f1,
                           SGNCK(idx78)
                           );
                        };
SOURCE(3132, 92)
                     if ((v←v22824.f1 >= limit←v58548)) {
SOURCE(3175, 36)
                        (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81404)+227)/* var←c70300 */  ))+8) ), 0);
                        }
                     else {
SOURCE(3211, 13)
                        {
                           word idx79;
                           var←c70908 = (
/*1*/   idx79 = (word) v←v22824.f1,
/*1*/   SGNCK(idx79)
/*1*/   );
                           };
                        };
                     var←c01323 = (var←c01322 + (var←c70908 * bitsPerSample←v22852));
                     bitIndex←v22880 = (var←c01323 + (* (( (ptr) map←v22752)+9) ));
                     };
SOURCE(20096, 156)
                  {
                     word var←c70940;
                     {
                        word i←v60696;
                        i←v60696 = (32 - bitsPerSample←v22852);
SOURCE(18510, 39)
                        var←c70940 = (i←v60696 & 037);
                        };
                     (void) Basics←CopyBits((* (( (ptr) map←v22752)+8) ), bitIndex←v22880, (word) &value←v13576, var←c70940, bitsPerSample←v22852)
                     ;
                     };
                  };
               };
            }
         else {
            if ((var←c71036 == 1)) {
               {
                  word map←v22924;
                  map←v22924 = var←c70716;
SOURCE(20281, 292)
                  {
                     word buffer←v22968;
                     word true←v22996;
                     word class←v23024;
SOURCE(20283, 46)
                     buffer←v22968 = (word) ObtainScratchSamples←P780(1);
SOURCE(20331, 52)
                     {
                        word var←c71004;
                        W4 box←v63176;
                        box←v63176 = (*  (W4Pt) map←v22924 );
                        if ( ( ( (int)index←v13548.f0 >=  (int)box←v63176.f0) ? ( (int)index←v13548.f0 <  (int)box←v63176.f2) : 0 ) ) {
                           if (( (int)index←v13548.f1 >=  (int)box←v63176.f1)) {
/*1*/   var←c71004 =  (unsigned) ( (int)index←v13548.f1 <  (int)box←v63176.f3);
/*1*/   }
                           else {
/*1*/   var←c71004 =  (unsigned) 0;
/*1*/   };
                           }
                        else {
                           var←c71004 =  (unsigned) 0;
                           };
                        true←v22996 = BCK((var←c71004 - 1), 1);
                        };
SOURCE(20385, 33)
                     class←v23024 = (* (( (ptr) map←v22924)+7) );
SOURCE(20420, 17)
                     {
                        word limit80;
                        (* ((( (ptr) buffer←v22968)+2)+(
/*1*/   limit80 = (* (( (ptr) buffer←v22968)+1) ),
/*1*/   BCK(0, limit80)
/*1*/   )) ) = value←v13576;
                        };
SOURCE(20439, 101)
                     {
                        word pd81;
                        pd81 = (* (( (ptr) class←v23024)+1) );
                        (void) ( *( (fPt) ((*  (ptr) pd81 ))))(map←v22924, index←v13548, buffer←v22968, 0, 1, function←v13604, pd81);
                        };
SOURCE(20542, 29)
                     (void) ReleaseScratchSamples←P840(buffer←v22968);
                     };
                  };
               }
            else {
               lab←L100097: ;
               };
            };
         };
      };
   }

static void GetSamples←P3240(map←v13664, initIndex←v13692, delta←v13720, buffer←v13748, start←v13776, count←v13804)
   word map←v13664;
   W2 initIndex←v13692;
   W2 delta←v13720;
   word buffer←v13748;
   word start←v13776;
   word count←v13804;
   {
   register ptr gf←c81436 =  (ptr) &globalframe;
   W2 size←v23088;
   /* GetSamples: */ 
SOURCE(20597, 2791)
SOURCE(20756, 27)
   size←v23088.f0 = ((* (( (ptr) map←v13664)+2) ) - (*  (ptr) map←v13664 ));
   size←v23088.f1 = ((* (( (ptr) map←v13664)+3) ) - (* (( (ptr) map←v13664)+1) ));
SOURCE(20785, 39)
   {
      word x82;
      count←v13804 = (x82 = ((*  (ptr) buffer←v13748 ) - start←v13776),
         MIN((int)(word), x82, count←v13804));
      };
SOURCE(20826, 119)
   (void) CheckBuffer←P2460(map←v13664, initIndex←v13692.f0, initIndex←v13692.f1, delta←v13720.f0, delta←v13720.f1, count←v13804)
   ;
SOURCE(20947, 2441)
   if ( (  ( ( (int)delta←v13720.f0 ==  (int)0) ? ( (int)delta←v13720.f1 ==  (int)1) : 0 )  ? (count←v13804 != 0) : 0 ) ) {
SOURCE(20999, 540)
      {
         word var←c71100;
         var←c71100 = map←v13664;
         if ((var←c71100 == 0)) {
            goto lab←L100104;
            };
         {
            word var←c71420;
            var←c71420 = (* (( (ptr) var←c71100)+6) );
            if ((var←c71420 == 0)) {
               {
                  word map←v23132;
                  map←v23132 = var←c71100;
SOURCE(21052, 330)
                  {
                     W2 v0←v23176;
                     word srcBitIndex←v23204;
SOURCE(21054, 46)
                     {
                        W2 v2←v61484;
                        v2←v61484 = (*  (W2Pt) map←v23132 );
                        v0←v23176.f0 = (initIndex←v13692.f0 - v2←v61484.f0);
                        v0←v23176.f1 = (initIndex←v13692.f1 - v2←v61484.f1);
                        };
SOURCE(21102, 121)
                     {
                        word var←c71196;
                        word limit←v58500;
                        word var←c01324;
                        word var←c71228;
                        word limit←v58452;
                        {
                           word idx83;
                           limit←v58500 = (
/*1*/   idx83 = (word) size←v23088.f0,
/*1*/   SGNCK(idx83)
/*1*/   );
                           };
SOURCE(3132, 92)
                        if ((v0←v23176.f0 >= limit←v58500)) {
SOURCE(3175, 36)
                           (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81436)+227)/* var←c70300 */  ))+8) ), 0);
                           }
                        else {
SOURCE(3211, 13)
                           {
/*1*/   word idx84;
/*1*/   var←c71196 = (
/*1*/      idx84 = (word) v0←v23176.f0,
/*1*/      SGNCK(idx84)
/*1*/      );
/*1*/   };
                           };
                        var←c01324 = (var←c71196 * (* (( (ptr) map←v23132)+7) ));
                        {
                           word idx85;
                           limit←v58452 = (
/*1*/   idx85 = (word) size←v23088.f1,
/*1*/   SGNCK(idx85)
/*1*/   );
                           };
SOURCE(3132, 92)
                        if ((v0←v23176.f1 >= limit←v58452)) {
SOURCE(3175, 36)
                           (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81436)+227)/* var←c70300 */  ))+8) ), 0);
                           }
                        else {
SOURCE(3211, 13)
                           {
/*1*/   word idx86;
/*1*/   var←c71228 = (
/*1*/      idx86 = (word) v0←v23176.f1,
/*1*/      SGNCK(idx86)
/*1*/      );
/*1*/   };
                           };
                        srcBitIndex←v23204 = (var←c01324 + (var←c71228 * (* (( (ptr) map←v23132)+5) )));
                        };
SOURCE(21225, 155)
                     {
                        word var←c71260;
                        W2 var←c71324;
                        {
                           word var←c71292;
                           word check←v59704;
                           check←v59704 = (((* (( (ptr) buffer←v13748)+1) ) - start←v13776) - count←v13804);
SOURCE(4940, 67)
                           var←c71292 = (buffer←v13748 + ((word) ((word) (((word) BCK(start←v13776, 67108861) << 5) + 95) >> 5) << 2));
                           var←c71260 = var←c71292;
                           };
                        {
                           W2 var←c71356;
                           W2 addr←v57984;
                           addr←v57984 = (*  (W2Pt) (( (ptr) map←v23132)+8) );
                           {
/*1*/   word bitOffset←v58016;
/*1*/   word mod←v58044;
/*1*/   bitOffset←v58016 = (srcBitIndex←v23204 + addr←v57984.f1);
/*1*/   mod←v58044 = (bitOffset←v58016 & 037);
SOURCE(2833, 63)
/*1*/   var←c71356.f0 = (addr←v57984.f0 + IOP2( / ,  (int)(bitOffset←v58016 - mod←v58044),  (int)8));
/*1*/   var←c71356.f1 = mod←v58044;
/*1*/   };
                           var←c71324 = var←c71356;
                           };
                        {
                           word pd87;
                           pd87 = (* (( (ptr) (* (( (ptr) gf←c81436)+226)/* var←c70076 */  ))+5) );
                           (void) ( *( (fPt) ((*  (ptr) pd87 ))))(var←c71260, var←c71324, (* (( (ptr) map←v23132)+5) ), count←v13804, pd87);
                           };
                        };
                     };
                  };
               }
            else {
               if ((var←c71420 == 1)) {
                  {
                     word map←v23248;
                     map←v23248 = var←c71100;
SOURCE(21409, 132)
                     {
                        word class←v23292;
SOURCE(21411, 33)
                        class←v23292 = (* (( (ptr) map←v23248)+7) );
SOURCE(21446, 93)
                        {
                           word pd88;
                           pd88 = (*  (ptr) class←v23292 );
                           (void) ( *( (fPt) ((*  (ptr) pd88 ))))(map←v23248, initIndex←v13692, buffer←v13748, start←v13776, count←v13804, pd88);
                           };
                        };
                     };
                  }
               else {
                  lab←L100104: ;
SOURCE(21555, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      }
   else {
SOURCE(21571, 1817)
      {
         word var←c71452;
         var←c71452 = map←v13664;
         if ((var←c71452 == 0)) {
            goto lab←L100110;
            };
         {
            word var←c72060;
            var←c72060 = (* (( (ptr) var←c71452)+6) );
            if ((var←c72060 == 0)) {
               {
                  word map←v23336;
                  map←v23336 = var←c71452;
SOURCE(21624, 1521)
                  {
                     W2 v←v23380;
                     word bitsPerSample←v23408;
                     word bitIndex←v23436;
                     word bitIndexDelta←v23464;
SOURCE(21626, 45)
                     {
                        W2 v2←v61436;
                        v2←v61436 = (*  (W2Pt) map←v23336 );
                        v←v23380.f0 = (initIndex←v13692.f0 - v2←v61436.f0);
                        v←v23380.f1 = (initIndex←v13692.f1 - v2←v61436.f1);
                        };
SOURCE(21673, 38)
                     bitsPerSample←v23408 = (* (( (ptr) map←v23336)+5) );
SOURCE(21713, 125)
                     {
                        word var←c71548;
                        word limit←v58404;
                        word var←c01325;
                        word var←c71580;
                        word limit←v58356;
                        word var←c01326;
                        {
                           word idx89;
                           limit←v58404 = (
/*1*/   idx89 = (word) size←v23088.f0,
/*1*/   SGNCK(idx89)
/*1*/   );
                           };
SOURCE(3132, 92)
                        if ((v←v23380.f0 >= limit←v58404)) {
SOURCE(3175, 36)
                           (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81436)+227)/* var←c70300 */  ))+8) ), 0);
                           }
                        else {
SOURCE(3211, 13)
                           {
/*1*/   word idx90;
/*1*/   var←c71548 = (
/*1*/      idx90 = (word) v←v23380.f0,
/*1*/      SGNCK(idx90)
/*1*/      );
/*1*/   };
                           };
                        var←c01325 = (var←c71548 * (* (( (ptr) map←v23336)+7) ));
                        {
                           word idx91;
                           limit←v58356 = (
/*1*/   idx91 = (word) size←v23088.f1,
/*1*/   SGNCK(idx91)
/*1*/   );
                           };
SOURCE(3132, 92)
                        if ((v←v23380.f1 >= limit←v58356)) {
SOURCE(3175, 36)
                           (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81436)+227)/* var←c70300 */  ))+8) ), 0);
                           }
                        else {
SOURCE(3211, 13)
                           {
/*1*/   word idx92;
/*1*/   var←c71580 = (
/*1*/      idx92 = (word) v←v23380.f1,
/*1*/      SGNCK(idx92)
/*1*/      );
/*1*/   };
                           };
                        var←c01326 = (var←c01325 + (var←c71580 * bitsPerSample←v23408));
                        bitIndex←v23436 = (var←c01326 + (* (( (ptr) map←v23336)+9) ));
                        };
SOURCE(21840, 82)
                     {
                        word idx93;
                        bitIndexDelta←v23464 = (IOP2( * ,  (int)(
/*1*/   idx93 = (* (( (ptr) map←v23336)+7) ),
/*1*/   SGNCK(idx93)
/*1*/   ),  (int)delta←v13720.f0) + IOP2( * ,  (int)(* (( (ptr) map←v23336)+5) ),  (int)delta←v13720.f1));
                        };
                     if ( (  ( (bitsPerSample←v23408 == 8) ? ((bitIndex←v23436 & 7) == 0) : 0 )  ? ((bitIndexDelta←v23464 & 7) == 0) : 0 ) ) {
SOURCE(22060, 590)
                        {
                           word step←v23508;
                           word bx←v23536;
                           word src←v23564;
                           word dst←v23592;
                           word lim←v23620;
                           word lim4←v23648;
SOURCE(22062, 38)
                           step←v23508 = IOP2( / ,  (int)bitIndexDelta←v23464,  (int)8);
SOURCE(22102, 36)
                           bx←v23536 = ((word) bitIndex←v23436 >> 3);
SOURCE(22140, 55)
                           src←v23564 = (* (( (ptr) map←v23336)+8) );
SOURCE(22197, 75)
                           {
/*1*/   word check←v59660;
/*1*/   check←v59660 = (((* (( (ptr) buffer←v13748)+1) ) - start←v13776) - count←v13804);
SOURCE(4940, 67)
/*1*/   dst←v23592 = (buffer←v13748 + ((word) ((word) (((word) BCK(start←v13776, 67108861) << 5) + 95) >> 5) << 2));
/*1*/   };
SOURCE(22274, 43)
                           lim←v23620 = (dst←v23592 + ((word) count←v13804 << 2));
SOURCE(22319, 52)
                           lim4←v23648 = (lim←v23620 - ((word) (count←v13804 & 3) << 2));
SOURCE(22373, 180)
                           lab←L100117: ;
                           if ((dst←v23592 != lim4←v23648)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100115;
/*1*/   };
SOURCE(22393, 16)
                           (*  (ptr) dst←v23592 ) =  (unsigned) (word) (* (( (bPt) src←v23564)+bx←v23536) );
SOURCE(22411, 14)
                           bx←v23536 = (bx←v23536 + step←v23508);
SOURCE(22427, 16)
                           (* (( (ptr) dst←v23592)+1) ) =  (unsigned) (word) (* (( (bPt) src←v23564)+bx←v23536) );
SOURCE(22445, 14)
                           bx←v23536 = (bx←v23536 + step←v23508);
SOURCE(22461, 16)
                           (* (( (ptr) dst←v23592)+2) ) =  (unsigned) (word) (* (( (bPt) src←v23564)+bx←v23536) );
SOURCE(22479, 14)
                           bx←v23536 = (bx←v23536 + step←v23508);
SOURCE(22495, 16)
                           (* (( (ptr) dst←v23592)+3) ) =  (unsigned) (word) (* (( (bPt) src←v23564)+bx←v23536) );
SOURCE(22513, 14)
                           bx←v23536 = (bx←v23536 + step←v23508);
SOURCE(22529, 24)
                           dst←v23592 = (dst←v23592 + 16);
                           goto lab←L100117;
                           lab←L100115: ;
SOURCE(22564, 75)
                           lab←L100120: ;
                           if ((dst←v23592 != lim←v23620)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100118;
/*1*/   };
SOURCE(22583, 16)
                           (*  (ptr) dst←v23592 ) =  (unsigned) (word) (* (( (bPt) src←v23564)+bx←v23536) );
SOURCE(22601, 22)
                           dst←v23592 = (dst←v23592 + 4);
SOURCE(22625, 14)
                           bx←v23536 = (bx←v23536 + step←v23508);
                           goto lab←L100120;
                           lab←L100118: ;
                           };
                        }
                     else {
SOURCE(22664, 478)
                        {
                           word mask←v23692;
SOURCE(22666, 39)
                           {
/*1*/   word var←c71644;
/*1*/   {
/*1*/      word i←v61032;
/*1*/      i←v61032 = (32 - bitsPerSample←v23408);
SOURCE(18510, 39)
/*1*/      var←c71644 = (i←v61032 & 037);
/*1*/      };
/*1*/   mask←v23692 = (word) XRM←BITRSHIFT( (word) -1, var←c71644);
/*1*/   };
SOURCE(22707, 424)
                           {
/*1*/   register word i←v23736;
/*1*/   register word noName←c71708;
/*1*/   i←v23736 = start←v13776;
/*1*/   noName←c71708 = (start←v13776 + count←v13804);
/*1*/   if ((i←v23736 >= noName←c71708)) {
/*1*/      goto lab←L100122;
/*1*/      };
/*1*/   lab←L100125: ;
/*1*/   {
/*1*/      word pointer←v23780;
/*1*/      word shiftAmt←v23808;
/*1*/      word shiftedBits←v23836;
SOURCE(22745, 59)
/*1*/      {
/*1*/         word word←v58136;
/*1*/         word←v58136 = (* (( (ptr) map←v23336)+8) );
/*1*/         {
/*1*/            word mod←v58168;
/*1*/            mod←v58168 = (bitIndex←v23436 & 037);
SOURCE(3022, 40)
/*1*/            pointer←v23780 = (word←v58136 + IOP2( / ,  (int)(bitIndex←v23436 - mod←v58168),  (int)8));
/*1*/            };
/*1*/         };
SOURCE(22806, 55)
/*1*/      {
/*1*/         word var←c71772;
/*1*/         word i←v60648;
/*1*/         i←v60648 = SGNCK(bitIndex←v23436);
SOURCE(18510, 39)
/*1*/         var←c71772 = (i←v60648 & 037);
/*1*/         shiftAmt←v23808 = ((var←c71772 + bitsPerSample←v23408) - 32);
/*1*/         };
SOURCE(22863, 185)
/*1*/      if (( (int)shiftAmt←v23808 <=  (int)0)) {
/*1*/         {
/*1*/            word var←c71804;
/*1*/            {
/*1*/               word i←v60600;
/*1*/               i←v60600 = INEG(shiftAmt←v23808);
SOURCE(18510, 39)
/*1*/               var←c71804 = (i←v60600 & 037);
/*1*/               };
/*1*/            shiftedBits←v23836 = (word) XRM←BITRSHIFT((*  (ptr) pointer←v23780 ), var←c71804);
/*1*/            };
/*1*/         }
/*1*/      else {
/*1*/         {
/*1*/            word var←c71868;
/*1*/            word var←c01327;
/*1*/            {
/*1*/               word i←v60552;
/*1*/               i←v60552 = (32 - shiftAmt←v23808);
SOURCE(18510, 39)
/*1*/               var←c71868 = (i←v60552 & 037);
/*1*/               };
/*1*/            var←c01327 = (word) XRM←BITRSHIFT((* (( (ptr) pointer←v23780)+1) ), var←c71868);
/*1*/            shiftedBits←v23836 = ((word) XRM←BITLSHIFT((*  (ptr) pointer←v23780 ), (shiftAmt←v23808 & 037)) + var←c01327);
/*1*/            };
/*1*/         };
SOURCE(23050, 44)
/*1*/      {
/*1*/         word var←c71932;
/*1*/         var←c71932 = (word) XRM←BITAND(shiftedBits←v23836, mask←v23692);
/*1*/         {
/*1*/            word limit94;
/*1*/            (* ((( (ptr) buffer←v13748)+2)+(
/*1*/                  limit94 = (* (( (ptr) buffer←v13748)+1) ),
/*1*/                  BCK(i←v23736, limit94)
/*1*/                  )) ) = var←c71932;
/*1*/            };
/*1*/         };
SOURCE(23096, 35)
/*1*/      bitIndex←v23436 = (bitIndex←v23436 + bitIndexDelta←v23464);
/*1*/      };
/*1*/   i←v23736 = (i←v23736 + 1);
/*1*/   if ((i←v23736 < noName←c71708)) {
/*1*/      goto lab←L100125;
/*1*/      };
/*1*/   lab←L100122: ;
/*1*/   };
                           };
                        };
                     };
                  };
               }
            else {
               if ((var←c72060 == 1)) {
                  {
                     word map←v23880;
                     map←v23880 = var←c71452;
SOURCE(23172, 227)
                     {
                        W2 index←v23924;
                        word class←v23952;
SOURCE(23174, 22)
                        index←v23924 = initIndex←v13692;
SOURCE(23198, 33)
                        class←v23952 = (* (( (ptr) map←v23880)+7) );
SOURCE(23233, 155)
                        {
                           register word i←v23996;
                           register word noName←c71964;
                           i←v23996 = start←v13776;
                           noName←c71964 = (start←v13776 + count←v13804);
                           if ((i←v23996 >= noName←c71964)) {
/*1*/   goto lab←L100130;
/*1*/   };
                           lab←L100133: ;
SOURCE(23271, 81)
                           {
/*1*/   word pd95;
/*1*/   pd95 = (*  (ptr) class←v23952 );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd95 ))))(map←v23880, index←v23924, buffer←v13748, i←v23996, 1, pd95);
/*1*/   };
SOURCE(23354, 34)
                           {
/*1*/   word var←c71996;
/*1*/   word var←c72028;
/*1*/   var←c71996 = (index←v23924.f0 + delta←v13720.f0);
/*1*/   var←c72028 = (index←v23924.f1 + delta←v13720.f1);
/*1*/   index←v23924.f0 = var←c71996;
/*1*/   index←v23924.f1 = var←c72028;
/*1*/   };
                           i←v23996 = (i←v23996 + 1);
                           if ((i←v23996 < noName←c71964)) {
/*1*/   goto lab←L100133;
/*1*/   };
                           lab←L100130: ;
                           };
                        };
                     };
                  }
               else {
                  lab←L100110: ;
SOURCE(23413, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      };
   }

static void PutSamples←P3300(map←v13864, initIndex←v13892, delta←v13920, buffer←v13948, start←v13976, count←v14004, function←v14032)
   word map←v13864;
   W2 initIndex←v13892;
   W2 delta←v13920;
   word buffer←v13948;
   word start←v13976;
   word count←v14004;
   word function←v14032;
   {
   register ptr gf←c81468 =  (ptr) &globalframe;
   word false←v24040;
   W2 size←v24068;
   word sDelta←v24096;
   word fDelta←v24124;
   /* PutSamples: */ 
SOURCE(23427, 2339)
SOURCE(23621, 41)
   {
      word idx96;
      false←v24040 = (
         idx96 = (* (( (ptr) map←v13864)+4) ),
         BCK(idx96, 1)
         );
      };
SOURCE(23664, 27)
   size←v24068.f0 = ((* (( (ptr) map←v13864)+2) ) - (*  (ptr) map←v13864 ));
   size←v24068.f1 = ((* (( (ptr) map←v13864)+3) ) - (* (( (ptr) map←v13864)+1) ));
SOURCE(23693, 25)
   sDelta←v24096 = delta←v13920.f0;
SOURCE(23720, 25)
   fDelta←v24124 = delta←v13920.f1;
SOURCE(23747, 39)
   {
      word x97;
      count←v14004 = (x97 = ((*  (ptr) buffer←v13948 ) - start←v13976),
         MIN((int)(word), x97, count←v14004));
      };
SOURCE(23788, 117)
   (void) CheckBuffer←P2460(map←v13864, initIndex←v13892.f0, initIndex←v13892.f1, sDelta←v24096, fDelta←v24124, count←v14004)
   ;
SOURCE(23907, 24)
   if ((count←v14004 == 0)) {
SOURCE(23925, 6)
      return;
      };
SOURCE(23933, 1047)
   if ( ( ( (int)sDelta←v24096 ==  (int)0) ? ( (int)fDelta←v24124 ==  (int)1) : 0 ) ) {
SOURCE(23969, 1013)
      {
         word srcBuffer←v24188;
SOURCE(23971, 32)
         srcBuffer←v24188 = buffer←v13948;
SOURCE(24005, 308)
         if ((function←v14032 != 0)) {
SOURCE(24037, 278)
            {
               word tmpBuffer←v24232;
SOURCE(24039, 67)
               tmpBuffer←v24232 = (word) ObtainScratchSamples←P780(SGNCK((start←v13976 + count←v14004)));
SOURCE(24108, 89)
               {
                  W2 var←c72124;
                  var←c72124.f0 = 0;
                  var←c72124.f1 = 1;
                  (void) GetSamples←P3240(map←v13864, initIndex←v13892, var←c72124, tmpBuffer←v24232, start←v13976, count←v14004);
                  };
SOURCE(24199, 91)
               (void) ApplyToSamples←P3000(function←v14032, tmpBuffer←v24232, buffer←v13948, start←v13976, count←v14004);
SOURCE(24292, 21)
               srcBuffer←v24188 = tmpBuffer←v24232;
               };
            };
SOURCE(24318, 564)
         {
            word var←c72156;
            var←c72156 = map←v13864;
            if ((var←c72156 == 0)) {
               goto lab←L100134;
               };
            {
               word var←c72476;
               var←c72476 = (* (( (ptr) var←c72156)+6) );
               if ((var←c72476 == 0)) {
                  {
                     word map←v24276;
                     map←v24276 = var←c72156;
SOURCE(24371, 331)
                     {
                        W2 v0←v24320;
                        word dstBitIndex←v24348;
SOURCE(24373, 46)
                        {
                           W2 v2←v61388;
                           v2←v61388 = (*  (W2Pt) map←v24276 );
                           v0←v24320.f0 = (initIndex←v13892.f0 - v2←v61388.f0);
                           v0←v24320.f1 = (initIndex←v13892.f1 - v2←v61388.f1);
                           };
SOURCE(24421, 121)
                        {
                           word var←c72252;
                           word limit←v58308;
                           word var←c01328;
                           word var←c72284;
                           word limit←v58260;
                           {
/*1*/   word idx98;
/*1*/   limit←v58308 = (
/*1*/      idx98 = (word) size←v24068.f0,
/*1*/      SGNCK(idx98)
/*1*/      );
/*1*/   };
SOURCE(3132, 92)
                           if ((v0←v24320.f0 >= limit←v58308)) {
SOURCE(3175, 36)
/*1*/   (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81468)+227)/* var←c70300 */  ))+8) ), 0);
/*1*/   }
                           else {
SOURCE(3211, 13)
/*1*/   {
/*1*/      word idx99;
/*1*/      var←c72252 = (
/*1*/         idx99 = (word) v0←v24320.f0,
/*1*/         SGNCK(idx99)
/*1*/         );
/*1*/      };
/*1*/   };
                           var←c01328 = (var←c72252 * (* (( (ptr) map←v24276)+7) ));
                           {
/*1*/   word idx100;
/*1*/   limit←v58260 = (
/*1*/      idx100 = (word) size←v24068.f1,
/*1*/      SGNCK(idx100)
/*1*/      );
/*1*/   };
SOURCE(3132, 92)
                           if ((v0←v24320.f1 >= limit←v58260)) {
SOURCE(3175, 36)
/*1*/   (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81468)+227)/* var←c70300 */  ))+8) ), 0);
/*1*/   }
                           else {
SOURCE(3211, 13)
/*1*/   {
/*1*/      word idx101;
/*1*/      var←c72284 = (
/*1*/         idx101 = (word) v0←v24320.f1,
/*1*/         SGNCK(idx101)
/*1*/         );
/*1*/      };
/*1*/   };
                           dstBitIndex←v24348 = (var←c01328 + (var←c72284 * (* (( (ptr) map←v24276)+5) )));
                           };
SOURCE(24544, 156)
                        {
                           W2 var←c72316;
                           word var←c72412;
                           {
/*1*/   W2 var←c72348;
/*1*/   W2 addr←v57880;
/*1*/   addr←v57880 = (*  (W2Pt) (( (ptr) map←v24276)+8) );
/*1*/   {
/*1*/      word bitOffset←v57912;
/*1*/      word mod←v57940;
/*1*/      bitOffset←v57912 = (dstBitIndex←v24348 + addr←v57880.f1);
/*1*/      mod←v57940 = (bitOffset←v57912 & 037);
SOURCE(2833, 63)
/*1*/      var←c72348.f0 = (addr←v57880.f0 + IOP2( / ,  (int)(bitOffset←v57912 - mod←v57940),  (int)8));
/*1*/      var←c72348.f1 = mod←v57940;
/*1*/      };
/*1*/   var←c72316 = var←c72348;
/*1*/   };
                           {
/*1*/   word var←c72444;
/*1*/   word check←v59616;
/*1*/   check←v59616 = (((* (( (ptr) srcBuffer←v24188)+1) ) - start←v13976) - count←v14004);
SOURCE(4940, 67)
/*1*/   var←c72444 = (srcBuffer←v24188 + ((word) ((word) (((word) BCK(start←v13976, 67108861) << 5) + 95) >> 5) << 2));
/*1*/   var←c72412 = var←c72444;
/*1*/   };
                           {
/*1*/   word pd102;
/*1*/   pd102 = (* (( (ptr) (* (( (ptr) gf←c81468)+226)/* var←c70076 */  ))+4) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd102 ))))(var←c72316, var←c72412, (* (( (ptr) map←v24276)+5) ), count←v14004, pd102);
/*1*/   };
                           };
                        };
                     };
                  }
               else {
                  if ((var←c72476 == 1)) {
                     {
                        word map←v24392;
                        map←v24392 = var←c72156;
SOURCE(24729, 155)
                        {
                           word class←v24436;
SOURCE(24731, 33)
                           class←v24436 = (* (( (ptr) map←v24392)+7) );
SOURCE(24766, 116)
                           {
/*1*/   word pd103;
/*1*/   pd103 = (* (( (ptr) class←v24436)+1) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd103 ))))(map←v24392, initIndex←v13892, srcBuffer←v24188, start←v13976, count←v14004, function←v14032, pd103)
/*1*/   ;
/*1*/   };
                           };
                        };
                     }
                  else {
                     lab←L100134: ;
SOURCE(24898, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            };
SOURCE(24905, 67)
         if ((srcBuffer←v24188 != buffer←v13948)) {
SOURCE(24932, 40)
            (void) ReleaseScratchSamples←P840(srcBuffer←v24188);
            };
SOURCE(24974, 6)
         return;
         };
      };
SOURCE(24985, 567)
   if ( ( ((* (( (ptr) map←v13864)+5) ) == 8) ? (function←v14032 == 0) : 0 ) ) {
SOURCE(25041, 511)
      {
         word var←c72508;
         var←c72508 = map←v13864;
         if ((var←c72508 == 0)) {
            goto lab←L100140;
            };
         if (((* (( (ptr) var←c72508)+6) ) == 0)) {
            {
               word map←v24480;
               map←v24480 = var←c72508;
SOURCE(25094, 458)
SOURCE(25096, 451)
               if ( ( (((* (( (ptr) map←v24480)+7) ) & 7) == 0) ? (((* (( (ptr) map←v24480)+9) ) & 7) == 0) : 0 ) ) {
SOURCE(25157, 392)
                  {
                     word dst←v24524;
                     word byteIndex←v24552;
                     word byteDelta←v24580;
                     word src←v24608;
SOURCE(25159, 57)
                     dst←v24524 = (* (( (ptr) map←v24480)+8) );
SOURCE(25218, 83)
                     byteIndex←v24552 = ((((* (( (ptr) map←v24480)+9) ) >> 3) + IOP2( * ,  (int)initIndex←v13892.f0,  (int)((* (( (ptr) map←v24480)+7)
                         ) >> 3))) + initIndex←v13892.f1);
SOURCE(25303, 54)
                     byteDelta←v24580 = (IOP2( * ,  (int)sDelta←v24096,  (int)((* (( (ptr) map←v24480)+7) ) >> 3)) + fDelta←v24124);
SOURCE(25359, 78)
                     {
                        word check←v59572;
                        check←v59572 = (((* (( (ptr) buffer←v13948)+1) ) - start←v13976) - count←v14004);
SOURCE(4940, 67)
                        src←v24608 = (buffer←v13948 + ((word) ((word) (((word) BCK(start←v13976, 67108861) << 5) + 95) >> 5) << 2));
                        };
SOURCE(25439, 91)
                     {
                        register word i←v24676 = 0;
                        register word noName←c72572;
                        noName←c72572 = count←v14004;
                        if ((i←v24676 >= noName←c72572)) {
                           goto lab←L100142;
                           };
                        lab←L100145: ;
SOURCE(25472, 23)
                        {
                           word idx104;
                           (* (( (bPt) dst←v24524)+byteIndex←v24552) ) = (
/*1*/   idx104 = (* (( (ptr) src←v24608)+i←v24676) ),
/*1*/   BCK(idx104, 256)
/*1*/   );
                           };
SOURCE(25497, 33)
                        byteIndex←v24552 = (byteIndex←v24552 + byteDelta←v24580);
                        i←v24676 = (i←v24676 + 1);
                        if ((i←v24676 < noName←c72572)) {
                           goto lab←L100145;
                           };
                        lab←L100142: ;
                        };
SOURCE(25541, 6)
                     return;
                     };
                  };
               };
            }
         else {
            lab←L100140: ;
            };
         };
      };
SOURCE(25572, 205)
   {
      W2 index←v24720;
SOURCE(25574, 22)
      index←v24720 = initIndex←v13892;
SOURCE(25598, 168)
      {
         register word i←v24764;
         register word noName←c72604;
         i←v24764 = start←v13976;
         noName←c72604 = (start←v13976 + count←v14004);
         if ((i←v24764 >= noName←c72604)) {
            goto lab←L100146;
            };
         lab←L100149: ;
SOURCE(25636, 94)
         {
            W2 var←c72636;
            var←c72636.f0 = 0;
            var←c72636.f1 = 1;
            (void) PutSamples←P3300(map←v13864, index←v24720, var←c72636, buffer←v13948, i←v24764, 1
               , function←v14032);
            };
SOURCE(25732, 34)
         {
            word var←c72668;
            word var←c72700;
            var←c72668 = (index←v24720.f0 + delta←v13920.f0);
            var←c72700 = (index←v24720.f1 + delta←v13920.f1);
            index←v24720.f0 = var←c72668;
            index←v24720.f1 = var←c72700;
            };
         i←v24764 = (i←v24764 + 1);
         if ((i←v24764 < noName←c72604)) {
            goto lab←L100149;
            };
         lab←L100146: ;
         };
      };
   }

static void Clear←P3360(map←v14092)
   word map←v14092;
   {
   word false←v24808;
   /* Clear: */ 
SOURCE(25784, 909)
SOURCE(25824, 41)
   {
      word idx105;
      false←v24808 = (
         idx105 = (* (( (ptr) map←v14092)+4) ),
         BCK(idx105, 1)
         );
      };
SOURCE(25867, 826)
   {
      word var←c72732;
      var←c72732 = map←v14092;
      if ((var←c72732 == 0)) {
         goto lab←L100150;
         };
      {
         word var←c72892;
         var←c72892 = (* (( (ptr) var←c72732)+6) );
         if ((var←c72892 == 0)) {
            {
               word map←v24872;
               map←v24872 = var←c72732;
SOURCE(25920, 725)
               {
                  word sSize←v24916;
                  word fSize←v24944;
                  word bitsPerLine←v24972;
                  word dataBitsPerLine←v25000;
                  word pointer←v25028;
                  word bit←v25056;
SOURCE(25922, 67)
                  sSize←v24916 = ((* (( (ptr) map←v24872)+2) ) - (*  (ptr) map←v24872 ));
SOURCE(25991, 67)
                  fSize←v24944 = ((* (( (ptr) map←v24872)+3) ) - (* (( (ptr) map←v24872)+1) ));
SOURCE(26060, 35)
                  bitsPerLine←v24972 = (* (( (ptr) map←v24872)+7) );
SOURCE(26097, 59)
                  dataBitsPerLine←v25000 = ((* (( (ptr) map←v24872)+5) ) * fSize←v24944);
SOURCE(26158, 37)
                  pointer←v25028 = (* (( (ptr) map←v24872)+8) );
SOURCE(26197, 24)
                  bit←v25056 = (* (( (ptr) map←v24872)+9) );
SOURCE(26223, 24)
                  if ((sSize←v24916 == 0)) {
SOURCE(26241, 6)
                     return;
                     };
SOURCE(26249, 382)
                  if (((dataBitsPerLine←v25000 + 32) > bitsPerLine←v24972)) {
SOURCE(26293, 120)
                     {
                        word var←c72764;
                        {
                           word bitCount←v56660;
                           bitCount←v56660 = ((bit←v25056 + (bitsPerLine←v24972 * sSize←v24916)) - (bitsPerLine←v24972 - dataBitsPerLine←v25000));
SOURCE(2535, 32)
                           var←c72764 = ((word) (bitCount←v56660 + 31) >> 5);
                           };
                        (void) Basics←FillWords(pointer←v25028, var←c72764, 0);
                        };
                     }
                  else {
SOURCE(26424, 207)
                     {
                        register word i←v25112 = 0;
                        if ((i←v25112 >= sSize←v24916)) {
                           goto lab←L100152;
                           };
                        lab←L100155: ;
SOURCE(26457, 82)
                        {
                           word var←c72828;
                           {
/*1*/   word bitCount←v56612;
/*1*/   bitCount←v56612 = (bit←v25056 + dataBitsPerLine←v25000);
SOURCE(2535, 32)
/*1*/   var←c72828 = ((word) (bitCount←v56612 + 31) >> 5);
/*1*/   };
                           (void) Basics←FillWords(pointer←v25028, var←c72828, 0);
                           };
SOURCE(26541, 23)
                        bit←v25056 = (bit←v25056 + bitsPerLine←v24972);
SOURCE(26566, 46)
                        pointer←v25028 = (pointer←v25028 + ((word) ((word) bit←v25056 >> 5) << 2));
SOURCE(26614, 17)
                        bit←v25056 = (bit←v25056 & 037);
                        i←v25112 = (i←v25112 + 1);
                        if ((i←v25112 < sSize←v24916)) {
                           goto lab←L100155;
                           };
                        lab←L100152: ;
                        };
                     };
                  };
               };
            }
         else {
            if ((var←c72892 == 1)) {
               {
                  word map←v25156;
                  map←v25156 = var←c72732;
SOURCE(26672, 21)
                  (void) Fill←P3840(map←v25156, (*  (W4Pt) map←v25156 ), 0, 0);
                  };
               }
            else {
               lab←L100150: ;
               };
            };
         };
      };
   }

static void BufferTransfer←P3420(formal←c01361, formal←c01362, formal←c01363, formal←c01364, size←v14264, formal←c01365)
   word formal←c01361;
   word formal←c01362;
   W2 formal←c01363;
   W2 formal←c01364;
   W2 size←v14264;
   word formal←c01365;
   {
   W14 var←c81500;
   /* declaration of dst←v14152 skipped */ 
   /* declaration of src←v14180 skipped */ 
   /* declaration of dstMin←v14208 skipped */ 
   /* declaration of srcMin←v14236 skipped */ 
   /* declaration of function←v14292 skipped */ 
   register ptr gf←c81532 =  (ptr) &globalframe;
   /* declaration of var←c72924 skipped */ 
   W2 dstSize←v25200;
   W2 srcSize←v25228;
   word sDst0←v25256;
   word fDst0←v25284;
   word sSrc0←v25312;
   word fSrc0←v25340;
   /* declaration of sSize←v25368 skipped */ 
   word fSize←v25396;
   (* (( (ptr) &var←c81500)+4)/* dst←v14152 */  ) = formal←c01361;
   (* (( (ptr) &var←c81500)+5)/* src←v14180 */  ) = formal←c01362;
   (*  (W2Pt) (( (ptr) &var←c81500)+6)/* dstMin←v14208 */  ) = formal←c01363;
   (*  (W2Pt) (( (ptr) &var←c81500)+8)/* srcMin←v14236 */  ) = formal←c01364;
   (* (( (ptr) &var←c81500)+10)/* function←v14292 */  ) = formal←c01365;
   /* BufferTransfer: */ 
SOURCE(26715, 844)
   {
      word tmpAddr106;
      tmpAddr106 = (word) (( (ptr) &var←c81500)+11)/* var←c72924 */ ;
      (*  (ptr) tmpAddr106 ) = ( ((word)  (fPt) transferAction←P8340) );
      (* (( (ptr) tmpAddr106) + 1) ) = 1;
      };
SOURCE(26875, 30)
   dstSize←v25200.f0 = ((* (( (ptr) (* (( (ptr) &var←c81500)+4)/* dst←v14152 */  ))+2) ) - (*  (ptr) (* (( (ptr) &var←c81500)+4)
   /* dst←v14152 */  ) ));
   dstSize←v25200.f1 = ((* (( (ptr) (* (( (ptr) &var←c81500)+4)/* dst←v14152 */  ))+3) ) - (* (( (ptr) (* (( (ptr) &var←c81500)+4)
      /* dst←v14152 */  ))+1) ));
SOURCE(26907, 30)
   srcSize←v25228.f0 = ((* (( (ptr) (* (( (ptr) &var←c81500)+5)/* src←v14180 */  ))+2) ) - (*  (ptr) (* (( (ptr) &var←c81500)+5)
   /* src←v14180 */  ) ));
   srcSize←v25228.f1 = ((* (( (ptr) (* (( (ptr) &var←c81500)+5)/* src←v14180 */  ))+3) ) - (* (( (ptr) (* (( (ptr) &var←c81500)+5)
      /* src←v14180 */  ))+1) ));
SOURCE(26939, 37)
   {
      word idx107;
      sDst0←v25256 = (
         idx107 = (word) ((* (( (ptr) &var←c81500)+6) ) - (*  (ptr) (* (( (ptr) &var←c81500)+4)/* dst←v14152 */  ) )),
         SGNCK(idx107)
         );
      };
SOURCE(26978, 37)
   {
      word idx108;
      fDst0←v25284 = (
         idx108 = (word) ((* (( (ptr) &var←c81500)+7) ) - (* (( (ptr) (* (( (ptr) &var←c81500)+4)/* dst←v14152 */  ))+1) )),
         SGNCK(idx108)
         );
      };
SOURCE(27017, 37)
   {
      word idx109;
      sSrc0←v25312 = (
         idx109 = (word) ((* (( (ptr) &var←c81500)+8) ) - (*  (ptr) (* (( (ptr) &var←c81500)+5)/* src←v14180 */  ) )),
         SGNCK(idx109)
         );
      };
SOURCE(27056, 37)
   {
      word idx110;
      fSrc0←v25340 = (
         idx110 = (word) ((* (( (ptr) &var←c81500)+9) ) - (* (( (ptr) (* (( (ptr) &var←c81500)+5)/* src←v14180 */  ))+1) )),
         SGNCK(idx110)
         );
      };
SOURCE(27095, 67)
   {
      word value←v59360;
      word bound←v59388;
      {
         word bound←v59436;
         bound←v59436 = (dstSize←v25200.f0 - sDst0←v25256);
SOURCE(3290, 95)
         if ((size←v14264.f0 > bound←v59436)) {
SOURCE(3334, 36)
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81532)+227)/* var←c70300 */  ))+8) ), 0);
            }
         else {
SOURCE(3370, 15)
            {
               word idx111;
               value←v59360 = (
                  idx111 = (word) size←v14264.f0,
                  SGNCK(idx111)
                  );
               };
            };
         };
      bound←v59388 = (srcSize←v25228.f0 - sSrc0←v25312);
SOURCE(3290, 95)
      if ((value←v59360 > bound←v59388)) {
SOURCE(3334, 36)
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81532)+227)/* var←c70300 */  ))+8) ), 0);
         }
      else {
SOURCE(3370, 15)
         (* (( (ptr) &var←c81500)+13)/* sSize←v25368 */  ) = SGNCK(value←v59360);
         };
      };
SOURCE(27164, 67)
   {
      word value←v59236;
      word bound←v59264;
      {
         word bound←v59312;
         bound←v59312 = (dstSize←v25200.f1 - fDst0←v25284);
SOURCE(3290, 95)
         if ((size←v14264.f1 > bound←v59312)) {
SOURCE(3334, 36)
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81532)+227)/* var←c70300 */  ))+8) ), 0);
            }
         else {
SOURCE(3370, 15)
            {
               word idx112;
               value←v59236 = (
                  idx112 = (word) size←v14264.f1,
                  SGNCK(idx112)
                  );
               };
            };
         };
      bound←v59264 = (srcSize←v25228.f1 - fSrc0←v25340);
SOURCE(3290, 95)
      if ((value←v59236 > bound←v59264)) {
SOURCE(3334, 36)
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81532)+227)/* var←c70300 */  ))+8) ), 0);
         }
      else {
SOURCE(3370, 15)
         fSize←v25396 = SGNCK(value←v59236);
         };
      };
SOURCE(27500, 59)
   (void) DoWithScratchSamples←P900(fSize←v25396, (word) (( (bPt) &var←c81500)+44)/* var←c72924 */ );
   }

static void transferAction←P8340(buffer←v25500, formal←c81564)
   word buffer←v25500;
   word formal←c81564;
   {
   formal←c81564 = (formal←c81564 - 44);
   /* transferAction: */ 
SOURCE(27233, 253)
SOURCE(27281, 205)
   {
      register word s←v25528 = 0;
      if ((s←v25528 >= (* (( (ptr) formal←c81564)+13) ))) {
         goto lab←L100161;
         };
      lab←L100164: ;
SOURCE(27309, 77)
      {
         W2 var←c73148;
         W2 var←c73180;
         var←c73148.f0 = ((* (( (ptr) formal←c81564)+8) ) + s←v25528);
         var←c73148.f1 = (* (( (ptr) formal←c81564)+9) );
         var←c73180.f0 = 0;
         var←c73180.f1 = 1;
         (void) GetSamples←P3240((* (( (ptr) formal←c81564)+5) ), var←c73148, var←c73180, buffer←v25500, 0, 2147483647);
         };
SOURCE(27388, 98)
      {
         W2 var←c73212;
         W2 var←c73244;
         var←c73212.f0 = ((* (( (ptr) formal←c81564)+6) ) + s←v25528);
         var←c73212.f1 = (* (( (ptr) formal←c81564)+7) );
         var←c73244.f0 = 0;
         var←c73244.f1 = 1;
         (void) PutSamples←P3300((* (( (ptr) formal←c81564)+4) ), var←c73212, var←c73244, buffer←v25500, 0, 2147483647
            , (* (( (ptr) formal←c81564)+10) ));
         };
      s←v25528 = (s←v25528 + 1);
      if ((s←v25528 < (* (( (ptr) formal←c81564)+13) ))) {
         goto lab←L100164;
         };
      lab←L100161: ;
      };
   }

static void BasicTransfer←P3480(dst←v14352, src←v14380, dstMin←v14408, srcMin←v14436, size←v14464, function←v14492)
   word dst←v14352;
   word src←v14380;
   W2 dstMin←v14408;
   W2 srcMin←v14436;
   W2 size←v14464;
   word function←v14492;
   {
   register ptr gf←c81596 =  (ptr) &globalframe;
   word false←v25572;
   word bitsPerSample←v25600;
   /* BasicTransfer: */ 
SOURCE(27565, 1169)
SOURCE(27721, 41)
   {
      word idx113;
      false←v25572 = (
         idx113 = (* (( (ptr) dst←v14352)+4) ),
         BCK(idx113, 1)
         );
      };
SOURCE(27764, 38)
   bitsPerSample←v25600 = (* (( (ptr) dst←v14352)+5) );
SOURCE(27804, 853)
   {
      word var←c73276;
      var←c73276 = dst←v14352;
      if ((var←c73276 == 0)) {
         goto lab←L100165;
         };
      if (((* (( (ptr) var←c73276)+6) ) == 0)) {
         {
            word dst←v25664;
            dst←v25664 = var←c73276;
SOURCE(27849, 808)
            {
               word var←c73308;
               var←c73308 = src←v14380;
               if ((var←c73308 == 0)) {
                  goto lab←L100166;
                  };
               if (((* (( (ptr) var←c73308)+6) ) == 0)) {
                  {
                     word src←v25708;
                     src←v25708 = var←c73308;
SOURCE(27894, 763)
                     if (((* (( (ptr) src←v25708)+5) ) == bitsPerSample←v25600)) {
SOURCE(27942, 717)
                        {
                           W2 dstSize←v25752;
                           W2 srcSize←v25780;
                           word sDst0←v25808;
                           word fDst0←v25836;
                           word sSrc0←v25864;
                           word fSrc0←v25892;
                           word sSize←v25920;
                           word fSize←v25948;
SOURCE(27944, 30)
                           {
/*1*/   word map←v56084;
/*1*/   map←v56084 = dst←v25664;
SOURCE(1717, 74)
/*1*/   dstSize←v25752.f0 = ((* (( (ptr) map←v56084)+2) ) - (*  (ptr) map←v56084 ));
/*1*/   dstSize←v25752.f1 = ((* (( (ptr) map←v56084)+3) ) - (* (( (ptr) map←v56084)+1) ));
/*1*/   };
SOURCE(27976, 30)
                           {
/*1*/   word map←v56036;
/*1*/   map←v56036 = src←v25708;
SOURCE(1717, 74)
/*1*/   srcSize←v25780.f0 = ((* (( (ptr) map←v56036)+2) ) - (*  (ptr) map←v56036 ));
/*1*/   srcSize←v25780.f1 = ((* (( (ptr) map←v56036)+3) ) - (* (( (ptr) map←v56036)+1) ));
/*1*/   };
SOURCE(28008, 37)
                           {
/*1*/   word idx114;
/*1*/   sDst0←v25808 = (
/*1*/      idx114 = (word) (dstMin←v14408.f0 - (*  (ptr) dst←v25664 )),
/*1*/      SGNCK(idx114)
/*1*/      );
/*1*/   };
SOURCE(28047, 37)
                           {
/*1*/   word idx115;
/*1*/   fDst0←v25836 = (
/*1*/      idx115 = (word) (dstMin←v14408.f1 - (* (( (ptr) dst←v25664)+1) )),
/*1*/      SGNCK(idx115)
/*1*/      );
/*1*/   };
SOURCE(28086, 37)
                           {
/*1*/   word idx116;
/*1*/   sSrc0←v25864 = (
/*1*/      idx116 = (word) (srcMin←v14436.f0 - (*  (ptr) src←v25708 )),
/*1*/      SGNCK(idx116)
/*1*/      );
/*1*/   };
SOURCE(28125, 37)
                           {
/*1*/   word idx117;
/*1*/   fSrc0←v25892 = (
/*1*/      idx117 = (word) (srcMin←v14436.f1 - (* (( (ptr) src←v25708)+1) )),
/*1*/      SGNCK(idx117)
/*1*/      );
/*1*/   };
SOURCE(28164, 67)
                           {
/*1*/   word value←v59112;
/*1*/   word bound←v59140;
/*1*/   {
/*1*/      word bound←v59188;
/*1*/      bound←v59188 = (dstSize←v25752.f0 - sDst0←v25808);
SOURCE(3290, 95)
/*1*/      if ((size←v14464.f0 > bound←v59188)) {
SOURCE(3334, 36)
/*1*/         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81596)+227)/* var←c70300 */  ))+8) ), 0);
/*1*/         }
/*1*/      else {
SOURCE(3370, 15)
/*1*/         {
/*1*/            word idx118;
/*1*/            value←v59112 = (
/*1*/               idx118 = (word) size←v14464.f0,
/*1*/               SGNCK(idx118)
/*1*/               );
/*1*/            };
/*1*/         };
/*1*/      };
/*1*/   bound←v59140 = (srcSize←v25780.f0 - sSrc0←v25864);
SOURCE(3290, 95)
/*1*/   if ((value←v59112 > bound←v59140)) {
SOURCE(3334, 36)
/*1*/      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81596)+227)/* var←c70300 */  ))+8) ), 0);
/*1*/      }
/*1*/   else {
SOURCE(3370, 15)
/*1*/      sSize←v25920 = SGNCK(value←v59112);
/*1*/      };
/*1*/   };
SOURCE(28233, 67)
                           {
/*1*/   word value←v58988;
/*1*/   word bound←v59016;
/*1*/   {
/*1*/      word bound←v59064;
/*1*/      bound←v59064 = (dstSize←v25752.f1 - fDst0←v25836);
SOURCE(3290, 95)
/*1*/      if ((size←v14464.f1 > bound←v59064)) {
SOURCE(3334, 36)
/*1*/         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81596)+227)/* var←c70300 */  ))+8) ), 0);
/*1*/         }
/*1*/      else {
SOURCE(3370, 15)
/*1*/         {
/*1*/            word idx119;
/*1*/            value←v58988 = (
/*1*/               idx119 = (word) size←v14464.f1,
/*1*/               SGNCK(idx119)
/*1*/               );
/*1*/            };
/*1*/         };
/*1*/      };
/*1*/   bound←v59016 = (srcSize←v25780.f1 - fSrc0←v25892);
SOURCE(3290, 95)
/*1*/   if ((value←v58988 > bound←v59016)) {
SOURCE(3334, 36)
/*1*/      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81596)+227)/* var←c70300 */  ))+8) ), 0);
/*1*/      }
/*1*/   else {
SOURCE(3370, 15)
/*1*/      fSize←v25948 = SGNCK(value←v58988);
/*1*/      };
/*1*/   };
SOURCE(28302, 347)
                           if ( ( (sSize←v25920 != 0) ? (fSize←v25948 != 0) : 0 ) ) {
SOURCE(28330, 319)
/*1*/   {
/*1*/      W2 var←c73596;
/*1*/      W2 var←c73692;
/*1*/      {
/*1*/         W2 var←c73628;
/*1*/         W2 addr←v57748;
/*1*/         word offset←v57776;
/*1*/         addr←v57748 = (*  (W2Pt) (( (ptr) dst←v25664)+8) );
/*1*/         offset←v57776 = ((sDst0←v25808 * (* (( (ptr) dst←v25664)+7) )) + (fDst0←v25836 * bitsPerSample←v25600));
/*1*/         {
/*1*/            word bitOffset←v57808;
/*1*/            word mod←v57836;
/*1*/            bitOffset←v57808 = (offset←v57776 + addr←v57748.f1);
/*1*/            mod←v57836 = (bitOffset←v57808 & 037);
SOURCE(2833, 63)
/*1*/            var←c73628.f0 = (addr←v57748.f0 + IOP2( / ,  (int)(bitOffset←v57808 - mod←v57836),  (int)8));
/*1*/            var←c73628.f1 = mod←v57836;
/*1*/            };
/*1*/         var←c73596 = var←c73628;
/*1*/         };
/*1*/      {
/*1*/         W2 var←c73724;
/*1*/         W2 addr←v57616;
/*1*/         word offset←v57644;
/*1*/         addr←v57616 = (*  (W2Pt) (( (ptr) src←v25708)+8) );
/*1*/         offset←v57644 = ((sSrc0←v25864 * (* (( (ptr) src←v25708)+7) )) + (fSrc0←v25892 * bitsPerSample←v25600));
/*1*/         {
/*1*/            word bitOffset←v57676;
/*1*/            word mod←v57704;
/*1*/            bitOffset←v57676 = (offset←v57644 + addr←v57616.f1);
/*1*/            mod←v57704 = (bitOffset←v57676 & 037);
SOURCE(2833, 63)
/*1*/            var←c73724.f0 = (addr←v57616.f0 + IOP2( / ,  (int)(bitOffset←v57676 - mod←v57704),  (int)8));
/*1*/            var←c73724.f1 = mod←v57704;
/*1*/            };
/*1*/         var←c73692 = var←c73724;
/*1*/         };
/*1*/      {
/*1*/         word pd120;
/*1*/         pd120 = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c81596)+226)/* var←c70076 */  ))+8) ))+(((unsigned)function←v14492 << 29) >> 30))
/*1*/            )+(function←v14492 & 1)) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd120 ))))(var←c73596, var←c73692, (* (( (ptr) dst←v25664)+7) ), (* (( (ptr) src←v25708)+7) ), sSize←v25920, (fSize←v25948 * bitsPerSample←v25600), pd120)
/*1*/         ;
/*1*/         };
/*1*/      };
/*1*/   };
SOURCE(28651, 6)
                           return;
                           };
                        };
                     };
                  }
               else {
                  lab←L100166: ;
                  };
               };
            };
         }
      else {
         lab←L100165: ;
         };
      };
SOURCE(28678, 56)
   (void) BufferTransfer←P3420(dst←v14352, src←v14380, dstMin←v14408, srcMin←v14436, size←v14464, function←v14492);
   }

static void RawListTransfer←P3540(dst←v14552, src←v14580, function←v14608)
   word dst←v14552;
   word src←v14580;
   word function←v14608;
   {
   register ptr gf←c81628 =  (ptr) &globalframe;
   word false←v25992;
   word bitsPerSample←v26020;
   word dstPtr←v26048;
   word dstOff←v26076;
   word var←c73788;
   word switch←v64060;
   /* RawListTransfer: */ 
SOURCE(28740, 2198)
SOURCE(28867, 41)
   {
      word idx121;
      false←v25992 = (
         idx121 = (* (( (ptr) dst←v14552)+4) ),
         BCK(idx121, 1)
         );
      };
SOURCE(28910, 41)
   {
      word idx122;
      bitsPerSample←v26020 = (
         idx122 = (word) ((* (( (ptr) dst←v14552)+5) ) - 1),
         BCK(idx122, 1)
         );
      };
SOURCE(28953, 50)
   dstPtr←v26048 = (* (( (ptr) dst←v14552)+8) );
SOURCE(29005, 26)
   dstOff←v26076 = (* (( (ptr) dst←v14552)+9) );
SOURCE(29033, 1905)
   {
      word tc123;
      word tc124;
      switch←v64060 = (* (( (ptr) gf←c81628)+8)/* useCharBlt←v2916 */  );
      var←c73788 =  (unsigned) ((* (( (ptr) (* (( (ptr) (* (( (ptr) gf←c81628)+223)/* var←c66556 */  ))+10) ))+switch←v64060) ) != 0);
      if ((0 != var←c73788)) {
         if ((function←v14608 == 4)) {
            tc124 =  (word) 1;
            }
         else {
            tc124 =  (word) (function←v14608 == 3);
            };
         }
      else {
         tc124 =  (word) 0;
         };
      if (tc124) {
         tc123 =  (word) (((* (( (ptr) dst←v14552)+7) ) & 037) == 0);
         }
      else {
         tc123 =  (word) 0;
         };
      if (tc123) {
SOURCE(29187, 959)
         {
            word dstUnitsPerLine←v26188;
            word op←v26216;
SOURCE(29220, 52)
            dstUnitsPerLine←v26188 = ((* (( (ptr) dst←v14552)+7) ) >> 3);
SOURCE(29274, 17)
            op←v26216 =  ( (function←v14608 == 4) ? (* (( (ptr) (* (( (ptr) gf←c81628)+226)/* var←c70076 */  ))+10) ) : (* (( (ptr) (* (
                  ( (ptr) gf←c81628)+226)/* var←c70076 */  ))+11) ) ) ;
SOURCE(29466, 669)
            lab←L100178: ;
            if ((src←v14580 != 0)) {
               }
            else {
               goto lab←L100176;
               };
            {
               word sCheck←v26460;
               word fCheck←v26488;
               word sSize←v26516;
               word fSize←v26544;
SOURCE(29485, 47)
               {
                  word idx125;
                  sCheck←v26460 = (
                     idx125 = (word) ((* (( (ptr) dst←v14552)+2) ) - (* (( (ptr) src←v14580)+2) )),
                     SGNCK(idx125)
                     );
                  };
SOURCE(29534, 47)
               {
                  word idx126;
                  fCheck←v26488 = (
                     idx126 = (word) ((* (( (ptr) dst←v14552)+3) ) - (* (( (ptr) src←v14580)+3) )),
                     SGNCK(idx126)
                     );
                  };
SOURCE(29583, 56)
               sSize←v26516 = ((* (( (ptr) src←v14580)+2) ) - (*  (ptr) src←v14580 ));
SOURCE(29641, 56)
               fSize←v26544 = ((* (( (ptr) src←v14580)+3) ) - (* (( (ptr) src←v14580)+1) ));
SOURCE(29699, 417)
               if ( ( ( (int)sSize←v26516 >  (int)0) ? ( (int)fSize←v26544 >  (int)0) : 0 ) ) {
SOURCE(29731, 387)
                  {
                     word dstBitIndex←v26588;
                     word mod←v26616;
SOURCE(29733, 126)
                     dstBitIndex←v26588 = ((dstOff←v26076 + (((*  (ptr) src←v14580 ) - (*  (ptr) dst←v14552 )) * (* (( (ptr) dst←v14552)+7) ))) + 
                     ((* (( (ptr) src←v14580)+1) ) - (* (( (ptr) dst←v14552)+1) )));
SOURCE(29889, 58)
                     mod←v26616 = (dstBitIndex←v26588 & 037);
SOURCE(29949, 167)
                     (void) ( *( (fPt) ((*  (ptr) op←v26216 ))))((* (( (ptr) src←v14580)+5) ), (dstPtr←v26048 + IOP2( / ,  (int)(dstBitIndex←v26588 - mod←v26616),  (int)8)
                        ), mod←v26616, SGNCK(fSize←v26544), dstUnitsPerLine←v26188, sSize←v26516, op←v26216);
                     };
                  };
SOURCE(30121, 14)
               src←v14580 = (* (( (ptr) src←v14580)+7) );
               };
            goto lab←L100178;
            lab←L100176: ;
            };
         }
      else {
SOURCE(30153, 796)
         {
            word op←v26660;
SOURCE(30155, 17)
            op←v26660 = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c81628)+226)/* var←c70076 */  ))+8) ))+(((unsigned)function←v14608 << 29) >> 30))
               )+(function←v14608 & 1)) );
SOURCE(30304, 634)
            lab←L100181: ;
            if ((src←v14580 != 0)) {
               }
            else {
               goto lab←L100179;
               };
            {
               W4 box←v26904;
               word sCheck←v26932;
               word fCheck←v26960;
               word dstBitIndex←v26988;
               word sSize←v27016;
               word fSize←v27044;
               W2 dstBA←v27072;
SOURCE(30323, 62)
               (*  (W2Pt) &box←v26904 ) = (*  (W2Pt) src←v14580 );
               (*  (W2Pt) (( (ptr) &box←v26904)+2) ) = (*  (W2Pt) (( (ptr) src←v14580)+2) );
SOURCE(30387, 37)
               {
                  word idx127;
                  sCheck←v26932 = (
                     idx127 = (word) ((* (( (ptr) dst←v14552)+2) ) - box←v26904.f2),
                     SGNCK(idx127)
                     );
                  };
SOURCE(30426, 37)
               {
                  word idx128;
                  fCheck←v26960 = (
                     idx128 = (word) ((* (( (ptr) dst←v14552)+3) ) - box←v26904.f3),
                     SGNCK(idx128)
                     );
                  };
SOURCE(30465, 101)
               {
                  word idx129;
                  word idx130;
                  dstBitIndex←v26988 = (((
                     idx129 = (word) (box←v26904.f0 - (*  (ptr) dst←v14552 )),
                     SGNCK(idx129)
                     ) * (* (( (ptr) dst←v14552)+7) )) + (
                     idx130 = (word) (box←v26904.f1 - (* (( (ptr) dst←v14552)+1) )),
                     SGNCK(idx130)
                     ));
                  };
SOURCE(30596, 32)
               {
                  word idx131;
                  sSize←v27016 = (
                     idx131 = (word)  ( ( (int)box←v26904.f0 <  (int)box←v26904.f2) ? (box←v26904.f2 - box←v26904.f0) : 0 ) ,
                     SGNCK(idx131)
                     );
                  };
SOURCE(30630, 32)
               {
                  word idx132;
                  fSize←v27044 = (
                     idx132 = (word)  ( ( (int)box←v26904.f1 <  (int)box←v26904.f3) ? (box←v26904.f3 - box←v26904.f1) : 0 ) ,
                     SGNCK(idx132)
                     );
                  };
SOURCE(30692, 51)
               {
                  W2 addr←v57512;
                  addr←v57512 = (*  (W2Pt) (( (ptr) dst←v14552)+8) );
                  {
                     word bitOffset←v57544;
                     word mod←v57572;
                     bitOffset←v57544 = (dstBitIndex←v26988 + addr←v57512.f1);
                     mod←v57572 = (bitOffset←v57544 & 037);
SOURCE(2833, 63)
                     dstBA←v27072.f0 = (addr←v57512.f0 + IOP2( / ,  (int)(bitOffset←v57544 - mod←v57572),  (int)8));
                     dstBA←v27072.f1 = mod←v57572;
                     };
                  };
SOURCE(30745, 177)
               if ( ( (sSize←v27016 > 0) ? (fSize←v27044 > 0) : 0 ) ) {
SOURCE(30777, 145)
                  {
                     W2 var←c73916;
                     var←c73916.f0 = (* (( (ptr) src←v14580)+5) );
                     var←c73916.f1 = 0;
                     (void) ( *( (fPt) ((*  (ptr) op←v26660 ))))(dstBA←v27072, var←c73916, (* (( (ptr) dst←v14552)+7) ), (* (( (ptr) src←v14580)+4)
                         ), sSize←v27016, fSize←v27044, op←v26660);
                     };
                  };
SOURCE(30924, 14)
               src←v14580 = (* (( (ptr) src←v14580)+7) );
               };
            goto lab←L100181;
            lab←L100179: ;
            };
         };
      };
   }

static void Transfer←P3600(dst←v14752, src←v14780, delta←v14808, function←v14836)
   word dst←v14752;
   word src←v14780;
   W2 delta←v14808;
   word function←v14836;
   {
   W4 box←v27116;
   /* Transfer: */ 
SOURCE(30956, 356)
SOURCE(31072, 73)
   {
      W4 box1←v62876;
      W4 box2←v62904;
      box1←v62876 = (*  (W4Pt) dst←v14752 );
      {
         W4 box←v63416;
         box←v63416 = (*  (W4Pt) src←v14780 );
         box2←v62904.f0 = (box←v63416.f0 + delta←v14808.f0);
         box2←v62904.f1 = (box←v63416.f1 + delta←v14808.f1);
         box2←v62904.f2 = (box←v63416.f2 + delta←v14808.f0);
         box2←v62904.f3 = (box←v63416.f3 + delta←v14808.f1);
         };
      {
         W2 v1←v62952;
         W2 v2←v62980;
         v1←v62952 = (*  (W2Pt) &box2←v62904 );
         v2←v62980 = (*  (W2Pt) &box1←v62876 );
         if (( (int)v2←v62980.f0 >=  (int)v1←v62952.f0)) {
            box←v27116.f0 = v2←v62980.f0;
            }
         else {
            box←v27116.f0 = v1←v62952.f0;
            };
         if (( (int)v2←v62980.f1 >=  (int)v1←v62952.f1)) {
            box←v27116.f1 = v2←v62980.f1;
            }
         else {
            box←v27116.f1 = v1←v62952.f1;
            };
         };
      {
         W2 v1←v63024;
         W2 v2←v63052;
         v1←v63024 = (*  (W2Pt) (( (ptr) &box1←v62876)+2) );
         v2←v63052 = (*  (W2Pt) (( (ptr) &box2←v62904)+2) );
         if (( (int)v1←v63024.f0 <=  (int)v2←v63052.f0)) {
            box←v27116.f2 = v1←v63024.f0;
            }
         else {
            box←v27116.f2 = v2←v63052.f0;
            };
         if (( (int)v1←v63024.f1 <=  (int)v2←v63052.f1)) {
            box←v27116.f3 = v1←v63024.f1;
            }
         else {
            box←v27116.f3 = v2←v63052.f1;
            };
         };
      };
SOURCE(31147, 165)
   if ( ( ( (int)box←v27116.f0 <  (int)box←v27116.f2) ? ( (int)box←v27116.f1 <  (int)box←v27116.f3) : 0 ) ) {
SOURCE(31178, 134)
      {
         W2 var←c74204;
         W2 var←c74236;
         var←c74204.f0 = (box←v27116.f0 - delta←v14808.f0);
         var←c74204.f1 = (box←v27116.f1 - delta←v14808.f1);
         {
            word x133;
            var←c74236.f0 = (x133 = (box←v27116.f2 - box←v27116.f0),
               MAX((int)(word), x133, 0));
            };
         {
            word x134;
            var←c74236.f1 = (x134 = (box←v27116.f3 - box←v27116.f1),
               MAX((int)(word), x134, 0));
            };
         (void) BasicTransfer←P3480(dst←v14752, src←v14780, (*  (W2Pt) &box←v27116 ), var←c74204, var←c74236, function←v14836);
         };
      };
   }

static void TransferBoxes←P3660(formal←c01366, formal←c01367, formal←c01368, boxes←v14980, formal←c01369)
   word formal←c01366;
   word formal←c01367;
   W2 formal←c01368;
   word boxes←v14980;
   word formal←c01369;
   {
   W31 var←c81660;
   /* declaration of dst←v14896 skipped */ 
   /* declaration of src←v14924 skipped */ 
   /* declaration of delta←v14952 skipped */ 
   /* declaration of function←v15008 skipped */ 
   register ptr gf←c81692 =  (ptr) &globalframe;
   /* declaration of var←c74268 skipped */ 
   /* declaration of var←c74300 skipped */ 
   /* declaration of bitsPerSample←v27160 skipped */ 
   word false←v27188;
   (* (( (ptr) &var←c81660)+4)/* dst←v14896 */  ) = formal←c01366;
   (* (( (ptr) &var←c81660)+5)/* src←v14924 */  ) = formal←c01367;
   (*  (W2Pt) (( (ptr) &var←c81660)+6)/* delta←v14952 */  ) = formal←c01368;
   (* (( (ptr) &var←c81660)+8)/* function←v15008 */  ) = formal←c01369;
   /* TransferBoxes: */ 
SOURCE(31318, 1748)
   {
      word tmpAddr135;
      tmpAddr135 = (word) (( (ptr) &var←c81660)+9)/* var←c74268 */ ;
      (*  (ptr) tmpAddr135 ) = ( ((word)  (fPt) SlowTransfer←P9132) );
      (* (( (ptr) tmpAddr135) + 1) ) = 1;
      };
   {
      word tmpAddr136;
      tmpAddr136 = (word) (( (ptr) &var←c81660)+11)/* var←c74300 */ ;
      (*  (ptr) tmpAddr136 ) = ( ((word)  (fPt) FastTransfer←P8976) );
      (* (( (ptr) tmpAddr136) + 1) ) = 1;
      };
SOURCE(31461, 38)
   (* (( (ptr) &var←c81660)+13)/* bitsPerSample←v27160 */  ) = (* (( (ptr) (* (( (ptr) &var←c81660)+4)/* dst←v14896 */  ))+5)
    );
SOURCE(31501, 41)
   {
      word idx137;
      false←v27188 = (
         idx137 = (* (( (ptr) (* (( (ptr) &var←c81660)+4)/* dst←v14896 */  ))+4) ),
         BCK(idx137, 1)
         );
      };
SOURCE(31544, 1282)
   {
      word var←c74332;
      var←c74332 = (* (( (ptr) &var←c81660)+4)/* dst←v14896 */  );
      if ((var←c74332 == 0)) {
         goto lab←L100187;
         };
      if (((* (( (ptr) var←c74332)+6) ) == 0)) {
         {
            /* declaration of dst←v27252 skipped */ 
            (* (( (ptr) &var←c81660)+14)/* dst←v27252 */  ) = var←c74332;
SOURCE(31589, 1237)
            {
               word var←c74364;
               var←c74364 = (* (( (ptr) &var←c81660)+5)/* src←v14924 */  );
               if ((var←c74364 == 0)) {
                  goto lab←L100188;
                  };
               if (((* (( (ptr) var←c74364)+6) ) == 0)) {
                  {
                     /* declaration of src←v27296 skipped */ 
                     (* (( (ptr) &var←c81660)+15)/* src←v27296 */  ) = var←c74364;
SOURCE(31634, 1192)
                     if (((* (( (ptr) (* (( (ptr) &var←c81660)+15)/* src←v27296 */  ))+5) ) == (* (( (ptr) &var←c81660)+13)/* bitsPerSample←v27160 */  ))) {
SOURCE(31682, 1146)
                        {
                           /* declaration of dstBox←v27340 skipped */ 
                           /* declaration of srcBox←v27368 skipped */ 
                           /* declaration of bounds←v27396 skipped */ 
                           /* declaration of dstBPL←v27424 skipped */ 
                           /* declaration of srcBPL←v27452 skipped */ 
                           /* declaration of op←v27480 skipped */ 
SOURCE(31684, 21)
                           (*  (W4Pt) (( (ptr) &var←c81660)+16)/* dstBox←v27340 */  ) = (*  (W4Pt) (* (( (ptr) &var←c81660)+14)/* dst←v27252 */  ) );
SOURCE(31707, 47)
                           {
/*1*/   W4 box←v63368;
/*1*/   box←v63368 = (*  (W4Pt) (* (( (ptr) &var←c81660)+15)/* src←v27296 */  ) );
/*1*/   (* (( (ptr) &var←c81660)+20) ) = (box←v63368.f0 + (* (( (ptr) &var←c81660)+6) ));
/*1*/   (* (( (ptr) &var←c81660)+21) ) = (box←v63368.f1 + (* (( (ptr) &var←c81660)+7) ));
/*1*/   (* (( (ptr) &var←c81660)+22) ) = (box←v63368.f2 + (* (( (ptr) &var←c81660)+6) ));
/*1*/   (* (( (ptr) &var←c81660)+23) ) = (box←v63368.f3 + (* (( (ptr) &var←c81660)+7) ));
/*1*/   };
SOURCE(31756, 48)
                           {
/*1*/   W2 v1←v62732;
/*1*/   W2 v2←v62760;
/*1*/   v1←v62732 = (*  (W2Pt) (( (ptr) &var←c81660)+20) );
/*1*/   v2←v62760 = (*  (W2Pt) (( (ptr) &var←c81660)+16) );
/*1*/   if (( (int)v2←v62760.f0 >=  (int)v1←v62732.f0)) {
/*1*/      (* (( (ptr) &var←c81660)+24) ) = v2←v62760.f0;
/*1*/      }
/*1*/   else {
/*1*/      (* (( (ptr) &var←c81660)+24) ) = v1←v62732.f0;
/*1*/      };
/*1*/   if (( (int)v2←v62760.f1 >=  (int)v1←v62732.f1)) {
/*1*/      (* (( (ptr) &var←c81660)+25) ) = v2←v62760.f1;
/*1*/      }
/*1*/   else {
/*1*/      (* (( (ptr) &var←c81660)+25) ) = v1←v62732.f1;
/*1*/      };
/*1*/   };
                           {
/*1*/   W2 v1←v62804;
/*1*/   W2 v2←v62832;
/*1*/   v1←v62804 = (*  (W2Pt) (( (ptr) &var←c81660)+18) );
/*1*/   v2←v62832 = (*  (W2Pt) (( (ptr) &var←c81660)+22) );
/*1*/   if (( (int)v1←v62804.f0 <=  (int)v2←v62832.f0)) {
/*1*/      (* (( (ptr) &var←c81660)+26) ) = v1←v62804.f0;
/*1*/      }
/*1*/   else {
/*1*/      (* (( (ptr) &var←c81660)+26) ) = v2←v62832.f0;
/*1*/      };
/*1*/   if (( (int)v1←v62804.f1 <=  (int)v2←v62832.f1)) {
/*1*/      (* (( (ptr) &var←c81660)+27) ) = v1←v62804.f1;
/*1*/      }
/*1*/   else {
/*1*/      (* (( (ptr) &var←c81660)+27) ) = v2←v62832.f1;
/*1*/      };
/*1*/   };
SOURCE(31806, 29)
                           {
/*1*/   word idx138;
/*1*/   (* (( (ptr) &var←c81660)+28)/* dstBPL←v27424 */  ) = (
/*1*/      idx138 = (* (( (ptr) (* (( (ptr) &var←c81660)+14)/* dst←v27252 */  ))+7) ),
/*1*/      SGNCK(idx138)
/*1*/      );
/*1*/   };
SOURCE(31837, 29)
                           {
/*1*/   word idx139;
/*1*/   (* (( (ptr) &var←c81660)+29)/* srcBPL←v27452 */  ) = (
/*1*/      idx139 = (* (( (ptr) (* (( (ptr) &var←c81660)+15)/* src←v27296 */  ))+7) ),
/*1*/      SGNCK(idx139)
/*1*/      );
/*1*/   };
SOURCE(31868, 17)
                           (* (( (ptr) &var←c81660)+30)/* op←v27480 */  ) = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c81692)+226)/* var←c70076 */  ))+8)
/*1*/       ))+(((unsigned)(* (( (bPt) &var←c81660)+35) ) << 29) >> 30)))+((* (( (bPt) &var←c81660)+35) ) & 1)) );
SOURCE(32799, 19)
                           (void) ( *( (fPt) ((*  (ptr) boxes←v14980 ))))((word) ((( (bPt) &var←c81660)+44)/* var←c74300 */ ), boxes←v14980);
SOURCE(32820, 6)
                           return;
                           };
                        };
                     };
                  }
               else {
                  lab←L100188: ;
                  };
               };
            };
         }
      else {
         lab←L100187: ;
         };
      };
SOURCE(32863, 205)
SOURCE(33047, 19)
   (void) ( *( (fPt) ((*  (ptr) boxes←v14980 ))))((word) ((( (bPt) &var←c81660)+36)/* var←c74268 */ ), boxes←v14980);
   }

static void FastTransfer←P8976(box←v55364, formal←c81724)
   W4 box←v55364;
   word formal←c81724;
   {
   word sSize←v27752;
   word fSize←v27780;
   formal←c81724 = (formal←c81724 - 44);
   /* FastTransfer: */ 
SOURCE(32017, 34)
SOURCE(32053, 36)
   sSize←v27752 = (box←v55364.f2 - box←v55364.f0);
SOURCE(32091, 36)
   fSize←v27780 = (box←v55364.f3 - box←v55364.f1);
SOURCE(32129, 662)
   if ( ( ( (int)sSize←v27752 >  (int)0) ? ( (int)fSize←v27780 >  (int)0) : 0 ) ) {
SOURCE(32161, 632)
      {
         word sSpaceLo←v27824;
         word fSpaceLo←v27852;
         word sSpaceHi←v27880;
         word fSpaceHi←v27908;
         word dstBitIndex←v27936;
         word srcBitIndex←v27964;
         W2 dstBA←v27992;
         W2 srcBA←v28020;
SOURCE(32163, 38)
         {
            word idx140;
            sSpaceLo←v27824 = (
               idx140 = (word) (box←v55364.f0 - (* (( (ptr) formal←c81724)+24) )),
               SGNCK(idx140)
               );
            };
SOURCE(32223, 38)
         {
            word idx141;
            fSpaceLo←v27852 = (
               idx141 = (word) (box←v55364.f1 - (* (( (ptr) formal←c81724)+25) )),
               SGNCK(idx141)
               );
            };
SOURCE(32263, 38)
         {
            word idx142;
            sSpaceHi←v27880 = (
               idx142 = (word) ((* (( (ptr) formal←c81724)+26) ) - box←v55364.f2),
               SGNCK(idx142)
               );
            };
SOURCE(32303, 38)
         {
            word idx143;
            fSpaceHi←v27908 = (
               idx143 = (word) ((* (( (ptr) formal←c81724)+27) ) - box←v55364.f3),
               SGNCK(idx143)
               );
            };
SOURCE(32343, 112)
         {
            word idx144;
            word idx145;
            dstBitIndex←v27936 = (((
               idx144 = (word) (box←v55364.f0 - (* (( (ptr) formal←c81724)+16) )),
               SGNCK(idx144)
               ) * (* (( (ptr) formal←c81724)+28) )) + ((
               idx145 = (word) (box←v55364.f1 - (* (( (ptr) formal←c81724)+17) )),
               SGNCK(idx145)
               ) * (* (( (ptr) formal←c81724)+13) )));
            };
SOURCE(32457, 112)
         {
            word idx146;
            word idx147;
            srcBitIndex←v27964 = (((
               idx146 = (word) (box←v55364.f0 - (* (( (ptr) formal←c81724)+20) )),
               SGNCK(idx146)
               ) * (* (( (ptr) formal←c81724)+29) )) + ((
               idx147 = (word) (box←v55364.f1 - (* (( (ptr) formal←c81724)+21) )),
               SGNCK(idx147)
               ) * (* (( (ptr) formal←c81724)+13) )));
            };
SOURCE(32571, 51)
         {
            W2 addr←v57408;
            addr←v57408 = (*  (W2Pt) (( (ptr) (* (( (ptr) formal←c81724)+14) ))+8) );
            {
               word bitOffset←v57440;
               word mod←v57468;
               bitOffset←v57440 = (dstBitIndex←v27936 + addr←v57408.f1);
               mod←v57468 = (bitOffset←v57440 & 037);
SOURCE(2833, 63)
               dstBA←v27992.f0 = (addr←v57408.f0 + IOP2( / ,  (int)(bitOffset←v57440 - mod←v57468),  (int)8));
               dstBA←v27992.f1 = mod←v57468;
               };
            };
SOURCE(32624, 51)
         {
            W2 addr←v57304;
            addr←v57304 = (*  (W2Pt) (( (ptr) (* (( (ptr) formal←c81724)+15) ))+8) );
            {
               word bitOffset←v57336;
               word mod←v57364;
               bitOffset←v57336 = (srcBitIndex←v27964 + addr←v57304.f1);
               mod←v57364 = (bitOffset←v57336 & 037);
SOURCE(2833, 63)
               srcBA←v28020.f0 = (addr←v57304.f0 + IOP2( / ,  (int)(bitOffset←v57336 - mod←v57364),  (int)8));
               srcBA←v28020.f1 = mod←v57364;
               };
            };
SOURCE(32677, 114)
         {
            word pd148;
            pd148 = (* (( (ptr) formal←c81724)+30) );
            (void) ( *( (fPt) ((*  (ptr) pd148 ))))(dstBA←v27992, srcBA←v28020, (* (( (ptr) formal←c81724)+28) ), (* (( (ptr) formal←c81724)+29)
                ), SGNCK(sSize←v27752), (SGNCK(fSize←v27780) * (* (( (ptr) formal←c81724)+13) )), pd148);
            };
         };
      };
   }

static void SlowTransfer←P9132(box←v55424, formal←c81756)
   W4 box←v55424;
   word formal←c81756;
   {
   W2 dstMin←v28108;
   W2 srcMin←v28136;
   formal←c81756 = (formal←c81756 - 36);
   /* SlowTransfer: */ 
SOURCE(32865, 26)
SOURCE(32893, 21)
   dstMin←v28108 = (*  (W2Pt) &box←v55424 );
SOURCE(32916, 42)
   srcMin←v28136.f0 = (box←v55424.f0 - (* (( (ptr) formal←c81756)+6) ));
   srcMin←v28136.f1 = (box←v55424.f1 - (* (( (ptr) formal←c81756)+7) ));
SOURCE(32960, 82)
   {
      W2 var←c74780;
      var←c74780.f0 = (box←v55424.f2 - box←v55424.f0);
      var←c74780.f1 = (box←v55424.f3 - box←v55424.f1);
      (void) BufferTransfer←P3420((* (( (ptr) formal←c81756)+4) ), (* (( (ptr) formal←c81756)+5) ), dstMin←v28108, srcMin←v28136, var←c74780, (* (
            ( (ptr) formal←c81756)+8) ));
      };
   }

static void Move←P3720(map←v15068, dstMin←v15096, srcMin←v15124, size←v15152, function←v15180)
   word map←v15068;
   W2 dstMin←v15096;
   W2 srcMin←v15124;
   W2 size←v15152;
   word function←v15180;
   {
   register ptr gf←c81788 =  (ptr) &globalframe;
   word false←v28180;
   W2 selfSize←v28208;
   word sDst0←v28236;
   word fDst0←v28264;
   word sSrc0←v28292;
   word fSrc0←v28320;
   word sSize←v28348;
   word fSize←v28376;
   /* Move: */ 
SOURCE(33075, 2544)
SOURCE(33169, 41)
   {
      word idx149;
      false←v28180 = (
         idx149 = (* (( (ptr) map←v15068)+4) ),
         BCK(idx149, 1)
         );
      };
SOURCE(33212, 31)
   selfSize←v28208.f0 = ((* (( (ptr) map←v15068)+2) ) - (*  (ptr) map←v15068 ));
   selfSize←v28208.f1 = ((* (( (ptr) map←v15068)+3) ) - (* (( (ptr) map←v15068)+1) ));
SOURCE(33245, 37)
   {
      word idx150;
      sDst0←v28236 = (
         idx150 = (word) (dstMin←v15096.f0 - (*  (ptr) map←v15068 )),
         SGNCK(idx150)
         );
      };
SOURCE(33284, 37)
   {
      word idx151;
      fDst0←v28264 = (
         idx151 = (word) (dstMin←v15096.f1 - (* (( (ptr) map←v15068)+1) )),
         SGNCK(idx151)
         );
      };
SOURCE(33323, 37)
   {
      word idx152;
      sSrc0←v28292 = (
         idx152 = (word) (srcMin←v15124.f0 - (*  (ptr) map←v15068 )),
         SGNCK(idx152)
         );
      };
SOURCE(33362, 37)
   {
      word idx153;
      fSrc0←v28320 = (
         idx153 = (word) (srcMin←v15124.f1 - (* (( (ptr) map←v15068)+1) )),
         SGNCK(idx153)
         );
      };
SOURCE(33401, 69)
   {
      word value←v58864;
      word bound←v58892;
      {
         word bound←v58940;
         bound←v58940 = (selfSize←v28208.f0 - sDst0←v28236);
SOURCE(3290, 95)
         if ((size←v15152.f0 > bound←v58940)) {
SOURCE(3334, 36)
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81788)+227)/* var←c70300 */  ))+8) ), 0);
            }
         else {
SOURCE(3370, 15)
            {
               word idx154;
               value←v58864 = (
                  idx154 = (word) size←v15152.f0,
                  SGNCK(idx154)
                  );
               };
            };
         };
      bound←v58892 = (selfSize←v28208.f0 - sSrc0←v28292);
SOURCE(3290, 95)
      if ((value←v58864 > bound←v58892)) {
SOURCE(3334, 36)
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81788)+227)/* var←c70300 */  ))+8) ), 0);
         }
      else {
SOURCE(3370, 15)
         sSize←v28348 = SGNCK(value←v58864);
         };
      };
SOURCE(33472, 69)
   {
      word value←v58740;
      word bound←v58768;
      {
         word bound←v58816;
         bound←v58816 = (selfSize←v28208.f1 - fDst0←v28264);
SOURCE(3290, 95)
         if ((size←v15152.f1 > bound←v58816)) {
SOURCE(3334, 36)
            (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81788)+227)/* var←c70300 */  ))+8) ), 0);
            }
         else {
SOURCE(3370, 15)
            {
               word idx155;
               value←v58740 = (
                  idx155 = (word) size←v15152.f1,
                  SGNCK(idx155)
                  );
               };
            };
         };
      bound←v58768 = (selfSize←v28208.f1 - fSrc0←v28320);
SOURCE(3290, 95)
      if ((value←v58740 > bound←v58768)) {
SOURCE(3334, 36)
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81788)+227)/* var←c70300 */  ))+8) ), 0);
         }
      else {
SOURCE(3370, 15)
         fSize←v28376 = SGNCK(value←v58740);
         };
      };
SOURCE(33543, 35)
   if ((sSize←v28348 == 0) || (fSize←v28376 == 0)) {
SOURCE(33572, 6)
      return;
      };
SOURCE(33580, 2039)
   {
      word var←c74972;
      var←c74972 = map←v15068;
      if ((var←c74972 == 0)) {
         goto lab←L100198;
         };
      {
         word var←c75516;
         var←c75516 = (* (( (ptr) var←c74972)+6) );
         if ((var←c75516 == 0)) {
            {
               word map←v28440;
               map←v28440 = var←c74972;
SOURCE(33625, 1263)
               {
                  word bitsPerSample←v28484;
                  word bitsPerLine←v28512;
                  word dstBitIndex←v28540;
                  word srcBitIndex←v28568;
SOURCE(33627, 38)
                  bitsPerSample←v28484 = (* (( (ptr) map←v28440)+5) );
SOURCE(33667, 34)
                  {
                     word idx156;
                     bitsPerLine←v28512 = (
                        idx156 = (* (( (ptr) map←v28440)+7) ),
                        SGNCK(idx156)
                        );
                     };
SOURCE(33703, 71)
                  dstBitIndex←v28540 = ((sDst0←v28236 * bitsPerLine←v28512) + (fDst0←v28264 * bitsPerSample←v28484));
SOURCE(33776, 71)
                  srcBitIndex←v28568 = ((sSrc0←v28292 * bitsPerLine←v28512) + (fSrc0←v28320 * bitsPerSample←v28484));
SOURCE(33849, 1034)
                  if ( (  (  (  ( ((fSrc0←v28320 + fSize←v28376) > fDst0←v28264) ? ((fDst0←v28264 + fSize←v28376) > fSrc0←v28320) : 0 )  ? ((sSrc0←v28292 + 
                  sSize←v28348) > sDst0←v28236) : 0 )  ? ((sDst0←v28236 + sSize←v28348) > sSrc0←v28292) : 0 )  ?  ( (sDst0←v28236 > sSrc0←v28292) ? 1 :  ( (sDst0←v28236 == sSrc0←v28292) ? (fDst0←v28264 > fSrc0←v28320) : 0 )  )  : 0 ) ) {
SOURCE(34016, 630)
                     if (( (int)srcMin←v15124.f0 <  (int)dstMin←v15096.f0)) {
SOURCE(34044, 310)
                        {
                           word bandSize←v28612;
SOURCE(34046, 35)
                           {
/*1*/   word idx157;
/*1*/   bandSize←v28612 = (
/*1*/      idx157 = (word) (dstMin←v15096.f0 - srcMin←v15124.f0),
/*1*/      SGNCK(idx157)
/*1*/      );
/*1*/   };
SOURCE(34083, 260)
                           {
/*1*/   register word sEnd←v28656;
/*1*/   sEnd←v28656 = size←v15152.f0;
/*1*/   lab←L100202: ;
/*1*/   if (( (int)sEnd←v28656 >  (int)0)) {
/*1*/      }
/*1*/   else {
/*1*/      goto lab←L100199;
/*1*/      };
/*1*/   {
/*1*/      word sBegin←v28700;
SOURCE(34144, 39)
/*1*/      sBegin←v28700 = (MAX((int)(word), (sEnd←v28656 - bandSize←v28612), 0));
SOURCE(34185, 158)
/*1*/      {
/*1*/         W2 var←c75004;
/*1*/         W2 var←c75036;
/*1*/         W2 var←c75068;
/*1*/         var←c75004.f0 = (dstMin←v15096.f0 + sBegin←v28700);
/*1*/         var←c75004.f1 = dstMin←v15096.f1;
/*1*/         var←c75036.f0 = (srcMin←v15124.f0 + sBegin←v28700);
/*1*/         var←c75036.f1 = srcMin←v15124.f1;
/*1*/         var←c75068.f0 = (sEnd←v28656 - sBegin←v28700);
/*1*/         var←c75068.f1 = size←v15152.f1;
/*1*/         (void) BasicTransfer←P3480(map←v28440, map←v28440, var←c75004, var←c75036, var←c75068, function←v15180);
/*1*/         };
/*1*/      };
/*1*/   sEnd←v28656 = (sEnd←v28656 - bandSize←v28612);
/*1*/   goto lab←L100202;
/*1*/   lab←L100199: ;
/*1*/   };
                           };
                        }
                     else {
SOURCE(34361, 287)
                        {
                           word temp←v28744;
SOURCE(34363, 86)
                           {
/*1*/   W4 var←c75100;
/*1*/   var←c75100.f0 = 0;
/*1*/   var←c75100.f1 = 0;
/*1*/   (*  (W2Pt) (( (ptr) &var←c75100)+2) ) = size←v15152;
/*1*/   temp←v28744 = (word) ObtainScratchMap←P1920(var←c75100, (* (( (ptr) map←v28440)+5) ), 0);
/*1*/   };
SOURCE(34451, 86)
                           {
/*1*/   W2 var←c75132;
/*1*/   var←c75132.f0 = 0;
/*1*/   var←c75132.f1 = 0;
/*1*/   (void) BasicTransfer←P3480(temp←v28744, map←v28440, var←c75132, srcMin←v15124, size←v15152, 0);
/*1*/   };
SOURCE(34539, 82)
                           {
/*1*/   W2 var←c75164;
/*1*/   var←c75164.f0 = 0;
/*1*/   var←c75164.f1 = 0;
/*1*/   (void) BasicTransfer←P3480(map←v28440, temp←v28744, dstMin←v15096, var←c75164, size←v15152, function←v15180);
/*1*/   };
SOURCE(34623, 23)
                           (void) ReleaseScratchMap←P1980(temp←v28744);
                           };
                        };
                     }
                  else {
SOURCE(34660, 223)
                     {
                        W2 var←c75196;
                        W2 var←c75292;
                        {
                           W2 var←c75228;
                           W2 addr←v57200;
                           addr←v57200 = (*  (W2Pt) (( (ptr) map←v28440)+8) );
                           {
/*1*/   word bitOffset←v57232;
/*1*/   word mod←v57260;
/*1*/   bitOffset←v57232 = (dstBitIndex←v28540 + addr←v57200.f1);
/*1*/   mod←v57260 = (bitOffset←v57232 & 037);
SOURCE(2833, 63)
/*1*/   var←c75228.f0 = (addr←v57200.f0 + IOP2( / ,  (int)(bitOffset←v57232 - mod←v57260),  (int)8));
/*1*/   var←c75228.f1 = mod←v57260;
/*1*/   };
                           var←c75196 = var←c75228;
                           };
                        {
                           W2 var←c75324;
                           W2 addr←v57096;
                           addr←v57096 = (*  (W2Pt) (( (ptr) map←v28440)+8) );
                           {
/*1*/   word bitOffset←v57128;
/*1*/   word mod←v57156;
/*1*/   bitOffset←v57128 = (srcBitIndex←v28568 + addr←v57096.f1);
/*1*/   mod←v57156 = (bitOffset←v57128 & 037);
SOURCE(2833, 63)
/*1*/   var←c75324.f0 = (addr←v57096.f0 + IOP2( / ,  (int)(bitOffset←v57128 - mod←v57156),  (int)8));
/*1*/   var←c75324.f1 = mod←v57156;
/*1*/   };
                           var←c75292 = var←c75324;
                           };
                        {
                           word pd158;
                           pd158 = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c81788)+226)/* var←c70076 */  ))+8) ))+(((unsigned)function←v15180 << 29) >> 30))
/*1*/   )+(function←v15180 & 1)) );
                           (void) ( *( (fPt) ((*  (ptr) pd158 ))))(var←c75196, var←c75292, bitsPerLine←v28512, bitsPerLine←v28512, sSize←v28348, (fSize←v28376 * bitsPerSample←v28484), pd158)
                           ;
                           };
                        };
                     };
                  };
               };
            }
         else {
            if ((var←c75516 == 1)) {
               {
                  word map←v28788;
                  map←v28788 = var←c74972;
SOURCE(34915, 706)
                  {
                     word buffer←v28832;
                     word class←v28860;
SOURCE(34917, 50)
                     buffer←v28832 = (word) ObtainScratchSamples←P780(fSize←v28376);
SOURCE(34969, 33)
                     class←v28860 = (* (( (ptr) map←v28788)+7) );
SOURCE(35004, 572)
                     if ((sDst0←v28236 <= sSrc0←v28292)) {
SOURCE(35029, 258)
                        {
                           register word s←v28904 = 0;
                           if ((s←v28904 >= sSize←v28348)) {
/*1*/   goto lab←L100205;
/*1*/   };
                           lab←L100208: ;
SOURCE(35057, 102)
                           {
/*1*/   W2 var←c75388;
/*1*/   var←c75388.f0 = (s←v28904 + srcMin←v15124.f0);
/*1*/   var←c75388.f1 = srcMin←v15124.f1;
/*1*/   {
/*1*/      word pd159;
/*1*/      pd159 = (*  (ptr) class←v28860 );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd159 ))))(map←v28788, var←c75388, buffer←v28832, 0, fSize←v28376, pd159);
/*1*/      };
/*1*/   };
SOURCE(35161, 126)
                           {
/*1*/   W2 var←c75420;
/*1*/   var←c75420.f0 = (s←v28904 + dstMin←v15096.f0);
/*1*/   var←c75420.f1 = dstMin←v15096.f1;
/*1*/   {
/*1*/      word pd160;
/*1*/      pd160 = (* (( (ptr) class←v28860)+1) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd160 ))))(map←v28788, var←c75420, buffer←v28832, 0, fSize←v28376, 0, pd160);
/*1*/      };
/*1*/   };
                           s←v28904 = (s←v28904 + 1);
                           if ((s←v28904 < sSize←v28348)) {
/*1*/   goto lab←L100208;
/*1*/   };
                           lab←L100205: ;
                           };
                        }
                     else {
SOURCE(35307, 269)
                        {
                           register word s←v28948;
                           s←v28948 = sSize←v28348;
                           if ((0 >= s←v28948)) {
/*1*/   goto lab←L100209;
/*1*/   };
                           s←v28948 = (s←v28948 - 1);
                           lab←L100212: ;
SOURCE(35346, 102)
                           {
/*1*/   W2 var←c75452;
/*1*/   var←c75452.f0 = (s←v28948 + srcMin←v15124.f0);
/*1*/   var←c75452.f1 = srcMin←v15124.f1;
/*1*/   {
/*1*/      word pd161;
/*1*/      pd161 = (*  (ptr) class←v28860 );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd161 ))))(map←v28788, var←c75452, buffer←v28832, 0, fSize←v28376, pd161);
/*1*/      };
/*1*/   };
SOURCE(35450, 126)
                           {
/*1*/   W2 var←c75484;
/*1*/   var←c75484.f0 = (s←v28948 + dstMin←v15096.f0);
/*1*/   var←c75484.f1 = dstMin←v15096.f1;
/*1*/   {
/*1*/      word pd162;
/*1*/      pd162 = (* (( (ptr) class←v28860)+1) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd162 ))))(map←v28788, var←c75484, buffer←v28832, 0, fSize←v28376, 0, pd162);
/*1*/      };
/*1*/   };
                           if ((0 >= s←v28948)) {
/*1*/   goto lab←L100209;
/*1*/   };
                           s←v28948 = (s←v28948 - 1);
                           goto lab←L100212;
                           lab←L100209: ;
                           };
                        };
SOURCE(35590, 29)
                     (void) ReleaseScratchSamples←P840(buffer←v28832);
                     };
                  };
               }
            else {
               lab←L100198: ;
               };
            };
         };
      };
   }

static void BufferFill←P3780(map←v15240, box←v15268, value←v15296, function←v15324)
   word map←v15240;
   W4 box←v15268;
   word value←v15296;
   word function←v15324;
   {
   register ptr gf←c81820 =  (ptr) &globalframe;
   /* BufferFill: */ 
SOURCE(35645, 466)
SOURCE(35752, 32)
   {
      word pd163;
      pd163 = (* (( (ptr) (* (( (ptr) gf←c81820)+225)/* var←c67164 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd163 ))))((word) &box←v15268, (*  (W4Pt) map←v15240 ), box←v15268, pd163);
      };
SOURCE(35786, 325)
   if ( ( ( (int)box←v15268.f0 <  (int)box←v15268.f2) ? ( (int)box←v15268.f1 <  (int)box←v15268.f3) : 0 ) ) {
SOURCE(35817, 296)
      {
         word buffer←v28992;
SOURCE(35819, 64)
         {
            word idx164;
            buffer←v28992 = (word) ObtainScratchSamples←P780((
                  idx164 = (word) (box←v15268.f3 - box←v15268.f1),
                  SGNCK(idx164)
                  ));
            };
SOURCE(35885, 61)
         {
            register word i←v29036 = 0;
            register word noName←c75548;
            noName←c75548 = (*  (ptr) buffer←v28992 );
            if ((i←v29036 >= noName←c75548)) {
               goto lab←L100213;
               };
            lab←L100216: ;
SOURCE(35921, 25)
            {
               word limit165;
               (* ((( (ptr) buffer←v28992)+2)+(
                     limit165 = (* (( (ptr) buffer←v28992)+1) ),
                     BCK(i←v29036, limit165)
                     )) ) = value←v15296;
               };
            i←v29036 = (i←v29036 + 1);
            if ((i←v29036 < noName←c75548)) {
               goto lab←L100216;
               };
            lab←L100213: ;
            };
SOURCE(35948, 123)
         {
            register word s←v29080;
            register word noName←c75580;
            {
               word idx166;
               s←v29080 = (
                  idx166 = (word) box←v15268.f0,
                  SGNCK(idx166)
                  );
               };
            {
               word idx167;
               noName←c75580 = (
                  idx167 = (word) box←v15268.f2,
                  SGNCK(idx167)
                  );
               };
            if ((s←v29080 >= noName←c75580)) {
               goto lab←L100217;
               };
            lab←L100220: ;
SOURCE(35988, 83)
            {
               W2 var←c75612;
               W2 var←c75644;
               var←c75612.f0 = s←v29080;
               var←c75612.f1 = box←v15268.f1;
               var←c75644.f0 = 0;
               var←c75644.f1 = 1;
               (void) PutSamples←P3300(map←v15240, var←c75612, var←c75644, buffer←v28992, 0, 2147483647
                  , function←v15324);
               };
            s←v29080 = (s←v29080 + 1);
            if ((s←v29080 < noName←c75580)) {
               goto lab←L100220;
               };
            lab←L100217: ;
            };
SOURCE(36082, 29)
         (void) ReleaseScratchSamples←P840(buffer←v28992);
         };
      };
   }

static void Fill←P3840(map←v15420, box←v15448, value←v15476, function←v15504)
   word map←v15420;
   W4 box←v15448;
   word value←v15476;
   word function←v15504;
   {
   register ptr gf←c81852 =  (ptr) &globalframe;
   word false←v29124;
   word bitsPerSample←v29152;
   /* Fill: */ 
SOURCE(36233, 1016)
SOURCE(36332, 41)
   {
      word idx168;
      false←v29124 = (
         idx168 = (* (( (ptr) map←v15420)+4) ),
         BCK(idx168, 1)
         );
      };
SOURCE(36375, 38)
   bitsPerSample←v29152 = (* (( (ptr) map←v15420)+5) );
SOURCE(36415, 756)
   {
      word var←c75676;
      var←c75676 = map←v15420;
      if ((var←c75676 == 0)) {
         goto lab←L100221;
         };
      if (((* (( (ptr) var←c75676)+6) ) == 0)) {
         {
            word map←v29216;
            map←v29216 = var←c75676;
SOURCE(36460, 711)
            if (((word) XRM←BITAND(bitsPerSample←v29152, SGNCK((bitsPerSample←v29152 - 1))) == 0)) {
SOURCE(36504, 669)
               {
                  word bitsPerLine←v29260;
                  W4 actualBox←v29288;
                  word sSize←v29316;
                  word fSize←v29344;
                  word dstBitIndex←v29372;
                  word bitMask←v29400;
                  word replicatedPixel←v29428;
SOURCE(36506, 34)
                  {
                     word idx169;
                     bitsPerLine←v29260 = (
                        idx169 = (* (( (ptr) map←v29216)+7) ),
                        SGNCK(idx169)
                        );
                     };
SOURCE(36542, 49)
                  {
                     W4 box1←v62540;
                     box1←v62540 = (*  (W4Pt) map←v29216 );
                     {
                        W2 v1←v62588;
                        W2 v2←v62616;
                        v1←v62588 = (*  (W2Pt) &box←v15448 );
                        v2←v62616 = (*  (W2Pt) &box1←v62540 );
                        if (( (int)v2←v62616.f0 >=  (int)v1←v62588.f0)) {
                           actualBox←v29288.f0 = v2←v62616.f0;
                           }
                        else {
                           actualBox←v29288.f0 = v1←v62588.f0;
                           };
                        if (( (int)v2←v62616.f1 >=  (int)v1←v62588.f1)) {
                           actualBox←v29288.f1 = v2←v62616.f1;
                           }
                        else {
                           actualBox←v29288.f1 = v1←v62588.f1;
                           };
                        };
                     {
                        W2 v1←v62660;
                        W2 v2←v62688;
                        v1←v62660 = (*  (W2Pt) (( (ptr) &box1←v62540)+2) );
                        v2←v62688 = (*  (W2Pt) (( (ptr) &box←v15448)+2) );
                        if (( (int)v1←v62660.f0 <=  (int)v2←v62688.f0)) {
                           actualBox←v29288.f2 = v1←v62660.f0;
                           }
                        else {
                           actualBox←v29288.f2 = v2←v62688.f0;
                           };
                        if (( (int)v1←v62660.f1 <=  (int)v2←v62688.f1)) {
                           actualBox←v29288.f3 = v1←v62660.f1;
                           }
                        else {
                           actualBox←v29288.f3 = v2←v62688.f1;
                           };
                        };
                     };
SOURCE(36593, 43)
                  sSize←v29316 =  ( ( (int)actualBox←v29288.f0 <  (int)actualBox←v29288.f2) ? (actualBox←v29288.f2 - actualBox←v29288.f0) : 0 ) ;
SOURCE(36638, 43)
                  fSize←v29344 =  ( ( (int)actualBox←v29288.f1 <  (int)actualBox←v29288.f3) ? (actualBox←v29288.f3 - actualBox←v29288.f1) : 0 ) ;
SOURCE(36683, 131)
                  {
                     word idx170;
                     word idx171;
                     dstBitIndex←v29372 = (((
                        idx170 = (word) (actualBox←v29288.f0 - (*  (ptr) map←v29216 )),
                        SGNCK(idx170)
                        ) * bitsPerLine←v29260) + ((
                        idx171 = (word) (actualBox←v29288.f1 - (* (( (ptr) map←v29216)+1) )),
                        SGNCK(idx171)
                        ) * bitsPerSample←v29152));
                     };
SOURCE(36816, 42)
                  {
                     word var←c75900;
                     {
                        word i←v60984;
                        i←v60984 = (32 - bitsPerSample←v29152);
SOURCE(18510, 39)
                        var←c75900 = (i←v60984 & 037);
                        };
                     bitMask←v29400 = (word) XRM←BITRSHIFT( (word) -1, var←c75900);
                     };
SOURCE(36860, 85)
                  {
                     word idx172;
                     replicatedPixel←v29428 = ((word) XRM←BITAND(value←v15476, bitMask←v29400) * (* ((( (ptr) gf←c81852)+213)/* var←c66460 */ +(
                           idx172 = (word) Lg←P240(bitsPerSample←v29152),
                           BCK(idx172, 6)
                           )) ));
                     };
SOURCE(36947, 216)
                  {
                     W2 var←c75964;
                     {
                        W2 var←c75996;
                        W2 addr←v56992;
                        addr←v56992 = (*  (W2Pt) (( (ptr) map←v29216)+8) );
                        {
                           word bitOffset←v57024;
                           word mod←v57052;
                           bitOffset←v57024 = (dstBitIndex←v29372 + addr←v56992.f1);
                           mod←v57052 = (bitOffset←v57024 & 037);
SOURCE(2833, 63)
                           var←c75996.f0 = (addr←v56992.f0 + IOP2( / ,  (int)(bitOffset←v57024 - mod←v57052),  (int)8));
                           var←c75996.f1 = mod←v57052;
                           };
                        var←c75964 = var←c75996;
                        };
                     {
                        word pd173;
                        pd173 = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c81852)+226)/* var←c70076 */  ))+7) ))+(((unsigned)function←v15504 << 29) >> 30))
                           )+(function←v15504 & 1)) );
                        (void) ( *( (fPt) ((*  (ptr) pd173 ))))(var←c75964, (word) &replicatedPixel←v29428, bitsPerLine←v29260, 0, 1, sSize←v29316
                           , (fSize←v29344 * bitsPerSample←v29152), pd173);
                        };
                     };
SOURCE(37165, 6)
                  return;
                  };
               };
            };
         }
      else {
         lab←L100221: ;
         };
      };
SOURCE(37185, 64)
   (void) BufferFill←P3780(map←v15420, box←v15448, value←v15476, function←v15504);
   }

static void FillBoxes←P3900(formal←c01370, boxes←v15592, formal←c01371, formal←c01372)
   word formal←c01370;
   word boxes←v15592;
   word formal←c01371;
   word formal←c01372;
   {
   W15 var←c81884;
   /* declaration of map←v15564 skipped */ 
   /* declaration of value←v15620 skipped */ 
   /* declaration of function←v15648 skipped */ 
   register ptr gf←c81916 =  (ptr) &globalframe;
   /* declaration of var←c76060 skipped */ 
   /* declaration of var←c76092 skipped */ 
   word false←v29472;
   word bitsPerSample←v29500;
   (* (( (ptr) &var←c81884)+4)/* map←v15564 */  ) = formal←c01370;
   (* (( (ptr) &var←c81884)+5)/* value←v15620 */  ) = formal←c01371;
   (* (( (ptr) &var←c81884)+6)/* function←v15648 */  ) = formal←c01372;
   /* FillBoxes: */ 
SOURCE(37255, 2113)
   {
      word tmpAddr174;
      tmpAddr174 = (word) (( (ptr) &var←c81884)+7)/* var←c76060 */ ;
      (*  (ptr) tmpAddr174 ) = ( ((word)  (fPt) SlowFill←P10164) );
      (* (( (ptr) tmpAddr174) + 1) ) = 1;
      };
   {
      word tmpAddr175;
      tmpAddr175 = (word) (( (ptr) &var←c81884)+9)/* var←c76092 */ ;
      (*  (ptr) tmpAddr175 ) = ( ((word)  (fPt) FastFill←P10008) );
      (* (( (ptr) tmpAddr175) + 1) ) = 1;
      };
SOURCE(37383, 41)
   {
      word idx176;
      false←v29472 = (
         idx176 = (* (( (ptr) (* (( (ptr) &var←c81884)+4)/* map←v15564 */  ))+4) ),
         BCK(idx176, 1)
         );
      };
SOURCE(37426, 38)
   bitsPerSample←v29500 = (* (( (ptr) (* (( (ptr) &var←c81884)+4)/* map←v15564 */  ))+5) );
SOURCE(37466, 1790)
   {
      word var←c76124;
      var←c76124 = (* (( (ptr) &var←c81884)+4)/* map←v15564 */  );
      if ((var←c76124 == 0)) {
         goto lab←L100227;
         };
      if (((* (( (ptr) var←c76124)+6) ) == 0)) {
         {
            /* declaration of map←v29564 skipped */ 
            (* (( (ptr) &var←c81884)+11)/* map←v29564 */  ) = var←c76124;
SOURCE(37511, 1745)
            if (((word) XRM←BITAND(bitsPerSample←v29500, SGNCK((bitsPerSample←v29500 - 1))) == 0)) {
SOURCE(37555, 1703)
               {
                  /* declaration of lgBitsPerSample←v29608 skipped */ 
                  word bitMask←v29636;
                  /* declaration of replicatedPixel←v29664 skipped */ 
                  /* declaration of op←v29692 skipped */ 
SOURCE(37557, 43)
                  {
                     word idx177;
                     (* (( (ptr) &var←c81884)+12)/* lgBitsPerSample←v29608 */  ) = (
                        idx177 = (word) Lg←P240(bitsPerSample←v29500),
                        BCK(idx177, 6)
                        );
                     };
SOURCE(37602, 52)
                  bitMask←v29636 = ((word) XRM←BITLSHIFT(1, BCK(bitsPerSample←v29500, 32)) - 1);
SOURCE(37656, 83)
                  (* (( (ptr) &var←c81884)+13)/* replicatedPixel←v29664 */  ) = ((word) XRM←BITAND((* (( (ptr) &var←c81884)+5)/* value←v15620 */  ), bitMask←v29636)
                   * (* ((( (ptr) gf←c81916)+213)/* var←c66460 */ +(* (( (ptr) &var←c81884)+12)/* lgBitsPerSample←v29608 */  )) ));
SOURCE(37741, 17)
                  (* (( (ptr) &var←c81884)+14)/* op←v29692 */  ) = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c81916)+226)/* var←c70076 */  ))+7)
                         ))+(((unsigned)(* (( (bPt) &var←c81884)+27) ) << 29) >> 30)))+((* (( (bPt) &var←c81884)+27) ) & 1)) );
SOURCE(39233, 15)
                  (void) ( *( (fPt) ((*  (ptr) boxes←v15592 ))))((word) ((( (bPt) &var←c81884)+36)/* var←c76092 */ ), boxes←v15592);
SOURCE(39250, 6)
                  return;
                  };
               };
            };
         }
      else {
         lab←L100227: ;
         };
      };
SOURCE(39286, 84)
SOURCE(39353, 15)
   (void) ( *( (fPt) ((*  (ptr) boxes←v15592 ))))((word) ((( (bPt) &var←c81884)+28)/* var←c76060 */ ), boxes←v15592);
   }

static void FastFill←P10008(box←v55508, formal←c81948)
   W4 box←v55508;
   word formal←c81948;
   {
   word sMin←v30012;
   word fMin←v30040;
   word sMax←v30068;
   word fMax←v30096;
   formal←c81948 = (formal←c81948 - 36);
   /* FastFill: */ 
SOURCE(37899, 30)
SOURCE(37931, 25)
   sMin←v30012 = box←v55508.f0;
SOURCE(37958, 25)
   fMin←v30040 = box←v55508.f1;
SOURCE(37985, 25)
   sMax←v30068 = box←v55508.f2;
SOURCE(38012, 25)
   fMax←v30096 = box←v55508.f3;
SOURCE(38039, 1186)
   if ( ( ( (int)sMax←v30068 >  (int)sMin←v30012) ? ( (int)fMax←v30096 >  (int)fMin←v30040) : 0 ) ) {
SOURCE(38075, 1152)
      {
         word m←v30140;
         word bitsPerLine←v30168;
         word sDst←v30196;
         word fDst←v30224;
         word lgBPS←v30252;
         word check←v30280;
         word bitDst←v30308;
         word fBitCount←v30336;
         word mod←v30364;
         word wordAddress←v30392;
         word sSize←v30420;
SOURCE(38077, 24)
         m←v30140 = (* (( (ptr) formal←c81948)+11) );
SOURCE(38103, 37)
         bitsPerLine←v30168 = (* (( (ptr) m←v30140)+7) );
SOURCE(38142, 43)
         sDst←v30196 = (sMin←v30012 - (*  (ptr) m←v30140 ));
SOURCE(38187, 43)
         fDst←v30224 = (fMin←v30040 - (* (( (ptr) m←v30140)+1) ));
SOURCE(38232, 31)
         lgBPS←v30252 = (* (( (ptr) formal←c81948)+12) );
SOURCE(38265, 141)
         {
            word var←c76156;
            word var←c76188;
            var←c76156 = (word) XRM←BITOR(sDst←v30196, fDst←v30224);
            var←c76188 = (word) XRM←BITOR(((* (( (ptr) m←v30140)+2) ) - sMax←v30068), ((* (( (ptr) m←v30140)+3) ) - fMax←v30096));
            {
               word idx178;
               check←v30280 = (
                  idx178 = (word) XRM←BITOR(var←c76156, var←c76188),
                  SGNCK(idx178)
                  );
               };
            };
SOURCE(38428, 76)
         bitDst←v30308 = (((sDst←v30196 * bitsPerLine←v30168) + (word) XRM←BITLSHIFT(fDst←v30224, lgBPS←v30252)) + (* (( (ptr) m←v30140)+9)
          ));
SOURCE(38506, 72)
         fBitCount←v30336 = (word) XRM←BITLSHIFT((fMax←v30096 - fMin←v30040), lgBPS←v30252);
SOURCE(38580, 39)
         mod←v30364 = (bitDst←v30308 & 037);
SOURCE(38621, 57)
         wordAddress←v30392 = ((* (( (ptr) m←v30140)+8) ) + IOP2( / ,  (int)(bitDst←v30308 - mod←v30364),  (int)8));
SOURCE(38680, 47)
         sSize←v30420 = (sMax←v30068 - sMin←v30012);
SOURCE(38729, 333)
         if (((* (( (ptr) formal←c81948)+6) ) == 0)) {
            if ( (  ( (fBitCount←v30336 == bitsPerLine←v30168) ? (mod←v30364 == 0) : 0 )  ? ((fBitCount←v30336 & 037) == 0) : 0 ) ) {
SOURCE(38843, 88)
               (void) Basics←FillWords(wordAddress←v30392, (((word) fBitCount←v30336 >> 5) * sSize←v30420), (* (( (ptr) formal←c81948)+13)
                   ));
SOURCE(38933, 6)
               return;
               }
            else {
               if ((sSize←v30420 == 1)) {
SOURCE(38960, 94)
                  (void) Basics←FillBits(wordAddress←v30392, mod←v30364, fBitCount←v30336, (* (( (ptr) formal←c81948)+13) ));
SOURCE(39056, 6)
                  return;
                  };
               };
            };
SOURCE(39076, 149)
         {
            W2 var←c76220;
            var←c76220.f0 = wordAddress←v30392;
            var←c76220.f1 = mod←v30364;
            {
               word pd179;
               pd179 = (* (( (ptr) formal←c81948)+14) );
               (void) ( *( (fPt) ((*  (ptr) pd179 ))))(var←c76220, (word) (( (bPt) formal←c81948)+52), bitsPerLine←v30168, 0, 1, sSize←v30420
                  , fBitCount←v30336, pd179);
               };
            };
         };
      };
   }

static void SlowFill←P10164(box←v55580, formal←c81980)
   W4 box←v55580;
   word formal←c81980;
   {
   formal←c81980 = (formal←c81980 - 28);
   /* SlowFill: */ 
SOURCE(39288, 22)
SOURCE(39312, 38)
   (void) BufferFill←P3780((* (( (ptr) formal←c81980)+4) ), box←v55580, (* (( (ptr) formal←c81980)+5) ), (* (( (ptr) formal←c81980)+6)
       ));
   }

static void RegionFill←P3960(formal←c01373, edgeGenerator←v15736, value←v15764, function←v15792)
   word formal←c01373;
   word edgeGenerator←v15736;
   word value←v15764;
   word function←v15792;
   {
   W18 var←c82012;
   /* declaration of dst←v15708 skipped */ 
   register ptr gf←c82044 =  (ptr) &globalframe;
   /* declaration of var←c76252 skipped */ 
   word false←v30560;
   /* declaration of edges←v30616 skipped */ 
   word bitsPerSample←v30644;
   word zero←v30672;
   /* declaration of lgBitsPerSample←v30700 skipped */ 
   /* declaration of op←v30728 skipped */ 
   word bitMask←v30784;
   /* declaration of replicatedPixel←v30812 skipped */ 
   (* (( (ptr) &var←c82012)+4)/* dst←v15708 */  ) = formal←c01373;
   /* RegionFill: */ 
SOURCE(39377, 3064)
   {
      word tmpAddr180;
      tmpAddr180 = (word) (( (ptr) &var←c82012)+5)/* var←c76252 */ ;
      (*  (ptr) tmpAddr180 ) = ( ((word)  (fPt) edgeAction←P10224) );
      (* (( (ptr) tmpAddr180) + 1) ) = 1;
      };
SOURCE(39505, 41)
   {
      word idx181;
      false←v30560 = (
         idx181 = (* (( (ptr) (* (( (ptr) &var←c82012)+4)/* dst←v15708 */  ))+4) ),
         BCK(idx181, 1)
         );
      };
SOURCE(39648, 79)
   {
      W4 var←c76316;
      var←c76316.f0 = 0;
      var←c76316.f1 = 0;
      var←c76316.f2 = 0;
      var←c76316.f3 = 0;
      XR←FillLongWords(&(* (W8Pt) ((( (ptr) &var←c82012)+7)/* edges←v30616 */ )), &var←c76316, 4, 2);
      };
SOURCE(39729, 38)
   bitsPerSample←v30644 = (* (( (ptr) (* (( (ptr) &var←c82012)+4)/* dst←v15708 */  ))+5) );
SOURCE(39769, 36)
   {
      word idx182;
      zero←v30672 = (
         idx182 = (word) (32 % bitsPerSample←v30644),
         BCK(idx182, 1)
         );
      };
SOURCE(39848, 43)
   {
      word idx183;
      (* (( (ptr) &var←c82012)+15)/* lgBitsPerSample←v30700 */  ) = (
         idx183 = (word) Lg←P240(bitsPerSample←v30644),
         BCK(idx183, 6)
         );
      };
SOURCE(39933, 17)
   (* (( (ptr) &var←c82012)+16)/* op←v30728 */  ) = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c82044)+226)/* var←c70076 */  ))+7)
          ))+(((unsigned)function←v15792 << 29) >> 30)))+(function←v15792 & 1)) );
SOURCE(42287, 42)
   {
      word var←c76348;
      {
         word i←v60936;
         i←v60936 = (32 - bitsPerSample←v30644);
SOURCE(18510, 39)
         var←c76348 = (i←v60936 & 037);
         };
      bitMask←v30784 = (word) XRM←BITRSHIFT( (word) -1, var←c76348);
      };
SOURCE(42331, 83)
   (* (( (ptr) &var←c82012)+17)/* replicatedPixel←v30812 */  ) = ((word) XRM←BITAND(value←v15764, bitMask←v30784) * (* ((( (ptr) gf←c82044)+213)
      /* var←c66460 */ +(* (( (ptr) &var←c82012)+15)/* lgBitsPerSample←v30700 */  )) ));
SOURCE(42416, 25)
   (void) ( *( (fPt) ((*  (ptr) edgeGenerator←v15736 ))))((word) ((( (bPt) &var←c82012)+20)/* var←c76252 */ ), edgeGenerator←v15736)
   ;
   }

static void edgeAction←P10224(which←v31340, sMin←v31368, sCount←v31396, f0←v31424, df←v31452, formal←c82076)
   word which←v31340;
   word sMin←v31368;
   word sCount←v31396;
   word f0←v31424;
   word df←v31452;
   word formal←c82076;
   {
   word lgbps←v31500;
   W8 e←v31556;
   formal←c82076 = (formal←c82076 - 20);
   /* edgeAction: */ 
SOURCE(40091, 2191)
SOURCE(40197, 31)
   lgbps←v31500 = (* (( (ptr) formal←c82076)+15) );
SOURCE(40354, 190)
   if ((which←v31340 == 0)) {
      e←v31556.f0 = sMin←v31368;
      e←v31556.f1 = (sMin←v31368 + sCount←v31396);
      e←v31556.f2 = f0←v31424;
      e←v31556.f3 = df←v31452;
      }
   else {
      (*  (W4Pt) &e←v31556 ) = (*  (W4Pt) (( (ptr) formal←c82076)+7) );
      };
   if ((which←v31340 == 1)) {
      e←v31556.f4 = sMin←v31368;
      e←v31556.f5 = (sMin←v31368 + sCount←v31396);
      e←v31556.f6 = f0←v31424;
      e←v31556.f7 = df←v31452;
      }
   else {
      (*  (W4Pt) (( (ptr) &e←v31556)+4) ) = (*  (W4Pt) (( (ptr) formal←c82076)+11) );
      };
SOURCE(40546, 1722)
   if ( (  ( ( (int)e←v31556.f0 <  (int)e←v31556.f1) ? ( (int)e←v31556.f4 <  (int)e←v31556.f5) : 0 )  ? ( (int)e←v31556.f0 <  (int)(* (
      ( (ptr) (* (( (ptr) formal←c82076)+4) ))+2) )) : 0 ) ) {
SOURCE(40638, 1632)
      {
         word s←v31760;
         word zero←v31788;
         W4 box←v31816;
         word sMax←v31844;
         W4 currentBox←v31872;
         word bitsPerLine←v31900;
         W2 line←v31928;
SOURCE(40640, 22)
         s←v31760 = e←v31556.f0;
SOURCE(40664, 28)
         {
            word idx184;
            zero←v31788 = (
               idx184 = (word) (s←v31760 - e←v31556.f4),
               BCK(idx184, 1)
               );
            };
SOURCE(40694, 18)
         box←v31816 = (*  (W4Pt) (* (( (ptr) formal←c82076)+4) ) );
SOURCE(40714, 52)
         {
            word x185;
            word x186;
            word x187;
            word x188;
            sMax←v31844 = (x185 = e←v31556.f1,
               x186 = e←v31556.f5,
               x187 = MIN((int)(word), x185, x186),
               x188 = box←v31816.f2,
               MIN((int)(word), x187, x188));
            };
SOURCE(40768, 23)
         currentBox←v31872.f0 = 0;
         currentBox←v31872.f1 = 0;
         currentBox←v31872.f2 = 0;
         currentBox←v31872.f3 = 0;
SOURCE(40793, 34)
         {
            word idx189;
            bitsPerLine←v31900 = (
               idx189 = (* (( (ptr) (* (( (ptr) formal←c82076)+4) ))+7) ),
               SGNCK(idx189)
               );
            };
SOURCE(40829, 73)
         {
            W2 addr←v56860;
            word offset←v56888;
            addr←v56860 = (*  (W2Pt) (( (ptr) (* (( (ptr) formal←c82076)+4) ))+8) );
            {
               word idx190;
               offset←v56888 = ((
                  idx190 = (word) (s←v31760 - box←v31816.f0),
                  SGNCK(idx190)
                  ) * bitsPerLine←v31900);
               };
            {
               word bitOffset←v56920;
               word mod←v56948;
               bitOffset←v56920 = (offset←v56888 + addr←v56860.f1);
               mod←v56948 = (bitOffset←v56920 & 037);
SOURCE(2833, 63)
               line←v31928.f0 = (addr←v56860.f0 + IOP2( / ,  (int)(bitOffset←v56920 - mod←v56948),  (int)8));
               line←v31928.f1 = mod←v56948;
               };
            };
SOURCE(40904, 1325)
         if ( (  ( (e←v31556.f3 == 0) ? (e←v31556.f7 == 0) : 0 )  ? ( (int)s←v31760 >=  (int)box←v31816.f0) : 0 ) ) {
SOURCE(40991, 495)
            {
               word f0←v31992;
               word f1←v32020;
SOURCE(40993, 41)
               {
                  word a←v64012;
                  a←v64012 = e←v31556.f2;
                  f0←v31992 =  (word)( (int)a←v64012 >> 16);
                  };
SOURCE(41036, 41)
               {
                  word a←v63964;
                  a←v63964 = e←v31556.f6;
                  f1←v32020 =  (word)( (int)a←v63964 >> 16);
                  };
SOURCE(41079, 49)
               if (( (int)f0←v31992 >  (int)f1←v32020)) {
SOURCE(41095, 33)
                  {
                     word t←v32064;
SOURCE(41096, 15)
                     t←v32064 = f0←v31992;
SOURCE(41113, 7)
                     f0←v31992 = f1←v32020;
SOURCE(41122, 6)
                     f1←v32020 = t←v32064;
                     };
                  };
SOURCE(41131, 37)
               if (( (int)f0←v31992 <  (int)box←v31816.f1)) {
SOURCE(41154, 14)
                  f0←v31992 = box←v31816.f1;
                  };
SOURCE(41170, 37)
               if (( (int)f1←v32020 >  (int)box←v31816.f3)) {
SOURCE(41193, 14)
                  f1←v32020 = box←v31816.f3;
                  };
SOURCE(41209, 262)
               if (( (int)f0←v31992 <  (int)f1←v32020)) {
SOURCE(41225, 248)
                  {
                     word offset←v32108;
SOURCE(41227, 44)
                     {
                        word var←c76732;
                        word f←v61224;
                        f←v61224 = (f0←v31992 - box←v31816.f1);
SOURCE(40295, 56)
                        var←c76732 = (word) XRM←BITLSHIFT(f←v61224, lgbps←v31500);
                        offset←v32108 = (line←v31928.f1 + var←c76732);
                        };
SOURCE(41273, 198)
                     {
                        word var←c76796;
                        {
                           word var←c76828;
                           word f←v61176;
                           f←v61176 = (f1←v32020 - f0←v31992);
SOURCE(40295, 56)
                           var←c76828 = (word) XRM←BITLSHIFT(f←v61176, lgbps←v31500);
                           var←c76796 = var←c76828;
                           };
                        {
                           W2 var←c76892;
                           {
/*1*/   word idx191;
/*1*/   var←c76892.f0 = (line←v31928.f0 + ((word) ((word) (((word) (
/*1*/      idx191 = (word) ((word) offset←v32108 >> 5),
/*1*/      BCK(idx191, 67108863)
/*1*/      ) << 5) + 31) >> 5) << 2));
/*1*/   };
                           var←c76892.f1 = (offset←v32108 & 037);
                           {
/*1*/   word pd192;
/*1*/   pd192 = (* (( (ptr) formal←c82076)+16) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd192 ))))(var←c76892, (word) (( (bPt) formal←c82076)+68), bitsPerLine←v31900, 0, 1, (sMax←v31844 - s←v31760)
/*1*/      , var←c76796, pd192);
/*1*/   };
                           };
                        };
                     };
                  };
SOURCE(41476, 8)
               s←v31760 = sMax←v31844;
               };
            }
         else {
SOURCE(41495, 734)
            lab←L100236: ;
            if (( (int)s←v31760 <  (int)sMax←v31844)) {
               }
            else {
               goto lab←L100234;
               };
            {
               word f0←v32152;
               word f1←v32180;
SOURCE(41513, 41)
               {
                  word a←v63916;
                  a←v63916 = e←v31556.f2;
                  f0←v32152 =  (word)( (int)a←v63916 >> 16);
                  };
SOURCE(41556, 41)
               {
                  word a←v63868;
                  a←v63868 = e←v31556.f6;
                  f1←v32180 =  (word)( (int)a←v63868 >> 16);
                  };
SOURCE(41599, 49)
               if (( (int)f0←v32152 >  (int)f1←v32180)) {
SOURCE(41615, 33)
                  {
                     word t←v32224;
SOURCE(41616, 15)
                     t←v32224 = f0←v32152;
SOURCE(41633, 7)
                     f0←v32152 = f1←v32180;
SOURCE(41642, 6)
                     f1←v32180 = t←v32224;
                     };
                  };
SOURCE(41651, 37)
               if (( (int)f0←v32152 <  (int)box←v31816.f1)) {
SOURCE(41674, 14)
                  f0←v32152 = box←v31816.f1;
                  };
SOURCE(41690, 37)
               if (( (int)f1←v32180 >  (int)box←v31816.f3)) {
SOURCE(41713, 14)
                  f1←v32180 = box←v31816.f3;
                  };
SOURCE(41729, 266)
               if ( ( ( (int)s←v31760 >=  (int)box←v31816.f0) ? ( (int)f0←v32152 <  (int)f1←v32180) : 0 ) ) {
SOURCE(41764, 233)
                  {
                     word offset←v32268;
SOURCE(41766, 44)
                     {
                        word var←c76988;
                        word f←v61128;
                        f←v61128 = (f0←v32152 - box←v31816.f1);
SOURCE(40295, 56)
                        var←c76988 = (word) XRM←BITLSHIFT(f←v61128, lgbps←v31500);
                        offset←v32268 = (line←v31928.f1 + var←c76988);
                        };
SOURCE(41812, 183)
                     {
                        word var←c77052;
                        {
                           word var←c77084;
                           word f←v61080;
                           f←v61080 = (f1←v32180 - f0←v32152);
SOURCE(40295, 56)
                           var←c77084 = (word) XRM←BITLSHIFT(f←v61080, lgbps←v31500);
                           var←c77052 = var←c77084;
                           };
                        {
                           W2 var←c77148;
                           {
/*1*/   word idx193;
/*1*/   var←c77148.f0 = (line←v31928.f0 + ((word) ((word) (((word) (
/*1*/      idx193 = (word) ((word) offset←v32268 >> 5),
/*1*/      BCK(idx193, 67108863)
/*1*/      ) << 5) + 31) >> 5) << 2));
/*1*/   };
                           var←c77148.f1 = (offset←v32268 & 037);
                           {
/*1*/   word pd194;
/*1*/   pd194 = (* (( (ptr) formal←c82076)+16) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd194 ))))(var←c77148, (word) (( (bPt) formal←c82076)+68), bitsPerLine←v31900, 0, 1, 1
/*1*/      , var←c77052, pd194);
/*1*/   };
                           };
                        };
                     };
                  };
SOURCE(42000, 45)
               {
                  word a←v63776;
                  word b←v63804;
                  a←v63776 = e←v31556.f2;
                  b←v63804 = e←v31556.f3;
                  {
                     word i←v45352;
                     i←v45352 = (a←v63776 + b←v63804);
                     e←v31556.f2 = i←v45352;
                     };
                  };
SOURCE(42047, 45)
               {
                  word a←v63656;
                  word b←v63684;
                  a←v63656 = e←v31556.f6;
                  b←v63684 = e←v31556.f7;
                  {
                     word i←v63732;
                     i←v63732 = (a←v63656 + b←v63684);
                     e←v31556.f6 = i←v63732;
                     };
                  };
SOURCE(42094, 123)
               {
                  word offset←v32312;
SOURCE(42095, 39)
                  offset←v32312 = (line←v31928.f1 + bitsPerLine←v31900);
SOURCE(42136, 52)
                  {
                     word idx195;
                     line←v31928.f0 = (line←v31928.f0 + ((word) ((word) (((word) (
                        idx195 = (word) ((word) offset←v32312 >> 5),
                        BCK(idx195, 67108863)
                        ) << 5) + 31) >> 5) << 2));
                     };
SOURCE(42190, 25)
                  line←v31928.f1 = (offset←v32312 & 037);
                  };
SOURCE(42220, 9)
               s←v31760 = (s←v31760 + 1);
               };
            goto lab←L100236;
            lab←L100234: ;
            };
SOURCE(42243, 25)
         e←v31556.f0 = s←v31760;
         e←v31556.f4 = s←v31760;
         };
      };
SOURCE(42273, 9)
   (*  (W8Pt) (( (ptr) formal←c82076)+7) ) = e←v31556;
   }

static word TileFromStipple←P4020(stipple←v15912, bitsPerSample←v15940, value0←v15968, value1←v15996, scratch←v16024)
   word stipple←v15912;
   word bitsPerSample←v15940;
   word value0←v15968;
   word value1←v15996;
   word scratch←v16024;
   {
   register ptr gf←c82108 =  (ptr) &globalframe;
   word var←c16068;
   word easy←v32356;
   W2 size←v32384;
   word temp←v32412;
   word tile←v32440;
   W4 var←c77468;
   /* TileFromStipple: */ 
SOURCE(42479, 825)
SOURCE(42630, 44)
   easy←v32356 =  (unsigned) ((32 % ((word) bitsPerSample←v15940 << 2)) == 0);
SOURCE(42676, 91)
   if ((0 != easy←v32356)) {
      size←v32384.f0 = 4;
      size←v32384.f1 = (32 / bitsPerSample←v15940);
      }
   else {
      size←v32384.f0 = 8;
      {
         word idx196;
         size←v32384.f1 = (
            idx196 = (word) ((* (( (ptr) gf←c82108)+47)/* tileFromStippleRepl←v5464 */  ) << 2),
            SGNCK(idx196)
            );
         };
      };
SOURCE(42769, 67)
   temp←v32412 = (word) ObtainScratchMap←P1920((*  (W4Pt) (( (ptr) gf←c82108)+219)/* var←c66524 */  ), bitsPerSample←v15940, 0)
   ;
SOURCE(42838, 25)
   tile←v32440 = scratch←v16024;
SOURCE(42865, 168)
   {
      word tc198;
      if ((tile←v32440 == 0)) { goto then0197;};
      if (((* (( (ptr) tile←v32440)+5) ) != bitsPerSample←v15940)) {
         tc198 =  (word) 1;
         }
      else {
         var←c77468.f0 = 0;
         var←c77468.f1 = 0;
         (*  (W2Pt) (( (ptr) &var←c77468)+2) ) = size←v32384;
         tc198 =  (word)  ! XR←EqualWords(tile←v32440, &var←c77468, 4);
         };
      if (tc198) {
         then0197: ;
SOURCE(42961, 72)
         {
            W4 var←c77500;
            var←c77500.f0 = 0;
            var←c77500.f1 = 0;
            (*  (W2Pt) (( (ptr) &var←c77500)+2) ) = size←v32384;
            tile←v32440 = (word) NewSampleMap←P1620(var←c77500, bitsPerSample←v15940, 0);
            };
         };
      };
SOURCE(43036, 11)
   (void) Clear←P3360(tile←v32440);
SOURCE(43049, 162)
   {
      register word s←v32484 = 3;
      lab←L100248: ;
SOURCE(43084, 127)
      {
         register word f←v32528 = 3;
         lab←L100252: ;
SOURCE(43119, 71)
         {
            W2 var←c77532;
            var←c77532.f0 = s←v32484;
            var←c77532.f1 = f←v32528;
            (void) Put←P3180(temp←v32412, var←c77532,  ( ((stipple←v15912 & 1) == 0) ? value0←v15968 : value1←v15996 ) , 0);
            };
SOURCE(43192, 19)
         stipple←v15912 = ((word) stipple←v15912 >> 1);
         if ((0 >= f←v32528)) {
            goto lab←L100249;
            };
         f←v32528 = (f←v32528 - 1);
         goto lab←L100252;
         lab←L100249: ;
         };
      if ((0 >= s←v32484)) {
         goto lab←L100245;
         };
      s←v32484 = (s←v32484 - 1);
      goto lab←L100248;
      lab←L100245: ;
      };
SOURCE(43231, 34)
   (void) GeneralTile←P4260(tile←v32440, (*  (W4Pt) (( (ptr) gf←c82108)+209)/* var←c66396 */  ), temp←v32412, 0, 0);
SOURCE(43267, 23)
   (void) ReleaseScratchMap←P1980(temp←v32412);
SOURCE(43292, 12)
   return(tile←v32440);
   }

static void DivMod←P4080(formal←c0988, n←v16200, d←v16228)
   word formal←c0988;
   word n←v16200;
   word d←v16228;
   {
   W2 qr←v16272;
   /* DivMod: */ 
SOURCE(43366, 111)
SOURCE(43417, 24)
   qr←v16272.f1 = (word) Mod←P4140(n←v16200, d←v16228);
SOURCE(43443, 34)
   qr←v16272.f0 = IOP2( / ,  (int)(n←v16200 - qr←v16272.f1),  (int)d←v16228);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0988 ) = qr←v16272;
   return;
   }

static word Mod←P4140(n←v16332, d←v16360)
   word n←v16332;
   word d←v16360;
   {
   word var←c16404;
   /* Mod: */ 
SOURCE(43483, 227)
SOURCE(43528, 182)
   if ((d←v16360 != 1)) {
SOURCE(43542, 148)
      if (( (int)n←v16332 >=  (int)0)) {
SOURCE(43557, 28)
         return((SGNCK(n←v16332) % d←v16360));
         }
      else {
SOURCE(43585, 105)
         {
            word remainder←v32572;
SOURCE(43587, 24)
            remainder←v32572 = IOP2( % ,  (int)n←v16332,  (int)d←v16360);
SOURCE(43613, 56)
            lab←L100256: ;
            if (( (int)remainder←v32572 <  (int)0)) {
               }
            else {
               goto lab←L100254;
               };
SOURCE(43636, 33)
            remainder←v32572 = (remainder←v32572 + d←v16360);
            goto lab←L100256;
            lab←L100254: ;
SOURCE(43671, 19)
            return(SGNCK(remainder←v32572));
            };
         };
      }
   else {
SOURCE(43700, 10)
      return(0);
      };
   }

static void GeneralTile←P4260(formal←c01374, formal←c01375, tile←v16652, phase←v16680, function←v16708)
   word formal←c01374;
   W4 formal←c01375;
   word tile←v16652;
   word phase←v16680;
   word function←v16708;
   {
   W11 var←c82140;
   /* declaration of map←v16596 skipped */ 
   /* declaration of box←v16624 skipped */ 
   /* declaration of var←c77564 skipped */ 
   (* (( (ptr) &var←c82140)+4)/* map←v16596 */  ) = formal←c01374;
   (*  (W4Pt) (( (ptr) &var←c82140)+5)/* box←v16624 */  ) = formal←c01375;
   /* GeneralTile: */ 
SOURCE(43800, 242)
   {
      word tmpAddr199;
      tmpAddr199 = (word) (( (ptr) &var←c82140)+9)/* var←c77564 */ ;
      (*  (ptr) tmpAddr199 ) = ( ((word)  (fPt) boxes←P10872) );
      (* (( (ptr) tmpAddr199) + 1) ) = 1;
      };
SOURCE(43991, 51)
   (void) GeneralTileBoxes←P4380((* (( (ptr) &var←c82140)+4)/* map←v16596 */  ), (word) (( (bPt) &var←c82140)+36)/* var←c77564 */ , tile←v16652, phase←v16680, function←v16708)
   ;
   }

static void boxes←P10872(boxAction←v55664, formal←c82204)
   word boxAction←v55664;
   word formal←c82204;
   {
   register ptr gf←c82172 =  (ptr) &globalframe;
   formal←c82204 = (formal←c82204 - 36);
   /* boxes: */ 
SOURCE(43926, 62)
SOURCE(43950, 38)
   {
      W4 var←c77596;
      {
         word pd200;
         pd200 = (* (( (ptr) (* (( (ptr) gf←c82172)+225)/* var←c67164 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd200 ))))((word) &var←c77596, (*  (W4Pt) (* (( (ptr) formal←c82204)+4) ) ), (*  (W4Pt) (( (ptr) formal←c82204)+5)
             ), pd200);
         };
      (void) ( *( (fPt) ((*  (ptr) boxAction←v55664 ))))(var←c77596, boxAction←v55664);
      };
   }

static void GetTileSamples←P4320(tile←v16768, phase←v16796, initIndex←v16824, buffer←v16852)
   word tile←v16768;
   word phase←v16796;
   W2 initIndex←v16824;
   word buffer←v16852;
   {
   word s0←v32660;
   word f0←v32688;
   word sOffset←v32716;
   W2 tileSize←v32744;
   W2 qr←v32772;
   word fOffset←v32800;
   W2 srcIndexRel←v32828;
   W2 srcIndex←v32856;
   word count1←v32884;
   word count2←v32912;
   word count3←v32940;
   /* GetTileSamples: */ 
SOURCE(44048, 959)
SOURCE(44151, 24)
   s0←v32660 = (*  (ptr) tile←v16768 );
SOURCE(44177, 24)
   f0←v32688 = (* (( (ptr) tile←v16768)+1) );
SOURCE(44203, 29)
   sOffset←v32716 = (initIndex←v16824.f0 - s0←v32660);
SOURCE(44234, 39)
   {
      W4 box←v62204;
      box←v62204 = (*  (W4Pt) tile←v16768 );
      {
         word x201;
         tileSize←v32744.f0 = (x201 = (box←v62204.f2 - box←v62204.f0),
            MAX((int)(word), x201, 0));
         };
      {
         word x202;
         tileSize←v32744.f1 = (x202 = (box←v62204.f3 - box←v62204.f1),
            MAX((int)(word), x202, 0));
         };
      };
SOURCE(44275, 36)
   {
      word idx203;
      (void) DivMod←P4080((word) &qr←v32772, sOffset←v32716, (
            idx203 = (word) tileSize←v32744.f0,
            SGNCK(idx203)
            ));
      };
SOURCE(44313, 56)
   fOffset←v32800 = (initIndex←v16824.f1 - (f0←v32688 + IOP2( * ,  (int)qr←v32772.f0,  (int)phase←v16796)));
SOURCE(44371, 65)
   srcIndexRel←v32828.f0 = qr←v32772.f1;
   {
      word idx204;
      srcIndexRel←v32828.f1 = (word) Mod←P4140(fOffset←v32800, (
            idx204 = (word) tileSize←v32744.f1,
            SGNCK(idx204)
            ));
      };
SOURCE(44438, 55)
   {
      W2 v2←v63608;
      v2←v63608 = (*  (W2Pt) tile←v16768 );
      srcIndex←v32856.f0 = (srcIndexRel←v32828.f0 + v2←v63608.f0);
      srcIndex←v32856.f1 = (srcIndexRel←v32828.f1 + v2←v63608.f1);
      };
SOURCE(44495, 58)
   {
      word x205;
      word x206;
      count1←v32884 = (x205 = (*  (ptr) buffer←v16852 ),
         x206 = (tileSize←v32744.f1 - srcIndexRel←v32828.f1),
         MIN((int)(word), x205, x206));
      };
SOURCE(44555, 54)
   {
      word x207;
      word x208;
      count2←v32912 = (x207 = ((*  (ptr) buffer←v16852 ) - count1←v32884),
         x208 = srcIndexRel←v32828.f1,
         MIN((int)(word), x207, x208));
      };
SOURCE(44611, 41)
   count3←v32940 = (((*  (ptr) buffer←v16852 ) - count1←v32884) - count2←v32912);
SOURCE(44654, 98)
   {
      W2 var←c77788;
      var←c77788.f0 = 0;
      var←c77788.f1 = 1;
      (void) GetSamples←P3240(tile←v16768, srcIndex←v32856, var←c77788, buffer←v16852, 0, count1←v32884);
      };
SOURCE(44754, 142)
   if ((count2←v32912 != 0)) {
SOURCE(44773, 123)
      {
         W2 var←c77820;
         W2 var←c77852;
         var←c77820.f0 = srcIndex←v32856.f0;
         var←c77820.f1 = (* (( (ptr) tile←v16768)+1) );
         var←c77852.f0 = 0;
         var←c77852.f1 = 1;
         (void) GetSamples←P3240(tile←v16768, var←c77820, var←c77852, buffer←v16852, count1←v32884, count2←v32912);
         };
      };
SOURCE(44898, 109)
   if ((count3←v32940 != 0)) {
SOURCE(44917, 90)
      (void) CopySamples←P1200(buffer←v16852, buffer←v16852, SGNCK((count1←v32884 + count2←v32912)), 0, count3←v32940);
      };
   }

static void GeneralTileBoxes←P4380(formal←c01376, boxes←v16940, formal←c01377, formal←c01378, formal←c01379)
   word formal←c01376;
   word boxes←v16940;
   word formal←c01377;
   word formal←c01378;
   word formal←c01379;
   {
   W10 var←c82236;
   /* declaration of map←v16912 skipped */ 
   /* declaration of tile←v16968 skipped */ 
   /* declaration of phase←v16996 skipped */ 
   /* declaration of function←v17024 skipped */ 
   /* declaration of var←c77884 skipped */ 
   word tileSizeF←v33012;
   (* (( (ptr) &var←c82236)+4)/* map←v16912 */  ) = formal←c01376;
   (* (( (ptr) &var←c82236)+5)/* tile←v16968 */  ) = formal←c01377;
   (* (( (ptr) &var←c82236)+6)/* phase←v16996 */  ) = formal←c01378;
   (* (( (ptr) &var←c82236)+7)/* function←v17024 */  ) = formal←c01379;
   /* GeneralTileBoxes: */ 
SOURCE(45013, 1221)
   {
      word tmpAddr209;
      tmpAddr209 = (word) (( (ptr) &var←c82236)+8)/* var←c77884 */ ;
      (*  (ptr) tmpAddr209 ) = ( ((word)  (fPt) GeneralTile←P10932) );
      (* (( (ptr) tmpAddr209) + 1) ) = 1;
      };
SOURCE(46119, 41)
   {
      word var←c77916;
      W4 box←v62108;
      box←v62108 = (*  (W4Pt) (* (( (ptr) &var←c82236)+5)/* tile←v16968 */  ) );
      if (( (int)box←v62108.f1 <  (int)box←v62108.f3)) {
         var←c77916 = (box←v62108.f3 - box←v62108.f1);
         }
      else {
         var←c77916 = 0;
         };
      tileSizeF←v33012 = SGNCK(var←c77916);
      };
SOURCE(46162, 52)
   if (((* (( (ptr) &var←c82236)+6)/* phase←v16996 */  ) >= tileSizeF←v33012)) {
SOURCE(46187, 27)
      (* (( (ptr) &var←c82236)+6)/* phase←v16996 */  ) = ((* (( (ptr) &var←c82236)+6)/* phase←v16996 */  ) % tileSizeF←v33012);
      };
SOURCE(46216, 18)
   (void) ( *( (fPt) ((*  (ptr) boxes←v16940 ))))((word) ((( (bPt) &var←c82236)+32)/* var←c77884 */ ), boxes←v16940);
   }

static void GeneralTile←P10932(box←v55724, formal←c82268)
   W4 box←v55724;
   word formal←c82268;
   {
   word s0←v33056;
   word f0←v33084;
   W4 actualBox←v33112;
   word sOffset←v33140;
   W2 tileSize←v33168;
   W2 qr←v33196;
   word fOffset←v33224;
   W2 dstRow←v33252;
   W2 srcRow←v33280;
   formal←c82268 = (formal←c82268 - 32);
   /* GeneralTile: */ 
SOURCE(45146, 959)
SOURCE(45173, 24)
   s0←v33056 = (*  (ptr) (* (( (ptr) formal←c82268)+5) ) );
SOURCE(45199, 24)
   f0←v33084 = (* (( (ptr) (* (( (ptr) formal←c82268)+5) ))+1) );
SOURCE(45225, 49)
   {
      W4 box1←v62348;
      box1←v62348 = (*  (W4Pt) (* (( (ptr) formal←c82268)+4) ) );
      {
         W2 v1←v62396;
         W2 v2←v62424;
         v1←v62396 = (*  (W2Pt) &box←v55724 );
         v2←v62424 = (*  (W2Pt) &box1←v62348 );
         if (( (int)v2←v62424.f0 >=  (int)v1←v62396.f0)) {
            actualBox←v33112.f0 = v2←v62424.f0;
            }
         else {
            actualBox←v33112.f0 = v1←v62396.f0;
            };
         if (( (int)v2←v62424.f1 >=  (int)v1←v62396.f1)) {
            actualBox←v33112.f1 = v2←v62424.f1;
            }
         else {
            actualBox←v33112.f1 = v1←v62396.f1;
            };
         };
      {
         W2 v1←v62468;
         W2 v2←v62496;
         v1←v62468 = (*  (W2Pt) (( (ptr) &box1←v62348)+2) );
         v2←v62496 = (*  (W2Pt) (( (ptr) &box←v55724)+2) );
         if (( (int)v1←v62468.f0 <=  (int)v2←v62496.f0)) {
            actualBox←v33112.f2 = v1←v62468.f0;
            }
         else {
            actualBox←v33112.f2 = v2←v62496.f0;
            };
         if (( (int)v1←v62468.f1 <=  (int)v2←v62496.f1)) {
            actualBox←v33112.f3 = v1←v62468.f1;
            }
         else {
            actualBox←v33112.f3 = v2←v62496.f1;
            };
         };
      };
SOURCE(45276, 33)
   sOffset←v33140 = (actualBox←v33112.f0 - s0←v33056);
SOURCE(45311, 39)
   {
      W4 box←v62156;
      box←v62156 = (*  (W4Pt) (* (( (ptr) formal←c82268)+5) ) );
      {
         word x210;
         tileSize←v33168.f0 = (x210 = (box←v62156.f2 - box←v62156.f0),
            MAX((int)(word), x210, 0));
         };
      {
         word x211;
         tileSize←v33168.f1 = (x211 = (box←v62156.f3 - box←v62156.f1),
            MAX((int)(word), x211, 0));
         };
      };
SOURCE(45352, 36)
   {
      word idx212;
      (void) DivMod←P4080((word) &qr←v33196, sOffset←v33140, (
            idx212 = (word) tileSize←v33168.f0,
            SGNCK(idx212)
            ));
      };
SOURCE(45390, 60)
   fOffset←v33224 = (actualBox←v33112.f1 - (f0←v33084 + IOP2( * ,  (int)qr←v33196.f0,  (int)(* (( (ptr) formal←c82268)+6) ))
   ));
SOURCE(45452, 27)
   dstRow←v33252 = (*  (W2Pt) &actualBox←v33112 );
SOURCE(45481, 60)
   srcRow←v33280.f0 = qr←v33196.f1;
   {
      word idx213;
      srcRow←v33280.f1 = (word) Mod←P4140(fOffset←v33224, (
            idx213 = (word) tileSize←v33168.f1,
            SGNCK(idx213)
            ));
      };
SOURCE(45543, 562)
   lab←L100266: ;
   if (( (int)dstRow←v33252.f0 <  (int)actualBox←v33112.f2)) {
      }
   else {
      goto lab←L100264;
      };
   {
      word sSize←v33324;
      W2 dstCol←v33352;
      W2 srcCol←v33380;
SOURCE(45579, 63)
      {
         word x214;
         word x215;
         sSize←v33324 = (x214 = (tileSize←v33168.f0 - srcRow←v33280.f0),
            x215 = (actualBox←v33112.f2 - dstRow←v33252.f0),
            MIN((int)(word), x214, x215));
         };
SOURCE(45644, 20)
      dstCol←v33352 = dstRow←v33252;
SOURCE(45666, 20)
      srcCol←v33380 = srcRow←v33280;
SOURCE(45688, 284)
      lab←L100269: ;
      if (( (int)dstCol←v33352.f1 <  (int)actualBox←v33112.f3)) {
         }
      else {
         goto lab←L100267;
         };
      {
         word fSize←v33424;
SOURCE(45724, 63)
         {
            word x216;
            word x217;
            fSize←v33424 = (x216 = (tileSize←v33168.f1 - srcCol←v33380.f1),
               x217 = (actualBox←v33112.f3 - dstCol←v33352.f1),
               MIN((int)(word), x216, x217));
            };
SOURCE(45789, 142)
         {
            W2 var←c78236;
            {
               W2 var←c78268;
               W2 v1←v63560;
               v1←v63560 = (*  (W2Pt) (* (( (ptr) formal←c82268)+5) ) );
               var←c78268.f0 = (v1←v63560.f0 + srcCol←v33380.f0);
               var←c78268.f1 = (v1←v63560.f1 + srcCol←v33380.f1);
               var←c78236 = var←c78268;
               };
            {
               W2 var←c78332;
               var←c78332.f0 = sSize←v33324;
               var←c78332.f1 = fSize←v33424;
               (void) BasicTransfer←P3480((* (( (ptr) formal←c82268)+4) ), (* (( (ptr) formal←c82268)+5) ), dstCol←v33352, var←c78236, var←c78332, (* (
                     ( (ptr) formal←c82268)+7) ));
               };
            };
SOURCE(45933, 25)
         dstCol←v33352.f1 = (dstCol←v33352.f1 + fSize←v33424);
SOURCE(45960, 12)
         srcCol←v33380.f1 = 0;
         };
      goto lab←L100269;
      lab←L100267: ;
SOURCE(45983, 25)
      dstRow←v33252.f0 = (dstRow←v33252.f0 + sSize←v33324);
SOURCE(46010, 12)
      srcRow←v33280.f0 = 0;
SOURCE(46024, 81)
      if (( (int)srcRow←v33280.f1 <  (int)(* (( (ptr) formal←c82268)+6) ))) {
         srcRow←v33280.f1 = (srcRow←v33280.f1 + (tileSize←v33168.f1 - (* (( (ptr) formal←c82268)+6) )));
         }
      else {
         srcRow←v33280.f1 = (srcRow←v33280.f1 - (* (( (ptr) formal←c82268)+6) ));
         };
      };
   goto lab←L100266;
   lab←L100264: ;
   }

static void Tile←P4440(formal←c01380, formal←c01381, tile←v17140, phase←v17168, function←v17196)
   word formal←c01380;
   W4 formal←c01381;
   word tile←v17140;
   word phase←v17168;
   word function←v17196;
   {
   W11 var←c82300;
   /* declaration of map←v17084 skipped */ 
   /* declaration of box←v17112 skipped */ 
   /* declaration of var←c78364 skipped */ 
   (* (( (ptr) &var←c82300)+4)/* map←v17084 */  ) = formal←c01380;
   (*  (W4Pt) (( (ptr) &var←c82300)+5)/* box←v17112 */  ) = formal←c01381;
   /* Tile: */ 
SOURCE(46240, 235)
   {
      word tmpAddr218;
      tmpAddr218 = (word) (( (ptr) &var←c82300)+9)/* var←c78364 */ ;
      (*  (ptr) tmpAddr218 ) = ( ((word)  (fPt) boxes←P11088) );
      (* (( (ptr) tmpAddr218) + 1) ) = 1;
      };
SOURCE(46431, 44)
   (void) TileBoxes←P4500((* (( (ptr) &var←c82300)+4)/* map←v17084 */  ), (word) (( (bPt) &var←c82300)+36)/* var←c78364 */ , tile←v17140, phase←v17168, function←v17196)
   ;
   }

static void boxes←P11088(boxAction←v55784, formal←c82364)
   word boxAction←v55784;
   word formal←c82364;
   {
   register ptr gf←c82332 =  (ptr) &globalframe;
   formal←c82364 = (formal←c82364 - 36);
   /* boxes: */ 
SOURCE(46366, 62)
SOURCE(46390, 38)
   {
      W4 var←c78396;
      {
         word pd219;
         pd219 = (* (( (ptr) (* (( (ptr) gf←c82332)+225)/* var←c67164 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd219 ))))((word) &var←c78396, (*  (W4Pt) (( (ptr) formal←c82364)+5) ), (*  (W4Pt) (* (( (ptr) formal←c82364)+4)
             ) ), pd219);
         };
      (void) ( *( (fPt) ((*  (ptr) boxAction←v55784 ))))(var←c78396, boxAction←v55784);
      };
   }

static void TileBoxes←P4500(map←v17256, boxes←v17284, tile←v17312, phase←v17340, function←v17368)
   word map←v17256;
   word boxes←v17284;
   word tile←v17312;
   word phase←v17340;
   word function←v17368;
   {
   W13 var←c82396;
   register ptr gf←c82428 =  (ptr) &globalframe;
   /* declaration of var←c78428 skipped */ 
   word false←v33512;
   word bitsPerSample←v33540;
   /* declaration of sSizeTile←v33568 skipped */ 
   word fSizeTile←v33596;
   word fSizeSelf←v33624;
   /* TileBoxes: */ 
SOURCE(46505, 2801)
   {
      word tmpAddr220;
      tmpAddr220 = (word) (( (ptr) &var←c82396)+4)/* var←c78428 */ ;
      (*  (ptr) tmpAddr220 ) = ( ((word)  (fPt) FastTile←P11292) );
      (* (( (ptr) tmpAddr220) + 1) ) = 1;
      };
SOURCE(46638, 41)
   {
      word idx221;
      false←v33512 = (
         idx221 = (* (( (ptr) map←v17256)+4) ),
         BCK(idx221, 1)
         );
      };
SOURCE(46681, 38)
   bitsPerSample←v33540 = (* (( (ptr) map←v17256)+5) );
SOURCE(46721, 46)
   {
      word idx222;
      (* (( (ptr) &var←c82396)+6)/* sSizeTile←v33568 */  ) = (
         idx222 = (word) ((* (( (ptr) tile←v17312)+2) ) - (*  (ptr) tile←v17312 )),
         SGNCK(idx222)
         );
      };
SOURCE(46769, 46)
   {
      word idx223;
      fSizeTile←v33596 = (
         idx223 = (word) ((* (( (ptr) tile←v17312)+3) ) - (* (( (ptr) tile←v17312)+1) )),
         SGNCK(idx223)
         );
      };
SOURCE(46817, 44)
   {
      word idx224;
      fSizeSelf←v33624 = (
         idx224 = (word) ((* (( (ptr) map←v17256)+3) ) - (* (( (ptr) map←v17256)+1) )),
         SGNCK(idx224)
         );
      };
SOURCE(46863, 1940)
   {
      word var←c78460;
      var←c78460 = map←v17256;
      if ((var←c78460 == 0)) {
         goto lab←L100271;
         };
      if (((* (( (ptr) var←c78460)+6) ) == 0)) {
         {
            /* declaration of map←v33688 skipped */ 
            (* (( (ptr) &var←c82396)+7)/* map←v33688 */  ) = var←c78460;
SOURCE(46908, 1895)
            {
               word var←c78492;
               var←c78492 = tile←v17312;
               if ((var←c78492 == 0)) {
                  goto lab←L100272;
                  };
               if (((* (( (ptr) var←c78492)+6) ) == 0)) {
                  {
                     /* declaration of tile←v33732 skipped */ 
                     (* (( (ptr) &var←c82396)+8)/* tile←v33732 */  ) = var←c78492;
SOURCE(46957, 1582)
                     {
                        word idx225;
                        if ( (  (  (  (  (  (  ( (phase←v17340 == 0) ? ((* (( (ptr) (* (( (ptr) &var←c82396)+8)/* tile←v33732 */  ))+5) ) == bitsPerSample←v33540) : 0 )  ? ((* (
                           ( (ptr) (* (( (ptr) &var←c82396)+8)/* tile←v33732 */  ))+7) ) == 32) : 0 )  ? ((* (( (ptr) (* (( (ptr) &var←c82396)+8)/* tile←v33732 */  ))+9)
                         ) == 0) : 0 )  ? ((* (( (ptr) (* (( (ptr) &var←c82396)+7)/* map←v33688 */  ))+9) ) == 0) : 0 )  ? ((fSizeTile←v33596 * bitsPerSample←v33540) == 32) : 0 )  ? ((word) XRM←BITAND(
                           (* (( (ptr) &var←c82396)+6)/* sSizeTile←v33568 */  ), (
/*1*/   idx225 = (word) ((* (( (ptr) &var←c82396)+6)/* sSizeTile←v33568 */  ) - 1),
/*1*/   SGNCK(idx225)
/*1*/   )) == 0) : 0 )  ? ((word) XRM←BITAND(bitsPerSample←v33540, SGNCK((bitsPerSample←v33540 - 1))) == 0) : 0 ) ) {
SOURCE(47176, 1365)
                           {
/*1*/   /* declaration of sTileMask←v33776 skipped */ 
/*1*/   /* declaration of sOffset←v33804 skipped */ 
/*1*/   /* declaration of lgBitsPerSample←v33832 skipped */ 
/*1*/   /* declaration of op←v33860 skipped */ 
SOURCE(47178, 33)
/*1*/   {
/*1*/      word idx226;
/*1*/      (* (( (ptr) &var←c82396)+9)/* sTileMask←v33776 */  ) = (
/*1*/         idx226 = (word) ((* (( (ptr) &var←c82396)+6)/* sSizeTile←v33568 */  ) - 1),
/*1*/         SGNCK(idx226)
/*1*/         );
/*1*/      };
SOURCE(47242, 81)
/*1*/   (* (( (ptr) &var←c82396)+10)/* sOffset←v33804 */  ) = (word) XRM←BITAND(INEG((*  (ptr) (* (( (ptr) &var←c82396)+8)/* tile←v33732 */  ) ))
/*1*/      , (* (( (ptr) &var←c82396)+9)/* sTileMask←v33776 */  ));
SOURCE(47325, 43)
/*1*/   {
/*1*/      word idx227;
/*1*/      (* (( (ptr) &var←c82396)+11)/* lgBitsPerSample←v33832 */  ) = (
/*1*/         idx227 = (word) Lg←P240(bitsPerSample←v33540),
/*1*/         BCK(idx227, 6)
/*1*/         );
/*1*/      };
SOURCE(47370, 17)
/*1*/   (* (( (ptr) &var←c82396)+12)/* op←v33860 */  ) = (* (( (ptr) (( (W2Pt) (* (( (ptr) (* (( (ptr) gf←c82428)+226)/* var←c70076 */  ))+7)
/*1*/          ))+(((unsigned)function←v17368 << 29) >> 30)))+(function←v17368 & 1)) );
SOURCE(48516, 15)
/*1*/   (void) ( *( (fPt) ((*  (ptr) boxes←v17284 ))))((word) ((( (bPt) &var←c82396)+16)/* var←c78428 */ ), boxes←v17284);
SOURCE(48533, 6)
/*1*/   return;
/*1*/   };
                           };
                        };
SOURCE(48544, 259)
                     {
                        word tc228;
                        word x229;
                        word x230;
                        if (((* (( (ptr) (* (( (ptr) &var←c82396)+8)/* tile←v33732 */  ))+5) ) == (* (( (ptr) (* (( (ptr) &var←c82396)+7)/* map←v33688 */  ))+5)
                         ))) {
                           tc228 =  (word) ((fSizeTile←v33596 * bitsPerSample←v33540) >= (x229 = (fSizeSelf←v33624 * bitsPerSample←v33540),
/*1*/   x230 = (* (( (ptr) gf←c82428)+48)/* smallWidth←v5744 */  ),
/*1*/   MIN( (unsigned) , x229, x230)));
                           }
                        else {
                           tc228 =  (word) 0;
                           };
                        if (tc228) {
SOURCE(48709, 86)
                           (void) GeneralTileBoxes←P4380((* (( (ptr) &var←c82396)+7)/* map←v33688 */  ), boxes←v17284, (* (( (ptr) &var←c82396)+8)/* tile←v33732 */  ), phase←v17340, function←v17368)
                           ;
SOURCE(48797, 6)
                           return;
                           };
                        };
                     };
                  }
               else {
                  lab←L100272: ;
                  };
               };
            };
         }
      else {
         lab←L100271: ;
         };
      };
SOURCE(48846, 462)
   {
      word nf←v34672;
      W2 macroTileSize←v34700;
      word macroTile←v34728;
SOURCE(48866, 81)
      nf←v34672 = (((((((* (( (ptr) gf←c82428)+48)/* smallWidth←v5744 */  ) + fSizeTile←v33596) - 1) / fSizeTile←v33596) + bitsPerSample←v33540) - 1) / bitsPerSample←v33540);
SOURCE(48949, 55)
      macroTileSize←v34700.f0 = (* (( (ptr) &var←c82396)+6)/* sSizeTile←v33568 */  );
      {
         word idx231;
         macroTileSize←v34700.f1 = (
            idx231 = (word) (nf←v34672 * fSizeTile←v33596),
            SGNCK(idx231)
            );
         };
SOURCE(49006, 119)
      {
         W2 var←c78556;
         {
            W2 var←c78588;
            W2 v1←v63512;
            v1←v63512 = (*  (W2Pt) tile←v17312 );
            var←c78588.f0 = (v1←v63512.f0 + macroTileSize←v34700.f0);
            var←c78588.f1 = (v1←v63512.f1 + macroTileSize←v34700.f1);
            var←c78556 = var←c78588;
            };
         {
            W4 var←c78652;
            (*  (W2Pt) &var←c78652 ) = (*  (W2Pt) tile←v17312 );
            (*  (W2Pt) (( (ptr) &var←c78652)+2) ) = var←c78556;
            macroTile←v34728 = (word) ObtainScratchMap←P1920(var←c78652, BCK(bitsPerSample←v33540, 33), 0);
            };
         };
SOURCE(49127, 53)
      (void) GeneralTile←P4260(macroTile←v34728, (*  (W4Pt) (( (ptr) gf←c82428)+209)/* var←c66396 */  ), tile←v17312, phase←v17340, 0)
      ;
SOURCE(49182, 94)
      (void) GeneralTileBoxes←P4380(map←v17256, boxes←v17284, macroTile←v34728, phase←v17340, function←v17368);
SOURCE(49278, 28)
      (void) ReleaseScratchMap←P1980(macroTile←v34728);
      };
   }

static void FastTile←P11292(box←v55844, formal←c82460)
   W4 box←v55844;
   word formal←c82460;
   {
   word sMin←v34180;
   word fMin←v34208;
   word sMax←v34236;
   word fMax←v34264;
   formal←c82460 = (formal←c82460 - 16);
   /* FastTile: */ 
SOURCE(47528, 30)
SOURCE(47560, 25)
   sMin←v34180 = box←v55844.f0;
SOURCE(47587, 25)
   fMin←v34208 = box←v55844.f1;
SOURCE(47614, 25)
   sMax←v34236 = box←v55844.f2;
SOURCE(47641, 25)
   fMax←v34264 = box←v55844.f3;
SOURCE(47668, 840)
   if ( ( ( (int)sMax←v34236 >  (int)sMin←v34180) ? ( (int)fMax←v34264 >  (int)fMin←v34208) : 0 ) ) {
SOURCE(47704, 806)
      {
         word m←v34308;
         word bitsPerLine←v34336;
         word sDst←v34364;
         word fDst←v34392;
         word lgBPS←v34420;
         word check←v34448;
         word bitDst←v34476;
         word fBitCount←v34504;
         word mod←v34532;
         word yOffset←v34560;
SOURCE(47706, 24)
         m←v34308 = (* (( (ptr) formal←c82460)+7) );
SOURCE(47732, 37)
         bitsPerLine←v34336 = (* (( (ptr) m←v34308)+7) );
SOURCE(47771, 43)
         sDst←v34364 = (sMin←v34180 - (*  (ptr) m←v34308 ));
SOURCE(47816, 43)
         fDst←v34392 = (fMin←v34208 - (* (( (ptr) m←v34308)+1) ));
SOURCE(47861, 31)
         lgBPS←v34420 = (* (( (ptr) formal←c82460)+11) );
SOURCE(47894, 121)
         {
            word var←c78684;
            word var←c78716;
            var←c78684 = (word) XRM←BITOR(sDst←v34364, fDst←v34392);
            var←c78716 = (word) XRM←BITOR(((* (( (ptr) m←v34308)+2) ) - sMax←v34236), ((* (( (ptr) m←v34308)+3) ) - fMax←v34264));
            {
               word idx232;
               check←v34448 = (
                  idx232 = (word) XRM←BITOR(var←c78684, var←c78716),
                  SGNCK(idx232)
                  );
               };
            };
SOURCE(48037, 76)
         bitDst←v34476 = (((sDst←v34364 * bitsPerLine←v34336) + (word) XRM←BITLSHIFT(fDst←v34392, lgBPS←v34420)) + (* (( (ptr) m←v34308)+9)
          ));
SOURCE(48115, 62)
         fBitCount←v34504 = (word) XRM←BITLSHIFT((fMax←v34264 - fMin←v34208), lgBPS←v34420);
SOURCE(48179, 39)
         mod←v34532 = (bitDst←v34476 & 037);
SOURCE(48220, 78)
         yOffset←v34560 = (word) XRM←BITAND(((* (( (ptr) formal←c82460)+10) ) + sMin←v34180), (* (( (ptr) formal←c82460)+9) ));
SOURCE(48300, 208)
         {
            W2 var←c78748;
            var←c78748.f0 = ((* (( (ptr) m←v34308)+8) ) + IOP2( / ,  (int)(bitDst←v34476 - mod←v34532),  (int)8));
            var←c78748.f1 = mod←v34532;
            {
               word pd233;
               pd233 = (* (( (ptr) formal←c82460)+12) );
               (void) ( *( (fPt) ((*  (ptr) pd233 ))))(var←c78748, (* (( (ptr) (* (( (ptr) formal←c82460)+8) ))+8) ), bitsPerLine←v34336, yOffset←v34560, (* (
                     ( (ptr) formal←c82460)+6) ), (sMax←v34236 - sMin←v34180)
                  , fBitCount←v34504, pd233);
               };
            };
         };
      };
   }

static void BoxesFromBitmap←P4560(map←v17428, boxAction←v17456)
   word map←v17428;
   word boxAction←v17456;
   {
   /* BoxesFromBitmap: */ 
SOURCE(49315, 1864)
SOURCE(49387, 1486)
   {
      word var←c78780;
      var←c78780 = map←v17428;
      if ((var←c78780 == 0)) {
         goto lab←L100274;
         };
      if (((* (( (ptr) var←c78780)+6) ) == 0)) {
         {
            word map←v34772;
            map←v34772 = var←c78780;
SOURCE(49434, 1439)
            if (((* (( (ptr) map←v34772)+5) ) == 1)) {
SOURCE(49472, 1403)
               {
                  word sMin←v34816;
                  word fMin←v34844;
                  word fMax←v34872;
                  W2 lineStart←v34900;
SOURCE(49474, 29)
                  sMin←v34816 = (*  (ptr) map←v34772 );
SOURCE(49505, 29)
                  fMin←v34844 = (* (( (ptr) map←v34772)+1) );
SOURCE(49536, 29)
                  fMax←v34872 = (* (( (ptr) map←v34772)+3) );
SOURCE(49567, 32)
                  lineStart←v34900 = (*  (W2Pt) (( (ptr) map←v34772)+8) );
SOURCE(49601, 43)
                  if (( (int)(* (( (ptr) map←v34772)+1) ) >=  (int)(* (( (ptr) map←v34772)+3) ))) {
SOURCE(49638, 6)
                     return;
                     };
SOURCE(49646, 1210)
                  {
                     register word sRel←v34944 = 0;
                     register word noName←c78812;
                     noName←c78812 = ((* (( (ptr) map←v34772)+2) ) - (*  (ptr) map←v34772 ));
                     if ((sRel←v34944 >= noName←c78812)) {
                        goto lab←L100275;
                        };
                     lab←L100278: ;
                     {
                        word f←v34988;
                        word wordPtr←v35016;
                        word wordsWorth←v35044;
                        word remainingBitsInWord←v35072;
SOURCE(49699, 26)
                        f←v34988 = (* (( (ptr) map←v34772)+1) );
SOURCE(49727, 50)
                        wordPtr←v35016 = lineStart←v34900.f0;
SOURCE(49779, 64)
                        wordsWorth←v35044 = (word) XRM←BITLSHIFT((*  (ptr) wordPtr←v35016 ), lineStart←v34900.f1);
SOURCE(49845, 48)
                        remainingBitsInWord←v35072 = (32 - lineStart←v34900.f1);
SOURCE(50615, 182)
                        lab←L100281: ;
                        if (( (int)f←v34988 <  (int)fMax←v34872)) {
                           }
                        else {
                           goto lab←L100279;
                           };
                        {
                           word fStart←v35236;
SOURCE(50650, 10)
SOURCE(50105, 496)
                           lab←L100284: ;
                           if (( (int)f←v34988 <  (int)fMax←v34872)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100282;
/*1*/   };
SOURCE(50143, 383)
                           if ( ( ( (int)remainingBitsInWord←v35072 ==  (int)32) ? (wordsWorth←v35044 == 0) : 0 ) ) {
SOURCE(50201, 28)
/*1*/   f←v34988 = (f←v34988 + remainingBitsInWord←v35072);
/*1*/   }
                           else {
SOURCE(50238, 27)
/*1*/   f←v34988 = (f←v34988 + remainingBitsInWord←v35072);
SOURCE(50267, 156)
/*1*/   lab←L100287: ;
/*1*/   if ( ( ( (int)remainingBitsInWord←v35072 >  (int)0) ? ((word) XRM←BITAND(wordsWorth←v35044, 2147483648) != 2147483648) : 0 ) ) {
/*1*/      }
/*1*/   else {
/*1*/      goto lab←L100285;
/*1*/      };
SOURCE(50353, 43)
/*1*/   remainingBitsInWord←v35072 = (remainingBitsInWord←v35072 - 1);
SOURCE(50398, 25)
/*1*/   wordsWorth←v35044 = ((word) wordsWorth←v35044 << 1);
/*1*/   goto lab←L100287;
/*1*/   lab←L100285: ;
SOURCE(50434, 27)
/*1*/   f←v34988 = (f←v34988 - remainingBitsInWord←v35072);
SOURCE(50463, 32)
/*1*/   if (( (int)remainingBitsInWord←v35072 >  (int)0)) {
SOURCE(50495, 4)
/*1*/      goto lab←L100283;
/*1*/      };
SOURCE(50501, 25)
/*1*/   remainingBitsInWord←v35072 = 32;
/*1*/   };
SOURCE(50531, 30)
                           wordPtr←v35016 = (wordPtr←v35016 + 4);
SOURCE(50563, 38)
                           if (( (int)f←v34988 <  (int)fMax←v34872)) {
SOURCE(50580, 21)
/*1*/   wordsWorth←v35044 = (*  (ptr) wordPtr←v35016 );
/*1*/   };
                           goto lab←L100284;
                           lab←L100282: ;
                           lab←L100283: ;
SOURCE(50662, 10)
                           fStart←v35236 = f←v34988;
SOURCE(50674, 10)
SOURCE(50105, 496)
                           lab←L100290: ;
                           if (( (int)f←v34988 <  (int)fMax←v34872)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100288;
/*1*/   };
SOURCE(50143, 383)
                           if ( ( ( (int)remainingBitsInWord←v35072 ==  (int)32) ? (wordsWorth←v35044 ==  (word) -1) : 0 ) ) {
SOURCE(50201, 28)
/*1*/   f←v34988 = (f←v34988 + remainingBitsInWord←v35072);
/*1*/   }
                           else {
SOURCE(50238, 27)
/*1*/   f←v34988 = (f←v34988 + remainingBitsInWord←v35072);
SOURCE(50267, 156)
/*1*/   lab←L100293: ;
/*1*/   if ( ( ( (int)remainingBitsInWord←v35072 >  (int)0) ? ((word) XRM←BITAND(wordsWorth←v35044, 2147483648) != 0) : 0 ) ) {
/*1*/      }
/*1*/   else {
/*1*/      goto lab←L100291;
/*1*/      };
SOURCE(50353, 43)
/*1*/   remainingBitsInWord←v35072 = (remainingBitsInWord←v35072 - 1);
SOURCE(50398, 25)
/*1*/   wordsWorth←v35044 = ((word) wordsWorth←v35044 << 1);
/*1*/   goto lab←L100293;
/*1*/   lab←L100291: ;
SOURCE(50434, 27)
/*1*/   f←v34988 = (f←v34988 - remainingBitsInWord←v35072);
SOURCE(50463, 32)
/*1*/   if (( (int)remainingBitsInWord←v35072 >  (int)0)) {
SOURCE(50495, 4)
/*1*/      goto lab←L100289;
/*1*/      };
SOURCE(50501, 25)
/*1*/   remainingBitsInWord←v35072 = 32;
/*1*/   };
SOURCE(50531, 30)
                           wordPtr←v35016 = (wordPtr←v35016 + 4);
SOURCE(50563, 38)
                           if (( (int)f←v34988 <  (int)fMax←v34872)) {
SOURCE(50580, 21)
/*1*/   wordsWorth←v35044 = (*  (ptr) wordPtr←v35016 );
/*1*/   };
                           goto lab←L100290;
                           lab←L100288: ;
                           lab←L100289: ;
SOURCE(50686, 16)
                           f←v34988 = (MIN((int)(word), f←v34988, fMax←v34872));
SOURCE(50704, 93)
                           if (( (int)f←v34988 >  (int)fStart←v35236)) {
SOURCE(50723, 74)
/*1*/   {
/*1*/      W4 var←c78844;
/*1*/      var←c78844.f0 = (sMin←v34816 + sRel←v34944);
/*1*/      var←c78844.f1 = fStart←v35236;
/*1*/      var←c78844.f2 = ((sMin←v34816 + sRel←v34944) + 1);
/*1*/      var←c78844.f3 = f←v34988;
/*1*/      (void) ( *( (fPt) ((*  (ptr) boxAction←v17456 ))))(var←c78844, boxAction←v17456);
/*1*/      };
/*1*/   };
                           };
                        goto lab←L100281;
                        lab←L100279: ;
SOURCE(50808, 48)
                        {
                           W2 var←c78876;
                           word offset←v56756;
                           offset←v56756 = (* (( (ptr) map←v34772)+7) );
                           {
/*1*/   word bitOffset←v56788;
/*1*/   word mod←v56816;
/*1*/   bitOffset←v56788 = (offset←v56756 + lineStart←v34900.f1);
/*1*/   mod←v56816 = (bitOffset←v56788 & 037);
SOURCE(2833, 63)
/*1*/   var←c78876.f0 = (lineStart←v34900.f0 + IOP2( / ,  (int)(bitOffset←v56788 - mod←v56816),  (int)8));
/*1*/   var←c78876.f1 = mod←v56816;
/*1*/   };
                           lineStart←v34900 = var←c78876;
                           };
                        };
                     sRel←v34944 = (sRel←v34944 + 1);
                     if ((sRel←v34944 < noName←c78812)) {
                        goto lab←L100278;
                        };
                     lab←L100275: ;
                     };
SOURCE(50867, 6)
                  return;
                  };
               };
            };
         }
      else {
         lab←L100274: ;
         };
      };
SOURCE(50916, 263)
   {
      register word s←v35364;
      register word noName←c78940;
      {
         word idx234;
         s←v35364 = (
            idx234 = (*  (ptr) map←v17428 ),
            SGNCK(idx234)
            );
         };
      {
         word idx235;
         noName←c78940 = (
            idx235 = (* (( (ptr) map←v17428)+2) ),
            SGNCK(idx235)
            );
         };
      if ((s←v35364 >= noName←c78940)) {
         goto lab←L100295;
         };
      lab←L100298: ;
      {
         word buffer←v35408;
SOURCE(50964, 119)
         {
            W4 var←c78972;
            var←c78972.f0 = s←v35364;
            var←c78972.f1 = (* (( (ptr) map←v17428)+1) );
            var←c78972.f2 = SGNCK((s←v35364 + 1));
            var←c78972.f3 = (* (( (ptr) map←v17428)+3) );
            buffer←v35408 = (word) ObtainScratchMap←P1920(var←c78972, 1, 0);
            };
SOURCE(51085, 31)
         {
            W2 var←c79004;
            var←c79004.f0 = 0;
            var←c79004.f1 = 0;
            (void) Transfer←P3600(buffer←v35408, map←v17428, var←c79004, 0);
            };
SOURCE(51118, 34)
         (void) BoxesFromBitmap←P4560(buffer←v35408, boxAction←v17456);
SOURCE(51154, 25)
         (void) ReleaseScratchMap←P1980(buffer←v35408);
         };
      s←v35364 = (s←v35364 + 1);
      if ((s←v35364 < noName←c78940)) {
         goto lab←L100298;
         };
      lab←L100295: ;
      };
SOURCE(51193, 5)
   (void) XR←RaiseUnnamedError();
   }

static void Halftone←P4620(map←v17516, min←v17544, sampleBuffer←v17572, thresholdBuffer←v17600, function←v17628)
   word map←v17516;
   W2 min←v17544;
   word sampleBuffer←v17572;
   word thresholdBuffer←v17600;
   word function←v17628;
   {
   word false←v35452;
   W64 bitBuffer←v35564;
   word bitBufferPtr←v35592;
   word bitBufferMap←v35620;
   word count←v35648;
   W2 index←v35676;
   word residual←v35704;
   word s←v35732;
   word b←v35760;
   /* Halftone: */ 
SOURCE(51243, 2022)
SOURCE(51369, 41)
   {
      word idx236;
      false←v35452 = (
         idx236 = (* (( (ptr) map←v17516)+4) ),
         BCK(idx236, 1)
         );
      };
SOURCE(51568, 39)
   bitBufferPtr←v35592 = (word) &bitBuffer←v35564;
SOURCE(51609, 207)
   {
      W2 var←c79036;
      W2 var←c79068;
      W2 var←c79100;
      W2 var←c79132;
      var←c79036.f0 = 1;
      var←c79036.f1 = 2048;
      var←c79068.f0 = bitBufferPtr←v35592;
      var←c79068.f1 = 0;
      var←c79100.f0 = 0;
      var←c79100.f1 = 0;
      var←c79132.f0 = 0;
      var←c79132.f1 = 0;
      bitBufferMap←v35620 = (word) ObtainUnsafeDescriptor←P2400(var←c79036, 1, 2048, var←c79068, 0, 64
         , var←c79100, var←c79132);
      };
SOURCE(51818, 61)
   {
      word x237;
      word x238;
      count←v35648 = (x237 = (*  (ptr) sampleBuffer←v17572 ),
         x238 = (*  (ptr) thresholdBuffer←v17600 ),
         MIN( (unsigned) , x237, x238));
      };
SOURCE(51881, 19)
   index←v35676 = min←v17544;
SOURCE(51902, 21)
   residual←v35704 = count←v35648;
SOURCE(51925, 121)
   {
      word check←v59528;
      check←v59528 = ((* (( (ptr) sampleBuffer←v17572)+1) ) - count←v35648);
SOURCE(4940, 67)
      s←v35732 = (sampleBuffer←v17572 + 8);
      };
SOURCE(52048, 124)
   {
      word check←v59484;
      check←v59484 = ((* (( (ptr) thresholdBuffer←v17600)+1) ) - count←v35648);
SOURCE(4940, 67)
      b←v35760 = (thresholdBuffer←v17600 + 8);
      };
SOURCE(52283, 940)
   lab←L100303: ;
   if ((residual←v35704 != 0)) {
      }
   else {
      goto lab←L100301;
      };
   {
      word chunkSize←v36120;
      word bitBufferIndex←v36148 = 0;
      word chunkResidual←v36176;
SOURCE(52305, 45)
      chunkSize←v36120 = (MIN( (unsigned) , 2048, residual←v35704));
SOURCE(52377, 30)
      chunkResidual←v36176 = chunkSize←v36120;
SOURCE(52409, 387)
      lab←L100306: ;
      if ((chunkResidual←v36176 >= 16)) {
         }
      else {
         goto lab←L100304;
         };
SOURCE(52438, 203)
      {
         word var←c79228;
         {
            word idx239;
            var←c79228 = (
               idx239 = (word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) (((word) XRM←BITRSHIFT(
                  (((*  (ptr) s←v35732 ) - (*  (ptr) b←v35760 )) - 1), 31) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+1) ) - (* (
                     ( (ptr) b←v35760)+1) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+2) ) - (* (( (ptr) b←v35760)+2) )) - 1), 31)
               ) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+3) ) - (* (( (ptr) b←v35760)+3) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT(
                  (((* (( (ptr) s←v35732)+4) ) - (* (( (ptr) b←v35760)+4) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+5)
                   ) - (* (( (ptr) b←v35760)+5) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+6) ) - (* (( (ptr) b←v35760)+6)
                   )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+7) ) - (* (( (ptr) b←v35760)+7) )) - 1), 31)) << 1) + 
               (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+8) ) - (* (( (ptr) b←v35760)+8) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (
                     ( (ptr) s←v35732)+9) ) - (* (( (ptr) b←v35760)+9) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+10) ) - (* (
                     ( (ptr) b←v35760)+10) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+11) ) - (* (( (ptr) b←v35760)+11)
                   )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+12) ) - (* (( (ptr) b←v35760)+12) )) - 1), 31)) << 1) + 
               (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+13) ) - (* (( (ptr) b←v35760)+13) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT(
                  (((* (( (ptr) s←v35732)+14) ) - (* (( (ptr) b←v35760)+14) )) - 1), 31)) << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+15)
                   ) - (* (( (ptr) b←v35760)+15) )) - 1), 31)),
               BCK(idx239, 65536)
               );
            };
         (* (( (hPt) &bitBuffer←v35564)+BCK(bitBufferIndex←v36148, 128)) ) = var←c79228;
         };
SOURCE(52643, 35)
      bitBufferIndex←v36148 = (bitBufferIndex←v36148 + 1);
SOURCE(52680, 34)
      chunkResidual←v36176 = SGNCK((chunkResidual←v36176 - 16));
SOURCE(52716, 39)
      s←v35732 = (s←v35732 + 64);
SOURCE(52757, 39)
      b←v35760 = (b←v35760 + 64);
      goto lab←L100306;
      lab←L100304: ;
SOURCE(52807, 242)
      if ((chunkResidual←v36176 != 0)) {
SOURCE(52833, 218)
         {
            word w←v36292 = 0;
SOURCE(52852, 29)
            if ((chunkSize←v36120 != residual←v35704)) {
SOURCE(52881, 5)
               (void) XR←RaiseUnnamedError();
               };
SOURCE(52917, 60)
            {
               register word i←v36336 = 0;
               register word noName←c79260;
               noName←c79260 = chunkResidual←v36176;
               if ((i←v36336 >= noName←c79260)) {
                  goto lab←L100307;
                  };
               lab←L100310: ;
SOURCE(52953, 24)
               w←v36292 = (((word) w←v36292 << 1) + (word) XRM←BITRSHIFT((((* (( (ptr) s←v35732)+BCK(i←v36336, 16)) ) - (* (( (ptr) b←v35760)+BCK(
                        i←v36336, 16)) )) - 1), 31));
               i←v36336 = (i←v36336 + 1);
               if ((i←v36336 < noName←c79260)) {
                  goto lab←L100310;
                  };
               lab←L100307: ;
               };
SOURCE(52979, 70)
            {
               word var←c79292;
               {
                  word var←c79324;
                  {
                     word i←v60504;
                     i←v60504 = (16 - chunkResidual←v36176);
SOURCE(18510, 39)
                     var←c79324 = (i←v60504 & 037);
                     };
                  {
                     word idx240;
                     var←c79292 = (
                        idx240 = (word) XRM←BITLSHIFT(w←v36292, var←c79324),
                        BCK(idx240, 65536)
                        );
                     };
                  };
               (* (( (hPt) &bitBuffer←v35564)+BCK(bitBufferIndex←v36148, 128)) ) = var←c79292;
               };
            };
         };
SOURCE(53054, 105)
      {
         W2 var←c79388;
         W2 var←c79420;
         var←c79388.f0 = 0;
         var←c79388.f1 = 0;
         var←c79420.f0 = 1;
         var←c79420.f1 = chunkSize←v36120;
         (void) BasicTransfer←P3480(map←v17516, bitBufferMap←v35620, index←v35676, var←c79388, var←c79420, function←v17628);
         };
SOURCE(53161, 29)
      index←v35676.f1 = (index←v35676.f1 + chunkSize←v36120);
SOURCE(53192, 31)
      residual←v35704 = (residual←v35704 - chunkSize←v36120);
      };
   goto lab←L100303;
   lab←L100301: ;
SOURCE(53234, 31)
   (void) ReleaseDescriptor←P1860(bitBufferMap←v35620);
   }

static word Zeros←P4680(pointer←v17688, count←v17716)
   word pointer←v17688;
   word count←v17716;
   {
   word var←c17772;
   word p←v36380;
   /* Zeros: */ 
SOURCE(53271, 506)
SOURCE(53346, 59)
   p←v36380 = pointer←v17688;
SOURCE(53407, 246)
   lab←L100314: ;
   if ((count←v17716 >= 8)) {
      }
   else {
      goto lab←L100312;
      };
   {
      word var←c79452;
SOURCE(53427, 171)
      {
         word var←c79484;
         {
            word var←c79516;
            {
               word var←c79548;
               {
                  word var←c79580;
                  {
                     word var←c79612;
                     var←c79612 = (word) XRM←BITOR((*  (ptr) p←v36380 ), (* (( (ptr) p←v36380)+1) ));
                     var←c79580 = (word) XRM←BITOR(var←c79612, (* (( (ptr) p←v36380)+2) ));
                     };
                  var←c79548 = (word) XRM←BITOR(var←c79580, (* (( (ptr) p←v36380)+3) ));
                  };
               var←c79516 = (word) XRM←BITOR(var←c79548, (* (( (ptr) p←v36380)+4) ));
               };
            var←c79484 = (word) XRM←BITOR(var←c79516, (* (( (ptr) p←v36380)+5) ));
            };
         var←c79452 = (word) XRM←BITOR(var←c79484, (* (( (ptr) p←v36380)+6) ));
         };
      if (((word) XRM←BITOR(var←c79452, (* (( (ptr) p←v36380)+7) )) != 0)) {
SOURCE(53584, 14)
         return(0);
         };
SOURCE(53600, 34)
      p←v36380 = (p←v36380 + 32);
SOURCE(53636, 17)
      count←v17716 = SGNCK((count←v17716 - 8));
      };
   goto lab←L100314;
   lab←L100312: ;
SOURCE(53664, 89)
   lab←L100317: ;
   if ((count←v17716 > 0)) {
      }
   else {
      goto lab←L100315;
      };
SOURCE(53683, 31)
   if (((*  (ptr) p←v36380 ) != 0)) {
SOURCE(53700, 14)
      return(0);
      };
SOURCE(53716, 18)
   p←v36380 = (p←v36380 + 4);
SOURCE(53736, 17)
   count←v17716 = SGNCK((count←v17716 - 1));
   goto lab←L100317;
   lab←L100315: ;
SOURCE(53764, 13)
   return(1);
   }

static word Equal←P4740(formal←c01382, formal←c01383)
   word formal←c01382;
   word formal←c01383;
   {
   W9 var←c82492;
   /* declaration of s1←v17832 skipped */ 
   /* declaration of s2←v17860 skipped */ 
   /* declaration of equal←v17904 skipped */ 
   /* declaration of var←c79644 skipped */ 
   word var←c79676;
   W4 box←v63320;
   word var←c79708;
   W4 box←v63272;
   (* (( (ptr) &var←c82492)+4)/* s1←v17832 */  ) = formal←c01382;
   (* (( (ptr) &var←c82492)+5)/* s2←v17860 */  ) = formal←c01383;
   /* Equal: */ 
SOURCE(53783, 926)
   {
      word tmpAddr241;
      tmpAddr241 = (word) (( (ptr) &var←c82492)+7)/* var←c79644 */ ;
      (*  (ptr) tmpAddr241 ) = ( ((word)  (fPt) BandAction←P12048) );
      (* (( (ptr) tmpAddr241) + 1) ) = 1;
      };
SOURCE(53783, 926)
   (* (( (ptr) &var←c82492)+6)/* equal←v17904 */  ) = 1;
SOURCE(54325, 384)
   {
      word tc242;
      box←v63320 = (*  (W4Pt) (* (( (ptr) &var←c82492)+4)/* s1←v17832 */  ) );
      if (( (int)box←v63320.f0 >=  (int)box←v63320.f2)) {
         var←c79676 =  (unsigned) 1;
         }
      else {
         var←c79676 =  (unsigned) ( (int)box←v63320.f1 >=  (int)box←v63320.f3);
         };
      if ((0 != var←c79676)) {
         box←v63272 = (*  (W4Pt) (* (( (ptr) &var←c82492)+5)/* s2←v17860 */  ) );
         if (( (int)box←v63272.f0 >=  (int)box←v63272.f2)) {
            var←c79708 =  (unsigned) 1;
            }
         else {
            var←c79708 =  (unsigned) ( (int)box←v63272.f1 >=  (int)box←v63272.f3);
            };
         tc242 =  (word) (0 != var←c79708);
         }
      else {
         tc242 =  (word) 0;
         };
      if (tc242) {
         }
      else {
SOURCE(54393, 316)
         if ( ! XR←EqualWords((* (( (ptr) &var←c82492)+4)/* s1←v17832 */  ), (* (( (ptr) &var←c82492)+5)/* s2←v17860 */  ), 4)) {
SOURCE(54417, 19)
            (* (( (ptr) &var←c82492)+6)/* equal←v17904 */  ) = 0;
            }
         else {
SOURCE(54436, 275)
            {
               word bandBitsPerSample←v36612;
               word bandLines←v36640;
               W4 bandBox←v36668;
SOURCE(54438, 64)
               {
                  word x243;
                  word x244;
                  bandBitsPerSample←v36612 = (x243 = (* (( (ptr) (* (( (ptr) &var←c82492)+4)/* s1←v17832 */  ))+5) ),
                     x244 = (* (( (ptr) (* (( (ptr) &var←c82492)+5)/* s2←v17860 */  ))+5) ),
                     MAX( (unsigned) , x243, x244));
                  };
SOURCE(54504, 81)
               {
                  word var←c79740;
                  W4 box←v62060;
                  word var←c01329;
                  word var←c79772;
                  W4 box←v61964;
                  box←v62060 = (*  (W4Pt) (* (( (ptr) &var←c82492)+4)/* s1←v17832 */  ) );
                  if (( (int)box←v62060.f1 <  (int)box←v62060.f3)) {
                     var←c79740 = (box←v62060.f3 - box←v62060.f1);
                     }
                  else {
                     var←c79740 = 0;
                     };
                  {
                     word x245;
                     var←c01329 = (x245 = (4096 / var←c79740),
                        MAX( (unsigned) , x245, 1));
                     };
                  box←v61964 = (*  (W4Pt) (* (( (ptr) &var←c82492)+4)/* s1←v17832 */  ) );
                  if (( (int)box←v61964.f0 <  (int)box←v61964.f2)) {
                     var←c79772 = (box←v61964.f2 - box←v61964.f0);
                     }
                  else {
                     var←c79772 = 0;
                     };
                  bandLines←v36640 = (MIN( (unsigned) , var←c01329, var←c79772));
                  };
SOURCE(54587, 21)
               bandBox←v36668 = (*  (W4Pt) (* (( (ptr) &var←c82492)+4)/* s1←v17832 */  ) );
SOURCE(54610, 41)
               bandBox←v36668.f2 = (bandBox←v36668.f0 + bandLines←v36640);
SOURCE(54653, 56)
               (void) DoWithScratchMap←P2100(bandBox←v36668, BCK(bandBitsPerSample←v36612, 33), (word) (( (bPt) &var←c82492)+28)/* var←c79644 */ )
               ;
               };
            };
         };
      };
SOURCE(53783, 926)
   return((* (( (ptr) &var←c82492)+6)/* equal←v17904 */  ));
   }

static void BandAction←P12048(band←v36584, formal←c82524)
   word band←v36584;
   word formal←c82524;
   {
   word boxSize←v36712;
   word bandSize←v36740;
   word bandWords←v36768;
   formal←c82524 = (formal←c82524 - 28);
   /* BandAction: */ 
SOURCE(53855, 448)
SOURCE(53900, 37)
   {
      word var←c79804;
      W4 box←v61916;
      box←v61916 = (*  (W4Pt) (* (( (ptr) formal←c82524)+4) ) );
      if (( (int)box←v61916.f0 <  (int)box←v61916.f2)) {
         var←c79804 = (box←v61916.f2 - box←v61916.f0);
         }
      else {
         var←c79804 = 0;
         };
      boxSize←v36712 = SGNCK(var←c79804);
      };
SOURCE(53939, 40)
   {
      word var←c79836;
      W4 box←v61868;
      box←v61868 = (*  (W4Pt) band←v36584 );
      if (( (int)box←v61868.f0 <  (int)box←v61868.f2)) {
         var←c79836 = (box←v61868.f2 - box←v61868.f0);
         }
      else {
         var←c79836 = 0;
         };
      bandSize←v36740 = SGNCK(var←c79836);
      };
SOURCE(53981, 58)
   {
      word idx246;
      word idx247;
      bandWords←v36768 = (
         idx247 = (word) WordsForLines←P1440(bandSize←v36740, (
               idx246 = (* (( (ptr) band←v36584)+7) ),
               SGNCK(idx246)
               )),
         SGNCK(idx247)
         );
      };
SOURCE(54041, 11)
   (void) Clear←P3360(band←v36584);
SOURCE(54054, 249)
   {
      register word s←v36812;
      s←v36812 = 0;
      lab←L100327: ;
      if (( (int)s←v36812 <  (int)boxSize←v36712)) {
         }
      else {
         goto lab←L100324;
         };
SOURCE(54106, 50)
      {
         W2 var←c79868;
         var←c79868.f0 = INEG(s←v36812);
         var←c79868.f1 = 0;
         (void) Transfer←P3600(band←v36584, (* (( (ptr) formal←c82524)+4) ), var←c79868, 0);
         };
SOURCE(54158, 73)
      {
         W2 var←c79900;
         var←c79900.f0 = INEG(s←v36812);
         var←c79900.f1 = 0;
         (void) Transfer←P3600(band←v36584, (* (( (ptr) formal←c82524)+5) ), var←c79900, 6);
         };
SOURCE(54233, 70)
      if ((0 == (word) Zeros←P4680((* (( (ptr) band←v36584)+8) ), bandWords←v36768))) {
SOURCE(54290, 13)
         (* (( (ptr) formal←c82524)+6) ) = 0;
SOURCE(54305, 5)
         goto lab←L100325;
         };
      s←v36812 = (s←v36812 + bandSize←v36740);
      goto lab←L100327;
      lab←L100324: ;
      lab←L100325: ;
      };
   }

static word IsAll←P4800(map←v17964, box←v17992, formal←c01384)
   word map←v17964;
   W4 box←v17992;
   word formal←c01384;
   {
   W9 var←c82556;
   /* declaration of value←v18020 skipped */ 
   /* declaration of equal←v18064 skipped */ 
   /* declaration of var←c79932 skipped */ 
   /* declaration of clipped←v36856 skipped */ 
   (* (( (ptr) &var←c82556)+4)/* value←v18020 */  ) = formal←c01384;
   /* IsAll: */ 
SOURCE(54718, 931)
   {
      word tmpAddr248;
      tmpAddr248 = (word) (( (ptr) &var←c82556)+6)/* var←c79932 */ ;
      (*  (ptr) tmpAddr248 ) = ( ((word)  (fPt) BandAction←P12252) );
      (* (( (ptr) tmpAddr248) + 1) ) = 1;
      };
SOURCE(54718, 931)
   (* (( (ptr) &var←c82556)+5)/* equal←v18064 */  ) = 1;
SOURCE(54826, 35)
   (* (( (ptr) &var←c82556)+8)/* clipped←v36856 */  ) = (word) Clip←P2700(map←v17964, box←v17992);
   {
      word var←c79964;
      W4 box←v62252;
SOURCE(54863, 755)
      box←v62252 = (*  (W4Pt) (* (( (ptr) &var←c82556)+8)/* clipped←v36856 */  ) );
      if (( (int)box←v62252.f0 <  (int)box←v62252.f2)) {
         var←c79964 =  (unsigned) ( (int)box←v62252.f1 <  (int)box←v62252.f3);
         }
      else {
         var←c79964 =  (unsigned) 0;
         };
      if ((0 != var←c79964)) {
SOURCE(54902, 718)
         {
            word bandLines←v36928;
            W4 bandBox←v36956;
SOURCE(55394, 91)
            {
               word var←c79996;
               W4 box←v62012;
               word var←c01330;
               word var←c80028;
               W4 box←v61820;
               box←v62012 = (*  (W4Pt) (* (( (ptr) &var←c82556)+8)/* clipped←v36856 */  ) );
               if (( (int)box←v62012.f1 <  (int)box←v62012.f3)) {
                  var←c79996 = (box←v62012.f3 - box←v62012.f1);
                  }
               else {
                  var←c79996 = 0;
                  };
               {
                  word x249;
                  var←c01330 = (x249 = (4096 / var←c79996),
                     MAX( (unsigned) , x249, 1));
                  };
               box←v61820 = (*  (W4Pt) (* (( (ptr) &var←c82556)+8)/* clipped←v36856 */  ) );
               if (( (int)box←v61820.f0 <  (int)box←v61820.f2)) {
                  var←c80028 = (box←v61820.f2 - box←v61820.f0);
                  }
               else {
                  var←c80028 = 0;
                  };
               bandLines←v36928 = (MIN( (unsigned) , var←c01330, var←c80028));
               };
SOURCE(55487, 26)
            bandBox←v36956 = (*  (W4Pt) (* (( (ptr) &var←c82556)+8)/* clipped←v36856 */  ) );
SOURCE(55515, 41)
            bandBox←v36956.f2 = (bandBox←v36956.f0 + bandLines←v36928);
SOURCE(55558, 60)
            (void) DoWithScratchMap←P2100(bandBox←v36956, (* (( (ptr) (* (( (ptr) &var←c82556)+8)/* clipped←v36856 */  ))+5) ), (word) (
                  ( (bPt) &var←c82556)+24)/* var←c79932 */ );
            };
         };
SOURCE(55623, 26)
      (void) ReleaseDescriptor←P1860((* ((( (ptr) &var←c82556)+8)/* clipped←v36856 */ ) ));
      };
SOURCE(54718, 931)
   return((* (( (ptr) &var←c82556)+5)/* equal←v18064 */  ));
   }

static void BandAction←P12252(band←v37032, formal←c82620)
   word band←v37032;
   word formal←c82620;
   {
   register ptr gf←c82588 =  (ptr) &globalframe;
   word boxSize←v37060;
   word bandSize←v37088;
   word bandWords←v37116;
   formal←c82620 = (formal←c82620 - 24);
   /* BandAction: */ 
SOURCE(54904, 18)
SOURCE(54949, 42)
   {
      word var←c80060;
      W4 box←v61772;
      box←v61772 = (*  (W4Pt) (* (( (ptr) formal←c82620)+8) ) );
      if (( (int)box←v61772.f0 <  (int)box←v61772.f2)) {
         var←c80060 = (box←v61772.f2 - box←v61772.f0);
         }
      else {
         var←c80060 = 0;
         };
      boxSize←v37060 = SGNCK(var←c80060);
      };
SOURCE(54993, 40)
   {
      word var←c80092;
      W4 box←v61724;
      box←v61724 = (*  (W4Pt) band←v37032 );
      if (( (int)box←v61724.f0 <  (int)box←v61724.f2)) {
         var←c80092 = (box←v61724.f2 - box←v61724.f0);
         }
      else {
         var←c80092 = 0;
         };
      bandSize←v37088 = SGNCK(var←c80092);
      };
SOURCE(55035, 58)
   {
      word idx250;
      word idx251;
      bandWords←v37116 = (
         idx251 = (word) WordsForLines←P1440(bandSize←v37088, (
               idx250 = (* (( (ptr) band←v37032)+7) ),
               SGNCK(idx250)
               )),
         SGNCK(idx251)
         );
      };
SOURCE(55095, 11)
   (void) Clear←P3360(band←v37032);
SOURCE(55108, 264)
   {
      register word s←v37160;
      s←v37160 = 0;
      lab←L100336: ;
      if (( (int)s←v37160 <  (int)boxSize←v37060)) {
         }
      else {
         goto lab←L100333;
         };
SOURCE(55160, 55)
      {
         W2 var←c80124;
         var←c80124.f0 = INEG(s←v37160);
         var←c80124.f1 = 0;
         (void) Transfer←P3600(band←v37032, (* (( (ptr) formal←c82620)+8) ), var←c80124, 0);
         };
SOURCE(55217, 83)
      if (((* (( (ptr) formal←c82620)+4) ) != 0)) {
SOURCE(55235, 65)
         (void) Fill←P3840(band←v37032, (*  (W4Pt) (( (ptr) gf←c82588)+209)/* var←c66396 */  ), (* (( (ptr) formal←c82620)+4) ), 6)
         ;
         };
SOURCE(55302, 70)
      if ((0 == (word) Zeros←P4680((* (( (ptr) band←v37032)+8) ), bandWords←v37116))) {
SOURCE(55359, 13)
         (* (( (ptr) formal←c82620)+5) ) = 0;
SOURCE(55374, 5)
         goto lab←L100334;
         };
      s←v37160 = (s←v37160 + bandSize←v37088);
      goto lab←L100336;
      lab←L100333: ;
      lab←L100334: ;
      };
   }

static void Trim←P4860(formal←c01242, formal←c01385, box←v18152, formal←c01386)
   word formal←c01242;
   word formal←c01385;
   W4 box←v18152;
   word formal←c01386;
   {
   W12 var←c82652;
   /* declaration of map←v18124 skipped */ 
   /* declaration of background←v18180 skipped */ 
   register ptr gf←c82684 =  (ptr) &globalframe;
   W4 var←c18224;
   /* declaration of var←c80156 skipped */ 
   W4 actualBox←v37204;
   /* declaration of min←v37232 skipped */ 
   /* declaration of max←v37260 skipped */ 
   (* (( (ptr) &var←c82652)+4)/* map←v18124 */  ) = formal←c01385;
   (* (( (ptr) &var←c82652)+5)/* background←v18180 */  ) = formal←c01386;
   /* Trim: */ 
SOURCE(55655, 1581)
   {
      word tmpAddr252;
      tmpAddr252 = (word) (( (ptr) &var←c82652)+6)/* var←c80156 */ ;
      (*  (ptr) tmpAddr252 ) = ( ((word)  (fPt) BandAction←P12360) );
      (* (( (ptr) tmpAddr252) + 1) ) = 1;
      };
SOURCE(55738, 53)
   {
      W4 box←v56324;
      {
         word pd253;
         pd253 = (* (( (ptr) (* (( (ptr) gf←c82684)+225)/* var←c67164 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd253 ))))((word) &box←v56324, (*  (W4Pt) (* (( (ptr) &var←c82652)+4)/* map←v18124 */  ) ), box←v18152, pd253)
         ;
         };
SOURCE(1846, 74)
      if (( (int)box←v56324.f0 >=  (int)box←v56324.f2) || ( (int)box←v56324.f1 >=  (int)box←v56324.f3)) {
SOURCE(1903, 17)
         (*  (W2Pt) (( (ptr) &box←v56324)+2) ) = (*  (W2Pt) &box←v56324 );
         };
SOURCE(1922, 12)
      actualBox←v37204 = box←v56324;
      };
SOURCE(55793, 24)
   (*  (W2Pt) (( (ptr) &var←c82652)+8)/* min←v37232 */  ) = (*  (W2Pt) &actualBox←v37204 );
SOURCE(55819, 24)
   (*  (W2Pt) (( (ptr) &var←c82652)+10)/* max←v37260 */  ) = (*  (W2Pt) (( (ptr) &actualBox←v37204)+2) );
SOURCE(56596, 124)
   {
      W4 var←c80220;
      var←c80220.f0 = 0;
      var←c80220.f1 = 0;
      var←c80220.f2 = 1;
      {
         word idx254;
         var←c80220.f3 = (
            idx254 = (word)  ( ( (int)actualBox←v37204.f1 <  (int)actualBox←v37204.f3) ? (actualBox←v37204.f3 - actualBox←v37204.f1) : 0 ) ,
            SGNCK(idx254)
            );
         };
      (void) DoWithScratchMap←P2100(var←c80220, (* (( (ptr) (* (( (ptr) &var←c82652)+4)/* map←v18124 */  ))+5) ), (word) (( (bPt) &var←c82652)+24)
         /* var←c80156 */ );
      };
SOURCE(56722, 448)
   if (( (int)(* (( (ptr) &var←c82652)+8) ) ==  (int)(* (( (ptr) &var←c82652)+10) ))) {
SOURCE(56742, 19)
      (* (( (ptr) &var←c82652)+11) ) = (* (( (ptr) &var←c82652)+9) );
      }
   else {
SOURCE(56763, 407)
      {
         register word delta←v37392;
         delta←v37392 = 16;
         lab←L100342: ;
         if ((delta←v37392 != 0)) {
            }
         else {
            goto lab←L100339;
            };
SOURCE(56809, 173)
         lab←L100345: ;
         if (( (int)((* (( (ptr) &var←c82652)+9) ) + delta←v37392) <=  (int)(* (( (ptr) &var←c82652)+11) ))) {
            }
         else {
            goto lab←L100343;
            };
         {
            W4 margin←v37436;
SOURCE(56859, 57)
            margin←v37436.f0 = (* (( (ptr) &var←c82652)+8) );
            margin←v37436.f1 = ((* (( (ptr) &var←c82652)+11) ) - delta←v37392);
            (*  (W2Pt) (( (ptr) &margin←v37436)+2) ) = (*  (W2Pt) (( (ptr) &var←c82652)+10)/* max←v37260 */  );
SOURCE(56918, 64)
            if ((0 != (word) IsAll←P4800((* (( (ptr) &var←c82652)+4)/* map←v18124 */  ), margin←v37436, (* (( (ptr) &var←c82652)+5)/* background←v18180 */  ))
            )) {
SOURCE(56957, 25)
               (* (( (ptr) &var←c82652)+11) ) = ((* (( (ptr) &var←c82652)+11) ) - delta←v37392);
               }
            else {
SOURCE(56982, 4)
               goto lab←L100344;
               };
            };
         goto lab←L100345;
         lab←L100343: ;
         lab←L100344: ;
SOURCE(56997, 173)
         lab←L100348: ;
         if (( (int)((* (( (ptr) &var←c82652)+9) ) + delta←v37392) <=  (int)(* (( (ptr) &var←c82652)+11) ))) {
            }
         else {
            goto lab←L100346;
            };
         {
            W4 margin←v37480;
SOURCE(57047, 57)
            (*  (W2Pt) &margin←v37480 ) = (*  (W2Pt) (( (ptr) &var←c82652)+8)/* min←v37232 */  );
            margin←v37480.f2 = (* (( (ptr) &var←c82652)+10) );
            margin←v37480.f3 = ((* (( (ptr) &var←c82652)+9) ) + delta←v37392);
SOURCE(57106, 64)
            if ((0 != (word) IsAll←P4800((* (( (ptr) &var←c82652)+4)/* map←v18124 */  ), margin←v37480, (* (( (ptr) &var←c82652)+5)/* background←v18180 */  ))
            )) {
SOURCE(57145, 25)
               (* (( (ptr) &var←c82652)+9) ) = ((* (( (ptr) &var←c82652)+9) ) + delta←v37392);
               }
            else {
SOURCE(57170, 4)
               goto lab←L100347;
               };
            };
         goto lab←L100348;
         lab←L100346: ;
         lab←L100347: ;
         delta←v37392 = ((word) delta←v37392 >> 2);
         goto lab←L100342;
         lab←L100339: ;
         };
      };
SOURCE(57197, 39)
   {
      W4 box←v56276;
      (*  (W2Pt) &box←v56276 ) = (*  (W2Pt) (( (ptr) &var←c82652)+8)/* min←v37232 */  );
      (*  (W2Pt) (( (ptr) &box←v56276)+2) ) = (*  (W2Pt) (( (ptr) &var←c82652)+10)/* max←v37260 */  );
SOURCE(1846, 74)
      if (( (int)box←v56276.f0 >=  (int)box←v56276.f2) || ( (int)box←v56276.f1 >=  (int)box←v56276.f3)) {
SOURCE(1903, 17)
         (*  (W2Pt) (( (ptr) &box←v56276)+2) ) = (*  (W2Pt) &box←v56276 );
         };
SOURCE(1922, 12)
      var←c18224 = box←v56276;
      };
   /* removed tail goto */ 
   (*  (W4Pt) formal←c01242 ) = var←c18224;
   return;
   }

static void BandAction←P12360(band←v37364, formal←c82716)
   word band←v37364;
   word formal←c82716;
   {
   word bandWords←v37524;
   formal←c82716 = (formal←c82716 - 24);
   /* BandAction: */ 
SOURCE(55845, 733)
SOURCE(55890, 64)
   {
      word idx255;
      word idx256;
      word idx257;
      bandWords←v37524 = (
         idx257 = (word) WordsForLines←P1440((
               idx255 = (* (( (ptr) band←v37364)+2) ),
               SGNCK(idx255)
               ), (
               idx256 = (* (( (ptr) band←v37364)+7) ),
               SGNCK(idx256)
               )),
         SGNCK(idx257)
         );
      };
SOURCE(55956, 11)
   (void) Clear←P3360(band←v37364);
SOURCE(55969, 298)
   lab←L100352: ;
   if (( (int)(* (( (ptr) formal←c82716)+8) ) <  (int)(* (( (ptr) formal←c82716)+10) ))) {
      }
   else {
      goto lab←L100350;
      };
SOURCE(56012, 86)
   {
      W2 var←c80412;
      W2 var←c80444;
      var←c80412.f0 = 0;
      var←c80412.f1 = 0;
      var←c80444.f0 = ((* (( (ptr) formal←c82716)+10) ) - 1);
      var←c80444.f1 = (* (( (ptr) formal←c82716)+9) );
      (void) BasicTransfer←P3480(band←v37364, (* (( (ptr) formal←c82716)+4) ), var←c80412, var←c80444, (*  (W2Pt) (( (ptr) band←v37364)+2)
          ), 0);
      };
SOURCE(56100, 93)
   if (((* (( (ptr) formal←c82716)+5) ) != 0)) {
SOURCE(56121, 72)
      (void) Fill←P3840(band←v37364, (*  (W4Pt) band←v37364 ), (* (( (ptr) formal←c82716)+5) ), 6);
      };
SOURCE(56195, 72)
   if ((0 != (word) Zeros←P4680((* (( (ptr) band←v37364)+8) ), bandWords←v37524))) {
SOURCE(56246, 21)
      (* (( (ptr) formal←c82716)+10) ) = ((* (( (ptr) formal←c82716)+10) ) - 1);
      }
   else {
SOURCE(56267, 4)
      goto lab←L100351;
      };
   goto lab←L100352;
   lab←L100350: ;
   lab←L100351: ;
SOURCE(56282, 296)
   lab←L100355: ;
   if (( (int)(* (( (ptr) formal←c82716)+8) ) <  (int)(* (( (ptr) formal←c82716)+10) ))) {
      }
   else {
      goto lab←L100353;
      };
SOURCE(56325, 84)
   {
      W2 var←c80476;
      W2 var←c80508;
      var←c80476.f0 = 0;
      var←c80476.f1 = 0;
      var←c80508.f0 = (* (( (ptr) formal←c82716)+8) );
      var←c80508.f1 = (* (( (ptr) formal←c82716)+9) );
      (void) BasicTransfer←P3480(band←v37364, (* (( (ptr) formal←c82716)+4) ), var←c80476, var←c80508, (*  (W2Pt) (( (ptr) band←v37364)+2)
          ), 0);
      };
SOURCE(56411, 93)
   if (((* (( (ptr) formal←c82716)+5) ) != 0)) {
SOURCE(56432, 72)
      (void) Fill←P3840(band←v37364, (*  (W4Pt) band←v37364 ), (* (( (ptr) formal←c82716)+5) ), 6);
      };
SOURCE(56506, 72)
   if ((0 != (word) Zeros←P4680((* (( (ptr) band←v37364)+8) ), bandWords←v37524))) {
SOURCE(56557, 21)
      (* (( (ptr) formal←c82716)+8) ) = ((* (( (ptr) formal←c82716)+8) ) + 1);
      }
   else {
SOURCE(56578, 4)
      goto lab←L100354;
      };
   goto lab←L100355;
   lab←L100353: ;
   lab←L100354: ;
   }

static void NoName←Q20916(formal←c01253, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c01253;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   if ((formal←c200005 == XR←Unwind)) {
SOURCE(12980, 27)
      (void) ReleaseScratchMap←P1980((* ((( (ptr) formal←c200004)+5)) ));
      };
   (*  (ptr) formal←c01253 ) = 0;
   (* (( (ptr) formal←c01253)+1) ) = 0;
   return;
   }

static void NoName←Q20976(formal←c01258, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c01258;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   if ((formal←c200001 == XR←Unwind)) {
SOURCE(4703, 31)
      (void) ReleaseScratchSamples←P840((* ((( (ptr) formal←c200000)+5)) ));
      };
   (*  (ptr) formal←c01258 ) = 0;
   (* (( (ptr) formal←c01258)+1) ) = 0;
   return;
   }

/* file: ImagerSampleImpl, module: ImagerSampleImpl, compiled at: March 9, 1994 11:51:50 am PST */ 
extern void XR←install←ImagerSampleImpl() {
   NoName←Q20736();
   }
extern void XR←run←ImagerSampleImpl() { XR←Start(&globalframe); }