PopDirectedDripsDiagTraceBroadcastFailureDevice

VOID __fastcall PopDirectedDripsDiagTraceBroadcastFailureDevice(INT64 a1){
  INT64 v2; 
  PVOID *i; 
  ExAcquirePushLockExclusiveEx((UINT64)&PopDirectedDripsDiagLock, 0i64);
  v2 = *(_QWORD *)(a1 + 776);
  if( v2 )
    *(_DWORD *)(v2 + 152) |= 0x20u;
  for( i = (PVOID *)PopDirectedDripsDiagSessionContext; i != &PopDirectedDripsDiagSessionContext; i = (PVOID *)*i )
  {
    if( *((_DWORD *)i + 9) == dword_140C1EB88 )
    {
      ++*((_DWORD *)i + 53);
      if( v2 )
        PopDirectedDripsDiagInsertErrorRecord((INT64)i, v2, 5i64);
    }
  }
  if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&PopDirectedDripsDiagLock, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock((volatile INT64 *)&PopDirectedDripsDiagLock);
  KeAbPostRelease(&PopDirectedDripsDiagLock);
}

Referenced by:

PopDirectedDripsNotifyTransitionFailed