void __fastcall PlayerPing(double a1, double a2, __int64 a3, __int64 a4)
{
__int64 v4; // rax
_BYTE *v5; // r12
__int64 (__fastcall *v6)(); // rax
_QWORD *PlayerPawn; // r12
char *v8; // rax
char v9; // r15
const void **v10; // rax
float *v11; // r13
_QWORD *v12; // rax
__int64 v13; // rbx
void **v14; // rax
_QWORD *v15; // rax
__int64 v16; // rdx
int v17; // eax
unsigned __int16 v18; // dx
int v19; // ebx
__m128i v20; // xmm3
void *v21; // rbx
float v22; // xmm1_4
double v23; // xmm0_8
__int64 v24; // rdx
__int64 v25; // rcx
double v26; // xmm0_8
double v27; // xmm0_8
struct __class_type_info **v28; // rax
__int64 v29; // rax
unsigned __int16 v30; // cx
unsigned int *v31; // rdi
void **v32; // rax
__int64 v33; // r8
__int64 v34; // rsi
__int64 v35; // rbx
__int64 (__fastcall *v36)(); // rax
float *v37; // rax
void (__fastcall *v38)(__int64); // rdx
float v39; // xmm0_4
__int64 v40; // rax
__int64 Event1; // rax
__int64 Event2; // r14
unsigned int v43; // eax
__int64 v44; // rdx
int v45; // eax
unsigned __int16 v46; // dx
char *v47; // rbx
const __m128i *v48; // rax
char v49; // al
__int64 v50; // r13
__int64 i; // rbx
void **v52; // rax
__int16 *v53; // rbx
__int16 v54; // ax
int v55; // eax
_QWORD *v56; // r12
__int64 v57; // rax
__int64 (__fastcall **v58)(); // rax
__int64 (__fastcall **v59)(); // rdi
__int64 v60; // rbx
__int64 v61; // r12
void (__fastcall *v62)(__int64, _QWORD, _QWORD, __int64 (__fastcall ***)(), __int64, __int64 (__fastcall ***)(), __int64); // r15
__int64 v63; // rsi
unsigned int v64; // eax
int v65; // eax
__int64 v66; // rbx
const void **v67; // rax
struct __class_type_info *v68; // rdi
float v69; // xmm0_4
float v70; // xmm0_4
unsigned int v71; // eax
unsigned int v72; // eax
int v73; // edx
__int64 v74; // [rsp-10h] [rbp-13F0h]
__int64 v75; // [rsp+8h] [rbp-13D8h]
float v76; // [rsp+18h] [rbp-13C8h]
float lpstypea; // [rsp+20h] [rbp-13C0h]
struct __class_type_info *lpstype; // [rsp+20h] [rbp-13C0h]
float v79; // [rsp+28h] [rbp-13B8h]
struct __class_type_info *v80; // [rsp+28h] [rbp-13B8h]
float *v81; // [rsp+28h] [rbp-13B8h]
float v82; // [rsp+28h] [rbp-13B8h]
void *v83; // [rsp+28h] [rbp-13B8h]
float v84; // [rsp+3Ch] [rbp-13A4h] BYREF
float v85; // [rsp+40h] [rbp-13A0h]
float v86; // [rsp+44h] [rbp-139Ch]
__int64 EventVector; // [rsp+48h] [rbp-1398h] BYREF
float v88; // [rsp+50h] [rbp-1390h]
__int64 v89; // [rsp+54h] [rbp-138Ch] BYREF
float v90; // [rsp+5Ch] [rbp-1384h]
double v91; // [rsp+60h] [rbp-1380h] BYREF
__int64 v92; // [rsp+68h] [rbp-1378h]
char v93; // [rsp+88h] [rbp-1358h]
__int64 (__fastcall **v94)(); // [rsp+90h] [rbp-1350h] BYREF
__int64 v95; // [rsp+98h] [rbp-1348h]
__int64 v96; // [rsp+A0h] [rbp-1340h]
__int64 v97; // [rsp+A8h] [rbp-1338h]
__int64 v98; // [rsp+B0h] [rbp-1330h]
__int64 v99; // [rsp+B8h] [rbp-1328h]
__int64 v100; // [rsp+C0h] [rbp-1320h]
char v101; // [rsp+C8h] [rbp-1318h]
__int64 (__fastcall **v102)(); // [rsp+D0h] [rbp-1310h] BYREF
void lpsrc; // [rsp+D8h] [rbp-1308h]
int v104; // [rsp+E0h] [rbp-1300h]
char v105[8]; // [rsp+100h] [rbp-12E0h] BYREF
int v106; // [rsp+108h] [rbp-12D8h]
int v107; // [rsp+10Ch] [rbp-12D4h]
__int64 v108; // [rsp+120h] [rbp-12C0h]
__int64 v109; // [rsp+128h] [rbp-12B8h]
__int64 v110; // [rsp+130h] [rbp-12B0h]
__int64 v111; // [rsp+138h] [rbp-12A8h]
__int64 v112; // [rsp+140h] [rbp-12A0h]
__int64 v113; // [rsp+154h] [rbp-128Ch] BYREF
float v114; // [rsp+15Ch] [rbp-1284h]
float v115; // [rsp+17Ch] [rbp-1264h]
__int64 (__fastcall **v116)(); // [rsp+190h] [rbp-1250h] BYREF
_BYTE v117[24]; // [rsp+198h] [rbp-1248h] BYREF
__int64 v118; // [rsp+1B0h] [rbp-1230h] BYREF
int v119[2]; // [rsp+1B8h] [rbp-1228h] BYREF
__m128i v120; // [rsp+1C0h] [rbp-1220h]
__m128i v121; // [rsp+1D0h] [rbp-1210h]
__m128i v122; // [rsp+1E0h] [rbp-1200h]
char v123; // [rsp+1F0h] [rbp-11F0h]
char v124; // [rsp+1F1h] [rbp-11EFh]
__int64 v125; // [rsp+1F8h] [rbp-11E8h]
__int64 v126; // [rsp+208h] [rbp-11D8h]
__int64 v127; // [rsp+210h] [rbp-11D0h]
char v128; // [rsp+218h] [rbp-11C8h]

v4 = sub_DA5730(a3, a1, a2);
if ( v4 )
{
v5 = (_BYTE )v4;
if ( ((unsigned __int8 (__fastcall **)(__int64))((_QWORD *)v4 + 1216LL))(v4) )
{
v6 = (__int64 (__fastcall **)())((_QWORD *)v5 + 1208LL);
if ( v6 == sub_6970A0 )
{
if ( v5[1448] )
return;
}
else if ( !((unsigned __int8 (__fastcall *)(_BYTE *))v6)(v5) )
{
return;
}
PlayerPawn = (_QWORD *)sub_6F01C0(v5);
if ( PlayerPawn )
{
v8 = (char *)sub_10FA1F0(qword_18B96F0, 0xFFFFFFFFLL);
if ( !v8 )
v8 = *(char **)(qword_18B96F0[1] + 8LL);
v9 = *v8;
if ( !*v8 )
{
v10 = (const void **)sub_6EC5A0(PlayerPawn[483] + 84LL);
if ( v10 && *v10 )
{
v11 = (float *)__dynamic_cast(
*v10,
(const struct __class_type_info *)&typeinfo for'CBaseEntity,<br/> (const struct __class_type_info *)&typeinfo for’CPlayerPing,
0LL);
}
else
{
v118 = 0LL;
v124 = 0;
v125 = 0LL;
v116 = off_15767A8;
v128 = 0;
v126 = 0LL;
v127 = -1LL;
v47 = (char *)qword_1942E00 + 3304;
v119[1] = sub_127C750(qword_1942E00);
v48 = (const __m128i *)sub_127C760(qword_1942E00);
v120 = _mm_load_si128(v48);
v121 = _mm_load_si128(v48 + 1);
*(_QWORD *)&v117[8] = v47;
v122 = _mm_load_si128(v48 + 2);
*(_QWORD *)v117 = 0LL;
*(_QWORD )&v117[16] = qword_18ED508;
v49 = 0;
if ( qword_1920540 )
v49 = ((__int64 (__fastcall **)(_QWORD *))(*qword_1920540 + 200LL))(qword_1920540);
v123 = v49;
v119[0] = 0;
v50 = operator new(0x38uLL);
sub_1274180(v50, *(_QWORD *)&v117[8], 3LL);
*(_QWORD )v117 = v50;
++(_WORD *)(v50 + 32);
if ( *(_BYTE *)(v50 + 36) && (unsigned __int8)LoggingSystem_IsChannelEnabled(LOG_GENERAL, 2LL) )
LoggingSystem_Log(
LOG_GENERAL,
2LL,
“kv 0x%p AddRef refcount == %d\n”,
(const void )v50,
(unsigned int)(__int16 *)(v50 + 32));
for ( i = v125; i; i = *(_QWORD )(i + 56) )
sub_1277C10((_QWORD *)v117, i, 0LL, 0LL);
LODWORD(v102) = sub_C66500(&v116);
v52 = (void **)sub_6EC5A0(&v102);
v11 = (float *)v52;
if ( v52 )
v11 = (float *)*v52;
v53 = *(__int16 **)v117;
v116 = off_1576788;
if ( *(_QWORD *)v117 )
{
if ( *(_BYTE )((_QWORD *)v117 + 36LL)
&& (unsigned __int8)LoggingSystem_IsChannelEnabled(LOG_GENERAL, 2LL) )
{
LoggingSystem_Log(
LOG_GENERAL,
2LL,
“kv 0x%p Release refcount == %d\n”,
v53,
(unsigned int)(v53[16] - 1));
}
v54 = v53[16] - 1;
v53[16] = v54;
if ( v54 <= 0 )
{
sub_12744F0(v53);
operator delete(v53, 0x38uLL);
}
}
if ( v118 )
CUtlString::FreeMemoryBlock((CUtlString )&v118);
}
if ( v11 )
{
if ( v11[491] != 0.0 )
{
LODWORD(a2) = 1056964608;
v9 = (float)(sub_B2ADD0((unsigned int *)(PlayerPawn[2] + 56LL)) - v11[491]) < 0.5;
}
v12 = (_QWORD *)sub_6EC5A0(PlayerPawn + 464);
if ( (!v12 || !*v12 || (unsigned __int8)sub_C68170(v12, a4))
&& (unsigned __int8)sub_C5C930(PlayerPawn[483])
|| v9 && !((_BYTE *)v11 + 1980) )
{
v13 = PlayerPawn[483];
v14 = (void **)sub_6EC5A0(v13 + 84);
if ( !v14 || v11 != *v14 )
{
sub_1290180(v13 + 8, 84LL, 0xFFFFFFFFLL, 0xFFFFFFFFLL);
v44 = *((_QWORD )v11 + 2);
if ( v44 )
{
v45 = ((_DWORD )(v44 + 16) >> 15) - ((_DWORD *)(v44 + 48) & 1);
if ( *(_DWORD *)(v44 + 16) == -1 )
v46 = 0x7FFF;
else
v46 = *(_WORD *)(v44 + 16) & 0x7FFF;
*(_DWORD *)(v13 + 84) = v46 | (v45 << 15);
}
else
{
*(_DWORD *)(v13 + 84) = -1;
}
}
v15 = (_QWORD *)sub_6EC5A0(v11 + 492);
if ( !v15 || PlayerPawn != (_QWORD *)v15 )
{
((void (__fastcall **)(float , __int64, __int64, __int64))((_QWORD )v11 + 200LL))(
v11,
1968LL,
0xFFFFFFFFLL,
0xFFFFFFFFLL);
v16 = PlayerPawn[2];
if ( v16 )
{
v17 = ((_DWORD )(v16 + 16) >> 15) - ((_DWORD *)(v16 + 48) & 1);
if ( *(_DWORD *)(v16 + 16) == -1 )
v18 = 0x7FFF;
else
v18 = *(_WORD *)(v16 + 16) & 0x7FFF;
*((_DWORD *)v11 + 492) = v18 | (v17 << 15);
}
else
{
v11[492] = NAN;
}
}
v19 = v9 != 0 ? 0x12 : 0;
if ( v19 != *((_DWORD )v11 + 494) )
{
((void (__fastcall **)(float , __int64, __int64, __int64))((_QWORD *)v11 + 200LL))(
v11,
1976LL,
0xFFFFFFFFLL,
0xFFFFFFFFLL);
*((_DWORD )v11 + 494) = v19;
}
v11[491] = sub_B2ADD0((unsigned int *)(PlayerPawn[2] + 56LL));
if ( v9 != *((_BYTE )v11 + 1980) )
{
((void (__fastcall **)(float , __int64, __int64, __int64))((_QWORD *)v11 + 200LL))(
v11,
1980LL,
0xFFFFFFFFLL,
0xFFFFFFFFLL);
*((_BYTE )v11 + 1980) = v9;
}
v108 = 0LL;
v111 = 0xFFFFFFFF00000000LL;
v109 = 0LL;
v110 = 0LL;
v112 = 117440512LL;
sub_11C6320(&v102);
sub_CB3380(PlayerPawn, &v84, 0LL, 0LL);
v20 = (_m128i)LODWORD(v85);
*(float *)v20.m128i_i32 = v85 * 56755.84;
v21 = off_177FB50;
lpstypea = v84 * 56755.84;
v79 = 56755.84 * v86;
v94 = COERCE__INT64_FASTCALL(((double (__fastcall **)(_QWORD *))(*PlayerPawn + 1392LL))(PlayerPawn));
LODWORD(v95) = LODWORD(a2);
v22 = *(float *)&a2 + v79;
*((float *)&v116 + 1) = COERCE_FLOAT(_mm_cvtsi128_si32(v20)) + *((float *)&v94 + 1);
*(float *)&v116 = lpstypea + *(float *)&v94;
*(float )v117 = v22;
v23 = ((double (__fastcall **)(_QWORD *))(*PlayerPawn + 1392LL))(PlayerPawn);
*(float *)&v92 = v22;
v91 = v23;
((void (__fastcall *)(void *, double *, __int64 (__fastcall ***)(), _QWORD *, __int64, __int64, __int64 (__fastcall **)()))qword_C3E1D0)(
v21,
&v91,
&v116,
PlayerPawn,
1839107LL,
4LL,
&v102);
if ( v115 == 1.0 )
goto LABEL_63;
EventVector = v113;
v88 = v114;
v26 = ((double (__fastcall **)(_QWORD *, double *, __int64, __int64, __int64))(*PlayerPawn + 1392LL))(
PlayerPawn,
&v91,
v24,
v25,
v74);
*(float *)v117 = v22;
v116 = *(__int64 (__fastcall ***)())&v26;
if ( (unsigned __int8)sub_6F7C20(PlayerPawn, &v116, &v113, &v89) )
{
EventVector = v89;
v88 = v90;
goto LABEL_49;
}
v80 = (struct __class_type_info *)lpsrc;
if ( lpsrc
&& __dynamic_cast(
lpsrc,
(const struct __class_type_info *)&typeinfo for'CBaseEntity,<br/> (const struct __class_type_info *)&typeinfo for’CBaseAnimGraph,
0LL) )
{
EventVector = v113;
v88 = v114;
goto LABEL_40;
}
v101 = 0;
LODWORD(v116) = 0;
*(_QWORD *)&v117[8] = 0x8000000000000040LL;
*(_QWORD *)v117 = &v117[16];
v94 = off_1556978;
v100 = 0x4903000700000000LL;
v95 = 0LL;
v96 = 0LL;
v97 = 0LL;
v92 = 0x4238000000000000LL;
v98 = -1LL;
v99 = -1LL;
v91 = 0.0;
v93 = 1;
v65 = sub_D4DAF0(
(_DWORD)off_177FB50,
(unsigned int)&v91,
(unsigned int)&v113,
(unsigned int)&v94,
1,
(unsigned int)&v116,
1);
if ( v65 <= 0 )
{
v80 = 0LL;
}
else
{
v66 = 0LL;
v80 = 0LL;
v76 = 36.0;
v75 = 72LL * v65;
do
{
LODWORD(v91) = *(_DWORD )((_QWORD *)v117 + v66 + 24);
v67 = (const void **)sub_6EC5A0(&v91);
if ( v67 )
{
if ( *v67 )
{
lpstype = (struct __class_type_info *)*v67;
if ( __dynamic_cast(
*v67,
(const struct __class_type_info )&typeinfo for'CBaseEntity,<br/> (const struct __class_type_info *)&typeinfo for’CCSWeaponBase,
0LL) )
{
v68 = lpstype;
v91 = ((double (__fastcall **)(struct __class_type_info ))((_QWORD *)lpstype + 664LL))(lpstype);
*(float )&v92 = v22;
v22 = (float)(v22 - v114) * (float)(v22 - v114);
v69 = (float)((float)((float)(((float *)&v91 + 1) - *((float )&v113 + 1))
* (float)(((float *)&v91 + 1) - *((float )&v113 + 1)))
+ v22)
+ (float)((float)((float *)&v91 - *(float )&v113)
* (float)((float *)&v91 - *(float *)&v113));
if ( v69 < 0.0 )
{
v70 = sqrtf(v69);
v68 = lpstype;
}
else
{
v70 = fsqrt(v69);
}
if ( v76 <= v70 )
v68 = v80;
v80 = v68;
v76 = fminf(v70, v76);
}
}
}
v66 += 72LL;
}
while ( v66 != v75 );
}
LODWORD(v116) = 0;
v71 = *(_DWORD *)&v117[12] & 0xC0000000;
if ( *(int )&v117[8] < 0 )
{
if ( v71 || !(_QWORD )v117 )
{
LABEL_116:
EventVector = v113;
v88 = v114;
if ( v80 )
{
LABEL_40:
v27 = ((double (__fastcall **)(struct __class_type_info ))((_QWORD *)v80 + 664LL))(v80);
v88 = v22;
EventVector = *(_QWORD *)&v27;
if ( __dynamic_cast(
v80,
(const struct __class_type_info *)&typeinfo for'CBaseEntity,<br/> (const struct __class_type_info *)&typeinfo for’CCSWeaponBase,
0LL)
&& *((_DWORD )v11 + 494) != 1 )
{
((void (__fastcall **)(float , __int64, __int64, __int64))((_QWORD *)v11 + 200LL))(
v11,
1976LL,
0xFFFFFFFFLL,
0xFFFFFFFFLL);
*((_DWORD *)v11 + 494) = 1;
}
v28 = (struct __class_type_info **)sub_6EC5A0(v11 + 493);
if ( !v28 || v80 != v28 )
{
((void (__fastcall **)(float , __int64, __int64, __int64))((_QWORD *)v11 + 200LL))(
v11,
1972LL,
0xFFFFFFFFLL,
0xFFFFFFFFLL);
v29 = *((_QWORD *)v80 + 2);
if ( v29 )
{
if ( *(_DWORD *)(v29 + 16) == -1 )
v30 = 0x7FFF;
else
v30 = *(_WORD *)(v29 + 16) & 0x7FFF;
*((_DWORD )v11 + 493) = v30 | ((((_DWORD )(v29 + 16) >> 15) - ((_DWORD *)(v29 + 48) & 1)) << 15);
}
else
{
v11[493] = NAN;
}
}
}
LABEL_49:
LODWORD(v116) = 0;
*(_QWORD *)&v117[4] = 1098907648LL;
v117[20] = 1;
LODWORD(v94) = 0;
*(float *)v117 = dword_181688C;
*(_QWORD *)&v117[12] = 0xFFFFFFFFLL;
*((float *)&v116 + 1) = (float)(0.5 * dword_181688C) + 71.0;
v31 = (unsigned int *)sub_12CE730(
qword_19449F0,
(unsigned int)&EventVector,
(unsigned int)&v94,
16,
0,
0,
(__int64)&v116);
if ( v31
&& ((v32 = *(void **)((_QWORD *)v31 + 64LL), v33 = qword_19449F0 + 152, v32 != &off_6C3DF0) ? (v83 = (void *)(qword_19449F0 + 152), v72 = ((__int64 (__fastcall *)(float))v32)(10000.0), v33 = (__int64)v83, v34 = v72) : (v34 = v31[48]),
(v35 = sub_12DCD80(v33, v34, COERCE_DOUBLE(1176256512LL))) != 0) )
{
v36 = (__int64 (__fastcall **)())((_QWORD *)v11 + 200LL);
if ( v36 == sub_698D40 )
{
sub_6B4A90(v11 + 16, v11, 1981LL, 0xFFFFFFFFLL, 0xFFFFFFFFLL);
v37 = (float )off_17B22D8;
if ( !((_BYTE )off_17B22D8 + 61) && !((_BYTE *)off_17B22D8 + 60) )
{
v38 = (void (__fastcall )(__int64))((_QWORD *)off_17B22D8 + 4);
if ( v38 )
{
v81 = (float *)off_17B22D8;
v38(1LL);
v37 = v81;
}
}
v39 = v37[11];
if ( v39 > v11[330] )
{
v11[330] = v39;
*((_QWORD *)v11 + 164) = 0LL;
}
}
else
{
((void (__fastcall *)(float *, __int64, __int64, __int64))v36)(
v11,
1981LL,
0xFFFFFFFFLL,
0xFFFFFFFFLL);
}
_V_strncpy((char )v11 + 1981, v35, 18LL);
}
else
{
((void (__fastcall **)(float , __int64, __int64, __int64, double))((_QWORD *)v11 + 200LL))(
v11,
1981LL,
0xFFFFFFFFLL,
0xFFFFFFFFLL,
COERCE_DOUBLE(1176256512LL));
*((_BYTE *)v11 + 1981) = 0;
}
v40 = sub_814560(PlayerPawn);
v116 = *(__int64 (__fastcall ***)())v40;
*(_DWORD *)v117 = *(_DWORD *)(v40 + 8);
*((float *)&v116 + 1) = *((float )&v116 + 1) + 180.0;
((void (__fastcall **)(float *, __int64 *, __int64 (__fastcall **)(), _QWORD))((_QWORD )v11
+ 1184LL))(
v11,
&EventVector,
&v116,
0LL);
Event1 = ((__int64 (__fastcall **)(__int64, const char , _QWORD, _QWORD))((_QWORD *)qword_18F4020
+ 56LL))(
qword_18F4020,
“player_ping”,
0LL,
0LL);
Event2 = Event1;
if ( Event1 )
{
sub_6BC2E0(Event1, “userid”, PlayerPawn);
v43 = sub_126FF40(v11);
sub_6BC100(Event2, “entityid”, v43);
sub_7D3260(Event2, “x”, *(float *)&EventVector);
sub_7D3260(Event2, “y”, *((float *)&EventVector + 1));
sub_7D3260(Event2, “z”, v88);
sub_6EC9C0(Event2, “urgent”, ((unsigned __int8 )v11 + 1980));
((void (__fastcall **)(__int64, __int64, _QWORD))((_QWORD )qword_18F4020 + 64LL))(
qword_18F4020,
Event2,
0LL);
}
LABEL_63:
v82 = sub_B2ADD0((unsigned int *)(PlayerPawn[2] + 56LL)) + 6.0;
sub_810400(v11, sub_C42AF0, 0LL, 0LL, 0LL, 0.0);
sub_8106B0(v11, 0LL, v82);
return;
}
}
else if ( (_BYTE **)v117 == &v117[16] )
{
if ( v71 )
goto LABEL_116;
}
else if ( !(_QWORD )v117 || v71 )
{
goto LABEL_116;
}
((void (__fastcall **)(_QWORD *))(*g_pMemAlloc + 32LL))(g_pMemAlloc);
goto LABEL_116;
}
sub_D8D970(&v116);
v116 = &off_15ABCF0;
sub_D8F120(&v116, PlayerPawn);
sub_D8DA00(&v116);
sub_9DB900(&v102, 0LL, 0LL);
v106 = 3;
v104 |= 2u;
v102 = &off_15AE918;
v55 = sub_CB2370(PlayerPawn);
v104 |= 5u;
v107 = v55;
v56 = (_QWORD *)((unsigned __int64)lpsrc & 0xFFFFFFFFFFFFFFFCLL);
if ( ((unsigned __int8)lpsrc & 1) != 0 )
v56 = (_QWORD *)*v56;
v57 = sub_C3ABF0(27LL, 0LL);
*(__m128i *)(v57 + 24) = _mm_load_si128((const __m128i *)&xmmword_14331B0);
qmemcpy((void *)(v57 + 40), “on_cooldown”, 11);
if ( (_UNKNOWN *)v57 != &std::string::_Rep::_S_empty_rep_storage )
{
*(_DWORD *)(v57 + 16) = 0;
*(_QWORD *)v57 = 27LL;
*(_BYTE *)(v57 + 51) = 0;
}
v94 = (__int64 (__fastcall **)())(v57 + 24);
sub_110C186(v105, &v94, v56);
v58 = v94;
v59 = v94 - 3;
if ( v94 - 3 != (__int64 (__fastcall **)())&std::string::_Rep::_S_empty_rep_storage )
{
if ( &_pthread_key_create )
{
v73 = _InterlockedExchangeAdd((volatile signed __int32 *)v94 - 2, 0xFFFFFFFF);
}
else
{
v73 = *((_DWORD *)v94 - 2);
*((_DWORD )v94 - 2) = v73 - 1;
}
if ( v73 <= 0 )
operator delete(v59, (unsigned __int64)(v58 - 2) + 25);
}
sub_C683D0(&v102, “”);
sub_C683D0(&v102, “#Game_radio_location”);
sub_C683D0(&v102, “”);
sub_C683D0(&v102, “”);
v60 = qword_1818578;
v61 = qword_1903440;
v62 = *(void (__fastcall **)(__int64, _QWORD, _QWORD, __int64 (__fastcall ***)(), __int64, __int64 (__fastcall **)(), __int64))((_QWORD )qword_1903440 + 128LL);
((void (__fastcall **)(_QWORD *, __int64))(*qword_1920400 + 88LL))(qword_1920400, qword_1818578);
v62(v61, 0LL, 0LL, &v116, v60, &v102, 64LL);
v102 = &off_15AE878;
sub_AC4D30(&v102);
*(_DWORD *)&v117[8] = 0;
v116 = (__int64 (__fastcall **)())(&`vtable for’CRecipientFilter + 2);
if ( (int)v118 < 0 )
{
if ( (v118 & 0xC000000000000000LL) != 0 )
return;
v63 = *(_QWORD *)&v117[16];
}
else
{
v63 = *(_QWORD *)&v117[16];
v64 = HIDWORD(v118) & 0xC0000000;
if ( (int **)&v117[16] == v119 )
{
if ( !v64 )
goto LABEL_93;
return;
}
if ( v64 )
return;
}
if ( v63 )
{
LABEL_93:
((void (__fastcall **)(_QWORD *))(*g_pMemAlloc + 32LL))(g_pMemAlloc);
return;
}
}
}
}
}
}
}

Код выше является псевдокодом ida
Вот ассемблерный код:



if ( (unsigned __int8)sub_6F7C20(PlayerPawn, &v116, &v113, &v89) ) - на моменте вызова этой функции &v113 уже содержит какое-то значение, но как это возможно, если до этого в переменную не устанавливается никакое значение?