SepSetTokenPackage

NTSTATUS __stdcall SepSetTokenPackage(_TOKEN *Token, VOID *PackageSid){
  void *Package; 
  unsigned int v5; 
  VOID **PoolWithTag; 
  VOID **v7; 
  void *v8; 

  Package = Token->Package;
  if( Package && !RtlIsParentOfChildAppContainer(Package, PackageSid) )
    return -1073741790;
  v5 = (4 * *((unsigned __int8 *)PackageSid + 1) + 11) & 0xFFFFFFFC;
  PoolWithTag = ExAllocatePoolWithTag(1ui64, v5, 1767073107i64);
  v7 = PoolWithTag;
  if( !PoolWithTag )
    return -1073741670;
  RtlCopySid(v5, PoolWithTag, PackageSid);
  v8 = Token->Package;
  if( v8 )
    ExFreePoolWithTag(v8, 0);
  Token->Package = v7;
  return 0;
}

Referenced by:

NtCreateLowBoxToken
SepDuplicateToken
SepFilterToken
SepGetAnonymousToken