PopDirectedDripsInitializeBroadcast

NTSTATUS __stdcall PopDirectedDripsInitializeBroadcast(INT32 *a1){
  char v2; 
  char v3; 
  CHAR v4; 
  int v5; 
  volatile signed __int32 *v6; 
  volatile signed __int32 *i; 
  unsigned int v8; 
  volatile signed __int32 *v9; 
  PFN_KE_GET_PROCESSOR_NUMBER_FROM_INDEX *v10; 
  int v11; 
  int v12; 
  char v13; 
  volatile signed __int32 *v14; 
  volatile signed __int32 *j; 
  __int64 v16; 
  __int64 v17; 
  volatile signed __int32 *v18; 
  PFN_KE_GET_PROCESSOR_NUMBER_FROM_INDEX *v20[2]; 
  int v21; 
  int v22; 
  int v23; 
  int v24; 

  v24 = 0;
  *(_OWORD *)v20 = 0i64;
  v23 = 0;
  v21 = 0;
  _InterlockedOr(a1, 0);
  v2 = 0;
  PopDirectedDripsQueryMitigationStatus(&v23, &v24, &v21);
  v3 = v21;
  v4 = v21 | v24 & v23;
  if( !(v21 | v24 & v23) )
    return -1073741823;
  IoControlPnpDeviceActionQueue(1u);
  v6 = (volatile signed __int32 *)*(&PnpReplaceEvent + 831);
  for( i = *(volatile signed __int32 **)(*(&PnpReplaceEvent + 831) + 8i64);
        i;
        i = (volatile signed __int32 *)*((_QWORD *)i + 1) )
  {
    v6 = i;
  }
  if( v6 != (volatile signed __int32 *)*(&PnpReplaceEvent + 831) )
  {
    do
    {
      _InterlockedAnd(v6 + 74, 0xFFFFFEFF);
      *((_QWORD *)v6 + 92) = v6 + 182;
      *((_QWORD *)v6 + 94) = v6 + 186;
      *((_QWORD *)v6 + 93) = v6 + 186;
      v8 = v6[190] & 0xFFF8FFFF;
      *((_QWORD *)v6 + 91) = v6 + 182;
      *((_DWORD *)v6 + 190) = v8;
      *((_DWORD *)v6 + 191) = 0;
      v9 = *(volatile signed __int32 **)v6;
      if( *(_QWORD *)v6 )
      {
        do
        {
          v6 = v9;
          v9 = (volatile signed __int32 *)*((_QWORD *)v9 + 1);
        }
        while( v9 );
      }
      else
      {
        v6 = (volatile signed __int32 *)*((_QWORD *)v6 + 2);
      }
    }
    while( v6 != (volatile signed __int32 *)*(&PnpReplaceEvent + 831) );
    v3 = v21;
  }
  PopFxBuildDirectedDripsCandidateDeviceList((_LIST_ENTRY *)v20);
  v10 = v20[0];
  v22 = 0;
  v11 = 0;
  if( (PFN_KE_GET_PROCESSOR_NUMBER_FROM_INDEX **)v20[0] == v20 )
    goto LABEL_42;
  do
  {
    v12 = PopDirectedDripsBuildBroadcastTreePartial((INT64)*(v10 - 103), v4, &v22);
    v5 = v12;
    if( v12 < 0 )
    {
      if( v12 != -1073741637 )
        goto LABEL_43;
    }
    else
    {
      ++v11;
    }
    v10 = (PFN_KE_GET_PROCESSOR_NUMBER_FROM_INDEX *)*v10;
  }
  while( v10 != (PFN_KE_GET_PROCESSOR_NUMBER_FROM_INDEX *)v20 );
  if( v11 && (v13 = v22, v22) )
  {
    if( (v22 & 1) != 0 && (v3 & 1) == 0 )
    {
      _InterlockedOr(a1, 0x400u);
      v3 = v21;
      v13 = v22;
    }
    if( (v13 & 2) != 0 && (v3 & 2) == 0 )
    {
      v2 = 1;
      v5 = -1073741267;
    }
    else
    {
      v14 = (volatile signed __int32 *)*(&PnpReplaceEvent + 831);
      for( j = *(volatile signed __int32 **)(*(&PnpReplaceEvent + 831) + 8i64);
            j;
            j = (volatile signed __int32 *)*((_QWORD *)j + 1) )
      {
        v14 = j;
      }
      while( v14 != (volatile signed __int32 *)*(&PnpReplaceEvent + 831) )
      {
        if( (v14[190] & 0x30000) != 0 )
        {
          if( (v14[190] & 0x20000) != 0 )
          {
            v16 = *((_QWORD *)v14 + 97);
            if( v16 )
              ++*(_DWORD *)(v16 + 160);
          }
          else if( (v14[190] & 0x10000) != 0 )
          {
            v17 = *((_QWORD *)v14 + 97);
            if( v17 )
              ++*(_DWORD *)(v17 + 156);
          }
          _InterlockedOr(v14 + 74, 0x100u);
        }
        v18 = *(volatile signed __int32 **)v14;
        if( *(_QWORD *)v14 )
        {
          do
          {
            v14 = v18;
            v18 = (volatile signed __int32 *)*((_QWORD *)v18 + 1);
          }
          while( v18 );
        }
        else
        {
          v14 = (volatile signed __int32 *)*((_QWORD *)v14 + 2);
        }
      }
      v5 = PoInitializeBroadcast();
    }
  }
  else
  {
LABEL_42:
    v5 = -1073741823;
  }
LABEL_43:
  PopFxDestroyDirectedDripsCandidateDeviceList(v20);
  if( v5 < 0 )
    IoControlPnpDeviceActionQueue(0);
  if( v2 )
  {
    PopAcquirePolicyLock();
    PopPowerAggregatorHandleIntent(4ui64, 0i64, 0x2Aui64);
    PopReleasePolicyLock();
  }
  return v5;
}

Referenced by:

PopDirectedDripsSuspendDevices