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