L L4D2node

CTerrorPlayer::ClientCommand

0x009d95f0 · 15487 bytes · __thiscall

_ZN13CTerrorPlayer13ClientCommandERK8CCommand

Decompiled

undefined (2 params)

/* CTerrorPlayer::ClientCommand(CCommand const&) */

uint __thiscall CTerrorPlayer::ClientCommand(CTerrorPlayer *this,CCommand *param_1)

{
  undefined4 uVar1;
  code *pcVar2;
  char *pcVar3;
  short sVar4;
  int *piVar5;
  char cVar6;
  byte bVar7;
  ushort uVar8;
  int iVar9;
  CStudioHdr *pCVar10;
  int iVar11;
  char *pcVar12;
  int iVar13;
  CTerrorPlayer *pCVar14;
  int *piVar15;
  int iVar16;
  undefined *puVar17;
  CBaseEntity *pCVar18;
  int *piVar19;
  CSurvivorRescue *this_00;
  CTerrorWeapon *this_01;
  Vector *pVVar20;
  CInferno *this_02;
  long lVar21;
  CSurvivorRescue *this_03;
  SurvivorBot *this_04;
  KeyValues *this_05;
  size_t sVar22;
  uint uVar23;
  undefined1 *puVar24;
  undefined1 *puVar25;
  CStudioHdr *this_06;
  uint uVar26;
  int in_GS_OFFSET;
  bool bVar27;
  longdouble lVar28;
  longdouble lVar29;
  float fVar30;
  double dVar31;
  double dVar32;
  CTerrorPlayer *this_07;
  float local_24c;
  undefined4 local_23c;
  undefined4 local_238;
  undefined4 local_234;
  char *local_230;
  undefined4 local_22c;
  float local_228;
  char *local_224;
  undefined4 local_220;
  float local_21c;
  undefined4 local_218;
  undefined4 local_214;
  undefined4 local_210;
  undefined4 local_20c;
  BossZombiePlayerBot *local_208;
  CTerrorPlayer *local_204;
  size_t local_200;
  undefined4 local_1fc;
  undefined4 local_1f8;
  undefined4 local_1f4 [10];
  byte local_1ca;
  char local_120 [256];
  int local_20;
  
  puVar25 = &stack0xfffffd64;
  puVar24 = &stack0xfffffd64;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (*(int *)param_1 < 1) {
    pCVar14 = (CTerrorPlayer *)&DAT_00d539c2;
LAB_009d962b:
    this_07 = pCVar14;
    iVar9 = _V_stricmp((char *)pCVar14,"activitylist");
    if (iVar9 == 0) goto LAB_009d963f;
    if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
      if ((pCVar14 == (CTerrorPlayer *)"francis") ||
         (iVar9 = _V_stricmp((char *)pCVar14,"francis"), iVar9 == 0)) {
        uVar26 = 1;
        CDirector::AddSurvivorBot();
        puVar25 = &stack0xfffffd64;
        goto LAB_009d9657;
      }
      if ((pCVar14 == (CTerrorPlayer *)"louis") ||
         (iVar9 = _V_stricmp((char *)pCVar14,"louis"), iVar9 == 0)) {
        uVar26 = 1;
        CDirector::AddSurvivorBot();
        puVar25 = &stack0xfffffd64;
        goto LAB_009d9657;
      }
      if ((pCVar14 == (CTerrorPlayer *)0xcdb535) ||
         (this_07 = pCVar14, iVar9 = _V_stricmp((char *)pCVar14,"zoey"), iVar9 == 0)) {
        uVar26 = 1;
        CDirector::AddSurvivorBot();
        puVar25 = &stack0xfffffd64;
        goto LAB_009d9657;
      }
    }
    if (((pCVar14 != (CTerrorPlayer *)"spectate") &&
        (this_07 = pCVar14, iVar9 = _V_stricmp((char *)pCVar14,"spectate"), iVar9 != 0)) ||
       (cVar6 = CTerrorGameRules::HasPlayerControlledZombies(), cVar6 == '\0')) {
      if ((pCVar14 == (CTerrorPlayer *)0xd079a1) ||
         (this_07 = pCVar14, iVar9 = _V_stricmp((char *)pCVar14,"unstick"), iVar9 == 0)) {
        puVar24 = &stack0xfffffd64;
        if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
           (puVar24 = &stack0xfffffd64, this[0x39f1] == (CTerrorPlayer)0x0)) {
          WarpToValidPositionIfStuck(this_07);
          uVar26 = 1;
          puVar25 = &stack0xfffffd64;
          goto LAB_009d9657;
        }
      }
      else {
        if ((pCVar14 == (CTerrorPlayer *)0xd0eedf) ||
           (iVar9 = _V_stricmp((char *)pCVar14,"red"), iVar9 == 0)) {
          uVar26 = 1;
          local_20c = (undefined **)
                      CONCAT13((char)(int)*(float *)(ZombieDamageScreenFadeAlpha._28_4_ + 0x2c),0xff
                              );
          UTIL_ScreenFade((CBaseEntity *)this,(color32_s *)&local_20c,
                          *(float *)(ZombieDamageScreenFadeDuration._28_4_ + 0x2c),0.0,1);
          puVar25 = &stack0xfffffd64;
          goto LAB_009d9657;
        }
        if ((pCVar14 == (CTerrorPlayer *)&DAT_00d15d54) ||
           (iVar9 = _V_stricmp((char *)pCVar14,"dsp"), iVar9 == 0)) {
          puVar24 = &stack0xfffffd64;
          if (*(int *)param_1 == 2) {
            CRecipientFilter::CRecipientFilter((CRecipientFilter *)&local_20c);
            local_20c = &PTR__CSingleUserRecipientFilter_00c08ea8;
                    /* try { // try from 009d9a1f to 009d9a23 has its CatchHandler @ 009dd2ac */
            CRecipientFilter::AddRecipient((CRecipientFilter *)&local_20c,(CBasePlayer *)this);
            pcVar2 = *(code **)(*enginesound + 0x2c);
            pcVar12 = "";
            if (1 < *(int *)param_1) {
              pcVar12 = *(char **)(param_1 + 0x40c);
            }
            strtol(pcVar12,(char **)0x0,10);
                    /* try { // try from 009d9a74 to 009d9a75 has its CatchHandler @ 009dd2c6 */
            (*pcVar2)();
            uVar26 = 1;
            local_20c = &PTR__CSingleUserRecipientFilter_00c08ea8;
            CRecipientFilter::~CRecipientFilter((CRecipientFilter *)&local_20c);
            puVar25 = &stack0xfffffd64;
            goto LAB_009d9657;
          }
        }
        else {
          uVar26 = *(int *)(bot_mimic._28_4_ + 0x30) >> 0x1f;
          if (*(int *)(this + 0x30) == 0) {
            iVar9 = 0;
          }
          else {
            iVar9 = *(int *)(this + 0x30) - *(int *)(gpGlobals + 0x58) >> 4;
          }
          if (((((*(uint *)(bot_mimic._28_4_ + 0x30) ^ uVar26) - uVar26 == iVar9) &&
               (cVar6 = (**(code **)(*(int *)this + 0x778))(), cVar6 == '\0')) &&
              (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0)) &&
             (iVar9 = V_stristr((char *)pCVar14,"spec"), iVar9 == 0)) {
            puVar24 = &stack0xfffffd64;
            if (0 < *(int *)(gpGlobals + 0x14)) {
              iVar9 = 1;
              do {
                piVar19 = (int *)UTIL_PlayerByIndex(iVar9);
                if (((piVar19 != (int *)0x0) &&
                    (cVar6 = (**(code **)(*piVar19 + 0x16c))(), cVar6 != '\0')) &&
                   (cVar6 = (**(code **)(*piVar19 + 0x778))(), cVar6 != '\0')) {
                  (**(code **)(*piVar19 + 0x634))();
                }
                iVar9 = iVar9 + 1;
                puVar24 = &stack0xfffffd64;
              } while (iVar9 <= *(int *)(gpGlobals + 0x14));
            }
          }
          else if (((pCVar14 == (CTerrorPlayer *)"invnext") ||
                   (iVar9 = _V_stricmp((char *)pCVar14,"invnext"), iVar9 == 0)) ||
                  ((pCVar14 == (CTerrorPlayer *)"invprev" ||
                   (iVar9 = _V_stricmp((char *)pCVar14,"invprev"), iVar9 == 0)))) {
            bVar7 = (**(code **)(*(int *)this + 0x778))();
            puVar24 = &stack0xfffffd64;
            if (bVar7 != 0) {
              piVar19 = (int *)CCSPlayer::GetActiveCSWeapon((CCSPlayer *)this);
              bVar27 = true;
              if (pCVar14 != (CTerrorPlayer *)"invnext") {
                iVar9 = _V_stricmp((char *)pCVar14,"invnext");
                bVar27 = iVar9 == 0;
              }
              iVar9 = 0;
              piVar5 = (int *)0x0;
              iVar11 = 0;
              do {
                piVar15 = (int *)CCSPlayer::GetCSWeapon((CCSPlayer *)this,iVar11);
                if (((piVar15 != (int *)0x0) && (piVar19 != piVar15)) &&
                   (cVar6 = (**(code **)(*piVar15 + 0x3c0))(), cVar6 != '\0')) {
                  iVar16 = (**(code **)(*piVar15 + 0x638))();
                  iVar13 = (**(code **)(*piVar19 + 0x638))();
                  if (bVar27) {
                    if (iVar16 < iVar13) goto LAB_009d9ff3;
                  }
                  else if (iVar13 < iVar16) {
LAB_009d9ff3:
                    if (iVar9 == 0) {
                      iVar9 = iVar16;
                      piVar5 = piVar15;
                    }
                  }
                }
                iVar11 = iVar11 + 1;
              } while (iVar11 != 0x38);
              uVar26 = (uint)bVar7;
              puVar24 = &stack0xfffffd64;
              if (piVar5 != (int *)0x0) {
                (**(code **)(*(int *)this + 0x474))();
                puVar25 = &stack0xfffffd64;
                goto LAB_009d9657;
              }
            }
          }
          else {
            if ((pCVar14 == (CTerrorPlayer *)"survival_record") ||
               (iVar9 = _V_stricmp((char *)pCVar14,"survival_record"), iVar9 == 0)) {
              pcVar12 = "";
              if (1 < *(int *)param_1) {
                pcVar12 = *(char **)(param_1 + 0x40c);
              }
              iVar9 = sscanf(pcVar12,"%llu");
              if (iVar9 == 1) {
                pcVar12 = "";
                if (2 < *(int *)param_1) {
                  pcVar12 = *(char **)(param_1 + 0x410);
                }
                iVar9 = sscanf(pcVar12,"%u");
                if (iVar9 == 1) {
                  local_230 = (char *)((uint)local_230 ^ (uint)local_208 >> 0x18);
                  local_208 = (BossZombiePlayerBot *)((uint)local_208 & 0xffffff);
                  cVar6 = (**(code **)(*engine + 0x1bc))();
                  if (cVar6 != '\0') {
                    V_snprintf(local_120,0x100,"%s*%llu");
                    _V_strlower(local_120);
                    iVar9 = _V_strlen(local_120);
                    CRC32_Init((ulong *)&local_224);
                    CRC32_ProcessBuffer((ulong *)&local_224,local_120,iVar9);
                    CRC32_Final((ulong *)&local_224);
                    if (local_230 == local_224) {
                      UpdateSurvivalRecordTime
                                (this,((float)((uint)local_20c >> 0x10) * 65536.0 +
                                      (float)((uint)local_20c & 0xffff)) * 0.01);
                      goto LAB_009d9e78;
                    }
                  }
                }
              }
              uVar26 = 0;
              puVar25 = &stack0xfffffd64;
              goto LAB_009d9657;
            }
LAB_009d9e78:
            if ((pCVar14 == (CTerrorPlayer *)"jointeam") ||
               (iVar9 = _V_stricmp((char *)pCVar14,"jointeam"), iVar9 == 0)) {
              if (*(int *)param_1 < 2) {
                Warning();
              }
              uVar26 = CCSPlayer::ShouldRunRateLimitedCommand((CCSPlayer *)this,param_1);
              puVar24 = &stack0xfffffd64;
              if ((char)uVar26 != '\0') {
                bVar27 = ClientCommand(CCommand_const&)::sv_cheats == '\0';
                *(undefined4 *)(this + 0x2400) = *(undefined4 *)(gpGlobals + 0xc);
                if ((bVar27) && (iVar9 = __cxa_guard_acquire(), iVar9 != 0)) {
                    /* try { // try from 009dd02d to 009dd031 has its CatchHandler @ 009dd258 */
                  ConVarRef::ConVarRef
                            ((ConVarRef *)&ClientCommand(CCommand_const&)::sv_cheats,"sv_cheats");
                  __cxa_guard_release();
                }
                iVar9 = (**(code **)(*(int *)this + 0x8d4))();
                if ((iVar9 == 0) ||
                   (puVar24 = &stack0xfffffd64,
                   *(int *)(ClientCommand(CCommand_const&)::sv_cheats._4_4_ + 0x30) != 0)) {
                  if (*(int *)param_1 < 2) {
                    lVar21 = strtol("",(char **)0x0,10);
                    if (lVar21 == 0) {
                      iVar9 = _V_stricmp("","Survivor");
                      if (iVar9 == 0) goto LAB_009da156;
                      iVar9 = _V_stricmp("","Infected");
                      pcVar12 = "";
                      if (iVar9 == 0) goto LAB_009dcff9;
LAB_009dcfad:
                      lVar21 = 0;
                      iVar9 = _V_stricmp(pcVar12,"Spectator");
                      if (iVar9 == 0) goto LAB_009dcfc7;
                    }
                  }
                  else {
                    pcVar12 = *(char **)(param_1 + 0x40c);
                    lVar21 = strtol(pcVar12,(char **)0x0,10);
                    if (lVar21 == 0) {
                      if ((pcVar12 == "Survivor") ||
                         (iVar9 = _V_stricmp(pcVar12,"Survivor"), iVar9 == 0)) {
LAB_009da156:
                        lVar21 = 2;
                      }
                      else if ((pcVar12 == "Infected") ||
                              (iVar9 = _V_stricmp(pcVar12,"Infected"), iVar9 == 0)) {
LAB_009dcff9:
                        lVar21 = 3;
                      }
                      else {
                        if (pcVar12 != "Spectator") goto LAB_009dcfad;
LAB_009dcfc7:
                        lVar21 = 1;
                      }
                    }
                  }
                  if ((((*(int *)(developer._28_4_ + 0x30) != 0) ||
                       (*(int *)(ClientCommand(CCommand_const&)::sv_cheats._4_4_ + 0x30) != 0)) ||
                      (puVar24 = &stack0xfffffd64, lVar21 - 2U < 2)) &&
                     (iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                     puVar24 = &stack0xfffffd64, lVar21 != iVar9)) {
                    iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this);
                    if (lVar21 == 2) {
                      if (*(int *)param_1 < 3) {
                        local_20c = (undefined **)0x0;
                        ForEachTerrorPlayer<FindUnusedSurvivorCharacter>
                                  ((FindUnusedSurvivorCharacter *)&local_20c);
                        pCVar14 = (CTerrorPlayer *)local_20c;
LAB_009dd061:
                        if ((pCVar14 != (CTerrorPlayer *)0x0) &&
                           (this_04 = (SurvivorBot *)__dynamic_cast(), this_04 != (SurvivorBot *)0x0
                           )) {
                          local_20c = (undefined **)0x0;
                          local_208 = (BossZombiePlayerBot *)0x0;
                          local_204 = this;
                          ForEachTerrorPlayer<FindBotSpectator>((FindBotSpectator *)&local_20c);
                          if ((SurvivorBot *)local_20c != (SurvivorBot *)0x0) {
                            SurvivorBot::ResetHumanSpectator((SurvivorBot *)local_20c);
                          }
                          if (local_208 != (BossZombiePlayerBot *)0x0) {
                            BossZombiePlayerBot::ResetHumanSpectator(local_208);
                          }
                          (**(code **)(*(int *)this + 0x194))();
                          SurvivorBot::SetHumanSpectator(this_04,this);
                          (**(code **)(*(int *)this + 0x64c))();
                          iVar11 = (**(code **)(*(int *)this + 0x648))();
                          if (iVar11 == 6) {
                            (**(code **)(*(int *)this + 0x644))();
                          }
                          pcVar12 = "specgui";
                          (**(code **)(*(int *)this + 0x580))();
                          cVar6 = (**(code **)(*(int *)this_04 + 300))();
                          if ((cVar6 == '\0') ||
                             (cVar6 = CTerrorGameRules::HasPlayerControlledZombies(), cVar6 != '\0')
                             ) {
                            TakeOverBot(this,false);
                          }
                          else {
                            this_05 = KeyValues::operator_new((KeyValues *)0x2c,(uint)pcVar12);
                    /* try { // try from 009dd306 to 009dd30a has its CatchHandler @ 009dd357 */
                            KeyValues::KeyValues(this_05,"data",(IKeyValuesSystem *)0x0,false);
                            KeyValues::SetInt(this_05,"character",*(int *)(this_04 + 0x2ba0));
                            (**(code **)(*(int *)this + 0x580))();
                            KeyValues::deleteThis();
                          }
                          iVar11 = CBaseEntity::GetTeamNumber((CBaseEntity *)this);
                          puVar25 = &stack0xfffffd64;
                          if (iVar9 == iVar11) goto LAB_009d9657;
                          goto LAB_009dd1ae;
                        }
                      }
                      else {
                        iVar11 = GetCharacterFromName(*(char **)(param_1 + 0x410));
                        if (iVar11 == 8) {
                          (**(code **)(*(int *)this + 0x580))();
                          puVar25 = &stack0xfffffd64;
                          goto LAB_009d9657;
                        }
                        pCVar14 = (CTerrorPlayer *)GetPlayerByCharacter();
                        if ((pCVar14 != (CTerrorPlayer *)0x0) &&
                           (cVar6 = (**(code **)(*(int *)pCVar14 + 0x778))(), cVar6 != '\0'))
                        goto LAB_009dd061;
                      }
                      (**(code **)(*(int *)this + 0x580))();
                      puVar25 = &stack0xfffffd64;
                      goto LAB_009d9657;
                    }
                    (**(code **)(*(int *)this + 0x8cc))();
                    iVar11 = CBaseEntity::GetTeamNumber((CBaseEntity *)this);
                    if (iVar9 != iVar11) {
                      (**(code **)(*(int *)this + 0x580))();
LAB_009dd1ae:
                      *(int *)(this + 0x3378) = *(int *)(this + 0x3378) + 1;
                      puVar25 = &stack0xfffffd64;
                      goto LAB_009d9657;
                    }
                    iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this);
                    puVar24 = &stack0xfffffd64;
                    if (lVar21 != iVar9) {
                      (**(code **)(*(int *)this + 0x580))();
                      puVar25 = &stack0xfffffd64;
                      goto LAB_009d9657;
                    }
                  }
                }
              }
              goto LAB_009d9652;
            }
            if (((pCVar14 == (CTerrorPlayer *)"spec_next") ||
                (iVar9 = _V_stricmp((char *)pCVar14,"spec_next"), iVar9 == 0)) &&
               (uVar26 = TakeOverBot(this,false), (char)uVar26 != '\0')) {
              (**(code **)(*(int *)this + 0x580))();
              puVar25 = &stack0xfffffd64;
              goto LAB_009d9657;
            }
            if ((pCVar14 == (CTerrorPlayer *)0xc0ea15) ||
               (iVar9 = _V_stricmp((char *)pCVar14,"dance"), iVar9 == 0)) {
              puVar24 = &stack0xfffffd64;
              if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                 ((cVar6 = CBaseCombatCharacter::IsA(), puVar24 = &stack0xfffffd64, cVar6 != '\0' &&
                  (uVar26 = (**(code **)(*(int *)this + 300))(), piVar19 = mdlcache,
                  puVar24 = &stack0xfffffd64, (char)uVar26 != '\0')))) {
                (**(code **)(*mdlcache + 0x68))();
                    /* try { // try from 009d9f6d to 009d9f72 has its CatchHandler @ 009da405 */
                (**(code **)(*(int *)this + 0x7fc))();
                (**(code **)(*piVar19 + 0x6c))();
                puVar25 = &stack0xfffffd64;
                goto LAB_009d9657;
              }
            }
            else if ((pCVar14 == (CTerrorPlayer *)"stagger_forward") ||
                    (iVar9 = _V_stricmp((char *)pCVar14,"stagger_forward"), iVar9 == 0)) {
              puVar24 = &stack0xfffffd64;
              if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                uVar26 = (**(code **)(*(int *)this + 300))();
                if (((char)uVar26 != '\0') &&
                   (iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this), iVar9 == 3)) {
                  CBasePlayer::EyeVectors
                            ((CBasePlayer *)this,(Vector *)&local_20c,(Vector *)0x0,(Vector *)0x0);
                  local_20c = (undefined **)((float)local_20c * 300.0);
                  local_208 = (BossZombiePlayerBot *)((float)local_208 * 300.0);
                  local_204 = (CTerrorPlayer *)((float)local_204 * 300.0);
                  OnShovedBySurvivor(this,(CTerrorPlayer *)0x0,(Vector *)&local_20c);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
                uVar26 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if (((char)uVar26 != '\0') &&
                   (iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                   puVar24 = &stack0xfffffd64, iVar9 == 2)) {
                  CBasePlayer::EyeVectors
                            ((CBasePlayer *)this,(Vector *)&local_20c,(Vector *)0x0,(Vector *)0x0);
                  local_20c = (undefined **)((float)local_20c * 300.0);
                  local_208 = (BossZombiePlayerBot *)((float)local_208 * 300.0);
                  local_204 = (CTerrorPlayer *)((float)local_204 * 300.0);
                  OnStaggered(this,(CBaseEntity *)this,(Vector *)0x0);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
            }
            else {
              sVar4 = (short)this;
              if ((pCVar14 == (CTerrorPlayer *)"give_tank") ||
                 (iVar9 = _V_stricmp((char *)pCVar14,"give_tank"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                  (**(code **)(*(int *)this + 0x5c4))();
                  (**(code **)(*(int *)this + 0x6c0))();
                  uVar26 = *(uint *)(this + 0x30bc);
                  if ((((uVar26 != 0xffffffff) &&
                       (puVar17 = g_pEntityList + (uVar26 & 0xfff) * 0x10,
                       puVar17 != (undefined *)0xfffffffc)) &&
                      (*(uint *)(puVar17 + 8) == uVar26 >> 0xc)) &&
                     (*(CBaseEntity **)(puVar17 + 4) != (CBaseEntity *)0x0)) {
                    UTIL_Remove(*(CBaseEntity **)(puVar17 + 4));
                  }
                  if (((byte)this[0x14d] & 8) != 0) {
                    CBaseEntity::CalcAbsolutePosition((CBaseEntity *)this);
                  }
                  pVVar20 = (Vector *)&local_20c;
                  (**(code **)(*(int *)this + 0x234))();
                  pcVar12 = "ability_throw";
                  iVar9 = CBaseEntity::Create("ability_throw",pVVar20,(QAngle *)(this + 0x37c),
                                              (CBaseEntity *)this);
                  CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                  if (iVar9 == 0) {
                    *(undefined4 *)(this + 0x30bc) = 0xffffffff;
                    puVar24 = &stack0xfffffd60;
                  }
                  else {
                    CBaseHandle::Set((CBaseHandle *)pcVar12,(IHandleEntity *)pVVar20);
                    uVar26 = *(uint *)(this + 0x30bc);
                    puVar24 = &stack0xfffffd60;
                    if (((uVar26 != 0xffffffff) &&
                        (puVar17 = g_pEntityList + (uVar26 & 0xfff) * 0x10,
                        puVar24 = &stack0xfffffd60, puVar17 != (undefined *)0xfffffffc)) &&
                       ((puVar24 = &stack0xfffffd60, *(uint *)(puVar17 + 8) == uVar26 >> 0xc &&
                        (puVar24 = &stack0xfffffd60, *(int **)(puVar17 + 4) != (int *)0x0)))) {
                      uVar26 = 1;
                      (**(code **)(**(int **)(puVar17 + 4) + 0x338))();
                      puVar25 = &stack0xfffffd60;
                      goto LAB_009d9657;
                    }
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"give_survivor") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"give_survivor"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                  (**(code **)(*(int *)this + 0x5c4))();
                  (**(code **)(*(int *)this + 0x6c0))();
                  uVar26 = *(uint *)(this + 0x30bc);
                  puVar24 = &stack0xfffffd64;
                  if ((((uVar26 != 0xffffffff) &&
                       (puVar17 = g_pEntityList + (uVar26 & 0xfff) * 0x10,
                       puVar24 = &stack0xfffffd64, puVar17 != (undefined *)0xfffffffc)) &&
                      (puVar24 = &stack0xfffffd64, *(uint *)(puVar17 + 8) == uVar26 >> 0xc)) &&
                     (puVar24 = &stack0xfffffd64,
                     *(CBaseEntity **)(puVar17 + 4) != (CBaseEntity *)0x0)) {
                    uVar26 = 1;
                    UTIL_Remove(*(CBaseEntity **)(puVar17 + 4));
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)0xc85d12) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"smoke"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                iVar9 = IPredictionSystem::g_pPredictionSystems;
                if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                  for (; iVar9 != 0; iVar9 = *(int *)(iVar9 + 4)) {
                    *(int *)(iVar9 + 0x10) = *(int *)(iVar9 + 0x10) + 1;
                  }
                    /* try { // try from 009daa84 to 009dab1e has its CatchHandler @ 009daa5e */
                  if ((((byte)this[0x14d] & 8) != 0) &&
                     (CBaseEntity::CalcAbsolutePosition((CBaseEntity *)this),
                     ((byte)this[0x14d] & 8) != 0)) {
                    CBaseEntity::CalcAbsolutePosition((CBaseEntity *)this);
                  }
                    /* try { // try from 009da7e2 to 009da8ac has its CatchHandler @ 009daa5e */
                  DispatchParticleEffect();
                  if (((byte)this[0x14d] & 8) == 0) {
                    local_20c = *(undefined ***)(this + 0x2e0);
                    local_208 = *(BossZombiePlayerBot **)(this + 0x2e4);
                    local_204 = (CTerrorPlayer *)(*(float *)(this + 0x2e8) + 24.0);
                  }
                  else {
                    CBaseEntity::CalcAbsolutePosition((CBaseEntity *)this);
                    local_20c = *(undefined ***)(this + 0x2e0);
                    local_208 = *(BossZombiePlayerBot **)(this + 0x2e4);
                    local_204 = (CTerrorPlayer *)(*(float *)(this + 0x2e8) + 24.0);
                    if ((*(uint *)(this + 0x14c) & 0x800) != 0) {
                      CBaseEntity::CalcAbsolutePosition((CBaseEntity *)this);
                    }
                  }
                  DispatchParticleEffect();
                  for (iVar9 = IPredictionSystem::g_pPredictionSystems; puVar24 = &stack0xfffffd64,
                      iVar9 != 0; iVar9 = *(int *)(iVar9 + 4)) {
                    *(int *)(iVar9 + 0x10) = *(int *)(iVar9 + 0x10) + -1;
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"fullpull") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"fullpull"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                  iVar9 = 1;
                  if (0 < *(int *)(gpGlobals + 0x14)) {
                    do {
                      pCVar18 = (CBaseEntity *)UTIL_PlayerByIndex(iVar9);
                      if ((((pCVar18 != (CBaseEntity *)0x0) &&
                           (cVar6 = (**(code **)(*(int *)pCVar18 + 0x16c))(), cVar6 != '\0')) &&
                          (iVar11 = CBaseEntity::GetTeamNumber(pCVar18), iVar11 == 3)) &&
                         (((cVar6 = CBaseCombatCharacter::IsA(), cVar6 != '\0' &&
                           (uVar26 = (**(code **)(*(int *)pCVar18 + 300))(), (char)uVar26 != '\0'))
                          && (this != (CTerrorPlayer *)pCVar18)))) {
                        OnStaggered(this,pCVar18,(Vector *)0x0);
                        puVar25 = &stack0xfffffd64;
                        goto LAB_009d9657;
                      }
                      iVar9 = iVar9 + 1;
                    } while (iVar9 <= *(int *)(gpGlobals + 0x14));
                  }
                  uVar26 = 1;
                  OnStaggered(this,(CBaseEntity *)this,(Vector *)0x0);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"damage_me") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"damage_me"), iVar9 == 0)) {
                cVar6 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if ((cVar6 != '\0') &&
                   (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0)) {
                  iVar9 = (**(code **)(*(int *)this + 0x1fc))();
                  if (iVar9 < 0) {
                    iVar9 = iVar9 + 3;
                  }
                  CTakeDamageInfo::CTakeDamageInfo
                            ((CTakeDamageInfo *)&local_20c,(CBaseEntity *)this,(CBaseEntity *)this,
                             (float)(iVar9 >> 2),0x1000,0);
                  CBaseEntity::TakeDamage((CBaseEntity *)this,(CTakeDamageInfo *)&local_20c);
                  puVar24 = &stack0xfffffd64;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)&DAT_00d15dc0) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"limp"), iVar9 == 0)) {
                cVar6 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if ((cVar6 != '\0') &&
                   ((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                    puVar24 = &stack0xfffffd64, iVar9 == 2 &&
                    (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0)))
                   ) {
                  cVar6 = (**(code **)(*(int *)this + 0x7e8))();
                  if (cVar6 != '\0') {
                    (**(code **)(*(int *)this + 0x924))();
                  }
                  if (*(int *)param_1 == 2) {
                    dVar31 = strtod(*(char **)(param_1 + 0x40c),(char **)0x0);
                    SetHealthBuffer(this,(float)dVar31);
                  }
                  else {
                    SetHealthBuffer(this,50.0);
                  }
                  CTakeDamageInfo::CTakeDamageInfo
                            ((CTakeDamageInfo *)&local_20c,(CBaseEntity *)this,(CBaseEntity *)this,
                             (float)*(int *)(this + 0x100),0x1000,0);
                  CBaseEntity::TakeDamage((CBaseEntity *)this,(CTakeDamageInfo *)&local_20c);
                  puVar24 = &stack0xfffffd64;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"fumes") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"fumes"), iVar9 == 0)) {
                cVar6 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if ((cVar6 != '\0') &&
                   ((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                    puVar24 = &stack0xfffffd64, iVar9 == 2 &&
                    (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0)))
                   ) {
                  cVar6 = (**(code **)(*(int *)this + 0x7e8))();
                  if (cVar6 != '\0') {
                    (**(code **)(*(int *)this + 0x924))();
                  }
                  SetHealthBuffer(this,1.0);
                  CTakeDamageInfo::CTakeDamageInfo
                            ((CTakeDamageInfo *)&local_20c,(CBaseEntity *)this,(CBaseEntity *)this,
                             (float)*(int *)(this + 0x100),0x1000,0);
                  CBaseEntity::TakeDamage((CBaseEntity *)this,(CTakeDamageInfo *)&local_20c);
                  puVar24 = &stack0xfffffd64;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)0xc2deee) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"incap"), iVar9 == 0)) {
                cVar6 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if ((cVar6 != '\0') &&
                   (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0)) {
                  if (this[0x186] == (CTerrorPlayer)0x8) {
                    *(uint *)(this + 0x14c) = *(uint *)(this + 0x14c) & 0xfffffffb;
                    CBaseEntity::SetMoveType();
                  }
                  SetHealthBuffer(this,0.0);
                  CTakeDamageInfo::CTakeDamageInfo
                            ((CTakeDamageInfo *)&local_20c,(CBaseEntity *)this,(CBaseEntity *)this,
                             (float)*(int *)(this + 0x100),0x1000,0);
                  CBaseEntity::TakeDamage((CBaseEntity *)this,(CTakeDamageInfo *)&local_20c);
                  puVar24 = &stack0xfffffd64;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)0xd15e30) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"revive"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                  cVar6 = (**(code **)(*(int *)this + 300))();
                  if (((cVar6 == '\0') ||
                      (iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this), iVar9 != 2)) ||
                     (uVar26 = (**(code **)(*(int *)this + 0x7e8))(), (char)uVar26 == '\0')) {
                    piVar19 = (int *)GetGlobalTeam(2);
                    for (iVar9 = 0; iVar11 = (**(code **)(*piVar19 + 0x354))(),
                        puVar24 = &stack0xfffffd64, iVar9 < iVar11; iVar9 = iVar9 + 1) {
                      pCVar18 = (CBaseEntity *)(**(code **)(*piVar19 + 0x358))();
                      if ((pCVar18 == (CBaseEntity *)0x0) ||
                         (cVar6 = (**(code **)(*(int *)pCVar18 + 0x16c))(), cVar6 == '\0')) {
                        pCVar18 = (CBaseEntity *)0x0;
                      }
                      cVar6 = (**(code **)(*(int *)pCVar18 + 300))();
                      if (((cVar6 != '\0') &&
                          (iVar11 = CBaseEntity::GetTeamNumber(pCVar18), iVar11 == 2)) &&
                         ((cVar6 = (**(code **)(*(int *)pCVar18 + 0x7e8))(), cVar6 != '\0' &&
                          ((cVar6 = IsBeingRevived((CTerrorPlayer *)pCVar18), cVar6 == '\0' &&
                           (cVar6 = IsBeingDragged((CTerrorPlayer *)pCVar18), cVar6 == '\0')))))) {
                        StartReviving((CTerrorPlayer *)pCVar18,(CTerrorPlayer *)pCVar18);
                      }
                    }
                  }
                  else {
                    cVar6 = IsBeingRevived(this);
                    puVar24 = &stack0xfffffd64;
                    if ((cVar6 == '\0') &&
                       (cVar6 = IsBeingDragged(this), puVar24 = &stack0xfffffd64, cVar6 == '\0')) {
                      StartReviving(this,this);
                      puVar25 = &stack0xfffffd64;
                      goto LAB_009d9657;
                    }
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)0xd04237) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"it"), iVar9 == 0)) {
                uVar26 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if (((char)uVar26 != '\0') &&
                   ((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                    puVar24 = &stack0xfffffd64, iVar9 == 2 &&
                    (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0)))
                   ) {
                  OnVomitedUpon(this,(CTerrorPlayer *)0x0,false);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"it_fp") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"it_fp"), iVar9 == 0)) {
                uVar26 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if (((char)uVar26 != '\0') &&
                   (((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                     puVar24 = &stack0xfffffd64, iVar9 == 2 &&
                     (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0))
                    && (fVar30 = *(float *)(gpGlobals + 0xc), puVar24 = &stack0xfffffd64,
                       fVar30 != *(float *)(this + 0x3f18))))) {
                  CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                  *(float *)(this + 0x3f18) = fVar30;
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"saliva") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"saliva"), iVar9 == 0)) {
                uVar26 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if ((((char)uVar26 != '\0') &&
                    ((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                     puVar24 = &stack0xfffffd64, iVar9 == 2 &&
                     (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0))
                    )) && (fVar30 = *(float *)(gpGlobals + 0xc), puVar24 = &stack0xfffffd64,
                          fVar30 != *(float *)(this + 0x3f24))) {
                  CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                  *(float *)(this + 0x3f24) = fVar30;
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"bashed") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"bashed"), iVar9 == 0)) {
                uVar26 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if (((char)uVar26 != '\0') &&
                   (((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                     puVar24 = &stack0xfffffd64, iVar9 == 2 &&
                     (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0))
                    && (fVar30 = *(float *)(gpGlobals + 0xc), puVar24 = &stack0xfffffd64,
                       fVar30 != *(float *)(this + 0x3f20))))) {
                  CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                  *(float *)(this + 0x3f20) = fVar30;
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)0xd0d6aa) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"rescue"), iVar9 == 0)) {
                cVar6 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if ((cVar6 == '\0') &&
                   ((puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0 &&
                    (iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                    puVar24 = &stack0xfffffd64, iVar9 == 2)))) {
                  local_224 = (char *)0xc61c3c00;
                  local_220 = 2;
                  local_21c = 0.0;
                  local_218 = 0;
                  local_214 = 0;
                  local_210 = 0;
                  ForEachTerrorPlayer<HighestFlowDistance>((HighestFlowDistance *)&local_224);
                  if ((float)local_224 <= 0.0) {
LAB_009dc8a8:
                    do {
                      CGameString::Get();
                      this_03 = (CSurvivorRescue *)CGlobalEntityList::FindEntityByClassnameFast();
                      puVar24 = &stack0xfffffd64;
                      if (this_03 == (CSurvivorRescue *)0x0) goto LAB_009d9652;
                      cVar6 = CSurvivorRescue::IsCallingForHelp(this_03);
                    } while (cVar6 != '\0');
                  }
                  else {
                    local_24c = 0.0;
                    this_03 = (CSurvivorRescue *)0x0;
                    while( true ) {
                      CGameString::Get();
                      this_00 = (CSurvivorRescue *)CGlobalEntityList::FindEntityByClassnameFast();
                      if (this_00 == (CSurvivorRescue *)0x0) break;
                      cVar6 = CSurvivorRescue::IsCallingForHelp(this_00);
                      if (((cVar6 == '\0') &&
                          (fVar30 = *(float *)(this_00 + 0x1930), fVar30 <= (float)local_224 + 50.0)
                          ) && (local_24c <= fVar30)) {
                        this_03 = this_00;
                        local_24c = fVar30;
                      }
                    }
                    if (this_03 == (CSurvivorRescue *)0x0) goto LAB_009dc8a8;
                  }
                  CSurvivorRescue::CallForHelp(this_03,this);
                  local_204 = (CTerrorPlayer *)0x0;
                  local_1f8 = 0xffffffff;
                  local_1f4[0] = 0;
                  local_20c = (undefined **)this;
                  CSurvivorRescue::InputRescue(this_03,(inputdata_t *)&local_20c);
                  puVar24 = &stack0xfffffd64;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)0xc8f9d4) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"respawn"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                   ((cVar6 = (**(code **)(*(int *)this + 300))(), puVar24 = &stack0xfffffd64,
                    cVar6 == '\0' &&
                    (iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                    puVar24 = &stack0xfffffd64, iVar9 == 2)))) {
                  uVar26 = 1;
                  CCSPlayer::State_Transition();
                  (**(code **)(*(int *)this + 100))();
                  pcVar2 = *(code **)(*(int *)this + 0x128);
                  (**(code **)(*(int *)this + 0x1fc))();
                  (*pcVar2)();
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"suppress") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"suppress"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                   (iVar9 = GetActiveTerrorWeapon(this), puVar24 = &stack0xfffffd64, iVar9 != 0)) {
                  uVar26 = 1;
                  this_01 = (CTerrorWeapon *)GetActiveTerrorWeapon(this);
                  CTerrorWeapon::SuppressHelpingHands(this_01,0.0);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"respawn_all") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"respawn_all"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                  piVar19 = (int *)GetGlobalTeam(2);
                  for (iVar9 = 0; iVar11 = (**(code **)(*piVar19 + 0x354))(),
                      puVar24 = &stack0xfffffd64, iVar9 < iVar11; iVar9 = iVar9 + 1) {
                    pCVar18 = (CBaseEntity *)(**(code **)(*piVar19 + 0x358))();
                    if ((pCVar18 == (CBaseEntity *)0x0) ||
                       (cVar6 = (**(code **)(*(int *)pCVar18 + 0x16c))(), cVar6 == '\0')) {
                      pCVar18 = (CBaseEntity *)0x0;
                    }
                    cVar6 = (**(code **)(*(int *)pCVar18 + 300))();
                    if ((cVar6 == '\0') &&
                       (iVar11 = CBaseEntity::GetTeamNumber(pCVar18), iVar11 == 2)) {
                      CCSPlayer::State_Transition();
                      (**(code **)(*(int *)pCVar18 + 100))();
                      pcVar2 = *(code **)(*(int *)pCVar18 + 0x128);
                      (**(code **)(*(int *)pCVar18 + 0x1fc))();
                      (*pcVar2)();
                    }
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"materialize") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"materialize"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                   ((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                    puVar24 = &stack0xfffffd64, iVar9 == 3 &&
                    (uVar26 = (**(code **)(*(int *)this + 0x558))(), puVar24 = &stack0xfffffd64,
                    (char)uVar26 != '\0')))) {
                  MaterializeFromGhost(this);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)0xc2a0d5) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"ghost"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                   ((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this),
                    puVar24 = &stack0xfffffd64, iVar9 == 3 &&
                    (cVar6 = (**(code **)(*(int *)this + 300))(), puVar24 = &stack0xfffffd64,
                    cVar6 == '\0')))) {
                  if ((*(int *)param_1 != 2) ||
                     ((uVar26 = GetZombieClassFromName(*(char **)(param_1 + 0x40c)),
                      (uVar26 & 0xfffffffd) != 1 && (uVar26 != 2)))) {
                    uVar26 = 3;
                  }
                  if (uVar26 != *(uint *)(this + 0x2ba4)) {
                    CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                    *(uint *)(this + 0x2ba4) = uVar26;
                  }
                  CCSPlayer::State_Transition();
                  puVar24 = &stack0xfffffd64;
                  if (*(int *)(this + 0x2cac) < 1) {
                    CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24U);
                    *(undefined4 *)(this + 0x2cac) = 1;
                    puVar24 = &stack0xfffffd64;
                    if (*(int *)(this + 0x2cb0) != 1) {
                      uVar26 = 1;
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24U);
                      *(undefined4 *)(this + 0x2cb0) = 1;
                      puVar25 = &stack0xfffffd64;
                      goto LAB_009d9657;
                    }
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"scrimmage") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"scrimmage"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                   (puVar24 = &stack0xfffffd64, 1 < *(int *)param_1)) {
                  dVar31 = strtod(*(char **)(param_1 + 0x40c),(char **)0x0);
                  fVar30 = (float)dVar31;
                  if (2 < *(int *)param_1) {
                    dVar32 = strtod(*(char **)(param_1 + 0x410),(char **)0x0);
                    fVar30 = (float)dVar32;
                  }
                  lVar28 = (longdouble)
                           FindLineOfScrimmage((float)dVar31,false,(Vector *)&local_23c,
                                               (QAngle *)&local_230);
                  lVar29 = (longdouble)
                           FindLineOfScrimmage(fVar30,false,(Vector *)&local_224,
                                               (QAngle *)&local_20c);
                  if (((float)lVar29 <= 0.0) || ((float)lVar28 <= 0.0)) {
                    (**(code **)(*(int *)this + 0xb8))();
                    Msg();
                    *(undefined4 *)(this + 0x2bc0) = 0;
                    *(undefined4 *)(this + 0x2be0) = 0;
                    cVar6 = Vector::operator!=((Vector *)(this + 0x2be8),(Vector *)&vec3_origin);
                    if (cVar6 != '\0') {
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                      *(undefined4 *)(this + 0x2be8) = vec3_origin;
                      *(undefined4 *)(this + 0x2bec) = DAT_01053d4c;
                      *(undefined4 *)(this + 0x2bf0) = DAT_01053d50;
                    }
                    cVar6 = QAngle::operator!=((QAngle *)(this + 0x2bf4),(QAngle *)&vec3_angle);
                    if (cVar6 != '\0') {
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                      *(undefined4 *)(this + 0x2bf4) = vec3_angle;
                      *(undefined4 *)(this + 0x2bf8) = DAT_01053d40;
                      *(undefined4 *)(this + 0x2bfc) = DAT_01053d44;
                    }
                    puVar24 = &stack0xfffffd64;
                    if (*(int *)(this + 0x2c14) != 0) {
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                      *(undefined4 *)(this + 0x2c14) = 0;
                      puVar24 = &stack0xfffffd64;
                    }
                  }
                  else {
                    cVar6 = Vector::operator!=((Vector *)(this + 0x2bc8),(Vector *)&local_23c);
                    if (cVar6 != '\0') {
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                      *(undefined4 *)(this + 0x2bc8) = local_23c;
                      *(undefined4 *)(this + 0x2bcc) = local_238;
                      *(undefined4 *)(this + 0x2bd0) = local_234;
                    }
                    cVar6 = QAngle::operator!=((QAngle *)(this + 0x2bd4),(QAngle *)&local_230);
                    if (cVar6 != '\0') {
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                      *(char **)(this + 0x2bd4) = local_230;
                      *(undefined4 *)(this + 0x2bd8) = local_22c;
                      *(float *)(this + 0x2bdc) = local_228;
                    }
                    *(float *)(this + 0x2bc0) = (float)lVar28;
                    cVar6 = Vector::operator!=((Vector *)(this + 0x2be8),(Vector *)&local_224);
                    if (cVar6 != '\0') {
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                      *(char **)(this + 0x2be8) = local_224;
                      *(undefined4 *)(this + 0x2bec) = local_220;
                      *(float *)(this + 0x2bf0) = local_21c;
                    }
                    cVar6 = QAngle::operator!=((QAngle *)(this + 0x2bf4),(QAngle *)&local_20c);
                    if (cVar6 != '\0') {
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                      *(undefined ***)(this + 0x2bf4) = local_20c;
                      *(BossZombiePlayerBot **)(this + 0x2bf8) = local_208;
                      *(CTerrorPlayer **)(this + 0x2bfc) = local_204;
                    }
                    *(float *)(this + 0x2be0) = (float)lVar29;
                    (**(code **)(*(int *)this + 0xb8))();
                    Msg();
                    if (*(int *)(this + 0x2c14) != 1) {
                      CServerNetworkProperty::NetworkStateChanged(sVar4 + 0x24);
                      *(undefined4 *)(this + 0x2c14) = 1;
                    }
                    UpdateYardLines(this,0.0);
                    puVar24 = &stack0xfffffd64;
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)&DAT_00d15e04) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"boom"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                  uVar26 = *(uint *)(this + 0x14c);
                  if ((uVar26 & 0x1000) != 0) {
                    CBaseEntity::CalcAbsoluteVelocity((CBaseEntity *)this);
                    uVar26 = *(uint *)(this + 0x14c);
                  }
                  if ((uVar26 & 0x800) != 0) {
                    CBaseEntity::CalcAbsolutePosition((CBaseEntity *)this);
                  }
                  uVar26 = 1;
                  pVVar20 = (Vector *)(**(code **)(*(int *)this + 0x288))();
                  CPipeBombProjectile::Create
                            (pVVar20,(QAngle *)(this + 0x37c),(Vector *)(this + 0x274),
                             (Vector *)&vec3_origin,(CBaseCombatCharacter *)this,0.1);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)0xc1a015) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"fire"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
                  if (((byte)this[0x14d] & 8) == 0) {
                    local_228 = *(float *)(this + 0x2e8);
                    pcVar12 = *(char **)(this + 0x2e0);
                    local_22c = *(undefined4 *)(this + 0x2e4);
                    local_21c = local_228 - 999999.9;
                    local_224 = pcVar12;
                    local_220 = local_22c;
                  }
                  else {
                    CBaseEntity::CalcAbsolutePosition((CBaseEntity *)this);
                    local_228 = *(float *)(this + 0x2e8);
                    pcVar12 = *(char **)(this + 0x2e0);
                    local_22c = *(undefined4 *)(this + 0x2e4);
                    local_21c = local_228 - 999999.9;
                    local_224 = pcVar12;
                    local_220 = local_22c;
                    if ((*(uint *)(this + 0x14c) & 0x800) != 0) {
                      CBaseEntity::CalcAbsolutePosition((CBaseEntity *)this);
                      pcVar12 = *(char **)(this + 0x2e0);
                      local_22c = *(undefined4 *)(this + 0x2e4);
                      local_228 = *(float *)(this + 0x2e8);
                    }
                  }
                  local_228 = local_228 + 10.0;
                  local_230 = pcVar12;
                  UTIL_TraceLine((Vector *)&local_230,(Vector *)&local_224,0x201400b,
                                 (IHandleEntity *)this,0,(CGameTrace *)&local_20c);
                  puVar24 = &stack0xfffffd64;
                  if ((local_1ca & 4) == 0) {
                    local_224 = (char *)0x0;
                    local_220 = 0;
                    local_21c = 0.0;
                    this_02 = (CInferno *)
                              CBaseEntity::Create("inferno",(Vector *)&local_200,
                                                  (QAngle *)&local_224,(CBaseEntity *)0x0);
                    CInferno::StartBurning
                              (this_02,(Vector *)&local_200,(Vector *)local_1f4,
                               (Vector *)&vec3_origin,0);
                    puVar24 = &stack0xfffffd64;
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)&DAT_00d15e09) ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"burn"), iVar9 == 0)) {
                uVar26 = (**(code **)(*(int *)this + 300))();
                puVar24 = &stack0xfffffd64;
                if (((char)uVar26 != '\0') &&
                   (puVar24 = &stack0xfffffd64, *(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0)) {
                  (**(code **)(*(int *)this + 0x380))();
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"ent_count") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"ent_count"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                   (uVar26 = CCSPlayer::ShouldRunRateLimitedCommand((CCSPlayer *)this,param_1),
                   puVar24 = &stack0xfffffd64, (char)uVar26 != '\0')) {
                  local_1f8 = 0xffffffff;
                  local_208 = (BossZombiePlayerBot *)0x0;
                  local_204 = (CTerrorPlayer *)0x0;
                  local_200 = 0;
                  local_1fc = (CTerrorPlayer *)0xffff;
                  local_1f4[0] = 0;
                  local_20c = (undefined **)CaselessStringLessThan;
                    /* try { // try from 009dbf67 to 009dc07c has its CatchHandler @ 009dc21d */
                  pCVar18 = (CBaseEntity *)
                            CGlobalEntityList::NextEnt
                                      ((CGlobalEntityList *)gEntList,(CBaseEntity *)0x0);
                  if (pCVar18 != (CBaseEntity *)0x0) {
                    do {
                      pcVar12 = *(char **)(pCVar18 + 0x7c);
                      if (pcVar12 == (char *)0x0) {
                        pcVar12 = "";
                      }
                      local_230 = pcVar12;
                      uVar8 = CUtlRBTree<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short,CUtlMap<char_const*,int,unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
                              ::Find((CUtlRBTree<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short,CUtlMap<char_const*,int,unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
                                      *)&local_20c,(Node_t *)&local_230);
                      if (uVar8 == 0xffff) {
                        local_220 = 1;
                        local_224 = pcVar12;
                    /* try { // try from 009dc25e to 009dc262 has its CatchHandler @ 009dc21d */
                        CUtlRBTree<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short,CUtlMap<char_const*,int,unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
                        ::Insert((CUtlRBTree<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short,CUtlMap<char_const*,int,unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
                                  *)&local_20c,(Node_t *)&local_224);
                      }
                      else {
                        *(int *)(local_208 + (uint)uVar8 * 0x10 + 0xc) =
                             *(int *)(local_208 + (uint)uVar8 * 0x10 + 0xc) + 1;
                      }
                      pCVar18 = (CBaseEntity *)
                                CGlobalEntityList::NextEnt((CGlobalEntityList *)gEntList,pCVar18);
                    } while (pCVar18 != (CBaseEntity *)0x0);
                  }
                  UTIL_ResetMessageText((CBasePlayer *)this);
                  UTIL_VarArgs("--- %d ents ---\n");
                  UTIL_MessageText();
                  uVar23 = 0;
                  if (local_1fc._2_2_ != 0) {
                    do {
                      UTIL_VarArgs("%d %s\n");
                      UTIL_MessageText();
                      uVar23 = uVar23 + 1;
                    } while (uVar23 < (uint)local_1fc >> 0x10);
                  }
                  CUtlRBTree<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short,CUtlMap<char_const*,int,unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
                  ::~CUtlRBTree((CUtlRBTree<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short,CUtlMap<char_const*,int,unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char_const*,int,unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
                                 *)&local_20c);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"taunt") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"taunt"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(float *)(this + 0x1f68) < *(float *)(gpGlobals + 0xc) ||
                     *(float *)(this + 0x1f68) == *(float *)(gpGlobals + 0xc)) &&
                   ((((uVar26 = (**(code **)(*(int *)this + 300))(), puVar24 = &stack0xfffffd64,
                      (char)uVar26 != '\0' &&
                      (cVar6 = (**(code **)(*(int *)this + 0x7e8))(), puVar24 = &stack0xfffffd64,
                      cVar6 == '\0')) &&
                     (cVar6 = (**(code **)(*(int *)this + 0x558))(), puVar24 = &stack0xfffffd64,
                     cVar6 == '\0')) &&
                    ((iVar9 = CBaseEntity::GetTeamNumber((CBaseEntity *)this), iVar9 != 3 ||
                     (cVar6 = CBaseCombatCharacter::IsA(), puVar24 = &stack0xfffffd64, cVar6 != '\0'
                     )))))) {
                  pcVar2 = *(code **)(*(int *)this + 0x7b4);
                  CAI_Concept::CAI_Concept((CAI_Concept *)&local_20c,"PlayerTaunt");
                  (*pcVar2)();
                  *(float *)(this + 0x1f68) =
                       *(float *)(tauntfrequency._28_4_ + 0x2c) + *(float *)(gpGlobals + 0xc);
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"choose_revive") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"choose_revive"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                   (puVar24 = &stack0xfffffd64, *(int *)param_1 == 2)) {
                  lVar21 = strtol(*(char **)(param_1 + 0x40c),(char **)0x0,10);
                  pCVar14 = (CTerrorPlayer *)UTIL_PlayerByUserId(lVar21);
                  puVar24 = &stack0xfffffd64;
                  if ((pCVar14 != (CTerrorPlayer *)0x0) &&
                     (uVar26 = (**(code **)(*(int *)pCVar14 + 0x16c))(), puVar24 = &stack0xfffffd64,
                     (char)uVar26 != '\0')) {
                    StartReviving(this,pCVar14);
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                }
              }
              else if ((pCVar14 == (CTerrorPlayer *)"choose_drag") ||
                      (iVar9 = _V_stricmp((char *)pCVar14,"choose_drag"), iVar9 == 0)) {
                puVar24 = &stack0xfffffd64;
                if ((*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) &&
                   (puVar24 = &stack0xfffffd64, *(int *)param_1 == 2)) {
                  lVar21 = strtol(*(char **)(param_1 + 0x40c),(char **)0x0,10);
                  pCVar14 = (CTerrorPlayer *)UTIL_PlayerByUserId(lVar21);
                  puVar24 = &stack0xfffffd64;
                  if ((pCVar14 != (CTerrorPlayer *)0x0) &&
                     (uVar26 = (**(code **)(*(int *)pCVar14 + 0x16c))(), puVar24 = &stack0xfffffd64,
                     (char)uVar26 != '\0')) {
                    StartDragging(this,pCVar14);
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                }
              }
              else if ((((pCVar14 == (CTerrorPlayer *)"choose_opendoor") ||
                        (iVar9 = _V_stricmp((char *)pCVar14,"choose_opendoor"), iVar9 == 0)) ||
                       (pCVar14 == (CTerrorPlayer *)"choose_closedoor")) ||
                      (((iVar9 = _V_stricmp((char *)pCVar14,"choose_closedoor"), iVar9 == 0 ||
                        (pCVar14 == (CTerrorPlayer *)"choose_lockdoor")) ||
                       ((iVar9 = _V_stricmp((char *)pCVar14,"choose_lockdoor"), iVar9 == 0 ||
                        ((pCVar14 == (CTerrorPlayer *)"choose_unlockdoor" ||
                         (iVar9 = _V_stricmp((char *)pCVar14,"choose_unlockdoor"), iVar9 == 0)))))))
                      ) {
                iVar9 = (**(code **)(*(int *)this + 0x6e0))();
                puVar24 = &stack0xfffffd64;
                if ((iVar9 != 0) &&
                   ((piVar19 = (int *)__dynamic_cast(), piVar19 != (int *)0x0 ||
                    ((((uVar26 = *(uint *)(iVar9 + 0x180), puVar24 = &stack0xfffffd64,
                       uVar26 != 0xffffffff &&
                       (puVar17 = g_pEntityList + (uVar26 & 0xfff) * 0x10,
                       puVar24 = &stack0xfffffd64, puVar17 != (undefined *)0xfffffffc)) &&
                      (puVar24 = &stack0xfffffd64, *(uint *)(puVar17 + 8) == uVar26 >> 0xc)) &&
                     ((puVar24 = &stack0xfffffd64, *(int *)(puVar17 + 4) != 0 &&
                      (piVar19 = (int *)__dynamic_cast(), puVar24 = &stack0xfffffd64,
                      piVar19 != (int *)0x0)))))))) {
                  if ((pCVar14 == (CTerrorPlayer *)"choose_opendoor") ||
                     (iVar9 = _V_stricmp((char *)pCVar14,"choose_opendoor"), iVar9 == 0)) {
                    uVar26 = 1;
                    local_20c = (undefined **)0x0;
                    local_200 = 0xffffffff;
                    local_1fc = (CTerrorPlayer *)0x0;
                    (**(code **)(*piVar19 + 0xb4))();
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                  if ((pCVar14 == (CTerrorPlayer *)"choose_closedoor") ||
                     (iVar9 = _V_stricmp((char *)pCVar14,"choose_closedoor"), iVar9 == 0)) {
                    uVar26 = 1;
                    local_20c = (undefined **)0x0;
                    local_200 = 0xffffffff;
                    local_1fc = (CTerrorPlayer *)0x0;
                    (**(code **)(*piVar19 + 0xb4))();
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                  if ((pCVar14 == (CTerrorPlayer *)"choose_lockdoor") ||
                     (iVar9 = _V_stricmp((char *)pCVar14,"choose_lockdoor"), iVar9 == 0)) {
                    uVar26 = 1;
                    local_20c = (undefined **)0x0;
                    local_200 = 0xffffffff;
                    local_1fc = (CTerrorPlayer *)0x0;
                    (**(code **)(*piVar19 + 0xb4))();
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                  if ((pCVar14 == (CTerrorPlayer *)"choose_unlockdoor") ||
                     (iVar9 = _V_stricmp((char *)pCVar14,"choose_unlockdoor"),
                     puVar24 = &stack0xfffffd64, iVar9 == 0)) {
                    uVar26 = 1;
                    local_20c = (undefined **)0x0;
                    local_200 = 0xffffffff;
                    local_1fc = (CTerrorPlayer *)0x0;
                    (**(code **)(*piVar19 + 0xb4))();
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                }
              }
              else {
                if ((pCVar14 == (CTerrorPlayer *)"z_abort") ||
                   (iVar9 = _V_stricmp((char *)pCVar14,"z_abort"), iVar9 == 0)) {
                  uVar26 = 1;
                  (**(code **)(*(int *)this + 0x914))();
                  puVar25 = &stack0xfffffd64;
                  goto LAB_009d9657;
                }
                if ((pCVar14 == (CTerrorPlayer *)0xd14b33) ||
                   (iVar9 = _V_stricmp((char *)pCVar14,"vocalize"), iVar9 == 0)) {
                  cVar6 = (**(code **)(*(int *)this + 300))();
                  puVar24 = &stack0xfffffd64;
                  if ((cVar6 != '\0') &&
                     ((puVar24 = &stack0xfffffd64, 1 < *(int *)param_1 &&
                      (uVar26 = CCSPlayer::ShouldRunRateLimitedCommand((CCSPlayer *)this,param_1),
                      puVar24 = &stack0xfffffd64, (char)uVar26 != '\0')))) {
                    pcVar12 = "";
                    if (1 < *(int *)param_1) {
                      pcVar12 = *(char **)(param_1 + 0x40c);
                    }
                    local_120[0] = '\0';
                    cVar6 = (**(code **)(*(int *)this + 0x7e8))();
                    if ((((cVar6 == '\0') ||
                         (lVar28 = (longdouble)CountdownTimer::Now(),
                         *(float *)(this + 0x30a0) <= (float)lVar28)) || (pcVar12 == "PlayerHelp"))
                       || (iVar9 = _V_stricmp(pcVar12,"PlayerHelp"), iVar9 == 0)) {
                      if ((pcVar12 == "smartlook") ||
                         (iVar9 = _V_stricmp(pcVar12,"smartlook"), iVar9 == 0)) {
                        puVar25 = &stack0xfffffd64;
                        if (*(float *)(this + 0x3fa4) + 2.0 < *(float *)(gpGlobals + 0xc) ||
                            *(float *)(this + 0x3fa4) + 2.0 == *(float *)(gpGlobals + 0xc)) {
                          if ((*(int *)param_1 < 3) || (**(char **)(param_1 + 0x410) == '#')) {
                            pcVar12 = "smartlooktype:manual";
                          }
                          else {
                            cVar6 = (**(code **)(*(int *)this + 0x7e8))();
                            puVar25 = &stack0xfffffd64;
                            if (cVar6 != '\0') goto LAB_009d9657;
                            pcVar12 = "smartlooktype:auto";
                          }
                          V_strncat(local_120,pcVar12,0x100,-1);
                          pcVar12 = (char *)GetSmartLookConcept(this,(CBaseEntity *)0x0,local_120,
                                                                0x100);
                          *(undefined4 *)(this + 0x3fa4) = *(undefined4 *)(gpGlobals + 0xc);
                          pcVar2 = *(code **)(*(int *)this + 0x7b4);
                          CAI_Concept::CAI_Concept((CAI_Concept *)&local_20c,pcVar12);
                          (*pcVar2)();
                          puVar25 = &stack0xfffffd64;
                        }
                      }
                      else {
                        if ((pcVar12 == "PlayerHurrah") ||
                           (iVar9 = _V_stricmp(pcVar12,"PlayerHurrah"), iVar9 == 0)) {
                          pcVar12 = (char *)GetHurrahConcept(this);
                        }
                        puVar25 = &stack0xfffffd64;
                        if ((((2 < *(int *)param_1) &&
                             (pcVar3 = *(char **)(param_1 + 0x410), puVar25 = &stack0xfffffd64,
                             *pcVar3 == '#')) &&
                            (iVar9 = _V_strlen(pcVar3), puVar25 = &stack0xfffffd64, 1 < iVar9)) &&
                           (dVar31 = strtod(pcVar3 + 1,(char **)0x0), puVar25 = &stack0xfffffd64,
                           ABS(*(float *)(gpGlobals + 0xc) - (float)(dVar31 * 0.1)) <= 2.0)) {
                          pcVar2 = *(code **)(*(int *)this + 0x7b4);
                          CAI_Concept::CAI_Concept((CAI_Concept *)&local_20c,pcVar12);
                          (*pcVar2)();
                          puVar25 = &stack0xfffffd64;
                        }
                      }
                    }
                    goto LAB_009d9657;
                  }
                }
                else if ((pCVar14 == (CTerrorPlayer *)&DAT_00c6d1bb) ||
                        (iVar9 = _V_stricmp((char *)pCVar14,"motd"), iVar9 == 0)) {
                  uVar26 = CCSPlayer::ShouldRunRateLimitedCommand((CCSPlayer *)this,param_1);
                  puVar24 = &stack0xfffffd64;
                  if ((char)uVar26 != '\0') {
                    CCSPlayer::ShowMOTD((CCSPlayer *)this);
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                }
                else if ((pCVar14 == (CTerrorPlayer *)"SkipOuttro") ||
                        (iVar9 = _V_stricmp((char *)pCVar14,"SkipOuttro"), iVar9 == 0)) {
                  DevMsg("Player %d is skipping the outtro\n");
                  puVar24 = &stack0xfffffd64;
                  if (this[0x3fc0] == (CTerrorPlayer)0x0) {
                    this[0x3fc0] = (CTerrorPlayer)0x1;
                    piVar19 = (int *)CGlobalEntityList::FindEntityByClassname
                                               ((CGlobalEntityList *)gEntList,(CBaseEntity *)0x0,
                                                "env_outtro_stats");
                    puVar24 = &stack0xfffffd64;
                    if (piVar19 != (int *)0x0) {
                      uVar26 = 1;
                      local_20c = (undefined **)0x0;
                      local_200 = 0xffffffff;
                      local_1fc = (CTerrorPlayer *)0x0;
                      (**(code **)(*piVar19 + 0xb4))();
                      puVar25 = &stack0xfffffd64;
                      goto LAB_009d9657;
                    }
                  }
                }
                else {
                  if (((((pCVar14 != (CTerrorPlayer *)"PZEndGameYes") &&
                        (iVar9 = _V_stricmp((char *)pCVar14,"PZEndGameYes"), iVar9 != 0)) &&
                       (pCVar14 != (CTerrorPlayer *)"PZEndGameNo")) &&
                      (iVar9 = _V_stricmp((char *)pCVar14,"PZEndGameNo"), iVar9 != 0)) ||
                     (uVar26 = CTerrorGameRules::HasPlayerControlledZombies(), (char)uVar26 == '\0')
                     ) {
                    if ((pCVar14 == (CTerrorPlayer *)"host_validate_session") ||
                       (iVar9 = _V_stricmp((char *)pCVar14,"host_validate_session"), iVar9 == 0)) {
                      uVar26 = 1;
                      (**(code **)(*engine + 0x210))();
                      puVar25 = &stack0xfffffd64;
                    }
                    else {
                      uVar26 = CCSPlayer::ClientCommand((CCSPlayer *)this,param_1);
                      puVar25 = &stack0xfffffd64;
                    }
                    goto LAB_009d9657;
                  }
                  puVar24 = &stack0xfffffd64;
                  if (*(int *)(this + 0x3fc4) == 0) {
                    if ((pCVar14 == (CTerrorPlayer *)"PZEndGameYes") ||
                       (iVar9 = _V_stricmp((char *)pCVar14,"PZEndGameYes"), iVar9 == 0)) {
                      *(undefined4 *)(this + 0x3fc4) = 1;
                    }
                    else {
                      *(undefined4 *)(this + 0x3fc4) = 2;
                    }
                    Msg();
                    CRecipientFilter::CRecipientFilter((CRecipientFilter *)&local_20c);
                    local_20c = &PTR__CSingleUserRecipientFilter_00c08ea8;
                    /* try { // try from 009dccbd to 009dccc1 has its CatchHandler @ 009dcdb4 */
                    CRecipientFilter::AddRecipient
                              ((CRecipientFilter *)&local_20c,(CBasePlayer *)this);
                    /* try { // try from 009dcccb to 009dcd74 has its CatchHandler @ 009dcd92 */
                    CRecipientFilter::MakeReliable((CRecipientFilter *)&local_20c);
                    UserMessageBegin((IRecipientFilter *)&local_20c,
                                     "PZEndGamePanelVoteRegisteredMsg");
                    MessageWriteByte((uint)(*(int *)(this + 0x3fc4) == 1));
                    MessageEnd();
                    piVar19 = (int *)CGlobalEntityList::FindEntityByClassname
                                               ((CGlobalEntityList *)gEntList,(CBaseEntity *)0x0,
                                                "env_outtro_stats");
                    if (piVar19 != (int *)0x0) {
                      local_224 = (char *)0x0;
                      local_218 = 0xffffffff;
                      local_214 = 0;
                      (**(code **)(*piVar19 + 0xb4))();
                    }
                    local_20c = &PTR__CSingleUserRecipientFilter_00c08ea8;
                    CRecipientFilter::~CRecipientFilter((CRecipientFilter *)&local_20c);
                    puVar25 = &stack0xfffffd64;
                    goto LAB_009d9657;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  else {
    pCVar14 = *(CTerrorPlayer **)(param_1 + 0x408);
    if (pCVar14 != (CTerrorPlayer *)"activitylist") goto LAB_009d962b;
LAB_009d963f:
    piVar19 = mdlcache;
    puVar24 = &stack0xfffffd64;
    if (*(int *)(*(int *)(sv_cheats + 0x1c) + 0x30) != 0) {
      local_20c = (undefined **)0x0;
      local_208 = (BossZombiePlayerBot *)0x0;
      local_204 = (CTerrorPlayer *)0x0;
      local_200 = 0;
      local_1fc = (CTerrorPlayer *)0x0;
                    /* try { // try from 009d974f to 009d9751 has its CatchHandler @ 009dcef5 */
      (**(code **)(*mdlcache + 0x68))();
      pCVar10 = *(CStudioHdr **)(this + 0x13e0);
      if (pCVar10 == (CStudioHdr *)0x0) {
        iVar9 = CBaseEntity::GetModel((CBaseEntity *)this);
        if (iVar9 != 0) {
          CBaseAnimating::LockStudioHdr((CBaseAnimating *)this);
        }
        pCVar10 = *(CStudioHdr **)(this + 0x13e0);
        this_06 = (CStudioHdr *)0x0;
        if (pCVar10 != (CStudioHdr *)0x0) goto LAB_009d9766;
      }
      else {
LAB_009d9766:
        this_06 = (CStudioHdr *)0x0;
        if (*(int *)pCVar10 != 0) {
          this_06 = pCVar10;
        }
      }
                    /* try { // try from 009d9783 to 009d97fd has its CatchHandler @ 009dd2b1 */
      for (iVar9 = 0; iVar11 = CStudioHdr::GetNumSeq(this_06), iVar9 < iVar11; iVar9 = iVar9 + 1) {
        local_224 = (char *)CBaseAnimating::GetSequenceActivityName((CBaseAnimating *)this,iVar9);
        if ((local_224 != (char *)0x0) && (*local_224 != '\0')) {
          if ((int)local_200 < 1) {
LAB_009d97e2:
            CUtlVector<char_const*,CUtlMemory<char_const*,int>>::InsertBefore
                      ((CUtlVector<char_const*,CUtlMemory<char_const*,int>> *)&local_20c,local_200,
                       &local_224);
          }
          else {
            sVar22 = 0;
            if (local_224 != *local_20c) {
              do {
                sVar22 = sVar22 + 1;
                if (sVar22 == local_200) goto LAB_009d97e2;
              } while (local_224 != *(char **)((int)local_20c + sVar22 * 4));
              if ((int)sVar22 < 0) goto LAB_009d97e2;
            }
          }
        }
      }
      if (1 < (int)local_200) {
        if ((CTerrorPlayer *)local_20c == (CTerrorPlayer *)0x0) {
          local_24c = (float)(local_200 - 1);
          do {
            iVar11 = 0;
            iVar9 = 1;
            if (0 < (int)local_24c) {
              do {
                while( true ) {
                  iVar16 = iVar9 * 4;
                    /* try { // try from 009d9c67 to 009d9cdc has its CatchHandler @ 009dd2b1 */
                  iVar13 = CaseInsensitiveStringSort
                                     ((char **)((int)local_20c + iVar11),
                                      (char **)((int)local_20c + iVar16));
                  if (-1 < iVar13) break;
                  iVar9 = iVar9 + 1;
                  pCVar14 = (CTerrorPlayer *)((int)local_20c + iVar11);
                  iVar11 = iVar11 + 4;
                  uVar1 = *(undefined4 *)pCVar14;
                  *(undefined4 *)pCVar14 = *(undefined4 *)((int)local_20c + iVar16);
                  *(undefined4 *)((int)local_20c + iVar16) = uVar1;
                  if ((int)local_24c < iVar9) goto LAB_009d9c90;
                }
                iVar9 = iVar9 + 1;
                iVar11 = iVar11 + 4;
              } while (iVar9 <= (int)local_24c);
            }
LAB_009d9c90:
            local_24c = (float)((int)local_24c + -1);
          } while (local_24c != -NAN);
        }
        else {
                    /* try { // try from 009d9ad8 to 009d9b48 has its CatchHandler @ 009dd2b1 */
          qsort(local_20c,local_200,4,CaseInsensitiveStringSort);
        }
      }
      Msg();
      (**(code **)(*(int *)this + 0x20))();
      Msg();
      iVar9 = 0;
      if (0 < (int)local_200) {
        do {
          Msg();
          iVar9 = iVar9 + 1;
        } while (iVar9 < (int)local_200);
      }
      (**(code **)(*piVar19 + 0x6c))();
      local_200 = 0;
      CUtlMemory<char_const*,int>::Purge((CUtlMemory<char_const*,int> *)&local_20c);
      local_1fc = (CTerrorPlayer *)local_20c;
      CUtlMemory<char_const*,int>::Purge((CUtlMemory<char_const*,int> *)&local_20c);
      puVar24 = &stack0xfffffd60;
    }
  }
LAB_009d9652:
  uVar26 = 1;
  puVar25 = puVar24;
LAB_009d9657:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar26;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined1 **)(puVar25 + -4) = &LAB_009dcef5;
  __stack_chk_fail();
}

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)