RtlInternEntryDereference

NTSTATUS __fastcall RtlInternEntryDereference(INT64 a1, INT64 a2){
  __int64 v4; 
  _QWORD *i; 
  __int64 v7; 

  v4 = _InterlockedDecrement64((volatile signed __int64 *)(a2 + 16));
  if( v4 <= 0 )
  {
    if( v4 )
      __fastfail(0xEu);
    (*(void(__fastcall **)(INT64, _QWORD))(*(_QWORD *)(a1 + 16) + 16i64))(a1, 0i64);
    v7 = *(_QWORD *)(a2 + 8) & (-1i64 << (*(_DWORD *)(a1 + 4) & 0x1F));
    for( i = (_QWORD *)(*(_QWORD *)(a1 + 8)
                       + 8i64
                       * ((37
                         * (BYTE6(v7)
                          + 37
                          * (BYTE5(v7)
                           + 37
                           * (BYTE4(v7)
                            + 37
                            * (BYTE3(v7) + 37 * (BYTE2(v7) + 37 * (BYTE1(v7) + 37 * ((unsigned __int8)v7 + 11623883)))))))
                         + HIBYTE(v7)) & (unsigned int)((*(_DWORD *)(a1 + 4) >> 5) - 1))); (*i & 1) == 0; i = (_QWORD *)*i )
    {
      if( *i == a2 )
      {
        *i = *(_QWORD *)a2;
        --*(_DWORD *)a1;
        *(_QWORD *)a2 |= 0x8000000000000002ui64;
        break;
      }
    }
    (*(void(__fastcall **)(INT64, _QWORD))(*(_QWORD *)(a1 + 16) + 24i64))(a1, 0i64);
    LODWORD(v4) = (*(__int64(__fastcall **)(INT64, INT64))(*(_QWORD *)(a1 + 16) + 8i64))(a1, a2);
  }
  return v4;
}

Referenced by:

PoEnergyContextCleanup
PopEtAggregateKeyCleanup
PopEtAppIdDereference
PopEtEnergyContextSetState
PopEtStringSet