471 UBYTE *endinp = inpos + inlen;
473 UBYTE *runsrc, *rundest;
482 register ULONG bitbuf;
483 register int bitsleft;
487 int togo = outlen, this_run, main_element, aligned_bits;
488 int match_length, length_footer,
extra, verbatim_bits;
534 if (bitsleft > 16) inpos -= 2;
535 R0 = inpos[0]|(inpos[1]<<8)|(inpos[2]<<16)|(inpos[3]<<24);inpos+=4;
536 R1 = inpos[0]|(inpos[1]<<8)|(inpos[2]<<16)|(inpos[3]<<24);inpos+=4;
537 R2 = inpos[0]|(inpos[1]<<8)|(inpos[2]<<16)|(inpos[3]<<24);inpos+=4;
546 if (inpos > endinp) {
559 if (this_run > togo) this_run = togo;
564 window_posn &= window_size - 1;
566 if ((window_posn + this_run) > window_size)
572 while (this_run > 0) {
577 window[window_posn++] = main_element;
587 match_length += length_footer;
591 match_offset = main_element >> 3;
593 if (match_offset > 2) {
595 if (match_offset != 3) {
598 match_offset =
position_base[match_offset] - 2 + verbatim_bits;
607 else if (match_offset == 0) {
610 else if (match_offset == 1) {
612 R1 =
R0;
R0 = match_offset;
616 R2 =
R0;
R0 = match_offset;
619 rundest =
window + window_posn;
620 this_run -= match_length;
623 if (window_posn >= match_offset) {
625 runsrc = rundest - match_offset;
627 runsrc = rundest + (window_size - match_offset);
628 copy_length = match_offset - window_posn;
629 if (copy_length < match_length) {
630 match_length -= copy_length;
631 window_posn += copy_length;
632 while (copy_length-- > 0) *rundest++ = *runsrc++;
636 window_posn += match_length;
639 while (match_length-- > 0) *rundest++ = *runsrc++;
646 while (this_run > 0) {
651 window[window_posn++] = main_element;
661 match_length += length_footer;
665 match_offset = main_element >> 3;
667 if (match_offset > 2) {
675 match_offset += (verbatim_bits << 3);
677 match_offset += aligned_bits;
679 else if (
extra == 3) {
682 match_offset += aligned_bits;
684 else if (
extra > 0) {
687 match_offset += verbatim_bits;
697 else if (match_offset == 0) {
700 else if (match_offset == 1) {
702 R1 =
R0;
R0 = match_offset;
706 R2 =
R0;
R0 = match_offset;
709 rundest =
window + window_posn;
710 this_run -= match_length;
713 if (window_posn >= match_offset) {
715 runsrc = rundest - match_offset;
717 runsrc = rundest + (window_size - match_offset);
718 copy_length = match_offset - window_posn;
719 if (copy_length < match_length) {
720 match_length -= copy_length;
721 window_posn += copy_length;
722 while (copy_length-- > 0) *rundest++ = *runsrc++;
726 window_posn += match_length;
729 while (match_length-- > 0) *rundest++ = *runsrc++;
738 inpos += this_run; window_posn += this_run;
749 memcpy(outpos,
window + ((!window_posn) ? window_size : window_posn) - outlen, (
size_t) outlen);
758 if (outlen <= 6 || !pState->intel_started) {
766 LONG abs_off, rel_off;
770 while (
data < dataend) {
771 if (*
data++ != 0xE8) { curpos++;
continue; }
773 if ((abs_off >= -curpos) && (abs_off < filesize)) {
774 rel_off = (abs_off >= 0) ? abs_off - curpos : abs_off + filesize;
#define READ_LENGTHS(tbl, first, last)
static const UBYTE extra_bits[51]
#define LZX_NUM_SECONDARY_LENGTHS
#define R2(v, w, x, y, z, i)
#define LZX_NUM_PRIMARY_LENGTHS
#define READ_HUFFSYM(tbl, var)
#define LZX_BLOCKTYPE_VERBATIM
#define LZX_BLOCKTYPE_UNCOMPRESSED
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define R1(v, w, x, y, z, i)
#define LZX_BLOCKTYPE_ALIGNED
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define memcpy(s1, s2, n)
static IHTMLWindow2 * window
#define R0(v, w, x, y, z, i)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static const ULONG position_base[51]
cab_ULONG block_remaining