CmpLazyFlushDpcRoutine

VOID __stdcall CmpLazyFlushDpcRoutine(KDPC *Dpc, VOID *DeferredContext, VOID *SystemArgument1, VOID *SystemArgument2){
  _WORD v8[47]; 

  memset(v8, 0i64, sizeof(v8));
  if( (__int64)DeferredContext >> 47 != -1 && (__int64)DeferredContext >> 47 != 0 )
  {
    Dpc->Type = 0;
    Dpc->DeferredContext = (void *)((unsigned __int64)SystemArgument2 >> 8);
    *(_QWORD *)&v8[43] = SystemArgument1;
    *(_QWORD *)&v8[23] = __ROL8__(DeferredContext, (char)SystemArgument1);
    *(_QWORD *)&v8[19] = __ROR8__(Dpc, (char)SystemArgument1);
    Dpc->SystemArgument1 = (void *)((unsigned __int64)Dpc->SystemArgument1 ^ (unsigned __int64)SystemArgument2);
    Dpc->SystemArgument2 = (void *)((unsigned __int64)Dpc->SystemArgument2 ^ (unsigned __int64)SystemArgument1);
    KiCustomAccessRoutine5((UINT64 *)DeferredContext);
  }
  KxAcquireSpinLock((UINT64 *)DeferredContext + 19);
  if( (_DWORD)CmpHoldLazyFlush )
    *((_QWORD *)DeferredContext + 21) = 0i64;
  else
    KeSetEvent((PRKEVENT)((char *)DeferredContext + 128), 0, 0);
  KxReleaseSpinLock((UINT64 *)DeferredContext + 19);
}

Referenced by:

No references.