/*

  Hex-Rays Decompiler configuration file.

  The syntax of this file is very simple.
  Feel free to edit it to your taste.

  IMPORTANT: the installer overwrites this file. Please make a backup copy
  if you modify this file in any way. Otherwise you may lose your
  modifications!

*/

// Background colors (rgb values: 0xBBGGRR)
#define DEFCOLOR 0xFFFFFFFF // default background color

LOCTYPE_BGCOLOR         = DEFCOLOR  // local type defs (not used yet)
VARDECL_BGCOLOR         = DEFCOLOR  // local variable declarations
FUNCBODY_BGCOLOR        = DEFCOLOR  // function body

MARK_BGCOLOR            = 0xEEFFF0  // marked function color (in ida)

// Indentations

BLOCK_INDENT            = 2         // 2 spaces for each curly brace
COMMENT_INDENT          = 48
RIGHT_MARGIN            = 120       // as soon as the line length approaches
                                    // the right margin, the decompiler
                                    // will try to split it

// Analysis options

#define HO_JUMPOUT_HELPERS 0x0001   // If enabled, the decompiler will
                                    // generate JUMPOUT() function instead of
                                    // failing the decompilation because of
                                    // out-of-function control flow
#define HO_DISPLAY_CASTS   0x0002   // Print casts in the output text.
                                    // For example: (int*)x
#define HO_HIDE_UNORDERED  0x0004   // Hide unordered fpval comparisons
#define HO_SSE_INTRINSICS  0x0008   // Generate SSE intrinsic functions
#define HO_IGNORE_OVERLAPS 0x0010   // If enabled, overlapping lvars will
                                    // lead to a warning instead of
                                    // failing the decompilation.
#define HO_FAST_STRUCTURAL 0x0020   // If enabled, fast structural analysis
                                    // will be used. It generates less number
                                    // of nested if-statements but may occasionally
                                    // produce some unnecessary gotos.
                                    // It is much faster on huge functions.
#define HO_CONST_STRINGS   0x0040   // Only print string literals if they reside
                                    // in read-only memory (e.g. .rodata segment).
                                    // When off, all strings are printed as literals.
                                    // You can override decompiler's decision by
                                    // adding 'const' or 'volatile' to the
                                    // string variable's type declaration
#define HO_SCMP_TO_BITOPS  0x0080   // Convert signed comparisons of unsigned
                                    // variables with zero into bit checks.
                                    // Before: (signed int)x < 0
                                    // After: (x & 0x80000000) != 0

HEXOPTIONS              = 0x00BF    // Combination of HO_... bits

// Warning messages

#define WARN_VARARG_REGS    0 // can not handle register arguments in vararg function, discarded them
#define WARN_ILL_PURGED     1 // odd caller purged bytes %d, correcting
#define WARN_ILL_FUNCTYPE   2 // invalid function type has been ignored
#define WARN_VARARG_TCAL    3 // can not handle tail call to vararg
#define WARN_VARARG_NOSTK   4 // call vararg without local stack
#define WARN_VARARG_MANY    5 // too many varargs, some ignored
#define WARN_ADDR_OUTARGS   6 // can not handle address arithmetics in outgoing argument area of stack frame
#define WARN_DEP_UNK_CALLS  7 // found interdependent unknown calls
#define WARN_ILL_ELLIPSIS   8 // erroneously detected ellipsis type has been ignored
#define WARN_GUESSED_TYPE   9 // using guessed type %s;
#define WARN_EXP_LINVAR    10 // failed to expand a linear variable
#define WARN_WIDEN_CHAINS  11 // failed to widen chains
#define WARN_BAD_PURGED    12 // inconsistent function type and number of purged bytes
#define WARN_CBUILD_LOOPS  13 // too many cbuild loops
#define WARN_NO_SAVE_REST  14 // could not find valid save-restore pair for %s
#define WARN_ODD_INPUT_REG 15 // odd input register %s
#define WARN_ODD_ADDR_USE  16 // odd use of a variable address
#define WARN_MUST_RET_FP   17 // function return type is incorrect (must be floating point)
#define WARN_ILL_FPU_STACK 18 // inconsistent fpu stack
#define WARN_SELFREF_PROP  19 // self-referencing variable has been detected
#define WARN_WOULD_OVERLAP 20 // variables would overlap: %s
#define WARN_ARRAY_INARG   21 // array has been used for an input argument
#define WARN_MAX_ARGS      22 // too many input arguments, some ignored

WARNS1 = 0xFFFFFFFF           // Bitmask of enabled warnings

// End of the file