1. A computer-implemented method comprising: receiving data comprising at least a portion of a program; identifying and retrieving entry point locations and execution-relevant metadata of the program; identifying, using disassembly, regions of code within the program based on the identified entry point locations and the metadata; determining entry points for each of a plurality of functions; and generating a set of possible call sequences for each function based on the determined entry points for the plurality of functions.