def select_operand(
        self, ins_addr: int, operand_index: int, operand: OperandDescriptor, unique: bool = False
    ) -> None:
        """
        Mark an operand as selected.

        :param ins_addr:                Address of the instruction.
        :param operand_index:           Index of the operand.
        :param operand:   Data of the operand.
        :param unique:                 If this is a unique selection or not.
        :return:                            None
        """

        tpl = ins_addr, operand_index
        if tpl not in self.selected_operands:
            if unique:
                self.selected_operands.clear()
            self.selected_operands[tpl] = operand
            self.selected_operands.am_event()

        Mark an operand as selected.

        :param ins_addr:                Address of the instruction.
        :param operand_index:           Index of the operand.
        :param operand:   Data of the operand.
        :param unique:                 If this is a unique selection or not.
        :return:                            None
        
angrmanagement/logic/disassembly/info_dock.py