RtlUnlockBootStatusData

VOID __stdcall RtlUnlockBootStatusData(VOID *BootStatusDataHandle){
  int v2; 
  char v3; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  __int16 InputBuffer; 

  IoStatusBlock = 0i64;
  InputBuffer = 0;
  RtlpAcquireBootStatusLock();
  if( !BootStatReferenceCount )
    goto LABEL_14;
  v2 = BootStatReferenceCount - 1;
  v3 = 0;
  --BootStatReferenceCount;
  if( BootStatFileHandleAcquired )
  {
    if( !BootStatusDataHandle )
    {
      BootStatusDataHandle = *(VOID **)&BootStatFileHandle;
LABEL_8:
      BootStatReferenceCount = 0;
      v3 = 1;
      *(_QWORD *)&BootStatFileHandle = 0i64;
      BootStatFileHandleAcquired = 0;
      goto LABEL_9;
    }
    if( !BootStatKeepHandleOpen && !v2 )
      goto LABEL_8;
  }
LABEL_9:
  if( BootStatusDataHandle )
  {
    ZwFsControlFile((_HANDLE)BootStatusDataHandle, 0, 0i64, 0i64, &IoStatusBlock, 0x9C040u, &InputBuffer, 2u, 0i64, 0);
    if( v3 )
    {
      if( BootStatDataCache )
      {
        ExFreePoolWithTag(BootStatDataCache, 0);
        BootStatDataCache = 0i64;
      }
      BootStatFileHandleAcquired = 0;
      ZwClose((_HANDLE)BootStatusDataHandle);
    }
  }
LABEL_14:
  RtlpReleaseBootStatusLock();
}

Referenced by:

PoClearTransitionMarker
PopBootStatCheckIntegrity
PopBootStatGet
PopBootStatSet
PopBootStatUnlock