SepCheckCreateLowBox

NTSTATUS __stdcall SepCheckCreateLowBox(PVOID PackageSid){
  int IsParentOfChildAppContainer; 
  char v3; 
  void *ClientToken; 
  struct _SECURITY_SUBJECT_CONTEXT SubjectContext; 
  IsParentOfChildAppContainer = 0;
  memset(&SubjectContext, 0, sizeof(SubjectContext));
  v3 = 1;
  SeCaptureSubjectContext(&SubjectContext);
  ClientToken = SubjectContext.ClientToken;
  if( SubjectContext.ClientToken )
  {
    if( SubjectContext.ImpersonationLevel < SecurityImpersonation )
    {
      v3 = 0;
      goto LABEL_4;
    }
  }
  else
  {
    ClientToken = SubjectContext.PrimaryToken;
  }
  IsParentOfChildAppContainer = *((_DWORD *)ClientToken + 50) & 0x2000;
LABEL_4:
  if( !IsParentOfChildAppContainer && v3 && (*((_DWORD *)ClientToken + 50) & 0x4000) != 0 )
    IsParentOfChildAppContainer = RtlIsParentOfChildAppContainer(*((VOID **)ClientToken + 98), PackageSid);
  SeReleaseSubjectContext(&SubjectContext);
  return IsParentOfChildAppContainer == 0 ? 0xC0000022 : 0;
}

Referenced by:

NtCreateLowBoxToken