':param arch:            The architecture to use for this procedure
The following parameters are optional:
:param symbolic_return: Whether the procedure\'s return value should be stubbed into a
single symbolic variable constratined to the real return value
:param returns:         Whether the procedure should return to its caller afterwards
:param is_syscall:      Whether this procedure is a syscall
:param num_args:        The number of arguments this procedure should extract
:param display_name:    The name to use when displaying this procedure
:param cc:              The SimCC to use for this procedure
:param sim_kwargs:      Additional keyword arguments to be passed to run()
:param is_function:     Whether this procedure emulates a function'

def __init__(self, project=None, cc=None, symbolic_return=None, returns=None, is_syscall=None, is_stub=False, num_args=None, display_name=None, library_name=None, is_function=None, **kwargs):

    self.project = project
    self.arch = (project.arch if (project is not None) else None)
    self.addr = None
    self.cc = cc
    self.canonical = self
    self.kwargs = kwargs
    self.display_name = (type(self).__name__ if (display_name is None) else display_name)
    self.library_name = library_name
    self.syscall_number = None
    self.symbolic_return = symbolic_return
    self.argument_types = {}
    self.return_type = None
    self.returns = (returns if (returns is not None) else (not self.NO_RET))
    self.is_syscall = (is_syscall if (is_syscall is not None) else self.IS_SYSCALL)
    self.is_function = (is_function if (is_function is not None) else self.IS_FUNCTION)
    self.is_stub = is_stub
    self.is_continuation = False
    self.continuations = {}
    self.run_func = 'run'
    if (num_args is None):
        run_spec = inspect.getargspec(self.run)
        self.num_args = ((len(run_spec.args) - (len(run_spec.defaults) if (run_spec.defaults is not None) else 0)) - 1)
    else:
        self.num_args = num_args
    self.state = None
    self.successors = None
    self.arguments = None
    self.use_state_arguments = None
    self.ret_to = None
    self.ret_expr = None
