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