-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
philip015 added this to his cheat and it made aimbot SO MUCH better
credits: philip015 llama Ducari
C++:
void __cdecl ResolverBurteforce(struct_lag_record *m_pLagRecord, int m_iShotsMissed, float m_flGoalFeetYaw)
{
float desync_delta; // xmm0_4
float v4; // xmm1_4
float v5; // xmm1_4
float v6; // xmm1_4
float v7; // xmm1_4
float v8; // xmm1_4
float v9; // xmm1_4
desync_delta = m_pLagRecord->m_flYawModifier * 58.0;
switch ( m_iShotsMissed )
{
case 1:
v4 = m_flGoalFeetYaw + (desync_delta + desync_delta);
if ( v4 > 180.0 || v4 < -180.0 )
sub_39C6FCB6(COERCE_UNSIGNED_INT(v4 / 360.0) & FL_ONGROUND);
break;
case 2:
v5 = m_flGoalFeetYaw + (desync_delta * 0.5);
if ( v5 > 180.0 || v5 < -180.0 )
sub_39C6FCB6(COERCE_UNSIGNED_INT(v5 / 360.0) & FL_ONGROUND);
break;
case 4:
v6 = m_flGoalFeetYaw + (desync_delta * -0.5);
if ( v6 > 180.0 || v6 < -180.0 )
sub_39C6FCB6(COERCE_UNSIGNED_INT(v6 / 360.0) & FL_ONGROUND);
break;
case 5:
v8 = m_flGoalFeetYaw - (desync_delta + desync_delta);
if ( v8 > 180.0 || v8 < -180.0 )
sub_39C6FCB6(COERCE_UNSIGNED_INT(v8 / 360.0) & FL_ONGROUND);
break;
case 7:
v9 = m_flGoalFeetYaw + 120.0;
if ( (m_flGoalFeetYaw + 120.0) > 180.0 || v9 < -180.0 )
sub_39C6FCB6(COERCE_UNSIGNED_INT(v9 / 360.0) & FL_ONGROUND);
break;
case 8:
v7 = m_flGoalFeetYaw + -120.0;
if ( (m_flGoalFeetYaw + -120.0) > 180.0 || v7 < -180.0 )
sub_39C6FCB6(COERCE_UNSIGNED_INT(v7 / 360.0) & FL_ONGROUND);
break;
default:
return;
}
}
C++:
// write access to const memory has been detected, the output may be wrong!
FuncInfo *__usercall Resolver@<eax>(double st7_0@<st0>, double a2@<st1>, double a3@<st2>, double a4@<st4>, double a5@<st3>, struct_m_pAnimationSystem *m_pAnimRecordSystem, int *m_pPlayer)
{
int v7; // eax
char *v8; // ecx
FuncInfo *result; // eax
_DWORD *v10; // eax
int v11; // eax
int v12; // ebx
int *v13; // eax
int *v14; // eax
int *v15; // eax
int *v16; // eax
int *v17; // eax
int *v18; // eax
int v19; // ecx
int v20; // edx
int v21; // eax
int *v22; // edi
char *v23; // esi
int v24; // eax
char v25; // al
int v26; // edx
struct_m_pAnimstate *v27; // ecx
struct_m_pAnimationSystem *AnimLayer; // esi
struct_m_pAnimstate *v29; // eax
float m_fDuckAmount; // xmm0_4
double flYawModifier; // xmm1_8
float v32; // xmm0_4
unsigned int v33; // ebx
int v34; // ecx
char *v35; // esi
char *v36; // ST4C_4
int v37; // ebx
int v38; // ecx
int v39; // edx
int v40; // ST28_4
_DWORD *v41; // esi
float v42; // xmm0_4
int v43; // esi
float v44; // ecx
_DWORD *v45; // eax
int v46; // ecx
int v47; // edx
int v48; // ebx
float *v49; // eax
_DWORD *v50; // eax
int v51; // ebx
int v52; // eax
int v53; // ebx
float DuckAmount; // xmm1_4
double YawModifier; // xmm0_8
float v56; // xmm0_4
_BYTE *v57; // eax
float v58; // ST4C_4
int v59; // eax
float *v60; // ecx
signed int v61; // eax
int v62; // esi
float v63; // ST30_4
float v64; // ST28_4
float v65; // ST30_4
const void *v66; // eax
int v67; // ebx
int v68; // ST30_4
int v69; // edx
_DWORD *v70; // esi
int *v71; // eax
int v72; // ecx
int v73; // edx
int v74; // eax
int v75; // eax
_DWORD *v76; // eax
_DWORD *v77; // eax
int v78; // esi
int v79; // esi
int v80; // esi
int v81; // esi
_DWORD *v82; // eax
signed int v83; // esi
signed int v84; // eax
int v85; // ecx
int v86; // eax
float v87; // edx
int v88; // edi
int v89; // eax
char *v90; // edi
signed int v91; // eax
struct_m_pAnimationSystem *m_pAnimationSystem; // esi
float v93; // xmm0_4
float v94; // xmm2_4
__m128 v95; // xmm0
__m128 v96; // xmm3
__m128 v97; // xmm3
float v98; // ST30_4
__m128 v99; // xmm0
double index; // ST18_8
double v101; // st7
int m_flEyeYaw; // xmm1_4
bool v103; // bl
float m_flPitch; // xmm0_4
unsigned int v105; // eax
float v106; // xmm2_4
__m128 v107; // xmm3
__m128 v108; // xmm2
__m128 v109; // xmm2
int v110; // ecx
signed int v111; // eax
float v112; // xmm0_4
int v113; // ecx
struct_m_pAnimstate *m_pAnimstate; // [esp+20h] [ebp-57Ch]
char *m_pAnimState; // [esp+24h] [ebp-578h]
float m_pAnimstate_8; // [esp+28h] [ebp-574h]
struct_m_pAnnimState *m_pAnnimState; // [esp+2Ch] [ebp-570h]
char v118; // [esp+30h] [ebp-56Ch]
unsigned int v119; // [esp+30h] [ebp-56Ch]
float v120; // [esp+30h] [ebp-56Ch]
char v121; // [esp+40h] [ebp-55Ch]
int v122; // [esp+44h] [ebp-558h]
signed int v123; // [esp+48h] [ebp-554h]
int v124; // [esp+50h] [ebp-54Ch]
float v125; // [esp+54h] [ebp-548h]
int v126; // [esp+58h] [ebp-544h]
int v127; // [esp+5Ch] [ebp-540h]
unsigned int v128; // [esp+60h] [ebp-53Ch]
int v129; // [esp+64h] [ebp-538h]
float *v130; // [esp+68h] [ebp-534h]
int v131; // [esp+6Ch] [ebp-530h]
int v132; // [esp+70h] [ebp-52Ch]
_BYTE *v133; // [esp+74h] [ebp-528h]
unsigned int v134; // [esp+78h] [ebp-524h]
float v135; // [esp+7Ch] [ebp-520h]
float v136; // [esp+80h] [ebp-51Ch]
unsigned int v137; // [esp+84h] [ebp-518h]
float v138; // [esp+88h] [ebp-514h]
float v139; // [esp+8Ch] [ebp-510h]
float v140; // [esp+90h] [ebp-50Ch]
float v141; // [esp+94h] [ebp-508h]
float v142; // [esp+98h] [ebp-504h]
int v143; // [esp+9Ch] [ebp-500h]
int v144; // [esp+A0h] [ebp-4FCh]
char v145; // [esp+1D4h] [ebp-3C8h]
float v146; // [esp+1F0h] [ebp-3ACh]
int v147; // [esp+1F4h] [ebp-3A8h]
int v148; // [esp+1F8h] [ebp-3A4h]
float v149; // [esp+1FCh] [ebp-3A0h]
int v150; // [esp+200h] [ebp-39Ch]
int v151; // [esp+204h] [ebp-398h]
int v152; // [esp+208h] [ebp-394h]
int v153; // [esp+20Ch] [ebp-390h]
int v154; // [esp+210h] [ebp-38Ch]
int v155; // [esp+214h] [ebp-388h]
int v156; // [esp+218h] [ebp-384h]
int v157; // [esp+21Ch] [ebp-380h]
int v158; // [esp+220h] [ebp-37Ch]
int v159; // [esp+224h] [ebp-378h]
int v160; // [esp+228h] [ebp-374h]
int v161; // [esp+22Ch] [ebp-370h]
int v162; // [esp+230h] [ebp-36Ch]
int v163; // [esp+234h] [ebp-368h]
int v164; // [esp+238h] [ebp-364h]
char v165; // [esp+23Ch] [ebp-360h]
int v166; // [esp+514h] [ebp-88h]
int v167; // [esp+518h] [ebp-84h]
int v168; // [esp+51Ch] [ebp-80h]
float v169; // [esp+520h] [ebp-7Ch]
int v170; // [esp+524h] [ebp-78h]
int v171; // [esp+528h] [ebp-74h]
char v172; // [esp+52Ch] [ebp-70h]
if ( *(*__readfsdword(0x2Cu) + 4) < -2147483606 )
sub_39C4D8E1(&dword_39D83A00);
v7 = (*(m_pPlayer[2] + 40))(m_pPlayer + 2, st7_0, a2, a3, a5, a4);
v8 = ResolverData(Index, v7);
result = m_pPlayer[3648];
if ( !result )
return result;
m_pAnnimState = m_pPlayer[3648];
m_pAnimRecordSystem->pad_0038_ = 0;
v146 = 0.0;
v142 = (m_pAnimRecordSystem->m_pOwner * m_pAnimRecordSystem->m_pOwner)
+ ((m_pAnimRecordSystem->m_flCycle * m_pAnimRecordSystem->m_flCycle)
+ (m_pAnimRecordSystem->m_flPlaybackRate * m_pAnimRecordSystem->m_flPlaybackRate));
v146 = fsqrt(v142);
if ( v146 > 200.0 && m_pAnimRecordSystem->m_flLeanAmount & 1 )
*(v8 + 739) = 0;
m_pAnimState = v8;
v10 = sub_39B16360(m_pPlayer);
v11 = sub_39B7F660(v10);
v12 = v11;
if ( v11
&& *sub_39B277F0(v11) > *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[0x34]
&& *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[0x38] >= *sub_39B277F0(v12) )
{
m_pAnimRecordSystem->pad_0038_ = 1;
}
memset(&v146, 0, 0x39C);
v167 = MEMORY[0x59449AE0];
v168 = MEMORY[0x59449AE4];
v13 = sub_39B27930(m_pPlayer);
v146 = *v13;
v147 = v13[1];
v148 = v13[2];
v14 = sub_39B279E0(m_pPlayer);
v149 = *v14;
v150 = v14[1];
v151 = v14[2];
v15 = sub_39B1EE00(m_pPlayer);
v152 = *v15;
v153 = v15[1];
v154 = v15[2];
v16 = sub_39B27A50(m_pPlayer);
v155 = *v16;
v156 = v16[1];
v157 = v16[2];
v161 = *sub_39B1CE30(m_pPlayer);
v162 = *sub_39B27AB0(m_pPlayer);
v163 = *sub_39B24860(m_pPlayer);
v164 = *sub_39B27B10(m_pPlayer);
sub_39C6F9F2(&v165, m_pPlayer[2660], 0x2D8);
v17 = sub_39B27BF0(m_pPlayer);
v158 = *v17;
v159 = v17[1];
v160 = v17[2];
v18 = (*(*m_pPlayer + 44))(m_pPlayer);
v19 = *v18;
v20 = v18[1];
v21 = v18[2];
v169 = *&v19;
v170 = v20;
v171 = v21;
qmemcpy(&v172, m_flPoseParameter(m_pPlayer), 0x60u);
v22 = m_pPlayer;
LOBYTE(v166) = MEMORY[0x2521A0C8];
sub_39C474A0(&v142);
v118 = v145;
if ( v145 )
{
v23 = m_pAnimState;
LABEL_17:
v26 = 0;
goto LABEL_18;
}
v23 = m_pAnimState;
if ( !sub_39C47250(m_pPlayer) )
goto LABEL_17;
Player();
st7_0 = sub_39C470E0(v24);
if ( !v25 || m_pAnimRecordSystem->pad1 < 2 )
goto LABEL_17;
v26 = sub_39B14710(MEMORY[0x35B3C7AC]);
LOBYTE(v26) = v26 ^ 1;
LABEL_18:
if ( *&m_pAnimRecordSystem->m_flWeight[4] == 0.0 && *&m_pAnimRecordSystem->m_flWeight[0xC] < 0.000001 )
{
m_pAnimRecordSystem->m_flPlaybackRate = 0.0;
m_pAnimRecordSystem->m_flCycle = 0.0;
m_pAnimRecordSystem->m_pOwner = 0.0;
}
v122 = v12;
if ( *(v23 + 0xE1) < 2u
|| (v27 = *(*(v23 + 0xDE) + 4 * ((*(v23 + 0xE0) + 1) & (*(v23 + 0xDF) - 1))), v27->gap24[0])
|| !v27
|| (v123 = m_pAnimRecordSystem->pad1, m_pAnimRecordSystem->pad1 > 0x12) )
{
AnimLayer = m_pAnimRecordSystem;
v121 = 0;
v123 = 1;
v29 = 0;
LABEL_24:
AnimLayer->m_flFeetCycle[1] = 1;
goto LABEL_25;
}
AnimLayer = m_pAnimRecordSystem;
v29 = v27;
if ( !m_pAnimRecordSystem->pad_0038_ && !v118 )
{
v29 = v27;
if ( v27->pad_0038__ )
{
v26 = 0;
m_pAnimRecordSystem->m_flFeetCycle[1] = 1;
}
}
v121 = 1;
if ( v118 || v26 )
goto LABEL_26;
if ( *v29->gap94 >= 2 )
goto LABEL_24;
LABEL_25:
v26 = 0;
LABEL_26:
m_fDuckAmount = m_pAnnimState->m_fDuckAmount;
flYawModifier = fmaxf(0.0, fminf(m_pAnnimState->m_flFeetSpeedForwardsOrSideWays, 1.0))
* (m_pAnnimState->m_flStopToFullRunningFraction * -0.30000001 + -0.19999999)
+ 1.0;
if ( m_fDuckAmount > 0.0 )
flYawModifier = flYawModifier
+ (0.5 - flYawModifier)
* (m_fDuckAmount * fmaxf(0.0, fminf(1.0, m_pAnnimState->m_flFeetSpeedUnknownForwardOrSideways)));
v32 = flYawModifier;
v131 = v26;
m_pAnimstate = v29;
*&AnimLayer->m_flPitch[8] = v32;
if ( v26 )
{
ResolverSelection(st7_0, a2, a3, a5, a4, m_pPlayer, AnimLayer);
v29 = m_pAnimstate;
}
v33 = 0;
v133 = &v29->gap9A[0xA];
v124 = v123 - 1;
do
{
v34 = v33;
v128 = v33;
if ( v33 > 5 )
v34 = v33 + 1;
v134 = v33 + 1;
v119 = v34;
v129 = *&AnimLayer->pad6[8];
if ( !v121 )
{
m_pAnnimState->m_flFeetCycle = *&AnimLayer->m_flWeight[0x10];// m_flFeetCycle
//
m_pAnnimState->m_flFeetYawRate = *&AnimLayer->m_flWeight[4];// m_flFeetYawRate
//
v42 = *&AnimLayer->m_nInvalidatePhysicsBits[0x38];
if ( v123 <= 0 )
goto LABEL_60;
LABEL_37:
v43 = 0;
v130 = (v129 + 0x1E88 * v128 + 0x1BAC);
while ( 1 )
{
MEMORY[0x59449AE0] = LODWORD(v42);
m_pAnimstate_8 = v42;
MEMORY[0x59449AE4] = MEMORY[0x59449AF0];
v45 = sub_39B27930(v22);
*v45 = *m_pAnimRecordSystem->m_nInvalidatePhysicsBits;
v45[1] = *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[4];
v45[2] = *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[8];
v46 = *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[4];
v47 = *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[8];
v142 = *m_pAnimRecordSystem->m_nInvalidatePhysicsBits;
v143 = v46;
v144 = v47;
MEMORY[0x246FF010](m_pPlayer, &v142);
v48 = *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[0x40];
*sub_39B27B10(m_pPlayer) = v48;
v49 = sub_39B27A50(m_pPlayer);
*v49 = m_pAnimRecordSystem->m_flPlaybackRate;
v49[1] = m_pAnimRecordSystem->m_flCycle;
v49[2] = m_pAnimRecordSystem->m_pOwner;
v50 = sub_39B27BF0(m_pPlayer);
*v50 = m_pAnimRecordSystem->m_flEyeYaw;
v50[1] = *m_pAnimRecordSystem->m_flPitch;
v50[2] = *&m_pAnimRecordSystem->m_flPitch[4];
v51 = *&m_pAnimRecordSystem->m_flLeanAmount;
v22 = m_pPlayer;
*sub_39B1CE30(m_pPlayer) = v51;
if ( !v121 )
goto LABEL_49;
v52 = m_pAnimstate->m_flLeanAmount;
if ( v52 & 1 )
goto LABEL_49;
if ( !v43 )
break;
if ( v43 < v124 )
goto LABEL_48;
LABEL_49:
DuckAmount = m_pAnnimState->m_fDuckAmount;
YawModifier = fmaxf(0.0, fminf(m_pAnnimState->m_flFeetSpeedForwardsOrSideWays, 1.0))
* (m_pAnnimState->m_flStopToFullRunningFraction * -0.30000001 + -0.19999999)
+ 1.0;
if ( DuckAmount > 0.0 )
YawModifier = YawModifier
+ (0.5 - YawModifier)
* (DuckAmount * fmaxf(0.0, fminf(1.0, m_pAnnimState->m_flFeetSpeedUnknownForwardOrSideways)));
v56 = YawModifier;
*&m_pAnimRecordSystem->m_flPitch[8] = v56;
v57 = sub_39B27AB0(m_pPlayer);
v57[1] &= 0xEFu;
if ( (v131 & (v119 != 0 && v43 < v124)) == 1
&& (!v122 || m_pAnimstate_8 > *sub_39B277F0(v122) || !m_pAnimRecordSystem->pad_0038_) )
{
ResolverBurteforce(m_pAnimRecordSystem, v119, *m_pAnimRecordSystem->m_flPitch);
v138 = st7_0;
v58 = v138;
v59 = sub_39B27BF0(m_pPlayer);
v60 = v130;
*(v59 + 4) = v58;
*v60 = v58;
}
m_pAnnimState->m_iLastClientSideAnimationUpdateFramecount = MEMORY[0x59449AD4] - 1;
m_pAnimState[0x351] = 1;
dword_39DC05F0 = m_pAnimRecordSystem;
(*(*m_pPlayer + 0x37C))(m_pPlayer);
dword_39DC05F0 = 0;
if ( !((v43 >= v124) | (v131 ^ 1)) )
{
if ( v119 > 8 || (v61 = 419, !_bittest(&v61, v119)) )
{
if ( !v122 || m_pAnimstate_8 > *sub_39B277F0(v122) || !m_pAnimRecordSystem->pad_0038_ )
m_pAnnimState->m_flGoalFeetYaw = *v130;
}
}
++v43;
v42 = m_pAnimstate_8 + MEMORY[0x59449AF0];
if ( v123 == v43 )
goto LABEL_60;
}
v125 = m_pAnimstate->pad_0038;
v126 = m_pAnimstate->flMinPitch;
v127 = m_pAnimstate->flMaxPitch;
v139 = m_pAnimstate->m_flPlaybackRate;
v140 = m_pAnimstate->m_flCycle;
v44 = m_pAnimstate->m_pOwner;
v132 = v52;
v141 = v44;
if ( v124 <= 0 )
goto LABEL_49;
LABEL_48:
sub_39B50B20(st7_0, m_pPlayer, &v125, &v139, &v132, m_pAnimRecordSystem->m_flLeanAmount & 1);
v53 = v132;
*sub_39B1CE30(m_pPlayer) = v53;
goto LABEL_49;
}
v35 = m_pAnimstate->funcinfo0.pUnwindMap;
v36 = m_pAnimstate->funcinfo0.pUnwindMap;
sub_39C6F9F2(v22[2660], v133, 728);
v37 = 7816 * v33;
v38 = *&v35[v37 + 6980];
v39 = *&v35[v37 + 6984];
v142 = *&v35[v37 + 6976];
v143 = v38;
v144 = v39;
v40 = &v35[v37];
MEMORY[0x246FF1D0](v22, &v142);
sub_39C479A0(v22, &v35[v37 + 6988]);
v41 = v22[3648];
sub_39C6F9F2(v22[3648], v40, 176);
v41[44] = *&v36[v37 + 0xB0];
v41[45] = *&v36[v37 + 0xB4];
v41[46] = *&v36[v37 + 184];
v41[47] = *&v36[v37 + 0xBC];
v41[48] = *&v36[v37 + 0xC0];
v41[49] = *&v36[v37 + 0xC4];
v41[50] = *&v36[v37 + 200];
v41[51] = *&v36[v37 + 204];
v41[52] = *&v36[v37 + 208];
v41[53] = *&v36[v37 + 212];
v41[54] = *&v36[v37 + 216];
v41[55] = *&v36[v37 + 220];
v41[56] = *&v36[v37 + 224];
v41[57] = *&v36[v37 + 0xE4];
v41[58] = *&v36[v37 + 0xE8];
sub_39C6F9F2((v41 + 59), &v36[v37 + 236], 596);
m_pAnnimState->m_flFeetCycle = m_pAnimstate->dword220;
m_pAnnimState->m_flFeetYawRate = m_pAnimstate->m_flWeightDeltaRate;
v42 = *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[52] + MEMORY[0x59449AF0];
if ( v123 > 0 )
goto LABEL_37;
LABEL_60:
v62 = *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[60];
v63 = *(v22[3648] + 284);
*(m_flPoseParameter(v22) + 0x20) = v62;
v64 = (1.0 - *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[0x3C]) * (1.0 - v63);
*(m_flPoseParameter(v22) + 0x24) = v64;
v65 = (1.0 - *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[0x3C]) * v63;
*(m_flPoseParameter(v22) + 0x28) = v65;
v66 = m_flPoseParameter(v22);
v67 = v129;
v68 = 7816 * v128;
v69 = v129 + 7816 * v128;
qmemcpy((v69 + 6988), v66, 0x60u);
v22 = m_pPlayer;
v70 = m_pPlayer[3648];
sub_39C6F9F2(v69, m_pPlayer[3648], 176);
*(v67 + v68 + 176) = v70[44];
*(v67 + v68 + 0xB4) = v70[45];
*(v67 + v68 + 0xB8) = v70[46];
*(v67 + v68 + 188) = v70[47];
*(v67 + v68 + 192) = v70[48];
*(v67 + v68 + 196) = v70[49];
*(v67 + v68 + 200) = v70[50];
*(v67 + v68 + 204) = v70[51];
*(v67 + v68 + 208) = v70[52];
*(v67 + v68 + 212) = v70[53];
*(v67 + v68 + 216) = v70[54];
*(v67 + v68 + 220) = v70[55];
*(v67 + v68 + 224) = v70[56];
*(v67 + v68 + 228) = v70[57];
*(v67 + v68 + 232) = v70[58];
sub_39C6F9F2(v67 + v68 + 236, (v70 + 59), 596);
v71 = (*(*v22 + 44))(v22);
v72 = *v71;
v73 = v71[1];
v74 = v71[2];
*(v67 + v68 + 6976) = v72;
*(v67 + v68 + 6980) = v73;
*(v67 + v68 + 6984) = v74;
sub_39C6F9F2(v67 + v68 + 7088, m_pPlayer[2660], 728);
MEMORY[0x59449AE0] = v167;
MEMORY[0x59449AE4] = v168;
v75 = sub_39B27930(m_pPlayer);
*v75 = v146;
*(v75 + 4) = v147;
*(v75 + 8) = v148;
v76 = sub_39B1EE00(m_pPlayer);
*v76 = v152;
v76[1] = v153;
v76[2] = v154;
v77 = sub_39B27A50(m_pPlayer);
*v77 = v155;
v77[1] = v156;
v77[2] = v157;
v78 = v161;
*sub_39B1CE30(m_pPlayer) = v78;
v79 = v162;
*sub_39B27AB0(m_pPlayer) = v79;
v80 = v163;
*sub_39B24860(m_pPlayer) = v80;
v81 = v164;
*sub_39B27B10(m_pPlayer) = v81;
AnimLayer = m_pAnimRecordSystem;
v142 = v149;
v143 = v150;
v144 = v151;
MEMORY[0x246FF010](m_pPlayer, &v142);
sub_39C47970(&v165);
v82 = sub_39B27BF0(m_pPlayer);
*v82 = v158;
v82[1] = v159;
v82[2] = v160;
v142 = v169;
v143 = v170;
v144 = v171;
MEMORY[0x246FF1D0](m_pPlayer, &v142);
sub_39C479A0(m_pPlayer, &v172);
v33 = v134;
}
while ( v134 != 8 );
v83 = 2;
v84 = 2;
if ( !m_pAnimRecordSystem->pad_0038_ )
v84 = *(m_pAnimState + 0x2FA);
v85 = 7816 * *&m_pAnimState[0x1C * v84 + 0xB9C];
v86 = *&m_pAnimRecordSystem->pad6[8];
v87 = *(v86 + v85 + 0x1B40);
v88 = *(v86 + v85 + 0x1B44);
v89 = *(v86 + v85 + 0x1B48);
v142 = v87;
v143 = v88;
v90 = m_pAnimState;
v144 = v89;
MEMORY[0x246FF1D0](m_pPlayer, &v142);
v91 = 2;
if ( !m_pAnimRecordSystem->pad_0038_ )
v91 = *(m_pAnimState + 0x2FA);
sub_39C479A0(m_pPlayer, (*&m_pAnimRecordSystem->pad6[8] + 0x1E88 * *&m_pAnimState[0x1C * v91 + 0xB9C] + 0x1B4C));
MEMORY[0x2521A0C8] = v166;
if ( !m_pAnimRecordSystem->pad_0038_ )
v83 = *(m_pAnimState + 0x2FA);
m_pAnimRecordSystem->m_flFeetYawRate = v83;
m_pAnimationSystem = m_pAnimRecordSystem;
result = sub_39C474A0(&v142);
if ( !v145 )
{
v93 = m_pAnimRecordSystem->m_flPlaybackRate;
v94 = 0.0;
if ( m_pAnimRecordSystem->m_pOwner != 0.0 || v93 != 0.0 )
{
sub_39C6FBFC(
COERCE_UNSIGNED_INT64(m_pAnimRecordSystem->m_flCycle),
COERCE_UNSIGNED_INT64(m_pAnimRecordSystem->m_flCycle) >> 32,
*&v93,
*&v93 >> 0x20);
*&v137 = st7_0;
v95 = v137;
v95.m128_f32[0] = (*&v137 * 180.0) / 3.1415927;
v96.m128_f32[0] = (*&v137 * 180.0) / 3.1415927;
v97 = _mm_cmplt_ss(v96, 0i64);
LODWORD(v98) = *&_mm_andnot_ps(v97, v95) | COERCE_UNSIGNED_INT(v95.m128_f32[0] + 360.0) & v97.m128_i32[0];
v99 = _mm_mul_ps(*&m_pAnimRecordSystem->m_flPlaybackRate, *&m_pAnimRecordSystem->m_flPlaybackRate);
index = fsqrt(COERCE_FLOAT(_mm_shuffle_ps(v99, v99, 0xE5)) + v99.m128_f32[0]);
sub_39C6FBFC(
COERCE_UNSIGNED_INT64(COERCE_FLOAT(LODWORD(m_pAnimRecordSystem->m_pOwner) ^ xmmword_39C701F0)),
COERCE_UNSIGNED_INT64(COERCE_FLOAT(LODWORD(m_pAnimRecordSystem->m_pOwner) ^ xmmword_39C701F0)) >> 32,
SLODWORD(index),
SHIDWORD(index));
v94 = v98;
}
v120 = v94;
v101 = sub_39C6FC32(COERCE_UNSIGNED_INT64((v94 / 360.0) + 0.5), COERCE_UNSIGNED_INT64((v94 / 360.0) + 0.5) >> 32);
v136 = v101;
m_flEyeYaw = 0;
if ( v121 )
{
if ( m_pAnimRecordSystem->pad6[4] )
{
if ( !m_pAnimRecordSystem->m_flFeetCycle[1] )
{
if ( LOBYTE(m_pAnimstate->funcinfo0.maxState) )
{
if ( !m_pAnimstate->pad4 && !m_pAnimRecordSystem->pad_0038_ )
{
v142 = 0.0;
v125 = (m_pAnimRecordSystem->m_pOwner * m_pAnimRecordSystem->m_pOwner)
+ ((m_pAnimRecordSystem->m_flCycle * m_pAnimRecordSystem->m_flCycle)
+ (m_pAnimRecordSystem->m_flPlaybackRate * m_pAnimRecordSystem->m_flPlaybackRate));
v142 = fsqrt(v125);
if ( v142 > 0.1 )
{
v142 = 0.0;
v125 = (m_pAnimstate->m_pOwner * m_pAnimstate->m_pOwner)
+ ((m_pAnimstate->m_flCycle * m_pAnimstate->m_flCycle)
+ (m_pAnimstate->m_flPlaybackRate * m_pAnimstate->m_flPlaybackRate));
v142 = fsqrt(v125);
if ( v142 > 0.1
&& m_pAnimRecordSystem->m_flLeanAmount & 1
&& m_pAnimstate->m_flLeanAmount & 1
&& (*&m_pAnimRecordSystem->m_flWeight[4] >= m_pAnimstate->m_flWeightDeltaRate
&& *&m_pAnimRecordSystem->m_flWeight[0xC] >= m_pAnimstate->m_flCycle_
|| !*&m_pAnimState[0x1C * m_pAnimRecordSystem->m_flFeetYawRate + 0xB9C]) )
{
v106 = (v94 - (v136 * 360.0)) - *m_pAnimRecordSystem->m_flPitch;
if ( v106 > 180.0 || v106 < -180.0 )
{
sub_39C6FCB6(COERCE_UNSIGNED_INT(v106 / 360.0) & FL_ONGROUND);
v107 = 0x43B40000u;
v135 = v101;
v108.m128_f32[0] = v120;
v107.m128_f32[0] = 360.0 * v135;
v109 = _mm_cmplt_ss(v108, 0i64);
v106 = v120
+ COERCE_FLOAT(*&_mm_andnot_ps(v109, _mm_xor_ps(xmmword_39C701F0, v107)) | COERCE_UNSIGNED_INT(360.0 * v135) & v109.m128_i32[0]);
}
m_pAnimationSystem = m_pAnimRecordSystem;
v90 = m_pAnimState;
if ( (180.0 - ((*&m_pAnimRecordSystem->m_flPitch[8] * 58.0) + 4.0)) >= COERCE_FLOAT(LODWORD(v106) & FL_ONGROUND)
&& *&m_pAnimRecordSystem->m_nInvalidatePhysicsBits[0x3C] < 0.1
&& m_pAnimstate->m_iLastClientSideAnimationUpdateFramecount < 0.1 )
{
v110 = *&m_pAnimRecordSystem->pad6[8];
v111 = 0;
if ( m_pAnimRecordSystem->m_nSequence == *(v110 + 54344) )
{
v112 = 3.4028235e38;
if ( COERCE_FLOAT(COERCE_UNSIGNED_INT(*&m_pAnimRecordSystem->m_flWeight[0x10] - *(v110 + 0xD45C)) & FL_ONGROUND) < 3.4028235e38 )
{
v111 = 1;
LODWORD(v112) = COERCE_UNSIGNED_INT(*&m_pAnimRecordSystem->m_flWeight[0x10] - *(v110 + 0xD45C)) & FL_ONGROUND;
}
}
else
{
v112 = 3.4028235e38;
}
v113 = *&m_pAnimRecordSystem->pad6[8];
if ( m_pAnimRecordSystem->m_nSequence == *(v113 + 62160)
&& v112 > COERCE_FLOAT(COERCE_UNSIGNED_INT(*&m_pAnimRecordSystem->m_flWeight[0x10] - *(v113 + 62180)) & FL_ONGROUND) )
{
v111 = 5;
LODWORD(v112) = COERCE_UNSIGNED_INT(*&m_pAnimRecordSystem->m_flWeight[0x10] - *(v113 + 62180)) & FL_ONGROUND;
}
v90 = m_pAnimState;
m_pAnimationSystem = m_pAnimRecordSystem;
if ( v112 < 3.4028235e38 )
*&m_pAnimState[28 * m_pAnimRecordSystem->m_flFeetYawRate + 2976] = v111;
}
}
}
}
}
}
}
m_flEyeYaw = m_pAnimstate->m_flEyeYaw;
}
v103 = 0;
LODWORD(m_flPitch) = m_pAnimationSystem->m_flEyeYaw & FL_ONGROUND;
if ( m_flPitch >= 60.0
|| COERCE_FLOAT(m_flEyeYaw & FL_ONGROUND) >= 60.0
|| (v105 = m_pAnimationSystem->pad1 - 4, v103 = v105 > 0xE, v105 < 0xF)
|| v121 != 1 )
{
LABEL_81:
if ( m_flPitch < 60.0 )
goto LABEL_83;
}
else
{
if ( m_pAnimstate->pad_0038__ )
{
v103 = m_pAnimationSystem->pad_0038_ == 0;
goto LABEL_81;
}
v103 = 1;
if ( m_flPitch < 60.0 )
{
LABEL_83:
result = GetSequenceActivity(m_pPlayer, m_pAnimationSystem->m_nSequence);
if ( result == 979 )
{
result = &m_pAnimstate->funcinfo0;
if ( m_pAnimationSystem->m_nSequence_ != m_pAnimstate->m_nSequence_ )
{
v142 = 0.0;
v125 = (m_pAnimationSystem->m_pOwner * m_pAnimationSystem->m_pOwner)
+ ((m_pAnimationSystem->m_flCycle * m_pAnimationSystem->m_flCycle)
+ (m_pAnimationSystem->m_flPlaybackRate * m_pAnimationSystem->m_flPlaybackRate));
v142 = fsqrt(v125);
if ( v142 <= 0.1 )
{
if ( m_pAnimationSystem->m_flLeanAmount & 1 )
{
if ( m_pAnimationSystem->m_flPrevCycle == 0.0 && m_pAnimationSystem->m_nSequence_ == 0.0 )
{
result = m_pAnimationSystem->m_flFeetYawRate;
if ( !*&v90[28 * result + 2980] )
{
m_pAnimationSystem->dwordA0 = 1;
if ( result == 2 )
*(v90 + 0x2F5) = 5;
}
}
}
}
}
}
if ( v90[3072] )
{
if ( *(v90 + 744) != -1 )
{
v142 = 0.0;
v125 = (m_pAnimationSystem->m_pOwner * m_pAnimationSystem->m_pOwner)
+ ((m_pAnimationSystem->m_flCycle * m_pAnimationSystem->m_flCycle)
+ (m_pAnimationSystem->m_flPlaybackRate * m_pAnimationSystem->m_flPlaybackRate));
v142 = fsqrt(v125);
if ( v142 > 0.1 && !m_pAnimationSystem->pad_0038_ )
{
result = *(v90 + 744);
*&v90[0x1C * m_pAnimationSystem->m_flFeetYawRate + 2972] = result;
}
}
}
if ( v90[0xC01] )
{
result = *&v90[0x1C * m_pAnimationSystem->m_flFeetYawRate + 2972];
if ( result )
{
result = (4 * (result < 4) + 1);
*(v90 + 757) = result;
}
}
if ( v90[3072] )
{
if ( v103 )
{
result = m_pAnimationSystem->m_flFeetYawRate;
*&v90[28 * result + 2972] = 0;
}
}
return result;
}
}
*(v90 + 219) = MEMORY[0x59449AE0];
goto LABEL_83;
}
return result;
}
credits: philip015 llama Ducari