/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 11:34:29 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: UnsafeTileImpl, module: UnsafeTileImpl */ /* switches: cfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> #define XRM←BITAND(x, y) (((word)(x)) & ((word)(y))) #define XRM←BITXOR(x, y) (((word)(x)) ↑ ((word)(y))) #define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y)) #define XRM←BITRSHIFT(x, y) ((word)(x) >> (word)(y)) #define XRM←BITNOT(x) (~((word)(x))) #define XRM←BITOR(x, y) (((word)(x)) | ((word)(y))) static char versionStamp[] = "@(#)mob←version [1309050070,1920915394] UnsafeTileImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {W8 f; W8 r;} W16; typedef struct {word f0, f1;} W2; typedef word (*fPt)(); #define SOURCE(p, l) /* source p, l */ #define IOP2(op, x, y) ( (word) ((x) op (y)) ) static void NoName←Q4620(); static void UnsafeTileImpl←P0(); static void Op←P60(); static void Fast1←P120(); static void Fast2←P180(); static void Fast3←P240(); static void DoLine←P300(); static void WithFunction←P1968(); static void DumbOp←P480(); static word FunnyOp←P540(); static void BadAssertion←P660(); static void InitReplicatorArray←P720(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\116\006\204\326\300\162\176\327\302\100\164\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\047\273\127\037\300\356\271\016\020\100\150\000\000"}; static struct { word f0[71]; 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[2]; } globalframe = { {0}, (word) InitReplicatorArray←P720, 0, (word) BadAssertion←P660, 0, (word) FunnyOp←P540, 0, (word) DumbOp←P480, 0, (word) DoLine←P300, 0, (word) Fast3←P240, 0, (word) Fast2←P180, 0, (word) Fast1←P120, 0, (word) Op←P60, 0, (word) UnsafeTileImpl←P0, {0} }; static void NoName←Q4620() { register ptr gf←c0309 = (ptr) &globalframe; word var←c17152; (void) XR←DeclareGlobalFrame((word) "UnsafeTileImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c0309)+356) /* var←c14624 */ ); var←c17152 = (word) XR←ExportInterface((word) "UnsafeTile", (word) XR←GetTypeIndexS((word) (&string2)), 5); (* (( (ptr) gf←c0309)+91)/* var←c17120 */ ) = var←c17152; (void) XR←ExportProcS(var←c17152, (word) (( (bPt) gf←c0309)+348)/* var←c14592 */ , 262145); (void) XR←ExportProcS(var←c17152, (word) (( (bPt) gf←c0309)+340)/* var←c14560 */ , 262401); (void) XR←ExportProcS(var←c17152, (word) (( (bPt) gf←c0309)+332)/* var←c14528 */ , 262657); (void) XR←ExportProcS(var←c17152, (word) (( (bPt) gf←c0309)+324)/* var←c14496 */ , 262913); (void) XR←ExportProcS(var←c17152, (word) (( (bPt) gf←c0309)+308)/* var←c14432 */ , 263169); } static void UnsafeTileImpl←P0(formal←c017, formal←c016) word formal←c017; word formal←c016; { /* UnsafeTileImpl: */ SOURCE(31, 14375) SOURCE(14385, 21) (void) InitReplicatorArray←P720(); } static void Op←P60(arg←v3528) word arg←v3528; { word fSizeTile←v4792; /* Op: */ SOURCE(513, 420) SOURCE(561, 30) fSizeTile←v4792 = (* (( (ptr) arg←v3528)+8) ); SOURCE(612, 48) if (((* (( (ptr) arg←v3528)+10) ) >= fSizeTile←v4792)) { SOURCE(646, 14) (void) BadAssertion←P660(); }; SOURCE(662, 45) if (((* (( (ptr) arg←v3528)+12) ) >= fSizeTile←v4792)) { SOURCE(693, 14) (void) BadAssertion←P660(); }; SOURCE(709, 53) if (((* (( (ptr) arg←v3528)+11) ) >= (* (( (ptr) arg←v3528)+9) ))) { SOURCE(748, 14) (void) BadAssertion←P660(); }; SOURCE(767, 45) if (((* (( (ptr) arg←v3528)+3) ) == 0) || ((* (( (ptr) arg←v3528)+4) ) == 0)) { SOURCE(806, 6) return; }; SOURCE(814, 104) if ((fSizeTile←v4792 <= 32)) { SOURCE(841, 69) if (((word) XRM←BITAND(fSizeTile←v4792, (fSizeTile←v4792 - 1)) == 0)) { SOURCE(884, 16) (void) Fast1←P120(arg←v3528); } else { SOURCE(900, 10) (void) Fast2←P180(arg←v3528); }; SOURCE(912, 6) return; }; SOURCE(923, 10) (void) Fast3←P240(arg←v3528); } static void Fast1←P120(arg←v3588) word arg←v3588; { word tileLine←v4836; word firstBit←v4864; word srcBpl←v4892; word srcBit←v4920; word src←v4948; word dst←v4976; word dstBit←v5004; word fSize←v5032; word fSizeTile←v5060; word sSizeTile←v5088; word sSize←v5116; word sw←v5144; word invert←v5172; /* Fast1: */ SOURCE(939, 3381) SOURCE(990, 29) tileLine←v4836 = (* (( (ptr) arg←v3588)+11) ); SOURCE(1021, 34) firstBit←v4864 = (* (( (ptr) arg←v3588)+10) ); SOURCE(1057, 24) srcBpl←v4892 = (* (( (ptr) arg←v3588)+7) ); SOURCE(1083, 30) srcBit←v4920 = (* (( (ptr) arg←v3588)+6) ); SOURCE(1115, 26) src←v4948 = (* (( (ptr) arg←v3588)+5) ); SOURCE(1143, 26) dst←v4976 = (* (ptr) arg←v3588 ); SOURCE(1171, 30) dstBit←v5004 = (* (( (ptr) arg←v3588)+1) ); SOURCE(1203, 22) fSize←v5032 = (* (( (ptr) arg←v3588)+3) ); SOURCE(1227, 35) fSizeTile←v5060 = (* (( (ptr) arg←v3588)+8) ); SOURCE(1264, 30) sSizeTile←v5088 = (* (( (ptr) arg←v3588)+9) ); SOURCE(1296, 22) sSize←v5116 = (* (( (ptr) arg←v3588)+4) ); SOURCE(1330, 28) invert←v5172 = (* (( (ptr) arg←v3588)+13) ); SOURCE(3977, 70) if (((word) XRM←BITAND(fSizeTile←v5060, (fSizeTile←v5060 - 1)) != 0)) { SOURCE(4033, 14) (void) BadAssertion←P660(); }; SOURCE(4049, 271) if ((sSize←v5116 != 0)) { SOURCE(4069, 116) if ((tileLine←v4836 != 0)) { SOURCE(4090, 97) { word next←v5524; SOURCE(4092, 36) next←v5524 = (srcBit←v4920 + (tileLine←v4836 * srcBpl←v4892)); SOURCE(4130, 21) srcBit←v4920 = (next←v5524 & 037); SOURCE(4153, 32) src←v4948 = (src←v4948 + ((next←v5524 - srcBit←v4920) >> 3)); }; }; SOURCE(4190, 130) { word var←c14656; var←c14656 = (* (( (ptr) arg←v3588)+14) ); switch (var←c14656) { case 0: SOURCE(4222, 18) SOURCE(3865, 98) lab←L100002: ; SOURCE(3868, 13) { word k←v5568; k←v5568 = fSizeTile←v5060; SOURCE(1414, 25) sw←v5144 = (word) XRM←BITXOR((* (ptr) src←v4948 ), invert←v5172); SOURCE(1441, 131) if ((srcBit←v4920 != 0)) { SOURCE(1462, 26) sw←v5144 = (word) XRM←BITLSHIFT(sw←v5144, srcBit←v4920); SOURCE(1490, 82) if (((srcBit←v4920 + k←v5568) > 32)) { SOURCE(1513, 59) { word var←c14688; word var←c0314; var←c14688 = (word) XRM←BITXOR((* (ptr) (src←v4948 + 4) ), invert←v5172); var←c0314 = (word) XRM←BITRSHIFT(var←c14688, (32 - srcBit←v4920)); sw←v5144 = (sw←v5144 + var←c0314); }; }; }; SOURCE(1577, 122) if ((k←v5568 < 32)) { SOURCE(1595, 44) { word var←c14720; var←c14720 = (word) XRM←BITLSHIFT( (word) -1, (32 - k←v5568)); sw←v5144 = (word) XRM←BITAND(sw←v5144, var←c14720); }; SOURCE(1641, 58) lab←L100005: ; SOURCE(1644, 26) sw←v5144 = (sw←v5144 + (word) XRM←BITRSHIFT(sw←v5144, k←v5568)); SOURCE(1672, 9) k←v5568 = (k←v5568 + k←v5568); SOURCE(1683, 16) if ((k←v5568 == 32)) { SOURCE(1699, 4) goto lab←L100004; }; goto lab←L100005; lab←L100004: ; }; SOURCE(1717, 79) if ((firstBit←v4864 != 0)) { SOURCE(1738, 58) sw←v5144 = ((word) XRM←BITLSHIFT(sw←v5144, firstBit←v4864) + (word) XRM←BITRSHIFT(sw←v5144, (32 - firstBit←v4864))); }; }; SOURCE(3883, 15) SOURCE(1842, 1563) { word rem←v5596; word dwp←v5624; rem←v5596 = fSize←v5032; dwp←v5624 = dst←v4976; SOURCE(1882, 596) if ((dstBit←v5004 != 0)) { { word dw←v5652; word mask←v5680; word rw←v5708; dw←v5652 = (* (ptr) dwp←v5624 ); mask←v5680 = (word) XRM←BITRSHIFT( (word) -1, dstBit←v5004); rw←v5708 = (word) XRM←BITRSHIFT(sw←v5144, dstBit←v5004); SOURCE(1997, 18) rem←v5596 = (rem←v5596 + dstBit←v5004); SOURCE(2017, 64) if ((rem←v5596 < 32)) { SOURCE(2035, 46) { /*1*/ word var←c14752; /*1*/ var←c14752 = (word) XRM←BITRSHIFT( (word) -1, rem←v5596); /*1*/ mask←v5680 = (word) XRM←BITXOR(mask←v5680, var←c14752); /*1*/ }; }; SOURCE(2083, 284) SOURCE(2106, 50) { word var←c14784; { /*1*/ word var←c14816; /*1*/ word var←c0315; /*1*/ var←c14816 = (word) XRM←BITNOT(mask←v5680); /*1*/ var←c0315 = (word) XRM←BITAND(dw←v5652, var←c14816); /*1*/ var←c14784 = (var←c0315 + (word) XRM←BITAND(rw←v5708, mask←v5680)); /*1*/ }; (* (ptr) dwp←v5624 ) = var←c14784; }; SOURCE(2378, 19) if ((rem←v5596 <= 32)) { SOURCE(2397, 10) goto lab←L100006; }; SOURCE(2409, 35) sw←v5144 = ((word) XRM←BITLSHIFT(sw←v5144, (32 - dstBit←v5004)) + rw←v5708); SOURCE(2446, 15) rem←v5596 = (rem←v5596 - 32); SOURCE(2463, 15) dwp←v5624 = (dwp←v5624 + 4); }; }; SOURCE(2483, 330) lab←L100009: ; if ((rem←v5596 >= 64)) { } else { goto lab←L100007; }; SOURCE(2505, 260) SOURCE(2529, 9) (* (ptr) dwp←v5624 ) = sw←v5144; SOURCE(2540, 15) (* (ptr) (dwp←v5624 + 4) ) = sw←v5144; SOURCE(2777, 17) rem←v5596 = (rem←v5596 - 64); SOURCE(2796, 17) dwp←v5624 = (dwp←v5624 + 8); goto lab←L100009; lab←L100007: ; SOURCE(2824, 185) if ((rem←v5596 >= 32)) { SOURCE(2845, 130) SOURCE(2868, 9) (* (ptr) dwp←v5624 ) = sw←v5144; SOURCE(2977, 15) rem←v5596 = (rem←v5596 - 32); SOURCE(2994, 15) dwp←v5624 = (dwp←v5624 + 4); }; SOURCE(3014, 359) if ((rem←v5596 != 0)) { { word mask←v5736; word dw←v5764; mask←v5736 = (word) XRM←BITRSHIFT( (word) -1, rem←v5596); dw←v5764 = (* (ptr) dwp←v5624 ); SOURCE(3089, 284) SOURCE(3112, 50) { word var←c14848; { /*1*/ word var←c14880; /*1*/ word var←c0316; /*1*/ var←c14880 = (word) XRM←BITNOT(mask←v5736); /*1*/ var←c0316 = (word) XRM←BITAND(sw←v5144, var←c14880); /*1*/ var←c14848 = ((word) XRM←BITAND(dw←v5764, mask←v5736) + var←c0316); /*1*/ }; (* (ptr) dwp←v5624 ) = var←c14848; }; }; }; }; goto lab←L100010; lab←L100006: ; lab←L100010: ; SOURCE(3900, 18) if ((sSize←v5116 == 1)) { SOURCE(3918, 4) goto lab←L100001; }; SOURCE(3924, 17) sSize←v5116 = (sSize←v5116 - 1); SOURCE(3943, 9) { word next←v5792; next←v5792 = (dstBit←v5004 + (* (( (ptr) arg←v3588)+2) )); SOURCE(3466, 21) dstBit←v5004 = (next←v5792 & 037); SOURCE(3489, 34) dst←v4976 = (dst←v4976 + ((next←v5792 - dstBit←v5004) >> 3)); }; SOURCE(3954, 9) { word next←v5820; next←v5820 = (srcBit←v4920 + srcBpl←v4892); SOURCE(3582, 21) srcBit←v4920 = (next←v5820 & 037); SOURCE(3605, 34) src←v4948 = (src←v4948 + ((next←v5820 - srcBit←v4920) >> 3)); SOURCE(3641, 21) tileLine←v4836 = (tileLine←v4836 + 1); SOURCE(3664, 149) if ((tileLine←v4836 == sSizeTile←v5088)) { SOURCE(3695, 64) firstBit←v4864 = (word) XRM←BITAND((firstBit←v4864 + (fSizeTile←v5060 - (* (( (ptr) arg←v3588)+12) ))), (fSizeTile←v5060 - 1)) ; SOURCE(3761, 12) tileLine←v4836 = 0; SOURCE(3775, 19) srcBit←v4920 = (* (( (ptr) arg←v3588)+6) ); SOURCE(3796, 17) src←v4948 = (* (( (ptr) arg←v3588)+5) ); }; }; goto lab←L100002; lab←L100001: ; break; case 1: SOURCE(4249, 17) SOURCE(3865, 98) lab←L100013: ; SOURCE(3868, 13) { word k←v11780; k←v11780 = fSizeTile←v5060; SOURCE(1414, 25) sw←v5144 = (word) XRM←BITXOR((* (ptr) src←v4948 ), invert←v5172); SOURCE(1441, 131) if ((srcBit←v4920 != 0)) { SOURCE(1462, 26) sw←v5144 = (word) XRM←BITLSHIFT(sw←v5144, srcBit←v4920); SOURCE(1490, 82) if (((srcBit←v4920 + k←v11780) > 32)) { SOURCE(1513, 59) { word var←c14912; word var←c0317; var←c14912 = (word) XRM←BITXOR((* (ptr) (src←v4948 + 4) ), invert←v5172); var←c0317 = (word) XRM←BITRSHIFT(var←c14912, (32 - srcBit←v4920)); sw←v5144 = (sw←v5144 + var←c0317); }; }; }; SOURCE(1577, 122) if ((k←v11780 < 32)) { SOURCE(1595, 44) { word var←c14944; var←c14944 = (word) XRM←BITLSHIFT( (word) -1, (32 - k←v11780)); sw←v5144 = (word) XRM←BITAND(sw←v5144, var←c14944); }; SOURCE(1641, 58) lab←L100016: ; SOURCE(1644, 26) sw←v5144 = (sw←v5144 + (word) XRM←BITRSHIFT(sw←v5144, k←v11780)); SOURCE(1672, 9) k←v11780 = (k←v11780 + k←v11780); SOURCE(1683, 16) if ((k←v11780 == 32)) { SOURCE(1699, 4) goto lab←L100015; }; goto lab←L100016; lab←L100015: ; }; SOURCE(1717, 79) if ((firstBit←v4864 != 0)) { SOURCE(1738, 58) sw←v5144 = ((word) XRM←BITLSHIFT(sw←v5144, firstBit←v4864) + (word) XRM←BITRSHIFT(sw←v5144, (32 - firstBit←v4864))); }; }; SOURCE(3883, 15) SOURCE(1842, 1563) { word rem←v11868; word dwp←v11896; rem←v11868 = fSize←v5032; dwp←v11896 = dst←v4976; SOURCE(1882, 596) if ((dstBit←v5004 != 0)) { { word dw←v11940; word mask←v11968; word rw←v11996; dw←v11940 = (* (ptr) dwp←v11896 ); mask←v11968 = (word) XRM←BITRSHIFT( (word) -1, dstBit←v5004); rw←v11996 = (word) XRM←BITRSHIFT(sw←v5144, dstBit←v5004); SOURCE(1997, 18) rem←v11868 = (rem←v11868 + dstBit←v5004); SOURCE(2017, 64) if ((rem←v11868 < 32)) { SOURCE(2035, 46) { /*1*/ word var←c14976; /*1*/ var←c14976 = (word) XRM←BITRSHIFT( (word) -1, rem←v11868); /*1*/ mask←v11968 = (word) XRM←BITXOR(mask←v11968, var←c14976); /*1*/ }; }; SOURCE(2083, 284) SOURCE(2165, 62) { word var←c15008; { /*1*/ word var←c15040; /*1*/ word var←c0318; /*1*/ word var←c15072; /*1*/ var←c15040 = (word) XRM←BITNOT(mask←v11968); /*1*/ var←c0318 = (word) XRM←BITAND(dw←v11940, var←c15040); /*1*/ var←c15072 = (word) XRM←BITAND(dw←v11940, rw←v11996); /*1*/ var←c15008 = (var←c0318 + (word) XRM←BITAND(var←c15072, mask←v11968)); /*1*/ }; (* (ptr) dwp←v11896 ) = var←c15008; }; SOURCE(2378, 19) if ((rem←v11868 <= 32)) { SOURCE(2397, 10) goto lab←L100017; }; SOURCE(2409, 35) sw←v5144 = ((word) XRM←BITLSHIFT(sw←v5144, (32 - dstBit←v5004)) + rw←v11996); SOURCE(2446, 15) rem←v11868 = (rem←v11868 - 32); SOURCE(2463, 15) dwp←v11896 = (dwp←v11896 + 4); }; }; SOURCE(2483, 330) lab←L100020: ; if ((rem←v11868 >= 64)) { } else { goto lab←L100018; }; SOURCE(2505, 260) SOURCE(2566, 23) (* (ptr) dwp←v11896 ) = (word) XRM←BITAND((* (ptr) dwp←v11896 ), sw←v5144); SOURCE(2591, 35) { word var←c15104; var←c15104 = (word) XRM←BITAND((* (ptr) (dwp←v11896 + 4) ), sw←v5144); (* (ptr) (dwp←v11896 + 4) ) = var←c15104; }; SOURCE(2777, 17) rem←v11868 = (rem←v11868 - 64); SOURCE(2796, 17) dwp←v11896 = (dwp←v11896 + 8); goto lab←L100020; lab←L100018: ; SOURCE(2824, 185) if ((rem←v11868 >= 32)) { SOURCE(2845, 130) SOURCE(2886, 23) (* (ptr) dwp←v11896 ) = (word) XRM←BITAND((* (ptr) dwp←v11896 ), sw←v5144); SOURCE(2977, 15) rem←v11868 = (rem←v11868 - 32); SOURCE(2994, 15) dwp←v11896 = (dwp←v11896 + 4); }; SOURCE(3014, 359) if ((rem←v11868 != 0)) { { word mask←v12040; word dw←v12068; mask←v12040 = (word) XRM←BITRSHIFT( (word) -1, rem←v11868); dw←v12068 = (* (ptr) dwp←v11896 ); SOURCE(3089, 284) SOURCE(3171, 62) { word var←c15136; { /*1*/ word var←c15168; /*1*/ word var←c15200; /*1*/ word var←c0319; /*1*/ var←c15168 = (word) XRM←BITAND(dw←v12068, sw←v5144); /*1*/ var←c15200 = (word) XRM←BITNOT(mask←v12040); /*1*/ var←c0319 = (word) XRM←BITAND(var←c15168, var←c15200); /*1*/ var←c15136 = ((word) XRM←BITAND(dw←v12068, mask←v12040) + var←c0319); /*1*/ }; (* (ptr) dwp←v11896 ) = var←c15136; }; }; }; }; goto lab←L100021; lab←L100017: ; lab←L100021: ; SOURCE(3900, 18) if ((sSize←v5116 == 1)) { SOURCE(3918, 4) goto lab←L100012; }; SOURCE(3924, 17) sSize←v5116 = (sSize←v5116 - 1); SOURCE(3943, 9) { word next←v12112; next←v12112 = (dstBit←v5004 + (* (( (ptr) arg←v3588)+2) )); SOURCE(3466, 21) dstBit←v5004 = (next←v12112 & 037); SOURCE(3489, 34) dst←v4976 = (dst←v4976 + ((next←v12112 - dstBit←v5004) >> 3)); }; SOURCE(3954, 9) { word next←v12156; next←v12156 = (srcBit←v4920 + srcBpl←v4892); SOURCE(3582, 21) srcBit←v4920 = (next←v12156 & 037); SOURCE(3605, 34) src←v4948 = (src←v4948 + ((next←v12156 - srcBit←v4920) >> 3)); SOURCE(3641, 21) tileLine←v4836 = (tileLine←v4836 + 1); SOURCE(3664, 149) if ((tileLine←v4836 == sSizeTile←v5088)) { SOURCE(3695, 64) firstBit←v4864 = (word) XRM←BITAND((firstBit←v4864 + (fSizeTile←v5060 - (* (( (ptr) arg←v3588)+12) ))), (fSizeTile←v5060 - 1)) ; SOURCE(3761, 12) tileLine←v4836 = 0; SOURCE(3775, 19) srcBit←v4920 = (* (( (ptr) arg←v3588)+6) ); SOURCE(3796, 17) src←v4948 = (* (( (ptr) arg←v3588)+5) ); }; }; goto lab←L100013; lab←L100012: ; break; case 2: SOURCE(4274, 16) SOURCE(3865, 98) lab←L100024: ; SOURCE(3868, 13) { word k←v11360; k←v11360 = fSizeTile←v5060; SOURCE(1414, 25) sw←v5144 = (word) XRM←BITXOR((* (ptr) src←v4948 ), invert←v5172); SOURCE(1441, 131) if ((srcBit←v4920 != 0)) { SOURCE(1462, 26) sw←v5144 = (word) XRM←BITLSHIFT(sw←v5144, srcBit←v4920); SOURCE(1490, 82) if (((srcBit←v4920 + k←v11360) > 32)) { SOURCE(1513, 59) { word var←c15232; word var←c0320; var←c15232 = (word) XRM←BITXOR((* (ptr) (src←v4948 + 4) ), invert←v5172); var←c0320 = (word) XRM←BITRSHIFT(var←c15232, (32 - srcBit←v4920)); sw←v5144 = (sw←v5144 + var←c0320); }; }; }; SOURCE(1577, 122) if ((k←v11360 < 32)) { SOURCE(1595, 44) { word var←c15264; var←c15264 = (word) XRM←BITLSHIFT( (word) -1, (32 - k←v11360)); sw←v5144 = (word) XRM←BITAND(sw←v5144, var←c15264); }; SOURCE(1641, 58) lab←L100027: ; SOURCE(1644, 26) sw←v5144 = (sw←v5144 + (word) XRM←BITRSHIFT(sw←v5144, k←v11360)); SOURCE(1672, 9) k←v11360 = (k←v11360 + k←v11360); SOURCE(1683, 16) if ((k←v11360 == 32)) { SOURCE(1699, 4) goto lab←L100026; }; goto lab←L100027; lab←L100026: ; }; SOURCE(1717, 79) if ((firstBit←v4864 != 0)) { SOURCE(1738, 58) sw←v5144 = ((word) XRM←BITLSHIFT(sw←v5144, firstBit←v4864) + (word) XRM←BITRSHIFT(sw←v5144, (32 - firstBit←v4864))); }; }; SOURCE(3883, 15) SOURCE(1842, 1563) { word rem←v11448; word dwp←v11476; rem←v11448 = fSize←v5032; dwp←v11476 = dst←v4976; SOURCE(1882, 596) if ((dstBit←v5004 != 0)) { { word dw←v11520; word mask←v11548; word rw←v11576; dw←v11520 = (* (ptr) dwp←v11476 ); mask←v11548 = (word) XRM←BITRSHIFT( (word) -1, dstBit←v5004); rw←v11576 = (word) XRM←BITRSHIFT(sw←v5144, dstBit←v5004); SOURCE(1997, 18) rem←v11448 = (rem←v11448 + dstBit←v5004); SOURCE(2017, 64) if ((rem←v11448 < 32)) { SOURCE(2035, 46) { /*1*/ word var←c15296; /*1*/ var←c15296 = (word) XRM←BITRSHIFT( (word) -1, rem←v11448); /*1*/ mask←v11548 = (word) XRM←BITXOR(mask←v11548, var←c15296); /*1*/ }; }; SOURCE(2083, 284) SOURCE(2235, 61) { word var←c15328; { /*1*/ word var←c15360; /*1*/ word var←c0321; /*1*/ word var←c15392; /*1*/ var←c15360 = (word) XRM←BITNOT(mask←v11548); /*1*/ var←c0321 = (word) XRM←BITAND(dw←v11520, var←c15360); /*1*/ var←c15392 = (word) XRM←BITOR(dw←v11520, rw←v11576); /*1*/ var←c15328 = (var←c0321 + (word) XRM←BITAND(var←c15392, mask←v11548)); /*1*/ }; (* (ptr) dwp←v11476 ) = var←c15328; }; SOURCE(2378, 19) if ((rem←v11448 <= 32)) { SOURCE(2397, 10) goto lab←L100028; }; SOURCE(2409, 35) sw←v5144 = ((word) XRM←BITLSHIFT(sw←v5144, (32 - dstBit←v5004)) + rw←v11576); SOURCE(2446, 15) rem←v11448 = (rem←v11448 - 32); SOURCE(2463, 15) dwp←v11476 = (dwp←v11476 + 4); }; }; SOURCE(2483, 330) lab←L100031: ; if ((rem←v11448 >= 64)) { } else { goto lab←L100029; }; SOURCE(2505, 260) SOURCE(2636, 22) (* (ptr) dwp←v11476 ) = (word) XRM←BITOR((* (ptr) dwp←v11476 ), sw←v5144); SOURCE(2660, 34) { word var←c15424; var←c15424 = (word) XRM←BITOR((* (ptr) (dwp←v11476 + 4) ), sw←v5144); (* (ptr) (dwp←v11476 + 4) ) = var←c15424; }; SOURCE(2777, 17) rem←v11448 = (rem←v11448 - 64); SOURCE(2796, 17) dwp←v11476 = (dwp←v11476 + 8); goto lab←L100031; lab←L100029: ; SOURCE(2824, 185) if ((rem←v11448 >= 32)) { SOURCE(2845, 130) SOURCE(2917, 22) (* (ptr) dwp←v11476 ) = (word) XRM←BITOR((* (ptr) dwp←v11476 ), sw←v5144); SOURCE(2977, 15) rem←v11448 = (rem←v11448 - 32); SOURCE(2994, 15) dwp←v11476 = (dwp←v11476 + 4); }; SOURCE(3014, 359) if ((rem←v11448 != 0)) { { word mask←v11620; word dw←v11648; mask←v11620 = (word) XRM←BITRSHIFT( (word) -1, rem←v11448); dw←v11648 = (* (ptr) dwp←v11476 ); SOURCE(3089, 284) SOURCE(3241, 61) { word var←c15456; { /*1*/ word var←c15488; /*1*/ word var←c15520; /*1*/ word var←c0322; /*1*/ var←c15488 = (word) XRM←BITOR(dw←v11648, sw←v5144); /*1*/ var←c15520 = (word) XRM←BITNOT(mask←v11620); /*1*/ var←c0322 = (word) XRM←BITAND(var←c15488, var←c15520); /*1*/ var←c15456 = ((word) XRM←BITAND(dw←v11648, mask←v11620) + var←c0322); /*1*/ }; (* (ptr) dwp←v11476 ) = var←c15456; }; }; }; }; goto lab←L100032; lab←L100028: ; lab←L100032: ; SOURCE(3900, 18) if ((sSize←v5116 == 1)) { SOURCE(3918, 4) goto lab←L100023; }; SOURCE(3924, 17) sSize←v5116 = (sSize←v5116 - 1); SOURCE(3943, 9) { word next←v11692; next←v11692 = (dstBit←v5004 + (* (( (ptr) arg←v3588)+2) )); SOURCE(3466, 21) dstBit←v5004 = (next←v11692 & 037); SOURCE(3489, 34) dst←v4976 = (dst←v4976 + ((next←v11692 - dstBit←v5004) >> 3)); }; SOURCE(3954, 9) { word next←v11736; next←v11736 = (srcBit←v4920 + srcBpl←v4892); SOURCE(3582, 21) srcBit←v4920 = (next←v11736 & 037); SOURCE(3605, 34) src←v4948 = (src←v4948 + ((next←v11736 - srcBit←v4920) >> 3)); SOURCE(3641, 21) tileLine←v4836 = (tileLine←v4836 + 1); SOURCE(3664, 149) if ((tileLine←v4836 == sSizeTile←v5088)) { SOURCE(3695, 64) firstBit←v4864 = (word) XRM←BITAND((firstBit←v4864 + (fSizeTile←v5060 - (* (( (ptr) arg←v3588)+12) ))), (fSizeTile←v5060 - 1)) ; SOURCE(3761, 12) tileLine←v4836 = 0; SOURCE(3775, 19) srcBit←v4920 = (* (( (ptr) arg←v3588)+6) ); SOURCE(3796, 17) src←v4948 = (* (( (ptr) arg←v3588)+5) ); }; }; goto lab←L100024; lab←L100023: ; break; default: SOURCE(4303, 17) SOURCE(3865, 98) lab←L100035: ; SOURCE(3868, 13) { word k←v10940; k←v10940 = fSizeTile←v5060; SOURCE(1414, 25) sw←v5144 = (word) XRM←BITXOR((* (ptr) src←v4948 ), invert←v5172); SOURCE(1441, 131) if ((srcBit←v4920 != 0)) { SOURCE(1462, 26) sw←v5144 = (word) XRM←BITLSHIFT(sw←v5144, srcBit←v4920); SOURCE(1490, 82) if (((srcBit←v4920 + k←v10940) > 32)) { SOURCE(1513, 59) { word var←c15552; word var←c0323; var←c15552 = (word) XRM←BITXOR((* (ptr) (src←v4948 + 4) ), invert←v5172); var←c0323 = (word) XRM←BITRSHIFT(var←c15552, (32 - srcBit←v4920)); sw←v5144 = (sw←v5144 + var←c0323); }; }; }; SOURCE(1577, 122) if ((k←v10940 < 32)) { SOURCE(1595, 44) { word var←c15584; var←c15584 = (word) XRM←BITLSHIFT( (word) -1, (32 - k←v10940)); sw←v5144 = (word) XRM←BITAND(sw←v5144, var←c15584); }; SOURCE(1641, 58) lab←L100038: ; SOURCE(1644, 26) sw←v5144 = (sw←v5144 + (word) XRM←BITRSHIFT(sw←v5144, k←v10940)); SOURCE(1672, 9) k←v10940 = (k←v10940 + k←v10940); SOURCE(1683, 16) if ((k←v10940 == 32)) { SOURCE(1699, 4) goto lab←L100037; }; goto lab←L100038; lab←L100037: ; }; SOURCE(1717, 79) if ((firstBit←v4864 != 0)) { SOURCE(1738, 58) sw←v5144 = ((word) XRM←BITLSHIFT(sw←v5144, firstBit←v4864) + (word) XRM←BITRSHIFT(sw←v5144, (32 - firstBit←v4864))); }; }; SOURCE(3883, 15) SOURCE(1842, 1563) { word rem←v11028; word dwp←v11056; rem←v11028 = fSize←v5032; dwp←v11056 = dst←v4976; SOURCE(1882, 596) if ((dstBit←v5004 != 0)) { { word dw←v11100; word mask←v11128; word rw←v11156; dw←v11100 = (* (ptr) dwp←v11056 ); mask←v11128 = (word) XRM←BITRSHIFT( (word) -1, dstBit←v5004); rw←v11156 = (word) XRM←BITRSHIFT(sw←v5144, dstBit←v5004); SOURCE(1997, 18) rem←v11028 = (rem←v11028 + dstBit←v5004); SOURCE(2017, 64) if ((rem←v11028 < 32)) { SOURCE(2035, 46) { /*1*/ word var←c15616; /*1*/ var←c15616 = (word) XRM←BITRSHIFT( (word) -1, rem←v11028); /*1*/ mask←v11128 = (word) XRM←BITXOR(mask←v11128, var←c15616); /*1*/ }; }; SOURCE(2083, 284) SOURCE(2305, 62) { word var←c15648; { /*1*/ word var←c15680; /*1*/ word var←c0324; /*1*/ word var←c15712; /*1*/ var←c15680 = (word) XRM←BITNOT(mask←v11128); /*1*/ var←c0324 = (word) XRM←BITAND(dw←v11100, var←c15680); /*1*/ var←c15712 = (word) XRM←BITXOR(dw←v11100, rw←v11156); /*1*/ var←c15648 = (var←c0324 + (word) XRM←BITAND(var←c15712, mask←v11128)); /*1*/ }; (* (ptr) dwp←v11056 ) = var←c15648; }; SOURCE(2378, 19) if ((rem←v11028 <= 32)) { SOURCE(2397, 10) goto lab←L100039; }; SOURCE(2409, 35) sw←v5144 = ((word) XRM←BITLSHIFT(sw←v5144, (32 - dstBit←v5004)) + rw←v11156); SOURCE(2446, 15) rem←v11028 = (rem←v11028 - 32); SOURCE(2463, 15) dwp←v11056 = (dwp←v11056 + 4); }; }; SOURCE(2483, 330) lab←L100042: ; if ((rem←v11028 >= 64)) { } else { goto lab←L100040; }; SOURCE(2505, 260) SOURCE(2705, 23) (* (ptr) dwp←v11056 ) = (word) XRM←BITXOR((* (ptr) dwp←v11056 ), sw←v5144); SOURCE(2730, 35) { word var←c15744; var←c15744 = (word) XRM←BITXOR((* (ptr) (dwp←v11056 + 4) ), sw←v5144); (* (ptr) (dwp←v11056 + 4) ) = var←c15744; }; SOURCE(2777, 17) rem←v11028 = (rem←v11028 - 64); SOURCE(2796, 17) dwp←v11056 = (dwp←v11056 + 8); goto lab←L100042; lab←L100040: ; SOURCE(2824, 185) if ((rem←v11028 >= 32)) { SOURCE(2845, 130) SOURCE(2952, 23) (* (ptr) dwp←v11056 ) = (word) XRM←BITXOR((* (ptr) dwp←v11056 ), sw←v5144); SOURCE(2977, 15) rem←v11028 = (rem←v11028 - 32); SOURCE(2994, 15) dwp←v11056 = (dwp←v11056 + 4); }; SOURCE(3014, 359) if ((rem←v11028 != 0)) { { word mask←v11200; word dw←v11228; mask←v11200 = (word) XRM←BITRSHIFT( (word) -1, rem←v11028); dw←v11228 = (* (ptr) dwp←v11056 ); SOURCE(3089, 284) SOURCE(3311, 62) { word var←c15776; { /*1*/ word var←c15808; /*1*/ word var←c15840; /*1*/ word var←c0325; /*1*/ var←c15808 = (word) XRM←BITXOR(dw←v11228, sw←v5144); /*1*/ var←c15840 = (word) XRM←BITNOT(mask←v11200); /*1*/ var←c0325 = (word) XRM←BITAND(var←c15808, var←c15840); /*1*/ var←c15776 = ((word) XRM←BITAND(dw←v11228, mask←v11200) + var←c0325); /*1*/ }; (* (ptr) dwp←v11056 ) = var←c15776; }; }; }; }; goto lab←L100043; lab←L100039: ; lab←L100043: ; SOURCE(3900, 18) if ((sSize←v5116 == 1)) { SOURCE(3918, 4) goto lab←L100034; }; SOURCE(3924, 17) sSize←v5116 = (sSize←v5116 - 1); SOURCE(3943, 9) { word next←v11272; next←v11272 = (dstBit←v5004 + (* (( (ptr) arg←v3588)+2) )); SOURCE(3466, 21) dstBit←v5004 = (next←v11272 & 037); SOURCE(3489, 34) dst←v4976 = (dst←v4976 + ((next←v11272 - dstBit←v5004) >> 3)); }; SOURCE(3954, 9) { word next←v11316; next←v11316 = (srcBit←v4920 + srcBpl←v4892); SOURCE(3582, 21) srcBit←v4920 = (next←v11316 & 037); SOURCE(3605, 34) src←v4948 = (src←v4948 + ((next←v11316 - srcBit←v4920) >> 3)); SOURCE(3641, 21) tileLine←v4836 = (tileLine←v4836 + 1); SOURCE(3664, 149) if ((tileLine←v4836 == sSizeTile←v5088)) { SOURCE(3695, 64) firstBit←v4864 = (word) XRM←BITAND((firstBit←v4864 + (fSizeTile←v5060 - (* (( (ptr) arg←v3588)+12) ))), (fSizeTile←v5060 - 1)) ; SOURCE(3761, 12) tileLine←v4836 = 0; SOURCE(3775, 19) srcBit←v4920 = (* (( (ptr) arg←v3588)+6) ); SOURCE(3796, 17) src←v4948 = (* (( (ptr) arg←v3588)+5) ); }; }; goto lab←L100035; lab←L100034: ; break; }; }; }; } static void Fast2←P180(arg←v3648) word arg←v3648; { register ptr gf←c17184 = (ptr) &globalframe; word tileLine←v5932; word firstBit←v5960; word srcBit←v5988; word src←v6016; word dst←v6044; word dstBit←v6072; word fSizeTile←v6100; word tBits←v6128; word sSize←v6156; word invert←v6184; word df←v6212; word sw←v6240 = 0; /* Fast2: */ SOURCE(4329, 2386) SOURCE(5240, 29) tileLine←v5932 = (* (( (ptr) arg←v3648)+11) ); SOURCE(5271, 34) firstBit←v5960 = (* (( (ptr) arg←v3648)+10) ); SOURCE(5307, 30) srcBit←v5988 = (* (( (ptr) arg←v3648)+6) ); SOURCE(5339, 26) src←v6016 = (* (( (ptr) arg←v3648)+5) ); SOURCE(5367, 26) dst←v6044 = (* (ptr) arg←v3648 ); SOURCE(5395, 30) dstBit←v6072 = (* (( (ptr) arg←v3648)+1) ); SOURCE(5427, 30) fSizeTile←v6100 = (* (( (ptr) arg←v3648)+8) ); SOURCE(5459, 43) tBits←v6128 = (* ((( (ptr) gf←c17184)+37)/* replicatorBitsArray←v3168 */ +fSizeTile←v6100) ); SOURCE(5504, 22) sSize←v6156 = (* (( (ptr) arg←v3648)+4) ); SOURCE(5528, 28) invert←v6184 = (* (( (ptr) arg←v3648)+13) ); SOURCE(5558, 25) df←v6212 = (* (( (ptr) arg←v3648)+14) ); SOURCE(5638, 51) if ((fSizeTile←v6100 > 32)) { SOURCE(5675, 14) (void) BadAssertion←P660(); }; SOURCE(5691, 1024) if ( ( (sSize←v6156 != 0) ? ((* (( (ptr) arg←v3648)+3) ) != 0) : 0 ) ) { SOURCE(5729, 120) if ((tileLine←v5932 != 0)) { SOURCE(5750, 101) { word next←v6332; SOURCE(5752, 40) next←v6332 = (srcBit←v5988 + (tileLine←v5932 * (* (( (ptr) arg←v3648)+7) ))); SOURCE(5794, 21) srcBit←v5988 = (next←v6332 & 037); SOURCE(5817, 32) src←v6016 = (src←v6016 + ((next←v6332 - srcBit←v5988) >> 3)); }; }; SOURCE(5854, 861) lab←L100046: ; SOURCE(5854, 861) { word rem←v6376; word xBits←v6404; word dwp←v6432; word shift←v6460; word dShift←v6488; SOURCE(5857, 20) rem←v6376 = (* (( (ptr) arg←v3648)+3) ); SOURCE(5909, 23) xBits←v6404 = (32 - dstBit←v6072); SOURCE(5950, 18) dwp←v6432 = dst←v6044; SOURCE(5998, 21) shift←v6460 = firstBit←v5960; SOURCE(6021, 20) dShift←v6488 = dstBit←v6072; SOURCE(6523, 8) { word comp←v6760; comp←v6760 = (32 - fSizeTile←v6100); SOURCE(4915, 25) sw←v6240 = (word) XRM←BITXOR((* (ptr) src←v6016 ), invert←v6184); SOURCE(4942, 155) if ((srcBit←v5988 != 0)) { { word lim←v6788; lim←v6788 = (srcBit←v5988 + fSizeTile←v6100); SOURCE(4992, 26) sw←v6240 = (word) XRM←BITLSHIFT(sw←v6240, srcBit←v5988); SOURCE(5020, 77) if ((lim←v6788 > 32)) { SOURCE(5038, 59) { word var←c15872; word var←c0326; var←c15872 = (word) XRM←BITXOR((* (ptr) (src←v6016 + 4) ), invert←v6184); var←c0326 = (word) XRM←BITRSHIFT(var←c15872, (32 - srcBit←v5988)); sw←v6240 = (sw←v6240 + var←c0326); }; }; }; }; SOURCE(5102, 133) if ((fSizeTile←v6100 <= 16)) { SOURCE(5129, 63) sw←v6240 = ((word) XRM←BITRSHIFT(sw←v6240, comp←v6760) * (* ((( (ptr) gf←c17184)+4)/* replicatorMultArray←v3140 */ +fSizeTile←v6100) )); } else { SOURCE(5192, 43) { word var←c15904; var←c15904 = (word) XRM←BITLSHIFT( (word) -1, comp←v6760); sw←v6240 = (word) XRM←BITAND(sw←v6240, var←c15904); }; }; }; SOURCE(6533, 117) { word var←c15936; var←c15936 = df←v6212; switch (var←c15936) { case 0: SOURCE(6556, 17) SOURCE(6086, 423) lab←L100049: ; { word tw←v6620; word valid←v6648; tw←v6620 = (word) XRM←BITLSHIFT(sw←v6240, shift←v6460); valid←v6648 = (tBits←v6128 - shift←v6460); SOURCE(6150, 31) if ((rem←v6376 < xBits←v6404)) { SOURCE(6170, 11) xBits←v6404 = rem←v6376; }; SOURCE(6183, 76) lab←L100052: ; if ((valid←v6648 < xBits←v6404)) { } else { goto lab←L100050; }; SOURCE(6206, 30) tw←v6620 = ((word) XRM←BITRSHIFT(sw←v6240, valid←v6648) + tw←v6620); SOURCE(6238, 21) valid←v6648 = (valid←v6648 + tBits←v6128); goto lab←L100052; lab←L100050: ; SOURCE(6270, 42) { word dst←v13060; word dstMod←v13088; word w←v13116; word bits←v13144; dst←v13060 = dwp←v6432; dstMod←v13088 = dShift←v6488; w←v13116 = tw←v6620; bits←v13144 = xBits←v6404; if ((dstMod←v13088 != 0)) { { /*1*/ word dstLim←v13192; /*1*/ word mask←v13220; /*1*/ word dstW←v13248; /*1*/ word tw←v13276; /*1*/ dstLim←v13192 = (dstMod←v13088 + bits←v13144); /*1*/ mask←v13220 = (word) XRM←BITRSHIFT( (word) -1, dstMod←v13088); /*1*/ dstW←v13248 = (* (ptr) dst←v13060 ); /*1*/ tw←v13276 = (word) XRM←BITRSHIFT(w←v13116, dstMod←v13088); SOURCE(10307, 56) /*1*/ if ((dstLim←v13192 < 32)) { SOURCE(10328, 35) /*1*/ mask←v13220 = (mask←v13220 - (word) XRM←BITRSHIFT(mask←v13220, bits←v13144)); /*1*/ }; SOURCE(10484, 52) /*1*/ { /*1*/ word var←c15968; /*1*/ word var←c0327; /*1*/ var←c15968 = (word) XRM←BITNOT(mask←v13220); /*1*/ var←c0327 = (word) XRM←BITAND(dstW←v13248, var←c15968); /*1*/ (* (ptr) dst←v13060 ) = (var←c0327 + (word) XRM←BITAND(tw←v13276, mask←v13220)); /*1*/ }; SOURCE(10538, 295) /*1*/ if ((dstLim←v13192 > 32)) { SOURCE(10561, 43) /*1*/ mask←v13220 = (word) XRM←BITRSHIFT( (word) -1, (dstLim←v13192 & 037)); SOURCE(10606, 17) /*1*/ dstW←v13248 = (* (ptr) (dst←v13060 + 4) ); SOURCE(10625, 29) /*1*/ tw←v13276 = (word) XRM←BITLSHIFT(w←v13116, (32 - dstMod←v13088)); SOURCE(10775, 58) /*1*/ { /*1*/ word var←c16000; /*1*/ word var←c0328; /*1*/ var←c16000 = (word) XRM←BITNOT(mask←v13220); /*1*/ var←c0328 = (word) XRM←BITAND(tw←v13276, var←c16000); /*1*/ (* (ptr) (dst←v13060 + 4) ) = (var←c0328 + (word) XRM←BITAND(dstW←v13248, mask←v13220)); /*1*/ }; /*1*/ }; /*1*/ }; } else { if ((bits←v13144 != 32)) { /*1*/ { /*1*/ word mask←v13320; /*1*/ word dstW←v13348; /*1*/ word tw←v13376; /*1*/ mask←v13320 = (word) XRM←BITRSHIFT( (word) -1, bits←v13144); /*1*/ dstW←v13348 = (* (ptr) dst←v13060 ); /*1*/ tw←v13376 = w←v13116; SOURCE(11050, 52) /*1*/ { /*1*/ word var←c16032; /*1*/ word var←c0329; /*1*/ var←c16032 = (word) XRM←BITNOT(mask←v13320); /*1*/ var←c0329 = (word) XRM←BITAND(tw←v13376, var←c16032); /*1*/ (* (ptr) dst←v13060 ) = ((word) XRM←BITAND(dstW←v13348, mask←v13320) + var←c0329); /*1*/ }; /*1*/ }; /*1*/ } else { SOURCE(11118, 126) SOURCE(11141, 8) /*1*/ (* (ptr) dst←v13060 ) = w←v13116; /*1*/ }; }; }; SOURCE(6314, 20) if ((rem←v6376 == xBits←v6404)) { SOURCE(6334, 4) goto lab←L100048; }; SOURCE(6340, 21) shift←v6460 = (shift←v6460 + xBits←v6404); SOURCE(6363, 45) lab←L100055: ; if ((shift←v6460 >= tBits←v6128)) { } else { goto lab←L100053; }; SOURCE(6387, 21) shift←v6460 = (shift←v6460 - tBits←v6128); goto lab←L100055; lab←L100053: ; SOURCE(6419, 15) dwp←v6432 = (dwp←v6432 + 4); SOURCE(6436, 10) dShift←v6488 = 0; SOURCE(6448, 17) rem←v6376 = (rem←v6376 - xBits←v6404); SOURCE(6467, 11) xBits←v6404 = 32; SOURCE(6480, 29) if ((rem←v6376 < 32)) { SOURCE(6498, 11) xBits←v6404 = rem←v6376; }; }; goto lab←L100049; lab←L100048: ; break; case 1: SOURCE(6582, 16) SOURCE(6086, 423) lab←L100058: ; { word tw←v12536; word valid←v12564; tw←v12536 = (word) XRM←BITLSHIFT(sw←v6240, shift←v6460); valid←v12564 = (tBits←v6128 - shift←v6460); SOURCE(6150, 31) if ((rem←v6376 < xBits←v6404)) { SOURCE(6170, 11) xBits←v6404 = rem←v6376; }; SOURCE(6183, 76) lab←L100061: ; if ((valid←v12564 < xBits←v6404)) { } else { goto lab←L100059; }; SOURCE(6206, 30) tw←v12536 = ((word) XRM←BITRSHIFT(sw←v6240, valid←v12564) + tw←v12536); SOURCE(6238, 21) valid←v12564 = (valid←v12564 + tBits←v6128); goto lab←L100061; lab←L100059: ; SOURCE(6270, 42) { word dst←v14140; word dstMod←v14168; word w←v14196; word bits←v14224; dst←v14140 = dwp←v6432; dstMod←v14168 = dShift←v6488; w←v14196 = tw←v12536; bits←v14224 = xBits←v6404; if ((dstMod←v14168 != 0)) { { /*1*/ word dstLim←v7644; /*1*/ word mask←v7672; /*1*/ word dstW←v7700; /*1*/ word tw←v7728; /*1*/ dstLim←v7644 = (dstMod←v14168 + bits←v14224); /*1*/ mask←v7672 = (word) XRM←BITRSHIFT( (word) -1, dstMod←v14168); /*1*/ dstW←v7700 = (* (ptr) dst←v14140 ); /*1*/ tw←v7728 = (word) XRM←BITRSHIFT(w←v14196, dstMod←v14168); SOURCE(10307, 56) /*1*/ if ((dstLim←v7644 < 32)) { SOURCE(10328, 35) /*1*/ mask←v7672 = (mask←v7672 - (word) XRM←BITRSHIFT(mask←v7672, bits←v14224)); /*1*/ }; SOURCE(10365, 117) SOURCE(10399, 21) /*1*/ tw←v7728 = (word) XRM←BITAND(dstW←v7700, tw←v7728); SOURCE(10484, 52) /*1*/ { /*1*/ word var←c16064; /*1*/ word var←c0330; /*1*/ var←c16064 = (word) XRM←BITNOT(mask←v7672); /*1*/ var←c0330 = (word) XRM←BITAND(dstW←v7700, var←c16064); /*1*/ (* (ptr) dst←v14140 ) = (var←c0330 + (word) XRM←BITAND(tw←v7728, mask←v7672)); /*1*/ }; SOURCE(10538, 295) /*1*/ if ((dstLim←v7644 > 32)) { SOURCE(10561, 43) /*1*/ mask←v7672 = (word) XRM←BITRSHIFT( (word) -1, (dstLim←v7644 & 037)); SOURCE(10606, 17) /*1*/ dstW←v7700 = (* (ptr) (dst←v14140 + 4) ); SOURCE(10625, 29) /*1*/ tw←v7728 = (word) XRM←BITLSHIFT(w←v14196, (32 - dstMod←v14168)); SOURCE(10656, 117) SOURCE(10690, 21) /*1*/ tw←v7728 = (word) XRM←BITAND(dstW←v7700, tw←v7728); SOURCE(10775, 58) /*1*/ { /*1*/ word var←c16096; /*1*/ word var←c0331; /*1*/ var←c16096 = (word) XRM←BITNOT(mask←v7672); /*1*/ var←c0331 = (word) XRM←BITAND(tw←v7728, var←c16096); /*1*/ (* (ptr) (dst←v14140 + 4) ) = (var←c0331 + (word) XRM←BITAND(dstW←v7700, mask←v7672)); /*1*/ }; /*1*/ }; /*1*/ }; } else { if ((bits←v14224 != 32)) { /*1*/ { /*1*/ word mask←v7756; /*1*/ word dstW←v7784; /*1*/ word tw←v7812; /*1*/ mask←v7756 = (word) XRM←BITRSHIFT( (word) -1, bits←v14224); /*1*/ dstW←v7784 = (* (ptr) dst←v14140 ); /*1*/ tw←v7812 = w←v14196; SOURCE(10931, 117) SOURCE(10965, 21) /*1*/ tw←v7812 = (word) XRM←BITAND(dstW←v7784, tw←v7812); SOURCE(11050, 52) /*1*/ { /*1*/ word var←c16128; /*1*/ word var←c0332; /*1*/ var←c16128 = (word) XRM←BITNOT(mask←v7756); /*1*/ var←c0332 = (word) XRM←BITAND(tw←v7812, var←c16128); /*1*/ (* (ptr) dst←v14140 ) = ((word) XRM←BITAND(dstW←v7784, mask←v7756) + var←c0332); /*1*/ }; /*1*/ }; /*1*/ } else { SOURCE(11118, 126) SOURCE(11158, 22) /*1*/ (* (ptr) dst←v14140 ) = (word) XRM←BITAND((* (ptr) dst←v14140 ), w←v14196); /*1*/ }; }; }; SOURCE(6314, 20) if ((rem←v6376 == xBits←v6404)) { SOURCE(6334, 4) goto lab←L100057; }; SOURCE(6340, 21) shift←v6460 = (shift←v6460 + xBits←v6404); SOURCE(6363, 45) lab←L100064: ; if ((shift←v6460 >= tBits←v6128)) { } else { goto lab←L100062; }; SOURCE(6387, 21) shift←v6460 = (shift←v6460 - tBits←v6128); goto lab←L100064; lab←L100062: ; SOURCE(6419, 15) dwp←v6432 = (dwp←v6432 + 4); SOURCE(6436, 10) dShift←v6488 = 0; SOURCE(6448, 17) rem←v6376 = (rem←v6376 - xBits←v6404); SOURCE(6467, 11) xBits←v6404 = 32; SOURCE(6480, 29) if ((rem←v6376 < 32)) { SOURCE(6498, 11) xBits←v6404 = rem←v6376; }; }; goto lab←L100058; lab←L100057: ; break; case 2: SOURCE(6606, 15) SOURCE(6086, 423) lab←L100067: ; { word tw←v12464; word valid←v12492; tw←v12464 = (word) XRM←BITLSHIFT(sw←v6240, shift←v6460); valid←v12492 = (tBits←v6128 - shift←v6460); SOURCE(6150, 31) if ((rem←v6376 < xBits←v6404)) { SOURCE(6170, 11) xBits←v6404 = rem←v6376; }; SOURCE(6183, 76) lab←L100070: ; if ((valid←v12492 < xBits←v6404)) { } else { goto lab←L100068; }; SOURCE(6206, 30) tw←v12464 = ((word) XRM←BITRSHIFT(sw←v6240, valid←v12492) + tw←v12464); SOURCE(6238, 21) valid←v12492 = (valid←v12492 + tBits←v6128); goto lab←L100070; lab←L100068: ; SOURCE(6270, 42) { word dst←v13780; word dstMod←v13808; word w←v13836; word bits←v13864; dst←v13780 = dwp←v6432; dstMod←v13808 = dShift←v6488; w←v13836 = tw←v12464; bits←v13864 = xBits←v6404; if ((dstMod←v13808 != 0)) { { /*1*/ word dstLim←v13912; /*1*/ word mask←v13940; /*1*/ word dstW←v13968; /*1*/ word tw←v13996; /*1*/ dstLim←v13912 = (dstMod←v13808 + bits←v13864); /*1*/ mask←v13940 = (word) XRM←BITRSHIFT( (word) -1, dstMod←v13808); /*1*/ dstW←v13968 = (* (ptr) dst←v13780 ); /*1*/ tw←v13996 = (word) XRM←BITRSHIFT(w←v13836, dstMod←v13808); SOURCE(10307, 56) /*1*/ if ((dstLim←v13912 < 32)) { SOURCE(10328, 35) /*1*/ mask←v13940 = (mask←v13940 - (word) XRM←BITRSHIFT(mask←v13940, bits←v13864)); /*1*/ }; SOURCE(10365, 117) SOURCE(10428, 20) /*1*/ tw←v13996 = (word) XRM←BITOR(dstW←v13968, tw←v13996); SOURCE(10484, 52) /*1*/ { /*1*/ word var←c16160; /*1*/ word var←c0333; /*1*/ var←c16160 = (word) XRM←BITNOT(mask←v13940); /*1*/ var←c0333 = (word) XRM←BITAND(dstW←v13968, var←c16160); /*1*/ (* (ptr) dst←v13780 ) = (var←c0333 + (word) XRM←BITAND(tw←v13996, mask←v13940)); /*1*/ }; SOURCE(10538, 295) /*1*/ if ((dstLim←v13912 > 32)) { SOURCE(10561, 43) /*1*/ mask←v13940 = (word) XRM←BITRSHIFT( (word) -1, (dstLim←v13912 & 037)); SOURCE(10606, 17) /*1*/ dstW←v13968 = (* (ptr) (dst←v13780 + 4) ); SOURCE(10625, 29) /*1*/ tw←v13996 = (word) XRM←BITLSHIFT(w←v13836, (32 - dstMod←v13808)); SOURCE(10656, 117) SOURCE(10719, 20) /*1*/ tw←v13996 = (word) XRM←BITOR(dstW←v13968, tw←v13996); SOURCE(10775, 58) /*1*/ { /*1*/ word var←c16192; /*1*/ word var←c0334; /*1*/ var←c16192 = (word) XRM←BITNOT(mask←v13940); /*1*/ var←c0334 = (word) XRM←BITAND(tw←v13996, var←c16192); /*1*/ (* (ptr) (dst←v13780 + 4) ) = (var←c0334 + (word) XRM←BITAND(dstW←v13968, mask←v13940)); /*1*/ }; /*1*/ }; /*1*/ }; } else { if ((bits←v13864 != 32)) { /*1*/ { /*1*/ word mask←v14040; /*1*/ word dstW←v14068; /*1*/ word tw←v14096; /*1*/ mask←v14040 = (word) XRM←BITRSHIFT( (word) -1, bits←v13864); /*1*/ dstW←v14068 = (* (ptr) dst←v13780 ); /*1*/ tw←v14096 = w←v13836; SOURCE(10931, 117) SOURCE(10994, 20) /*1*/ tw←v14096 = (word) XRM←BITOR(dstW←v14068, tw←v14096); SOURCE(11050, 52) /*1*/ { /*1*/ word var←c16224; /*1*/ word var←c0335; /*1*/ var←c16224 = (word) XRM←BITNOT(mask←v14040); /*1*/ var←c0335 = (word) XRM←BITAND(tw←v14096, var←c16224); /*1*/ (* (ptr) dst←v13780 ) = ((word) XRM←BITAND(dstW←v14068, mask←v14040) + var←c0335); /*1*/ }; /*1*/ }; /*1*/ } else { SOURCE(11118, 126) SOURCE(11188, 21) /*1*/ (* (ptr) dst←v13780 ) = (word) XRM←BITOR((* (ptr) dst←v13780 ), w←v13836); /*1*/ }; }; }; SOURCE(6314, 20) if ((rem←v6376 == xBits←v6404)) { SOURCE(6334, 4) goto lab←L100066; }; SOURCE(6340, 21) shift←v6460 = (shift←v6460 + xBits←v6404); SOURCE(6363, 45) lab←L100073: ; if ((shift←v6460 >= tBits←v6128)) { } else { goto lab←L100071; }; SOURCE(6387, 21) shift←v6460 = (shift←v6460 - tBits←v6128); goto lab←L100073; lab←L100071: ; SOURCE(6419, 15) dwp←v6432 = (dwp←v6432 + 4); SOURCE(6436, 10) dShift←v6488 = 0; SOURCE(6448, 17) rem←v6376 = (rem←v6376 - xBits←v6404); SOURCE(6467, 11) xBits←v6404 = 32; SOURCE(6480, 29) if ((rem←v6376 < 32)) { SOURCE(6498, 11) xBits←v6404 = rem←v6376; }; }; goto lab←L100067; lab←L100066: ; break; default: SOURCE(6634, 16) SOURCE(6086, 423) lab←L100076: ; { word tw←v12392; word valid←v12420; tw←v12392 = (word) XRM←BITLSHIFT(sw←v6240, shift←v6460); valid←v12420 = (tBits←v6128 - shift←v6460); SOURCE(6150, 31) if ((rem←v6376 < xBits←v6404)) { SOURCE(6170, 11) xBits←v6404 = rem←v6376; }; SOURCE(6183, 76) lab←L100079: ; if ((valid←v12420 < xBits←v6404)) { } else { goto lab←L100077; }; SOURCE(6206, 30) tw←v12392 = ((word) XRM←BITRSHIFT(sw←v6240, valid←v12420) + tw←v12392); SOURCE(6238, 21) valid←v12420 = (valid←v12420 + tBits←v6128); goto lab←L100079; lab←L100077: ; SOURCE(6270, 42) { word dst←v13420; word dstMod←v13448; word w←v13476; word bits←v13504; dst←v13420 = dwp←v6432; dstMod←v13448 = dShift←v6488; w←v13476 = tw←v12392; bits←v13504 = xBits←v6404; if ((dstMod←v13448 != 0)) { { /*1*/ word dstLim←v13552; /*1*/ word mask←v13580; /*1*/ word dstW←v13608; /*1*/ word tw←v13636; /*1*/ dstLim←v13552 = (dstMod←v13448 + bits←v13504); /*1*/ mask←v13580 = (word) XRM←BITRSHIFT( (word) -1, dstMod←v13448); /*1*/ dstW←v13608 = (* (ptr) dst←v13420 ); /*1*/ tw←v13636 = (word) XRM←BITRSHIFT(w←v13476, dstMod←v13448); SOURCE(10307, 56) /*1*/ if ((dstLim←v13552 < 32)) { SOURCE(10328, 35) /*1*/ mask←v13580 = (mask←v13580 - (word) XRM←BITRSHIFT(mask←v13580, bits←v13504)); /*1*/ }; SOURCE(10365, 117) SOURCE(10461, 21) /*1*/ tw←v13636 = (word) XRM←BITXOR(dstW←v13608, tw←v13636); SOURCE(10484, 52) /*1*/ { /*1*/ word var←c16256; /*1*/ word var←c0336; /*1*/ var←c16256 = (word) XRM←BITNOT(mask←v13580); /*1*/ var←c0336 = (word) XRM←BITAND(dstW←v13608, var←c16256); /*1*/ (* (ptr) dst←v13420 ) = (var←c0336 + (word) XRM←BITAND(tw←v13636, mask←v13580)); /*1*/ }; SOURCE(10538, 295) /*1*/ if ((dstLim←v13552 > 32)) { SOURCE(10561, 43) /*1*/ mask←v13580 = (word) XRM←BITRSHIFT( (word) -1, (dstLim←v13552 & 037)); SOURCE(10606, 17) /*1*/ dstW←v13608 = (* (ptr) (dst←v13420 + 4) ); SOURCE(10625, 29) /*1*/ tw←v13636 = (word) XRM←BITLSHIFT(w←v13476, (32 - dstMod←v13448)); SOURCE(10656, 117) SOURCE(10752, 21) /*1*/ tw←v13636 = (word) XRM←BITXOR(dstW←v13608, tw←v13636); SOURCE(10775, 58) /*1*/ { /*1*/ word var←c16288; /*1*/ word var←c0337; /*1*/ var←c16288 = (word) XRM←BITNOT(mask←v13580); /*1*/ var←c0337 = (word) XRM←BITAND(tw←v13636, var←c16288); /*1*/ (* (ptr) (dst←v13420 + 4) ) = (var←c0337 + (word) XRM←BITAND(dstW←v13608, mask←v13580)); /*1*/ }; /*1*/ }; /*1*/ }; } else { if ((bits←v13504 != 32)) { /*1*/ { /*1*/ word mask←v13680; /*1*/ word dstW←v13708; /*1*/ word tw←v13736; /*1*/ mask←v13680 = (word) XRM←BITRSHIFT( (word) -1, bits←v13504); /*1*/ dstW←v13708 = (* (ptr) dst←v13420 ); /*1*/ tw←v13736 = w←v13476; SOURCE(10931, 117) SOURCE(11027, 21) /*1*/ tw←v13736 = (word) XRM←BITXOR(dstW←v13708, tw←v13736); SOURCE(11050, 52) /*1*/ { /*1*/ word var←c16320; /*1*/ word var←c0338; /*1*/ var←c16320 = (word) XRM←BITNOT(mask←v13680); /*1*/ var←c0338 = (word) XRM←BITAND(tw←v13736, var←c16320); /*1*/ (* (ptr) dst←v13420 ) = ((word) XRM←BITAND(dstW←v13708, mask←v13680) + var←c0338); /*1*/ }; /*1*/ }; /*1*/ } else { SOURCE(11118, 126) SOURCE(11222, 22) /*1*/ (* (ptr) dst←v13420 ) = (word) XRM←BITXOR((* (ptr) dst←v13420 ), w←v13476); /*1*/ }; }; }; SOURCE(6314, 20) if ((rem←v6376 == xBits←v6404)) { SOURCE(6334, 4) goto lab←L100075; }; SOURCE(6340, 21) shift←v6460 = (shift←v6460 + xBits←v6404); SOURCE(6363, 45) lab←L100082: ; if ((shift←v6460 >= tBits←v6128)) { } else { goto lab←L100080; }; SOURCE(6387, 21) shift←v6460 = (shift←v6460 - tBits←v6128); goto lab←L100082; lab←L100080: ; SOURCE(6419, 15) dwp←v6432 = (dwp←v6432 + 4); SOURCE(6436, 10) dShift←v6488 = 0; SOURCE(6448, 17) rem←v6376 = (rem←v6376 - xBits←v6404); SOURCE(6467, 11) xBits←v6404 = 32; SOURCE(6480, 29) if ((rem←v6376 < 32)) { SOURCE(6498, 11) xBits←v6404 = rem←v6376; }; }; goto lab←L100076; lab←L100075: ; break; }; }; SOURCE(6652, 18) if ((sSize←v6156 == 1)) { SOURCE(6670, 4) goto lab←L100045; }; SOURCE(6676, 17) sSize←v6156 = (sSize←v6156 - 1); SOURCE(6695, 9) { word next←v6704; next←v6704 = (srcBit←v5988 + (* (( (ptr) arg←v3648)+7) )); SOURCE(4558, 21) srcBit←v5988 = (next←v6704 & 037); SOURCE(4581, 34) src←v6016 = (src←v6016 + ((next←v6704 - srcBit←v5988) >> 3)); SOURCE(4617, 21) tileLine←v5932 = (tileLine←v5932 + 1); SOURCE(4640, 210) if ((tileLine←v5932 == (* (( (ptr) arg←v3648)+9) ))) { { word phase←v6732; phase←v6732 = (* (( (ptr) arg←v3648)+12) ); SOURCE(4699, 97) if ((firstBit←v5960 < phase←v6732)) { SOURCE(4724, 45) firstBit←v5960 = (firstBit←v5960 + (fSizeTile←v6100 - phase←v6732)); } else { SOURCE(4769, 27) firstBit←v5960 = (firstBit←v5960 - phase←v6732); }; SOURCE(4798, 12) tileLine←v5932 = 0; SOURCE(4812, 19) srcBit←v5988 = (* (( (ptr) arg←v3648)+6) ); SOURCE(4833, 17) src←v6016 = (* (( (ptr) arg←v3648)+5) ); }; }; }; SOURCE(6706, 9) { word next←v6676; next←v6676 = (dstBit←v6072 + (* (( (ptr) arg←v3648)+2) )); SOURCE(4438, 21) dstBit←v6072 = (next←v6676 & 037); SOURCE(4461, 34) dst←v6044 = (dst←v6044 + ((next←v6676 - dstBit←v6072) >> 3)); }; }; goto lab←L100046; lab←L100045: ; }; } static void Fast3←P240(arg←v3708) word arg←v3708; { word tileLine←v6872; word firstBit←v6900; word srcBit←v6928; word src←v6956; word dst←v6984; word dstBit←v7012; word fSizeTile←v7040; word sSize←v7068; /* Fast3: */ SOURCE(6733, 1027) SOURCE(7245, 29) tileLine←v6872 = (* (( (ptr) arg←v3708)+11) ); SOURCE(7276, 28) firstBit←v6900 = (* (( (ptr) arg←v3708)+10) ); SOURCE(7306, 30) srcBit←v6928 = (* (( (ptr) arg←v3708)+6) ); SOURCE(7338, 26) src←v6956 = (* (( (ptr) arg←v3708)+5) ); SOURCE(7366, 26) dst←v6984 = (* (ptr) arg←v3708 ); SOURCE(7394, 30) dstBit←v7012 = (* (( (ptr) arg←v3708)+1) ); SOURCE(7426, 30) fSizeTile←v7040 = (* (( (ptr) arg←v3708)+8) ); SOURCE(7458, 22) sSize←v7068 = (* (( (ptr) arg←v3708)+4) ); SOURCE(7482, 278) if ( ( (sSize←v7068 != 0) ? ((* (( (ptr) arg←v3708)+3) ) != 0) : 0 ) ) { SOURCE(7520, 120) if ((tileLine←v6872 != 0)) { SOURCE(7541, 101) { word next←v7144; SOURCE(7543, 40) next←v7144 = (srcBit←v6928 + (tileLine←v6872 * (* (( (ptr) arg←v3708)+7) ))); SOURCE(7585, 21) srcBit←v6928 = (next←v7144 & 037); SOURCE(7608, 32) src←v6956 = (src←v6956 + ((next←v7144 - srcBit←v6928) >> 3)); }; }; SOURCE(7645, 115) lab←L100085: ; SOURCE(7648, 47) (void) DoLine←P300(arg←v3708, dst←v6984, dstBit←v7012, src←v6956, srcBit←v6928, firstBit←v6900); SOURCE(7697, 18) if ((sSize←v7068 == 1)) { SOURCE(7715, 4) goto lab←L100084; }; SOURCE(7721, 17) sSize←v7068 = (sSize←v7068 - 1); SOURCE(7740, 9) { word next←v7216; next←v7216 = (srcBit←v6928 + (* (( (ptr) arg←v3708)+7) )); SOURCE(6945, 21) srcBit←v6928 = (next←v7216 & 037); SOURCE(6968, 34) src←v6956 = (src←v6956 + ((next←v7216 - srcBit←v6928) >> 3)); SOURCE(7004, 21) tileLine←v6872 = (tileLine←v6872 + 1); SOURCE(7027, 210) if ((tileLine←v6872 == (* (( (ptr) arg←v3708)+9) ))) { { word phase←v7244; phase←v7244 = (* (( (ptr) arg←v3708)+12) ); SOURCE(7086, 97) if ((firstBit←v6900 < phase←v7244)) { SOURCE(7111, 45) firstBit←v6900 = (firstBit←v6900 + (fSizeTile←v7040 - phase←v7244)); } else { SOURCE(7156, 27) firstBit←v6900 = (firstBit←v6900 - phase←v7244); }; SOURCE(7185, 12) tileLine←v6872 = 0; SOURCE(7199, 19) srcBit←v6928 = (* (( (ptr) arg←v3708)+6) ); SOURCE(7220, 17) src←v6956 = (* (( (ptr) arg←v3708)+5) ); }; }; }; SOURCE(7751, 9) { word next←v7188; next←v7188 = (dstBit←v7012 + (* (( (ptr) arg←v3708)+2) )); SOURCE(6825, 21) dstBit←v7012 = (next←v7188 & 037); SOURCE(6848, 34) dst←v6984 = (dst←v6984 + ((next←v7188 - dstBit←v7012) >> 3)); }; goto lab←L100085; lab←L100084: ; }; } static void DoLine←P300(arg←v3768, formal←c0347, formal←c0348, formal←c0349, formal←c0350, firstBit←v3908) word arg←v3768; word formal←c0347; word formal←c0348; word formal←c0349; word formal←c0350; word firstBit←v3908; { W16 var←c17216; /* declaration of dwp←v3796 skipped */ /* declaration of dstPos←v3824 skipped */ /* declaration of src←v3852 skipped */ /* declaration of srcBit←v3880 skipped */ /* declaration of var←c16352 skipped */ /* declaration of invert←v7272 skipped */ /* declaration of dstRem←v7300 skipped */ /* declaration of fSizeTile←v7328 skipped */ /* declaration of srcRem←v7356 skipped */ /* declaration of srcPos←v7384 skipped */ /* declaration of swp←v7412 skipped */ (* (( (ptr) &var←c17216)+4)/* dwp←v3796 */ ) = formal←c0347; (* (( (ptr) &var←c17216)+5)/* dstPos←v3824 */ ) = formal←c0348; (* (( (ptr) &var←c17216)+6)/* src←v3852 */ ) = formal←c0349; (* (( (ptr) &var←c17216)+7)/* srcBit←v3880 */ ) = formal←c0350; /* DoLine: */ SOURCE(7778, 2057) { word tmpAddr3; tmpAddr3 = (word) (( (ptr) &var←c17216)+8)/* var←c16352 */ ; (* (ptr) tmpAddr3 ) = ( ((word) (fPt) WithFunction←P1968) ); (* (( (ptr) tmpAddr3) + 1) ) = 1; }; SOURCE(7887, 28) (* (( (ptr) &var←c17216)+10)/* invert←v7272 */ ) = (* (( (ptr) arg←v3768)+13) ); SOURCE(7917, 23) (* (( (ptr) &var←c17216)+11)/* dstRem←v7300 */ ) = (* (( (ptr) arg←v3768)+3) ); SOURCE(7942, 30) (* (( (ptr) &var←c17216)+12)/* fSizeTile←v7328 */ ) = (* (( (ptr) arg←v3768)+8) ); SOURCE(7974, 32) (* (( (ptr) &var←c17216)+13)/* srcRem←v7356 */ ) = ((* (( (ptr) &var←c17216)+12)/* fSizeTile←v7328 */ ) - firstBit←v3908); SOURCE(8008, 45) (* (( (ptr) &var←c17216)+14)/* srcPos←v7384 */ ) = ((firstBit←v3908 + (* (( (ptr) &var←c17216)+7)/* srcBit←v3880 */ )) & 037); SOURCE(8055, 58) (* (( (ptr) &var←c17216)+15)/* swp←v7412 */ ) = ((* (( (ptr) &var←c17216)+6)/* src←v3852 */ ) + (((firstBit←v3908 + (* ( ( (ptr) &var←c17216)+7)/* srcBit←v3880 */ )) - (* (( (ptr) &var←c17216)+14)/* srcPos←v7384 */ )) >> 3)); SOURCE(9705, 130) { word var←c16384; var←c16384 = (* (( (ptr) arg←v3768)+14) ); switch (var←c16384) { case 0: SOURCE(9737, 18) (void) WithFunction←P1968(0, (word) (( (bPt) &var←c17216)+32)/* var←c16352 */ ); break; case 1: SOURCE(9764, 17) (void) WithFunction←P1968(1, (word) (( (bPt) &var←c17216)+32)/* var←c16352 */ ); break; case 2: SOURCE(9789, 16) (void) WithFunction←P1968(2, (word) (( (bPt) &var←c17216)+32)/* var←c16352 */ ); break; default: SOURCE(9818, 17) (void) WithFunction←P1968(3, (word) (( (bPt) &var←c17216)+32)/* var←c16352 */ ); break; }; }; } static void WithFunction←P1968(df←v7516, formal←c17248) word df←v7516; word formal←c17248; { formal←c17248 = (formal←c17248 - 32); /* WithFunction: */ SOURCE(8115, 1576) SOURCE(8163, 1528) lab←L100088: ; SOURCE(8163, 1528) { word next←v7544; word sw←v7572; word xBits←v7600; SOURCE(8177, 31) sw←v7572 = (word) XRM←BITXOR((* (ptr) (* (( (ptr) formal←c17248)+15) ) ), (* (( (ptr) formal←c17248)+10) )); SOURCE(8210, 28) xBits←v7600 = (32 - (* (( (ptr) formal←c17248)+5) )); SOURCE(8240, 37) if (((* (( (ptr) formal←c17248)+11) ) < xBits←v7600)) { SOURCE(8263, 14) xBits←v7600 = (* (( (ptr) formal←c17248)+11) ); }; SOURCE(8280, 541) if (((* (( (ptr) formal←c17248)+13) ) < xBits←v7600)) { SOURCE(8305, 136) if (((* (( (ptr) formal←c17248)+14) ) != 0)) { SOURCE(8326, 26) sw←v7572 = (word) XRM←BITLSHIFT(sw←v7572, (* (( (ptr) formal←c17248)+14) )); SOURCE(8354, 87) if ((((* (( (ptr) formal←c17248)+14) ) + (* (( (ptr) formal←c17248)+13) )) > 32)) { SOURCE(8382, 59) { word var←c16416; word var←c0339; var←c16416 = (word) XRM←BITXOR((* (ptr) ((* (( (ptr) formal←c17248)+15) ) + 4) ), (* (( (ptr) formal←c17248)+10) )); var←c0339 = (word) XRM←BITRSHIFT(var←c16416, (32 - (* (( (ptr) formal←c17248)+14) ))); sw←v7572 = (sw←v7572 + var←c0339); }; }; }; SOURCE(8446, 110) { word var←c16448; word var←c0340; word var←c16480; var←c16448 = (word) XRM←BITLSHIFT( (word) -1, (32 - (* (( (ptr) formal←c17248)+13) ))); var←c0340 = (word) XRM←BITAND(sw←v7572, var←c16448); { word var←c16512; var←c16512 = (word) XRM←BITXOR((* (ptr) (* (( (ptr) formal←c17248)+6) ) ), (* (( (ptr) formal←c17248)+10) )); var←c16480 = (word) XRM←BITLSHIFT(var←c16512, (* (( (ptr) formal←c17248)+7) )); }; sw←v7572 = (var←c0340 + (word) XRM←BITRSHIFT(var←c16480, (* (( (ptr) formal←c17248)+13) ))); }; SOURCE(8558, 17) next←v7544 = (32 - (* (( (ptr) formal←c17248)+7) )); SOURCE(8577, 41) if (((* (( (ptr) formal←c17248)+12) ) < next←v7544)) { SOURCE(8602, 16) next←v7544 = (* (( (ptr) formal←c17248)+12) ); }; SOURCE(8620, 20) next←v7544 = ((* (( (ptr) formal←c17248)+13) ) + next←v7544); SOURCE(8642, 33) if ((next←v7544 < xBits←v7600)) { SOURCE(8663, 12) xBits←v7600 = next←v7544; }; } else { SOURCE(8686, 135) if (((* (( (ptr) formal←c17248)+14) ) != 0)) { SOURCE(8707, 26) sw←v7572 = (word) XRM←BITLSHIFT(sw←v7572, (* (( (ptr) formal←c17248)+14) )); SOURCE(8735, 86) if ((((* (( (ptr) formal←c17248)+14) ) + xBits←v7600) > 32)) { SOURCE(8762, 59) { word var←c16544; word var←c0341; var←c16544 = (word) XRM←BITXOR((* (ptr) ((* (( (ptr) formal←c17248)+15) ) + 4) ), (* (( (ptr) formal←c17248)+10) )); var←c0341 = (word) XRM←BITRSHIFT(var←c16544, (32 - (* (( (ptr) formal←c17248)+14) ))); sw←v7572 = (sw←v7572 + var←c0341); }; }; }; }; SOURCE(8830, 620) if ((xBits←v7600 == 32)) { SOURCE(8852, 130) { word var←c16576; var←c16576 = df←v7516; switch (var←c16576) { case 0: SOURCE(8875, 9) (* (ptr) (* (( (ptr) formal←c17248)+4) ) ) = sw←v7572; break; case 1: SOURCE(8893, 23) { word var←c16608; var←c16608 = (word) XRM←BITAND((* (ptr) (* (( (ptr) formal←c17248)+4) ) ), sw←v7572); (* (ptr) (* (( (ptr) formal←c17248)+4) ) ) = var←c16608; }; break; case 2: SOURCE(8924, 22) { word var←c16640; var←c16640 = (word) XRM←BITOR((* (ptr) (* (( (ptr) formal←c17248)+4) ) ), sw←v7572); (* (ptr) (* (( (ptr) formal←c17248)+4) ) ) = var←c16640; }; break; default: SOURCE(8959, 23) { word var←c16672; var←c16672 = (word) XRM←BITXOR((* (ptr) (* (( (ptr) formal←c17248)+4) ) ), sw←v7572); (* (ptr) (* (( (ptr) formal←c17248)+4) ) ) = var←c16672; }; break; }; }; SOURCE(8984, 23) if ((xBits←v7600 == (* (( (ptr) formal←c17248)+11) ))) { SOURCE(9007, 4) goto lab←L100087; }; SOURCE(9013, 15) (* (( (ptr) formal←c17248)+4) ) = ((* (( (ptr) formal←c17248)+4) ) + 4); SOURCE(9030, 23) (* (( (ptr) formal←c17248)+11) ) = ((* (( (ptr) formal←c17248)+11) ) - xBits←v7600); SOURCE(9055, 65) if (((* (( (ptr) formal←c17248)+13) ) > xBits←v7600)) { SOURCE(9080, 15) (* (( (ptr) formal←c17248)+15) ) = ((* (( (ptr) formal←c17248)+15) ) + 4); SOURCE(9097, 23) (* (( (ptr) formal←c17248)+13) ) = ((* (( (ptr) formal←c17248)+13) ) - xBits←v7600); SOURCE(9122, 4) goto lab←L100088; }; } else { SOURCE(9140, 42) { word dst←v12672; word dstMod←v12700; word w←v12728; word bits←v12756; word df←v12784; dst←v12672 = (* (( (ptr) formal←c17248)+4) ); dstMod←v12700 = (* (( (ptr) formal←c17248)+5) ); w←v12728 = sw←v7572; bits←v12756 = xBits←v7600; df←v12784 = df←v7516; if ((dstMod←v12700 != 0)) { { word dstLim←v12832; word mask←v12860; word dstW←v12888; word tw←v12916; dstLim←v12832 = (dstMod←v12700 + bits←v12756); mask←v12860 = (word) XRM←BITRSHIFT( (word) -1, dstMod←v12700); dstW←v12888 = (* (ptr) dst←v12672 ); tw←v12916 = (word) XRM←BITRSHIFT(w←v12728, dstMod←v12700); SOURCE(10307, 56) if ((dstLim←v12832 < 32)) { SOURCE(10328, 35) mask←v12860 = (mask←v12860 - (word) XRM←BITRSHIFT(mask←v12860, bits←v12756)); }; SOURCE(10365, 117) { word var←c16704; var←c16704 = df←v12784; switch (var←c16704) { case 0: break; case 1: SOURCE(10399, 21) tw←v12916 = (word) XRM←BITAND(dstW←v12888, tw←v12916); break; case 2: SOURCE(10428, 20) tw←v12916 = (word) XRM←BITOR(dstW←v12888, tw←v12916); break; default: SOURCE(10461, 21) tw←v12916 = (word) XRM←BITXOR(dstW←v12888, tw←v12916); break; }; }; SOURCE(10484, 52) { word var←c16736; word var←c0342; var←c16736 = (word) XRM←BITNOT(mask←v12860); var←c0342 = (word) XRM←BITAND(dstW←v12888, var←c16736); (* (ptr) dst←v12672 ) = (var←c0342 + (word) XRM←BITAND(tw←v12916, mask←v12860)); }; SOURCE(10538, 295) if ((dstLim←v12832 > 32)) { SOURCE(10561, 43) mask←v12860 = (word) XRM←BITRSHIFT( (word) -1, (dstLim←v12832 & 037)); SOURCE(10606, 17) dstW←v12888 = (* (ptr) (dst←v12672 + 4) ); SOURCE(10625, 29) tw←v12916 = (word) XRM←BITLSHIFT(w←v12728, (32 - dstMod←v12700)); SOURCE(10656, 117) { word var←c16768; var←c16768 = df←v12784; switch (var←c16768) { case 0: /*1*/ break; case 1: SOURCE(10690, 21) /*1*/ tw←v12916 = (word) XRM←BITAND(dstW←v12888, tw←v12916); /*1*/ break; case 2: SOURCE(10719, 20) /*1*/ tw←v12916 = (word) XRM←BITOR(dstW←v12888, tw←v12916); /*1*/ break; default: SOURCE(10752, 21) /*1*/ tw←v12916 = (word) XRM←BITXOR(dstW←v12888, tw←v12916); /*1*/ break; }; }; SOURCE(10775, 58) { word var←c16800; word var←c0343; var←c16800 = (word) XRM←BITNOT(mask←v12860); var←c0343 = (word) XRM←BITAND(tw←v12916, var←c16800); (* (ptr) (dst←v12672 + 4) ) = (var←c0343 + (word) XRM←BITAND(dstW←v12888, mask←v12860)); }; }; }; } else { if ((bits←v12756 != 32)) { { word mask←v12960; word dstW←v12988; word tw←v13016; mask←v12960 = (word) XRM←BITRSHIFT( (word) -1, bits←v12756); dstW←v12988 = (* (ptr) dst←v12672 ); tw←v13016 = w←v12728; SOURCE(10931, 117) { word var←c16832; var←c16832 = df←v12784; switch (var←c16832) { case 0: /*1*/ break; case 1: SOURCE(10965, 21) /*1*/ tw←v13016 = (word) XRM←BITAND(dstW←v12988, tw←v13016); /*1*/ break; case 2: SOURCE(10994, 20) /*1*/ tw←v13016 = (word) XRM←BITOR(dstW←v12988, tw←v13016); /*1*/ break; default: SOURCE(11027, 21) /*1*/ tw←v13016 = (word) XRM←BITXOR(dstW←v12988, tw←v13016); /*1*/ break; }; }; SOURCE(11050, 52) { word var←c16864; word var←c0344; var←c16864 = (word) XRM←BITNOT(mask←v12960); var←c0344 = (word) XRM←BITAND(tw←v13016, var←c16864); (* (ptr) dst←v12672 ) = ((word) XRM←BITAND(dstW←v12988, mask←v12960) + var←c0344); }; }; } else { SOURCE(11118, 126) { word var←c16896; var←c16896 = df←v12784; switch (var←c16896) { case 0: SOURCE(11141, 8) (* (ptr) dst←v12672 ) = w←v12728; break; case 1: SOURCE(11158, 22) (* (ptr) dst←v12672 ) = (word) XRM←BITAND((* (ptr) dst←v12672 ), w←v12728); break; case 2: SOURCE(11188, 21) (* (ptr) dst←v12672 ) = (word) XRM←BITOR((* (ptr) dst←v12672 ), w←v12728); break; default: SOURCE(11222, 22) (* (ptr) dst←v12672 ) = (word) XRM←BITXOR((* (ptr) dst←v12672 ), w←v12728); break; }; }; }; }; }; SOURCE(9184, 23) if ((xBits←v7600 == (* (( (ptr) formal←c17248)+11) ))) { SOURCE(9207, 4) goto lab←L100087; }; SOURCE(9213, 19) next←v7544 = ((* (( (ptr) formal←c17248)+5) ) + xBits←v7600); SOURCE(9234, 21) (* (( (ptr) formal←c17248)+5) ) = (next←v7544 & 037); SOURCE(9257, 36) (* (( (ptr) formal←c17248)+4) ) = ((* (( (ptr) formal←c17248)+4) ) + ((next←v7544 - (* (( (ptr) formal←c17248)+5) )) >> 3)); SOURCE(9295, 23) (* (( (ptr) formal←c17248)+11) ) = ((* (( (ptr) formal←c17248)+11) ) - xBits←v7600); SOURCE(9320, 130) if (((* (( (ptr) formal←c17248)+13) ) > xBits←v7600)) { SOURCE(9345, 19) next←v7544 = ((* (( (ptr) formal←c17248)+14) ) + xBits←v7600); SOURCE(9366, 21) (* (( (ptr) formal←c17248)+14) ) = (next←v7544 & 037); SOURCE(9389, 36) (* (( (ptr) formal←c17248)+15) ) = ((* (( (ptr) formal←c17248)+15) ) + ((next←v7544 - (* (( (ptr) formal←c17248)+14) )) >> 3)); SOURCE(9427, 23) (* (( (ptr) formal←c17248)+13) ) = ((* (( (ptr) formal←c17248)+13) ) - xBits←v7600); SOURCE(9452, 4) goto lab←L100088; }; }; SOURCE(9464, 172) if (((* (( (ptr) formal←c17248)+13) ) < xBits←v7600)) { SOURCE(9489, 21) next←v7544 = (xBits←v7600 - (* (( (ptr) formal←c17248)+13) )); SOURCE(9512, 25) (* (( (ptr) formal←c17248)+13) ) = ((* (( (ptr) formal←c17248)+12) ) - next←v7544); SOURCE(9539, 20) next←v7544 = ((* (( (ptr) formal←c17248)+7) ) + next←v7544); SOURCE(9561, 21) (* (( (ptr) formal←c17248)+14) ) = (next←v7544 & 037); SOURCE(9584, 31) (* (( (ptr) formal←c17248)+15) ) = ((* (( (ptr) formal←c17248)+6) ) + IOP2( / , (int)(next←v7544 - (* (( (ptr) formal←c17248)+14) )), (int)8)); SOURCE(9617, 19) if (((* (( (ptr) formal←c17248)+13) ) != 0)) { SOURCE(9636, 4) goto lab←L100088; }; }; SOURCE(9645, 9) (* (( (ptr) formal←c17248)+15) ) = (* (( (ptr) formal←c17248)+6) ); SOURCE(9656, 15) (* (( (ptr) formal←c17248)+14) ) = (* (( (ptr) formal←c17248)+7) ); SOURCE(9673, 18) (* (( (ptr) formal←c17248)+13) ) = (* (( (ptr) formal←c17248)+12) ); }; goto lab←L100088; lab←L100087: ; } static void DumbOp←P480(arg←v4256) word arg←v4256; { word tileLine←v7840; word adjustedFirstBit←v7868; word src←v7896; word dst←v7924; word dstBpl←v7952; word dstBit←v7980; word srcBpl←v8008; word phase←v8036; word fSize←v8064; word fSizeTile←v8092; word sSizeTile←v8120; word sSize←v8148; word srcBit←v8176; word invert←v8204; word df←v8232; /* DumbOp: */ SOURCE(11250, 1597) SOURCE(11302, 29) tileLine←v7840 = (* (( (ptr) arg←v4256)+11) ); SOURCE(11333, 36) adjustedFirstBit←v7868 = (* (( (ptr) arg←v4256)+10) ); SOURCE(11371, 36) src←v7896 = (* (( (ptr) arg←v4256)+5) ); SOURCE(11409, 36) dst←v7924 = (* (ptr) arg←v4256 ); SOURCE(11447, 24) dstBpl←v7952 = (* (( (ptr) arg←v4256)+2) ); SOURCE(11473, 24) dstBit←v7980 = (* (( (ptr) arg←v4256)+1) ); SOURCE(11499, 24) srcBpl←v8008 = (* (( (ptr) arg←v4256)+7) ); SOURCE(11525, 22) phase←v8036 = (* (( (ptr) arg←v4256)+12) ); SOURCE(11549, 22) fSize←v8064 = (* (( (ptr) arg←v4256)+3) ); SOURCE(11573, 30) fSizeTile←v8092 = (* (( (ptr) arg←v4256)+8) ); SOURCE(11605, 30) sSizeTile←v8120 = (* (( (ptr) arg←v4256)+9) ); SOURCE(11637, 22) sSize←v8148 = (* (( (ptr) arg←v4256)+4) ); SOURCE(11661, 40) srcBit←v8176 = ((* (( (ptr) arg←v4256)+6) ) + (srcBpl←v8008 * tileLine←v7840)); SOURCE(11703, 28) invert←v8204 = (* (( (ptr) arg←v4256)+13) ); SOURCE(11733, 25) df←v8232 = (* (( (ptr) arg←v4256)+14) ); SOURCE(11779, 48) if (((* (( (ptr) arg←v4256)+10) ) >= fSizeTile←v8092)) { SOURCE(11813, 14) (void) BadAssertion←P660(); }; SOURCE(11829, 45) if (((* (( (ptr) arg←v4256)+12) ) >= fSizeTile←v8092)) { SOURCE(11860, 14) (void) BadAssertion←P660(); }; SOURCE(11876, 53) if (((* (( (ptr) arg←v4256)+11) ) >= (* (( (ptr) arg←v4256)+9) ))) { SOURCE(11915, 14) (void) BadAssertion←P660(); }; SOURCE(11934, 45) if (((* (( (ptr) arg←v4256)+3) ) == 0) || ((* (( (ptr) arg←v4256)+4) ) == 0)) { SOURCE(11973, 6) return; }; SOURCE(11981, 866) { register word s←v8276 = 0; register word noName←c16928; noName←c16928 = (* (( (ptr) arg←v4256)+4) ); if ((s←v8276 >= noName←c16928)) { goto lab←L100089; }; lab←L100092: ; { word dstLim←v8320; word tileBit←v8348; word dBit←v8376; SOURCE(12013, 26) dstLim←v8320 = (dstBit←v7980 + fSize←v8064); SOURCE(12041, 31) tileBit←v8348 = adjustedFirstBit←v7868; SOURCE(12074, 18) dBit←v8376 = dstBit←v7980; SOURCE(12094, 464) lab←L100095: ; SOURCE(12094, 464) { word sBit←v8420; word mod←v8448; word sw←v8476; word sb←v8504; SOURCE(12097, 26) sBit←v8420 = (srcBit←v8176 + tileBit←v8348); SOURCE(12125, 29) mod←v8448 = (sBit←v8420 & 037); SOURCE(12156, 52) sw←v8476 = (word) XRM←BITXOR((* (ptr) (src←v7896 + IOP2( / , (int)(sBit←v8420 - mod←v8448), (int)8)) ), invert←v8204); SOURCE(12210, 48) { word var←c16960; var←c16960 = (word) XRM←BITLSHIFT(sw←v8476, mod←v8448); sb←v8504 = (word) XRM←BITRSHIFT(var←c16960, 31); }; SOURCE(12260, 188) { word var←c16992; var←c16992 = df←v8232; switch (var←c16992) { case 0: SOURCE(12283, 14) { word x4; word x5; x4 = (word) (( (ptr) dst←v7924) + (dBit←v8376 >> 5)); x5 = 32 - ((dBit←v8376 & 037)+1); (* (ptr) x4 ) = ((* (ptr) x4 ) & ( ~ (1 << x5))) | (((sb←v8504 & 1)) << x5); }; break; case 1: SOURCE(12306, 33) { word var←c17024; var←c17024 = (word) XRM←BITAND((((* (ptr) (( (ptr) dst←v7924) + (dBit←v8376 >> 5)) ) >> (31 - ((dBit←v8376 & 037)))) & 1), sb←v8504) ; { word x6; word x7; x6 = (word) (( (ptr) dst←v7924) + (dBit←v8376 >> 5)); x7 = 32 - ((dBit←v8376 & 037)+1); (* (ptr) x6 ) = ((* (ptr) x6 ) & ( ~ (1 << x7))) | (((var←c17024 & 1)) << x7); }; }; break; case 2: SOURCE(12347, 32) { word var←c17056; var←c17056 = (word) XRM←BITOR((((* (ptr) (( (ptr) dst←v7924) + (dBit←v8376 >> 5)) ) >> (31 - ((dBit←v8376 & 037)))) & 1), sb←v8504) ; { word x8; word x9; x8 = (word) (( (ptr) dst←v7924) + (dBit←v8376 >> 5)); x9 = 32 - ((dBit←v8376 & 037)+1); (* (ptr) x8 ) = ((* (ptr) x8 ) & ( ~ (1 << x9))) | (((var←c17056 & 1)) << x9); }; }; break; case 3: SOURCE(12388, 33) { word var←c17088; var←c17088 = (word) XRM←BITXOR((((* (ptr) (( (ptr) dst←v7924) + (dBit←v8376 >> 5)) ) >> (31 - ((dBit←v8376 & 037)))) & 1), sb←v8504) ; { word x10; word x11; x10 = (word) (( (ptr) dst←v7924) + (dBit←v8376 >> 5)); x11 = 32 - ((dBit←v8376 & 037)+1); (* (ptr) x10 ) = ((* (ptr) x10 ) & ( ~ (1 << x11))) | (((var←c17088 & 1)) << x11); }; }; break; default: SOURCE(12434, 14) (void) BadAssertion←P660(); break; }; }; SOURCE(12450, 15) dBit←v8376 = (dBit←v8376 + 1); SOURCE(12467, 22) if ((dBit←v8376 == dstLim←v8320)) { SOURCE(12489, 4) goto lab←L100094; }; SOURCE(12495, 21) tileBit←v8348 = (tileBit←v8348 + 1); SOURCE(12518, 40) if ((tileBit←v8348 >= fSizeTile←v8092)) { SOURCE(12547, 11) tileBit←v8348 = 0; }; }; goto lab←L100095; lab←L100094: ; SOURCE(12569, 24) dstBit←v7980 = (dstBit←v7980 + dstBpl←v7952); SOURCE(12595, 24) srcBit←v8176 = (srcBit←v8176 + srcBpl←v8008); SOURCE(12621, 21) tileLine←v7840 = (tileLine←v7840 + 1); SOURCE(12644, 203) if ((tileLine←v7840 == sSizeTile←v8120)) { SOURCE(12675, 137) if ((adjustedFirstBit←v7868 < phase←v8036)) { SOURCE(12708, 61) adjustedFirstBit←v7868 = (adjustedFirstBit←v7868 + (fSizeTile←v8092 - phase←v8036)); } else { SOURCE(12769, 43) adjustedFirstBit←v7868 = (adjustedFirstBit←v7868 - phase←v8036); }; SOURCE(12814, 12) tileLine←v7840 = 0; SOURCE(12828, 19) srcBit←v8176 = (* (( (ptr) arg←v4256)+6) ); }; }; s←v8276 = (s←v8276 + 1); if ((s←v8276 < noName←c16928)) { goto lab←L100092; }; lab←L100089: ; }; } static word FunnyOp←P540(dw←v4316, sw←v4344, op←v4372) word dw←v4316; word sw←v4344; word op←v4372; { word var←c4416; word m1←v8548; word m2←v8576; word m3←v8604; word w1←v8632; word w2←v8660; word w3←v8688; word w4←v8716; word w5←v8744; word w6←v8772; /* FunnyOp: */ SOURCE(12865, 404) SOURCE(12934, 55) m1←v8548 = ( ((op←v4372 == 1) || (op←v4372 == 2)) ? (word) -1 : 0 ) ; SOURCE(12991, 44) m2←v8576 = ( (op←v4372 != 1) ? (word) -1 : 0 ) ; SOURCE(13037, 55) m3←v8604 = ( ((op←v4372 == 2) || (op←v4372 == 3)) ? (word) -1 : 0 ) ; SOURCE(13096, 25) w1←v8632 = (word) XRM←BITAND(sw←v4344, m1←v8548); SOURCE(13123, 25) w2←v8660 = (word) XRM←BITAND(sw←v4344, m2←v8576); SOURCE(13150, 25) w3←v8688 = (word) XRM←BITAND(dw←v4316, m3←v8604); SOURCE(13177, 25) w4←v8716 = (word) XRM←BITXOR(w2←v8660, w3←v8688); SOURCE(13204, 25) w5←v8744 = (word) XRM←BITAND(dw←v4316, w1←v8632); SOURCE(13231, 24) w6←v8772 = (word) XRM←BITOR(w4←v8716, w5←v8744); SOURCE(13258, 11) return(w6←v8772); } static void BadAssertion←P660() { register ptr gf←c17280 = (ptr) &globalframe; /* BadAssertion: */ SOURCE(13847, 44) SOURCE(13870, 21) (void) XR←RaiseError((word) (( (bPt) gf←c17280)+280)/* var←c14304 */ , 0); } static void InitReplicatorArray←P720() { register ptr gf←c17312 = (ptr) &globalframe; /* InitReplicatorArray: */ SOURCE(13928, 442) SOURCE(13958, 26) (* (( (ptr) gf←c17312)+4) ) = 0; SOURCE(13986, 26) (* (( (ptr) gf←c17312)+37) ) = 0; SOURCE(14014, 34) (* (( (ptr) gf←c17312)+5) ) = (word) -1; SOURCE(14050, 28) (* (( (ptr) gf←c17312)+38) ) = 32; SOURCE(14080, 28) (* (( (ptr) gf←c17312)+36) ) = 1; SOURCE(14110, 28) (* (( (ptr) gf←c17312)+69) ) = 1; SOURCE(14140, 230) { register word i←v8816 = 2; lab←L100099: ; { word t←v8860; word tt←v8888 = 0; SOURCE(14166, 59) t←v8860 = ((word) XRM←BITRSHIFT( (word) -1, (i←v8816 - 1)) - (word) XRM←BITRSHIFT( (word) -1, i←v8816)); SOURCE(14241, 47) lab←L100102: ; if ((t←v8860 != 0)) { } else { goto lab←L100100; }; SOURCE(14256, 11) tt←v8888 = (tt←v8888 + t←v8860); SOURCE(14269, 19) t←v8860 = (word) XRM←BITRSHIFT(t←v8860, i←v8816); goto lab←L100102; lab←L100100: ; SOURCE(14299, 27) (* ((( (ptr) gf←c17312)+4)/* replicatorMultArray←v3140 */ +i←v8816) ) = tt←v8888; SOURCE(14328, 42) (* ((( (ptr) gf←c17312)+37)/* replicatorBitsArray←v3168 */ +i←v8816) ) = (32 - (32 % i←v8816)); }; if ((i←v8816 >= 31)) { goto lab←L100096; }; i←v8816 = (i←v8816 + 1); goto lab←L100099; lab←L100096: ; }; } /* file: UnsafeTileImpl, module: UnsafeTileImpl, compiled at: February 21, 1992 11:34:28 pm PST */ extern void XR←install←UnsafeTileImpl() { NoName←Q4620(); } extern void XR←run←UnsafeTileImpl() { XR←Start(&globalframe); }