HvlAddPagesCallbackRoutine

VOID __stdcall HvlAddPagesCallbackRoutine(
        _KBUGCHECK_CALLBACK_REASON Reason,
        _KBUGCHECK_REASON_CALLBACK_RECORD *Record,
        PVOID Data,
        UINT64 a4){
  int PageList; 
  __int64 v6[3]; 
  unsigned int v7; 
  *((_QWORD *)Data + 3) = 0i64;
  *((_DWORD *)Data + 2) = 0;
  v6[0] = 0i64;
  v7 = 0;
  if( qword_140C472C8 && (*((_DWORD *)qword_140C472C8 + 1) & 1) != 0 && HvlpFallbackScratchPage )
  {
    if( !*(_QWORD *)Data )
    {
      *(_QWORD *)Data = &HvlpCrashdumpIterationState;
      LOBYTE(HvlpCrashdumpIterationState) = 1;
      HvlpStartPageListIteration(1i64);
    }
    PageList = HvlpGetPageList(1, v6, &v7);
    if( v7 )
    {
      *((_QWORD *)Data + 3) = v7;
      *((_QWORD *)Data + 2) = v6[0];
      *((_DWORD *)Data + 2) = 2;
    }
    if( PageList == 261 )
    {
      *((_DWORD *)Data + 2) |= 0x80000000;
    }
    else
    {
      qword_140C471E8 = 0i64;
      HvlpIteratorCrashdump = 0;
      LOBYTE(HvlpCrashdumpIterationState) = 0;
      *(_QWORD *)Data = 0i64;
    }
  }
}

Referenced by:

No references.