Background - by: CouttsEdit
All references are from the 500d v1.1.0 firmware.
state_object_handler__maybe() - located at 0xFF1A620CEdit
I think this function is responsible for deciding if a state object should change states. From what I have observed, it seems to use and event id as a reference to decide which state to move to.
--- to be continued ---