docs: def _analyze(self):
          """
          The main analysis routine.
  
          :return: None
          """
  
          self._pre_analysis()
  
          if 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()