461 {
462 UBYTE *endinp = inpos + inlen;
464 UBYTE *runsrc, *rundest;
466
472
473 register ULONG bitbuf;
474 register int bitsleft;
477
478 int togo = outlen, this_run, main_element, aligned_bits;
479 int match_length, length_footer,
extra, verbatim_bits;
480 int copy_length;
481
483
484
490 }
491
492
493 while (togo > 0) {
494
499 }
500
505
510
511
517
520 break;
521
525 if (bitsleft > 16) inpos -= 2;
526 R0 = inpos[0]|(inpos[1]<<8)|(inpos[2]<<16)|(inpos[3]<<24);inpos+=4;
527 R1 = inpos[0]|(inpos[1]<<8)|(inpos[2]<<16)|(inpos[3]<<24);inpos+=4;
528 R2 = inpos[0]|(inpos[1]<<8)|(inpos[2]<<16)|(inpos[3]<<24);inpos+=4;
529 break;
530
531 default:
533 }
534 }
535
536
537 if (inpos > endinp) {
538
539
540
541
542
543
544
545
547 }
548
550 if (this_run > togo) this_run = togo;
551 togo -= this_run;
553
554
555 window_posn &= window_size - 1;
556
557 if ((window_posn + this_run) > window_size)
559
561
563 while (this_run > 0) {
565
567
568 window[window_posn++] = main_element;
569 this_run--;
570 }
571 else {
572
574
578 match_length += length_footer;
579 }
581
582 match_offset = main_element >> 3;
583
584 if (match_offset > 2) {
585
586 if (match_offset != 3) {
589 match_offset =
position_base[match_offset] - 2 + verbatim_bits;
590 }
591 else {
592 match_offset = 1;
593 }
594
595
597 }
598 else if (match_offset == 0) {
600 }
601 else if (match_offset == 1) {
603 R1 =
R0;
R0 = match_offset;
604 }
605 else {
607 R2 =
R0;
R0 = match_offset;
608 }
609
610 rundest =
window + window_posn;
611 this_run -= match_length;
612
613
614 if (window_posn >= match_offset) {
615
616 runsrc = rundest - match_offset;
617 } else {
618 runsrc = rundest + (window_size - match_offset);
619 copy_length = match_offset - window_posn;
620 if (copy_length < match_length) {
621 match_length -= copy_length;
622 window_posn += copy_length;
623 while (copy_length-- > 0) *rundest++ = *runsrc++;
625 }
626 }
627 window_posn += match_length;
628
629
630 while (match_length-- > 0) *rundest++ = *runsrc++;
631
632 }
633 }
634 break;
635
637 while (this_run > 0) {
639
641
642 window[window_posn++] = main_element;
643 this_run--;
644 }
645 else {
646
648
652 match_length += length_footer;
653 }
655
656 match_offset = main_element >> 3;
657
658 if (match_offset > 2) {
659
663
666 match_offset += (verbatim_bits << 3);
668 match_offset += aligned_bits;
669 }
670 else if (
extra == 3) {
671
673 match_offset += aligned_bits;
674 }
675 else if (
extra > 0) {
676
678 match_offset += verbatim_bits;
679 }
680 else {
681
682 match_offset = 1;
683 }
684
685
687 }
688 else if (match_offset == 0) {
690 }
691 else if (match_offset == 1) {
693 R1 =
R0;
R0 = match_offset;
694 }
695 else {
697 R2 =
R0;
R0 = match_offset;
698 }
699
700 rundest =
window + window_posn;
701 this_run -= match_length;
702
703
704 if (window_posn >= match_offset) {
705
706 runsrc = rundest - match_offset;
707 } else {
708 runsrc = rundest + (window_size - match_offset);
709 copy_length = match_offset - window_posn;
710 if (copy_length < match_length) {
711 match_length -= copy_length;
712 window_posn += copy_length;
713 while (copy_length-- > 0) *rundest++ = *runsrc++;
715 }
716 }
717 window_posn += match_length;
718
719
720 while (match_length-- > 0) *rundest++ = *runsrc++;
721
722 }
723 }
724 break;
725
729 inpos += this_run; window_posn += this_run;
730 break;
731
732 default:
734 }
735
736 }
737 }
738
740 memcpy(outpos,
window + ((!window_posn) ? window_size : window_posn) - outlen, (
size_t) outlen);
741
746
747
749 if (outlen <= 6 || !pState->intel_started) {
751 }
752 else {
757 LONG abs_off, rel_off;
758
760
761 while (
data < dataend) {
762 if (*
data++ != 0xE8) { curpos++;
continue; }
764 if ((abs_off >= -curpos) && (abs_off < filesize)) {
765 rel_off = (abs_off >= 0) ? abs_off - curpos : abs_off + filesize;
770 }
772 curpos += 5;
773 }
774 }
775 }
777}
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
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
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 READ_LENGTHS(tbl, first, last)
#define LZX_BLOCKTYPE_ALIGNED
#define LZX_NUM_SECONDARY_LENGTHS
#define LZX_BLOCKTYPE_VERBATIM
#define LZX_NUM_PRIMARY_LENGTHS
#define READ_HUFFSYM(tbl, var)
#define LZX_BLOCKTYPE_UNCOMPRESSED
static const ULONG position_base[51]
static const UBYTE extra_bits[51]
#define memcpy(s1, s2, n)
static IHTMLWindow2 * window
#define R1(v, w, x, y, z, i)
#define R2(v, w, x, y, z, i)
#define R0(v, w, x, y, z, i)
cab_ULONG block_remaining