AuthzBasepDeviceMemberOf
__int64 __fastcall AuthzBasepDeviceMemberOf(__int64 a1, __int64 a2, INT64 a3, char a4, char a5, _BYTE *a6){
char v7;
UINT8 v8;
int NextValue;
int v12;
UINT64 v13;
__int64 v14;
UINT8 v15;
INT64 v17[2];
__int128 v18;
void *Src;
UINT8 dst[80];
Src = 0i64;
v7 = a5 != 0;
v8 = a3;
*a6 = 0;
*(_OWORD *)v17 = 0i64;
v18 = 0i64;
while( 1 )
{
NextValue = AuthzBasepGetNextValue(a1, (INT64)v17, a3);
v12 = NextValue;
if( NextValue == -2147483622 )
break;
if( NextValue < 0 )
return(unsigned int)v12;
v13 = DWORD2(v18);
if( DWORD2(v18) >= 0x44 )
v13 = 68i64;
memmove(dst, (UINT8 *)Src, v13);
v14 = *(_QWORD *)(a2 + 1096);
if( v14 )
v15 = SepSidInTokenSidHash((SID_AND_ATTRIBUTES_HASH *)(v14 + 32 + (a4 != 0 ? 0x110 : 0)), 0i64, dst, v8, a4, 0);
else
v15 = 0;
if( a5 )
{
v7 &= v15;
if( !v7 )
goto LABEL_15;
}
else
{
v7 |= v15;
if( v7 )
goto LABEL_15;
}
}
v12 = 0;
LABEL_15:
if( v12 >= 0 )
*a6 = v7;
return(unsigned int)v12;
}Referenced by:
AuthzBasepEvaluateAceCondition