The getSystemTime() function uses mktime() to do the Iridium epoch offset, but does not set the tm struct's tm_isdst member, which may lead to incorrect time conversions (ie a random/junk DST offset).
It looks like the conversion code should either set epoch_start.tm_isdst = 0 or use mk_gmtime(&epoch_start) to get the epoch start timestamp.