This is MOS 6502 assembly implementation of a decompressor for an lz variant used in Pokémon Gold/Silver/Crystal. It is converted from /home/decompress.asm in Pokémon Crystal disassembly. Written for 64tass assembler with a compatibility for all 6502 variants.
For a compressor, you can use lzcomp provided in the source code of Pokémon Prism or gfx.py in poketools