(self)
The main analysis for Propagator. Overwritten to include an optimization to stop
        analysis if we have already analyzed the entire function once.
The main analysis for Propagator. Overwritten to include an optimization to stop
        analysis if we have already analyzed the entire function once.
The main analysis for Propagator . Overwritten to include an optimization to stop analysis if we have already analyzed the entire function once .
def _analyze(self):
        """
        The main analysis for Propagator. Overwritten to include an optimization to stop
        analysis if we have already analyzed the entire function once.
        """
        self._pre_analysis()

        # optimization check
        stored_replacements = self._check_prop_kb()
        if stored_replacements is not None:
            if self.replacements is not None:
                self.replacements.update(stored_replacements)
            else:
                self.replacements = stored_replacements

        # normal analysis execution
        elif self._graph_visitor is None:
            # There is no base graph that we can rely on. The analysis itself should generate successors for the
            # current job.
            # An example is the CFG recovery.

            self._analysis_core_baremetal()

        else:
            # We have a base graph to follow. Just handle the current job.

            self._analysis_core_graph()

        self._post_analysis()
def _analyze ( self ) : self . _pre_analysis ( ) # optimization check stored_replacements = self . _check_prop_kb ( ) if stored_replacements is not None : if self . replacements is not None : self . replacements . update ( stored_replacements ) else : self . replacements = stored_replacements # normal analysis execution elif self . _graph_visitor is None : # There is no base graph that we can rely on. The analysis itself should generate successors for the # current job. # An example is the CFG recovery. self . _analysis_core_baremetal ( ) else : # We have a base graph to follow. Just handle the current job. self . _analysis_core_graph ( ) self . _post_analysis ( )