PopSetNewPolicyValue

VOID __fastcall PopSetNewPolicyValue(INT64 a1){
  WCHAR *v1; 
  __int64 v3; 
  unsigned int v4; 
  unsigned int v5; 
  __int64 v6; 
  VOID **Src; 
  VOID *v8; 
  struct _UNICODE_STRING UnicodeString; 
  v1 = (WCHAR *)(a1 + 20);
  UnicodeString = 0i64;
  if( (int)RtlStringFromGUIDEx((const _GUID *const)(a1 + 20), &UnicodeString, 1u) >= 0 )
    RtlFreeAnsiString(&UnicodeString);
  if( !PopStateIsSessionSpecific((GUID *)v1) )
  {
    v3 = *(_QWORD *)(a1 + 36) - *(_QWORD *)&GUID_PROCESSOR_SETTINGS_SUBGROUP.Data1;
    v4 = *(_DWORD *)(a1 + 52);
    v5 = *(_DWORD *)(a1 + 56);
    if( !v3 )
      v3 = *(_QWORD *)(a1 + 44) - *(_QWORD *)GUID_PROCESSOR_SETTINGS_SUBGROUP.Data4;
    if( v3 )
      goto LABEL_7;
    LODWORD(Src) = *(_DWORD *)(a1 + 56);
    PpmSetProfilePolicySetting((VOID *)(a1 + 4), v1, v4, a1 + 60, Src, v8);
    v6 = *(_QWORD *)(a1 + 4) - *(_QWORD *)&NullGuid.Data1;
    if( !v6 )
      v6 = *(_QWORD *)(a1 + 12) - *(_QWORD *)NullGuid.Data4;
    if( !v6 )
LABEL_7:
      PopSetPowerSettingValue((LPCGUID)v1, -1, v4, v5, (void *)(a1 + 60));
  }
}

Referenced by:

PopUmpoProcessPowerMessage