To understand it fully you need to master state variables and know the contract's state machine by heart
"Code on your computer is your playground"
Create branches, experiment with the code, modify it, write comments and see where it leads you.
"The best bugs are where no one looks"
Each time challenge your approach to auditing. Do you look where everyone looks?
Do you skip hard parts that others will likely skip? What is that you can do differently that will set you apart from others?