If the logic was written by someone with experience, you'll see patterns on how they handle real world devices. I would start by filling in the address descriptions for indicator lights and push buttons. By following the cross reference to those devices, you'll start to see how sections of the code are dedicated to the functionality of those devices.
Any contractor/programmer who has been in this business any length of time is faced with your same scenario on a reoccurring basis and all you can do is be patient and work through it methodically.