/* 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); }