4 /*----For using tek Begin----*/
\r
7 int appackSub2(const UCHAR **pp, char *pif)
\r
10 const UCHAR *p = *pp;
\r
23 int appackSub3u(const UCHAR **pp, char *pif)
\r
27 r = appackSub2(pp, pif);
\r
28 if (0x8 <= r && r <= 0xb) {
\r
29 r = r << 4 | appackSub2(pp, pif);
\r
31 } else if (0xc <= r && r <= 0xd) {
\r
32 r = r << 4 | appackSub2(pp, pif);
\r
33 r = r << 4 | appackSub2(pp, pif);
\r
35 } else if (r == 0xe) {
\r
36 r = appackSub2(pp, pif);
\r
37 r = r << 4 | appackSub2(pp, pif);
\r
38 r = r << 4 | appackSub2(pp, pif);
\r
39 } else if (r == 0x7) {
\r
40 i = appackSub3u(pp, pif);
\r
43 r = r << 4 | appackSub2(pp, pif);
\r
51 int tek5Decomp(UCHAR *buf, UCHAR *buf1, UCHAR *tmp)
\r
53 static char tek5head[16] = {
\r
54 0x89, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
\r
55 0x4f, 0x53, 0x41, 0x53, 0x4b, 0x43, 0x4d, 0x50
\r
57 memcpy(tmp, tek5head, 16);
\r
58 UCHAR *q = tmp + 16;
\r
61 const UCHAR *p = &buf[1];
\r
62 i = appackSub3u(&p, &iif);
\r
63 tmpsiz = appackSub3u(&p, &iif);
\r
64 tmpsiz = tmpsiz << 8 | *p++;
\r
65 *q++ = (tmpsiz >> 27) & 0xfe;
\r
66 *q++ = (tmpsiz >> 20) & 0xfe;
\r
67 *q++ = (tmpsiz >> 13) & 0xfe;
\r
68 *q++ = (tmpsiz >> 6) & 0xfe;
\r
69 *q++ = (tmpsiz << 1 | 1) & 0xff;
\r
70 if (i == 1) *q++ = 0x15;
\r
71 if (i == 2) *q++ = 0x19;
\r
72 if (i == 3) *q++ = 0x21;
\r
73 if (i >= 4) return -9;
\r
77 if(tek_decomp(tmp, buf, tmpsiz) != 0){;
\r
79 fputs("tek decomp error.\n", stderr);
\r
86 /*----For using tek End----*/
\r