PsRemoveVirtualizedTimer

VOID __stdcall PsRemoveVirtualizedTimer(PVOID TimerCookie, LIST_ENTRY *TimerListEntry){
  UINT64 *v2; 
  unsigned __int8 v3; 
  UINT64 *v4; 
  unsigned __int64 v7; 
  UINT64 *v8; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *Blink; 
  v4 = *(UINT64 **)TimerCookie;
  v7 = v3;
  v8 = v2;
  ObfReferenceObjectWithTag(*(PVOID *)TimerCookie, 0x54567350u);
  KxReleaseSpinLock(v8);
  KxAcquireSpinLock(v4 + 305);
  KxAcquireSpinLock(v8);
  if( *(_QWORD *)TimerCookie )
  {
    Flink = TimerListEntry->Flink;
    Blink = TimerListEntry->Blink;
    if( TimerListEntry->Flink->Blink != TimerListEntry || Blink->Flink != TimerListEntry )
      __fastfail(3u);
    Blink->Flink = Flink;
    Flink->Blink = Blink;
    ObfDereferenceObjectWithTag(v4, 0x54567350ui64);
  }
  KxReleaseSpinLock(v8);
  KxReleaseSpinLock(v4 + 305);
  __writecr8(v7);
  ObfDereferenceObjectWithTag(v4, 0x54567350ui64);
}

Referenced by:

ExpDeleteTimer