I think if the person who wrote the code still works for the company and its not clear what the code does to the extent you have to ask an anal amount of questions then that person should really be carrying some responsibility for maintaining it. No doubt the person who wrote it has been in the company for some time and his/her opinion carries a lot of weight. Better for that person to indicate you don't know what you're doing than to admit their code sucks.
getting fired for asking to many questions is absurd. Would a company rather you made the incorrect assumption or wasted time debugging code when you can "just ask"?