L L4D2node

CNetPropManager::GetEntityPropInfo

0x0074f350 · 8038 bytes · __cdecl

_ZN15CNetPropManager17GetEntityPropInfoEP11CBaseEntityPKci

Decompiled

undefined (3 params)

/* CNetPropManager::GetEntityPropInfo(CBaseEntity*, char const*, int) */

CBaseEntity * CNetPropManager::GetEntityPropInfo(CBaseEntity *param_1,char *param_2,int param_3)

{
  char *__s;
  int *piVar1;
  int *piVar2;
  int *piVar3;
  int *piVar4;
  int *piVar5;
  int *piVar6;
  int *piVar7;
  int *piVar8;
  CUtlDict<CNetPropManager::PropInfo_t,int> *this;
  datamap_t *pdVar9;
  CUtlRBTree<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int,CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int>,int>>
  *this_00;
  char cVar10;
  undefined4 *puVar11;
  int *piVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  char *pcVar16;
  char *pcVar17;
  int *piVar18;
  char *pcVar19;
  int iVar20;
  int in_GS_OFFSET;
  char *in_stack_00000010;
  int in_stack_00000014;
  int local_1d4;
  int local_1d0;
  int local_1cc;
  int local_1c8;
  int local_1c4;
  int local_1c0;
  char *local_1bc;
  int local_1b8;
  int local_1b4;
  int local_1b0;
  int local_1a8;
  int local_19c;
  int local_198;
  int local_194;
  int local_188;
  int local_184;
  int *local_180;
  int local_17c;
  int *local_178;
  char *local_170;
  undefined4 *local_16c;
  undefined4 local_168;
  undefined4 local_164;
  int local_160;
  undefined4 *local_15c;
  char *local_158;
  undefined4 *local_154;
  int local_150;
  int local_14c;
  int local_148;
  char *local_144;
  int local_140;
  int local_13c;
  int local_138;
  undefined4 *local_134;
  undefined4 local_130;
  uint local_12c;
  undefined4 *local_128;
  char local_120 [256];
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  puVar11 = (undefined4 *)(**(code **)(*(int *)param_3 + 0x28))(param_3);
  __s = (char *)*puVar11;
  piVar1 = (int *)puVar11[1];
  piVar12 = (int *)(**(code **)(*(int *)param_3 + 0x30))(param_3);
  if ((__s != (char *)0x0) &&
     (local_188 = *(int *)(param_2 + 0x10), local_144 = __s, local_188 != -1)) {
    iVar20 = *(int *)(param_2 + 4);
    do {
      iVar13 = local_188 * 0x18;
      cVar10 = (**(code **)param_2)((Node_t *)&local_144,iVar20 + 0x10 + iVar13);
      if (cVar10 == '\0') {
        cVar10 = (**(code **)param_2)(*(int *)(param_2 + 4) + iVar13 + 0x10,(Node_t *)&local_144);
        if (cVar10 == '\0') {
          if (((local_188 < 0) || (*(int *)(param_2 + 8) <= local_188)) ||
             (*(int *)(param_2 + 0x1c) < local_188)) goto LAB_0074f42e;
          if ((CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
               ::Links(int)::s_Sentinel == '\0') &&
             (iVar20 = __cxa_guard_acquire(&CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                                            ::Links(int)::s_Sentinel), iVar20 != 0)) {
            CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
            ::Links(int)::s_Sentinel = 0xffffffff;
            DAT_00f438a4 = 0xffffffff;
            DAT_00f438a8 = 0xffffffff;
            __cxa_guard_release(&CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                                 ::Links(int)::s_Sentinel);
          }
          if (*(int *)(*(int *)(param_2 + 4) + iVar13) == local_188) goto LAB_0074f42e;
          this_00 = *(CUtlRBTree<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int,CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int>,int>>
                      **)(*(int *)(param_2 + 4) + 0x14 + iVar13);
          iVar20 = -1;
          if (in_stack_00000010 != (char *)0x0) {
            local_144 = in_stack_00000010;
            iVar20 = CUtlRBTree<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int,CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int>,int>>
                     ::Find(this_00,(Node_t *)&local_144);
          }
          if (0 < in_stack_00000014) {
            V_snprintf(local_120,0x100,"%s%d",in_stack_00000010,in_stack_00000014);
            local_144 = local_120;
            iVar20 = CUtlRBTree<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int,CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int>,int>>
                     ::Find(this_00,(Node_t *)&local_144);
          }
          if (((iVar20 < 0) || (*(int *)(this_00 + 8) <= iVar20)) ||
             (*(int *)(this_00 + 0x1c) < iVar20)) goto LAB_0074f42e;
          if ((CUtlRBTree<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int,CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int>,int>>
               ::Links(int)::s_Sentinel == '\0') &&
             (iVar13 = __cxa_guard_acquire(&CUtlRBTree<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int,CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int>,int>>
                                            ::Links(int)::s_Sentinel), iVar13 != 0)) {
            CUtlRBTree<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int,CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int>,int>>
            ::Links(int)::s_Sentinel = 0xffffffff;
            DAT_00f43894 = 0xffffffff;
            DAT_00f43898 = 0xffffffff;
            __cxa_guard_release(&CUtlRBTree<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int,CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CNetPropManager::PropInfo_t,int>::Node_t,int>,int>>
                                 ::Links(int)::s_Sentinel);
          }
          piVar18 = (int *)(iVar20 * 0x34 + *(int *)(this_00 + 4));
          if (iVar20 == *piVar18) goto LAB_0074f42e;
          *(int *)param_1 = piVar18[5];
          *(int *)(param_1 + 4) = piVar18[6];
          *(int *)(param_1 + 8) = piVar18[7];
          *(int *)(param_1 + 0xc) = piVar18[8];
          *(int *)(param_1 + 0x10) = piVar18[9];
          *(int *)(param_1 + 0x14) = piVar18[10];
          *(int *)(param_1 + 0x18) = piVar18[0xb];
          *(int *)(param_1 + 0x1c) = piVar18[0xc];
          goto LAB_00750e4a;
        }
        if ((CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
             ::Links(int)::s_Sentinel == '\0') &&
           (iVar20 = __cxa_guard_acquire(&CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                                          ::Links(int)::s_Sentinel), iVar20 != 0)) {
          CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
          ::Links(int)::s_Sentinel = 0xffffffff;
          DAT_00f438a4 = 0xffffffff;
          DAT_00f438a8 = 0xffffffff;
          __cxa_guard_release(&CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                               ::Links(int)::s_Sentinel);
        }
        iVar20 = *(int *)(param_2 + 4);
        local_188 = *(int *)(iVar20 + 4 + iVar13);
      }
      else {
        if ((CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
             ::Links(int)::s_Sentinel == '\0') &&
           (iVar20 = __cxa_guard_acquire(&CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                                          ::Links(int)::s_Sentinel), iVar20 != 0)) {
          CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
          ::Links(int)::s_Sentinel = 0xffffffff;
          DAT_00f438a4 = 0xffffffff;
          DAT_00f438a8 = 0xffffffff;
          __cxa_guard_release(&CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                               ::Links(int)::s_Sentinel);
        }
        iVar20 = *(int *)(param_2 + 4);
        local_188 = *(int *)(iVar20 + local_188 * 0x18);
      }
    } while (local_188 != -1);
  }
  local_188 = -1;
LAB_0074f42e:
  local_16c = (undefined4 *)0x0;
  local_168 = 0;
  local_164 = 0;
  local_160 = 0;
  local_15c = (undefined4 *)0x0;
                    /* try { // try from 0074f47b to 00750a15 has its CatchHandler @ 00750edd */
  V_SplitString(in_stack_00000010,".",(CUtlVector *)&local_16c);
  iVar20 = local_160;
  if (local_160 == 0) {
    iVar13 = 0;
  }
  else {
    iVar13 = local_160;
    if (0 < local_160) {
      local_1d4 = 0;
      local_194 = 0;
      local_1bc = (char *)0x0;
      do {
        pcVar16 = (char *)local_16c[local_194];
        if (piVar1[1] < 1) {
LAB_00750016:
          local_170 = (char *)*local_16c;
          iVar13 = local_160;
          if (piVar12 == (int *)0x0) goto LAB_00750c12;
          local_1d0 = 0;
          local_1a8 = 0;
          local_1d4 = 0;
          local_178 = piVar12;
          goto LAB_00750056;
        }
        local_198 = 0;
        do {
          pcVar19 = (char *)(local_198 * 0x54 + *piVar1);
          if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
             (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16), iVar13 == 0))
          goto LAB_0074f828;
          piVar18 = *(int **)(pcVar19 + 0x48);
          if ((piVar18 != (int *)0x0) && (local_19c = 0, 0 < piVar18[1])) {
            do {
              pcVar19 = (char *)(local_19c * 0x54 + *piVar18);
              if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                 (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16), iVar13 == 0))
              goto LAB_0074f828;
              piVar2 = *(int **)(pcVar19 + 0x48);
              if ((piVar2 != (int *)0x0) && (local_1a8 = 0, 0 < piVar2[1])) {
                do {
                  pcVar19 = (char *)(local_1a8 * 0x54 + *piVar2);
                  if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                     (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16), iVar13 == 0))
                  goto LAB_0074f828;
                  piVar3 = *(int **)(pcVar19 + 0x48);
                  if ((piVar3 != (int *)0x0) && (local_1b0 = 0, 0 < piVar3[1])) {
                    do {
                      pcVar19 = (char *)(local_1b0 * 0x54 + *piVar3);
                      if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                         (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16), iVar13 == 0))
                      goto LAB_0074f828;
                      piVar4 = *(int **)(pcVar19 + 0x48);
                      if ((piVar4 != (int *)0x0) && (local_1b4 = 0, 0 < piVar4[1])) {
                        do {
                          pcVar19 = (char *)(local_1b4 * 0x54 + *piVar4);
                          if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                             (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16), iVar13 == 0))
                          goto LAB_0074f828;
                          piVar5 = *(int **)(pcVar19 + 0x48);
                          if ((piVar5 != (int *)0x0) && (local_1b8 = 0, 0 < piVar5[1])) {
                            do {
                              pcVar19 = (char *)(local_1b8 * 0x54 + *piVar5);
                              if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                                 (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16),
                                 iVar13 == 0)) goto LAB_0074f828;
                              piVar6 = *(int **)(pcVar19 + 0x48);
                              if ((piVar6 != (int *)0x0) && (local_180 = (int *)0x0, 0 < piVar6[1]))
                              {
                                do {
                                  pcVar19 = (char *)((int)local_180 * 0x54 + *piVar6);
                                  if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                                     (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16),
                                     iVar13 == 0)) goto LAB_0074f828;
                                  piVar7 = *(int **)(pcVar19 + 0x48);
                                  if ((piVar7 != (int *)0x0) &&
                                     (local_178 = (int *)0x0, 0 < piVar7[1])) {
                                    do {
                                      pcVar19 = (char *)((int)local_178 * 0x54 + *piVar7);
                                      if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                                         (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16),
                                         iVar13 == 0)) goto LAB_0074f828;
                                      piVar8 = *(int **)(pcVar19 + 0x48);
                                      if ((piVar8 != (int *)0x0) && (iVar13 = 0, 0 < piVar8[1])) {
                                        do {
                                          pcVar19 = (char *)(iVar13 * 0x54 + *piVar8);
                                          if (((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                                              (iVar14 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar16
                                                                 ), iVar14 == 0)) ||
                                             ((*(SendTable **)(pcVar19 + 0x48) != (SendTable *)0x0
                                              && (pcVar19 = (char *)SearchSendTable((CNetPropManager
                                                                                     *)param_2,
                                                                                    *(SendTable **)
                                                                                     (pcVar19 + 0x48
                                                                                     ),pcVar16),
                                                 pcVar19 != (char *)0x0)))) goto LAB_0074f828;
                                          iVar13 = iVar13 + 1;
                                        } while (iVar13 < piVar8[1]);
                                      }
                                      local_178 = (int *)((int)local_178 + 1);
                                    } while ((int)local_178 < piVar7[1]);
                                  }
                                  local_180 = (int *)((int)local_180 + 1);
                                } while ((int)local_180 < piVar6[1]);
                              }
                              local_1b8 = local_1b8 + 1;
                            } while (local_1b8 < piVar5[1]);
                          }
                          local_1b4 = local_1b4 + 1;
                        } while (local_1b4 < piVar4[1]);
                      }
                      local_1b0 = local_1b0 + 1;
                    } while (local_1b0 < piVar3[1]);
                  }
                  local_1a8 = local_1a8 + 1;
                } while (local_1a8 < piVar2[1]);
              }
              local_19c = local_19c + 1;
            } while (local_19c < piVar18[1]);
          }
          local_198 = local_198 + 1;
        } while (local_198 < piVar1[1]);
        pcVar17 = in_stack_00000010 + local_1d4;
        if (piVar1[1] < 1) goto LAB_00750016;
        local_184 = 0;
        while( true ) {
          pcVar19 = (char *)(local_184 * 0x54 + *piVar1);
          if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
             (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17), iVar13 == 0)) break;
          piVar18 = *(int **)(pcVar19 + 0x48);
          if ((piVar18 != (int *)0x0) && (local_194 = 0, 0 < piVar18[1])) {
            do {
              pcVar19 = (char *)(local_194 * 0x54 + *piVar18);
              if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                 (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17), iVar13 == 0))
              goto LAB_0074feee;
              piVar2 = *(int **)(pcVar19 + 0x48);
              if ((piVar2 != (int *)0x0) && (local_198 = 0, 0 < piVar2[1])) {
                do {
                  pcVar19 = (char *)(local_198 * 0x54 + *piVar2);
                  if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                     (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17), iVar13 == 0))
                  goto LAB_0074feee;
                  piVar3 = *(int **)(pcVar19 + 0x48);
                  if ((piVar3 != (int *)0x0) && (local_19c = 0, 0 < piVar3[1])) {
                    do {
                      pcVar19 = (char *)(local_19c * 0x54 + *piVar3);
                      if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                         (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17), iVar13 == 0))
                      goto LAB_0074feee;
                      piVar4 = *(int **)(pcVar19 + 0x48);
                      if ((piVar4 != (int *)0x0) && (local_1a8 = 0, 0 < piVar4[1])) {
                        do {
                          pcVar19 = (char *)(local_1a8 * 0x54 + *piVar4);
                          if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                             (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17), iVar13 == 0))
                          goto LAB_0074feee;
                          piVar5 = *(int **)(pcVar19 + 0x48);
                          if ((piVar5 != (int *)0x0) && (local_1b0 = 0, 0 < piVar5[1])) {
                            do {
                              pcVar19 = (char *)(local_1b0 * 0x54 + *piVar5);
                              if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                                 (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17),
                                 iVar13 == 0)) goto LAB_0074feee;
                              piVar6 = *(int **)(pcVar19 + 0x48);
                              if ((piVar6 != (int *)0x0) && (local_1b4 = 0, 0 < piVar6[1])) {
                                do {
                                  pcVar19 = (char *)(local_1b4 * 0x54 + *piVar6);
                                  if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                                     (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17),
                                     iVar13 == 0)) goto LAB_0074feee;
                                  piVar7 = *(int **)(pcVar19 + 0x48);
                                  if ((piVar7 != (int *)0x0) && (local_17c = 0, 0 < piVar7[1])) {
                                    do {
                                      pcVar19 = (char *)(local_17c * 0x54 + *piVar7);
                                      if ((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                                         (iVar13 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17),
                                         iVar13 == 0)) goto LAB_0074feee;
                                      piVar8 = *(int **)(pcVar19 + 0x48);
                                      if ((piVar8 != (int *)0x0) && (iVar13 = 0, 0 < piVar8[1])) {
                                        do {
                                          pcVar19 = (char *)(iVar13 * 0x54 + *piVar8);
                                          if (((*(char **)(pcVar19 + 0x30) != (char *)0x0) &&
                                              (iVar14 = _V_strcmp(*(char **)(pcVar19 + 0x30),pcVar17
                                                                 ), iVar14 == 0)) ||
                                             ((*(SendTable **)(pcVar19 + 0x48) != (SendTable *)0x0
                                              && (pcVar19 = (char *)SearchSendTable((CNetPropManager
                                                                                     *)param_2,
                                                                                    *(SendTable **)
                                                                                     (pcVar19 + 0x48
                                                                                     ),pcVar17),
                                                 pcVar19 != (char *)0x0)))) goto LAB_0074feee;
                                          iVar13 = iVar13 + 1;
                                        } while (iVar13 < piVar8[1]);
                                      }
                                      local_17c = local_17c + 1;
                                    } while (local_17c < piVar7[1]);
                                  }
                                  local_1b4 = local_1b4 + 1;
                                } while (local_1b4 < piVar6[1]);
                              }
                              local_1b0 = local_1b0 + 1;
                            } while (local_1b0 < piVar5[1]);
                          }
                          local_1a8 = local_1a8 + 1;
                        } while (local_1a8 < piVar4[1]);
                      }
                      local_19c = local_19c + 1;
                    } while (local_19c < piVar3[1]);
                  }
                  local_198 = local_198 + 1;
                } while (local_198 < piVar2[1]);
              }
              local_194 = local_194 + 1;
            } while (local_194 < piVar18[1]);
          }
          local_184 = local_184 + 1;
          if (piVar1[1] <= local_184) goto LAB_00750016;
        }
LAB_0074feee:
        local_194 = iVar20;
LAB_0074f828:
        local_194 = local_194 + 1;
        local_1bc = local_1bc + *(int *)(pcVar19 + 0x4c);
        iVar13 = _V_strlen(pcVar16);
        local_1d4 = local_1d4 + iVar13 + local_194;
      } while (local_194 < iVar20);
      if (in_stack_00000014 < 0) goto LAB_00750db7;
      local_128 = (undefined4 *)0x0;
      local_138 = *(int *)(pcVar19 + 8);
      local_144 = local_1bc;
      if (local_138 == 6) {
        piVar1 = *(int **)(pcVar19 + 0x48);
        local_158 = (char *)*piVar1;
        local_154 = (undefined4 *)piVar1[1];
        local_150 = piVar1[2];
        local_14c = piVar1[3];
        local_148 = piVar1[4];
        local_128 = local_154;
        if ((int)local_154 <= in_stack_00000014) {
          local_130._0_2_ = (ushort)(byte)local_130;
          local_138 = 8;
          *(char **)param_1 = local_1bc;
          *(int *)(param_1 + 4) = local_140;
          *(undefined4 *)(param_1 + 0xc) = 8;
          *(undefined4 **)(param_1 + 0x1c) = local_154;
          *(int *)(param_1 + 8) = local_13c;
          *(undefined4 **)(param_1 + 0x10) = local_134;
          *(int *)(param_1 + 0x14) = local_130;
          *(uint *)(param_1 + 0x18) = local_12c;
          SendTable::~SendTable((SendTable *)&local_158);
          iVar13 = local_160;
          goto LAB_0074fa34;
        }
        pcVar19 = local_158 + in_stack_00000014 * 0x54;
        local_144 = local_1bc + *(int *)(pcVar19 + 0x4c);
        SendTable::~SendTable((SendTable *)&local_158);
        local_138 = *(int *)(pcVar19 + 8);
      }
      if ((local_138 == 4) && (local_138 = 7, *(int *)(pcVar19 + 0x40) == 0)) {
        local_138 = 4;
        local_140 = *(int *)(pcVar19 + 0xc);
        local_134 = *(undefined4 **)(pcVar19 + 0x20);
        local_13c = *(int *)(pcVar19 + 0x3c);
        local_130 = CONCAT22(local_130._2_2_,0x101);
        local_12c = 0x200;
      }
      else {
        local_140 = *(int *)(pcVar19 + 0xc);
        local_134 = *(undefined4 **)(pcVar19 + 0x20);
        local_13c = *(int *)(pcVar19 + 0x3c);
        local_130 = CONCAT22(local_130._2_2_,0x101);
      }
      goto LAB_0074f8c5;
    }
  }
  goto LAB_00750c12;
LAB_00750056:
  do {
    local_1b0 = 0;
    if (0 < local_178[1]) {
      do {
        iVar13 = local_1b0 * 0x40;
        pcVar16 = *(char **)(*local_178 + 4 + iVar13);
        if (pcVar16 != (char *)0x0) {
          iVar14 = _V_strcmp(local_170,pcVar16);
          if (iVar14 == 0) {
            puVar11 = (undefined4 *)(iVar13 + *local_178);
            if (puVar11 != (undefined4 *)0x0) goto LAB_0075048a;
            goto LAB_0075065c;
          }
          for (piVar1 = *(int **)(*local_178 + 0x20 + iVar13); piVar1 != (int *)0x0;
              piVar1 = (int *)piVar1[3]) {
            local_1b4 = 0;
            if (0 < piVar1[1]) {
              do {
                iVar13 = local_1b4 * 0x40;
                pcVar16 = *(char **)(*piVar1 + 4 + iVar13);
                if (pcVar16 != (char *)0x0) {
                  iVar14 = _V_strcmp(local_170,pcVar16);
                  if (iVar14 == 0) {
                    puVar11 = (undefined4 *)(iVar13 + *piVar1);
                    if (puVar11 != (undefined4 *)0x0) goto LAB_0075048a;
                    goto LAB_00750629;
                  }
                  for (piVar18 = *(int **)(*piVar1 + 0x20 + iVar13); piVar18 != (int *)0x0;
                      piVar18 = (int *)piVar18[3]) {
                    local_1b8 = 0;
                    if (0 < piVar18[1]) {
                      do {
                        iVar13 = local_1b8 * 0x40;
                        pcVar16 = *(char **)(*piVar18 + 4 + iVar13);
                        if (pcVar16 != (char *)0x0) {
                          iVar14 = _V_strcmp(local_170,pcVar16);
                          if (iVar14 == 0) {
                            puVar11 = (undefined4 *)(iVar13 + *piVar18);
                            if (puVar11 != (undefined4 *)0x0) goto LAB_0075048a;
                            goto LAB_007505ec;
                          }
                          for (piVar2 = *(int **)(*piVar18 + 0x20 + iVar13); piVar2 != (int *)0x0;
                              piVar2 = (int *)piVar2[3]) {
                            local_1bc = (char *)0x0;
                            if (0 < piVar2[1]) {
                              do {
                                iVar13 = (int)local_1bc * 0x40;
                                pcVar16 = *(char **)(*piVar2 + 4 + iVar13);
                                if (pcVar16 != (char *)0x0) {
                                  iVar14 = _V_strcmp(local_170,pcVar16);
                                  if (iVar14 == 0) {
                                    puVar11 = (undefined4 *)(iVar13 + *piVar2);
                                    if (puVar11 != (undefined4 *)0x0) goto LAB_0075048a;
                                    goto LAB_007505af;
                                  }
                                  for (piVar3 = *(int **)(*piVar2 + 0x20 + iVar13);
                                      piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {
                                    local_1c0 = 0;
                                    if (0 < piVar3[1]) {
                                      do {
                                        iVar13 = local_1c0 * 0x40;
                                        pcVar16 = *(char **)(*piVar3 + 4 + iVar13);
                                        if (pcVar16 != (char *)0x0) {
                                          iVar14 = _V_strcmp(local_170,pcVar16);
                                          if (iVar14 == 0) {
                                            puVar11 = (undefined4 *)(iVar13 + *piVar3);
                                            if (puVar11 != (undefined4 *)0x0) goto LAB_0075048a;
                                            goto LAB_00750572;
                                          }
                                          for (piVar4 = *(int **)(*piVar3 + 0x20 + iVar13);
                                              piVar4 != (int *)0x0; piVar4 = (int *)piVar4[3]) {
                                            local_1c4 = 0;
                                            if (0 < piVar4[1]) {
                                              do {
                                                iVar13 = local_1c4 * 0x40;
                                                pcVar16 = *(char **)(*piVar4 + 4 + iVar13);
                                                if (pcVar16 != (char *)0x0) {
                                                  iVar14 = _V_strcmp(local_170,pcVar16);
                                                  if (iVar14 == 0) {
                                                    puVar11 = (undefined4 *)(iVar13 + *piVar4);
                                                    if (puVar11 != (undefined4 *)0x0)
                                                    goto LAB_0075048a;
                                                    goto LAB_00750535;
                                                  }
                                                  for (piVar5 = *(int **)(*piVar4 + 0x20 + iVar13);
                                                      piVar5 != (int *)0x0;
                                                      piVar5 = (int *)piVar5[3]) {
                                                    local_1c8 = 0;
                                                    if (0 < piVar5[1]) {
                                                      do {
                                                        iVar13 = local_1c8 * 0x40;
                                                        pcVar16 = *(char **)(*piVar5 + 4 + iVar13);
                                                        if (pcVar16 != (char *)0x0) {
                                                          iVar14 = _V_strcmp(local_170,pcVar16);
                                                          if (iVar14 == 0) {
                                                            puVar11 = (undefined4 *)
                                                                      (iVar13 + *piVar5);
                                                            if (puVar11 != (undefined4 *)0x0)
                                                            goto LAB_0075048a;
                                                            goto LAB_007504f8;
                                                          }
                                                          for (piVar6 = *(int **)(*piVar5 + 0x20 +
                                                                                 iVar13);
                                                              piVar6 != (int *)0x0;
                                                              piVar6 = (int *)piVar6[3]) {
                                                            local_1cc = 0;
                                                            if (0 < piVar6[1]) {
                                                              do {
                                                                iVar13 = local_1cc * 0x40;
                                                                pcVar16 = *(char **)(*piVar6 + 4 +
                                                                                    iVar13);
                                                                if (pcVar16 != (char *)0x0) {
                                                                  iVar14 = _V_strcmp(local_170,
                                                                                     pcVar16);
                                                                  if (iVar14 == 0) {
                                                                    puVar11 = (undefined4 *)
                                                                              (iVar13 + *piVar6);
                                                                    if (puVar11 == (undefined4 *)0x0
                                                                       ) goto LAB_0075044d;
                                                                    goto LAB_0075048a;
                                                                  }
                                                                  for (piVar7 = *(int **)(*piVar6 + 
                                                  0x20 + iVar13); piVar7 != (int *)0x0;
                                                  piVar7 = (int *)piVar7[3]) {
                                                    iVar13 = 0;
                                                    if (0 < piVar7[1]) {
                                                      do {
                                                        iVar14 = iVar13 * 0x40;
                                                        pcVar16 = *(char **)(*piVar7 + 4 + iVar14);
                                                        if (pcVar16 != (char *)0x0) {
                                                          iVar15 = _V_strcmp(local_170,pcVar16);
                                                          if (iVar15 == 0) {
                                                            puVar11 = (undefined4 *)
                                                                      (iVar14 + *piVar7);
                                                            if (puVar11 == (undefined4 *)0x0)
                                                            goto LAB_0075041a;
                                                            goto LAB_0075048a;
                                                          }
                                                          pdVar9 = *(datamap_t **)
                                                                    (*piVar7 + 0x20 + iVar14);
                                                          if ((pdVar9 != (datamap_t *)0x0) &&
                                                             (puVar11 = (undefined4 *)
                                                                        SearchDataMap((
                                                  CNetPropManager *)param_2,pdVar9,local_170),
                                                  puVar11 != (undefined4 *)0x0)) goto LAB_0075048a;
                                                  }
                                                  iVar13 = iVar13 + 1;
                                                  } while (iVar13 < piVar7[1]);
                                                  }
                                                  }
                                                  }
LAB_0075041a:
                                                  local_1cc = local_1cc + 1;
                                                  } while (local_1cc < piVar6[1]);
                                                  }
                                                  }
                                                  }
LAB_0075044d:
                                                  local_1c8 = local_1c8 + 1;
                                                  } while (local_1c8 < piVar5[1]);
                                                  }
                                                  }
                                                }
LAB_007504f8:
                                                local_1c4 = local_1c4 + 1;
                                              } while (local_1c4 < piVar4[1]);
                                            }
                                          }
                                        }
LAB_00750535:
                                        local_1c0 = local_1c0 + 1;
                                      } while (local_1c0 < piVar3[1]);
                                    }
                                  }
                                }
LAB_00750572:
                                local_1bc = (char *)((int)local_1bc + 1);
                              } while ((int)local_1bc < piVar2[1]);
                            }
                          }
                        }
LAB_007505af:
                        local_1b8 = local_1b8 + 1;
                      } while (local_1b8 < piVar18[1]);
                    }
                  }
                }
LAB_007505ec:
                local_1b4 = local_1b4 + 1;
              } while (local_1b4 < piVar1[1]);
            }
          }
        }
LAB_00750629:
        local_1b0 = local_1b0 + 1;
      } while (local_1b0 < local_178[1]);
    }
    piVar1 = local_178 + 3;
    local_178 = (int *)*piVar1;
  } while ((int *)*piVar1 != (int *)0x0);
LAB_0075065c:
  pcVar16 = in_stack_00000010 + local_1d4;
  local_180 = piVar12;
  do {
    local_19c = 0;
    if (0 < local_180[1]) {
      do {
        iVar13 = local_19c * 0x40;
        pcVar19 = *(char **)(*local_180 + 4 + iVar13);
        if (pcVar19 != (char *)0x0) {
          iVar14 = _V_strcmp(pcVar16,pcVar19);
          if (iVar14 == 0) {
            puVar11 = (undefined4 *)(iVar13 + *local_180);
            iVar13 = local_160;
            if (puVar11 == (undefined4 *)0x0) goto LAB_00750c12;
LAB_00750a97:
            local_1a8 = iVar20;
            goto LAB_0075048a;
          }
          for (piVar1 = *(int **)(*local_180 + 0x20 + iVar13); piVar1 != (int *)0x0;
              piVar1 = (int *)piVar1[3]) {
            local_1a8 = 0;
            if (0 < piVar1[1]) {
              do {
                iVar13 = local_1a8 * 0x40;
                pcVar19 = *(char **)(*piVar1 + 4 + iVar13);
                if (pcVar19 != (char *)0x0) {
                  iVar14 = _V_strcmp(pcVar16,pcVar19);
                  if (iVar14 == 0) {
                    puVar11 = (undefined4 *)(iVar13 + *piVar1);
                    if (puVar11 != (undefined4 *)0x0) goto LAB_00750a97;
                    goto LAB_00750bd9;
                  }
                  for (piVar18 = *(int **)(*piVar1 + 0x20 + iVar13); piVar18 != (int *)0x0;
                      piVar18 = (int *)piVar18[3]) {
                    local_1b0 = 0;
                    if (0 < piVar18[1]) {
                      do {
                        iVar13 = local_1b0 * 0x40;
                        pcVar19 = *(char **)(*piVar18 + 4 + iVar13);
                        if (pcVar19 != (char *)0x0) {
                          iVar14 = _V_strcmp(pcVar16,pcVar19);
                          if (iVar14 == 0) {
                            puVar11 = (undefined4 *)(iVar13 + *piVar18);
                            if (puVar11 != (undefined4 *)0x0) goto LAB_00750a97;
                            goto LAB_00750b9c;
                          }
                          for (piVar2 = *(int **)(*piVar18 + 0x20 + iVar13); piVar2 != (int *)0x0;
                              piVar2 = (int *)piVar2[3]) {
                            local_1b4 = 0;
                            if (0 < piVar2[1]) {
                              do {
                                iVar13 = local_1b4 * 0x40;
                                pcVar19 = *(char **)(*piVar2 + 4 + iVar13);
                                if (pcVar19 != (char *)0x0) {
                                  iVar14 = _V_strcmp(pcVar16,pcVar19);
                                  if (iVar14 == 0) {
                                    puVar11 = (undefined4 *)(iVar13 + *piVar2);
                                    if (puVar11 != (undefined4 *)0x0) goto LAB_00750a97;
                                    goto LAB_00750b5f;
                                  }
                                  for (piVar3 = *(int **)(*piVar2 + 0x20 + iVar13);
                                      piVar3 != (int *)0x0; piVar3 = (int *)piVar3[3]) {
                                    local_1b8 = 0;
                                    if (0 < piVar3[1]) {
                                      do {
                                        iVar13 = local_1b8 * 0x40;
                                        pcVar19 = *(char **)(*piVar3 + 4 + iVar13);
                                        if (pcVar19 != (char *)0x0) {
                                          iVar14 = _V_strcmp(pcVar16,pcVar19);
                                          if (iVar14 == 0) {
                                            puVar11 = (undefined4 *)(iVar13 + *piVar3);
                                            if (puVar11 != (undefined4 *)0x0) goto LAB_00750a97;
                                            goto LAB_00750b22;
                                          }
                                          for (piVar4 = *(int **)(*piVar3 + 0x20 + iVar13);
                                              piVar4 != (int *)0x0; piVar4 = (int *)piVar4[3]) {
                                            local_1bc = (char *)0x0;
                                            if (0 < piVar4[1]) {
                                              do {
                                                iVar13 = (int)local_1bc * 0x40;
                                                pcVar19 = *(char **)(*piVar4 + 4 + iVar13);
                                                if (pcVar19 != (char *)0x0) {
                                                  iVar14 = _V_strcmp(pcVar16,pcVar19);
                                                  if (iVar14 == 0) {
                                                    puVar11 = (undefined4 *)(iVar13 + *piVar4);
                                                    if (puVar11 != (undefined4 *)0x0)
                                                    goto LAB_00750a97;
                                                    goto LAB_00750ae5;
                                                  }
                                                  for (piVar5 = *(int **)(*piVar4 + 0x20 + iVar13);
                                                      piVar5 != (int *)0x0;
                                                      piVar5 = (int *)piVar5[3]) {
                                                    local_1c0 = 0;
                                                    if (0 < piVar5[1]) {
                                                      do {
                                                        iVar13 = local_1c0 * 0x40;
                                                        pcVar19 = *(char **)(*piVar5 + 4 + iVar13);
                                                        if (pcVar19 != (char *)0x0) {
                                                          iVar14 = _V_strcmp(pcVar16,pcVar19);
                                                          if (iVar14 == 0) {
                                                            puVar11 = (undefined4 *)
                                                                      (iVar13 + *piVar5);
                                                            if (puVar11 != (undefined4 *)0x0)
                                                            goto LAB_00750a97;
                                                            goto LAB_00750aac;
                                                          }
                                                          for (piVar6 = *(int **)(*piVar5 + 0x20 +
                                                                                 iVar13);
                                                              piVar6 != (int *)0x0;
                                                              piVar6 = (int *)piVar6[3]) {
                                                            local_1c4 = 0;
                                                            if (0 < piVar6[1]) {
                                                              do {
                                                                iVar13 = local_1c4 * 0x40;
                                                                pcVar19 = *(char **)(*piVar6 + 4 +
                                                                                    iVar13);
                                                                if (pcVar19 != (char *)0x0) {
                                                                  iVar14 = _V_strcmp(pcVar16,pcVar19
                                                                                    );
                                                                  if (iVar14 == 0) {
                                                                    puVar11 = (undefined4 *)
                                                                              (iVar13 + *piVar6);
                                                                    if (puVar11 != (undefined4 *)0x0
                                                                       ) goto LAB_00750a97;
                                                                    goto LAB_00750a72;
                                                                  }
                                                                  for (piVar7 = *(int **)(*piVar6 + 
                                                  0x20 + iVar13); piVar7 != (int *)0x0;
                                                  piVar7 = (int *)piVar7[3]) {
                                                    local_1c8 = 0;
                                                    if (0 < piVar7[1]) {
                                                      do {
                                                        iVar13 = local_1c8 * 0x40;
                                                        pcVar19 = *(char **)(*piVar7 + 4 + iVar13);
                                                        if (pcVar19 != (char *)0x0) {
                                                          iVar14 = _V_strcmp(pcVar16,pcVar19);
                                                          if (iVar14 == 0) {
                                                            puVar11 = (undefined4 *)
                                                                      (iVar13 + *piVar7);
                                                            if (puVar11 == (undefined4 *)0x0)
                                                            goto LAB_00750a37;
                                                            goto LAB_00750a97;
                                                          }
                                                          pdVar9 = *(datamap_t **)
                                                                    (*piVar7 + 0x20 + iVar13);
                                                          if ((pdVar9 != (datamap_t *)0x0) &&
                                                             (puVar11 = (undefined4 *)
                                                                        SearchDataMap((
                                                  CNetPropManager *)param_2,pdVar9,pcVar16),
                                                  puVar11 != (undefined4 *)0x0)) goto LAB_00750a97;
                                                  }
                                                  local_1c8 = local_1c8 + 1;
                                                  } while (local_1c8 < piVar7[1]);
                                                  }
                                                  }
                                                  }
LAB_00750a37:
                                                  local_1c4 = local_1c4 + 1;
                                                  } while (local_1c4 < piVar6[1]);
                                                  }
                                                  }
                                                  }
LAB_00750a72:
                                                  local_1c0 = local_1c0 + 1;
                                                  } while (local_1c0 < piVar5[1]);
                                                  }
                                                  }
                                                }
LAB_00750aac:
                                                local_1bc = (char *)((int)local_1bc + 1);
                                              } while ((int)local_1bc < piVar4[1]);
                                            }
                                          }
                                        }
LAB_00750ae5:
                                        local_1b8 = local_1b8 + 1;
                                      } while (local_1b8 < piVar3[1]);
                                    }
                                  }
                                }
LAB_00750b22:
                                local_1b4 = local_1b4 + 1;
                              } while (local_1b4 < piVar2[1]);
                            }
                          }
                        }
LAB_00750b5f:
                        local_1b0 = local_1b0 + 1;
                      } while (local_1b0 < piVar18[1]);
                    }
                  }
                }
LAB_00750b9c:
                local_1a8 = local_1a8 + 1;
              } while (local_1a8 < piVar1[1]);
            }
          }
        }
LAB_00750bd9:
        local_19c = local_19c + 1;
      } while (local_19c < local_180[1]);
    }
    local_180 = (int *)local_180[3];
    iVar13 = local_160;
  } while (local_180 != (int *)0x0);
  goto LAB_00750c12;
LAB_0075048a:
  local_1a8 = local_1a8 + 1;
  local_1d0 = local_1d0 + puVar11[2];
  iVar13 = _V_strlen(local_170);
  local_1d4 = local_1d4 + iVar13 + local_1a8;
  if (local_1a8 < iVar20) {
    local_170 = (char *)local_16c[local_1a8];
    local_178 = piVar12;
    goto LAB_00750056;
  }
  iVar13 = local_160;
  if (0 < (int)puVar11[9]) {
    if ((in_stack_00000014 < 0) || ((int)(uint)*(ushort *)(puVar11 + 3) <= in_stack_00000014)) {
LAB_00750db7:
      local_138 = 8;
      local_130._0_2_ = (ushort)(byte)local_130;
      *(undefined4 *)(param_1 + 0xc) = 8;
      *(char **)param_1 = local_144;
      *(int *)(param_1 + 4) = local_140;
      *(int *)(param_1 + 8) = local_13c;
    }
    else {
      local_130 = CONCAT22(local_130._2_2_,0x100);
      local_134 = (undefined4 *)(uint)*(ushort *)(puVar11 + 3);
      local_144 = (char *)(((int)puVar11[9] / (int)local_134) * in_stack_00000014 + local_1d0);
      local_13c = (int)*(short *)((int)puVar11 + 0xe);
      switch(*puVar11) {
      default:
        local_130 = (uint)local_130._2_2_ << 0x10;
        local_138 = 8;
        break;
      case 1:
      case 0x10:
        local_140 = 0x20;
        local_138 = 1;
        break;
      case 2:
      case 0x12:
      case 0x13:
        local_140 = 4;
        local_138 = 7;
        break;
      case 3:
      case 0xf:
        local_140 = 0xc;
        local_138 = 2;
        break;
      case 5:
      case 9:
      case 0xd:
      case 0x11:
      case 0x1a:
      case 0x1b:
        local_140 = 0x20;
        local_138 = 0;
        break;
      case 6:
        local_140 = 1;
        local_138 = 0;
        break;
      case 7:
        local_140 = 0x10;
        local_138 = 0;
        break;
      case 8:
        if (*(ushort *)(puVar11 + 3) == 1) {
          local_140 = 8;
          local_138 = 0;
        }
        else {
          local_138 = 4;
          local_140 = (uint)*(ushort *)(puVar11 + 3) << 3;
        }
      }
      local_12c = (uint)*(ushort *)(puVar11 + 3);
      local_128 = local_134;
LAB_0074f8c5:
      if (((local_188 < 0) || (*(int *)(param_2 + 8) <= local_188)) ||
         (*(int *)(param_2 + 0x1c) < local_188)) {
LAB_0074f8f5:
        puVar11 = ::operator_new(0x24);
        puVar11[1] = 0;
        puVar11[2] = 0;
        puVar11[3] = 0;
        puVar11[4] = 0xffffffff;
        puVar11[5] = 0;
        puVar11[6] = 0xffffffff;
        puVar11[7] = 0xffffffff;
        puVar11[8] = 0;
        *puVar11 = CaselessStringLessThan;
        local_158 = strdup(__s);
        local_154 = puVar11;
        local_188 = CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                    ::Insert((CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                              *)param_2,(Node_t *)&local_158);
      }
      else {
        if ((CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
             ::Links(int)::s_Sentinel == '\0') &&
           (iVar20 = __cxa_guard_acquire(&CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                                          ::Links(int)::s_Sentinel), iVar20 != 0)) {
          CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
          ::Links(int)::s_Sentinel = 0xffffffff;
          DAT_00f438a4 = 0xffffffff;
          DAT_00f438a8 = 0xffffffff;
          __cxa_guard_release(&CUtlRBTree<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int,CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,CUtlDict<CNetPropManager::PropInfo_t,int>*,int>::Node_t,int>,int>>
                               ::Links(int)::s_Sentinel);
        }
        if (*(int *)(local_188 * 0x18 + *(int *)(param_2 + 4)) == local_188) goto LAB_0074f8f5;
      }
      this = *(CUtlDict<CNetPropManager::PropInfo_t,int> **)
              (local_188 * 0x18 + *(int *)(param_2 + 4) + 0x14);
      if (in_stack_00000014 < 1) {
        CUtlDict<CNetPropManager::PropInfo_t,int>::Insert
                  (this,in_stack_00000010,(PropInfo_t *)&local_144);
      }
      else {
        V_snprintf(local_120,0x100,"%s%d",in_stack_00000010,in_stack_00000014);
        CUtlDict<CNetPropManager::PropInfo_t,int>::Insert(this,local_120,(PropInfo_t *)&local_144);
      }
      *(char **)param_1 = local_144;
      *(int *)(param_1 + 4) = local_140;
      *(int *)(param_1 + 8) = local_13c;
      *(int *)(param_1 + 0xc) = local_138;
    }
    *(undefined4 **)(param_1 + 0x10) = local_134;
    *(int *)(param_1 + 0x14) = local_130;
    *(uint *)(param_1 + 0x18) = local_12c;
    *(undefined4 **)(param_1 + 0x1c) = local_128;
    iVar13 = local_160;
    goto LAB_0074fa34;
  }
LAB_00750c12:
  local_130._0_2_ = (ushort)(byte)local_130;
  local_138 = 8;
  *(undefined4 *)(param_1 + 0xc) = 8;
  *(char **)param_1 = local_144;
  *(int *)(param_1 + 4) = local_140;
  *(int *)(param_1 + 8) = local_13c;
  *(undefined4 **)(param_1 + 0x10) = local_134;
  *(int *)(param_1 + 0x14) = local_130;
  *(uint *)(param_1 + 0x18) = local_12c;
  *(undefined4 **)(param_1 + 0x1c) = local_128;
LAB_0074fa34:
  iVar20 = 0;
  if (0 < iVar13) {
    do {
      if ((void *)local_16c[iVar20] != (void *)0x0) {
        operator_delete__((void *)local_16c[iVar20]);
      }
      iVar20 = iVar20 + 1;
    } while (iVar20 < local_160);
  }
  local_160 = 0;
  CUtlMemory<char*,int>::Purge((CUtlMemory<char*,int> *)&local_16c);
  local_15c = local_16c;
  if (0 < local_160) {
    iVar20 = 0;
    do {
      puVar11 = local_16c + iVar20;
      iVar20 = iVar20 + 1;
      operator_delete((void *)*puVar11);
    } while (iVar20 < local_160);
  }
  local_160 = 0;
  CUtlMemory<char*,int>::Purge((CUtlMemory<char*,int> *)&local_16c);
  local_160 = 0;
  local_15c = local_16c;
  CUtlMemory<char*,int>::Purge((CUtlMemory<char*,int> *)&local_16c);
  local_15c = local_16c;
  CUtlMemory<char*,int>::Purge((CUtlMemory<char*,int> *)&local_16c);
LAB_00750e4a:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return param_1;
}

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)