Well Ron, the LZW-HowTo.bas is only a dirty quick test using the qb64.exe file, which is big enough to consume some time for packing/unpacking as well as giving a good compression ratio. The example was never intended to be used with other input files, especially much smaller ones or those which don't compress very well. In short LZW-HowTo.bas does no error checking at all.
What happens here, is that PNG files probably do not compress at all, as they usually are already compressed using zlib's deflate algorithm. That's why the compressed file is empty, read the description of the LzwPack$() function and you'll see an empty result is the error condition if not sufficient compression is reached. This condition must of course be handled in an application, which LZW-HowTo.bas does not.
The "illegal function call" just happens in the 'Speed' output line because of a division by zero, you can simply click to continue the program. It simply happens because of the small size of your image (and the fact it doesn't compress). The packer errors out here so quickly, that virtually no time is spend, hence time is zero and when trying to calculate the speed it gives us the illegal function call. (Anyway, i've fixed this behavior by explicitly checking for a zero time and faking it to 0,001 seconds then.)
Once again, LZW-HowTo.bas is a quick'n'dirty poor program to illustrate the lzw packer/unpacker with a known to be working file (qb64.exe).
If you wanna use 'lzwpacker.bm' in your application, then make sure you read the function descriptions and handle the mentioned possible failure results as needed by your application.