SepGetTokenAccessInformationBufferSize
UINT64 __fastcall SepGetTokenAccessInformationBufferSize(
_TOKEN *pToken,
UINT8 UseNewTrust,
VOID *NewTrustSid,
UINT64 *pPrivilegeCount,
UINT64 *pGroupsLength,
UINT64 *pGroupsSALength,
UINT64 *pRestrictedSidsLength,
UINT64 *pRestrictedSidsSALength,
UINT64 *pPackageSidLength,
UINT64 *pCapabilitySidsLength,
UINT64 *pCapabilitySidsSALength,
UINT64 *pTrustSidLength,
UINT64 *pSecurityAttributesLength){
unsigned int v13;
__int64 v15;
int v16;
int v17;
unsigned int v18;
int v19;
int v20;
int v21;
__int64 *v22;
__int64 v23;
__int64 v24;
int v25;
int v26;
__int64 v27;
unsigned int v28;
int v29;
__int64 *v31;
__int64 v32;
__int64 v33;
__int64 *v34;
__int64 v35;
__int64 v36;
int v37;
int v38;
int v39;
UINT64 v40;
UINT8 v41;
UINT64 *v42;
v42 = pPrivilegeCount;
v41 = UseNewTrust;
v13 = 0;
LODWORD(v40) = 0;
v37 = SepTokenPrivilegeCount((INT64)pToken);
v16 = 12 * v37 + 4;
if( !v37 )
v16 = 16;
v17 = *(_DWORD *)(v15 + 800);
v39 = v16;
v18 = *(_DWORD *)(v15 + 124);
v19 = 16 * *(_DWORD *)(v15 + 128);
v20 = 16 * v17;
v21 = 16 * v18;
v38 = 16 * v18;
if( v18 )
{
v22 = *(__int64 **)(v15 + 152);
v23 = v18;
do
{
v24 = *v22;
v22 += 2;
v21 += (4 * *(unsigned __int8 *)(v24 + 1) + 15) & 0xFFFFFFF8;
--v23;
}
while( v23 );
}
v25 = 16 * *(_DWORD *)(v15 + 128);
if( *(_DWORD *)(v15 + 128) )
{
v34 = *(__int64 **)(v15 + 160);
v35 = *(unsigned int *)(v15 + 128);
do
{
v36 = *v34;
v34 += 2;
v25 += (4 * *(unsigned __int8 *)(v36 + 1) + 15) & 0xFFFFFFF8;
--v35;
}
while( v35 );
}
v26 = 16 * v17;
if( v17 )
{
v31 = *(__int64 **)(v15 + 792);
v32 = *(unsigned int *)(v15 + 800);
do
{
v33 = *v31;
v31 += 2;
v26 += (4 * *(unsigned __int8 *)(v33 + 1) + 15) & 0xFFFFFFF8;
--v32;
}
while( v32 );
}
v27 = *(_QWORD *)(v15 + 784);
v28 = 0;
if( v27 )
v28 = (4 * *(unsigned __int8 *)(v27 + 1) + 15) & 0xFFFFFFF8;
if( !v41 )
NewTrustSid = *(VOID **)(v15 + 1104);
if( NewTrustSid )
v13 = (4 * *((unsigned __int8 *)NewTrustSid + 1) + 15) & 0xFFFFFFF8;
AuthzBasepQueryInternalSecurityAttributesToken(*(UINT64 **)(v15 + 776), 0i64, 0i64, &v40);
*(_DWORD *)v42 = v37;
*(_DWORD *)pGroupsLength = v21;
*(_DWORD *)pGroupsSALength = v38;
v29 = v40;
*(_DWORD *)pRestrictedSidsLength = v25;
*(_DWORD *)pRestrictedSidsSALength = v19;
*(_DWORD *)pPackageSidLength = v28;
*(_DWORD *)pCapabilitySidsLength = v26;
*(_DWORD *)pCapabilitySidsSALength = v20;
*(_DWORD *)pTrustSidLength = v13;
*(_DWORD *)pSecurityAttributesLength = v29;
return v21 + 904 + v25 + v28 + v26 + v13 + v29 + v39;
}Referenced by:
NtQueryInformationToken
SeQueryInformationToken