PopDirectedDripsSendSuspendResumeNotification

INT64 __fastcall PopDirectedDripsSendSuspendResumeNotification(CHAR a1, INT64 a2, INT64 a3, INT64 a4){
  char v4; 
  INT64 result; 
  void *i; 
  INT64 v7; 
  INT64 v8; 
  INT64 v9; 
  INT64 v10; 
  __int128 a1a; 
  __int64 v12; 
  v4 = a2;
  if( a1 )
  {
    for( i = 0i64; ; i = (void *)v10 )
    {
      LODWORD(result) = MmGetNextSession(i);
      v10 = result;
      if( !result )
        break;
      v12 = 0i64;
      LODWORD(v12) = MmGetSessionId(result);
      BYTE4(v12) = v4;
      *(_WORD *)((char *)&v12 + 5) = 1;
      PopSuspendResumeInvocation((BYTE *)&v12, v7, v8, v9);
    }
  }
  else
  {
    v12 = 0i64;
    BYTE4(v12) = a2;
    PopSuspendResumeInvocation((BYTE *)&v12, a2, a3, a4);
    a1a = 0i64;
    if( v4 )
    {
      *(_QWORD *)&a1a = 0x400000000i64;
      WORD6(a1a) = 256;
    }
    else
    {
      *(_QWORD *)&a1a = 0x1200000003i64;
      WORD6(a1a) = 1;
      PopUmpoSendLegacyEvent(&a1a);
      DWORD1(a1a) = 7;
    }
    return PopUmpoSendLegacyEvent(&a1a);
  }
  return result;
}

Referenced by:

PopDirectedDripsNotifyAppsAndServices