-
Автор темы
- #1
Код:
// for the guys who are interesed in revesing client.dll from cs2
sub_180B69770 = set_memory_values
sub_180B90C90 = sse_search
sub_1806C8490 = find_matching_entry
sub_1806685D0 = insert_value_at_index
sub_1800C1290 = find_and_insert_element_in_array
sub_180B90B90 = find_value_and_return_corresponding
sub_1807D50F0 = find_index_and_insert_value
sub_1800D23A0 = find_integers
sub_180B6D530 = initialize_CMAA2_context
sub_180B7E520 = performMathComputation (personally thats how i named it, i think using that you might find diff effects offsets/etc so you can force them when u kill or etc )
sub_1808289D0 = get_offset_value
sub_180CC50A0 = CCompositeMaterialManager
sub_180ED8AA0 = set_page_table_entry
sub_180EDDEA0 = check_pointer
sub_180ECFD20 = find_offset_in_structure
// thats how i named a few stuff, i will release more soon
Код:
// insert_value_at_index
unsigned long long sub_1806685D0(__m128i *a1, unsigned int a2, long long a3)
{
__m128i v4 = _mm_shuffle_epi32(_mm_cvtsi32_si128(a2), 0);
unsigned int v7 = 0;
__m128i *v8 = a1;
while (true)
{
int v9 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v4, *v8));
if (v9 != 0)
break;
v7++;
v8++;
if (v7 >= 4)
goto LABEL_4;
}
unsigned long long result = (unsigned int)dword_1814C64E0[v9];
unsigned int v15 = result + 4 * v7;
if (v15 < 0x10)
{
a1[4].m128i_i64[v15] = a3;
return result;
}
LABEL_4:
__m128i *v10 = (__m128i *)a1[12].m128i_i64[1];
result = (unsigned long long)v10;
if (v10)
{
while (true)
{
unsigned int v12 = 0;
__m128i *v13 = (__m128i *)(result + 16);
while (true)
{
int v14 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v4, *v13));
if (v14 != 0)
break;
v12++;
v13++;
if (v12 >= 4)
goto LABEL_12;
}
int v16 = dword_1814C64E0[v14] + 4 * v12;
if ((unsigned int)v16 < 0x10)
{
*(_QWORD *)(result + 8 * (v16 + 10i64)) = a3;
return result;
}
LABEL_12:
result = *(_QWORD *)result;
if (result == 0)
break;
}
}
unsigned int v17 = 0;
__m128i *v18 = a1;
while (true)
{
int v19 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32((__m128i)0i64, *v18));
if (v19 != 0)
break;
v17++;
v18++;
if (v17 >= 4)
goto LABEL_16;
}
int v23 = dword_1814C64E0[v19] + 4 * v17;
if ((unsigned int)v23 < 0x10)
{
result = v23;
unsigned int *v24 = (unsigned int *)a1 + v23;
long long *v25 = &a1[4].m128i_i64[v23];
goto LABEL_32;
}
}
Код:
// performMathComputation
// local variable allocation has failed, the output may be wrong!
__int64 sub_180B7E520(__int64 a1, unsigned long long *a2, __int64 a3, double a4, unsigned int a5)
{
__m128 v7 = _mm_shuffle_ps(_mm_set1_ps(a4), _mm_set1_ps(a4), 0);
__m128 v8 = _mm_shuffle_ps(_mm_cvtsi32_si128(a5), _mm_cvtsi32_si128(a5), 0);
if (v7.m128_f32[0] <= 0.0f && v8.m128_f32[0] <= 0.0f)
return a3;
__int64 v10 = *a2;
__int64 v11 = (*(__int64(__fastcall **)(__int64, const char *, __int64 *, unsigned long long))(*(__int64 *)v10 + 672i64))(v10, "postprocess_target", &a3, 0i64);
if (v7.m128_f32[0] > 0.0f)
{
_BOOL8 v27 = a3 != -1;
__int64 v13 = (*(__int64(__fastcall **)(unsigned long long, const char *, unsigned long long *, __int64, _BOOL8 *, char))(*(__int64 *)*a2 + 80i64))(*a2, "Health Boost Effect", a2 + 2, 0i64, &v27, 0);
__m128i *v14 = (__m128i *)v13;
*(_QWORD *)(v13 + 72) |= 0x400400ui64;
if (v11 != -1)
{
__m128 v21;
(*(void(__fastcall **)(unsigned long long, __m128 *, __int64))(**(_QWORD **)(v13 + 1696) + 336i64))(*(_QWORD *)(v13 + 1696), &v21, v11);
__int64 v15 = v14[106].m128i_i64[0];
__int64 v23 = v21.m128i_i64[0];
unsigned int v36 = -1;
(*(void(__fastcall **)(__int64, __int64 *, unsigned int *, __int64 *))(*(__int64 *)v15 + 720i64))(v15, &v23, &v36, &v23);
}
}
return a3;
}
Код:
//update_texture_data
std::int64_t sub_180B9BB70(std::int64_t a1, std::uint32_t a2, std::int64_t a3, std::int64_t a4, std::uint32_t a5) {
std::int64_t result; // rax
std::int64_t v7; // rcx
std::int64_t v10; // [rsp+28h] [rbp-20h] BYREF
std::int64_t v12; // [rsp+38h] [rbp-10h] BYREF
std::uint32_t v13; // [rsp+60h] [rbp+18h] BYREF
int v9 = 0; // [rsp+20h] [rbp-28h] BYREF
int v11 = -1; // [rsp+30h] [rbp-18h]
if (a3 != -1) {
(*(void (__fastcall **)(_QWORD, std::int64_t *))(**(_QWORD **)(a1 + 1696) + 336i64))(*(_QWORD *)(a1 + 1696), &v12);
v7 = *(_QWORD *)(a1 + 1696);
v13 = -1;
v10 = v12;
(*(void (__fastcall **)(std::int64_t, std::int64_t *, std::uint32_t *, int *))(*(_QWORD *)v7 + 720i64))(v7, &v10, &v13, &v9);
v10 = ((std::int64_t)a5 << 32) | v13;
sub_1806685D0(a1 + 1216, a2, ((std::int64_t)a5 << 32) | v13);
v10 = v12;
return sub_1800C1290(a1 + 608, a2, &v10);
}
return result;
}