SepAuditTypeList
VOID __stdcall SepAuditTypeList(
_IOBJECT_TYPE_LIST *ObjectTypeList,
UINT64 ObjectTypeListLength,
INT64 *AccessStatus,
UINT64 StartIndex,
UINT8 *GenerateSuccessAudit,
UINT8 *GenerateFailureAudit){
__int64 v6;
unsigned int v7;
int v9;
__int64 v10;
__int64 v11;
int *v12;
_WORD *v13;
int v14;
v6 = (unsigned int)StartIndex;
v7 = ObjectTypeListLength;
v9 = *((_DWORD *)AccessStatus + (unsigned int)StartIndex) >> 31;
v10 = (unsigned int)(StartIndex + 1);
if( (unsigned int)v10 < (unsigned int)ObjectTypeListLength )
{
v11 = 6 * v6;
v12 = (int *)AccessStatus + v10;
v13 = (_WORD *)&ObjectTypeList[12 * v10] + 1;
do
{
if( *(v13 - 1) <= LOWORD(ObjectTypeList[2 * v11]) )
break;
v14 = *v12;
if( (_BYTE)v9 )
{
if( v14 >= 0 )
{
*GenerateSuccessAudit = 1;
*v13 |= 1u;
}
}
else if( v14 < 0 )
{
*GenerateFailureAudit = 1;
*v13 |= 2u;
}
LODWORD(v10) = v10 + 1;
++v12;
v13 += 24;
}
while( (unsigned int)v10 < v7 );
}
}Referenced by:
SepSetAuditInfoForObjectType