(self,
                 addr,
                 size,
                 cfg,
                 simprocedure_name=None,
                 no_ret=False,
                 function_address=None,
                 block_id=None,
                 irsb=None,
                 soot_block=None,
                 instruction_addrs=None,
                 thumb=False,
                 byte_string=None,
                 is_syscall=None,
                 name=None)
Note: simprocedure_name is not used to recreate the SimProcedure object. It's only there for better
        __repr__.
Note: simprocedure_name is not used to recreate the SimProcedure object. It's only there for better
        __repr__.
Note : simprocedure_name is not used to recreate the SimProcedure object . It s only there for better __repr__ .
def __init__(self,
                 addr,
                 size,
                 cfg,
                 simprocedure_name=None,
                 no_ret=False,
                 function_address=None,
                 block_id=None,
                 irsb=None,
                 soot_block=None,
                 instruction_addrs=None,
                 thumb=False,
                 byte_string=None,
                 is_syscall=None,
                 name=None):
        """
        Note: simprocedure_name is not used to recreate the SimProcedure object. It's only there for better
        __repr__.
        """

        self.addr = addr
        self.size = size
        self.simprocedure_name = simprocedure_name
        self.no_ret = no_ret
        self._cfg_model: 'CFGModel' = cfg
        self.function_address = function_address
        self.block_id = block_id  # type: int or BlockID
        self.thumb = thumb
        self.byte_string = byte_string  # type: None or bytes

        self._name = None
        if name is not None:
            self._name = name
        elif isinstance(addr, SootAddressDescriptor):
            self._name = repr(addr)
        else:
            self._name = simprocedure_name
        self.instruction_addrs = list(instruction_addrs) if instruction_addrs is not None else []

        if is_syscall is not None:
            self.is_syscall = is_syscall
        else:
            self.is_syscall = bool(self.simprocedure_name and self._cfg_model.project.simos.is_syscall_addr(addr))

        if not instruction_addrs and not self.is_simprocedure:
            # We have to collect instruction addresses by ourselves
            if irsb is not None:
                self.instruction_addrs = irsb.instruction_addresses

        self.irsb = None
        self.soot_block = soot_block
        self.has_return = False
        self._hash = None

        # Sanity check
        if self.block_id is None and type(self) is CFGNode:  # pylint: disable=unidiomatic-typecheck
            _l.warning("block_id is unspecified for %s. Default to its address %#x.", str(self), self.addr)
            self.block_id = self.addr
def __init__ ( self , addr , size , cfg , simprocedure_name = None , no_ret = False , function_address = None , block_id = None , irsb = None , soot_block = None , instruction_addrs = None , thumb = False , byte_string = None , is_syscall = None , name = None ) : self . addr = addr self . size = size self . simprocedure_name = simprocedure_name self . no_ret = no_ret self . _cfg_model : 'CFGModel' = cfg self . function_address = function_address self . block_id = block_id # type: int or BlockID self . thumb = thumb self . byte_string = byte_string # type: None or bytes self . _name = None if name is not None : self . _name = name elif isinstance ( addr , SootAddressDescriptor ) : self . _name = repr ( addr ) else : self . _name = simprocedure_name self . instruction_addrs = list ( instruction_addrs ) if instruction_addrs is not None else [ ] if is_syscall is not None : self . is_syscall = is_syscall else : self . is_syscall = bool ( self . simprocedure_name and self . _cfg_model . project . simos . is_syscall_addr ( addr ) ) if not instruction_addrs and not self . is_simprocedure : # We have to collect instruction addresses by ourselves if irsb is not None : self . instruction_addrs = irsb . instruction_addresses self . irsb = None self . soot_block = soot_block self . has_return = False self . _hash = None # Sanity check if self . block_id is None and type ( self ) is CFGNode : # pylint: disable=unidiomatic-typecheck _l . warning ( "block_id is unspecified for %s. Default to its address %#x." , str ( self ) , self . addr ) self . block_id = self . addr