MiValidateUserCallTarget
NTSTATUS __stdcall MiValidateUserCallTarget(VOID *BranchTarget, _MI_CFG_BITMAP_INFO *BitMapInfo){
char v3;
NTSTATUS v4;
NTSTATUS v5;
int v6;
int v8;
bool v9;
int v10;
v3 = (char)BranchTarget;
v4 = 0;
v5 = CfgAddressToBitState((UINT64)BranchTarget, *(const INT64 **)BitMapInfo);
if( v5 )
{
v6 = v5 - 1;
if( v6 )
{
v8 = v6 - 1;
if( v8 )
{
v9 = v8 == 1;
}
else
{
LOBYTE(v10) = MiIsProcessCfgExportSuppressionEnabled();
if( v10 )
return v4;
v9 = (v3 & 0xF) == (unsigned __int64)(unsigned int)BitMapInfo[6];
}
if( v9 )
return 1;
}
else
{
return(v3 & 0xF) == (unsigned __int64)(unsigned int)BitMapInfo[6];
}
}
return v4;
}Referenced by:
MiCfgMarkValidEntries
MmValidateUserCallTarget