“…[76], [115], [175], [176], [197], function boundary detection [32], [42], [59], [62], [176], [197], static similarity detection [49], [73], [99], [107], [109], [113], [126], [130], [160], [169], type recovery [19], and full decompilation [28], [44], [101]. Each of these capabilities is in turn crucial for downstream security tasks such as malware analysis [51], [67], [81], [122] and software hardening via control-flow-integrity (CFI) enforcement, artificial diversification, or debloating when source code is not available.…”