Decompilation
Open Tools > Options to configure decompilation. When comparing settings interactively, use Fast Decompilation without caching; otherwise process the file again after changing an option.

Show debug commands
For classic VB P-Code, includes compiler and debugger operations that would otherwise be omitted from the high-level listing. Enable it when inspecting the underlying instruction sequence rather than only the reconstructed program logic.
Process If ... End If blocks (Native Code)
Reconstructs recognized Native Code conditional jumps as If...End If blocks. Disable it when you need to inspect the original branching pattern or investigate a procedure whose structure appears incorrect.
Process 'Else' blocks
Uses additional heuristics to distinguish Else branches from nested conditions and GoTo transitions. For Native Code, this requires processing of If blocks. Keep it enabled for normal reading; compare with it disabled when a reconstructed branch is ambiguous.
Analyze prototypes
Performs preliminary heuristic analysis of procedure arguments and return values. This is particularly useful with Fast Decompilation: private functions and procedures in standard modules may lack explicit signature metadata. The preliminary analysis takes additional time, but avoids treating a call solely according to the currently known stack contents. A heuristic signature is still an inference, especially when metadata, external types, or code are incomplete.
Add Addresses
Displays virtual addresses next to reconstructed statements. Keep it enabled to correlate code with disassembly, file bytes, and findings from other tools. It is also needed for Copy to disassembler to merge high-level statements with their low-level counterparts. The Disassembler always displays addresses independently of this setting.
Understanding Native Code reconstruction
The Native Code engine recognizes supported Select Case patterns, multidimensional array access, COM calls, and VB runtime operations. Error handling can be reconstructed as On Error Resume Next, On Error GoTo, and On Error GoTo 0. Compiler optimization and missing type information can still limit the result; inspect the disassembly when the high-level output is incomplete.
Version 26.2 expanded Variant typing, multidimensional SafeArray reads and writes, and VarPtr reconstruction for array elements. The output may identify an array reference as SafeArray, reflecting the runtime structure recognized by the analysis engine. Branch-state isolation and temporary-variable analysis also improve reconstruction of complex If/Else code. Version 26.5 further improves Select Case and VB5/VB6 runtime-function handling.
COM and ActiveX type information
VB Decompiler first uses its built-in knowledge base for known interfaces. For an unknown external COM object, it can resolve library, class, and interface identifiers through the system registry and parse the corresponding DLL/OCX type library. This supplies method and property signatures, including returned interface types, for early-bound and supported late-bound calls.
If a required type library is absent or its registration cannot be resolved, some calls may remain unidentified, for example as UnkVCall. Missing dependencies are therefore relevant when comparing output between analysis machines. The expanded IID knowledge base includes Office automation, ADO/DAO, XML and HTTP, scripting, shell, messaging, and directory-service interfaces; it does not imply that every possible COM call can be resolved.
Only limited UDT metadata survives in some VB binaries. The decompiler can recover information such as a structure's size and string-field count without recovering the complete original field layout. Do not interpret a partial declaration as a complete source-level definition.
.NET reconstruction and optimization
Supported IL is reconstructed as C#-like expressions and control flow. The Procedure analyzer and optimizer control in the main window can simplify supported loop, conditional, operator, and temporary-variable patterns. Inspect IL and metadata where an unsupported or obfuscated fragment remains. This processing is independent of AI Helper.
