PopPowerSourceChangeCallback

NTSTATUS __stdcall PopPowerSourceChangeCallback(INT64 *a1, INT64 *a2, INT64 a3){
  INT64 v3; 
  INT64 v6; 
  NTSTATUS v7; 
  bool v8; 
  char v9; 
  INT64 v10; 
  INT64 v11; 
  unsigned int v12; 
  int v13; 
  INT64 v15; 
  char v16; 
  unsigned int SessionId; 
  GUID InputBuffer; 
  int v19; 

  v19 = 0;
  v3 = *a1;
  InputBuffer = 0i64;
  v6 = *(_QWORD *)&GUID_ACDC_POWER_SOURCE.Data1 - v3;
  if( *(_QWORD *)&GUID_ACDC_POWER_SOURCE.Data1 == v3 )
    v6 = *(_QWORD *)GUID_ACDC_POWER_SOURCE.Data4 - a1[1];
  v7 = 0;
  if( v6 )
  {
    v15 = *(_QWORD *)&GUID_BATTERY_COUNT.Data1 - v3;
    if( *(_QWORD *)&GUID_BATTERY_COUNT.Data1 == v3 )
      v15 = *(_QWORD *)GUID_BATTERY_COUNT.Data4 - a1[1];
    if( v15 )
      return -1073741811;
  }
  if( (_DWORD)a3 != 4 || !a2 )
    return -1073741811;
  v8 = 1;
  v9 = 0;
  if( !PopLidOpened && !(_BYTE)PopConsoleExternalDisplayConnected )
    v9 = 1;
  v10 = *(_QWORD *)&GUID_ACDC_POWER_SOURCE.Data1 - v3;
  if( *(_QWORD *)&GUID_ACDC_POWER_SOURCE.Data1 == v3 )
    v10 = *(_QWORD *)GUID_ACDC_POWER_SOURCE.Data4 - a1[1];
  if( !v10 && PopPlatformAoAc )
  {
    v16 = v9;
    if( *(_DWORD *)a2 == 1 )
      v16 = 1;
    v9 = v16;
    if( *(&stru_140C23628 + 1261) )
      v9 = 1;
  }
  v11 = *(_QWORD *)&GUID_BATTERY_COUNT.Data1 - *a1;
  if( !v11 )
    v11 = *(_QWORD *)GUID_BATTERY_COUNT.Data4 - a1[1];
  if( !v11 )
  {
    if( !v9 )
      InputBuffer = GUID_BATTERY_COUNT;
    v8 = v9 == 0;
    v12 = v9 != 0 ? 46 : 16;
    v13 = v9 != 0 ? 49 : 16;
LABEL_16:
    if( !v8 )
      goto LABEL_18;
    goto LABEL_17;
  }
  if( !v9 )
  {
    v12 = 5;
    v13 = 5;
    InputBuffer = GUID_ACDC_POWER_SOURCE;
    goto LABEL_16;
  }
  v12 = 43;
  InputBuffer = GUID_ACDC_DISPLAY_BURST_SUPPRESS;
  v13 = 28;
LABEL_17:
  v19 = *(_DWORD *)a2;
  PopBroadcastSessionInfo(PowerInfo_PolicyChange, 0x14ui64, &InputBuffer);
LABEL_18:
  if( v9 )
  {
    PopAcquirePolicyLock();
    PopPowerAggregatorForceSessionSwitch(v12);
    PopReleasePolicyLock();
  }
  else if( TtmIsEnabled() )
  {
    SessionId = PopGetSessionId();
    TtmNotifySessionDisplayBurst(SessionId, (POWER_MONITOR_REQUEST_REASON)v13);
  }
  return v7;
}

Referenced by:

No references.