I forgot what it's called or where I read this but there are 2 methods in which you can analyse the binary to find all the functions. The first method is to scan each and every function then link them together, but the other method is to analyse the instruction line by line and when you identify a function you check for calls inside of it and then go into that new function (inside of the main function) and then repeat the process. This means that if you had something like :
;function prologue
call xxx
;function epilogue
it would follow the call, identify the function and if it had another function the keep repeating it. In the end it would return back to the main function then continue line by line analysis.
What method do you use for this?
Sorry if this sounds vague or confusing.
Btw I saw this project on /r/reverseengineering first so it's getting around a lot. good job