PopGetLegacyPowerRequestFlags

UINT64 __stdcall PopGetLegacyPowerRequestFlags(PVOID PowerRequest, UINT64 NewFlags, UINT64 *OldFlags){
  UINT64 result; 
  int v5; 
  unsigned int v6; 
  int v7; 
  result = 0i64;
  v5 = 0x80000000;
  if( PowerRequest )
  {
    v6 = -2147483646;
    if( !*((_DWORD *)PowerRequest + 8) )
      v6 = 0x80000000;
    v7 = v6 | 1;
    if( !*((_DWORD *)PowerRequest + 9) )
      v7 = v6;
    v5 = v7 | 0x40;
    if( !*((_DWORD *)PowerRequest + 10) )
      v5 = v7;
    result = (unsigned int)NewFlags ^ v5;
    LODWORD(result) = result & 0x7FFFFFFF;
  }
  if( OldFlags )
    *(_DWORD *)OldFlags = v5;
  return result;
}

Referenced by:

NtSetThreadExecutionState
PoRegisterSystemState