SepReferenceTokenByHandle

NTSTATUS __stdcall SepReferenceTokenByHandle(
        VOID *TokenHandle,
        UINT64 DesiredAccess,
        CHAR PreviousMode,
        _TOKEN **Token,
        UINT8 *UseNewTrust,
        VOID **TrustLevelSid){
  UINT8 *v7; 
  VOID **v9; 
  NTSTATUS v10; 
  NTSTATUS result; 

  v7 = UseNewTrust;
  v9 = TrustLevelSid;
  *UseNewTrust = 0;
  *v9 = 0i64;
  if( (unsigned __int64)TokenHandle + 6 > 2 )
  {
    UseNewTrust = 0i64;
    v10 = ObReferenceObjectByHandle(
            TokenHandle,
            DesiredAccess,
            (_OBJECT_TYPE *)SeTokenObjectType,
            PreviousMode,
            (VOID **)&UseNewTrust,
            0i64);
    *Token = (_TOKEN *)UseNewTrust;
    return v10;
  }
  if( (DesiredAccess & 0xFFFFFFE7) != 0 )
    return -1073741790;
  result = SepReferenceTokenUsingPseudoHandle(TokenHandle, (PVOID *)Token, v7, v9);
  v10 = result;
  if( result >= 0 )
    return v10;
  return result;
}

Referenced by:

NtQueryInformationToken
NtQuerySecurityAttributesToken
SeAccessCheckByTypeWithAdminlessChecks
SeSetSessionIdTokenWithLinked