PopBootStatRestoreDefaults

INT64 __stdcall PopBootStatRestoreDefaults(){
  CHAR v0; 
  _ETHREAD *CurrentThread; 
  INT16 v2; 
  int v3; 
  void *FileHandle; 
  FileHandle = 0i64;
  v0 = *((_BYTE *)KeGetCurrentThread() + 562);
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --*((_WORD *)CurrentThread + 242);
  ExAcquirePushLockExclusiveEx((UINT64)&PopBootStatLock, 0i64);
  v3 = RtlLockBootStatusData(&FileHandle);
  if( v3 >= 0 )
  {
    if( !v0 || (v3 = PopBootStatAccessCheck(FileHandle, v0, 1ui64), v3 >= 0) )
      v3 = RtlRestoreBootStatusDefaults(FileHandle);
  }
  if( FileHandle )
    RtlUnlockBootStatusData(FileHandle, v2);
  if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&PopBootStatLock, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock((volatile INT64 *)&PopBootStatLock);
  KeAbPostRelease(&PopBootStatLock);
  KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
  return(unsigned int)v3;
}

Referenced by:

PopPowerInformationInternal