SepIsParentOfChildAppContainer
UINT8 __stdcall SepIsParentOfChildAppContainer(UINT64 SessionId, UINT64 LowboxNumber1, UINT64 LowboxNumber2){
unsigned int v3;
unsigned int v4;
unsigned int v5;
UINT8 IsParentOfChildAppContainer;
char v7;
_ETHREAD *CurrentThread;
_ETHREAD *v9;
ULONG_PTR v10;
_SEP_LOWBOX_NUMBER_ENTRY *MatchingEntry2;
_SEP_LOWBOX_NUMBER_ENTRY *MatchingEntry1;
ULONG_PTR BugCheckParameter2;
v3 = SessionId;
BugCheckParameter2 = 0i64;
v4 = LowboxNumber2;
MatchingEntry1 = 0i64;
v5 = LowboxNumber1;
MatchingEntry2 = 0i64;
IsParentOfChildAppContainer = 0;
v7 = 0;
if( (_DWORD)LowboxNumber1 && (_DWORD)LowboxNumber2 )
{
if( (unsigned int)SessionId >= 5 )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
ExAcquirePushLockSharedEx((UINT64)&LowboxSessionMapLock, 0i64);
v7 = 1;
if( (int)SepGetTokenSessionMapEntry(v3, 0, (CHAR **)&BugCheckParameter2) < 0 )
{
LABEL_11:
if( _InterlockedCompareExchange64((volatile signed __int64 *)&LowboxSessionMapLock, 0i64, 17i64) != 17 )
ExfReleasePushLockShared((INT64 *)&LowboxSessionMapLock);
KeAbPostRelease(&LowboxSessionMapLock);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return IsParentOfChildAppContainer;
}
}
else
{
BugCheckParameter2 = (ULONG_PTR)&g_SessionLowboxArray[5 * (unsigned int)SessionId];
}
v9 = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)v9 + 242);
v10 = BugCheckParameter2;
ExAcquirePushLockExclusiveEx(BugCheckParameter2, 0i64);
if( (int)SepFindMatchingLowBoxNumberEntries(
*(_RTL_DYNAMIC_HASH_TABLE **)(v10 + 24),
v5,
v4,
&MatchingEntry1,
&MatchingEntry2) >= 0 )
IsParentOfChildAppContainer = RtlIsParentOfChildAppContainer(
MatchingEntry1->PackageSid,
MatchingEntry2->PackageSid);
if( (_InterlockedExchangeAdd64((volatile signed __int64 *)v10, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock((volatile INT64 *)BugCheckParameter2);
KeAbPostRelease((PVOID)BugCheckParameter2);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
if( !v7 )
return IsParentOfChildAppContainer;
goto LABEL_11;
}
return 0;
}Referenced by:
SeIsParentOfChildAppContainer