'Creates an Escaper. Most options are for Surveyor (separate docs).
:param loop_addresses: the addresses of all the basic blocks in the loop, to know the
instructions to which the analysis should be restricted
:param loop_iterations: the number of times to run the loop before escaping
:param iteration_depth: the maximum depth (in SimRuns) of a path through the loop'

def __init__(self, project, loop_addresses, start=None, max_concurrency=None, max_active=None, pickle_paths=None, loop_iterations=0, iteration_depth=100, unconstrain_memory=True, unconstrain_registers=True):

    Surveyor.__init__(self, project, start=start, max_concurrency=max_concurrency, max_active=max_active, pickle_paths=pickle_paths)
    self._loop_addresses = loop_addresses
    self._loop_iterations = loop_iterations
    self._iteration_depth = iteration_depth
    self._current_iteration = 0
    self._done = False
    self._unconstrain_memory = unconstrain_memory
    self._unconstrain_registers = unconstrain_registers
    self.normal = []
    self.forced = []
