Jacques Bouaud

113 papers A* 1B 8C 1Misc 18Journal 15Unranked 70
YearRankTypeTitle / Venue / Authors
2025 conf
MedInfo
Akram Redjdal, Tram-Anh Hyunh, Jacques Bouaud, Joseph Gligorov, Brigitte Séroussi
2024 conf
MIE
Ibrahim Alaa Eddine Madi, Akram Redjdal, Jacques Bouaud, Brigitte Séroussi
2024 conf
MIE
Akram Redjdal, Natallia Novikava, Emmanuelle Kempf, Jacques Bouaud, Brigitte Séroussi
2024 conf
MIE
Solène Delourme, Akram Redjdal, Jacques Bouaud, Brigitte Séroussi
2023 conf
ICIMTH
Natallia Novikava, Akram Redjdal, Jacques Bouaud, Brigitte Séroussi
2022 conf
ICIMTH
Mohammadreza Azarpira, Akram Redjdal, Jacques Bouaud, Brigitte Séroussi
2022 conf
MIE
Akram Redjdal, Jacques Bouaud, Joseph Gligorov, Brigitte Séroussi
2021 conf
ICIMTH
Abdelmalek Mouazer, Romain Leguillon, Bertille Leroy, Karima Sedki, Christian Simon, Hector Falcoff, Matthieu Schuers, Sophie Dubois, Cédric Bousquet, Lina Soualmia, Catherine Letord, Stéfan Jacques Darmoni, Jacques Bouaud, Brigitte Séroussi, Rosy Tsopra, Jean-Baptiste Lamy
2021 conf
EFMI-STC
Akram Redjdal, Jacques Bouaud, Joseph Gligorov, Brigitte Séroussi
2021 conf
MedInfo
Akram Redjdal, Jacques Bouaud, Joseph Gligorov, Brigitte Séroussi
2021 conf
EFMI-STC
My-Anh Le Thien, Akram Redjdal, Jacques Bouaud, Brigitte Séroussi
2021 conf
MIE
Akram Redjdal, Jacques Bouaud, Gilles Guézennec, Joseph Gligorov, Brigitte Séroussi
2021 conf
MIE
Abir Abdellatif, Jacques Bouaud, Mélissa Tholomier, Joël Belmin, Brigitte Séroussi
2021 conf
MedInfo
My-Anh Le Thien, Akram Redjdal, Jacques Bouaud, Brigitte Séroussi
2020 conf
MIE
Abir Abdellatif, Jacques Bouaud, Duy Nghiem, Carmelo Lafuente-Lafuente, Joël Belmin, Brigitte Séroussi
2020 conf
EFMI-STC
Akram Redjdal, Jacques Bouaud, Gilles Guézennec, Joseph Gligorov, Brigitte Séroussi
2020 Misc conf
AMIA
Brigitte Séroussi, Mourad B. Ghomari, Gilles Guézennec, Florence Federspiel, Isabelle Debrix, Jacques Bouaud
2020 conf
EFMI-STC
Hicham Kouz, Jacques Bouaud, Gilles Guézennec, Brigitte Séroussi
2020 J jnl
Artif. Intell. Medicine
Jacques Bouaud, Sylvia Pelayo, Jean-Baptiste Lamy, Coralie Prebet, Charlotte Ngo, Luis Teixeira, Gilles Guézennec, Brigitte Séroussi
2020 conf
EGC
Jean-Baptiste Lamy, Booma Devi Sekar, Gilles Guézennec, Jacques Bouaud, Brigitte Séroussi
2020 conf
MIE
George Despotou, Gokce Banu Laleci Erturkmen, Mustafa Yuksel, Bunyamin Sarigul, Pontus Lindman, Marie-Christine Jaulent, Jacques Bouaud, Lamine Traore, Sarah N. Lim Choi Keung, Esteban De Manuel Keenoy, Dolores Verdoy, Antonio De Blas, Nicolas Gonzalez, Mikael Lilja, Marie Sherman, Malte Von Tottleben, Marie Beach, Christopher Marguerie, Liran Karni, Gunnar O. Klein, Dipak Kalra, Rong Chen, Theodoros N. Arvanitis
2020 conf
MIE
Claudia Blancafort, Jacques Bouaud, Coralie Prebet, Brigitte Séroussi
2020 Misc conf
AMIA
Sylvia Pelayo, Jacques Bouaud, Claudia Blancafort, Jean-Baptiste Lamy, Booma Devi Sekar, Nekane Larburu, Naiara Muro, Ander Urruticoechea, Jon Belloso, Guillermo Valderas, Sara Guardiola, Charlotte Ngo, Luis Teixeira, Gilles Guézennec, Brigitte Séroussi
2020 conf
MIE
Brigitte Séroussi, Jacques Bouaud
2020 conf
EFMI-STC
Abir Abdellatif, Jacques Bouaud, Joël Belmin, Brigitte Séroussi
2019 conf
MedInfo
Brigitte Séroussi, Houda Ouarrirh, Ismaël Elalamy, Grigorios Gerotziafas, Isabelle Debrix, Jacques Bouaud
2019 J jnl
Artif. Intell. Medicine
Jean-Baptiste Lamy, Booma Devi Sekar, Gilles Guézennec, Jacques Bouaud, Brigitte Séroussi
2019 conf
ICIMTH
Naiara Muro, Nekane Larburu, Jacques Bouaud, Brigitte Séroussi
2019 conf
EFMI-STC
Brigitte Séroussi, Coralie Prebet, Charlotte Ngo, Luis Teixeira, Gilles Guézennec, Jacques Bouaud
2018 J jnl
Int. J. Comput. Intell. Syst.
Booma Devi Sekar, Jean-Baptiste Lamy, Nekane Larburu, Brigitte Séroussi, Gilles Guézennec, Jacques Bouaud, Naiara Muro, Hui Wang, Jun Liu
2018 conf
MIE
Jacques Bouaud, Gilles Guézennec, Brigitte Séroussi
2018 conf
EFMI-STC
Brigitte Séroussi, Jean-Baptiste Lamy, Naiara Muro, Nekane Larburu, Booma Devi Sekar, Gilles Guézennec, Jacques Bouaud
2018 C conf
HealthCom
Booma Devi Sekar, Jean-Baptiste Lamy, Naiara Muro, Amaia Ugarriza Pinedo, Brigitte Séroussi, Nekane Larburu, Gilles Guézennec, Jacques Bouaud, Frank Guijarro Masero, Monica Arrue, Hui Wang
2018 J jnl
Expert Syst. Appl.
Adrien Ugon, Amina Kotti, Brigitte Séroussi, Karima Sedki, Jacques Bouaud, Jean-Gabriel Ganascia, Patrick Garda, Carole Philippe, Andréa Pinna
2018 conf
EFMI-STC
Fouad Sadki, Jacques Bouaud, Gilles Guézennec, Brigitte Séroussi
2018 conf
MIE
Coralie Prebet, Jacques Bouaud, Gilles Guézennec, Brigitte Séroussi
2018 conf
MIE
Brigitte Séroussi, Jacques Bouaud
2017 conf
HEALTHINF
Nekane Larburu, Naiara Muro, Iván Macía, Eider Sanchez, Hui Wang, Robert John Winder, Jacques Bouaud, Brigitte Séroussi
2017 Misc conf
AMIA
Brigitte Séroussi, Gilles Guézennec, Jean-Baptiste Lamy, Naiara Muro, Nekane Larburu, Booma Devi Sekar, Coralie Prebet, Jacques Bouaud
2017 conf
MedInfo
Brigitte Séroussi, Alexandre Galopin, Mouhssin Gaouar, Suzanne Pereira, Jacques Bouaud
2016 Misc conf
AMIA
Brigitte Séroussi, Jacques Bouaud
2016 conf
MIE
Adrien Ugon, Karima Sedki, Amina Kotti, Brigitte Séroussi, Carole Philippe, Jean-Gabriel Ganascia, Patrick Garda, Jacques Bouaud, Andréa Pinna
2016 conf
MIE
Jacques Bouaud, Alexandre Galopin, Assia Oulad Kouider, Brigitte Séroussi
2015 conf
MedInfo
Alexandre Galopin, Jacques Bouaud, Suzanne Pereira, Brigitte Séroussi
2015 conf
MIE
Alexandre Galopin, Jacques Bouaud, Suzanne Pereira, Brigitte Séroussi
2015 conf
MIE
Marc Benard, Jacques Bouaud, Claude Marsault, Frank Boudghene, Marie-France Carette, Brigitte Séroussi
2015 conf
MedInfo
Jacques Bouaud, Jean-Philippe Spano, Jean-Pierre Lefranc, Isabelle Cojean-Zelek, Brigitte Blaszka-Jaulerry, Laurent Zelek, Axel Durieux, Christophe Tournigand, Alexandra Rousseau, Pierre-Yves Vandenbussche, Brigitte Séroussi
2014 Misc conf
AMIA
Jacques Bouaud, Brigitte Blaszka-Jaulerry, Laurent Zelek, Jean-Philippe Spano, Jean-Pierre Lefranc, Isabelle Cojean-Zelek, Axel Durieux, Christophe Tournigand, Alexandra Rousseau, Brigitte Séroussi
2014 conf
MIE
Brigitte Séroussi, Hector Falcoff, Valérie Ertel-Pau, Véronique Raimond, Jacques Bouaud
2014 conf
IC
Jacques Bouaud, Arnaud Soulet, Jean-Philippe Spano, Jean-Pierre Lefranc, Isabelle Cojean-Zelek, Brigitte Blaszka-Jaulerry, Laurent Zelek, Axel Durieux, Christophe Tournigand, Nizar Messai, Alexandra Rousseau, Brigitte Séroussi
2014 conf
JFIM
Jacques Bouaud, Hector Falcoff, Valérie Ertel-Pau, Véronique Raimond, Brigitte Séroussi
2014 conf
MIE
Alexandre Galopin, Jacques Bouaud, Suzanne Pereira, Brigitte Séroussi
2014 conf
JFIM
Alexandre Galopin, Jacques Bouaud, Suzanne Pereira, Brigitte Séroussi
2013 J jnl
CoRR
Jean-Baptiste Lamy, Vahid Ebrahiminia, Brigitte Séroussi, Jacques Bouaud, Christian Simon, Madeleine Favre, Hector Falcoff, Alain Venot
2013 conf
IC
Brigitte Séroussi, Nizar Messai, Cédric Laouenan, France Mentré, Jacques Bouaud
2013 conf
EFMI-STC
Jacques Bouaud, Hector Falcoff, Brigitte Séroussi
2013 conf
MedInfo
Brigitte Séroussi, Arnaud Soulet, Jean-Philippe Spano, Jean-Pierre Lefranc, Isabelle Cojean-Zelek, Brigitte Blaszka-Jaulerry, Laurent Zelek, Axel Durieux, Christophe Tournigand, Nizar Messai, Alexandra Rousseau, Jacques Bouaud
2012 conf
IC
Jacques Bouaud, Brigitte Séroussi
2012 J jnl
Tech. Sci. Informatiques
Jean Charlet, Bruno Bachimont, Laurent Mazuel, Ferdinand Dhombres, Marie-Christine Jaulent, Jacques Bouaud
2012 Misc conf
AMIA
Brigitte Séroussi, Arnaud Soulet, Nizar Messai, Cédric Laouenan, France Mentré, Jacques Bouaud
2011 conf
MIE
Jean-Baptiste Lamy, Vahid Ebrahiminia, Brigitte Séroussi, Jacques Bouaud, Christian Simon, Madeleine Favre, Hector Falcoff, Alain Venot
2011 conf
MIE
Joseph Noussa Yao, Brigitte Séroussi, Jacques Bouaud
2011 J jnl
Rev. d'Intelligence Artif.
Nizar Messai, Jacques Bouaud, Marie-Aude Aufaure, Laurent Zelek, Brigitte Séroussi
2011 conf
IC
Brigitte Séroussi, Dominique Sauquet, Hector Falcoff, Jacques Julien, Jacques Bouaud
2011 B conf
AIME
Nizar Messai, Jacques Bouaud, Marie-Aude Aufaure, Laurent Zelek, Brigitte Séroussi
2011 J jnl
Rev. d'Intelligence Artif.
Joseph Noussa Yao, Brigitte Séroussi, Jacques Bouaud
2010 J jnl
BMC Medical Informatics Decis. Mak.
Jean-Baptiste Lamy, Vahid Ebrahiminia, Christine Riou, Brigitte Séroussi, Jacques Bouaud, Christian Simon, Stéphane Dubois, Antoine Butti, Gérard Simon, Madeleine Favre, Hector Falcoff, Alain Venot
2010 conf
IC
Jacques Bouaud, Dominique Sauquet, Philippe Giral, Jacques Julien, Philippe Cornet, Hector Falcoff, Brigitte Séroussi
2010 conf
MedInfo
Brigitte Séroussi, Jacques Bouaud, Dominique Sauquet, Philippe Giral, Philippe Cornet, Hector Falcoff, Jacques Julien
2009 Misc conf
AMIA
Jacques Bouaud, Brigitte Séroussi, Hector Falcoff, Jacques Julien, Christian Simon, Denké L. Denké
2009 conf
Actes d'IC
Brigitte Séroussi, Jacques Bouaud, Denké L. Denké, Jacques Julien, Hector Falcoff
2009 conf
MIE
Brigitte Séroussi, Jacques Bouaud, Denké L. Denké, Hector Falcoff, Jacques Julien
2008 conf
MIE
Jacques Bouaud, Brigitte Séroussi
2008 conf
Actes d'IC
Jacques Bouaud, Brigitte Séroussi, Ambre Brizon
2007 B conf
AIME
Brigitte Séroussi, Jacques Bouaud, Huguette Lioté, Charles Mayaud
2007 conf
MedInfo
Jacques Bouaud, Brigitte Séroussi, Ambre Brizon, Thibault Culty, France Mentré, Vincent Ravery
2007 Misc conf
AMIA
Brigitte Séroussi, Jacques Bouaud, Joseph Gligorov, Serge Uzan
2007 conf
Actes d'IC
Brigitte Séroussi, Jacques Bouaud, Huguette Lioté, Charles Mayaud
2006 Misc conf
AMIA
Jacques Bouaud, Brigitte Séroussi, Hector Falcoff, Alain Venot
2006 conf
MIE
Vahid Ebrahiminia, Christine Riou, Brigitte Séroussi, Jacques Bouaud, Stéphane Dubois, Hector Falcoff, Alain Venot
2005 B conf
AIME
Brigitte Séroussi, Jacques Bouaud, Jean-Jacques Vieillot
2005 J jnl
Int. J. Medical Informatics
Gersende Georg, Brigitte Séroussi, Jacques Bouaud
2005 J jnl
Int. J. Medical Informatics
Brigitte Séroussi, Jacques Bouaud, Gilles Chatellier
2004 conf
MedInfo
Brigitte Séroussi, Jacques Bouaud, Gilles Chatellier, Alain Venot
2004 conf
CGP
Brigitte Séroussi, Jacques Bouaud
2004 conf
MedInfo
Jacques Bouaud, Brigitte Séroussi, Baptiste Touzet
2004 conf
MedInfo
Gersende Georg, Brigitte Séroussi, Jacques Bouaud
2003 B conf
AIME
Jacques Bouaud, Brigitte Séroussi, Baptiste Touzet
2003 J jnl
Ingénierie des Systèmes d Inf.
Brigitte Séroussi, Jacques Bouaud
2003 Misc conf
AMIA
Gersende Georg, Brigitte Séroussi, Jacques Bouaud
2003 conf
MIE
Gersende Georg, Brigitte Séroussi, Jacques Bouaud
2003 B conf
AIME
Gersende Georg, Brigitte Séroussi, Jacques Bouaud
2003 conf
MIE
Brigitte Séroussi, Jacques Bouaud, Gilles Chatellier
2003 J jnl
Artif. Intell. Medicine
Brigitte Séroussi, Jacques Bouaud
2002 Misc conf
AMIA
Jacques Bouaud, Brigitte Séroussi
2001 conf
MedInfo
Jacques Bouaud, Brigitte Séroussi, Éric-Charles Antoine, Laurent Zelek, Marc Spielmann
2001 conf
MedInfo
Brigitte Séroussi, Jacques Bouaud, Hervé Dréau, Hector Falcoff, Christine Riou, Michel Joubert, Christian Simon, Gérard Simon, Alain Venot
2001 J jnl
Artif. Intell. Medicine
Brigitte Séroussi, Jacques Bouaud, Éric-Charles Antoine
2001 B conf
AIME
Brigitte Séroussi, Jacques Bouaud, Éric-Charles Antoine, Laurent Zelek, Marc Spielmann
2000 conf
EWGLP
Brigitte Séroussi, Jacques Bouaud, Éric-Charles Antoine, Laurent Zelek, Marc Spielmann
2000 Misc conf
AMIA
Jacques Bouaud, Brigitte Séroussi, Éric-Charles Antoine, Laurent Zelek, Marc Spielmann
1999 conf
AIMDM
Brigitte Séroussi, Jacques Bouaud, Éric-Charles Antoine
1999 Misc conf
AMIA
Brigitte Séroussi, Jacques Bouaud, Éric-Charles Antoine
1998 B conf
LREC
Benoît Habert, Adeline Nazarenko, Pierre Zweigenbaum, Jacques Bouaud
1998 Misc conf
AMIA
Jacques Bouaud, Brigitte Séroussi, Éric-Charles Antoine, M. Gozy, David Khayat, Jean-François Boisvieux
1998 Misc conf
AMIA
Pierre Zweigenbaum, Benoit Habert, Adeline Nazarenko, Jacques Bouaud
1997 Misc conf
AMIA
Jacques Bouaud, Pierre Zweigenbaum, Bruno Bachimont
1997 Misc conf
AMIA
Adeline Nazarenko, Pierre Zweigenbaum, Jacques Bouaud, Benoit Habert
1997 Misc conf
AMIA
Pierre Zweigenbaum, Jacques Bouaud, Bruno Bachimont, Jean Charlet, Jean-François Boisvieux
1996 B conf
COLING
Jacques Bouaud, Bruno Bachimont, Pierre Zweigenbaum
1996 J jnl
CoRR
Jacques Bouaud, Bruno Bachimont, Pierre Zweigenbaum
1993 A* conf
IJCAI
Jacques Bouaud
1992 conf
Workshop on Conceptual Graphs
Jacques Bouaud, Pierre Zweigenbaum
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