'This function is a symbolic execution helper in the simple style
supported by triton and manticore. It designed to be run after
setting up hooks (see Project.hook), in which the symbolic state
can be checked.
This function can be run in three different ways:
- When run with no parameters, this function begins symbolic execution
from the entrypoint.
- It can also be run with a "state" parameter specifying a SimState to
begin symbolic execution from.
- Finally, it can accept any arbitrary keyword arguments, which are all
passed to project.factory.full_init_state.
If symbolic execution finishes, this function returns the resulting
simulation manager.'

def execute(self, *args, **kwargs):

    if args:
        state = args[0]
    else:
        state = self.factory.full_init_state(**kwargs)
    pg = self.factory.simgr(state)
    self._executing = True
    return pg.step(until=(lambda lpg: (not self._executing)))
