PopInitializePowerPolicySimulate

INT64 __stdcall PopInitializePowerPolicySimulate(){
  INT64 result; 
  WCHAR v1; 
  NTSTATUS v2; 
  WCHAR v3; 
  WCHAR v4; 
  NTSTATUS v5; 
  PULONG ResultLength; 
  ULONG v7; 
  HANDLE Handle; 
  UINT64 Disposition; 
  void *KeyHandle; 
  struct _UNICODE_STRING DestinationString; 
  struct _OBJECT_ATTRIBUTES ObjectAttributes; 
  __int128 KeyValueInformation; 
  int v14; 
  KeyHandle = 0i64;
  LODWORD(Disposition) = 0;
  Handle = 0i64;
  v7 = 0;
  *(&ObjectAttributes.Length + 1) = 0;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  ObjectAttributes.RootDirectory = 0i64;
  v14 = 0;
  *(_DWORD *)PopSimulate = PopSimulateManual;
  ObjectAttributes.ObjectName = &CmRegistryMachineSystemCurrentControlSet;
  DestinationString = 0i64;
  ObjectAttributes.Length = 48;
  KeyValueInformation = 0i64;
  ObjectAttributes.Attributes = 576;
  LODWORD(result) = ZwOpenKey(&KeyHandle, 0x20019u, &ObjectAttributes);
  if( (int)result >= 0 )
  {
    RtlInitUnicodeString(&DestinationString, L"Control\\Session Manager", v1);
    ObjectAttributes.RootDirectory = KeyHandle;
    ObjectAttributes.Length = 48;
    ObjectAttributes.ObjectName = &DestinationString;
    ObjectAttributes.Attributes = 576;
    LODWORD(ResultLength) = 0;
    *(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
    v2 = ZwCreateKey(&Handle, 0x20019ui64, &ObjectAttributes, 0i64, 0i64, (UINT64)ResultLength, &Disposition);
    LODWORD(result) = ZwClose(KeyHandle);
    if( v2 >= 0 )
    {
      RtlInitUnicodeString(&DestinationString, L"PowerSimulateHiberBugcheck", v3);
      if( ZwQueryValueKey(Handle, &DestinationString, KeyValuePartialInformation, &KeyValueInformation, 0x14u, &v7) >= 0
        && DWORD2(KeyValueInformation) == 4 )
      {
        PopSimulateHiberBugcheck = HIDWORD(KeyValueInformation);
      }
      RtlInitUnicodeString(&DestinationString, L"PowerPolicySimulate", v4);
      v5 = ZwQueryValueKey(Handle, &DestinationString, KeyValuePartialInformation, &KeyValueInformation, 0x14u, &v7);
      LODWORD(result) = ZwClose(Handle);
      if( v5 >= 0 && DWORD2(KeyValueInformation) == 4 )
      {
        result = HIDWORD(KeyValueInformation);
        *(_DWORD *)PopSimulate |= HIDWORD(KeyValueInformation);
      }
    }
  }
  return result;
}

Referenced by:

PoInitSystem
PopTransitionSystemPowerStateEx