R. Scott Evans

57 papers Misc 20Journal 29Unranked 8
YearRankTypeTitle / Venue / Authors
2022 J jnl
J. Am. Medical Informatics Assoc.
Alan H. Morris, Christopher Horvat, Brian Stagg, David W. Grainger, Michael Lanspa, James Orme, Terry P. Clemmer, Lindell K. Weaver, Frank Thomas, Colin K. Grissom, Ellie Hirshberg, Thomas D. East, Carrie Jane Wallace, Michael P. Young, Dean F. Sittig, Mary Suchyta, James E. Pearl, Antinio Pesenti, Michela Bombino, Eduardo Beck, Katherine A. Sward, Charlene R. Weir, Shobha Phansalkar, Gordon R. Bernard, B. Taylor Thompson, Roy Brower, Jonathon D. Truwit, Jay S. Steingrub, R. Duncan Hite, Douglas F. Willson, Jerry J. Zimmerman, Vinay Nadkarni, Adrienne G. Randolph, Martha A. Q. Curley, Christopher J. L. Newth, Jacques Lacroix, Michael S. D. Agus, Kang Hoe Lee, Bennett P. deBoisblanc, Frederick Alan Moore, R. Scott Evans, Dean K. Sorenson, Anthony Wong, Michael V. Boland, Willard H. Dere, Alan S. Crandall, Julio C. Facelli, Stanley M. Huff, Peter J. Haug, Ulrike Pielmeier, Stephen Edward Rees, Dan S. Karbing, Steen Andreassen, Eddy Fan, Roberta M. Goldring, Kenneth I. Berger, Beno W. Oppenheimer, Eugene Wesley Ely, Brian W. Pickering, David A. Schoenfeld, Irena Tocino, Russell S. Gonnering, Peter J. Pronovost, Lucy A. Savitz, Didier Dreyfuss, Arthur S. Slutsky, James D. Crapo, Michael R. Pinsky, Brent James, Donald M. Berwick
2021 J jnl
J. Am. Medical Informatics Assoc.
Alan H. Morris, Brian Stagg, Michael Lanspa, James Orme, Terry P. Clemmer, Lindell K. Weaver, Frank Thomas, Colin K. Grissom, Ellie Hirshberg, Thomas D. East, Carrie Jane Wallace, Michael P. Young, Dean F. Sittig, Antonio Pesenti, Michela Bombino, Eduardo Beck, Katherine A. Sward, Charlene R. Weir, Shobha S. Phansalkar, Gordon R. Bernard, B. Taylor Thompson, Roy Brower, Jonathon D. Truwit, Jay S. Steingrub, R. Duncan Hite, Douglas F. Willson, Jerry J. Zimmerman, Vinay M. Nadkarni, Adrienne Randolph, Martha A. Q. Curley, Christopher J. L. Newth, Jacques Lacroix, Michael S. D. Agus, Kang H. Lee, Bennett P. deBoisblanc, R. Scott Evans, Dean K. Sorenson, Anthony Wong, Michael V. Boland, David W. Grainger, Willard H. Dere, Alan S. Crandall, Julio C. Facelli, Stanley M. Huff, Peter J. Haug, Ulrike Pielmeier, Stephen Edward Rees, Dan S. Karbing, Steen Andreassen, Eddy Fan, Roberta M. Goldring, Kenneth I. Berger, Beno W. Oppenheimer, Eugene Wesley Ely, Ognjen Gajic, Brian W. Pickering, David A. Schoenfeld, Irena Tocino, Russell S. Gonnering, Peter J. Pronovost, Lucy A. Savitz, Didier Dreyfuss, Arthur S. Slutsky, James D. Crapo, Derek C. Angus, Michael R. Pinsky, Brent James, Donald M. Berwick
2021 J jnl
Appl. Clin. Inform.
R. Scott Evans
2018 Misc conf
AMIA
R. Scott Evans, Jim Lloyd, Vrena B. Flint, Benjamin D. Horne, Susan Rea, Dave Collingridge, Steven Abplanalp, Ali Fazili Ahmed, Denitza Blagev
2017 Misc conf
AMIA
R. Scott Evans, Abdallah Kfoury, Benjamin D. Horne, Jim Lloyd, Jose Benuzillo, Kismet Rasmusson, Colleen Roberts, Donald L. Lappé
2017 J jnl
Appl. Clin. Inform.
Anne M. Turner, Julio C. Facelli, Monique W. M. Jaspers, Thomas Wetter, Daniel Pfeifer, Laël Cranmer Gatewood, Terry Adam, Yu-Chuan Li, Ming-Chin Lin, R. Scott Evans, Anna L. Beukenhorst, Hugo Johan Theodoore van Mens, Esmée Tensen, Christian Bock, Laura Fendrich, Peter Seitz, Julian Suleder, Ranyah Aldekhyyel, Kent Bridgeman, Zhen Hu, Aaron Sattler, Shin-Yi Guo, Md. Mohaimenul Islam, Dina Nur Anggraini Ningrum, Hsin-Ru Tung, Jiantao Bian, Joseph M. Plasek, Casey A. Rommel, Juandalyn Burke, Harkirat Sohi
2017 Misc conf
AMIA
Carl J. Grafe, Catherine J. Staes, Kensaku Kawamoto, Matthew H. Samore, R. Scott Evans
2016 Misc conf
AMIA
R. Scott Evans, Jose Benuzillo, Benjamin D. Horne, Jim Lloyd, Alejandra Bradshaw, Deborah Budge, Kismet Rasmusson, Colleen A. Roberts, Jason Buckway, Norma Geer, Teresa Garrett, Donald L. Lappé
2016 J jnl
J. Am. Medical Informatics Assoc.
R. Scott Evans, Jose Benuzillo, Benjamin D. Horne, James F. Lloyd, Alejandra Bradshaw, Deborah Budge, Kismet Rasmusson, Colleen Roberts, Jason Buckway, Norma Geer, Teresa Garrett, Donald L. Lappé
2016 conf
Nursing Informatics
Anne-Maria Vollmer, Hans-Ulrich Prokosch, R. Scott Evans, Kathryn Gibb Kuttler
2015 J jnl
J. Am. Medical Informatics Assoc.
R. Scott Evans, Kathryn Gibb Kuttler, Kathy J. Simpson, Stephen Howe, Peter F. Crossno, Kyle V. Johnson, Misty N. Schreiner, James F. Lloyd, William H. Tettelbach, Roger K. Keddington, Alden Tanner, Chelbi Wilde, Terry P. Clemmer
2015 conf
MIE
R. Scott Evans, Deborah Budge, Jose Benuzillo, James F. Lloyd, Jen Nixon, Rami Alharethi, Kismet Rasmusson, Colleen Roberts, Benjamin D. Horne, Donald L. Lappé
2015 Misc conf
AMIA
Scott D. Nelson, Joanne LaFleur, Guilherme Del Fiol, R. Scott Evans, Charlene R. Weir
2015 Misc conf
AMIA
Jason R. Jacobs, Scott P. Narus, R. Scott Evans, Catherine J. Staes
2015 Misc conf
AMIA
Scott D. Nelson, Joanne LaFleur, Guilherme Del Fiol, R. Scott Evans, Charlene R. Weir
2015 conf
MedInfo
R. Scott Evans, James F. Lloyd, Kyle V. Johnson, Stephen Howe, Jacob S. Tripp
2014 Misc conf
AMIA
R. Scott Evans, Kathryn Gibb Kuttler, Kathy J. Simpson, Stephen Howe, Peter F. Crossno, Kyle V. Johnson, Misty N. Schreiner, James F. Lloyd, William H. Tettelbach, Roger K. Keddington, Alden Tanner, Chelbi Wilde, Terry P. Clemmer
2013 conf
MedInfo
R. Scott Evans, Vrena B. Flint, Tom V. Cloward, William Beninati, James F. Lloyd, Kimberly Megwalu, Kathy J. Simpson, Ahmed M. Alsharit, Shayna B. Balls, Robert J. Farney
2013 Misc conf
AMIA
R. Scott Evans, Jared Olson, Eddie Stenehjem, Whitney Redding, Emily Thorell, Steve Howe, Xinzi Wu, James F. Lloyd
2012 Misc conf
AMIA
R. Scott Evans, James F. Lloyd, Lee Pierce
2011 J jnl
BMC Medical Informatics Decis. Mak.
Dean F. Sittig, Adam Wright, Seth Meltzer, Linas Simonaitis, R. Scott Evans, W. Paul Nichol, Joan S. Ash, Blackford Middleton
2011 J jnl
J. Am. Medical Informatics Assoc.
Aldo Tinoco, R. Scott Evans, Catherine J. Staes, James F. Lloyd, Jeffrey M. Rothschild, Peter J. Haug
2011 J jnl
J. Am. Medical Informatics Assoc.
Adam Wright, Dean F. Sittig, Joan S. Ash, Joshua Feblowitz, Seth Meltzer, Carmit McMullen, Ken P. Guappone, Jim Carpenter, Joshua E. Richardson, Linas Simonaitis, R. Scott Evans, W. Paul Nichol, Blackford Middleton
2011 J jnl
Int. J. Medical Informatics
Christopher H. O. Olola, Scott P. Narus, Jonathan R. Nebeker, Mollie R. Poynton, Joseph Hales, Belle Rowan, Heather LeSieur, Cynthia Zumbrennen, Annemarie A. Edwards, Robert Crawford, Spencer Amundsen, Yasmin Kabir, Joseph Atkin, Cynthia Newberry, Jason Young, Tariq Hanifi, Ben Risenmay, Tyler Sorensen, R. Scott Evans
2010 J jnl
J. Am. Medical Informatics Assoc.
Deepthi Rajeev, Catherine J. Staes, R. Scott Evans, Susan Mottice, Robert T. Rolfs, Matthew H. Samore, Jon Whitney, Richard Kurzban, Stanley M. Huff
2010 conf
MedInfo
R. Scott Evans, Rick Carlson, Kyle V. Johnson, Brent K. Palmer, James F. Lloyd
2010 J jnl
J. Am. Medical Informatics Assoc.
Deepthi Rajeev, Catherine J. Staes, R. Scott Evans, Susan Mottice, Robert T. Rolfs, Matthew H. Samore, Jon Whitney, Richard Kurzban, Stanley M. Huff
2009 J jnl
J. Biomed. Informatics
Spencer S. Jones, R. Scott Evans, Todd L. Allen, Alun Thomas, Peter J. Haug, Shari J. Welch, Gregory L. Snow
2009 Misc conf
AMIA
R. Scott Evans, Rouett H. Abouzelof, Caroline W. Taylor, Vickie Anderson, Sharon Sumner, Sharon Soutter, Ruth Kleckner, James F. Lloyd
2009 J jnl
J. Biomed. Informatics
Laritza M. Taft, R. Scott Evans, Chi-Ren Shyu, Marlene J. Egger, Nitesh V. Chawla, Joyce A. Mitchell, Sidney N. Thornton, Bruce E. Bray, Michael W. Varner
2009 J jnl
J. Biomed. Informatics
Eric S. Hall, Mollie R. Poynton, Scott P. Narus, Spencer S. Jones, R. Scott Evans, Michael W. Varner, Sidney N. Thornton
2008 Misc conf
AMIA
Spencer S. Jones, R. Scott Evans
2008 J jnl
J. Am. Medical Informatics Assoc.
Catherine J. Staes, R. Scott Evans, Beatriz H. S. C. Rocha, John B. Sorensen, Stanley M. Huff, Joan Arata, Scott P. Narus
2008 J jnl
J. Am. Medical Informatics Assoc.
R. Scott Evans, Carrie Jane Wallace, James F. Lloyd, Caroline W. Taylor, Rouett H. Abouzelof, Sharon Sumner, Kyle V. Johnson, Amyanne Wuthrich, Stephan Harbarth, Matthew H. Samore
2007 J jnl
Int. J. Medical Informatics
Monique W. M. Jaspers, Reed M. Gardner, Lael C. Gatewood, Reinhold Haux, R. Scott Evans
2007 Misc conf
AMIA
R. Scott Evans, Lorraine H. Linford, Jamie H. Sharp, Gayle White, James F. Lloyd, Lindell K. Weaver
2007 J jnl
J. Am. Medical Informatics Assoc.
David K. Vawdrey, Reed M. Gardner, R. Scott Evans, James F. Orme Jr., Terry P. Clemmer, Loren Greenway, Frank A. Drews
2007 conf
MedInfo
Catherine J. Staes, R. Scott Evans, Scott P. Narus, Stanley M. Huff, John B. Sorensen
2007 Misc conf
AMIA
Adi V. Gundlapalli, Hongying Tang, Claude Tonnierre, Gregory J. Stoddard, Robert T. Rolfs, R. Scott Evans, Matthew H. Samore
2006 Misc conf
AMIA
Adam B. Wilcox, Gilad J. Kuperman, David A. Dorr, George Hripcsak, Scott P. Narus, Sidney N. Thornton, R. Scott Evans
2006 J jnl
J. Am. Medical Informatics Assoc.
Catherine J. Staes, Sterling T. Bennett, R. Scott Evans, Scott P. Narus, Stanley M. Huff, John B. Sorensen
2005 J jnl
J. Am. Medical Informatics Assoc.
Nancy C. Nelson, R. Scott Evans, Matthew H. Samore, Reed M. Gardner
2005 J jnl
J. Am. Medical Informatics Assoc.
R. Scott Evans, Kyle V. Johnson, Vrena B. Flint, Tupper Kinder, Charles R. Lyon, William L. Hawley, David K. Vawdrey, George E. Thomsen
2005 J jnl
J. Am. Medical Informatics Assoc.
Catherine J. Staes, Stanley M. Huff, R. Scott Evans, Scott P. Narus, Cyndalynn Tilley, John B. Sorensen
2005 Misc conf
AMIA
R. Scott Evans, Kyle V. Johnson, Vrena B. Flint, Tupper Kinder, William L. Hawley, Charles R. Lyon, David K. Vawdrey, George E. Thomsen
2004 J jnl
J. Am. Medical Informatics Assoc.
Reed M. Gardner, R. Scott Evans
2004 conf
MedInfo
R. Scott Evans, James F. Lloyd, Rouett H. Abouzelof, Caroline W. Taylor, Vickie R. Anderson, Matthew H. Samore
2003 J jnl
Int. J. Medical Informatics
Peter J. Haug, Beatriz H. S. C. Rocha, R. Scott Evans
2003 Misc conf
AMIA
Catherine J. Staes, Stanley M. Huff, Cyndalynn Tilley, Scott P. Narus, John B. Sorensen, R. Scott Evans
2003 J jnl
J. Am. Medical Informatics Assoc.
David W. Bates, R. Scott Evans, Harvey J. Murff, Peter D. Stetson, Lisa Pizziferri, George Hripcsak
2003 J jnl
J. Am. Medical Informatics Assoc.
David W. Bates, R. Scott Evans, Harvey J. Murff, Peter D. Stetson, Lisa Pizziferri, George Hripcsak
2001 conf
MedInfo
James G. Anderson, E. Andrew Balas, David W. Bates, R. Scott Evans
2001 J jnl
J. Am. Medical Informatics Assoc.
Beatriz H. S. C. Rocha, John C. Christenson, R. Scott Evans, Reed M. Gardner
2000 J jnl
J. Am. Medical Informatics Assoc.
Marcelo Fiszman, Wendy Webber Chapman, Dominik Aronsky, R. Scott Evans, Peter J. Haug
2000 Misc conf
AMIA
Charles J. Mullett, R. Scott Evans, John C. Christenson, J. Michael Dean
1999 Misc conf
AMIA
Marcelo Fiszman, Wendy W. Chapman, R. Scott Evans, Peter J. Haug
1998 Misc conf
AMIA
Beatriz H. S. C. Rocha, John C. Christenson, R. Scott Evans, Reed M. Gardner
redb/extractors/decompiler/bninja/arch/x86.py
← Index redb/extractors/decompiler/bninja/arch/x86.py python
from binaryninja.enums import (
    InstructionTextTokenType,
)

# Support both package and standalone imports
try:
    from .architecture import Architecture
except ImportError:
    # Fallback to absolute imports (for multiprocessing spawned processes)
    from redb.extractors.decompiler.bninja.arch.architecture import Architecture


class Arch_x86(Architecture):
    """The concrete class for architecture-dependent details for x86_64"""

    def __init__(self):
        # general purpose registers for 64bits
        self.gpr_64 = [
            "RAX",
            "RBX",
            "RCX",
            "RDX",
            "RSI",
            "RDIR9",
            "R10",
            "R11",
            "R12",
            "R13",
            "R14",
            "R15",
        ]

        self.gpr_32 = [
            "EAX",
            "EBX",
            "ECX",
            "EDX",
            "ESI",
            "EDI",
            "R8D",
            "R9D",
            "R10D",
            "R11D",
            "R12D",
            "R13D",
            "R14D",
            "R15D",
        ]

        self.gpr_16 = [
            "AX",
            "BX",
            "CX",
            "DX",
            "SI",
            "DI",
            "R8W",
            "R9W",
            "R10W",
            "R11W",
            "R12W",
            "R13W",
            "R14W",
            "R15W",
        ]

        self.gpr_8 = [
            "AL",
            "BL",
            "CL",
            "DL",
            "SIL",
            "DIL",
            "R8B",
            "R9B",
            "R10B",
            "R11B",
            "R12B",
            "R13B",
            "R14B",
            "R15B",
        ]

        self.fpu_x87 = ["ST0", "ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7"]

        self.sse_xmm = [
            "XMM0",
            "XMM1",
            "XMM2",
            "XMM3",
            "XMM4",
            "XMM5",
            "XMM6",
            "XMM7",
            "XMM8",
            "XMM9",
            "XMM10",
            "XMM11",
            "XMM12",
            "XMM13",
            "XMM14",
            "XMM15",
        ]

        self.avx_ymm = [
            "YMM0",
            "YMM1",
            "YMM2",
            "YMM3",
            "YMM4",
            "YMM5",
            "YMM6",
            "YMM7",
            "YMM8",
            "YMM9",
            "YMM10",
            "YMM11",
            "YMM12",
            "YMM13",
            "YMM14",
            "YMM15",
        ]
        self.flags = ["FLAGS", "EFLAGS", "RFLAGS"]
        self.stack_registers = ["RBP", "RSP", "SP", "BP"]
        self.size = 8
        self.global_registers = (
            self.gpr_64
            + self.gpr_32
            + self.gpr_16
            + self.gpr_8
            + self.fpu_x87
            + self.sse_xmm
            + self.avx_ymm
        )
        self.opcode_categories = self._initialize_opcode_categories()

        ## instructions
        self.instructions = []

    def is_register(self, register):
        register = register.upper()
        return register in self.global_registers

    def is_general_purpose_register(self, register):
        register = register.upper()
        return (
            register in self.gpr_64
            or register in self.gpr_32
            or register in self.gpr_16
            or register in self.gpr_8
        )

    def is_stack_register(self, register):
        register = register.upper()
        return register in self.stack_registers

    def is_xmm_register(self, register):
        register = register.upper()
        return register in self.sse_xmm

    def is_control_flow(self, instr_tokens):
        return False

    def is_control_flow_instruction(self, instr_tokens):
        """Check if an instruction is a control flow instruction (jump, call, return, loop)."""
        try:
            # Extract the mnemonic from the instruction tokens
            mnemonic = None
            for token in instr_tokens:
                if token.type == InstructionTextTokenType.InstructionToken:
                    mnemonic = token.text.upper()
                    break

            if not mnemonic:
                return False

            # Check if it's a jump, call, return, or loop instruction
            return (
                mnemonic.startswith("J")  # All jumps (JMP, JE, JNE, etc.)
                or mnemonic == "CALL"  # Function calls
                or mnemonic == "RET"  # Return
                or mnemonic == "RETN"  # Another form of return
                or mnemonic.startswith("LOOP")
            )  # Loop instructions

        except Exception as e:
            print(e)
            # If we can't determine, assume it's not a control flow instruction
            return False

    def is_control_flow_instruction_by_mnemonic(self, mnemonic):
        """Check if an instruction is a control flow instruction based on its mnemonic."""
        if not mnemonic:
            return False

        mnemonic = mnemonic.upper()
        return (
            mnemonic.startswith("J")  # All jumps (JMP, JE, JNE, etc.)
            or mnemonic == "CALL"  # Function calls
            or mnemonic == "RET"  # Return
            or mnemonic == "RETN"  # Another form of return
            or mnemonic.startswith("LOOP")
        )

    def _initialize_opcode_categories(self):
        """Initialize mapping of opcodes to categories similar to Ghidra's implementation."""
        opcode_categories = {}
        opcode_index = {}  # Add this to mimic Ghidra's opcodeIndex

        # Define common opcodes array similar to Ghidra's COMMON_OPCODES
        COMMON_OPCODES = [
            # Core instructions (tracked individually)
            "MOV",
            "PUSH",
            "POP",
            "LEA",
            "CALL",
            "RET",  # Data movement and control
            "ADD",
            "SUB",
            "MUL",
            "DIV",  # Basic arithmetic
            "AND",
            "OR",
            "XOR",
            "NOT",  # Logical operations
            "JMP",
            "JE",
            "JNE",  # Basic jumps
            "TEST",
            "CMP",  # Comparisons
            # Grouped categories (aggregated tracking)
            "SIMD_MOVE",  # MOVAPS, MOVDQA, MOVDQU, etc.
            "COND_JUMP_EXT",  # Other conditional jumps (JG, JL, JGE, etc.)
            "STRING_OP",  # MOVS, STOS, LODS, SCAS, CMPS
            "STACK_ADV",  # ENTER, LEAVE, PUSHA, POPA
            "ARITHMETIC_ADV",  # IMUL, IDIV, ADC, SBB
            "BIT_OP",  # SHL, SHR, SAR, ROL, ROR, etc.
            "FPU_OP",  # FLD, FST, FADD, etc.
            "SYSTEM_OP",  # SYSCALL, INT, SYSENTER
            "CRYPTO_OP",  # AES*, SHA* instructions
            "MISC_OP",  # Rare but interesting (CPUID, RDTSC, etc.)
        ]

        # Create index map like Ghidra
        for i, opcode in enumerate(COMMON_OPCODES):
            opcode_index[opcode] = i

        # Now categorize opcodes using if/elif/else structure like in Ghidra
        for opcode in COMMON_OPCODES:
            # String Operations (checking these first to avoid MOV confusion)
            if opcode.startswith("MOVS") or opcode in [
                "STOS",
                "LODS",
                "SCAS",
                "CMPS",
                "REP",
                "REPE",
                "REPNE",
            ]:
                opcode_categories[opcode] = "STRING_MANIPULATION"

            # Data Movement (after string ops to avoid MOVS confusion)
            elif opcode.startswith("MOV") or opcode in ["LEA", "XCHG"]:
                opcode_categories[opcode] = "DATA_MOVEMENT"

            # Stack Operations
            elif opcode in ["PUSH", "POP", "ENTER", "LEAVE", "PUSHA", "POPA"]:
                opcode_categories[opcode] = "STACK_MANAGEMENT"

            # Control Flow (non-conditional)
            elif opcode in ["JMP", "CALL", "RET"]:
                opcode_categories[opcode] = "CONTROL_FLOW"

            # Conditional Jumps and Loops
            elif opcode.startswith("J") or opcode.startswith("LOOP"):
                opcode_categories[opcode] = "CONDITIONAL_JUMP"

            # Arithmetic
            elif opcode in [
                "ADD",
                "SUB",
                "MUL",
                "DIV",
                "IMUL",
                "IDIV",
                "ADC",
                "SBB",
                "INC",
                "DEC",
                "NEG",
            ]:
                opcode_categories[opcode] = "ARITHMETIC"

            # Logical
            elif opcode in ["AND", "OR", "XOR", "NOT", "TEST", "CMP"]:
                opcode_categories[opcode] = "LOGICAL"

            # Shifts & Rotates
            elif opcode in ["SHL", "SHR", "SAR", "SAL", "ROL", "ROR", "RCL", "RCR"]:
                opcode_categories[opcode] = "SHIFT_ROTATE"

            # System & Interrupts
            elif opcode in [
                "SYSCALL",
                "INT",
                "SYSENTER",
                "SYSEXIT",
                "SGDT",
                "SIDT",
                "SLDT",
                "WRMSR",
                "RDMSR",
            ]:
                opcode_categories[opcode] = "SYSTEM_CALLS"

            # Floating Point
            elif opcode.startswith("F"):
                opcode_categories[opcode] = "FPU_ARITHMETIC"

            # System Information and Random Number Generation
            elif opcode in ["PUSHF", "POPF", "CPUID", "RDTSC", "RDRAND", "RDSEED"]:
                opcode_categories[opcode] = "CPU_FEATURES"

            # Cryptography
            elif opcode.startswith("AES") or opcode.startswith("SHA"):
                opcode_categories[opcode] = "CRYPTOGRAPHIC"

            # Miscellaneous (including flag operations)
            else:
                opcode_categories[opcode] = "MISC"

        # Additional categorization for opcodes not in COMMON_OPCODES
        # This can be used in the normalize_opcode method

        # Store both maps as instance variables
        # self.opcode_categories = opcode_categories
        self.opcode_index = opcode_index

        return opcode_categories

    def is_simd_register(self, register):
        return register in self.sse_xmm