ObpInsertDirectoryEntry
CHAR __fastcall ObpInsertDirectoryEntry(CHAR *Object, CHAR *a2, INT64 a3){
_DWORD *PoolWithTag;
_DWORD *v7;
CHAR *v8;
PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0x18ui64, 0x6944624Fui64);
v7 = PoolWithTag;
if( PoolWithTag )
{
ObfReferenceObject(a2);
v8 = &Object[8 * *(unsigned __int16 *)(a3 + 28)];
v7[4] = *(_DWORD *)(a3 + 24);
*(_QWORD *)v7 = *(_QWORD *)v8;
*(_QWORD *)v8 = v7;
*((_QWORD *)v7 + 1) = a2;
*(_QWORD *)(a3 + 16) = v8;
ObfReferenceObject(Object);
LOBYTE(PoolWithTag) = 1;
*(_QWORD *)&a2[-*((unsigned __int8 *)ObpInfoMaskToOffset + (*(a2 - 22) & 3)) - 48] = Object;
}
return(char)PoolWithTag;
}Referenced by:
ObCreateObjectTypeEx
ObInitSystem
ObpLookupObjectName