SeAccessCheckFromStateEx

UINT8 __stdcall SeAccessCheckFromStateEx(
        PVOID SecurityDescriptor,
        PVOID PrimaryToken,
        PVOID ClientToken,
        UINT64 DesiredAccess,
        UINT64 PreviouslyGrantedAccess,
        PRIVILEGE_SET **Privileges,
        GENERIC_MAPPING *GenericMapping,
        INT8 AccessMode,
        UINT64 *GrantedAccess,
        INT64 *AccessStatus){
  UINT64 DesiredAccessa; 
  UINT64 v12; 
  SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; 
  SubjectSecurityContext.PrimaryToken = PrimaryToken;
  SubjectSecurityContext.ClientToken = 0i64;
  *(_QWORD *)&SubjectSecurityContext.ImpersonationLevel = 0i64;
  SubjectSecurityContext.ProcessAuditId = 0i64;
  if( ClientToken )
  {
    SubjectSecurityContext.ImpersonationLevel = *((_DWORD *)ClientToken + 49);
    SubjectSecurityContext.ClientToken = ClientToken;
  }
  LODWORD(v12) = PreviouslyGrantedAccess;
  LODWORD(DesiredAccessa) = DesiredAccess;
  LOBYTE(DesiredAccess) = 1;
  return SeAccessCheckWithHint(
           SecurityDescriptor,
           0i64,
           &SubjectSecurityContext,
           DesiredAccess,
           DesiredAccessa,
           v12,
           Privileges,
           GenericMapping,
           AccessMode,
           GrantedAccess,
           AccessStatus);
}

Referenced by:

SeAccessCheckFromState