SepFindMatchingCachedHandlesEntry
NTSTATUS __stdcall SepFindMatchingCachedHandlesEntry(PRTL_DYNAMIC_HASH_TABLE HashTable){
UINT64 v1;
int *v2;
__int64 *v3;
int *v4;
__int64 *v5;
_RTL_DYNAMIC_HASH_TABLE_ENTRY *v7;
char v8;
_RTL_DYNAMIC_HASH_TABLE_ENTRY *NextEntryHashTable;
int v10;
_RTL_DYNAMIC_HASH_TABLE_CONTEXT Context;
v4 = v2;
memset(&Context, 0, sizeof(Context));
v5 = v3;
v7 = 0i64;
v8 = 0;
NextEntryHashTable = (_RTL_DYNAMIC_HASH_TABLE_ENTRY *)RtlLookupEntryHashTable(HashTable, v1, &Context);
if( NextEntryHashTable )
{
v10 = *v4;
do
{
v7 = NextEntryHashTable;
if( v10 == LODWORD(NextEntryHashTable[1].Linkage.Blink) )
{
if( v10 )
{
if( v10 == 1
&& (unsigned __int8)RtlEqualUnicodeString(
(PCUNICODE_STRING)(v4 + 2),
(PCUNICODE_STRING)&NextEntryHashTable[1].Signature,
1u) )
{
v8 = 1;
}
}
else if( RtlEqualSid(*((PVOID *)v4 + 1), (PVOID)NextEntryHashTable[1].Signature) )
{
v8 = 1;
}
if( v8 )
break;
}
NextEntryHashTable = RtlGetNextEntryHashTable(HashTable, &Context);
}
while( NextEntryHashTable );
}
*v5 = (unsigned __int64)v7 & -(__int64)(v8 != 0);
return 0;
}Referenced by:
SepGetCachedHandlesEntry