L L4D2node

CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>::RemoveRebalance

0x008aeeb0 · 4874 bytes · __thiscall

_ZN10CUtlRBTreeIN7CUtlMapI7CHandleI11CBaseEntityE22scavenge_cache_entry_thE6Node_tEhNS5_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS6_hEhEE15RemoveRebalanceEh

Decompiled

undefined (2 params)

/* CUtlRBTree<CUtlMap<CHandle<CBaseEntity>, scavenge_cache_entry_t, unsigned char>::Node_t, unsigned
   char, CUtlMap<CHandle<CBaseEntity>, scavenge_cache_entry_t, unsigned char>::CKeyLess,
   CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>, scavenge_cache_entry_t, unsigned
   char>::Node_t, unsigned char>, unsigned char> >::RemoveRebalance(unsigned char) */

void __thiscall
CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
::RemoveRebalance(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  *this,uchar param_1)

{
  char cVar1;
  CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
  CVar2;
  int iVar3;
  CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
  CVar4;
  uint uVar5;
  undefined1 *puVar6;
  byte bVar7;
  byte bVar8;
  byte *pbVar9;
  uint uVar10;
  int local_24;
  int local_20;
  
  CVar2 = this[0x10];
  while ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
          )param_1 != CVar2) {
    if ((Links(unsigned_char)::s_Sentinel == '\0') &&
       (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
      Links(unsigned_char)::s_Sentinel =
           (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
            )0xff;
      DAT_00f5e1e1 = 0xff;
      DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff;
      __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
    }
    cVar1 = DAT_00f5e1e3;
    if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
         )param_1 !=
        (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
         )0xff) {
      cVar1 = *(char *)((uint)param_1 * 0x10 + *(int *)(this + 4) + 3);
    }
    if (cVar1 != '\x01') break;
    if (Links(unsigned_char)::s_Sentinel == '\0') {
      iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
      if (iVar3 != 0) {
        Links(unsigned_char)::s_Sentinel =
             (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
              )0xff;
        DAT_00f5e1e1 = 0xff;
        DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff;
        __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
      }
      if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
           )param_1 !=
          (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
           )0xff) goto LAB_008aef68;
LAB_008af114:
      uVar5 = (uint)(byte)DAT_00f5e1e2;
      CVar2 = DAT_00f5e1e2;
      if (Links(unsigned_char)::s_Sentinel != '\0') goto LAB_008aef82;
LAB_008af130:
      iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
      if (iVar3 != 0) {
        Links(unsigned_char)::s_Sentinel =
             (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
              )0xff;
        DAT_00f5e1e1 = 0xff;
        DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff;
        __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        goto LAB_008aef82;
      }
      if (CVar2 != (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                    )0xff) goto LAB_008aef8d;
LAB_008af15c:
      if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
           )param_1 != Links(unsigned_char)::s_Sentinel) goto LAB_008aef9d;
LAB_008af170:
      if (Links(unsigned_char)::s_Sentinel == '\0') {
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008af178;
        }
        if (CVar2 != (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) goto LAB_008af183;
LAB_008af9bc:
        puVar6 = &Links(unsigned_char)::s_Sentinel;
      }
      else {
LAB_008af178:
        if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) goto LAB_008af9bc;
LAB_008af183:
        puVar6 = (undefined1 *)(uVar5 * 0x10 + *(int *)(this + 4));
      }
      bVar8 = puVar6[1];
      uVar10 = (uint)bVar8;
      if ((Links(unsigned_char)::s_Sentinel == '\0') &&
         (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
        Links(unsigned_char)::s_Sentinel =
             (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
              )0xff;
        DAT_00f5e1e1 = 0xff;
        DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff;
        __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        if (bVar8 != 0xff) goto LAB_008af1a0;
LAB_008af980:
        puVar6 = &Links(unsigned_char)::s_Sentinel;
      }
      else {
        if (bVar8 == 0xff) goto LAB_008af980;
LAB_008af1a0:
        puVar6 = (undefined1 *)(uVar10 * 0x10 + *(int *)(this + 4));
      }
      if (puVar6[3] == '\0') {
        *(undefined1 *)(uVar10 * 0x10 + *(int *)(this + 4) + 3) = 1;
        *(undefined1 *)(uVar5 * 0x10 + *(int *)(this + 4) + 3) = 0;
        RotateLeft(this,(uchar)uVar5);
        if (Links(unsigned_char)::s_Sentinel == '\0') {
          iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
          if (iVar3 != 0) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          }
          if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )param_1 !=
              (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )0xff) goto LAB_008af8f5;
LAB_008afd54:
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
          if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )param_1 ==
              (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )0xff) goto LAB_008afd54;
LAB_008af8f5:
          puVar6 = (undefined1 *)((uint)param_1 * 0x10 + *(int *)(this + 4));
        }
        CVar2 = *(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  *)(puVar6 + 2);
        if (Links(unsigned_char)::s_Sentinel == '\0') {
          iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
          if (iVar3 != 0) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          }
          if (CVar2 != (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff) goto LAB_008af915;
LAB_008afd26:
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
          if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff) goto LAB_008afd26;
LAB_008af915:
          puVar6 = (undefined1 *)((uint)(byte)CVar2 * 0x10 + *(int *)(this + 4));
        }
        uVar10 = (uint)(byte)puVar6[1];
      }
      bVar8 = (byte)uVar10;
      if (Links(unsigned_char)::s_Sentinel == '\0') {
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008af1c2;
        }
        if (bVar8 != 0xff) goto LAB_008af1cb;
LAB_008af8aa:
        pbVar9 = (byte *)&Links(unsigned_char)::s_Sentinel;
      }
      else {
LAB_008af1c2:
        if (bVar8 == 0xff) goto LAB_008af8aa;
LAB_008af1cb:
        pbVar9 = (byte *)(uVar10 * 0x10 + *(int *)(this + 4));
      }
      bVar7 = *pbVar9;
      if (Links(unsigned_char)::s_Sentinel == '\0') {
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008af1df;
        }
        if (bVar7 != 0xff) goto LAB_008af1e8;
LAB_008af6a8:
        if (DAT_00f5e1e3 != '\x01') goto joined_r0x008af702;
LAB_008af6b7:
        if ((Links(unsigned_char)::s_Sentinel == '\0') &&
           (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        }
        if (bVar8 == 0xff) {
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
          puVar6 = (undefined1 *)(uVar10 * 0x10 + *(int *)(this + 4));
        }
        bVar7 = puVar6[1];
        if ((Links(unsigned_char)::s_Sentinel == '\0') &&
           (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        }
        if (bVar7 == 0xff) {
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
          puVar6 = (undefined1 *)((uint)bVar7 * 0x10 + *(int *)(this + 4));
        }
        if (puVar6[3] != '\x01') goto joined_r0x008af702;
LAB_008afb48:
        param_1 = (uchar)CVar2;
        if ((char)uVar10 == -1) {
          CVar2 = this[0x10];
        }
        else {
          *(undefined1 *)(uVar10 * 0x10 + *(int *)(this + 4) + 3) = 0;
          CVar2 = this[0x10];
        }
      }
      else {
LAB_008af1df:
        if (bVar7 == 0xff) goto LAB_008af6a8;
LAB_008af1e8:
        if (*(char *)((uint)bVar7 * 0x10 + *(int *)(this + 4) + 3) == '\x01') goto LAB_008af6b7;
joined_r0x008af702:
        if (Links(unsigned_char)::s_Sentinel == '\0') {
          iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
          if (iVar3 != 0) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
            goto LAB_008af203;
          }
          if (bVar8 != 0xff) goto LAB_008af20c;
LAB_008af73a:
          local_20 = 0xff0;
          bVar7 = DAT_00f5e1e1;
          if (Links(unsigned_char)::s_Sentinel != '\0') goto LAB_008af228;
LAB_008af752:
          iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
          if (iVar3 != 0) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
            goto LAB_008af228;
          }
          if (bVar7 != 0xff) goto LAB_008af231;
LAB_008af782:
          if (DAT_00f5e1e3 != '\x01') goto LAB_008af244;
LAB_008af798:
          if ((Links(unsigned_char)::s_Sentinel == '\0') &&
             (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          }
          pbVar9 = (byte *)&Links(unsigned_char)::s_Sentinel;
          if (bVar8 != 0xff) {
            pbVar9 = (byte *)(local_20 + *(int *)(this + 4));
          }
          *(undefined1 *)(*(int *)(this + 4) + 3 + (uint)*pbVar9 * 0x10) = 1;
          *(undefined1 *)(*(int *)(this + 4) + 3 + local_20) = 0;
          RotateRight(this,bVar8);
          if ((Links(unsigned_char)::s_Sentinel == '\0') &&
             (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          }
          if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )param_1 ==
              (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )0xff) {
            puVar6 = &Links(unsigned_char)::s_Sentinel;
          }
          else {
            puVar6 = (undefined1 *)((uint)param_1 * 0x10 + *(int *)(this + 4));
          }
          CVar2 = *(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                    *)(puVar6 + 2);
          if ((Links(unsigned_char)::s_Sentinel == '\0') &&
             (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          }
          if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff) {
            local_24 = 0xff0;
            puVar6 = &Links(unsigned_char)::s_Sentinel;
            CVar4 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                     )0xff;
          }
          else {
            local_24 = (uint)(byte)CVar2 * 0x10;
            puVar6 = (undefined1 *)(*(int *)(this + 4) + local_24);
            CVar4 = CVar2;
          }
          bVar8 = puVar6[1];
          local_20 = (uint)bVar8 << 4;
          if (Links(unsigned_char)::s_Sentinel == '\0') goto LAB_008af838;
LAB_008af259:
          iVar3 = *(int *)(this + 4);
          if (CVar2 != (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff) goto LAB_008af267;
LAB_008af86d:
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
LAB_008af203:
          if (bVar8 == 0xff) goto LAB_008af73a;
LAB_008af20c:
          local_20 = uVar10 * 0x10;
          bVar7 = *(byte *)(local_20 + *(int *)(this + 4) + 1);
          if (Links(unsigned_char)::s_Sentinel == '\0') goto LAB_008af752;
LAB_008af228:
          if (bVar7 == 0xff) goto LAB_008af782;
LAB_008af231:
          if (*(char *)((uint)bVar7 * 0x10 + *(int *)(this + 4) + 3) == '\x01') goto LAB_008af798;
LAB_008af244:
          local_24 = (uint)(byte)CVar2 << 4;
          CVar4 = CVar2;
          if (Links(unsigned_char)::s_Sentinel != '\0') goto LAB_008af259;
LAB_008af838:
          iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
          if (iVar3 != 0) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
            goto LAB_008af259;
          }
          iVar3 = *(int *)(this + 4);
          if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff) goto LAB_008af86d;
LAB_008af267:
          puVar6 = (undefined1 *)(local_24 + iVar3);
        }
        cVar1 = Links(unsigned_char)::s_Sentinel;
        *(undefined1 *)(iVar3 + 3 + local_20) = puVar6[3];
        *(undefined1 *)(*(int *)(this + 4) + 3 + local_24) = 1;
        if ((cVar1 == '\0') &&
           (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        }
        if (bVar8 == 0xff) {
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
          puVar6 = (undefined1 *)(local_20 + *(int *)(this + 4));
        }
        *(undefined1 *)(*(int *)(this + 4) + 3 + (uint)(byte)puVar6[1] * 0x10) = 1;
        RotateLeft(this,(uchar)CVar4);
        param_1 = *(uchar *)(this + 0x10);
        CVar2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                 )param_1;
      }
    }
    else {
      if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
           )param_1 ==
          (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
           )0xff) goto LAB_008af114;
LAB_008aef68:
      CVar2 = *(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                *)((uint)param_1 * 0x10 + *(int *)(this + 4) + 2);
      uVar5 = (uint)(byte)CVar2;
      if (Links(unsigned_char)::s_Sentinel == '\0') goto LAB_008af130;
LAB_008aef82:
      if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                    )0xff) goto LAB_008af15c;
LAB_008aef8d:
      if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
           )param_1 ==
          *(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
            *)(uVar5 * 0x10 + *(int *)(this + 4))) goto LAB_008af170;
LAB_008aef9d:
      if (Links(unsigned_char)::s_Sentinel == '\0') {
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008aefa5;
        }
        if (CVar2 != (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) goto LAB_008aefb0;
LAB_008af604:
        pbVar9 = (byte *)&Links(unsigned_char)::s_Sentinel;
      }
      else {
LAB_008aefa5:
        if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) goto LAB_008af604;
LAB_008aefb0:
        pbVar9 = (byte *)(uVar5 * 0x10 + *(int *)(this + 4));
      }
      bVar8 = *pbVar9;
      uVar10 = (uint)bVar8;
      if ((Links(unsigned_char)::s_Sentinel == '\0') &&
         (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
        Links(unsigned_char)::s_Sentinel =
             (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
              )0xff;
        DAT_00f5e1e1 = 0xff;
        DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff;
        __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        if (bVar8 != 0xff) goto LAB_008aefcc;
LAB_008af520:
        if (DAT_00f5e1e3 != '\0') goto LAB_008aefdf;
LAB_008af530:
        *(undefined1 *)(uVar10 * 0x10 + *(int *)(this + 4) + 3) = 1;
        *(undefined1 *)(uVar5 * 0x10 + *(int *)(this + 4) + 3) = 0;
        RotateRight(this,(uchar)uVar5);
        if (Links(unsigned_char)::s_Sentinel == '\0') {
          iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
          if (iVar3 != 0) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          }
          if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )param_1 !=
              (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )0xff) goto LAB_008af56d;
LAB_008afa24:
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
          if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )param_1 ==
              (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )0xff) goto LAB_008afa24;
LAB_008af56d:
          puVar6 = (undefined1 *)((uint)param_1 * 0x10 + *(int *)(this + 4));
        }
        CVar2 = *(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  *)(puVar6 + 2);
        if (Links(unsigned_char)::s_Sentinel == '\0') {
          iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
          if (iVar3 != 0) {
            Links(unsigned_char)::s_Sentinel =
                 (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  )0xff;
            DAT_00f5e1e1 = 0xff;
            DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                            )0xff;
            __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          }
          if (CVar2 != (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff) goto LAB_008af58d;
LAB_008af9f6:
          pbVar9 = (byte *)&Links(unsigned_char)::s_Sentinel;
        }
        else {
          if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff) goto LAB_008af9f6;
LAB_008af58d:
          pbVar9 = (byte *)((uint)(byte)CVar2 * 0x10 + *(int *)(this + 4));
        }
        uVar10 = (uint)*pbVar9;
        if (Links(unsigned_char)::s_Sentinel != '\0') goto LAB_008aefee;
LAB_008af5a1:
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008aefee;
        }
        if ((char)uVar10 != -1) goto LAB_008aeff7;
LAB_008af5cb:
        puVar6 = &Links(unsigned_char)::s_Sentinel;
      }
      else {
        if (bVar8 == 0xff) goto LAB_008af520;
LAB_008aefcc:
        if (*(char *)(uVar10 * 0x10 + *(int *)(this + 4) + 3) == '\0') goto LAB_008af530;
LAB_008aefdf:
        if (Links(unsigned_char)::s_Sentinel == '\0') goto LAB_008af5a1;
LAB_008aefee:
        if ((char)uVar10 == -1) goto LAB_008af5cb;
LAB_008aeff7:
        puVar6 = (undefined1 *)(uVar10 * 0x10 + *(int *)(this + 4));
      }
      bVar8 = puVar6[1];
      bVar7 = (byte)uVar10;
      if (Links(unsigned_char)::s_Sentinel == '\0') {
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008af00c;
        }
        if (bVar8 != 0xff) goto LAB_008af015;
LAB_008af2f8:
        if (DAT_00f5e1e3 != '\x01') goto LAB_008af028;
LAB_008af310:
        if ((Links(unsigned_char)::s_Sentinel == '\0') &&
           (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        }
        CVar4 = Links(unsigned_char)::s_Sentinel;
        if (bVar7 != 0xff) {
          CVar4 = *(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                    *)(uVar10 * 0x10 + *(int *)(this + 4));
        }
        if ((Links(unsigned_char)::s_Sentinel == '\0') &&
           (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        }
        if (CVar4 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) {
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
          puVar6 = (undefined1 *)((uint)(byte)CVar4 * 0x10 + *(int *)(this + 4));
        }
        if (puVar6[3] == '\x01') goto LAB_008afb48;
        if (Links(unsigned_char)::s_Sentinel == '\0') goto LAB_008af360;
LAB_008af030:
        if (bVar7 != 0xff) goto LAB_008af039;
LAB_008af38a:
        local_20 = 0xff0;
        CVar4 = Links(unsigned_char)::s_Sentinel;
        if (Links(unsigned_char)::s_Sentinel == '\0') goto LAB_008af3a8;
LAB_008af054:
        if (CVar4 != (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) goto LAB_008af05d;
LAB_008af3d8:
        if (DAT_00f5e1e3 != '\x01') goto LAB_008af070;
LAB_008af3f0:
        if ((Links(unsigned_char)::s_Sentinel == '\0') &&
           (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        }
        puVar6 = &Links(unsigned_char)::s_Sentinel;
        if (bVar7 != 0xff) {
          puVar6 = (undefined1 *)(local_20 + *(int *)(this + 4));
        }
        *(undefined1 *)(*(int *)(this + 4) + 3 + (uint)(byte)puVar6[1] * 0x10) = 1;
        *(undefined1 *)(*(int *)(this + 4) + 3 + local_20) = 0;
        RotateLeft(this,bVar7);
        if ((Links(unsigned_char)::s_Sentinel == '\0') &&
           (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        }
        if ((CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
             )param_1 ==
            (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
             )0xff) {
          puVar6 = &Links(unsigned_char)::s_Sentinel;
        }
        else {
          puVar6 = (undefined1 *)((uint)param_1 * 0x10 + *(int *)(this + 4));
        }
        CVar2 = *(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  *)(puVar6 + 2);
        if ((Links(unsigned_char)::s_Sentinel == '\0') &&
           (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        }
        if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) {
          local_24 = 0xff0;
          pbVar9 = (byte *)&Links(unsigned_char)::s_Sentinel;
          CVar4 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                   )0xff;
        }
        else {
          local_24 = (uint)(byte)CVar2 * 0x10;
          pbVar9 = (byte *)(*(int *)(this + 4) + local_24);
          CVar4 = CVar2;
        }
        bVar7 = *pbVar9;
        local_20 = (uint)bVar7 << 4;
        if (Links(unsigned_char)::s_Sentinel != '\0') goto LAB_008af085;
LAB_008af490:
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008af085;
        }
        iVar3 = *(int *)(this + 4);
        if (CVar2 != (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) goto LAB_008af093;
LAB_008af4c5:
        puVar6 = &Links(unsigned_char)::s_Sentinel;
      }
      else {
LAB_008af00c:
        if (bVar8 == 0xff) goto LAB_008af2f8;
LAB_008af015:
        if (*(char *)((uint)bVar8 * 0x10 + *(int *)(this + 4) + 3) == '\x01') goto LAB_008af310;
LAB_008af028:
        if (Links(unsigned_char)::s_Sentinel != '\0') goto LAB_008af030;
LAB_008af360:
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008af030;
        }
        if (bVar7 == 0xff) goto LAB_008af38a;
LAB_008af039:
        local_20 = uVar10 * 0x10;
        CVar4 = *(CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                  *)(local_20 + *(int *)(this + 4));
        if (Links(unsigned_char)::s_Sentinel != '\0') goto LAB_008af054;
LAB_008af3a8:
        iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel);
        if (iVar3 != 0) {
          Links(unsigned_char)::s_Sentinel =
               (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                )0xff;
          DAT_00f5e1e1 = 0xff;
          DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                          )0xff;
          __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
          goto LAB_008af054;
        }
        if (CVar4 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) goto LAB_008af3d8;
LAB_008af05d:
        if (*(char *)((uint)(byte)CVar4 * 0x10 + *(int *)(this + 4) + 3) == '\x01')
        goto LAB_008af3f0;
LAB_008af070:
        local_24 = (uint)(byte)CVar2 << 4;
        CVar4 = CVar2;
        if (Links(unsigned_char)::s_Sentinel == '\0') goto LAB_008af490;
LAB_008af085:
        iVar3 = *(int *)(this + 4);
        if (CVar2 == (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                      )0xff) goto LAB_008af4c5;
LAB_008af093:
        puVar6 = (undefined1 *)(local_24 + iVar3);
      }
      cVar1 = Links(unsigned_char)::s_Sentinel;
      *(undefined1 *)(iVar3 + 3 + local_20) = puVar6[3];
      *(undefined1 *)(*(int *)(this + 4) + 3 + local_24) = 1;
      if ((cVar1 == '\0') &&
         (iVar3 = __cxa_guard_acquire(&Links(unsigned_char)::s_Sentinel), iVar3 != 0)) {
        Links(unsigned_char)::s_Sentinel =
             (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
              )0xff;
        DAT_00f5e1e1 = 0xff;
        DAT_00f5e1e2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
                        )0xff;
        __cxa_guard_release(&Links(unsigned_char)::s_Sentinel);
        iVar3 = *(int *)(this + 4);
        if (bVar7 != 0xff) goto LAB_008af0c9;
LAB_008afb38:
        pbVar9 = (byte *)&Links(unsigned_char)::s_Sentinel;
      }
      else {
        iVar3 = *(int *)(this + 4);
        if (bVar7 == 0xff) goto LAB_008afb38;
LAB_008af0c9:
        pbVar9 = (byte *)(local_20 + iVar3);
      }
      *(undefined1 *)(iVar3 + 3 + (uint)*pbVar9 * 0x10) = 1;
      RotateRight(this,(uchar)CVar4);
      param_1 = *(uchar *)(this + 0x10);
      CVar2 = (CUtlRBTree<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char,CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<CHandle<CBaseEntity>,scavenge_cache_entry_t,unsigned_char>::Node_t,unsigned_char>,unsigned_char>>
               )param_1;
    }
  }
  *(undefined1 *)((uint)param_1 * 0x10 + *(int *)(this + 4) + 3) = 1;
  return;
}

SourceMod gamedata

paste into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

Just a Signatures{} block, ready to drop into a gamedata file. Wire it up in your plugin however you like - SDKCall, DHooks, raw memory ops, or anything else.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)