This fwlzw (de)compressor originally came from the FFMPEG project and was modified by Broadcom for (de)compressing device configuration files. In the Zyxel/MitraStar/Broadcom source-code packages provided by those companies there is a tool that runs on the host for compression only: hostTools/CompressConfig That tool includes the FFMPEG library code but does NOT provide its own source-code, as it should since the files are licensed on the terms of the GNU GPL. I've copied the files from the Zyxel source-code distribution as the basis of this host-based executable tool: cp Zyxel/source/userspace/public/libs/cms_util/lzw*.c . cp Zyxel/source/userspace/public/include/cms_lzw.h . cp userspace/public/include/linux/os_defs.h . cp userspace/public/include/cms_version.h . With this tool it is possible to extract the payload from a firmware file. It is typically the second payload image in the file - the first being the CFE/Kernel/root file-system combination. My fwheader tool can report the location and size of the payloads in the firmware file. Those values can then be used to extract the payload to a file, which can be passed to this fwlzw tool.