SepReferenceTokenByHandle

INT64 __fastcall SepReferenceTokenByHandle(
        VOID *TokenHandle,
        UINT64 DesiredAccess,
        CHAR PreviousMode,
        _TOKEN **Token,
        UINT8 *UseNewTrust,
        VOID **TrustLevelSid){
  BYTE *v7; 
  VOID **v9; 
  unsigned int v10; 
  INT64 result; 
  v7 = UseNewTrust;
  v9 = TrustLevelSid;
  *UseNewTrust = 0;
  *v9 = 0i64;
  if( (unsigned __int64)TokenHandle + 6 > 2 )
  {
    UseNewTrust = 0i64;
    v10 = ObReferenceObjectByHandle(
            TokenHandle,
            DesiredAccess,
            (POBJECT_TYPE)SeTokenObjectType,
            PreviousMode,
            (PVOID *)&UseNewTrust,
            0i64);
    *Token = (_TOKEN *)UseNewTrust;
    return v10;
  }
  if( (DesiredAccess & 0xFFFFFFE7) != 0 )
    return 3221225506i64;
  LODWORD(result) = SepReferenceTokenUsingPseudoHandle(TokenHandle, (PVOID *)Token, v7, v9);
  v10 = result;
  if( (int)result >= 0 )
    return v10;
  return result;
}

Referenced by:

NtQueryInformationToken
NtQuerySecurityAttributesToken
SeAccessCheckByTypeWithAdminlessChecks
SeSetSessionIdTokenWithLinked