PiAuAllocateAndInitializeSid
INT64 __fastcall PiAuAllocateAndInitializeSid(
VOID **Sid,
SID_IDENTIFIER_AUTHORITY *IdentifierAuthority,
UINT64 SubAuthorityCount){
char v3;
unsigned int v6;
VOID *PoolWithTag;
UINT64 v8;
int v9;
v3 = SubAuthorityCount;
if( (unsigned int)SubAuthorityCount > 0x3FFFFFF7 )
v6 = -1;
else
v6 = 4 * SubAuthorityCount + 8;
PoolWithTag = ExAllocatePoolWithTag(PagedPool, v6, 0x20207050ui64);
*Sid = PoolWithTag;
if( PoolWithTag )
{
LOBYTE(v8) = v3;
v9 = RtlInitializeSid(PoolWithTag, IdentifierAuthority, v8);
if( v9 >= 0 )
return(unsigned int)v9;
}
else
{
v9 = -1073741670;
}
if( *Sid )
{
ExFreePoolWithTag(*Sid, 0);
*Sid = 0i64;
}
return(unsigned int)v9;
}Referenced by:
PiAuCreateStandardSecurityObject
PiAuCreateUserSids