'A Callable is a representation of a function in the binary that can be interacted with like a native python
function.
:param addr:            The address of the function to use
:param concrete_only:   Throw an exception if the execution splits into multiple states
:param perform_merge:   Merge all result states into one at the end (only relevant if concrete_only=False)
:param base_state:      The state from which to do these runs
:param toc:             The address of the table of contents for ppc64
:param cc:              The SimCC to use for a calling convention
:returns:               A Callable object that can be used as a interface for executing guest code like a
python function.
:rtype:                 angr.surveyors.caller.Callable'

def callable(self, addr, concrete_only=False, perform_merge=True, base_state=None, toc=None, cc=None):

    return Callable(self._project, addr=addr, concrete_only=concrete_only, perform_merge=perform_merge, base_state=base_state, toc=toc, cc=cc)
