def _update_cfb_highlight_regions(self) -> None:
        """
        Update cached list of highlight regions under cursor.
        """
        regions = []
        cfb = self.instance.cfb
        if self.smart_highlighting_enabled and not cfb.am_none:
            for item in cfb.floor_items(self.inner_widget.hex.display_start_addr):
                item_addr, item = item
                if item.size is None:
                    continue
                if (item_addr + item.size) < self.inner_widget.hex.display_start_addr:
                    continue
                if item_addr >= self.inner_widget.hex.display_end_addr:
                    break
                if isinstance(item, MemoryData):
                    is_string = item.sort in (MemoryDataSort.String, MemoryDataSort.UnicodeString)
                    color = Conf.hex_view_string_color if is_string else Conf.hex_view_data_color
                    regions.append(HexHighlightRegion(color, item.addr, item.size, str(item)))
                elif isinstance(item, Block):
                    try:
                        for insn in item.disassembly.insns:
                            s = f"{insn} in {item}"
                            regions.append(
                                HexHighlightRegion(Conf.hex_view_instruction_color, insn.address, insn.size, s)
                            )
                    except angr.errors.SimEngineError:
                        pass  # We may get a node in CFB to a non-decodeable address
        self._cfb_highlights = regions
        self._set_highlighted_regions()

        Update cached list of highlight regions under cursor.
        
angrmanagement/ui/views/hex_view.py