PopDirectedDripsNotifyAppsAndServices

CHAR __fastcall PopDirectedDripsNotifyAppsAndServices(INT64 a1, _DWORD *a2, INT64 a3, INT64 a4){
  UINT8 v4; 
  __int64 v7; 
  int v8; 
  INT64 v9; 
  INT64 v10; 
  INT64 v11; 
  INT64 v12; 
  INT64 v13; 
  INT64 v14; 
  INT64 v15; 
  INT64 v16; 
  INT64 v17; 
  int v19; 
  v4 = a3;
  _InterlockedOr((volatile signed __int32 *)a1, 0);
  v7 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
  if( (_BYTE)a3 )
  {
    MiLockPagableImageSection(ExPageLockHandle, 1ui64);
    a2[12] = *a2;
    a2[10] = 2;
    a2[11] = 5;
    a2[14] = 21;
    v8 = PoBlockConsoleSwitch(a2 + 9);
    LOBYTE(v9) = 1;
    a2[8] = v8;
    PopDirectedDripsSendSuspendResumeNotification(1, v9, v10, v11);
    LOBYTE(v12) = 1;
    PopDirectedDripsSendSuspendResumeNotification(0, v12, v13, v14);
    _InterlockedOr((volatile signed __int32 *)a1, 8u);
    *(_DWORD *)(a1 + 116) = 0;
  }
  else
  {
    PopDirectedDripsSendSuspendResumeNotification(0, 0i64, a3, a4);
    PopDirectedDripsSendSuspendResumeNotification(1, 0i64, v15, v16);
    v19 = a2[8];
    a2[13] = 7;
    PopDispatchStateCallout(a2 + 9, (__int64)&v19);
    MmUnlockPagableImageSection(ExPageLockHandle, v17);
    _InterlockedAnd((volatile signed __int32 *)a1, 0xFFFFFFF7);
  }
  return PopDiagTraceDirectedDripsNotifyAppsAndServices(
           v4,
           (*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - v7) / 0x2710ui64,
           (EVENT_DESCRIPTOR *)((*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - v7) / 0x2710ui64));
}

Referenced by:

PopDirectedDripsEngage
PopDirectedDripsNotify