PopPdcUpdateDeviceCompliance

VOID __stdcall PopPdcUpdateDeviceCompliance(){
  void **v0; 
  PO_CS_DEVICE_NOTIFICATION_TYPE v1; 
  int v2; 
  int v3; 
  int v4; 
  int v5; 
  bool v6; 
  int *v7; 
  int v8; 

  v0 = (void **)PopPdcDeviceList;
  v1 = PoCsDeviceNotificationStorage;
  v2 = 0;
  v3 = 0;
  while( v0 != &PopPdcDeviceList )
  {
    v4 = *((_DWORD *)v0 + 6);
    v5 = v2;
    v3 |= 1 << v4;
    v2 |= 1 << v4;
    v6 = *((_BYTE *)v0 + 32) == 0;
    v0 = (void **)*v0;
    if( v6 )
      v2 = v5;
  }
  PopAcquirePolicyLock();
  v7 = PopCsDeviceCompliance;
  do
  {
    if( ((1 << v1) & v2) != 0 )
      v8 = 1;
    else
      v8 = -((v3 & (1 << v1)) != 0);
    if( v8 != *v7 )
    {
      *v7 = v8;
      PopDiagTraceDeviceComplianceUpdate(v1, (POP_CS_DEVICE_COMPLIANCE)v8);
    }
    ++v1;
    ++v7;
  }
  while( (unsigned int)v1 < PoCsDeviceNotificationMaximum );
  PopReleasePolicyLock();
}

Referenced by:

PopPdcCsDeviceNotification