Walterio W. Mayol-Cuevas

160 papers A* 30A 19B 5C 3Misc 8Journal 65Unranked 30
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Xinyi Zheng, Yunze Liu, Chi-Hao Wu, Fan Zhang, Hao Zheng, Wenqi Zhou, Walterio W. Mayol-Cuevas, Junxiao Shen
2025 J jnl
Int. J. Comput. Vis.
Shijia Feng, Michael Wray, Brian Sullivan, Youngkyoon Jang, Casimir J. H. Ludwig, Iain D. Gilchrist, Walterio W. Mayol-Cuevas
2025 J jnl
CoRR
Xinyi Zheng, Steve Zhang, Weizhe Lin, Aaron Zhang, Walterio W. Mayol-Cuevas, Junxiao Shen
2025 J jnl
CoRR
Shijia Feng, Michael Wray, Walterio W. Mayol-Cuevas
2025 J jnl
CoRR
Shijia Feng, Michael Wray, Walterio W. Mayol-Cuevas
2025 conf
EMNLP (Findings)
Wenqi Zhou, Kai Cao, Hao Zheng, Yunze Liu, Xinyi Zheng, Miao Liu, Per Ola Kristensson, Walterio W. Mayol-Cuevas, Fan Zhang, Weizhe Lin, Junxiao Shen
2025 J jnl
CoRR
Wenqi Zhou, Kai Cao, Hao Zheng, Xinyi Zheng, Miao Liu, Per Ola Kristensson, Walterio W. Mayol-Cuevas, Fan Zhang, Weizhe Lin, Junxiao Shen
2024 J jnl
CoRR
Shijia Feng, Michael Wray, Brian Sullivan, Youngkyoon Jang, Casimir J. H. Ludwig, Iain D. Gilchrist, Walterio W. Mayol-Cuevas
2024 J jnl
CoRR
Hongyi Zhang, Walterio W. Mayol-Cuevas
2024 conf
CVPR Workshops
Ramon Izquierdo-Cordova, Walterio W. Mayol-Cuevas
2023 J jnl
Frontiers Robotics AI
Abel Pacheco-Ortega, Walterio W. Mayol-Cuevas
2023 J jnl
Frontiers Robotics AI
Nutan Chen, Walterio W. Mayol-Cuevas, Maximilian Karl, Elie Aljalbout, Andy Zeng, Aurelio Cortese, Wolfram Burgard, Herke van Hoof
2023 J jnl
Neural Comput. Appl.
Sergio Cebollada, Luis Payá, Adrián Peidró, Walterio W. Mayol-Cuevas, Óscar Reinoso
2022 J jnl
CoRR
Abel Pacheco-Ortega, Walterio W. Mayol-Cuevas
2022 conf
ECCV Workshops (3)
Abel Pacheco-Ortega, Walterio W. Mayol-Cuevas
2022 J jnl
CoRR
Walterio W. Mayol-Cuevas
2022 J jnl
Sci. Robotics
Piotr Dudek, Tom Richardson, Laurie Bose, Stephen J. Carey, Jianing Chen, Colin Greatwood, Yanan Liu, Walterio W. Mayol-Cuevas
2022 J jnl
CoRR
Tejas Khot, Nataliya Shapovalova, Silviu S. Andrei, Walterio W. Mayol-Cuevas
2021 J jnl
IET Image Process.
Yanan Liu, Laurie Bose, Colin Greatwood, Jianing Chen, Rui Fan, Thomas Richardson, Stephen J. Carey, Piotr Dudek, Walterio W. Mayol-Cuevas
2021 J jnl
CoRR
Yanan Liu, Jianing Chen, Laurie Bose, Piotr Dudek, Walterio W. Mayol-Cuevas
2021 J jnl
CoRR
Yanan Liu, Jianing Chen, Laurie Bose, Piotr Dudek, Walterio W. Mayol-Cuevas
2021 J jnl
CoRR
Yao Lu, Walterio W. Mayol-Cuevas
2021 conf
CVPR Workshops
Ramon Izquierdo-Cordova, Walterio W. Mayol-Cuevas
2021 J jnl
CoRR
Ramon Izquierdo-Cordova, Walterio W. Mayol-Cuevas
2021 J jnl
IEICE Trans. Inf. Syst.
Longfei Chen, Yuichi Nakamura, Kazuaki Kondo, Dima Damen, Walterio W. Mayol-Cuevas
2021 J jnl
IEEE Access
Silviu S. Andrei, Nataliya Shapovalova, Walterio W. Mayol-Cuevas
2021 A* conf
ISMAR
Yao Lu, Walterio W. Mayol-Cuevas
2021 J jnl
CoRR
Yao Lu, Walterio W. Mayol-Cuevas
2021 J jnl
CoRR
Ramon Izquierdo-Cordova, Walterio W. Mayol-Cuevas
2021 J jnl
CoRR
Yao Lu, Walterio W. Mayol-Cuevas
2021 A* conf
ICRA
Hector Castillo-Elizalde, Yanan Liu, Laurie Bose, Walterio W. Mayol-Cuevas
2020 A* conf
CVPR
Hazel Doughty, Ivan Laptev, Walterio W. Mayol-Cuevas, Dima Damen
2020 J jnl
CoRR
Yanan Liu, Laurie Bose, Colin Greatwood, Jianing Chen, Rui Fan, Thomas S. Richardson, Stephen J. Carey, Piotr Dudek, Walterio W. Mayol-Cuevas
2020 A conf
IROS
Miguel Lagunes-Fortiz, Dima Damen, Walterio W. Mayol-Cuevas
2020 conf
ECCV (29)
Laurie Bose, Piotr Dudek, Jianing Chen, Stephen J. Carey, Walterio W. Mayol-Cuevas
2020 J jnl
CoRR
Laurie Bose, Jianing Chen, Stephen J. Carey, Piotr Dudek, Walterio W. Mayol-Cuevas
2020 J jnl
Frontiers Neurorobotics
Eduardo Ruiz, Walterio W. Mayol-Cuevas
2020 A conf
BMVC
Yanan Liu, Laurie Bose, Jianing Chen, Stephen J. Carey, Piotr Dudek, Walterio W. Mayol-Cuevas
2020 J jnl
IEEE Access
Francisco Amorós, Luis Payá, Walterio W. Mayol-Cuevas, Luis Miguel Jiménez García, Óscar Reinoso
2020 C conf
ISCAS
Stephen J. Carey, Laurie Bose, Thomas S. Richardson, Walterio W. Mayol-Cuevas, Jianing Chen, Piotr Dudek
2020 J jnl
Frontiers Robotics AI
Alexander McConville, Laurie Bose, Robert Clarke, Walterio W. Mayol-Cuevas, Jianing Chen, Colin Greatwood, Stephen J. Carey, Piotr Dudek, Thomas Richardson
2019 A* conf
ICCV
Laurie Bose, Piotr Dudek, Jianing Chen, Stephen J. Carey, Walterio W. Mayol-Cuevas
2019 J jnl
CoRR
Laurie Bose, Jianing Chen, Stephen J. Carey, Piotr Dudek, Walterio W. Mayol-Cuevas
2019 J jnl
CoRR
Hazel Doughty, Ivan Laptev, Walterio W. Mayol-Cuevas, Dima Damen
2019 conf
ICCV Workshops
Youngkyoon Jang, Brian Sullivan, Casimir J. H. Ludwig, Iain D. Gilchrist, Dima Damen, Walterio W. Mayol-Cuevas
2019 J jnl
CoRR
Eduardo Ruiz, Walterio W. Mayol-Cuevas
2019 conf
ISMAR Adjunct
Yao Lu, Walterio W. Mayol-Cuevas
2019 J jnl
IEICE Trans. Inf. Syst.
Longfei Chen, Yuichi Nakamura, Kazuaki Kondo, Walterio W. Mayol-Cuevas
2019 Misc conf
MVA
Longfei Chen, Yuichi Nakamura, Kazuaki Kondo, Dima Damen, Walterio W. Mayol-Cuevas
2019 A* conf
ICRA
Miguel Lagunes-Fortiz, Dima Damen, Walterio W. Mayol-Cuevas
2019 conf
CVPR Workshops
Laurie Bose, Jianing Chen, Stephen J. Carey, Piotr Dudek, Walterio W. Mayol-Cuevas
2019 J jnl
CoRR
Janis Stolzenwald, Walterio W. Mayol-Cuevas
2019 A conf
IROS
Janis Stolzenwald, Walterio W. Mayol-Cuevas
2019 J jnl
CoRR
Janis Stolzenwald, Walterio W. Mayol-Cuevas
2019 A* conf
CVPR
Hazel Doughty, Walterio W. Mayol-Cuevas, Dima Damen
2018 J jnl
CoRR
Janis Stolzenwald, Walterio W. Mayol-Cuevas
2018 A conf
IROS
Janis Stolzenwald, Walterio W. Mayol-Cuevas
2018 Misc conf
ISVC
Miguel Lagunes-Fortiz, Dima Damen, Walterio W. Mayol-Cuevas
2018 A conf
IROS
Colin Greatwood, Laurie Bose, Thomas Richardson, Walterio W. Mayol-Cuevas, Jianing Chen, Stephen J. Carey, Piotr Dudek
2018 J jnl
J. Real Time Image Process.
Claudia Cruz Martinez, José Martínez-Carranza, Walterio W. Mayol-Cuevas
2018 J jnl
CoRR
Hazel Doughty, Walterio W. Mayol-Cuevas, Dima Damen
2018 J jnl
J. Real Time Image Process.
Roberto de Lima, José Martínez-Carranza, Alicia Morales-Reyes, Walterio W. Mayol-Cuevas
2018 conf
CVPR Workshops
Luis Contreras, Walterio W. Mayol-Cuevas
2018 J jnl
CoRR
Janis Stolzenwald, Walterio W. Mayol-Cuevas
2018 J jnl
CoRR
Eduardo Ruiz, Walterio W. Mayol-Cuevas
2018 A* conf
ICRA
Eduardo Ruiz, Walterio W. Mayol-Cuevas
2018 A* conf
CVPR
Hazel Doughty, Dima Damen, Walterio W. Mayol-Cuevas
2017 J jnl
CoRR
Teesid Leelasawassuk, Dima Damen, Walterio W. Mayol-Cuevas
2017 conf
AH
Teesid Leelasawassuk, Dima Damen, Walterio W. Mayol-Cuevas
2017 J jnl
CoRR
Eduardo Ruiz, Walterio W. Mayol-Cuevas
2017 Misc conf
MVA
Longfei Chen, Kazuaki Kondo, Yuichi Nakamura, Dima Damen, Walterio W. Mayol-Cuevas
2017 J jnl
CoRR
Michael Wray, Davide Moltisanti, Walterio W. Mayol-Cuevas, Dima Damen
2017 A* conf
ICRA
Luis Contreras, Walterio W. Mayol-Cuevas
2017 J jnl
CoRR
Luis Contreras, Walterio W. Mayol-Cuevas
2017 J jnl
CoRR
Luis Contreras, Walterio W. Mayol-Cuevas
2017 A conf
IROS
Colin Greatwood, Laurie Bose, Thomas S. Richardson, Walterio W. Mayol-Cuevas, Jianing Chen, Stephen J. Carey, Piotr Dudek
2017 A* conf
ICCV
Davide Moltisanti, Michael Wray, Walterio W. Mayol-Cuevas, Dima Damen
2017 J jnl
CoRR
Davide Moltisanti, Michael Wray, Walterio W. Mayol-Cuevas, Dima Damen
2017 A* conf
ICCV
Laurie Bose, Jianing Chen, Stephen J. Carey, Piotr Dudek, Walterio W. Mayol-Cuevas
2017 J jnl
CoRR
Hazel Doughty, Dima Damen, Walterio W. Mayol-Cuevas
2016 J jnl
Robotics Auton. Syst.
Daniel Gutiérrez-Gómez, Walterio W. Mayol-Cuevas, Josechu J. Guerrero
2016 B conf
ICPR
Juan Antonio de Jesús Osuna-Coutiño, José Martínez-Carranza, Miguel O. Arias-Estrada, Walterio W. Mayol-Cuevas
2016 conf
ISMAR Adjunct
Claudia Cruz Martinez, José Martínez-Carranza, Walterio W. Mayol-Cuevas, Miguel O. Arias-Estrada
2016 conf
ISMAR Adjunct
Juan Antonio de Jesús Osuna-Coutiño, Claudia Cruz Martinez, José Martínez-Carranza, Miguel O. Arias-Estrada, Walterio W. Mayol-Cuevas
2016 J jnl
Adv. Robotics
José Martínez-Carranza, Richard Bostock, Simon Willcox, Ian D. Cowling, Walterio W. Mayol-Cuevas
2016 A* conf
ICRA
Austin Gregg-Smith, Walterio W. Mayol-Cuevas
2016 A* conf
ICRA
Austin Gregg-Smith, Walterio W. Mayol-Cuevas
2016 conf
ISMAR Adjunct
Roberto de Lima, José Martínez-Carranza, Alicia Morales-Reyes, Walterio W. Mayol-Cuevas
2016 conf
ECCV Workshops (1)
Michael Wray, Davide Moltisanti, Walterio W. Mayol-Cuevas, Dima Damen
2016 J jnl
CoRR
Michael Wray, Davide Moltisanti, Walterio W. Mayol-Cuevas, Dima Damen
2016 J jnl
CoRR
Eduardo Ruiz, Walterio W. Mayol-Cuevas
2016 J jnl
Comput. Vis. Image Underst.
Dima Damen, Teesid Leelasawassuk, Walterio W. Mayol-Cuevas
2015 conf
ISMAR Workshops
Koichi Kise, Takumi Toyama, Atsushi Shimada, Walterio W. Mayol-Cuevas
2015 A* ed.
ISMAR
Christian Sandor, Robert W. Lindeman, Walterio W. Mayol-Cuevas, Nobuchika Sakata, Richard A. Newcombe, Veronica Teichrieb
2015 J jnl
Int. J. Comput. Vis.
Tilo Burghardt, Dima Damen, Walterio W. Mayol-Cuevas, Majid Mirmehdi
2015 conf
ISMAR Workshops
Tomas Hodan, Dima Damen, Walterio W. Mayol-Cuevas, Jiri Matas
2015 Misc conf
ISWC
Teesid Leelasawassuk, Dima Damen, Walterio W. Mayol-Cuevas
2015 A conf
IROS
John Bartholomew, Andrew Calway, Walterio W. Mayol-Cuevas
2015 A* conf
ICRA
Daniel Gutiérrez-Gómez, Walterio W. Mayol-Cuevas, Josechu J. Guerrero
2015 A* conf
ICRA
Austin Gregg-Smith, Walterio W. Mayol-Cuevas
2015 conf
MICAI (2)
José Martínez-Carranza, Esteban Omar Garcia, Hugo Jair Escalante, Walterio W. Mayol-Cuevas
2015 A conf
IROS
Luis Contreras, Walterio W. Mayol-Cuevas
2015 A* conf
ICRA
Daniel Gutiérrez-Gómez, Walterio W. Mayol-Cuevas, Josechu J. Guerrero
2015 J jnl
CoRR
Dima Damen, Teesid Leelasawassuk, Walterio W. Mayol-Cuevas
2014 A* conf
ICRA
John Bartholomew, Andrew Calway, Walterio W. Mayol-Cuevas
2014 conf
ECCV Workshops (3)
Dima Damen, Osian Haines, Teesid Leelasawassuk, Andrew Calway, Walterio W. Mayol-Cuevas
2014 A* conf
ISMAR
Alan Torres-Gomez, Walterio W. Mayol-Cuevas
2014 A conf
BMVC
Dima Damen, Teesid Leelasawassuk, Osian Haines, Andrew Calway, Walterio W. Mayol-Cuevas
2013 Misc conf
ISWC
Teesid Leelasawassuk, Walterio W. Mayol-Cuevas
2013 A ed.
BMVC
Tilo Burghardt, Dima Damen, Walterio W. Mayol-Cuevas, Majid Mirmehdi
2013 A conf
IROS
José Martínez-Carranza, Andrew Calway, Walterio W. Mayol-Cuevas
2013 A* conf
ICRA
Eduardo Fernández-Moral, Walterio W. Mayol-Cuevas, Vicente Arévalo, Javier González Jiménez
2013 J jnl
Virtual Real.
Pished Bunnun, Sriram Subramanian, Walterio W. Mayol-Cuevas
2013 J jnl
Virtual Real.
Tomoya Ishikawa, Kalaivani Thangamani, Masakatsu Kourogi, Andrew P. Gee, Walterio W. Mayol-Cuevas, Jungwoo Hyun, Takeshi Kurata
2013 conf
ICAR
Luis Contreras, Abel Pacheco-Ortega, Jose I. Figueroa, Walterio W. Mayol-Cuevas, Jesus Savage
2013 J jnl
Adv. Robotics
Sukjune Yoon, Seungyong Hyung, Minhyung Lee, Kyung Shik Roh, Sunghwan Ahn, Andrew P. Gee, Pished Bunnun, Andrew Calway, Walterio W. Mayol-Cuevas
2013 conf
ICINCO (2)
Francisco Amorós, Luis Payá, Óscar Reinoso, Walterio W. Mayol-Cuevas, Andrew Calway
2012 A conf
BMVC
Andrew P. Gee, Walterio W. Mayol-Cuevas
2012 A conf
IROS
Dima Damen, Andrew P. Gee, Walterio W. Mayol-Cuevas, Andrew Calway
2012 A* conf
ISMAR
Pished Bunnun, Dima Damen, Andrew Calway, Walterio W. Mayol-Cuevas
2012 A* conf
CHI
Abhijit Karnik, Walterio W. Mayol-Cuevas, Sriram Subramanian
2012 A* conf
UIST
Abhijit Karnik, Diego Martínez Plasencia, Walterio W. Mayol-Cuevas, Sriram Subramanian
2012 A conf
IROS
John Bartholomew, Andrew Calway, Walterio W. Mayol-Cuevas
2012 A conf
BMVC
Dima Damen, Pished Bunnun, Andrew Calway, Walterio W. Mayol-Cuevas
2012 A* conf
ICRA
Sudeep Sundaram, Walterio W. Mayol-Cuevas
2011 J jnl
Comput. Graph.
Andrew P. Gee, Matthew Webb, Ponciano Jorge Escamilla-Ambrosio, Walterio W. Mayol-Cuevas, Andrew Calway
2011 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Mosalam Ebrahimi, Walterio W. Mayol-Cuevas
2011 conf
UIST (Adjunct Volume)
Abhijit Karnik, Walterio W. Mayol-Cuevas, Sriram Subramanian
2011 B conf
CBMS
Martin Buckley, Ravi Vaidyanathan, Walterio W. Mayol-Cuevas
2010 B conf
PIMRC
Costas Efthymiou, Sedat Görmüs, Zhong Fan, Andrew Calway, Walterio W. Mayol-Cuevas, Angela Doufexi
2010 conf
MiFor@MM
Andrew P. Gee, Ponciano Jorge Escamilla-Ambrosio, Matthew Webb, Walterio W. Mayol-Cuevas, Andrew Calway
2010 conf
ISVC (2)
Sudeep Sundaram, Walterio W. Mayol-Cuevas
2010 conf
ACCV Workshops (2)
Andrew P. Gee, Andrew Calway, Walterio W. Mayol-Cuevas
2009 conf
CVPR Workshops
Sudeep Sundaram, Walterio W. Mayol-Cuevas
2009 conf
HCI (13)
Tomoya Ishikawa, Kalaivani Thangamani, Masakatsu Kourogi, Andrew P. Gee, Walterio W. Mayol-Cuevas, Keechul Jung, Takeshi Kurata
2009 J jnl
IEEE Trans. Syst. Man Cybern. Part A
Walterio W. Mayol-Cuevas, Ben Tordoff, David William Murray
2009 conf
CVPR Workshops
Mosalam Ebrahimi, Walterio W. Mayol-Cuevas
2008 A conf
BMVC
Denis Chekhlov, Walterio W. Mayol-Cuevas, Andrew Calway
2008 J jnl
IEEE Trans. Robotics
Andrew P. Gee, Denis Chekhlov, Andrew Calway, Walterio W. Mayol-Cuevas
2008 A* conf
ISMAR
Pished Bunnun, Walterio W. Mayol-Cuevas
2008 J jnl
Mach. Vis. Appl.
Walterio W. Mayol-Cuevas, David William Murray
2007 A conf
BMVC
Andrew P. Gee, Denis Chekhlov, Walterio W. Mayol-Cuevas, Andrew Calway
2007 A* conf
ISMAR
Denis Chekhlov, Andrew P. Gee, Andrew Calway, Walterio W. Mayol-Cuevas
2007 C conf
CIARP
Gerardo Carrera, Jesus Savage, Walterio W. Mayol-Cuevas
2007 A* conf
CVPR
Denis Chekhlov, Mark Pupilli, Walterio W. Mayol-Cuevas, Andrew Calway
2006 conf
SIBGRAPI
Teófilo Emídio de Campos, Walterio W. Mayol-Cuevas, David William Murray
2006 conf
ISVC (2)
Andrew P. Gee, Walterio W. Mayol-Cuevas
2006 conf
ISVC (2)
Denis Chekhlov, Mark Pupilli, Walterio W. Mayol-Cuevas, Andrew Calway
2005 Misc conf
ISWC
Walterio W. Mayol-Cuevas, David William Murray
2004 A conf
BMVC
Walterio W. Mayol-Cuevas, Andrew J. Davison, Ben Tordoff, Nicholas Molton, David William Murray
2003 C conf
ISRR
Walterio W. Mayol-Cuevas, Andrew J. Davison, Ben Tordoff, David William Murray
2003 A* conf
ISMAR
Andrew J. Davison, Walterio W. Mayol-Cuevas, David William Murray
2003 A* conf
ISMAR
Andrew J. Davison, Walterio W. Mayol-Cuevas, David William Murray
2002 A* conf
ICRA
Walterio W. Mayol-Cuevas, Ben Tordoff, David William Murray
2002 A conf
BMVC
Ben Tordoff, Walterio W. Mayol-Cuevas, Teófilo Emídio de Campos, David William Murray
2002 J jnl
Pers. Ubiquitous Comput.
Walterio W. Mayol-Cuevas, Ben Tordoff, David William Murray
2000 Misc conf
ISWC
Jesus Savage, R. A. Sanchez-Guzmán, Walterio W. Mayol-Cuevas, Leobardo Arce, Alejandro Hernandez, Laura Brier, Felipe Martinez, Anaid Velazquez, Gerardo Lopez
2000 Misc conf
ISWC
Walterio W. Mayol-Cuevas, Ben Tordoff, David William Murray
1998 B conf
SMC
Walterio W. Mayol-Cuevas, J. Juarez-Guerrero, Stalin Muñoz Gutiérrez
1998 B conf
SMC
J. Juarez-Guerrero, Stalin Muñoz Gutiérrez, Walterio W. Mayol-Cuevas
redb/extractors/decompiler/_archive/DecompileGhidra-old.py
← Index redb/extractors/decompiler/_archive/DecompileGhidra-old.py python
from hashlib import sha256
import inspect
from pathlib import Path
import subprocess
import json
import subprocess
import json
import os
import tempfile
import uuid
import shutil
import time

from dotenv import load_dotenv

from redb.extractors.enum import Tag
from redb.models.dataclasses import Decompiled
from redb.extractors.extractor import Extractor


class DecompileGhidra(Extractor):
    def __init__(
        self,
        filepath,
        log,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
    ):
        super().__init__(
            filepath, log, index_prefix, elastic_index, known_benign, known_malicious
        )
        self.log.debug(inspect.currentframe().f_code.co_name)
        self.elastic_index = self.index_prefix + "-ghidra"
        self.ghidra_path = "/opt/ghidra"
        self.java_script_path = (
            self.ghidra_path
            + "/Ghidra/Features/Base/ghidra_scripts/GhidraDecompilerScript.java"
        )
        self.decompiled = None
        load_dotenv()
        self.decompiled_folder = os.getenv("DECOMPILED_FOLDER", "/opt/decompiled")
        self.log.debug(f"Decompiled folder: {self.decompiled_folder}")

    def run_command(self, cmd, env=None):
        try:
            self.log.info(f"Starting command: {' '.join(cmd)}")
            start_time = time.time()
            TIMEOUT = 1200  # 20 minutes in seconds
            process = subprocess.Popen(
                cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True
            )

            while True:
                output = process.stdout.readline()
                if output:
                    print(output.strip())
                if process.poll() is not None:
                    break
            try:
                stdout, stderr = process.communicate(timeout=TIMEOUT)
            except subprocess.TimeoutExpired:
                process.kill()
                self.log.error(f"Ghidra timed out after {TIMEOUT} seconds")
                # raise subprocess.TimeoutExpired(process.args, TIMEOUT)
                return None
            end_time = time.time()

            self.log.debug(
                f"Command finished. Execution time: {end_time - start_time:.2f} seconds"
            )
            self.log.debug(f"Return code: {process.returncode}")

            if process.returncode != 0:
                self.log.error(f"Error output:\n{stderr}")
                return None
            return stdout
        except Exception as e:
            self.log.error(f"Error running command {' '.join(cmd)}: {e}")
            return None

    def analyze_binary(self):
        self.log.debug(f"Ghidra path: {self.ghidra_path}")
        self.log.debug(f"Binary path: {self.filepath}")
        self.log.debug(f"Java script path: {self.java_script_path}")

        # Check if Java script exists
        if not os.path.exists(self.java_script_path):
            self.log.error(f"Error: Java script not found at {self.java_script_path}")
            return None

        # Set up environment variables
        env = os.environ.copy()
        java_home = "/usr/lib/jvm/java-17-openjdk-amd64"  # Adjust this path if needed
        env["JAVA_HOME"] = java_home
        env["PATH"] = f"{java_home}/bin:{env['PATH']}"
        env["LD_LIBRARY_PATH"] = f"{java_home}/lib:{env.get('LD_LIBRARY_PATH', '')}"
        env["DECOMPILED_FOLDER"] = self.decompiled_folder

        # Print environment variables for debugging
        self.log.debug(f"JAVA_HOME: {env['JAVA_HOME']}")
        self.log.debug(f"PATH: {env['PATH']}")
        self.log.debug(f"LD_LIBRARY_PATH: {env['LD_LIBRARY_PATH']}")

        # Check Ghidra installation
        analyzeHeadless_path = f"{self.ghidra_path}/support/analyzeHeadless"
        self.log.debug(
            f"analyzeHeadless exists: {os.path.exists(analyzeHeadless_path)}"
        )

        # Create a temporary project directory
        project_path = tempfile.gettempdir() + "/ghidra_" + str(uuid.uuid4())
        os.makedirs(project_path, exist_ok=True)
        self.log.debug(f"Created temporary project path: {project_path}")
        output_file = ""

        try:
            # Run Ghidra's headless analyzer
            analyze_cmd = [
                analyzeHeadless_path,
                project_path,
                "TempProject",
                "-import",
                self.filepath,
                "-postScript",
                self.java_script_path,
                self.sha256,
                "-deleteProject",
            ]

            result = self.run_command(analyze_cmd, env=env)
            if result is None:
                return None

            # Read the output JSON file
            output_file = os.path.join(
                self.decompiled_folder, self.sha256 + "-decompiled.json"
            )
            if os.path.exists(output_file):
                with open(output_file, "r") as f:
                    functions = json.load(f)
                return functions
            else:
                self.log.error(
                    f"Output file {output_file} not found. Ghidra analysis may have failed."
                )
                return None
        finally:
            # Clean up
            if os.path.exists(project_path):
                shutil.rmtree(project_path)
                self.log.debug(f"Deleted temporary project path: {project_path}")

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            functions = self.analyze_binary()

            if functions:
                self.log.info(f"Extracted functions from {self.filepath}:")
                for func in functions:
                    id = sha256(func["address"].encode()).hexdigest()
                    self.decompiled = Decompiled(
                        _id=id,
                        decompiled_function_name=func["name"],
                        decompiled_function_address=func["address"],
                        decompiled_function=func["decompiled"],
                    )
                    self.export_to_elastic([self.decompiled])
            else:
                self.log.error("No decompiled functions extracted.")
            return True
        except Exception as e:
            self.log.error(f"Error extracting decompiled information: {e}")
            return None

    def tag(self):
        return Tag.DECOMPILED.value