C++ N3m3sis antiaim desync (somewhat reversed)

Пользователь
Статус
Оффлайн
Регистрация
3 Янв 2020
Сообщения
81
Реакции[?]
96
Поинты[?]
0
yeah its not fully reversed and stuff could be wrong XD
not my dump friend sent me the posudo code, so i just reversed what i could with current posudo code
C++:
void __usercall AntiAim::Fake(int a1@<edx>, int a2@<ecx>, double a3@<st0>, float angle, double st6_0@<st1>, double st5_0@<st2>, double a7@<st3>, double a8@<st5>, double a9@<st4>, double a10@<st6>, double a11@<st7>, int a5, int a6)
{
  // [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]

  fucklol = *(m_nPlayerAnimationState + a2 - 20);//idk what a2 is atm

  if (fucklol && AntiAim::CanRun(a2, a1) )
  {
    (*(*EntityListPointer + 16))(EntityListPointer, *(m_hActiveWeapon + v14));
    v15 = MaxDesyncDeltaPointer->ShotTime;
    v16 = *(g_pClientState + 0x4D2C);//g_pClientState->nLastCommandAck //0x4D2C
    v17 = v15 > v16 && v15 <= v16 + *(g_pClientState + 0x4D30) + 1;//g_pClientState->iCommandAck //0x4D30
    if ( *(a1 + 4) != v15 )//i really wanna know what a1 is XD
    {
      if ( !a5 )
      {
        m_cmd->viewangles.y = angle; //m128_f32[0], tho idk why tf posudo = viewwangle.x
        if (angle < -180.0 || angle > 180.0 )
        {
          v19 = LODWORD(angle);
          v19.m128_f32[0] = angle / 360.0;
          v20 = sub_33F0BC10(v19)->viewangle.y;
          Nemtech::MathLib::RoundF(v20);
          __asm
          {
            fmul    ds:dword_3400EB10
            fstp    [ebp+var_8]
          }

          if (angle >= 0.0 )
            v21 = angle - v38;
          else
            v21 = angle + v38;

          *(a1 + 16) = v21;
          return;
        }
        goto LABEL_39;
      }

      v22 = ((*(/*fucklol + 0x11C*/) * 20.0) + 30.0) * g_pGlobalVarBase->interval_per_tick;

      if ( a5 == 1 )//a5 looks like the m_side crap
        m_flMaxDelta = 60.0;
      else
        m_flMaxDelta = -60.0;

      //yeah idk
      v39 = m_flMaxDelta;
      v34 = m_flMaxDelta;//prob fucked something here idk

      if ( !v17 )
      {
        if (m_flMaxDelta <= (*&g_pConfig::DesyncClamp + v22) )
        {
          if ( (COERCE_FLOAT(g_pConfig::DesyncClamp ^ NegatedMask) - v22) > v23 )//COERCE_FLOAT is *((float*)&var)
              m_flMaxDelta = COERCE_FLOAT(g_pConfig::DesyncClamp ^ NegatedMask) - v22;
        }
        else
        {
           m_flMaxDelta = *&g_pConfig::DesyncClamp + v22;
        }
        v39 = m_flMaxDelta;
        v34 = m_flMaxDelta;
      }

      if ( !a6 )
      {
        m_cmd->viewangles.y = angle;

        if (angle < -180.0 || angle > 180.0 )
        {
          //another code not being used wtf
          v31 = LODWORD(angle);
          v31.m128_f32[0] = angle / 360.0;
          v32 = sub_33F0BC10(v31)->viewangle.y;
          Nemtech::MathLib::RoundF(v32);
          __asm
          {
            fmul    ds:dword_3400EB10
            fstp    [ebp+var_C]
          }

          if (angle < 0.0 )
          {
            *(a1 + 16) = angle + m_flMaxDelta;
            return;
          }

          m_cmd->viewangles.y = angle - m_flMaxDelta;
        }

        goto LABEL_39;
      }

      cmd = m_pCmds[3665 * (v16 % 150)];

      if (cmd)
      {
        v25 = cmd[172];
        MathLib::AngleDiff(a3, v25.viewangles.y, *(cmd + 0xAE), st6_0, st5_0, a7, a9, a8, a10, a11);
        v26 = sub_33F0BC10(v25).viewangles.y;
        v27 = (sub_33F0BC10(LODWORD(v34)).viewangles.y - 5.0) <= v26;//LODWORD(x): return x & 0xFFFFFFFF

        m_flMaxDelta = v39;
        if ( !v27 )
        {
          Nemtech::MathLib::CopySignF(1123024896, LODWORD(v39));
          __asm { fstp    [ebp+var_C] }
          m_flMaxDelta = v35;
        }
      }

      m_cmd = LODWORD(angle);//hmmmm what
      m_cmd->viewangles.y = angle - m_flMaxDelta;//so fucking like m_cmd->viewangles.y = m_cmd->viewangles.y - m_flMaxDelta

      m_fakeViewangle = angle - m_flMaxDelta;

      if ( (angle - m_flMaxDelta) >= -180.0 && m_cmd->viewangles.y <= 180.0 )
      {
LABEL_39:
        *(a1 + 16) = m_cmd->viewangle.y;
        return;
      }
      //wtf we not even gonna use this crap
      v28 = m_cmd;

      v28.viewangles.y = m_cmd->viewangles.y / 360.0;
      v29 = sub_33F0BC10(v28).viewangles.y;//this is interesting
      Nemtech::MathLib::RoundF(v29);
      __asm
      {
        fmul    ds:dword_3400EB10
        fstp    [ebp+var_C]
      }

      if (m_fakeViewangle >= 0.0 )
        v30 = m_fakeViewangle - v36;
      else
        v30 = m_fakeViewangle + v36;

      *(a1 + 16) = v30;
    }
  }
}

__m128 __usercall sub_33F0BC10@<xmm0>(__m128 a1@<xmm0>)
{
    return _mm_and_ps(a1, AbsMask);
}
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
yeah its not fully reversed and stuff could be wrong XD
not my dump friend sent me the posudo code, so i just reversed what i could with current posudo code
C++:
void __usercall AntiAim::Fake(int a1@<edx>, int a2@<ecx>, double a3@<st0>, float angle, double st6_0@<st1>, double st5_0@<st2>, double a7@<st3>, double a8@<st5>, double a9@<st4>, double a10@<st6>, double a11@<st7>, int a5, int a6)
{
  // [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]

  fucklol = *(m_nPlayerAnimationState + a2 - 20);//idk what a2 is atm

  if (fucklol && AntiAim::CanRun(a2, a1) )
  {
    (*(*EntityListPointer + 16))(EntityListPointer, *(m_hActiveWeapon + v14));
    v15 = MaxDesyncDeltaPointer->ShotTime;
    v16 = *(g_pClientState + 0x4D2C);//g_pClientState->nLastCommandAck //0x4D2C
    v17 = v15 > v16 && v15 <= v16 + *(g_pClientState + 0x4D30) + 1;//g_pClientState->iCommandAck //0x4D30
    if ( *(a1 + 4) != v15 )//i really wanna know what a1 is XD
    {
      if ( !a5 )
      {
        m_cmd->viewangles.y = angle; //m128_f32[0], tho idk why tf posudo = viewwangle.x
        if (angle < -180.0 || angle > 180.0 )
        {
          v19 = LODWORD(angle);
          v19.m128_f32[0] = angle / 360.0;
          v20 = sub_33F0BC10(v19)->viewangle.y;
          Nemtech::MathLib::RoundF(v20);
          __asm
          {
            fmul    ds:dword_3400EB10
            fstp    [ebp+var_8]
          }

          if (angle >= 0.0 )
            v21 = angle - v38;
          else
            v21 = angle + v38;

          *(a1 + 16) = v21;
          return;
        }
        goto LABEL_39;
      }

      v22 = ((*(/*fucklol + 0x11C*/) * 20.0) + 30.0) * g_pGlobalVarBase->interval_per_tick;

      if ( a5 == 1 )//a5 looks like the m_side crap
        m_flMaxDelta = 60.0;
      else
        m_flMaxDelta = -60.0;

      //yeah idk
      v39 = m_flMaxDelta;
      v34 = m_flMaxDelta;//prob fucked something here idk

      if ( !v17 )
      {
        if (m_flMaxDelta <= (*&g_pConfig::DesyncClamp + v22) )
        {
          if ( (COERCE_FLOAT(g_pConfig::DesyncClamp ^ NegatedMask) - v22) > v23 )//COERCE_FLOAT is *((float*)&var)
              m_flMaxDelta = COERCE_FLOAT(g_pConfig::DesyncClamp ^ NegatedMask) - v22;
        }
        else
        {
           m_flMaxDelta = *&g_pConfig::DesyncClamp + v22;
        }
        v39 = m_flMaxDelta;
        v34 = m_flMaxDelta;
      }

      if ( !a6 )
      {
        m_cmd->viewangles.y = angle;

        if (angle < -180.0 || angle > 180.0 )
        {
          //another code not being used wtf
          v31 = LODWORD(angle);
          v31.m128_f32[0] = angle / 360.0;
          v32 = sub_33F0BC10(v31)->viewangle.y;
          Nemtech::MathLib::RoundF(v32);
          __asm
          {
            fmul    ds:dword_3400EB10
            fstp    [ebp+var_C]
          }

          if (angle < 0.0 )
          {
            *(a1 + 16) = angle + m_flMaxDelta;
            return;
          }

          m_cmd->viewangles.y = angle - m_flMaxDelta;
        }

        goto LABEL_39;
      }

      cmd = m_pCmds[3665 * (v16 % 150)];

      if (cmd)
      {
        v25 = cmd[172];
        MathLib::AngleDiff(a3, v25.viewangles.y, *(cmd + 0xAE), st6_0, st5_0, a7, a9, a8, a10, a11);
        v26 = sub_33F0BC10(v25).viewangles.y;
        v27 = (sub_33F0BC10(LODWORD(v34)).viewangles.y - 5.0) <= v26;//LODWORD(x): return x & 0xFFFFFFFF

        m_flMaxDelta = v39;
        if ( !v27 )
        {
          Nemtech::MathLib::CopySignF(1123024896, LODWORD(v39));
          __asm { fstp    [ebp+var_C] }
          m_flMaxDelta = v35;
        }
      }

      m_cmd = LODWORD(angle);//hmmmm what
      m_cmd->viewangles.y = angle - m_flMaxDelta;//so fucking like m_cmd->viewangles.y = m_cmd->viewangles.y - m_flMaxDelta

      m_fakeViewangle = angle - m_flMaxDelta;

      if ( (angle - m_flMaxDelta) >= -180.0 && m_cmd->viewangles.y <= 180.0 )
      {
LABEL_39:
        *(a1 + 16) = m_cmd->viewangle.y;
        return;
      }
      //wtf we not even gonna use this crap
      v28 = m_cmd;

      v28.viewangles.y = m_cmd->viewangles.y / 360.0;
      v29 = sub_33F0BC10(v28).viewangles.y;//this is interesting
      Nemtech::MathLib::RoundF(v29);
      __asm
      {
        fmul    ds:dword_3400EB10
        fstp    [ebp+var_C]
      }

      if (m_fakeViewangle >= 0.0 )
        v30 = m_fakeViewangle - v36;
      else
        v30 = m_fakeViewangle + v36;

      *(a1 + 16) = v30;
    }
  }
}

__m128 __usercall sub_33F0BC10@<xmm0>(__m128 a1@<xmm0>)
{
    return _mm_and_ps(a1, AbsMask);
}
я тоже могу скинуть из дампа который в открытом доступе ресольвер нихуя не ревершенный, но у меня есть мозги, а по теме - вронг
upd:shero что я не так сказал
 
Последнее редактирование:
Сверху Снизу