public virtual void AnalyzeDataFlow()
{
var eventListener = services.RequireService<DecompilerEventListener>();
foreach (var program in project.Programs)
{
eventListener.ShowStatus("Performing interprocedural analysis.");
var ir = new ImportResolver(project, program, eventListener);
var dfa = new DataFlowAnalysis(program, ir, eventListener);
dfa.UntangleProcedures();
dfa.BuildExpressionTrees();
host.WriteIntermediateCode(program, writer => { EmitProgram(program, dfa, writer); });
}
eventListener.ShowStatus("Interprocedural analysis complete.");
}