KeDisableTimer2

VOID __fastcall KeDisableTimer2(_KTIMER2 *Timer, UINT8 Cancel, UINT8 Wait, _PKT2_DISABLE_PARAMETERS *Parameters){
  void(__fastcall *v6)(void *); 
  void *v7; 
  unsigned __int8 CurrentIrql; 
  unsigned int v9; 
  char v10; 
  unsigned int FlagsToSet; 
  __int64 v14; 
  __int64 v15; 
  __int64 v16; 
  _LARGE_INTEGER TimeStamp[2]; 
  __int128 v18; 
  _KAFFINITY_EX Affinity; 

  memset(&Affinity, 0i64, sizeof(Affinity));
  FlagsToSet = 32;
  v14 = 0i64;
  v6 = 0i64;
  v15 = 0i64;
  v7 = 0i64;
  v16 = 0i64;
  *(_OWORD *)&TimeStamp[0].anonymous_0.LowPart = 0i64;
  v18 = 0i64;
  if( Parameters )
  {
    v6 = (void(__fastcall *)(void *))(KiWaitNever ^ __ROR8__(
                                                       (unsigned __int64)Timer ^ _byteswap_uint64(*(_QWORD *)Parameters ^ KiWaitAlways),
                                                       KiWaitNever));
    v7 = (void *)(KiWaitNever ^ __ROR8__(
                                  (unsigned __int64)Timer ^ _byteswap_uint64(*((_QWORD *)Parameters + 1) ^ KiWaitAlways),
                                  KiWaitNever));
  }
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(2ui64);
  if( KiAcquireTimer2LockUnlessDisabled(Timer) )
  {
    __writecr8(CurrentIrql);
    return;
  }
  if( Parameters )
  {
    Timer->DisableCallback = v6;
    Timer->DisableContext = v7;
  }
  if( !Cancel )
    goto LABEL_9;
  if( KiAcquireTimer2CollectionLockIfInserted(Timer) )
  {
    KiRemoveTimer2(Timer);
    KxReleaseSpinLock(&KiTimer2CollectionLock);
  }
  else
  {
    if( (Timer->gap0[1] & 0xA) == 0 )
    {
LABEL_9:
      v9 = 6;
      goto LABEL_10;
    }
    FlagsToSet = 36;
  }
  v9 = 4;
LABEL_10:
  KiUpdateTimer2Flags(Timer, FlagsToSet, v9);
  __writecr8(CurrentIrql);
  if( Wait )
  {
    if( !v10 )
    {
      *(_DWORD *)&Affinity.Count = 1310721;
      memset(&Affinity.Reserved, 0i64, 0xA4u);
      KeAddProcessorAffinityEx(&Affinity.Count, (unsigned int)KiClockTimerOwner);
      KeGenericProcessorCallback(
        (__int64 *)&Affinity,
        (void(__fastcall *)(struct _KPRCB *, __int64))xHalTimerWatchdogStop,
        0i64,
        2);
    }
  }
}

Referenced by:

ExDeleteTimer
ExpDeleteTimer2
PopPowerButtonWorkCallback
PopThermalZoneRemove