PopDirectedDripsStartDisengageTimer

INT64 __fastcall PopDirectedDripsStartDisengageTimer(INT64 a1){
  UINT64 v1; 
  INT64 *v2; 
  unsigned __int8 v3; 
  unsigned __int64 v4; 
  char v5; 
  INT64 result; 
  _EXT_SET_PARAMETERS_V0 Parameters; 
  v2 = &qword_140C24AB0 + 20 * (int)a1;
  KeAcquireSpinLockRaiseToDpc((UINT64 *)v2 + 1, v1);
  *(_QWORD *)&Parameters.Version = 0i64;
  v4 = v3;
  Parameters.NoWakeTolerance = -1i64;
  KeCancelTimer2((_KTIMER2 *)(v2 + 3), 0i64);
  if( !v5 && ++*((_DWORD *)v2 + 5) == 1 )
    PopDirectedDripsSetDisengageReason(*(_DWORD *)v2);
  KeSetTimer2((_KTIMER2 *)(v2 + 3), -10000000i64 * *((unsigned int *)v2 + 1), 0i64, &Parameters);
  ++*((_DWORD *)v2 + 4);
  KxReleaseSpinLock((UINT64 *)v2 + 1);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v4);
  return result;
}

Referenced by:

PoFxNotifySurprisePowerOn
PopRequestCompletion