All pastes #809018 Raw Edit

Mine

public text v1 · immutable
·published 2007-12-08 03:49 UTC
rendered paste body
            LEMPEL-ZIV 32BIT COMPRESSION ENGINE

        lz_compress  (347 bytes)
        lz_decompress (365 bytes)

        Both subroutines have identical parameters that are needed
        to be placed in stack.

        push    pointer_to_the_temporary_data
        push    input_buffer_size
        push    pointer_to_the_output_buffer
        push    pointer_to_the_input_buffer
        call    lz_compress

        Returns:

        EAX holds number of bytes places in the output buffer,
        registers EBX,ECX,EDX,ESI,EDI and EBP are not preserved.

        Size of the temporary data need to be 5000h for compression
	and 3000h for decompression.





lz_compress:
 db 02bh,0c0h,050h,050h,050h,050h,050h,08bh,0ech,0e8h,083h,000h,000h,000h,02bh,0c0h
 db 0feh,0c4h,0e8h,09dh,000h,000h,000h,0e8h,0c3h,000h,000h,000h,02ah,0e4h,066h,089h
 db 045h,000h,0e8h,0b8h,000h,000h,000h,072h,04bh,088h,045h,008h,00fh,0b7h,05dh,000h
 db 0e8h,0bfh,000h,000h,000h,073h,0e7h,0e8h,0eeh,000h,000h,000h,053h,00fh,0b7h,045h
 db 000h,0e8h,06eh,000h,000h,000h,05bh,08ah,045h,008h,066h,03bh,05dh,004h,07ch,0cch
 db 066h,083h,07dh,006h,00ch,07ch,013h,02bh,0c0h,0feh,0c4h,0e8h,054h,000h,000h,000h
 db 0e8h,02ch,000h,000h,000h,08ah,045h,008h,0ebh,0b2h,066h,0ffh,045h,006h,066h,0d1h
 db 065h,004h,0ebh,0a8h,00fh,0b7h,045h,000h,0e8h,037h,000h,000h,000h,0b8h,001h,001h
 db 000h,000h,0e8h,02dh,000h,000h,000h,097h,02bh,045h,01ch,083h,0c4h,014h,0c2h,010h
 db 000h,060h,066h,0c7h,045h,006h,009h,000h,066h,0c7h,045h,004h,000h,002h,02bh,0c0h
 db 048h,0b9h,080h,002h,000h,000h,08bh,07dh,024h,0f3h,066h,0abh,066h,0c7h,045h,002h
 db 002h,001h,061h,0c3h,050h,08bh,045h,00ch,00fh,0b7h,04dh,006h,001h,04dh,00ch,0b9h
 db 008h,000h,000h,000h,02bh,0d2h,0f7h,0f1h,003h,045h,01ch,097h,058h,08bh,0cah,02bh
 db 0d2h,067h,0e3h,004h,0d3h,0e0h,00ah,007h,066h,0abh,0c1h,0e8h,010h,0aah,0c3h,08bh
 db 075h,018h,08bh,07dh,010h,03bh,07dh,020h,073h,008h,08ah,004h,03eh,0ffh,045h,010h
 db 0f8h,0c3h,0f9h,0c3h,0e8h,02ah,000h,000h,000h,02bh,0ffh,066h,083h,03eh,0ffh,074h
 db 020h,047h,00fh,0b7h,01eh,0e8h,019h,000h,000h,000h,038h,046h,004h,075h,005h,0f8h
 db 00fh,0b7h,0c3h,0c3h,066h,083h,07eh,002h,0ffh,074h,006h,00fh,0b7h,05eh,002h,0ebh
 db 0e4h,0f9h,0c3h,08dh,034h,09bh,003h,075h,024h,0c3h,00fh,0b7h,05dh,002h,083h,0ffh
 db 000h,074h,006h,066h,089h,05eh,002h,0ebh,003h,066h,089h,01eh,066h,081h,0fbh,000h
 db 010h,074h,017h,0e8h,0dbh,0ffh,0ffh,0ffh,066h,0c7h,006h,0ffh,0ffh,066h,0c7h,046h
 db 002h,0ffh,0ffh,088h,046h,004h,066h,0ffh,045h,002h,0c3h

lz_decompress:
 db 02bh,0c0h,050h,050h,06ah,009h,068h,000h,000h,000h,002h,068h,000h,000h,002h,001h
 db 050h,068h,0ffh,007h,0ffh,00fh,068h,0ffh,001h,0ffh,003h,08bh,0ech,0e8h,0d6h,000h
 db 000h,000h,066h,03dh,001h,001h,00fh,084h,0bbh,000h,000h,000h,066h,03dh,000h,001h
 db 075h,01fh,0e8h,0fbh,000h,000h,000h,0e8h,0bch,000h,000h,000h,066h,089h,045h,008h
 db 066h,089h,045h,00ah,088h,045h,017h,088h,045h,016h,0e8h,0f6h,000h,000h,000h,0ebh
 db 0cch,066h,089h,045h,008h,066h,089h,045h,00ch,066h,03bh,045h,00eh,07ch,011h,00fh
 db 0b7h,045h,00ah,066h,089h,045h,008h,00fh,0b6h,045h,016h,050h,066h,0ffh,045h,010h
 db 066h,081h,07dh,008h,0ffh,000h,07eh,01ah,00fh,0b7h,05dh,008h,0e8h,070h,000h,000h
 db 000h,08ah,043h,002h,050h,066h,0ffh,045h,010h,00fh,0b7h,003h,066h,089h,045h,008h
 db 0ebh,0deh,00fh,0b7h,045h,008h,088h,045h,016h,088h,045h,017h,050h,066h,0ffh,045h
 db 010h,00fh,0b7h,04dh,010h,067h,0e3h,008h,058h,0e8h,097h,000h,000h,000h,0e2h,0f8h
 db 066h,089h,04dh,010h,0e8h,097h,000h,000h,000h,00fh,0b7h,045h,00ch,066h,089h,045h
 db 00ah,00fh,0b7h,05dh,00eh,066h,03bh,05dh,012h,00fh,08ch,04eh,0ffh,0ffh,0ffh,066h
 db 083h,07dh,014h,00ch,00fh,084h,043h,0ffh,0ffh,0ffh,066h,0ffh,045h,014h,066h,0d1h
 db 065h,012h,0e9h,036h,0ffh,0ffh,0ffh,097h,02bh,045h,028h,083h,0c4h,020h,0c2h,010h
 db 000h,08dh,01ch,05bh,003h,05dh,030h,0c3h,00fh,0b7h,045h,014h,003h,045h,018h,087h
 db 045h,018h,0b9h,008h,000h,000h,000h,02bh,0d2h,0f7h,0f1h,003h,045h,024h,096h,066h
 db 0adh,00fh,0b7h,0d8h,0ach,00fh,0b7h,0cah,067h,0e3h,007h,0d0h,0e8h,066h,0d1h,0dbh
 db 0e2h,0f9h,00fh,0b7h,0c3h,00fh,0b7h,05dh,014h,083h,0ebh,009h,066h,023h,044h,05dh
 db 000h,0c3h,066h,0c7h,045h,014h,009h,000h,066h,0c7h,045h,012h,000h,002h,066h,0c7h
 db 045h,00eh,002h,001h,0c3h,08bh,07dh,01ch,003h,07dh,028h,0aah,0ffh,045h,01ch,0c3h
 db 00fh,0b7h,05dh,00eh,0e8h,098h,0ffh,0ffh,0ffh,00fh,0b6h,045h,017h,088h,043h,002h
 db 00fh,0b7h,045h,00ah,066h,089h,003h,066h,0ffh,045h,00eh,0c3h