Wing Commander
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
lzo1x.cpp File Reference

Hand-written LZO1X decoder for packed streams. More...

#include "ix.h"
#include <stdlib.h>

Go to the source code of this file.

Functions

void ix_lzo1x_decompress (unsigned char *source, unsigned char *destination, unsigned int destinationBytes)

Detailed Description

Hand-written LZO1X decoder for packed streams.

Address range 4614c0-46162f. The retail routine is hand-written x86: it keeps input and token state in EBX and EDX and performs overlapping copies with REP MOVS. It was an /Od function around an __asm block; its ALIGN 4 directives account for the padding inside it (nop, lea ecx,[ecx]). Preserve that code directly so packed stream chunks decode exactly as they did originally.

The decoder came from a library of its own, searched before the file module's (ixfile.cpp): both are pulled only on LINK's second search pass, after the RtlUnwind thunk and before the CRT members reached through OLDNAMES.

Definition in file lzo1x.cpp.

Function Documentation

◆ ix_lzo1x_decompress()

void ix_lzo1x_decompress ( unsigned char * source,
unsigned char * destination,
unsigned int destinationBytes )

Definition at line 22 of file lzo1x.cpp.

References ix_lzo1x_decompress().

Referenced by ix_lzo1x_decompress(), and ix_thread_handle_file_chunk().