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 intoaddons/sourcemod/gamedata/<your_plugin>.txt
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.
Signatures + Functions block. The plugin uses
DHookCreateFromConf - DHooks reads return type, this-type,
calling convention, and argument types straight from the gamedata. Less
boilerplate in the plugin, types travel with the gamedata.
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.