'Constructor.
:param Reassembler binary: The Binary analysis.
:param angr.knowledge.Function function: The function it represents
:param int addr: Address of the function. Not required if `function` is provided.
:param int size: Size of the function. Not required if `function` is provided.
:param str section: Which section this function comes from.
:return: None'

def __init__(self, binary, function=None, addr=None, size=None, name=None, section='.text', asm_code=None):

    self.binary = binary
    self.project = binary.project
    if (function is None):
        self.addr = addr
        self.size = size
        self.function = None
        self._name = name
    else:
        self.addr = function.addr
        self.size = None
        self.function = function
        self._name = function.name
    self.asm_code = asm_code
    self.section = section
    self.blocks = []
    self._initialize()
