VfTriageSystem

UINT64 __stdcall VfTriageSystem(_LOADER_PARAMETER_BLOCK *LoaderBlock){
  unsigned int v1; 
  __int64 v4; 
  _LOADER_PARAMETER_EXTENSION *Extension; 
  void *TriageDumpBlock; 
  __int64 v7; 
  int v8; 
  _VERIFIER_TRIAGE_RULE *TriageDriverTargets; 
  INT64 v10; 
  _VERIFIER_TRIAGE_RULE *TriageRule; 
  const INT8 *v12; 
  _BYTE BugCheckCode[40]; 

  v1 = 0;
  DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: verifier triage global/registry settings %X \n", (unsigned int)ViVerifyTriage);
  if( MmVerifyDriverLevel != -1 || (_DWORD)ViVerifyAllDrivers )
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: driver verifier settings present.\n");
    return 0i64;
  }
  if( ViVerifyTriage == -1 )
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: triage skipped because it is not enabled by default.\n");
    return 0i64;
  }
  if( !ViVerifyTriage )
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: triage skipped because it is disabled explicitely.\n");
    return 0i64;
  }
  if( ViVerifyTriage < 0 )
  {
    v1 = (unsigned __int16)ViVerifyTriage;
    v4 = (unsigned __int16)ViVerifyTriage;
    ViVerifyTriage = 1;
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: simulated crash code %X.\n", v4);
  }
  Extension = LoaderBlock->Extension;
  if( !Extension )
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: null loader extension.\n");
    return 0i64;
  }
  if( Extension->Size < 0xE38 )
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: unexpected loader extension size.\n");
    return 0i64;
  }
  TriageDumpBlock = Extension->TriageDumpBlock;
  if( TriageGetBugcheckData(
         TriageDumpBlock,
         (UINT64 *)BugCheckCode,
         (UINT64 *)&BugCheckCode[8],
         (UINT64 *)&BugCheckCode[16],
         (UINT64 *)&BugCheckCode[24],
         (UINT64 *)&BugCheckCode[32]) >= 0 )
  {
    v8 = 1;
    v7 = *(_QWORD *)BugCheckCode;
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: a real crash happened.\n");
  }
  else
  {
    if( !v1 )
    {
      DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: standard retail exit point.\n");
      return 0i64;
    }
    v7 = v1;
    v8 = 0;
    *(_QWORD *)BugCheckCode = v1;
    *(__m128i *)&BugCheckCode[8] = _mm_load_si128((const __m128i *)&_xmm_ffffffffffffffffffffffffffffffff);
    *(_OWORD *)&BugCheckCode[24] = *(_OWORD *)&BugCheckCode[8];
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: a fake crash will be simulated.\n");
  }
  DbgPrintEx(
    0x5Du,
    3u,
    "CRASH TRIAGE: previous crash was %Ix %Ix %Ix %Ix %Ix.\n",
    v7,
    *(_QWORD *)&BugCheckCode[8],
    *(_QWORD *)&BugCheckCode[16],
    *(_QWORD *)&BugCheckCode[24],
    *(_QWORD *)&BugCheckCode[32]);
  ViTriageCrashData = *(_OWORD *)BugCheckCode;
  qword_140C1CEA0 = *(_QWORD *)&BugCheckCode[32];
  xmmword_140C1CE90 = *(_OWORD *)&BugCheckCode[16];
  if( v8 )
  {
    if( MmTriageActiveInLastCrash(LoaderBlock) == 1 )
    {
      DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: triage skipped because it was active in previous crash or server system.\n");
      return 0i64;
    }
    if( !(unsigned int)ViTriageSameDriversFromDump(LoaderBlock, TriageDumpBlock) )
    {
      DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: some drivers changed from previous crash.\n");
      return 0i64;
    }
  }
  if( !(unsigned int)ViValidateTriageRules(&ViVerifyTriageRules, (unsigned int)ViVerifyTriageRulesSize) )
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: triage disabled due to invalid registry rules.\n");
    return 0i64;
  }
  if( !(unsigned int)ViValidateTriageRules(&ViInternalTriageRules, 0x30ui64) )
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: triage disabled due to invalid internal rules!\n");
    return 0i64;
  }
  TriageDriverTargets = 0i64;
  TriageRule = ViFindTriageRule(&ViVerifyTriageRules, (unsigned int)ViVerifyTriageRulesSize, (unsigned int)v7);
  if( !TriageRule )
  {
    TriageRule = ViFindTriageRule(&ViInternalTriageRules, 0x30ui64, (unsigned int)v7);
    if( !TriageRule )
    {
      DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: crash code %Ix will not be triaged.\n", v7);
      return 0i64;
    }
  }
  if( TriageRule->_bf_0 < 0x80000u )
  {
    TriageDriverTargets = ViFindTriageDriverTargets(v10, (unsigned int)ViVerifyTriageRulesSize, v12);
    if( TriageDriverTargets )
      DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: no `targets' rule found.\n");
  }
  if( !TriageRule->Features )
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: triage disabled due to rule with null features.\n");
    return 0i64;
  }
  ViMakeVerifierSettings(TriageRule, TriageDriverTargets);
  DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: triage enabled!\n");
  return 1i64;
}

Referenced by:

ViInitSystemPhase0