CmpQueueLazyCommitWorker

void __fastcall CmpQueueLazyCommitWorker(__int64 a1){
  _ETHREAD *CurrentThread; 
  char v2; 
  _QWORD *v4; 
  _QWORD *v5; 
  bool v6; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v2 = 0;
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquireFastMutexUnsafe((PFAST_MUTEX)((char *)&CmpDummyThreadEvent + 64));
  *(_DWORD *)(a1 + 48) &= ~0x40u;
  v4 = (_QWORD *)*(&CmpDummyThreadEvent + 33);
  v5 = (_QWORD *)(a1 + 32);
  if( (_UNKNOWN *)**(&CmpDummyThreadEvent + 33) != (_UNKNOWN *)((char *)&CmpDummyThreadEvent + 256) )
    __fastfail(3u);
  v6 = *(_BYTE *)CmpLazyCommitWorkItemActive == 0;
  *v5 = (char *)&CmpDummyThreadEvent + 256;
  v5[1] = v4;
  *v4 = v5;
  *(&CmpDummyThreadEvent + 33) = v5;
  if( v6 )
  {
    v2 = 1;
    *(_BYTE *)CmpLazyCommitWorkItemActive = 1;
  }
  ExReleaseFastMutexUnsafe((PFAST_MUTEX)((char *)&CmpDummyThreadEvent + 64));
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
  if( v2 )
    KiSetTimerEx(
      (_KTIMER *)&CmpDummyThreadEvent + 3,
      (_LARGE_INTEGER)-300000000i64,
      0i64,
      0,
      (_KDPC *)((char *)&CmpDummyThreadEvent + 288));
}

Referenced by:

CmKtmNotification