code: def assembly(self, comments=False, symbolized=True):
          
  
          assembly = [ ]
  
          header = "\t.section\t{section}\n\t.align\t{alignment}\n".format(section=self.section,
                                                   alignment=self.binary.section_alignment(self.section)
                                                   )
          if self.addr is not None:
              procedure_name = "%#x" % self.addr
          else:
              procedure_name = self._name
          header += "\t#Procedure %s\n" % procedure_name
  
          if self._output_function_label:
              if self.addr:
                  function_label = self.binary.symbol_manager.new_label(self.addr)
              else:
                  function_label = self.binary.symbol_manager.new_label(None, name=procedure_name, is_function=True)
              header += str(function_label) + "\n"
  
          assembly.append((self.addr, header))
  
          if self.asm_code:
              s = self.asm_code
              assembly.append((self.addr, s))
          elif self.blocks:
              for b in sorted(self.blocks, key=lambda x:x.addr):  # type: BasicBlock
                  s = b.assembly(comments=comments, symbolized=symbolized)
                  assembly.append((b.addr, s))
  
          return assembly
docs: Get the assembly manifest of the procedure.
  
          :param comments:
          :param symbolized:
          :return: A list of tuples (address, basic block assembly), ordered by basic block addresses
          :rtype: list