Disassembler Settings
Allow Code Reads And Writes
Allows functions that contain memory reads and writes to themselves. Useful for analyzing self-modifying code. You can disable this setting to prevent false positives from rejecting your functions if you know for sure none of your code is modifying itself.
Allow Mismatched Branch Counts
If enabled, blocks with mismatched branch counts are not discarded. Instead, the disassembler may place thunks to handle these inconsistencies.
Thunk Mismatched Branch Counts
Adds a thunk to blocks that have mismatched branch counts, enabling safer continuation of analysis.
Thunk Branch Target Identifiers
Thunks blocks that start with a branch target identifier, such as ENDBR64 (x64) or BTI (A64), ensuring proper handling of indirect control flow.
Thunk No Previous Block
Adds a thunk to blocks that do not have a preceding block in memory within the same function. If there are executable bytes above a basic block that have not been disassembled
then we must assume that they can flow into the current basic block, therefore we assume a thunk is required. If Follow Faulting Instructions is disabled, you will have a ton of these.
Thunk Data References
Adds thunks to blocks that have data references pointing to them, maintaining accurate analysis of referenced code.
Always Thunk Entry
Always places a thunk at the entry point of a function, regardless of other conditions.
Follow Faulting Instructions
After an instruction that would normally cause a fault, the disassembler continues decoding linearly until a non-trapping instruction is found. Faulting instructions are excluded from the instruction vector, and block lengths may extend beyond the last real instruction.
Disassemble Interrupts
Disassembles past x86 interrupt instructions (e.g., int imm, int3) to continue analysis beyond these interrupt points.
Disassemble Exceptions
Disassembles past x86 undefined instructions (e.g., ud0, ud1, ud2), allowing continued analysis through exception-triggering instructions.
Aggressive Pointer Analysis
Interprets every byte address as if it contains a pointer to some location in the binary. Only useful for binaries compiled without relocations and should never be enabled otherwise.
Perform Relocation Analysis
Checks if relocations point into the .text section and enforces basic block boundaries at such locations. Recommended to be enabled by default, as most binaries include relocation information.