':return:'

def assembly(self, comments=False, symbolized=True):

    if comments:
        dbg_comments = self.dbg_comments()
    else:
        dbg_comments = ''
    labels = '\n'.join([str(lbl) for lbl in self.labels])
    inserted_asm_before_label = ''
    if (self.addr in self.binary.inserted_asm_before_label):
        if comments:
            inserted_asm_before_label += ' DCTB #    Inserted    assembly    code    (before    label):\n'
        inserted_asm_before_label = '\n'.join(self.binary.inserted_asm_before_label[self.addr])
        inserted_asm_before_label += '\n'
    inserted_asm_after_label = ''
    if (self.addr in self.binary.inserted_asm_after_label):
        if comments:
            inserted_asm_after_label += ' DCTB #    Inserted    assembly    code    (after    label):\n'
        inserted_asm_after_label = '\n'.join(self.binary.inserted_asm_after_label[self.addr])
        inserted_asm_after_label += '\n'
    not_symbolized = (' DCTB %s DCTB %s' % (self.mnemonic, self.op_str))
    if (not symbolized):
        asm = not_symbolized
    elif (not any([operand.symbolized for operand in self.operands])):
        asm = not_symbolized
    elif (not self.operands):
        asm = not_symbolized
    else:
        all_operands = [operand.operand_str for operand in self.operands]
        mnemonic = self.mnemonic
        for (i, op) in enumerate(self.operands):
            op_asm = op.assembly()
            if (op_asm is not None):
                if (op.type == OP_TYPE_IMM):
                    all_operands[i] = op_asm
                elif (op.type == OP_TYPE_MEM):
                    if (self.binary.syntax == 'intel'):
                        all_operands[i] = (((all_operands[i][:(all_operands[i].index('ptr') + 3)] + '    [') + op_asm) + ']')
                    elif (self.binary.syntax == 'at&t'):
                        all_operands[i] = op_asm
                if (self.capstone_operand_types[i] == capstone.CS_OP_IMM):
                    if (mnemonic.startswith('j') or mnemonic.startswith('call') or mnemonic.startswith('loop')):
                        pass
                    else:
                        if op.is_dataref:
                            op.label.var_size = op.size
                        if (self.binary.syntax == 'at&t'):
                            all_operands[i] = ('$' + all_operands[i])
                        else:
                            all_operands[i] = ('OFFSET    FLAT:' + all_operands[i])
        asm = (' DCTB %s%s' % (mnemonic, (' DCTB ' + ',    '.join(all_operands))))
    if (self.addr in self.binary._removed_instructions):
        contents = [dbg_comments, inserted_asm_before_label, labels, inserted_asm_after_label]
    else:
        contents = [dbg_comments, inserted_asm_before_label, labels, inserted_asm_after_label, asm]
    contents = [a for a in contents if a]
    return '\n'.join(contents)
