From babe982b655a0285a730676ce570fc375e2ca472 Mon Sep 17 00:00:00 2001 From: naci Date: Wed, 22 Apr 2026 23:06:47 +0300 Subject: [PATCH] docs: correct SCOPE loop-header generalization status (#117) Line 28 read 'Temporarily disabled while the team keeps required VMP 3.8.x targets on the safe high-budget path'. That is stale relative to the current code: canGeneralizeStructuredLoopHeader (lifter/core/LifterClass.hpp) gates generalization on path-solve context plus nine operational guards, and the corresponding loop_generalization_* microtests pass on main. Describe the actual gating and point readers at docs/LOOP_HANDLING.md. Co-authored-by: yusufcanislek --- docs/SCOPE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/SCOPE.md b/docs/SCOPE.md index 80b28f4..5d10cc9 100644 --- a/docs/SCOPE.md +++ b/docs/SCOPE.md @@ -25,7 +25,7 @@ Mergen is a function-level LLVM IR lifting engine for deobfuscation and devirtua | 32-bit x86 lifting | Not supported | | ARM / RISC-V / other architectures | Not supported | | Jump-table IR quality | Supported shapes still dispatch on concrete target addresses, not logical case indices | -| Loop-header generalization | Temporarily disabled while the team keeps required VMP 3.8.x targets on the safe high-budget path | +| Loop-header generalization | Gated by path-solve context: allowed for `ConditionalBranch` and `DirectJump`, and for `IndirectJump` only when the target is already resolved concretely; `Ret` never generalizes. See `docs/LOOP_HANDLING.md`. | ## Current Development Focus - Near term: broaden control-flow recovery and IR quality for loops, jump tables, indirect branches, and VM-style dispatcher shapes.