Search papers, labs, and topics across Lattice.
This paper explores the use of small, specialized LLMs for decompiling x86-64 assembly code into human-readable Dart code. The authors investigate the impact of synthetic Dart examples and cross-lingual (Swift-to-Dart) examples on decompilation performance. Results show that a 4B specialized model achieves CODEBLEU scores comparable to a ~480B code model, and that cross-lingual transfer is only effective above a certain model capacity.
Forget massive models: surprisingly small, specialized LLMs can achieve state-of-the-art decompilation of x86-64 assembly into modern languages like Dart, rivaling the performance of models 100x larger.
Translating machine code into human-readable high-level languages is an open research problem in reverse engineering. Despite recent advancements in LLM-based decompilation to C, modern languages like Dart and Swift are unexplored. In this paper, we study the use of small specialized LLMs as an idiomatic decompiler for such languages. Additionally, we investigate the augmentation of training data using synthetic same-language examples, and compare it against adding human-written examples using related-language (Swift ->Dart). We apply CODEBLEU to evaluate the decompiled code readability and compile@k to measure the syntax correctness. Our experimental results show that on a 73-function Dart test dataset (representing diverse complexity levels), our 4B specialized model achieves 71.3 CODEBLEU (95% CI 65.5-77.1), approximately comparable to a ~480B code model (73.1; 67.4-78.8). On a subset of 34 natural Dart functions, it reaches compile@k5 = 79.4% (Wilson 95% CI 63.2-89.7), vs. 64.7% (47.9-78.5) for the base model; the difference is suggestive but not statistically significant at 0.05. Our results indicate that adding Swift training data helps at 8B but not at 4B, suggesting a capacity threshold for effective cross-lingual transfer. Our experimental results show that small specialized models can generate readable, idiomatic Dart with meaningful identifiers while using minimal compute.