ViTriageSameDriversFromDump

UINT64 __stdcall ViTriageSameDriversFromDump(_LOADER_PARAMETER_BLOCK *LoaderBlock, VOID *TriageDumpBlock){
  _LIST_ENTRY *p_LoadOrderListHead; 
  _LIST_ENTRY *i; 
  unsigned int v7; 
  _KLDR_DATA_TABLE_ENTRY *LoaderEntry; 
  UINT64 v9; 

  LODWORD(v9) = 0;
  if( TriageGetDriverCount(TriageDumpBlock, &v9) >= 0 )
  {
    p_LoadOrderListHead = &LoaderBlock->LoadOrderListHead;
    for( i = p_LoadOrderListHead->Flink; i != p_LoadOrderListHead; i = i->Flink )
    {
      v7 = 0;
      if( !(_DWORD)v9 )
      {
LABEL_9:
        DbgPrintEx(0x5Du, 3u, "Matching checksum for module %wZ not found in triage dump\n", &i[5].Blink);
        return 0i64;
      }
      while( 1 )
      {
        LoaderEntry = TriageGetLoaderEntry(TriageDumpBlock, v7);
        if( LoaderEntry )
        {
          if( LODWORD(i[7].Blink) == LoaderEntry->CheckSum )
            break;
        }
        if( ++v7 >= (unsigned int)v9 )
          goto LABEL_9;
      }
    }
    return 1i64;
  }
  else
  {
    DbgPrintEx(0x5Du, 3u, "CRASH TRIAGE: failed to get driver count from the dump.\n");
    return 0i64;
  }
}

Referenced by:

VfTriageSystem