[Solved] Help me reducing 96 bytes of code

I'm working with an ATtiny13a which only has 1 Kb of flash size. I'm using MCUdude's MicroCore

Sketch uses 1120 bytes (109%) of program storage space. Maximum is 1024 bytes.
Global variables use 36 bytes (56%) of dynamic memory, leaving 28 bytes for local variables. Maximum is 64 bytes.

As you can see, my code is about 96 bytes too large to fit on the MCU. I feel like there is still some room for improvements with how I check if some given time has elapsed, but not sure how.

bool elapsed(unsigned long *startTime, uint16_t interval){
  return (currentMillis - *startTime >= interval);
}

...

if(buttonDownMillis == 0) //Initial init
  buttonDownMillis = currentMillis;
else if(elapsed(&buttonDownMillis, BUTTON_SHUTDOWN_MIN))
  changeState(SHUTTINGDOWN);

EDIT: Solved by eliminating a couple of unsigned longs by defining and re-using helper variables.