L L4D2node

CTerrorPlayer::CTerrorPlayer

0x009cf430 · 8095 bytes · __thiscall

_ZN13CTerrorPlayerC2Ev

Decompiled

undefined (1 param)

/* CTerrorPlayer::CTerrorPlayer() */

void __thiscall CTerrorPlayer::CTerrorPlayer(CTerrorPlayer *this)

{
  float fVar1;
  CBaseEdict *pCVar2;
  uint uVar3;
  CTerrorPlayer *pCVar4;
  undefined4 uVar5;
  Vocalizer *this_00;
  undefined *puVar6;
  int iVar7;
  KeyValues *this_01;
  int iVar8;
  undefined *puVar9;
  int iVar10;
  CTerrorPlayer *pCVar11;
  undefined *puVar12;
  byte bVar13;
  CTerrorPlayer **__s2;
  int local_30;
  CTerrorPlayer *local_20 [4];
  
  bVar13 = 0;
  CCSPlayer::CCSPlayer((CCSPlayer *)this);
  *(undefined ***)this = &PTR__CTerrorPlayer_00d1a6e8;
  *(undefined **)(this + 0x2364) = &DAT_00d1b024;
  *(undefined4 *)(this + 0x2a48) = 0xffffffff;
  *(undefined4 *)(this + 0x2a4c) = 0xffffffff;
  *(undefined4 *)(this + 0x2a90) = 0xffffffff;
  *(undefined4 *)(this + 0x2b2c) = 0;
  *(undefined ***)(this + 0x2b24) = &PTR_Run_00d1a5d0;
  *(undefined4 *)(this + 0x2b38) = 0;
  this[0x2b28] = (CTerrorPlayer)0x2;
  *(CTerrorPlayer **)(this + 0x2b30) = this;
  *(code **)(this + 0x2b34) = OnGSClientAchievementStatusResponse;
                    /* try { // try from 009cf4bb to 009cf4bf has its CatchHandler @ 009d145d */
  SteamAPI_RegisterCallback(this + 0x2b24,0xce);
  *(undefined4 *)(this + 0x2b3c) = 0xffffffff;
  *(undefined4 *)(this + 0x2b40) = 0xffffffff;
  *(undefined4 *)(this + 0x2b48) = 0;
  *(undefined4 *)(this + 0x2b4c) = 0;
  *(undefined4 *)(this + 0x2b50) = 0;
  *(undefined4 *)(this + 0x2b54) = 0;
  *(undefined4 *)(this + 0x2b58) = 0;
  *(undefined4 *)(this + 0x2b64) = 0xffffffff;
  *(undefined4 *)(this + 0x2b6c) = 0;
  *(undefined4 *)(this + 0x2b70) = 0xbf800000;
  *(undefined ***)(this + 0x2b68) = &PTR_NetworkStateChanged_00d1a5f0;
  *(undefined ***)(this + 0x2b74) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2b78) = 0;
  *(undefined4 *)(this + 0x2b7c) = 0xbf800000;
  *(undefined ***)(this + 0x2b80) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2b84) = 0;
  *(undefined4 *)(this + 0x2b88) = 0xbf800000;
  *(undefined4 *)(this + 0x2bb0) = 0xffffffff;
  *(undefined ***)(this + 0x2bb4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2bb8) = 0;
  *(undefined4 *)(this + 0x2bbc) = 0xbf800000;
  *(undefined ***)(this + 0x2c20) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2c24) = 0;
  *(undefined4 *)(this + 0x2c28) = 0xbf800000;
  *(undefined ***)(this + 0x2cb4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2cb8) = 0;
  *(undefined4 *)(this + 0x2cbc) = 0xbf800000;
  *(undefined ***)(this + 0x2cc0) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2cc4) = 0;
  *(undefined4 *)(this + 0x2cc8) = 0xbf800000;
  *(undefined ***)(this + 0x2ce4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2ce8) = 0;
  *(undefined4 *)(this + 0x2cec) = 0xbf800000;
  *(undefined4 *)(this + 0x2d60) = 0xffffffff;
  *(undefined2 *)(this + 0x2d78) = 0xffff;
  *(undefined2 *)(this + 0x2d7a) = 0xffff;
  *(undefined2 *)(this + 0x2d7c) = 0xffff;
  *(undefined2 *)(this + 0x2d7e) = 0;
  *(undefined2 *)(this + 0x2d80) = 0;
  *(undefined4 *)(this + 0x2d64) = 0xffffffff;
  *(undefined4 *)(this + 0x2d68) = 0xffffffff;
  *(undefined4 *)(this + 0x2d6c) = 0;
  *(undefined4 *)(this + 0x2d70) = 0;
  *(undefined4 *)(this + 0x2d74) = 0;
  *(undefined2 *)(this + 0x2d82) = 0xffff;
  *(undefined4 *)(this + 0x2d84) = 0;
  *(undefined ***)(this + 0x2d9c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2da0) = 0;
  *(undefined4 *)(this + 0x2da4) = 0xbf800000;
  *(undefined4 *)(this + 0x2da8) = 0xffffffff;
  *(undefined ***)(this + 0x2dac) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x2db0) = 0xbf800000;
  *(undefined ***)(this + 0x2db4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2db8) = 0;
  *(undefined4 *)(this + 0x2dbc) = 0xbf800000;
                    /* try { // try from 009cf6f5 to 009cf854 has its CatchHandler @ 009d13eb */
  CTakeDamageInfo::CTakeDamageInfo((CTakeDamageInfo *)(this + 0x2dc0));
  *(undefined4 *)(this + 0x2e24) = 0xffffffff;
  *(undefined4 *)(this + 0x2e28) = 0xffffffff;
  *(undefined ***)(this + 0x2e2c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2e30) = 0;
  *(undefined4 *)(this + 0x2e34) = 0xbf800000;
  *(undefined ***)(this + 0x2e60) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2e64) = 0;
  *(undefined4 *)(this + 0x2e68) = 0xbf800000;
  *(undefined4 *)(this + 0x2e70) = 0;
  *(undefined4 *)(this + 0x2e74) = 0xbf800000;
  *(undefined ***)(this + 0x2e6c) = &PTR_NetworkStateChanged_00d1a600;
  *(undefined ***)(this + 0x2e7c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2e80) = 0;
  *(undefined4 *)(this + 0x2e84) = 0xbf800000;
  *(undefined ***)(this + 0x2e8c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2e90) = 0;
  *(undefined4 *)(this + 0x2e94) = 0xbf800000;
  *(undefined ***)(this + 0x2e98) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x2e9c) = 0xbf800000;
  *(undefined ***)(this + 0x2ea0) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2ea4) = 0;
  *(undefined4 *)(this + 0x2ea8) = 0xbf800000;
  *(undefined ***)(this + 0x2eb0) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2eb4) = 0;
  *(undefined4 *)(this + 0x2eb8) = 0xbf800000;
  *(undefined ***)(this + 0x2ebc) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2ec0) = 0;
  *(undefined4 *)(this + 0x2ec4) = 0xbf800000;
  *(undefined ***)(this + 0x2ec8) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x2ecc) = 0xbf800000;
  *(undefined ***)(this + 0x2ed0) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2ed4) = 0;
  *(undefined4 *)(this + 0x2ed8) = 0xbf800000;
  Intensity::Intensity((Intensity *)(this + 12000));
  *(undefined4 *)(this + 0x2f0c) = 0xbf800000;
  *(undefined ***)(this + 0x2f08) = &PTR_NetworkStateChanged_00d1a610;
  *(undefined ***)(this + 0x2f10) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2f14) = 0;
  *(undefined4 *)(this + 0x2f18) = 0xbf800000;
  pCVar11 = this + 0x2f1c;
  do {
    *(undefined ***)pCVar11 = &PTR_NetworkStateChanged_00c23e10;
    pCVar4 = pCVar11 + 8;
    *(undefined4 *)(this + (int)(pCVar11 + (0x2f20 - (int)(this + 0x2f1c)))) = 0xbf800000;
    pCVar11 = pCVar4;
  } while (pCVar4 != this + 0x2f5c);
  *(undefined ***)(this + 0x2f60) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x2f64) = 0xbf800000;
  *(undefined ***)(this + 0x2f6c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x2f70) = 0;
  *(undefined4 *)(this + 0x2f74) = 0xbf800000;
  *(undefined ***)(this + 0x308c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3090) = 0;
  *(undefined4 *)(this + 0x3094) = 0xbf800000;
  *(undefined ***)(this + 0x3098) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x309c) = 0;
  *(undefined4 *)(this + 0x30a0) = 0xbf800000;
  *(undefined ***)(this + 0x30a4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x30a8) = 0;
  *(undefined4 *)(this + 0x30ac) = 0xbf800000;
  *(undefined4 *)(this + 0x30bc) = 0xffffffff;
  *(undefined ***)(this + 0x30c4) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x30c8) = 0xbf800000;
  *(undefined4 *)(this + 0x30e8) = 0;
  *(undefined4 *)(this + 0x30ec) = 0;
  *(undefined4 *)(this + 0x30f0) = 0;
  *(undefined4 *)(this + 0x30f4) = 0;
  *(undefined4 *)(this + 0x30f8) = 0;
  *(undefined ***)(this + 0x3104) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3108) = 0xbf800000;
  *(undefined ***)(this + 0x3114) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3118) = 0xbf800000;
  *(undefined ***)(this + 0x311c) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3120) = 0xbf800000;
  *(undefined ***)(this + 0x3124) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3128) = 0xbf800000;
  *(undefined4 *)(this + 0x3134) = 0;
  *(undefined4 *)(this + 0x3138) = 0;
  *(undefined4 *)(this + 0x313c) = 0;
  *(undefined4 *)(this + 0x3140) = 0;
  *(undefined4 *)(this + 0x3144) = 0;
  *(undefined ***)(this + 0x314c) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3150) = 0xbf800000;
  *(undefined ***)(this + 0x3158) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x315c) = 0xbf800000;
  *(undefined ***)(this + 0x3160) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3164) = 0xbf800000;
  *(undefined ***)(this + 0x3168) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x316c) = 0xbf800000;
  *(undefined ***)(this + 0x3170) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3174) = 0xbf800000;
  *(undefined ***)(this + 0x317c) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3180) = 0xbf800000;
  *(undefined ***)(this + 0x3184) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3188) = 0xbf800000;
  *(undefined ***)(this + 0x318c) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3190) = 0xbf800000;
  *(undefined ***)(this + 0x31d4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x31d8) = 0;
  *(undefined4 *)(this + 0x31dc) = 0xbf800000;
  *(undefined4 *)(this + 0x31e0) = 0xffffffff;
  *(undefined ***)(this + 0x31e4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x31e8) = 0;
  *(undefined4 *)(this + 0x31ec) = 0xbf800000;
  *(undefined4 *)(this + 0x31f4) = 0;
  *(undefined4 *)(this + 0x31f8) = 0xbf800000;
  *(undefined ***)(this + 0x31f0) = &PTR_NetworkStateChanged_00d1a620;
  *(undefined4 *)(this + 0x3220) = 0;
  *(undefined4 *)(this + 0x3224) = 0xbf800000;
  *(undefined ***)(this + 0x321c) = &PTR_NetworkStateChanged_00d1a630;
  *(undefined ***)(this + 0x3244) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3248) = 0;
  *(undefined4 *)(this + 0x324c) = 0xbf800000;
  *(undefined4 *)(this + 0x3250) = 0xffffffff;
  *(undefined4 *)(this + 0x325c) = 0;
  *(undefined4 *)(this + 0x3260) = 0xbf800000;
  *(undefined ***)(this + 0x3258) = &PTR_NetworkStateChanged_00d1a640;
  *(undefined4 *)(this + 0x3264) = 0xffffffff;
  *(undefined ***)(this + 0x326c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3270) = 0;
  *(undefined4 *)(this + 0x3274) = 0xbf800000;
  *(undefined ***)(this + 0x327c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3280) = 0;
  *(undefined4 *)(this + 0x3284) = 0xbf800000;
  *(undefined4 *)(this + 0x3288) = 0xffffffff;
  *(undefined ***)(this + 0x328c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3290) = 0;
  *(undefined4 *)(this + 0x3294) = 0xbf800000;
  *(undefined4 *)(this + 0x3298) = 0xffffffff;
  *(undefined ***)(this + 0x329c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x32a0) = 0;
  *(undefined4 *)(this + 0x32a4) = 0xbf800000;
  *(undefined4 *)(this + 0x32a8) = 0xffffffff;
  *(undefined4 *)(this + 0x32ac) = 0xffffffff;
  *(undefined4 *)(this + 0x32b0) = 0xffffffff;
  *(undefined ***)(this + 0x32b4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x32b8) = 0;
  *(undefined4 *)(this + 0x32bc) = 0xbf800000;
  *(undefined4 *)(this + 0x32c0) = 0xffffffff;
  *(undefined ***)(this + 13000) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x32cc) = 0;
  *(undefined4 *)(this + 0x32d0) = 0xbf800000;
  *(undefined4 *)(this + 0x32d8) = 0;
  *(undefined4 *)(this + 0x32dc) = 0xbf800000;
  *(undefined ***)(this + 0x32d4) = &PTR_NetworkStateChanged_00d1a650;
  *(undefined ***)(this + 0x32e0) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x32e4) = 0;
  *(undefined4 *)(this + 0x32e8) = 0xbf800000;
  *(undefined ***)(this + 0x3314) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3318) = 0;
  *(undefined4 *)(this + 0x331c) = 0xbf800000;
  *(undefined ***)(this + 0x3324) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3328) = 0;
  *(undefined4 *)(this + 0x332c) = 0xbf800000;
  *(undefined ***)(this + 0x3338) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x333c) = 0;
  *(undefined4 *)(this + 0x3340) = 0xbf800000;
  *(undefined ***)(this + 0x3344) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3348) = 0;
  *(undefined4 *)(this + 0x334c) = 0xbf800000;
  *(undefined4 *)(this + 0x3380) = 0;
  *(undefined4 *)(this + 0x3384) = 0;
  *(undefined4 *)(this + 0x3388) = 0;
  *(undefined4 *)(this + 0x338c) = 0;
  *(undefined4 *)(this + 0x3390) = 0;
  *(undefined4 *)(this + 0x33a4) = 0xffffffff;
  *(undefined4 *)(this + 0x33ac) = 0xffffffff;
  *(undefined ***)(this + 0x33b4) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x33b8) = 0xbf800000;
  *(undefined4 *)(this + 0x33c0) = 0xffffffff;
  *(undefined4 *)(this + 0x33c4) = 0xffffffff;
  *(undefined4 *)(this + 0x33cc) = 0xbf800000;
  *(undefined ***)(this + 0x33c8) = &PTR_NetworkStateChanged_00d1a660;
  *(undefined ***)(this + 0x33e8) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x33ec) = 0;
  *(undefined4 *)(this + 0x33f0) = 0xbf800000;
  *(undefined ***)(this + 0x33f4) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x33f8) = 0xbf800000;
  *(undefined ***)(this + 0x3400) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3404) = 0;
  *(undefined4 *)(this + 0x3408) = 0xbf800000;
  *(undefined4 *)(this + 0x39f8) = 0xbf800000;
  *(undefined ***)(this + 0x39f4) = &PTR_NetworkStateChanged_00d1a670;
  *(undefined4 *)(this + 0x3a48) = 0xffffffff;
  *(undefined ***)(this + 0x3a68) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3a6c) = 0;
  *(undefined4 *)(this + 0x3a70) = 0xbf800000;
  *(undefined ***)(this + 0x3a7c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3a80) = 0;
  *(undefined4 *)(this + 0x3a84) = 0xbf800000;
  *(undefined ***)(this + 0x3a90) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3a94) = 0xbf800000;
  *(undefined4 *)(this + 15000) = 0;
  *(undefined4 *)(this + 0x3a9c) = 0;
  *(undefined4 *)(this + 0x3aa0) = 0;
  *(undefined4 *)(this + 0x3aa4) = 0;
  *(undefined4 *)(this + 0x3aa8) = 0;
                    /* try { // try from 009cfeae to 009cfeb2 has its CatchHandler @ 009d155d */
  Music::Music((Music *)(this + 0x3ab4),this);
  *(undefined ***)(this + 0x3e34) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3e38) = 0;
  *(undefined4 *)(this + 0x3e3c) = 0xbf800000;
  *(undefined4 *)(this + 0x3e44) = 0xffffffff;
  *(undefined4 *)(this + 0x3e48) = 0xffffffff;
  *(undefined4 *)(this + 0x3e4c) = 0xffffffff;
  *(undefined4 *)(this + 0x3e54) = 0xffffffff;
  *(undefined ***)(this + 0x3e58) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3e5c) = 0;
  *(undefined4 *)(this + 0x3e60) = 0xbf800000;
  *(undefined4 *)(this + 0x3e64) = 0xffffffff;
  *(undefined4 *)(this + 0x3e68) = 0xffffffff;
  *(undefined ***)(this + 0x3e6c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3e70) = 0;
  *(undefined4 *)(this + 0x3e74) = 0xbf800000;
  *(undefined ***)(this + 0x3e90) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3e94) = 0;
  *(undefined4 *)(this + 0x3e98) = 0xbf800000;
  *(undefined ***)(this + 0x3e9c) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3ea0) = 0xbf800000;
  *(undefined ***)(this + 0x3ea8) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3eac) = 0xbf800000;
  *(undefined ***)(this + 0x3eb0) = &PTR_NetworkStateChanged_00c23e10;
  *(undefined4 *)(this + 0x3eb4) = 0xbf800000;
  *(undefined ***)(this + 0x3ec4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3ec8) = 0;
  *(undefined4 *)(this + 0x3ecc) = 0xbf800000;
  *(undefined4 *)(this + 0x3ed4) = 0xffffffff;
  *(undefined4 *)(this + 0x3edc) = 0xffffffff;
  *(undefined4 *)(this + 0x3ee0) = 0xffffffff;
  *(undefined4 *)(this + 0x3ee4) = 0xffffffff;
  *(undefined ***)(this + 0x3ef4) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3ef8) = 0;
  *(undefined4 *)(this + 0x3efc) = 0xbf800000;
  *(undefined4 *)(this + 0x3f30) = 0xbf800000;
  *(undefined ***)(this + 0x3f2c) = &PTR_NetworkStateChanged_00d1a680;
  *(undefined4 *)(this + 0x3f34) = 0xffffffff;
  *(undefined ***)(this + 0x3f4c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3f50) = 0;
  *(undefined4 *)(this + 0x3f54) = 0xbf800000;
  *(undefined ***)(this + 0x3f60) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3f64) = 0;
  *(undefined4 *)(this + 0x3f68) = 0xbf800000;
  *(undefined ***)(this + 0x3f6c) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3f70) = 0;
  *(undefined4 *)(this + 0x3f74) = 0xbf800000;
  *(undefined ***)(this + 0x3f78) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3f7c) = 0;
  *(undefined4 *)(this + 0x3f80) = 0xbf800000;
  *(undefined ***)(this + 0x3f84) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3f88) = 0;
  *(undefined4 *)(this + 0x3f8c) = 0xbf800000;
  *(undefined4 *)(this + 0x3fa0) = 0xffffffff;
  *(undefined ***)(this + 0x3fd0) = &PTR_NetworkStateChanged_00c0b6e0;
  *(undefined4 *)(this + 0x3fd4) = 0;
  *(undefined4 *)(this + 0x3fd8) = 0xbf800000;
  *(undefined4 *)(this + 0x3fdc) = 0xffffffff;
  *(undefined4 *)(this + 0x4020) = 0xffffffff;
  local_20[0] = this;
                    /* try { // try from 009d0146 to 009d0395 has its CatchHandler @ 009d147f */
  CUtlLinkedList<CTerrorPlayer*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CTerrorPlayer*,unsigned_short>,unsigned_short>>
  ::InsertAfter((CUtlLinkedList<CTerrorPlayer*,unsigned_short,false,unsigned_short,CUtlMemory<UtlLinkedListElem_t<CTerrorPlayer*,unsigned_short>,unsigned_short>>
                 *)&g_TerrorPlayerPostThinkQueue,0xffff,local_20);
  *(undefined4 *)(this + 0x3fac) = 0xbf800000;
  this[0x3fb0] = (CTerrorPlayer)0x1;
  *(undefined4 *)(this + 0x3fb8) = 0x7f7fffff;
  this[0x3fcd] = (CTerrorPlayer)0x0;
  uVar5 = CreateTerrorPlayerAnimState(this);
  *(undefined4 *)(this + 0x2910) = uVar5;
  *(undefined4 *)(this + 0x3194) = 0;
  *(undefined4 *)(this + 0x3198) = 0;
  *(undefined4 *)(this + 0x319c) = 0;
  *(undefined4 *)(this + 0x31a0) = 0;
  *(undefined4 *)(this + 0x31a4) = 0;
  *(undefined4 *)(this + 0x31a8) = 0;
  *(undefined4 *)(this + 0x31ac) = 0;
  *(undefined4 *)(this + 0x31b0) = 0;
  *(undefined4 *)(this + 0x31b4) = 0;
  *(undefined4 *)(this + 0x31b8) = 0;
  if (this[0x3148] != (CTerrorPlayer)0x0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    this[0x3148] = (CTerrorPlayer)0x0;
  }
  if (*(float *)(this + 0x3f18) == 0.0) {
    fVar1 = *(float *)(this + 0x3f1c);
  }
  else {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3f18) = 0;
    fVar1 = *(float *)(this + 0x3f1c);
  }
  if (fVar1 == 0.0) {
    fVar1 = *(float *)(this + 0x3f20);
  }
  else {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3f1c) = 0;
    fVar1 = *(float *)(this + 0x3f20);
  }
  if (fVar1 == 0.0) {
    fVar1 = *(float *)(this + 0x3f24);
  }
  else {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3f20) = 0;
    fVar1 = *(float *)(this + 0x3f24);
  }
  if (fVar1 != 0.0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3f24) = 0;
  }
  iVar10 = 0;
  uVar5 = *(undefined4 *)(gpGlobals + 0xc);
  *(undefined4 *)(this + 0x3300) = 8;
  this[0x3f5c] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x340c) = uVar5;
  do {
    iVar7 = iVar10 + 0x2f78;
    iVar10 = iVar10 + 0x34;
    pCVar11 = this + iVar7;
    for (iVar8 = 0xd; iVar8 != 0; iVar8 = iVar8 + -1) {
      *(undefined4 *)pCVar11 = 0;
      pCVar11 = pCVar11 + (uint)bVar13 * -8 + 4;
    }
  } while (iVar10 != 0x104);
  Intensity::Reset((Intensity *)(this + 12000));
  this[0x2f68] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x307c) = 0;
  if (*(int *)(this + 0x3080) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3080) = 0;
  }
  if (*(int *)(this + 0x3084) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3084) = 0;
  }
  if (*(int *)(this + 0x3088) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3088) = 0;
  }
  pCVar11 = this + 0x2d14;
  do {
    while( true ) {
      local_20[0] = (CTerrorPlayer *)0x0;
      iVar10 = memcmp(pCVar11,local_20,4);
      if (iVar10 == 0) break;
      if (this[0x6c] == (CTerrorPlayer)0x0) {
        pCVar2 = *(CBaseEdict **)(this + 0x30);
        if (pCVar2 != (CBaseEdict *)0x0) {
          *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
          iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
          *(undefined2 *)(iVar10 + 2) = 0;
        }
      }
      else {
        this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
      }
      pCVar4 = pCVar11 + 4;
      *(undefined4 *)pCVar11 = 0;
      pCVar11 = pCVar4;
      if (pCVar4 == this + 0x2d38) goto LAB_009d033f;
    }
    pCVar11 = pCVar11 + 4;
  } while (pCVar11 != this + 0x2d38);
LAB_009d033f:
  *(undefined4 *)(this + 0x30c0) = 0;
  iVar10 = gpGlobals;
  uVar5 = *(undefined4 *)(gpGlobals + 0xc);
  this[0x30d4] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x30cc) = uVar5;
  uVar5 = *(undefined4 *)(iVar10 + 0xc);
  this[0x30d5] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x3100) = 0;
  *(undefined4 *)(this + 0x30d0) = uVar5;
  *(undefined4 *)(this + 0x30fc) = 0;
  this_00 = ::operator_new(0x128);
                    /* try { // try from 009d039f to 009d03a3 has its CatchHandler @ 009d1564 */
  Vocalizer::Vocalizer(this_00,this);
  *(Vocalizer **)(this + 0x3110) = this_00;
                    /* try { // try from 009d03b5 to 009d0944 has its CatchHandler @ 009d147f */
  SetClass(this,0);
  ResetClassSpawnSystem(this);
  if (*(int *)(this + 0x2ba4) != 9) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x2ba4) = 9;
  }
  uVar5 = RandomInt(1,6);
  *(undefined4 *)(this + 0x2bac) = uVar5;
  if (*(int *)(this + 0x2ba0) != 8) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x2ba0) = 8;
  }
  if (this[0x2ca5] != (CTerrorPlayer)0x0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    this[0x2ca5] = (CTerrorPlayer)0x0;
  }
  this[0x2ccc] = (CTerrorPlayer)0x0;
  if (this[0x2ce0] != (CTerrorPlayer)0x0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    this[0x2ce0] = (CTerrorPlayer)0x0;
  }
  uVar5 = vec3_origin;
  *(undefined4 *)(this + 0x2d48) = 0;
  *(undefined4 *)(this + 0x2d4c) = 0x47c34ff3;
  *(undefined4 *)(this + 0x2d3c) = uVar5;
  *(undefined4 *)(this + 0x2d40) = DAT_01053d4c;
  *(undefined4 *)(this + 0x2d44) = DAT_01053d50;
  if (*(float *)(this + 0x2d50) != 0.0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x2d50) = 0;
  }
  if (*(float *)(this + 0x2d54) != 0.0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x2d54) = 0;
  }
  *(undefined4 *)(this + 0x2d58) = 0;
  *(undefined4 *)(this + 0x2d5c) = 0;
  *(undefined4 *)(this + 0x312c) = 0;
  if (((*(float *)(this + 0x3394) != 0.0) || (*(float *)(this + 0x3398) != 0.0)) ||
     (*(float *)(this + 0x339c) != 0.0)) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3394) = 0;
    *(undefined4 *)(this + 0x3398) = 0;
    *(undefined4 *)(this + 0x339c) = 0;
  }
  puVar6 = g_pEntityList;
  puVar12 = g_pEntityList + 4;
  if ((puVar12 == (undefined *)0x0) || (*(int *)(g_pEntityList + 8) != 0)) {
    local_30 = 0;
  }
  else {
    local_30 = *(int *)(g_pEntityList + 4);
  }
  uVar3 = *(uint *)(this + 0x33c4);
  if (((uVar3 == 0xffffffff) ||
      (puVar9 = g_pEntityList + (uVar3 & 0xfff) * 0x10, puVar9 == (undefined *)0xfffffffc)) ||
     (*(uint *)(puVar9 + 8) != uVar3 >> 0xc)) {
    iVar10 = 0;
  }
  else {
    iVar10 = *(int *)(puVar9 + 4);
  }
  if (local_30 != iVar10) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
        puVar12 = g_pEntityList + 4;
        puVar6 = g_pEntityList;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x33c4) = 0;
  }
  if ((puVar12 == (undefined *)0x0) || (*(int *)(puVar6 + 8) != 0)) {
    iVar10 = 0;
  }
  else {
    iVar10 = *(int *)(puVar6 + 4);
  }
  uVar3 = *(uint *)(this + 0x33c0);
  if (((uVar3 == 0xffffffff) ||
      (puVar6 = puVar6 + (uVar3 & 0xfff) * 0x10, puVar6 == (undefined *)0xfffffffc)) ||
     (*(uint *)(puVar6 + 8) != uVar3 >> 0xc)) {
    iVar7 = 0;
  }
  else {
    iVar7 = *(int *)(puVar6 + 4);
  }
  if (iVar10 != iVar7) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x33c0) = 0;
  }
  this[0x33fc] = (CTerrorPlayer)0x0;
  this[0x33fd] = (CTerrorPlayer)0x0;
  if (*(float *)(this + 0x33cc) != -1.0) {
    (**(code **)(*(int *)(this + 0x33c8) + 4))(this + 0x33c8,this + 0x33cc);
    *(undefined4 *)(this + 0x33cc) = 0xbf800000;
  }
  if (*(float *)(this + 0x3f8c) != -1.0) {
    (**(code **)(*(int *)(this + 0x3f84) + 4))(this + 0x3f84,this + 0x3f8c);
    *(undefined4 *)(this + 0x3f8c) = 0xbf800000;
  }
  if (*(float *)(this + 0x3eb4) != -1.0) {
    (**(code **)(*(int *)(this + 0x3eb0) + 4))(this + 0x3eb0,this + 0x3eb4);
    *(undefined4 *)(this + 0x3eb4) = 0xbf800000;
  }
  if (*(float *)(this + 0x3efc) != -1.0) {
    (**(code **)(*(int *)(this + 0x3ef4) + 4))(this + 0x3ef4,this + 0x3efc);
    *(undefined4 *)(this + 0x3efc) = 0xbf800000;
  }
  puVar12 = g_pEntityList;
  this[0x3f04] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x3f00) = 0;
  if ((puVar12 == (undefined *)0xfffffffc) || (*(int *)(puVar12 + 8) != 0)) {
    iVar10 = 0;
  }
  else {
    iVar10 = *(int *)(puVar12 + 4);
  }
  uVar3 = *(uint *)(this + 0x30bc);
  if (((uVar3 == 0xffffffff) ||
      (puVar12 = puVar12 + (uVar3 & 0xfff) * 0x10, puVar12 == (undefined *)0xfffffffc)) ||
     (*(uint *)(puVar12 + 8) != uVar3 >> 0xc)) {
    iVar7 = 0;
  }
  else {
    iVar7 = *(int *)(puVar12 + 4);
  }
  if (iVar10 != iVar7) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x30bc) = 0;
  }
  pCVar11 = this + 0x3664;
  do {
    while( true ) {
      local_20[0] = (CTerrorPlayer *)0x0;
      iVar10 = memcmp(pCVar11,local_20,4);
      if (iVar10 == 0) break;
      if (this[0x6c] == (CTerrorPlayer)0x0) {
        pCVar2 = *(CBaseEdict **)(this + 0x30);
        if (pCVar2 != (CBaseEdict *)0x0) {
          *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
          iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
          *(undefined2 *)(iVar10 + 2) = 0;
        }
      }
      else {
        this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
      }
      pCVar4 = pCVar11 + 4;
      *(undefined4 *)pCVar11 = 0;
      pCVar11 = pCVar4;
      if (pCVar4 == this + 0x38b8) goto LAB_009d0767;
    }
    pCVar11 = pCVar11 + 4;
  } while (pCVar11 != this + 0x38b8);
LAB_009d0767:
  pCVar11 = this + 0x38dc;
  do {
    while( true ) {
      __s2 = local_20;
      local_20[0] = (CTerrorPlayer *)0x0;
      iVar10 = memcmp(pCVar11,__s2,4);
      if (iVar10 == 0) break;
      if (this[0x6c] == (CTerrorPlayer)0x0) {
        pCVar2 = *(CBaseEdict **)(this + 0x30);
        if (pCVar2 != (CBaseEdict *)0x0) {
          *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
          iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
          *(undefined2 *)(iVar10 + 2) = 0;
        }
      }
      else {
        this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
      }
      pCVar4 = pCVar11 + 4;
      *(undefined4 *)pCVar11 = 0;
      pCVar11 = pCVar4;
      if (pCVar4 == this + 0x3900) goto LAB_009d07e7;
    }
    pCVar11 = pCVar11 + 4;
  } while (pCVar11 != this + 0x3900);
LAB_009d07e7:
  ResetCheckpointStats(this);
  if (*(int *)(this + 0x3954) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3954) = 0;
  }
  if (*(int *)(this + 0x3978) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3978) = 0;
  }
  if (*(int *)(this + 0x3970) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3970) = 0;
  }
  if (*(int *)(this + 0x396c) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x396c) = 0;
  }
  if (*(int *)(this + 0x3908) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3908) = 0;
  }
  if (*(int *)(this + 0x394c) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x394c) = 0;
  }
  if (*(int *)(this + 0x390c) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x390c) = 0;
  }
  if (*(int *)(this + 0x3914) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3914) = 0;
  }
  if (*(int *)(this + 0x391c) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x391c) = 0;
  }
  if (*(int *)(this + 0x3924) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3924) = 0;
  }
  if (*(int *)(this + 0x392c) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x392c) = 0;
  }
  if (*(int *)(this + 0x3934) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3934) = 0;
  }
  if (*(int *)(this + 0x3980) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3980) = 0;
  }
  if (*(int *)(this + 0x3944) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x3944) = 0;
  }
  if (*(int *)(this + 0x393c) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x393c) = 0;
  }
  *(undefined4 *)(this + 0x3f90) = 0;
  *(undefined4 *)(this + 0x3f94) = 0;
  *(undefined4 *)(this + 0x3f98) = 0;
  this[0x3f9c] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x3fa0) = 0xffffffff;
  *(undefined4 *)(this + 0x3378) = 0;
  *(undefined4 *)(this + 0x30d8) = 0;
  *(undefined4 *)(this + 0x3a64) = 0;
  this_01 = KeyValues::operator_new((KeyValues *)0x2c,(uint)__s2);
                    /* try { // try from 009d0962 to 009d0966 has its CatchHandler @ 009d154c */
  KeyValues::KeyValues(this_01,"ClientSettings",(IKeyValuesSystem *)0x0,false);
  *(KeyValues **)(this + 0x2d38) = this_01;
  if (*(int *)(this + 0x242c) != 0x1e) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
                    /* try { // try from 009d0990 to 009d1277 has its CatchHandler @ 009d147f */
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x242c) = 0x1e;
  }
  *(undefined4 *)(this + 0x3ee8) = 0;
  *(undefined4 *)(this + 0x3eec) = 0;
  *(undefined4 *)(this + 0x3ef0) = 0;
  *(undefined4 *)(this + 0x3f38) = 0;
  *(undefined4 *)(this + 0x3a88) = 0;
  *(undefined4 *)(this + 0x3a8c) = 0;
  if (*(int *)(this + 0x330c) != 0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    *(undefined4 *)(this + 0x330c) = 0;
  }
  *(undefined4 *)(this + 0x30f4) = 0;
  this[0x3e41] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x2e20) = 0;
  this[0x4014] = (CTerrorPlayer)0x0;
  g_nTerrorPlayers = g_nTerrorPlayers + 1;
  *(undefined4 *)(this + 0x3fbc) = 0;
  *(int *)(this + 0x4010) = g_nTerrorPlayers;
  this[0x3fe1] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x3fc8) = 0;
  this[0x3fcc] = (CTerrorPlayer)0x0;
  if (*(float *)(this + 0x3fd8) != -1.0) {
    (**(code **)(*(int *)(this + 0x3fd0) + 4))(this + 0x3fd0,this + 0x3fd8);
    *(undefined4 *)(this + 0x3fd8) = 0xbf800000;
  }
  if (this[0x3ff0] != (CTerrorPlayer)0x0) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
    }
    this[0x3ff0] = (CTerrorPlayer)0x0;
  }
  puVar12 = g_pEntityList;
  *(undefined4 *)(this + 0x3ff4) = 0;
  *(undefined4 *)(this + 0x3ff8) = 0xffffffff;
  *(undefined4 *)(this + 0x3ffc) = 0xffffffff;
  this[0x4000] = (CTerrorPlayer)0x0;
  *(undefined4 *)(this + 0x3ed0) = 0;
  *(undefined4 *)(this + 0x4008) = 0;
  this[0x400c] = (CTerrorPlayer)0x0;
  this[0x400d] = (CTerrorPlayer)0x1;
  *(undefined4 *)(this + 0x2a54) = 0xbf800000;
  *(undefined4 *)(this + 0x4024) = 0;
  if ((puVar12 == (undefined *)0xfffffffc) || (*(int *)(puVar12 + 8) != 0)) {
    iVar10 = 0;
  }
  else {
    iVar10 = *(int *)(puVar12 + 4);
  }
  uVar3 = *(uint *)(this + 0x2a90);
  if (((uVar3 == 0xffffffff) ||
      (puVar12 = puVar12 + (uVar3 & 0xfff) * 0x10, puVar12 == (undefined *)0xfffffffc)) ||
     (*(uint *)(puVar12 + 8) != uVar3 >> 0xc)) {
    iVar7 = 0;
  }
  else {
    iVar7 = *(int *)(puVar12 + 4);
  }
  if (iVar10 != iVar7) {
    if (this[0x6c] == (CTerrorPlayer)0x0) {
      pCVar2 = *(CBaseEdict **)(this + 0x30);
      if (pCVar2 != (CBaseEdict *)0x0) {
        *(uint *)pCVar2 = *(uint *)pCVar2 | 0x101;
        iVar10 = CBaseEdict::GetChangeAccessor(pCVar2);
        *(undefined2 *)(iVar10 + 2) = 0;
      }
      *(undefined4 *)(this + 0x2a90) = 0;
    }
    else {
      this[0x70] = (CTerrorPlayer)((byte)this[0x70] | 1);
      *(undefined4 *)(this + 0x2a90) = 0;
    }
  }
  *(undefined4 *)(this + 0x4004) = 0;
  return;
}

SourceMod gamedata

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

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



        

        

          

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

Return-type handling cheatsheet (DHookReturn)