KeCancelTimerInternal

VOID __stdcall KeCancelTimerInternal(
        INT64 Timer,
        _BYTE *DueTime,
        INT64 a3,
        INT64 a4,
        _KDUE_TIME_TYPE *DueType,
        UINT64 *TolerableDelay){
  int v10; 
  int v11; 

  if( KiCancelTimer((_KTIMER *)Timer, 0) )
  {
    v10 = *(unsigned __int8 *)(Timer + 1);
    *(_QWORD *)DueTime = *(_QWORD *)(Timer + 24);
    *(_DWORD *)a3 = 2;
    if( (v10 & 1) != 0 )
    {
      *(_DWORD *)a3 = 1;
    }
    else
    {
      v11 = *(_DWORD *)a3;
      if( (v10 & 2) != 0 )
        v11 = 3;
      *(_DWORD *)a3 = v11;
    }
    *(_DWORD *)a4 = ((v10 & 0xFFFFFFFC) << 16) / 0x2710;
  }
  _InterlockedAnd((volatile signed __int32 *)Timer, 0xFFFFFF7F);
}

Referenced by:

ExpTimerAdjust
ExpTimerPause