get_func_flags
retrieve function flags
ea - any address belonging to the function
returns: -1 - function doesn't exist
otherwise returns the flags FUNC_...
#define get_func_flags(ea) get_func_attr(ea, FUNCATTR_FLAGS)
#define FUNC_NORET 0x00000001 // function doesn't return
#define FUNC_FAR 0x00000002 // far function
#define FUNC_LIB 0x00000004 // library function
#define FUNC_STATIC 0x00000008 // static function
#define FUNC_FRAME 0x00000010 // function uses frame pointer (BP)
#define FUNC_USERFAR 0x00000020 // user has specified far-ness
// of the function
#define FUNC_HIDDEN 0x00000040 // a hidden function
#define FUNC_THUNK 0x00000080 // thunk (jump) function
#define FUNC_BOTTOMBP 0x00000100 // BP points to the bottom of the stack frame
#define FUNC_NORET_PENDING 0x00000200 // Function 'non-return' analysis
// must be performed. This flag is
// verified upon func_does_return()
#define FUNC_SP_READY 0x00000400 // SP-analysis has been performed
// If this flag is on, the stack
// change points should not be not
// modified anymore. Currently this
// analysis is performed only for PC
#define FUNC_FUZZY_SP 0x00000800 // Function changes SP in untraceable way,
// for example: and esp, 0FFFFFFF0h
#define FUNC_PROLOG_OK 0x00001000 // Prolog analysis has be performed
// by last SP-analysis
#define FUNC_PURGED_OK 0x00004000 // 'argsize' field has been validated.
// If this bit is clear and 'argsize'
// is 0, then we do not known the real
// number of bytes removed from
// the stack. This bit is handled
// by the processor module.
#define FUNC_TAIL 0x00008000 // This is a function tail.
// Other bits must be clear
// (except FUNC_HIDDEN)
#define FUNC_LUMINA 0x00010000 // Function info is provided by Lumina
#define FUNC_OUTLINE 0x00020000 // Outlined code, not a real function
Last updated