/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 7, 1992 11:40:27 am PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: SHSImpl, module: SHSImpl */ /* switches: bhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> #define XRM←BITXOR(x, y) ((x) ↑ (y)) #define XRM←BITLSHIFT(x, y) ((x) << (y)) #define XRM←BITRSHIFT(x, y) ((x) >> (y)) #define XRM←BITOR(x, y) ((x) | (y)) #define XRM←BITAND(x, y) ((x) & (y)) #define XRM←BITNOT(x) (~(x)) static char versionStamp[] = "@(#)mob←version [3449244369,3931438650] SHSImpl"; 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 {W16 f; W16 r;} W32; typedef struct {W32 f; W32 r;} W64; typedef struct {W64 f; W16 r;} W80; typedef struct {word f0, f1, f2, f3, f4;} W5; typedef W5 *W5Pt; typedef word (*fPt)(); #define SOURCE(p, l) /* source p, l */ static void NoName←Q1092(); static void SHSImpl←P0(); static word WholeMessage16←P60(); static void OneM←P180(); static word S5←P240(); static word S30←P300(); static word F0←P360(); static word F1←P420(); static word F2←P480(); static word Example1←P540(); static word Eq←P600(); static struct {unsigned f; char r[8];} string1 = {393224, "\205\210\242\000\004\241\000"}; static struct {unsigned f; char r[8];} string2 = {393224, "\205\210\242\000\017\241\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\315\227\112\321\300\352\124\376\072\100\164\000\000"}; static struct { word f0[166]; 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; } globalframe = { {0}, (word) Eq←P600, 0, (word) Example1←P540, 0, (word) F2←P480, 0, (word) F1←P420, 0, (word) F0←P360, 0, (word) S30←P300, 0, (word) S5←P240, 0, (word) OneM←P180, 0, (word) WholeMessage16←P60, 0, (word) SHSImpl←P0, 0 }; static void NoName←Q1092() { register ptr gf←c076 = (ptr) &globalframe; (* (( (ptr) gf←c076)+164) ) = (word) XR←GetTypeIndexS((word) (&string1)); (* (( (ptr) gf←c076)+165) ) = (word) XR←GetTypeIndexS((word) (&string2)); (void) XR←DeclareGlobalFrame((word) "SHSImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string3)), (word) (( (bPt) gf←c076)+736) /* var←c6408 */ ); } static void SHSImpl←P0(formal←c018, formal←c014) word formal←c018; word formal←c014; { register ptr gf←c7464 = (ptr) &globalframe; /* SHSImpl: */ SOURCE(22, 2291) SOURCE(2029, 284) { register word i←v4016 = 0; lab←L100003: ; SOURCE(2058, 112) { word var←c6440; var←c6440 = i←v4016; if ((var←c6440 <= 19)) { (* ((( (ptr) gf←c7464)+4)/* F←v2664 */ +i←v4016) ) = XR←CheckProc((word) (( (bPt) gf←c7464)+696)/* var←c6248 */ ); goto endif04; }; if (((var←c6440 - 20) <= 19)) { (* ((( (ptr) gf←c7464)+4)/* F←v2664 */ +i←v4016) ) = XR←CheckProc((word) (( (bPt) gf←c7464)+688)/* var←c6216 */ ); goto endif04; }; if (((var←c6440 - 40) <= 19)) { (* ((( (ptr) gf←c7464)+4)/* F←v2664 */ +i←v4016) ) = XR←CheckProc((word) (( (bPt) gf←c7464)+680)/* var←c6184 */ ); goto endif04; }; if (((var←c6440 - 60) <= 19)) { (* ((( (ptr) gf←c7464)+4)/* F←v2664 */ +i←v4016) ) = XR←CheckProc((word) (( (bPt) gf←c7464)+688)/* var←c6216 */ ); goto endif04; }; (* ((( (ptr) gf←c7464)+4)/* F←v2664 */ +i←v4016) ) = XR←CheckProc( XR←RaiseUnnamedError(), 0 ); goto endif04; endif04: ; }; SOURCE(2172, 141) { word var←c6472; var←c6472 = i←v4016; if ((var←c6472 <= 19)) { (* ((( (ptr) gf←c7464)+84)/* K←v2692 */ +i←v4016) ) = 1518500249; goto endif05; }; if (((var←c6472 - 20) <= 19)) { (* ((( (ptr) gf←c7464)+84)/* K←v2692 */ +i←v4016) ) = 1859775393; goto endif05; }; if (((var←c6472 - 40) <= 19)) { (* ((( (ptr) gf←c7464)+84)/* K←v2692 */ +i←v4016) ) = 2400959708; goto endif05; }; if (((var←c6472 - 60) <= 19)) { (* ((( (ptr) gf←c7464)+84)/* K←v2692 */ +i←v4016) ) = 3395469782; goto endif05; }; (* ((( (ptr) gf←c7464)+84)/* K←v2692 */ +i←v4016) ) = ( XR←RaiseUnnamedError(), 0 ); goto endif05; endif05: ; }; if ((i←v4016 >= 79)) { goto lab←L100000; }; i←v4016 = (i←v4016 + 1); goto lab←L100003; lab←L100000: ; }; } static word WholeMessage16←P60(m←v2996) word m←v2996; { register ptr gf←c7496 = (ptr) &globalframe; word var←c3040; word h←v4080; /* WholeMessage16: */ SOURCE(69, 176) SOURCE(131, 91) h←v4080 = XR←NewObject(20, (* (( (ptr) gf←c7496)+164) )); (* (ptr) h←v4080 ) = 1732584193; (* (( (ptr) h←v4080)+1) ) = 4023233417; (* (( (ptr) h←v4080)+2) ) = 2562383102; (* (( (ptr) h←v4080)+3) ) = 271733878; (* (( (ptr) h←v4080)+4) ) = 3285377520; SOURCE(224, 10) (void) OneM←P180(m←v2996, h←v4080); SOURCE(236, 9) return(h←v4080); } static void OneM←P180(m←v3364, h←v3392) word m←v3364; word h←v3392; { register ptr gf←c7528 = (ptr) &globalframe; W80 w←v4124; word temp←v4152; W5 A←v4180; /* OneM: */ SOURCE(545, 441) SOURCE(621, 20) A←v4180 = (* (W5Pt) h←v3392 ); SOURCE(643, 36) { register word i←v4224 = 0; if (( (int)i←v4224 > (int)15)) { goto lab←L100004; }; lab←L100007: ; SOURCE(668, 11) (* (( (ptr) &w←v4124)+i←v4224) ) = (* (( (ptr) m←v3364)+i←v4224) ); if (( (int)i←v4224 >= (int)15)) { goto lab←L100004; }; i←v4224 = (i←v4224 + 1); goto lab←L100007; lab←L100004: ; }; SOURCE(690, 80) { register word t←v4268 = 16; if (( (int)t←v4268 > (int)79)) { goto lab←L100008; }; lab←L100011: ; SOURCE(716, 54) { word var←c6536; { word var←c6568; word x←v5892; word y←v5920; x←v5892 = (* (( (ptr) &w←v4124)+(t←v4268 - 3)) ); { word x←v5968; word y←v5996; x←v5968 = (* (( (ptr) &w←v4124)+(t←v4268 - 8)) ); { word x←v6044; word y←v6072; x←v6044 = (* (( (ptr) &w←v4124)+(t←v4268 - 14)) ); y←v6072 = (* (( (ptr) &w←v4124)+(t←v4268 - 16)) ); SOURCE(300, 27) y←v5996 = (word) XRM←BITXOR(x←v6044, y←v6072); }; SOURCE(300, 27) y←v5920 = (word) XRM←BITXOR(x←v5968, y←v5996); }; SOURCE(300, 27) var←c6568 = (word) XRM←BITXOR(x←v5892, y←v5920); var←c6536 = var←c6568; }; (* (( (ptr) &w←v4124)+t←v4268) ) = var←c6536; }; if (( (int)t←v4268 >= (int)79)) { goto lab←L100008; }; t←v4268 = (t←v4268 + 1); goto lab←L100011; lab←L100008: ; }; SOURCE(781, 154) { register word t←v4312 = 0; if (( (int)t←v4312 > (int)79)) { goto lab←L100015; }; lab←L100018: ; SOURCE(806, 59) { word pd6; pd6 = (* ((( (ptr) gf←c7528)+4)/* F←v2664 */ +t←v4312) ); temp←v4152 = (((((word) S5←P240(A←v4180.f0) + (word) ( *( (fPt) ((* (ptr) pd6 ))))(A←v4180.f1, A←v4180.f2, A←v4180.f3, pd6) ) + A←v4180.f4) + (* (( (ptr) &w←v4124)+t←v4312) )) + (* ((( (ptr) gf←c7528)+84)/* K←v2692 */ +t←v4312) )); }; SOURCE(867, 11) A←v4180.f4 = A←v4180.f3; SOURCE(880, 11) A←v4180.f3 = A←v4180.f2; SOURCE(893, 16) { word var←c6760; var←c6760 = (word) S30←P300(A←v4180.f1); A←v4180.f2 = var←c6760; }; SOURCE(911, 11) A←v4180.f1 = A←v4180.f0; SOURCE(924, 11) A←v4180.f0 = temp←v4152; if (( (int)t←v4312 >= (int)79)) { goto lab←L100015; }; t←v4312 = (t←v4312 + 1); goto lab←L100018; lab←L100015: ; }; SOURCE(946, 40) { register word i←v4356 = 0; if (( (int)i←v4356 > (int)4)) { goto lab←L100019; }; lab←L100022: ; SOURCE(970, 16) (* (( (ptr) h←v3392)+i←v4356) ) = ((* (( (ptr) h←v3392)+i←v4356) ) + (* (( (ptr) &A←v4180)+i←v4356) )); if (( (int)i←v4356 >= (int)4)) { goto lab←L100019; }; i←v4356 = (i←v4356 + 1); goto lab←L100022; lab←L100019: ; }; } static word S5←P240(x←v3488) word x←v3488; { word var←c3532; /* S5: */ SOURCE(1048, 109) SOURCE(1084, 73) { word var←c6824; word var←c6856; var←c6824 = (word) XRM←BITLSHIFT(x←v3488, 5); var←c6856 = (word) XRM←BITRSHIFT(x←v3488, 27); return((word) XRM←BITOR(var←c6824, var←c6856)); }; } static word S30←P300(x←v3592) word x←v3592; { word var←c3636; /* S30: */ SOURCE(1162, 112) SOURCE(1199, 75) { word var←c6920; word var←c6952; var←c6920 = (word) XRM←BITLSHIFT(x←v3592, 30); var←c6952 = (word) XRM←BITRSHIFT(x←v3592, 2); return((word) XRM←BITOR(var←c6920, var←c6952)); }; } static word F0←P360(x←v4564, y←v4592, z←v4620) word x←v4564; word y←v4592; word z←v4620; { word var←c4664; /* F0: */ SOURCE(1336, 98) SOURCE(1354, 80) { word var←c7016; word var←c7048; word var←c7080; var←c7016 = (word) XRM←BITAND(x←v4564, y←v4592); var←c7080 = (word) XRM←BITNOT(x←v4564); var←c7048 = (word) XRM←BITAND(var←c7080, z←v4620); return((word) XRM←BITOR(var←c7016, var←c7048)); }; } static word F1←P420(x←v4724, y←v4752, z←v4780) word x←v4724; word y←v4752; word z←v4780; { word var←c4824; /* F1: */ SOURCE(1439, 69) SOURCE(1457, 51) { word var←c7144; var←c7144 = (word) XRM←BITXOR(y←v4752, z←v4780); return((word) XRM←BITXOR(x←v4724, var←c7144)); }; } static word F2←P480(x←v4884, y←v4912, z←v4940) word x←v4884; word y←v4912; word z←v4940; { word var←c4984; /* F2: */ SOURCE(1514, 117) SOURCE(1532, 99) { word var←c7208; word var←c7240; word var←c7272; word var←c7304; var←c7208 = (word) XRM←BITAND(x←v4884, y←v4912); var←c7272 = (word) XRM←BITAND(x←v4884, z←v4940); var←c7304 = (word) XRM←BITAND(y←v4912, z←v4940); var←c7240 = (word) XRM←BITOR(var←c7272, var←c7304); return((word) XRM←BITOR(var←c7208, var←c7240)); }; } static word Example1←P540() { register ptr gf←c7560 = (ptr) &globalframe; word var←c3856; word m←v4400; word ans←v4428; /* Example1: */ SOURCE(1637, 255) SOURCE(1674, 47) m←v4400 = XR←NewObject(64, (* (( (ptr) gf←c7560)+165) )); SOURCE(1723, 93) ans←v4428 = XR←NewObject(20, (* (( (ptr) gf←c7560)+164) )); (* (ptr) ans←v4428 ) = 23378089; (* (( (ptr) ans←v4428)+1) ) = 348990046; (* (( (ptr) ans←v4428)+2) ) = 1959065599; (* (( (ptr) ans←v4428)+3) ) = 137121175; (* (( (ptr) ans←v4428)+4) ) = 4058904704; SOURCE(1818, 16) (* (ptr) m←v4400 ) = 1633837952; SOURCE(1836, 17) (* (( (ptr) m←v4400)+15) ) = 24; SOURCE(1855, 37) { word var←c7432; var←c7432 = (word) WholeMessage16←P60(m←v4400); return((word) Eq←P600(var←c7432, ans←v4428)); }; } static word Eq←P600(d1←v3916, d2←v3944) word d1←v3916; word d2←v3944; { word var←c3988; /* Eq: */ SOURCE(1897, 127) SOURCE(1945, 65) { register word i←v4472 = 0; if (( (int)i←v4472 > (int)4)) { goto lab←L100023; }; lab←L100026: ; SOURCE(1969, 41) if (((* (( (ptr) d1←v3916)+i←v4472) ) != (* (( (ptr) d2←v3944)+i←v4472) ))) { SOURCE(1989, 21) return(0); }; if (( (int)i←v4472 >= (int)4)) { goto lab←L100023; }; i←v4472 = (i←v4472 + 1); goto lab←L100026; lab←L100023: ; }; SOURCE(2012, 12) return(1); } /* file: SHSImpl, module: SHSImpl, compiled at: February 7, 1992 11:40:27 am PST */ extern void XR←install←SHSImpl() { NoName←Q1092(); } extern void XR←run←SHSImpl() { XR←Start(&globalframe); }