I would suggest formatting the icon as a XBM and the using drawXBitmap, no need to decode the bits yourself:
FOexample
#include "somexbm.h"
...
M5.Display.drawXBitmap(0, 0, xbm_bits, xbm_width, xbm_height, TFT_BLACK);
The .h file will have
#define xbm_width 540
#define xbm_height 960
static unsigned char xbm_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, etc
You can easily produce an XBM file with GIMP or some other program. I don't remember the format, but I thiink the file is just a bitwise stream of pixels values.