RtlInsertEntryHashTable

UINT8 __stdcall RtlInsertEntryHashTable(
        RTL_DYNAMIC_HASH_TABLE *HashTable,
        RTL_DYNAMIC_HASH_TABLE_ENTRY *Entry,
        UINT64 Signature,
        RTL_DYNAMIC_HASH_TABLE_CONTEXT *Context){
  RTL_DYNAMIC_HASH_TABLE_CONTEXT *v4; 
  _LIST_ENTRY *PrevLinkage; 
  _LIST_ENTRY *Flink; 
  RTL_DYNAMIC_HASH_TABLE_CONTEXT v10; 
  Entry->Signature = Signature;
  ++HashTable->NumEntries;
  v4 = Context;
  memset(&v10, 0, sizeof(v10));
  if( Context )
  {
    if( !Context->ChainHead )
      RtlpPopulateContext(HashTable, Context, Signature);
  }
  else
  {
    RtlpPopulateContext(HashTable, &v10, Signature);
    v4 = &v10;
  }
  if( v4->ChainHead->Flink == v4->ChainHead )
    ++HashTable->NonEmptyBuckets;
  PrevLinkage = v4->PrevLinkage;
  Flink = PrevLinkage->Flink;
  if( PrevLinkage->Flink->Blink != PrevLinkage )
    __fastfail(3u);
  Entry->Linkage.Blink = PrevLinkage;
  Entry->Linkage.Flink = Flink;
  Flink->Blink = &Entry->Linkage;
  PrevLinkage->Flink = &Entry->Linkage;
  return 1;
}

Referenced by:

SepAddLuidToIndexEntry
SepGetCachedHandlesEntry
SepGetLowBoxNumberEntry
SepInsertOrReferenceSharedSidEntries
SepReadAndInsertCaps