PopQueryPowerButtonBugcheckEnabled

NTSTATUS __stdcall PopQueryPowerButtonBugcheckEnabled(){
  _ETHREAD *CurrentThread; 
  int v1; 
  NTSTATUS v2; 
  int v3; 
  INT64 enabled; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquirePushLockSharedEx(&PopPowerButtonBugcheckLock, 0i64);
  v1 = PopPowerButtonBugcheckConfig;
  v2 = 0;
  if( _InterlockedCompareExchange64(&PopPowerButtonBugcheckLock._bf_0, 0i64, 17i64) != 17 )
    ExfReleasePushLockShared(&PopPowerButtonBugcheckLock);
  KeAbPostRelease(&PopPowerButtonBugcheckLock);
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
  v3 = v1 - 1;
  if( v3 )
  {
    if( v3 == 1 )
    {
      v2 = 1;
    }
    else
    {
      LODWORD(enabled) = 0;
      wil_details_FeatureReporting_ReportUsageToService(
        (wil_details_FeatureReportingCache *)&stru_140CF2E80 + 820,
        0x8DF90Eui64,
        0i64,
        0i64,
        (FEATURE_LOGGED_TRAITS *)&Feature_PPLEnforcement_logged_traits,
        enabled);
    }
  }
  byte_140C20738 = v2;
  return v2;
}

Referenced by:

PopPowerButtonWorkCallback
PopPowerInformationInternal