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