Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Кидайте сюда что вам нужно найти после апдейта

закину сюда еще свои паттерны которые нашел, мб кому пригодятся.
draw_view_punch: 48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 41 56 48 83 EC ? 49 8B E9 49 8B F8
global_vars: 48 89 1D ? ? ? ? FF 15 ? ? ? ? 84 C0 74 ? 8B 0D ? ? ? ? 4C 8D 0D ? ? ? ? 4C 8D 05 ? ? ? ? BA ? ? ? ? FF 15 ? ? ? ? 48 8B 74 24 ? 48 8B C3
local_controller: 48 8B 05 ? ? ? ? 41 89 BE
entity list: 48 8B 1D ? ? ? ? 48 8D 46
view_matrix: 48 8D 0D ? ? ? ? 48 89 44 24 ? 48 89 4C 24 ? 4C 8D 0D
planted_c4: 48 8B 15 ? ? ? ? 48 8B 5C 24 ? FF C0 89 05 ? ? ? ? 48 8B C6 ? ? ? ? 80 BE ? ? ? ? 00
frame_stage_notify: 4C 8B 0D ? ? ? ? 48 8D 15 ? ? ? ? 48 8B 8F ? ? ? ? F3 41 0F 10 51 ? 45 8B 49 ? 0F 5A D2 66 49 0F 7E D0 FF 15 ? ? ? ? 48 8B 97 ? ? ? ? 48 8B 0D ? ? ? ? E8 ? ? ? ? E9
override_view: 40 57 48 83 EC ?? 48 8B FA E8 ?? ?? ?? ?? BA

level_shutdown: 48 83 EC ? 48 8B 0D ? ? ? ? 48 8D 15 ? ? ? ? 45 33 C9 45 33 C0 ? ? ? FF 50 ? 48 85 C0 74 ? 48 8B 0D ? ? ? ? 48 8B D0 ? ? ? 41 FF 50 ? 48 83 C4
level_init: 40 55 56 41 56 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 8B 0D
update_post_processing: 48 89 AC 24 ? ? ? ? 45 33 ED

remove_legs: 40 55 53 56 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? F2 0F 10 42
mark_interp_latch_flags_dirty: 40 53 56 57 48 83 EC ? 80 3D ? ? ? ? 00
draw_scope_overlay:48 8B C4 53 57 48 83 EC ? 48 8B FA
get_fov: 48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 41 56 48 83 EC ? 49 8B E9 49 8B F8

create_move: 85 D2 0F 85 ? ? ? ? 48 8B C4 44 88 40

update_global_vars: 48 8B 0D ? ? ? ? 4C 8D 05 ? ? ? ? 48 85 D2

on_add_entity: 48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 48 83 EC ? 8B 81 ? ? ? ? 49 8B F0

on_remove_entity: 48 89 74 24 ? 57 48 83 EC ? 41 B9 ? ? ? ? 41 8B C0 41 23 C1 48 8B F2 41 83 F8 ? 48 8B F9 44 0F 45 C8 41 81 F9 ? ? ? ? 73 ? FF 81

draw_smoke_array: 40 55 41 54 41 55 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 4C 8B E2

unlock_inventory: 48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 48 83 EC ? 48 8B E9 48 8B 0D ? ? ? ? ? ? ? FF 50
is_demo_or_hltv: 48 83 EC ? 48 8B 0D ? ? ? ? ? ? ? FF 90 ? ? ? ? 84 C0 75 ? 38 05

get_map_name:48 83 EC ? 48 8B 0D ? ? ? ? ? ? ? FF 90 ? ? ? ? 48 8B C8 48 83 C4
get_view_model: 40 55 53 56 41 56 41 57 48 8B EC
 
помогите зафиксить,
m_mem_alloc = *reinterpret_cast<i_mem_alloc**>(g_opcodes->scan_absolute(g_modules->m_modules.tier0_dll.get_name(), xorstr_("48 8B 0D ? ? ? ? 48 85 C9 74 0A"), 0x3));
CHECK("Mem Alloc", m_mem_alloc);


m_file_system = *reinterpret_cast<i_file_system**>(g_opcodes->scan_absolute(g_modules->m_modules.filesystem_stdio.get_name(), xorstr_("48 8B 0D ? ? ? ? 48 85 C9 74 0A"), 0x3));
CHECK(xorstr_("File System"), m_file_system);
1777141783572.png
 
помогите зафиксить,
m_mem_alloc = *reinterpret_cast<i_mem_alloc**>(g_opcodes->scan_absolute(g_modules->m_modules.tier0_dll.get_name(), xorstr_("48 8B 0D ? ? ? ? 48 85 C9 74 0A"), 0x3));
CHECK("Mem Alloc", m_mem_alloc);


m_file_system = *reinterpret_cast<i_file_system**>(g_opcodes->scan_absolute(g_modules->m_modules.filesystem_stdio.get_name(), xorstr_("48 8B 0D ? ? ? ? 48 85 C9 74 0A"), 0x3));
CHECK(xorstr_("File System"), m_file_system);Посмотреть вложение 334183
не
 
Привет, у кого есть SetMeshGroupMask, SetModel и RegenerateWeaponSkins?
SetMeshGroupMask - 48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC ? 48 8D 99 ? ? ? ? 48 8B 71
SetModel - 40 53 48 83 EC 20 48 8B D9 4C 8B C2 48 8B 0D ? ? ? ? 48 8D 54 24
RegenerateWeaponSkins - 40 55 53 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 44 0F B6 FA

m_file_system = *reinterpret_cast<i_file_system**>(g_opcodes->scan_absolute(g_modules->m_modules.filesystem_stdio.get_name(), xorstr_("48 8B 0D ? ? ? ? 48 85 C9 74 0A"), 0x3));
используй поиск интерфейса с названием VFileSystem017
 
SetMeshGroupMask - 48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC ? 48 8D 99 ? ? ? ? 48 8B 71
SetModel - 40 53 48 83 EC 20 48 8B D9 4C 8B C2 48 8B 0D ? ? ? ? 48 8D 54 24
RegenerateWeaponSkins - 40 55 53 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 44 0F B6 FA


используй поиск интерфейса с названием VFileSystem017
а где искать на обнову update_aggregate_scene object не шарю прост
 
у кого есть паттерн на hkSkyBoxObjectDrawArray

старый паттерн 45 85 C9 0F 8E ? ? ? ? 4C 8B DC
паттерн остался прежним

а вот смещение внутри него поменялось.
старое: v9 = *(int **)(v8 + 232);
новое: v9 = *(int **)(v8 + 208);

ну и еще дохера всего крч сам найди и посмотри

старый псевдо:
Expand Collapse Copy
void __fastcall sub_18014D420(__int64 a1, __int64 a2, __int64 a3, int a4, int a5, __int64 a6, __int64 a7)
{
  __int64 v8; // rsi
  int *v9; // rcx
  __int64 v10; // rcx
  __int64 v11; // r12
  __int64 v12; // rdi
  _OWORD *v13; // rbx
  __int128 v14; // xmm1
  __int128 v15; // xmm0
  __int64 v16; // rcx
  float v17; // xmm3_4
  __m128 v18; // xmm4
  __m128 v19; // xmm4
  __m128 v20; // xmm4
  __m128i si128; // xmm1
  __m128i *v22; // rax
  int v23; // edi
  unsigned int v24; // ecx
  int v25; // edx
  _QWORD *v26; // rax
  __m128i *v27; // rcx
  unsigned int v28; // edx
  int v29; // r8d
  unsigned int v30; // edx
  char *v31; // rcx
  int v32; // r8d
  unsigned __int64 v33; // rcx
  __int64 v34; // r8
  unsigned __int64 v35; // rax
  unsigned __int64 v36; // r9
  __m128i v37; // xmm1
  __m128i *v38; // rax
  unsigned int v39; // ecx
  int v40; // edx
  _QWORD *v41; // rax
  __m128i *v42; // rcx
  unsigned int v43; // edx
  int v44; // r8d
  unsigned int v45; // edx
  char *v46; // rcx
  int v47; // r8d
  unsigned __int64 v48; // rcx
  __m128 v49; // xmm0
  __m128 v50; // xmm0
  __m128 v51; // xmm0
  __m128 v52; // xmm0
  char v53; // bl
  unsigned __int8 (__fastcall *v54)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD); // rdi
  __int64 v55; // rax
  __int64 v56; // rcx
  __m128 v57; // [rsp+58h] [rbp-B0h] BYREF
  _OWORD *v58; // [rsp+68h] [rbp-A0h] BYREF
  _OWORD v59[3]; // [rsp+78h] [rbp-90h] BYREF
  char v60[160]; // [rsp+A8h] [rbp-60h] BYREF
  __int64 v61; // [rsp+148h] [rbp+40h]
  __int64 v62; // [rsp+1A8h] [rbp+A0h]
  char v63[96]; // [rsp+1B8h] [rbp+B0h] BYREF
  __int64 v64; // [rsp+218h] [rbp+110h]
  _QWORD *v65; // [rsp+220h] [rbp+118h]
  __int64 v66; // [rsp+2C8h] [rbp+1C0h]
  char v67[80]; // [rsp+2D8h] [rbp+1D0h] BYREF
  __int64 v68; // [rsp+328h] [rbp+220h]
  __int64 v69; // [rsp+3A8h] [rbp+2A0h]
  __int64 v70; // [rsp+3E8h] [rbp+2E0h]
  __int64 v71; // [rsp+418h] [rbp+310h]
  __int64 v72; // [rsp+428h] [rbp+320h]
  unsigned __int64 v73; // [rsp+430h] [rbp+328h]

  if ( a4 > 0 )
  {
    v8 = *(_QWORD *)(104i64 * a4 + a3 - 80);
    if ( v8 )
    {
      v9 = *(int **)(v8 + 232);
      if ( v9 )
      {
        if ( v9[8] > 0 )
        {
          v10 = *(_QWORD *)v9;
          if ( v10 )
          {
            v11 = (*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)v10 + 40i64))(v10, a6 + 48);
            if ( v11 )
            {
              v12 = (*(__int64 (__fastcall **)(__int64, __int64, _OWORD **))(*(_QWORD *)a2 + 256i64))(a2, 96i64, &v58);
              if ( v12 && (v13 = v58) != 0i64 )
              {
                *v58 = *(_OWORD *)(v8 + 48);
                v13[1] = *(_OWORD *)(v8 + 64);
                v13[2] = *(_OWORD *)(v8 + 80);
                sub_180487340(v8 + 48, v59);
                v14 = v59[1];
                v13[3] = v59[0];
                v15 = v59[2];
                v13[4] = v14;
                v13[5] = v15;
                (*(void (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)a2 + 264i64))(a2, v12, 96i64);
                sub_18004C520(v60);
                v57.m128_u64[0] = v12;
                v57.m128_i32[2] = 0;
                sub_18004CF40(v67, 4004786685i64, &v57);
                v16 = *(_QWORD *)(v8 + 168);
                if ( v16 )
                {
                  v72 = *(_QWORD *)(v8 + 168);
                  v62 = v16 + 176;
                  v64 = v16 + 272;
                  v66 = v16 + 384;
                  v68 = v16 + 560;
                  v69 = v16 + 656;
                  v70 = v16 + 784;
                  v71 = v16 + 848;
                  v61 = v16;
                }
                v17 = *(float *)(v8 + 264);
                v57.m128_u64[0] = *(_QWORD *)(v8 + 256);
                v57.m128_i32[3] = 0;
                v18 = v57;
                v18.m128_f32[0] = v57.m128_f32[0];
                v19 = _mm_shuffle_ps(v18, v18, 225);
                v19.m128_f32[0] = _mm_shuffle_ps((__m128)v57.m128_u64[0], (__m128)v57.m128_u64[0], 85).m128_f32[0];
                v20 = _mm_shuffle_ps(v19, v19, 198);
                v20.m128_f32[0] = v17;
                v57 = _mm_shuffle_ps(v20, v20, 201);
                sub_18004D5C0(v60, 2581987370i64, &v57);
                si128 = _mm_load_si128((const __m128i *)&xmmword_1805E9170);
                v22 = (__m128i *)v63;
                v23 = *(_DWORD *)(v8 + 268);
                v24 = 0;
                while ( 1 )
                {
                  v25 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v22));
                  if ( v25 )
                    break;
                  ++v24;
                  ++v22;
                  if ( v24 >= 3 )
                    goto LABEL_14;
                }
                v30 = dword_1806526A0[v25] + 4 * v24;
                if ( v30 < 0xC )
                {
                  v31 = &v63[4 * v30 + 48];
LABEL_25:
                  v33 = 0xBF58476D1CE4E5B9ui64
                      * ((*(int *)v31 | 0x83CB90D600000000ui64) ^ ((*(int *)v31 | 0x83CB90D600000000ui64) >> 30));
                  v73 ^= (0x94D049BB133111EBui64 * (v33 ^ (v33 >> 27))) ^ ((0x94D049BB133111EBui64 * (v33 ^ (v33 >> 27))) >> 31);
                  goto LABEL_26;
                }
LABEL_14:
                v26 = v65;
                if ( v65 )
                {
                  while ( 2 )
                  {
                    v27 = (__m128i *)(v26 + 2);
                    v28 = 0;
                    while ( 1 )
                    {
                      v29 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v27));
                      if ( v29 )
                        break;
                      ++v28;
                      ++v27;
                      if ( v28 >= 3 )
                        goto LABEL_22;
                    }
                    v32 = dword_1806526A0[v29] + 4 * v28;
                    if ( (unsigned int)v32 < 0xC )
                    {
                      v31 = (char *)v26 + 4 * v32 + 64;
                      goto LABEL_25;
                    }
LABEL_22:
                    v26 = (_QWORD *)*v26;
                    if ( v26 )
                      continue;
                    break;
                  }
                }
LABEL_26:
                sub_18004D3A0(v63, 2211156182i64, (unsigned __int8)v23, dword_1806526A0);
                v35 = 0xBF58476D1CE4E5B9ui64
                    * (((unsigned __int8)v23 | 0x83CB90D600000000ui64) ^ (((unsigned __int8)v23 | 0x83CB90D600000000ui64) >> 30));
                v36 = (0x94D049BB133111EBui64 * (v35 ^ (v35 >> 27))) ^ v73 ^ ((0x94D049BB133111EBui64
                                                                             * (v35 ^ (v35 >> 27))) >> 31);
                v73 = v36;
                if ( v23 == 2 )
                {
                  if ( *(float *)(v8 + 272) > -90.0 && *(float *)(v8 + 276) > -90.0 )
                  {
                    v37 = _mm_load_si128((const __m128i *)&xmmword_1805E9180);
                    v38 = (__m128i *)v63;
                    v39 = 0;
                    while ( 1 )
                    {
                      v40 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v37, *v38));
                      if ( v40 )
                        break;
                      ++v39;
                      ++v38;
                      if ( v39 >= 3 )
                        goto LABEL_32;
                    }
                    v45 = dword_1806526A0[v40] + 4 * v39;
                    if ( v45 < 0xC )
                    {
                      v46 = &v63[4 * v45 + 48];
LABEL_43:
                      v48 = 0xBF58476D1CE4E5B9ui64
                          * ((*(int *)v46 | 0x85E2357100000000ui64) ^ ((*(int *)v46 | 0x85E2357100000000ui64) >> 30));
                      v73 = (0x94D049BB133111EBui64 * (v48 ^ (v48 >> 27))) ^ v36 ^ ((0x94D049BB133111EBui64
                                                                                   * (v48 ^ (v48 >> 27))) >> 31);
                      goto LABEL_44;
                    }
LABEL_32:
                    v41 = v65;
                    if ( v65 )
                    {
                      while ( 2 )
                      {
                        v42 = (__m128i *)(v41 + 2);
                        v43 = 0;
                        while ( 1 )
                        {
                          v44 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v37, *v42));
                          if ( v44 )
                            break;
                          ++v43;
                          ++v42;
                          if ( v43 >= 3 )
                            goto LABEL_40;
                        }
                        v47 = dword_1806526A0[v44] + 4 * v43;
                        if ( (unsigned int)v47 < 0xC )
                        {
                          v46 = (char *)v41 + 4 * v47 + 64;
                          goto LABEL_43;
                        }
LABEL_40:
                        v41 = (_QWORD *)*v41;
                        if ( v41 )
                          continue;
                        break;
                      }
                    }
LABEL_44:
                    sub_18004D3A0(v63, 2246194545i64, 1i64, v36);
                    v73 ^= 0x873E991A041B4D04ui64;
                    v49 = (__m128)*(unsigned int *)(v8 + 272);
                    *(double *)v49.m128_u64 = V_sinf();
                    v57 = _mm_shuffle_ps(v49, v49, 0);
                    sub_18004D5C0(v60, 2417859427i64, &v57);
                    v50 = (__m128)*(unsigned int *)(v8 + 276);
                    *(double *)v50.m128_u64 = V_sinf();
                    v57 = _mm_shuffle_ps(v50, v50, 0);
                    sub_18004D5C0(v60, 1360787319i64, &v57);
                  }
                  v51 = (__m128)*(unsigned int *)(v8 + 280);
                  *(double *)v51.m128_u64 = V_sinf();
                  v57 = _mm_shuffle_ps(v51, v51, 0);
                  sub_18004D5C0(v60, 3626488954i64, &v57);
                  v52 = (__m128)*(unsigned int *)(v8 + 284);
                  *(double *)v52.m128_u64 = V_sinf();
                  v57 = _mm_shuffle_ps(v52, v52, 0);
                  sub_18004D5C0(v60, 530749042i64, &v57);
                }
                LOBYTE(v34) = 1;
                v53 = *(_BYTE *)(a6 + 1736);
                v54 = *(unsigned __int8 (__fastcall **)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD))(*(_QWORD *)qword_18087B358 + 320i64);
                v55 = (*(__int64 (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)qword_18087B418 + 376i64))(
                        qword_18087B418,
                        3i64,
                        v34);
                v56 = a6 + 1716;
                if ( !v53 )
                  v56 = 0i64;
                if ( v54(qword_18087B358, v11, v60, a2, v55, v56, 0i64, 0x7FFFFFFF, 0) )
                {
                  ++*(_DWORD *)(a7 + 28);
                  (*(void (__fastcall **)(__int64, __int64, __int64, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                    a2,
                    1i64,
                    qword_1808D2840,
                    0i64,
                    4);
                  (*(void (__fastcall **)(__int64, _QWORD, _QWORD))(*(_QWORD *)a2 + 592i64))(
                    a2,
                    *((_QWORD *)&xmmword_1808D17E0 + 1),
                    0i64);
                  (*(void (__fastcall **)(__int64, _QWORD, _QWORD, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                    a2,
                    0i64,
                    xmmword_1808D17E0,
                    0i64,
                    -1);
                  (*(void (__fastcall **)(__int64, __int64, _QWORD, _QWORD, _DWORD, _DWORD))(*(_QWORD *)a2 + 736i64))(
                    a2,
                    5i64,
                    0i64,
                    HIDWORD(qword_1808D17D8),
                    qword_1808D17D8,
                    0);
                }
                sub_18004C7C0(v60);
              }
              else if ( dword_1808D4D28 < 10 )
              {
                ++dword_1808D4D28;
                Warning("LockDynamicConstantBuffer failed in CSkyBoxObjectDesc::DrawArray!!!\n");
              }
            }
          }
        }
      }
    }
  }
}


новый псевдо:
Expand Collapse Copy
void __fastcall sub_18014FB90(__int64 a1, __int64 a2, __int64 a3, int a4, int a5, __int64 a6, __int64 a7)
{
  __int64 v8; // rdi
  int *v9; // rcx
  __int64 v10; // rcx
  __int64 v11; // r12
  __int64 v12; // rcx
  float v13; // xmm3_4
  __m128 v14; // xmm4
  __m128 v15; // xmm4
  __m128 v16; // xmm4
  int v17; // esi
  __m128i *v18; // rax
  __m128i si128; // xmm1
  unsigned int v20; // ecx
  int v21; // edx
  _QWORD *v22; // rax
  __m128i *v23; // rcx
  unsigned int v24; // edx
  int v25; // r8d
  unsigned int v26; // edx
  char *v27; // rcx
  int v28; // r8d
  unsigned __int64 v29; // rcx
  __int64 v30; // r8
  unsigned __int64 v31; // rax
  unsigned __int64 v32; // r9
  __m128i v33; // xmm1
  __m128i *v34; // rax
  unsigned int v35; // ecx
  int v36; // edx
  _QWORD *v37; // rax
  __m128i *v38; // rcx
  unsigned int v39; // edx
  int v40; // r8d
  unsigned int v41; // edx
  char *v42; // rcx
  int v43; // r8d
  unsigned __int64 v44; // rcx
  __m128 v45; // xmm0
  __m128 v46; // xmm0
  __m128 v47; // xmm0
  __m128 v48; // xmm0
  char v49; // bl
  unsigned __int8 (__fastcall *v50)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD); // rdi
  __int64 v51; // rax
  __int64 v52; // rcx
  __m128 v53; // [rsp+58h] [rbp-B0h] BYREF
  _OWORD v54[3]; // [rsp+68h] [rbp-A0h] BYREF
  __int128 v55[4]; // [rsp+98h] [rbp-70h] BYREF
  char v56[160]; // [rsp+D8h] [rbp-30h] BYREF
  __int64 v57; // [rsp+178h] [rbp+70h]
  char v58[80]; // [rsp+188h] [rbp+80h] BYREF
  __int64 v59; // [rsp+1D8h] [rbp+D0h]
  char v60[96]; // [rsp+1E8h] [rbp+E0h] BYREF
  __int64 v61; // [rsp+248h] [rbp+140h]
  _QWORD *v62; // [rsp+250h] [rbp+148h]
  __int64 v63; // [rsp+2F8h] [rbp+1F0h]
  __int64 v64; // [rsp+358h] [rbp+250h]
  __int64 v65; // [rsp+3D8h] [rbp+2D0h]
  __int64 v66; // [rsp+418h] [rbp+310h]
  __int64 v67; // [rsp+448h] [rbp+340h]
  __int64 v68; // [rsp+458h] [rbp+350h]
  unsigned __int64 v69; // [rsp+460h] [rbp+358h]

  if ( a4 > 0 )
  {
    v8 = *(_QWORD *)(104i64 * a4 + a3 - 80);
    if ( v8 )
    {
      v9 = *(int **)(v8 + 208);
      if ( v9 )
      {
        if ( v9[8] > 0 )
        {
          v10 = *(_QWORD *)v9;
          if ( v10 )
          {
            v11 = (*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)v10 + 40i64))(v10, a6 + 48);
            if ( v11 )
            {
              sub_18048D200(v8 + 48, v54);
              sub_18004C5A0(v56);
              v12 = *(_QWORD *)(v8 + 168);
              if ( v12 )
              {
                v68 = *(_QWORD *)(v8 + 168);
                v59 = v12 + 176;
                v61 = v12 + 272;
                v63 = v12 + 384;
                v64 = v12 + 560;
                v65 = v12 + 656;
                v66 = v12 + 784;
                v67 = v12 + 848;
                v57 = v12;
              }
              v55[0] = v54[0];
              v55[1] = v54[1];
              v55[2] = v54[2];
              v55[3] = (__int128)_mm_load_si128((const __m128i *)&xmmword_1805F0AB0);
              sub_1800ACBD0(v58, 4222080039i64, v55);
              v13 = *(float *)(v8 + 240);
              v53.m128_u64[0] = *(_QWORD *)(v8 + 232);
              v53.m128_i32[3] = 0;
              v14 = v53;
              v14.m128_f32[0] = v53.m128_f32[0];
              v15 = _mm_shuffle_ps(v14, v14, 225);
              v15.m128_f32[0] = _mm_shuffle_ps((__m128)v53.m128_u64[0], (__m128)v53.m128_u64[0], 85).m128_f32[0];
              v16 = _mm_shuffle_ps(v15, v15, 198);
              v16.m128_f32[0] = v13;
              v53 = _mm_shuffle_ps(v16, v16, 201);
              sub_18004D980(v56, 2581987370i64, &v53);
              v17 = *(_DWORD *)(v8 + 244);
              v18 = (__m128i *)v60;
              si128 = _mm_load_si128((const __m128i *)&xmmword_1805F0F20);
              v20 = 0;
              while ( 1 )
              {
                v21 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v18));
                if ( v21 )
                  break;
                ++v20;
                ++v18;
                if ( v20 >= 3 )
                  goto LABEL_12;
              }
              v26 = dword_18065A6A0[v21] + 4 * v20;
              if ( v26 < 0xC )
              {
                v27 = &v60[4 * v26 + 48];
                goto LABEL_23;
              }
LABEL_12:
              v22 = v62;
              if ( !v62 )
                goto LABEL_24;
LABEL_13:
              v23 = (__m128i *)(v22 + 2);
              v24 = 0;
              while ( 1 )
              {
                v25 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v23));
                if ( v25 )
                  break;
                ++v24;
                ++v23;
                if ( v24 >= 3 )
                {
LABEL_20:
                  v22 = (_QWORD *)*v22;
                  if ( !v22 )
                    goto LABEL_24;
                  goto LABEL_13;
                }
              }
              v28 = dword_18065A6A0[v25] + 4 * v24;
              if ( (unsigned int)v28 >= 0xC )
                goto LABEL_20;
              v27 = (char *)v22 + 4 * v28 + 64;
LABEL_23:
              v29 = 0xBF58476D1CE4E5B9ui64
                  * ((*(int *)v27 | 0x83CB90D600000000ui64) ^ ((*(int *)v27 | 0x83CB90D600000000ui64) >> 30));
              v69 ^= (0x94D049BB133111EBui64 * (v29 ^ (v29 >> 27))) ^ ((0x94D049BB133111EBui64 * (v29 ^ (v29 >> 27))) >> 31);
LABEL_24:
              sub_18004D480(v60, 2211156182i64, (unsigned __int8)v17, 0x83CB90D600000000ui64);
              v31 = 0xBF58476D1CE4E5B9ui64
                  * (((unsigned __int8)v17 | 0x83CB90D600000000ui64) ^ (((unsigned __int8)v17 | 0x83CB90D600000000ui64) >> 30));
              v32 = (0x94D049BB133111EBui64 * (v31 ^ (v31 >> 27))) ^ v69 ^ ((0x94D049BB133111EBui64 * (v31 ^ (v31 >> 27))) >> 31);
              v69 = v32;
              if ( v17 == 2 )
              {
                if ( *(float *)(v8 + 248) > -90.0 && *(float *)(v8 + 252) > -90.0 )
                {
                  v33 = _mm_load_si128((const __m128i *)&xmmword_1805F0F30);
                  v34 = (__m128i *)v60;
                  v35 = 0;
                  while ( 1 )
                  {
                    v36 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v33, *v34));
                    if ( v36 )
                      break;
                    ++v35;
                    ++v34;
                    if ( v35 >= 3 )
                      goto LABEL_30;
                  }
                  v41 = dword_18065A6A0[v36] + 4 * v35;
                  if ( v41 < 0xC )
                  {
                    v42 = &v60[4 * v41 + 48];
LABEL_41:
                    v44 = 0xBF58476D1CE4E5B9ui64
                        * ((*(int *)v42 | 0x85E2357100000000ui64) ^ ((*(int *)v42 | 0x85E2357100000000ui64) >> 30));
                    v69 = (0x94D049BB133111EBui64 * (v44 ^ (v44 >> 27))) ^ v32 ^ ((0x94D049BB133111EBui64
                                                                                 * (v44 ^ (v44 >> 27))) >> 31);
                    goto LABEL_42;
                  }
LABEL_30:
                  v37 = v62;
                  if ( v62 )
                  {
                    while ( 2 )
                    {
                      v38 = (__m128i *)(v37 + 2);
                      v39 = 0;
                      while ( 1 )
                      {
                        v40 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v33, *v38));
                        if ( v40 )
                          break;
                        ++v39;
                        ++v38;
                        if ( v39 >= 3 )
                          goto LABEL_38;
                      }
                      v43 = dword_18065A6A0[v40] + 4 * v39;
                      if ( (unsigned int)v43 < 0xC )
                      {
                        v42 = (char *)v37 + 4 * v43 + 64;
                        goto LABEL_41;
                      }
LABEL_38:
                      v37 = (_QWORD *)*v37;
                      if ( v37 )
                        continue;
                      break;
                    }
                  }
LABEL_42:
                  sub_18004D480(v60, 2246194545i64, 1i64, v32);
                  v69 ^= 0x873E991A041B4D04ui64;
                  v45 = (__m128)*(unsigned int *)(v8 + 248);
                  *(double *)v45.m128_u64 = V_sinf();
                  v53 = _mm_shuffle_ps(v45, v45, 0);
                  sub_18004D980(v56, 2417859427i64, &v53);
                  v46 = (__m128)*(unsigned int *)(v8 + 252);
                  *(double *)v46.m128_u64 = V_sinf();
                  v53 = _mm_shuffle_ps(v46, v46, 0);
                  sub_18004D980(v56, 1360787319i64, &v53);
                }
                v47 = (__m128)*(unsigned int *)(v8 + 256);
                *(double *)v47.m128_u64 = V_sinf();
                v53 = _mm_shuffle_ps(v47, v47, 0);
                sub_18004D980(v56, 3626488954i64, &v53);
                v48 = (__m128)*(unsigned int *)(v8 + 260);
                *(double *)v48.m128_u64 = V_sinf();
                v53 = _mm_shuffle_ps(v48, v48, 0);
                sub_18004D980(v56, 530749042i64, &v53);
              }
              LOBYTE(v30) = 1;
              v49 = *(_BYTE *)(a6 + 1736);
              v50 = *(unsigned __int8 (__fastcall **)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD))(*(_QWORD *)qword_1808846B8 + 320i64);
              v51 = (*(__int64 (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)qword_180884778 + 384i64))(
                      qword_180884778,
                      3i64,
                      v30);
              v52 = a6 + 1716;
              if ( !v49 )
                v52 = 0i64;
              if ( v50(qword_1808846B8, v11, v56, a2, v51, v52, 0i64, 0x7FFFFFFF, 0) )
              {
                ++*(_DWORD *)(a7 + 28);
                (*(void (__fastcall **)(__int64, __int64, __int64, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                  a2,
                  1i64,
                  qword_1808DDDF8,
                  0i64,
                  4);
                (*(void (__fastcall **)(__int64, _QWORD, _QWORD))(*(_QWORD *)a2 + 592i64))(
                  a2,
                  *((_QWORD *)&xmmword_1808DCD90 + 1),
                  0i64);
                (*(void (__fastcall **)(__int64, _QWORD, _QWORD, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                  a2,
                  0i64,
                  xmmword_1808DCD90,
                  0i64,
                  -1);
                (*(void (__fastcall **)(__int64, __int64, _QWORD, _QWORD, _DWORD, _DWORD))(*(_QWORD *)a2 + 752i64))(
                  a2,
                  5i64,
                  0i64,
                  HIDWORD(qword_1808DCD88),
                  qword_1808DCD88,
                  0);
              }
              sub_18004C8A0(v56);
            }
          }
        }
      }
    }
  }
}
 
у кого есть паттерн на hkSkyBoxObjectDrawArray

старый паттерн 45 85 C9 0F 8E ? ? ? ? 4C 8B DC
все так же
паттерн остался прежним

а вот смещение внутри него поменялось.
старое: v9 = *(int **)(v8 + 232);
новое: v9 = *(int **)(v8 + 208);

ну и еще дохера всего крч сам найди и посмотри

старый псевдо:
Expand Collapse Copy
void __fastcall sub_18014D420(__int64 a1, __int64 a2, __int64 a3, int a4, int a5, __int64 a6, __int64 a7)
{
  __int64 v8; // rsi
  int *v9; // rcx
  __int64 v10; // rcx
  __int64 v11; // r12
  __int64 v12; // rdi
  _OWORD *v13; // rbx
  __int128 v14; // xmm1
  __int128 v15; // xmm0
  __int64 v16; // rcx
  float v17; // xmm3_4
  __m128 v18; // xmm4
  __m128 v19; // xmm4
  __m128 v20; // xmm4
  __m128i si128; // xmm1
  __m128i *v22; // rax
  int v23; // edi
  unsigned int v24; // ecx
  int v25; // edx
  _QWORD *v26; // rax
  __m128i *v27; // rcx
  unsigned int v28; // edx
  int v29; // r8d
  unsigned int v30; // edx
  char *v31; // rcx
  int v32; // r8d
  unsigned __int64 v33; // rcx
  __int64 v34; // r8
  unsigned __int64 v35; // rax
  unsigned __int64 v36; // r9
  __m128i v37; // xmm1
  __m128i *v38; // rax
  unsigned int v39; // ecx
  int v40; // edx
  _QWORD *v41; // rax
  __m128i *v42; // rcx
  unsigned int v43; // edx
  int v44; // r8d
  unsigned int v45; // edx
  char *v46; // rcx
  int v47; // r8d
  unsigned __int64 v48; // rcx
  __m128 v49; // xmm0
  __m128 v50; // xmm0
  __m128 v51; // xmm0
  __m128 v52; // xmm0
  char v53; // bl
  unsigned __int8 (__fastcall *v54)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD); // rdi
  __int64 v55; // rax
  __int64 v56; // rcx
  __m128 v57; // [rsp+58h] [rbp-B0h] BYREF
  _OWORD *v58; // [rsp+68h] [rbp-A0h] BYREF
  _OWORD v59[3]; // [rsp+78h] [rbp-90h] BYREF
  char v60[160]; // [rsp+A8h] [rbp-60h] BYREF
  __int64 v61; // [rsp+148h] [rbp+40h]
  __int64 v62; // [rsp+1A8h] [rbp+A0h]
  char v63[96]; // [rsp+1B8h] [rbp+B0h] BYREF
  __int64 v64; // [rsp+218h] [rbp+110h]
  _QWORD *v65; // [rsp+220h] [rbp+118h]
  __int64 v66; // [rsp+2C8h] [rbp+1C0h]
  char v67[80]; // [rsp+2D8h] [rbp+1D0h] BYREF
  __int64 v68; // [rsp+328h] [rbp+220h]
  __int64 v69; // [rsp+3A8h] [rbp+2A0h]
  __int64 v70; // [rsp+3E8h] [rbp+2E0h]
  __int64 v71; // [rsp+418h] [rbp+310h]
  __int64 v72; // [rsp+428h] [rbp+320h]
  unsigned __int64 v73; // [rsp+430h] [rbp+328h]

  if ( a4 > 0 )
  {
    v8 = *(_QWORD *)(104i64 * a4 + a3 - 80);
    if ( v8 )
    {
      v9 = *(int **)(v8 + 232);
      if ( v9 )
      {
        if ( v9[8] > 0 )
        {
          v10 = *(_QWORD *)v9;
          if ( v10 )
          {
            v11 = (*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)v10 + 40i64))(v10, a6 + 48);
            if ( v11 )
            {
              v12 = (*(__int64 (__fastcall **)(__int64, __int64, _OWORD **))(*(_QWORD *)a2 + 256i64))(a2, 96i64, &v58);
              if ( v12 && (v13 = v58) != 0i64 )
              {
                *v58 = *(_OWORD *)(v8 + 48);
                v13[1] = *(_OWORD *)(v8 + 64);
                v13[2] = *(_OWORD *)(v8 + 80);
                sub_180487340(v8 + 48, v59);
                v14 = v59[1];
                v13[3] = v59[0];
                v15 = v59[2];
                v13[4] = v14;
                v13[5] = v15;
                (*(void (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)a2 + 264i64))(a2, v12, 96i64);
                sub_18004C520(v60);
                v57.m128_u64[0] = v12;
                v57.m128_i32[2] = 0;
                sub_18004CF40(v67, 4004786685i64, &v57);
                v16 = *(_QWORD *)(v8 + 168);
                if ( v16 )
                {
                  v72 = *(_QWORD *)(v8 + 168);
                  v62 = v16 + 176;
                  v64 = v16 + 272;
                  v66 = v16 + 384;
                  v68 = v16 + 560;
                  v69 = v16 + 656;
                  v70 = v16 + 784;
                  v71 = v16 + 848;
                  v61 = v16;
                }
                v17 = *(float *)(v8 + 264);
                v57.m128_u64[0] = *(_QWORD *)(v8 + 256);
                v57.m128_i32[3] = 0;
                v18 = v57;
                v18.m128_f32[0] = v57.m128_f32[0];
                v19 = _mm_shuffle_ps(v18, v18, 225);
                v19.m128_f32[0] = _mm_shuffle_ps((__m128)v57.m128_u64[0], (__m128)v57.m128_u64[0], 85).m128_f32[0];
                v20 = _mm_shuffle_ps(v19, v19, 198);
                v20.m128_f32[0] = v17;
                v57 = _mm_shuffle_ps(v20, v20, 201);
                sub_18004D5C0(v60, 2581987370i64, &v57);
                si128 = _mm_load_si128((const __m128i *)&xmmword_1805E9170);
                v22 = (__m128i *)v63;
                v23 = *(_DWORD *)(v8 + 268);
                v24 = 0;
                while ( 1 )
                {
                  v25 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v22));
                  if ( v25 )
                    break;
                  ++v24;
                  ++v22;
                  if ( v24 >= 3 )
                    goto LABEL_14;
                }
                v30 = dword_1806526A0[v25] + 4 * v24;
                if ( v30 < 0xC )
                {
                  v31 = &v63[4 * v30 + 48];
LABEL_25:
                  v33 = 0xBF58476D1CE4E5B9ui64
                      * ((*(int *)v31 | 0x83CB90D600000000ui64) ^ ((*(int *)v31 | 0x83CB90D600000000ui64) >> 30));
                  v73 ^= (0x94D049BB133111EBui64 * (v33 ^ (v33 >> 27))) ^ ((0x94D049BB133111EBui64 * (v33 ^ (v33 >> 27))) >> 31);
                  goto LABEL_26;
                }
LABEL_14:
                v26 = v65;
                if ( v65 )
                {
                  while ( 2 )
                  {
                    v27 = (__m128i *)(v26 + 2);
                    v28 = 0;
                    while ( 1 )
                    {
                      v29 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v27));
                      if ( v29 )
                        break;
                      ++v28;
                      ++v27;
                      if ( v28 >= 3 )
                        goto LABEL_22;
                    }
                    v32 = dword_1806526A0[v29] + 4 * v28;
                    if ( (unsigned int)v32 < 0xC )
                    {
                      v31 = (char *)v26 + 4 * v32 + 64;
                      goto LABEL_25;
                    }
LABEL_22:
                    v26 = (_QWORD *)*v26;
                    if ( v26 )
                      continue;
                    break;
                  }
                }
LABEL_26:
                sub_18004D3A0(v63, 2211156182i64, (unsigned __int8)v23, dword_1806526A0);
                v35 = 0xBF58476D1CE4E5B9ui64
                    * (((unsigned __int8)v23 | 0x83CB90D600000000ui64) ^ (((unsigned __int8)v23 | 0x83CB90D600000000ui64) >> 30));
                v36 = (0x94D049BB133111EBui64 * (v35 ^ (v35 >> 27))) ^ v73 ^ ((0x94D049BB133111EBui64
                                                                             * (v35 ^ (v35 >> 27))) >> 31);
                v73 = v36;
                if ( v23 == 2 )
                {
                  if ( *(float *)(v8 + 272) > -90.0 && *(float *)(v8 + 276) > -90.0 )
                  {
                    v37 = _mm_load_si128((const __m128i *)&xmmword_1805E9180);
                    v38 = (__m128i *)v63;
                    v39 = 0;
                    while ( 1 )
                    {
                      v40 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v37, *v38));
                      if ( v40 )
                        break;
                      ++v39;
                      ++v38;
                      if ( v39 >= 3 )
                        goto LABEL_32;
                    }
                    v45 = dword_1806526A0[v40] + 4 * v39;
                    if ( v45 < 0xC )
                    {
                      v46 = &v63[4 * v45 + 48];
LABEL_43:
                      v48 = 0xBF58476D1CE4E5B9ui64
                          * ((*(int *)v46 | 0x85E2357100000000ui64) ^ ((*(int *)v46 | 0x85E2357100000000ui64) >> 30));
                      v73 = (0x94D049BB133111EBui64 * (v48 ^ (v48 >> 27))) ^ v36 ^ ((0x94D049BB133111EBui64
                                                                                   * (v48 ^ (v48 >> 27))) >> 31);
                      goto LABEL_44;
                    }
LABEL_32:
                    v41 = v65;
                    if ( v65 )
                    {
                      while ( 2 )
                      {
                        v42 = (__m128i *)(v41 + 2);
                        v43 = 0;
                        while ( 1 )
                        {
                          v44 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v37, *v42));
                          if ( v44 )
                            break;
                          ++v43;
                          ++v42;
                          if ( v43 >= 3 )
                            goto LABEL_40;
                        }
                        v47 = dword_1806526A0[v44] + 4 * v43;
                        if ( (unsigned int)v47 < 0xC )
                        {
                          v46 = (char *)v41 + 4 * v47 + 64;
                          goto LABEL_43;
                        }
LABEL_40:
                        v41 = (_QWORD *)*v41;
                        if ( v41 )
                          continue;
                        break;
                      }
                    }
LABEL_44:
                    sub_18004D3A0(v63, 2246194545i64, 1i64, v36);
                    v73 ^= 0x873E991A041B4D04ui64;
                    v49 = (__m128)*(unsigned int *)(v8 + 272);
                    *(double *)v49.m128_u64 = V_sinf();
                    v57 = _mm_shuffle_ps(v49, v49, 0);
                    sub_18004D5C0(v60, 2417859427i64, &v57);
                    v50 = (__m128)*(unsigned int *)(v8 + 276);
                    *(double *)v50.m128_u64 = V_sinf();
                    v57 = _mm_shuffle_ps(v50, v50, 0);
                    sub_18004D5C0(v60, 1360787319i64, &v57);
                  }
                  v51 = (__m128)*(unsigned int *)(v8 + 280);
                  *(double *)v51.m128_u64 = V_sinf();
                  v57 = _mm_shuffle_ps(v51, v51, 0);
                  sub_18004D5C0(v60, 3626488954i64, &v57);
                  v52 = (__m128)*(unsigned int *)(v8 + 284);
                  *(double *)v52.m128_u64 = V_sinf();
                  v57 = _mm_shuffle_ps(v52, v52, 0);
                  sub_18004D5C0(v60, 530749042i64, &v57);
                }
                LOBYTE(v34) = 1;
                v53 = *(_BYTE *)(a6 + 1736);
                v54 = *(unsigned __int8 (__fastcall **)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD))(*(_QWORD *)qword_18087B358 + 320i64);
                v55 = (*(__int64 (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)qword_18087B418 + 376i64))(
                        qword_18087B418,
                        3i64,
                        v34);
                v56 = a6 + 1716;
                if ( !v53 )
                  v56 = 0i64;
                if ( v54(qword_18087B358, v11, v60, a2, v55, v56, 0i64, 0x7FFFFFFF, 0) )
                {
                  ++*(_DWORD *)(a7 + 28);
                  (*(void (__fastcall **)(__int64, __int64, __int64, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                    a2,
                    1i64,
                    qword_1808D2840,
                    0i64,
                    4);
                  (*(void (__fastcall **)(__int64, _QWORD, _QWORD))(*(_QWORD *)a2 + 592i64))(
                    a2,
                    *((_QWORD *)&xmmword_1808D17E0 + 1),
                    0i64);
                  (*(void (__fastcall **)(__int64, _QWORD, _QWORD, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                    a2,
                    0i64,
                    xmmword_1808D17E0,
                    0i64,
                    -1);
                  (*(void (__fastcall **)(__int64, __int64, _QWORD, _QWORD, _DWORD, _DWORD))(*(_QWORD *)a2 + 736i64))(
                    a2,
                    5i64,
                    0i64,
                    HIDWORD(qword_1808D17D8),
                    qword_1808D17D8,
                    0);
                }
                sub_18004C7C0(v60);
              }
              else if ( dword_1808D4D28 < 10 )
              {
                ++dword_1808D4D28;
                Warning("LockDynamicConstantBuffer failed in CSkyBoxObjectDesc::DrawArray!!!\n");
              }
            }
          }
        }
      }
    }
  }
}


новый псевдо:
Expand Collapse Copy
void __fastcall sub_18014FB90(__int64 a1, __int64 a2, __int64 a3, int a4, int a5, __int64 a6, __int64 a7)
{
  __int64 v8; // rdi
  int *v9; // rcx
  __int64 v10; // rcx
  __int64 v11; // r12
  __int64 v12; // rcx
  float v13; // xmm3_4
  __m128 v14; // xmm4
  __m128 v15; // xmm4
  __m128 v16; // xmm4
  int v17; // esi
  __m128i *v18; // rax
  __m128i si128; // xmm1
  unsigned int v20; // ecx
  int v21; // edx
  _QWORD *v22; // rax
  __m128i *v23; // rcx
  unsigned int v24; // edx
  int v25; // r8d
  unsigned int v26; // edx
  char *v27; // rcx
  int v28; // r8d
  unsigned __int64 v29; // rcx
  __int64 v30; // r8
  unsigned __int64 v31; // rax
  unsigned __int64 v32; // r9
  __m128i v33; // xmm1
  __m128i *v34; // rax
  unsigned int v35; // ecx
  int v36; // edx
  _QWORD *v37; // rax
  __m128i *v38; // rcx
  unsigned int v39; // edx
  int v40; // r8d
  unsigned int v41; // edx
  char *v42; // rcx
  int v43; // r8d
  unsigned __int64 v44; // rcx
  __m128 v45; // xmm0
  __m128 v46; // xmm0
  __m128 v47; // xmm0
  __m128 v48; // xmm0
  char v49; // bl
  unsigned __int8 (__fastcall *v50)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD); // rdi
  __int64 v51; // rax
  __int64 v52; // rcx
  __m128 v53; // [rsp+58h] [rbp-B0h] BYREF
  _OWORD v54[3]; // [rsp+68h] [rbp-A0h] BYREF
  __int128 v55[4]; // [rsp+98h] [rbp-70h] BYREF
  char v56[160]; // [rsp+D8h] [rbp-30h] BYREF
  __int64 v57; // [rsp+178h] [rbp+70h]
  char v58[80]; // [rsp+188h] [rbp+80h] BYREF
  __int64 v59; // [rsp+1D8h] [rbp+D0h]
  char v60[96]; // [rsp+1E8h] [rbp+E0h] BYREF
  __int64 v61; // [rsp+248h] [rbp+140h]
  _QWORD *v62; // [rsp+250h] [rbp+148h]
  __int64 v63; // [rsp+2F8h] [rbp+1F0h]
  __int64 v64; // [rsp+358h] [rbp+250h]
  __int64 v65; // [rsp+3D8h] [rbp+2D0h]
  __int64 v66; // [rsp+418h] [rbp+310h]
  __int64 v67; // [rsp+448h] [rbp+340h]
  __int64 v68; // [rsp+458h] [rbp+350h]
  unsigned __int64 v69; // [rsp+460h] [rbp+358h]

  if ( a4 > 0 )
  {
    v8 = *(_QWORD *)(104i64 * a4 + a3 - 80);
    if ( v8 )
    {
      v9 = *(int **)(v8 + 208);
      if ( v9 )
      {
        if ( v9[8] > 0 )
        {
          v10 = *(_QWORD *)v9;
          if ( v10 )
          {
            v11 = (*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)v10 + 40i64))(v10, a6 + 48);
            if ( v11 )
            {
              sub_18048D200(v8 + 48, v54);
              sub_18004C5A0(v56);
              v12 = *(_QWORD *)(v8 + 168);
              if ( v12 )
              {
                v68 = *(_QWORD *)(v8 + 168);
                v59 = v12 + 176;
                v61 = v12 + 272;
                v63 = v12 + 384;
                v64 = v12 + 560;
                v65 = v12 + 656;
                v66 = v12 + 784;
                v67 = v12 + 848;
                v57 = v12;
              }
              v55[0] = v54[0];
              v55[1] = v54[1];
              v55[2] = v54[2];
              v55[3] = (__int128)_mm_load_si128((const __m128i *)&xmmword_1805F0AB0);
              sub_1800ACBD0(v58, 4222080039i64, v55);
              v13 = *(float *)(v8 + 240);
              v53.m128_u64[0] = *(_QWORD *)(v8 + 232);
              v53.m128_i32[3] = 0;
              v14 = v53;
              v14.m128_f32[0] = v53.m128_f32[0];
              v15 = _mm_shuffle_ps(v14, v14, 225);
              v15.m128_f32[0] = _mm_shuffle_ps((__m128)v53.m128_u64[0], (__m128)v53.m128_u64[0], 85).m128_f32[0];
              v16 = _mm_shuffle_ps(v15, v15, 198);
              v16.m128_f32[0] = v13;
              v53 = _mm_shuffle_ps(v16, v16, 201);
              sub_18004D980(v56, 2581987370i64, &v53);
              v17 = *(_DWORD *)(v8 + 244);
              v18 = (__m128i *)v60;
              si128 = _mm_load_si128((const __m128i *)&xmmword_1805F0F20);
              v20 = 0;
              while ( 1 )
              {
                v21 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v18));
                if ( v21 )
                  break;
                ++v20;
                ++v18;
                if ( v20 >= 3 )
                  goto LABEL_12;
              }
              v26 = dword_18065A6A0[v21] + 4 * v20;
              if ( v26 < 0xC )
              {
                v27 = &v60[4 * v26 + 48];
                goto LABEL_23;
              }
LABEL_12:
              v22 = v62;
              if ( !v62 )
                goto LABEL_24;
LABEL_13:
              v23 = (__m128i *)(v22 + 2);
              v24 = 0;
              while ( 1 )
              {
                v25 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v23));
                if ( v25 )
                  break;
                ++v24;
                ++v23;
                if ( v24 >= 3 )
                {
LABEL_20:
                  v22 = (_QWORD *)*v22;
                  if ( !v22 )
                    goto LABEL_24;
                  goto LABEL_13;
                }
              }
              v28 = dword_18065A6A0[v25] + 4 * v24;
              if ( (unsigned int)v28 >= 0xC )
                goto LABEL_20;
              v27 = (char *)v22 + 4 * v28 + 64;
LABEL_23:
              v29 = 0xBF58476D1CE4E5B9ui64
                  * ((*(int *)v27 | 0x83CB90D600000000ui64) ^ ((*(int *)v27 | 0x83CB90D600000000ui64) >> 30));
              v69 ^= (0x94D049BB133111EBui64 * (v29 ^ (v29 >> 27))) ^ ((0x94D049BB133111EBui64 * (v29 ^ (v29 >> 27))) >> 31);
LABEL_24:
              sub_18004D480(v60, 2211156182i64, (unsigned __int8)v17, 0x83CB90D600000000ui64);
              v31 = 0xBF58476D1CE4E5B9ui64
                  * (((unsigned __int8)v17 | 0x83CB90D600000000ui64) ^ (((unsigned __int8)v17 | 0x83CB90D600000000ui64) >> 30));
              v32 = (0x94D049BB133111EBui64 * (v31 ^ (v31 >> 27))) ^ v69 ^ ((0x94D049BB133111EBui64 * (v31 ^ (v31 >> 27))) >> 31);
              v69 = v32;
              if ( v17 == 2 )
              {
                if ( *(float *)(v8 + 248) > -90.0 && *(float *)(v8 + 252) > -90.0 )
                {
                  v33 = _mm_load_si128((const __m128i *)&xmmword_1805F0F30);
                  v34 = (__m128i *)v60;
                  v35 = 0;
                  while ( 1 )
                  {
                    v36 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v33, *v34));
                    if ( v36 )
                      break;
                    ++v35;
                    ++v34;
                    if ( v35 >= 3 )
                      goto LABEL_30;
                  }
                  v41 = dword_18065A6A0[v36] + 4 * v35;
                  if ( v41 < 0xC )
                  {
                    v42 = &v60[4 * v41 + 48];
LABEL_41:
                    v44 = 0xBF58476D1CE4E5B9ui64
                        * ((*(int *)v42 | 0x85E2357100000000ui64) ^ ((*(int *)v42 | 0x85E2357100000000ui64) >> 30));
                    v69 = (0x94D049BB133111EBui64 * (v44 ^ (v44 >> 27))) ^ v32 ^ ((0x94D049BB133111EBui64
                                                                                 * (v44 ^ (v44 >> 27))) >> 31);
                    goto LABEL_42;
                  }
LABEL_30:
                  v37 = v62;
                  if ( v62 )
                  {
                    while ( 2 )
                    {
                      v38 = (__m128i *)(v37 + 2);
                      v39 = 0;
                      while ( 1 )
                      {
                        v40 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v33, *v38));
                        if ( v40 )
                          break;
                        ++v39;
                        ++v38;
                        if ( v39 >= 3 )
                          goto LABEL_38;
                      }
                      v43 = dword_18065A6A0[v40] + 4 * v39;
                      if ( (unsigned int)v43 < 0xC )
                      {
                        v42 = (char *)v37 + 4 * v43 + 64;
                        goto LABEL_41;
                      }
LABEL_38:
                      v37 = (_QWORD *)*v37;
                      if ( v37 )
                        continue;
                      break;
                    }
                  }
LABEL_42:
                  sub_18004D480(v60, 2246194545i64, 1i64, v32);
                  v69 ^= 0x873E991A041B4D04ui64;
                  v45 = (__m128)*(unsigned int *)(v8 + 248);
                  *(double *)v45.m128_u64 = V_sinf();
                  v53 = _mm_shuffle_ps(v45, v45, 0);
                  sub_18004D980(v56, 2417859427i64, &v53);
                  v46 = (__m128)*(unsigned int *)(v8 + 252);
                  *(double *)v46.m128_u64 = V_sinf();
                  v53 = _mm_shuffle_ps(v46, v46, 0);
                  sub_18004D980(v56, 1360787319i64, &v53);
                }
                v47 = (__m128)*(unsigned int *)(v8 + 256);
                *(double *)v47.m128_u64 = V_sinf();
                v53 = _mm_shuffle_ps(v47, v47, 0);
                sub_18004D980(v56, 3626488954i64, &v53);
                v48 = (__m128)*(unsigned int *)(v8 + 260);
                *(double *)v48.m128_u64 = V_sinf();
                v53 = _mm_shuffle_ps(v48, v48, 0);
                sub_18004D980(v56, 530749042i64, &v53);
              }
              LOBYTE(v30) = 1;
              v49 = *(_BYTE *)(a6 + 1736);
              v50 = *(unsigned __int8 (__fastcall **)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD))(*(_QWORD *)qword_1808846B8 + 320i64);
              v51 = (*(__int64 (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)qword_180884778 + 384i64))(
                      qword_180884778,
                      3i64,
                      v30);
              v52 = a6 + 1716;
              if ( !v49 )
                v52 = 0i64;
              if ( v50(qword_1808846B8, v11, v56, a2, v51, v52, 0i64, 0x7FFFFFFF, 0) )
              {
                ++*(_DWORD *)(a7 + 28);
                (*(void (__fastcall **)(__int64, __int64, __int64, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                  a2,
                  1i64,
                  qword_1808DDDF8,
                  0i64,
                  4);
                (*(void (__fastcall **)(__int64, _QWORD, _QWORD))(*(_QWORD *)a2 + 592i64))(
                  a2,
                  *((_QWORD *)&xmmword_1808DCD90 + 1),
                  0i64);
                (*(void (__fastcall **)(__int64, _QWORD, _QWORD, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                  a2,
                  0i64,
                  xmmword_1808DCD90,
                  0i64,
                  -1);
                (*(void (__fastcall **)(__int64, __int64, _QWORD, _QWORD, _DWORD, _DWORD))(*(_QWORD *)a2 + 752i64))(
                  a2,
                  5i64,
                  0i64,
                  HIDWORD(qword_1808DCD88),
                  qword_1808DCD88,
                  0);
              }
              sub_18004C8A0(v56);
            }
          }
        }
      }
    }
  }
}
а новый оффсет какой ( был 0x128)
 
паттерн остался прежним

а вот смещение внутри него поменялось.
старое: v9 = *(int **)(v8 + 232);
новое: v9 = *(int **)(v8 + 208);

ну и еще дохера всего крч сам найди и посмотри

старый псевдо:
Expand Collapse Copy
void __fastcall sub_18014D420(__int64 a1, __int64 a2, __int64 a3, int a4, int a5, __int64 a6, __int64 a7)
{
  __int64 v8; // rsi
  int *v9; // rcx
  __int64 v10; // rcx
  __int64 v11; // r12
  __int64 v12; // rdi
  _OWORD *v13; // rbx
  __int128 v14; // xmm1
  __int128 v15; // xmm0
  __int64 v16; // rcx
  float v17; // xmm3_4
  __m128 v18; // xmm4
  __m128 v19; // xmm4
  __m128 v20; // xmm4
  __m128i si128; // xmm1
  __m128i *v22; // rax
  int v23; // edi
  unsigned int v24; // ecx
  int v25; // edx
  _QWORD *v26; // rax
  __m128i *v27; // rcx
  unsigned int v28; // edx
  int v29; // r8d
  unsigned int v30; // edx
  char *v31; // rcx
  int v32; // r8d
  unsigned __int64 v33; // rcx
  __int64 v34; // r8
  unsigned __int64 v35; // rax
  unsigned __int64 v36; // r9
  __m128i v37; // xmm1
  __m128i *v38; // rax
  unsigned int v39; // ecx
  int v40; // edx
  _QWORD *v41; // rax
  __m128i *v42; // rcx
  unsigned int v43; // edx
  int v44; // r8d
  unsigned int v45; // edx
  char *v46; // rcx
  int v47; // r8d
  unsigned __int64 v48; // rcx
  __m128 v49; // xmm0
  __m128 v50; // xmm0
  __m128 v51; // xmm0
  __m128 v52; // xmm0
  char v53; // bl
  unsigned __int8 (__fastcall *v54)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD); // rdi
  __int64 v55; // rax
  __int64 v56; // rcx
  __m128 v57; // [rsp+58h] [rbp-B0h] BYREF
  _OWORD *v58; // [rsp+68h] [rbp-A0h] BYREF
  _OWORD v59[3]; // [rsp+78h] [rbp-90h] BYREF
  char v60[160]; // [rsp+A8h] [rbp-60h] BYREF
  __int64 v61; // [rsp+148h] [rbp+40h]
  __int64 v62; // [rsp+1A8h] [rbp+A0h]
  char v63[96]; // [rsp+1B8h] [rbp+B0h] BYREF
  __int64 v64; // [rsp+218h] [rbp+110h]
  _QWORD *v65; // [rsp+220h] [rbp+118h]
  __int64 v66; // [rsp+2C8h] [rbp+1C0h]
  char v67[80]; // [rsp+2D8h] [rbp+1D0h] BYREF
  __int64 v68; // [rsp+328h] [rbp+220h]
  __int64 v69; // [rsp+3A8h] [rbp+2A0h]
  __int64 v70; // [rsp+3E8h] [rbp+2E0h]
  __int64 v71; // [rsp+418h] [rbp+310h]
  __int64 v72; // [rsp+428h] [rbp+320h]
  unsigned __int64 v73; // [rsp+430h] [rbp+328h]

  if ( a4 > 0 )
  {
    v8 = *(_QWORD *)(104i64 * a4 + a3 - 80);
    if ( v8 )
    {
      v9 = *(int **)(v8 + 232);
      if ( v9 )
      {
        if ( v9[8] > 0 )
        {
          v10 = *(_QWORD *)v9;
          if ( v10 )
          {
            v11 = (*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)v10 + 40i64))(v10, a6 + 48);
            if ( v11 )
            {
              v12 = (*(__int64 (__fastcall **)(__int64, __int64, _OWORD **))(*(_QWORD *)a2 + 256i64))(a2, 96i64, &v58);
              if ( v12 && (v13 = v58) != 0i64 )
              {
                *v58 = *(_OWORD *)(v8 + 48);
                v13[1] = *(_OWORD *)(v8 + 64);
                v13[2] = *(_OWORD *)(v8 + 80);
                sub_180487340(v8 + 48, v59);
                v14 = v59[1];
                v13[3] = v59[0];
                v15 = v59[2];
                v13[4] = v14;
                v13[5] = v15;
                (*(void (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)a2 + 264i64))(a2, v12, 96i64);
                sub_18004C520(v60);
                v57.m128_u64[0] = v12;
                v57.m128_i32[2] = 0;
                sub_18004CF40(v67, 4004786685i64, &v57);
                v16 = *(_QWORD *)(v8 + 168);
                if ( v16 )
                {
                  v72 = *(_QWORD *)(v8 + 168);
                  v62 = v16 + 176;
                  v64 = v16 + 272;
                  v66 = v16 + 384;
                  v68 = v16 + 560;
                  v69 = v16 + 656;
                  v70 = v16 + 784;
                  v71 = v16 + 848;
                  v61 = v16;
                }
                v17 = *(float *)(v8 + 264);
                v57.m128_u64[0] = *(_QWORD *)(v8 + 256);
                v57.m128_i32[3] = 0;
                v18 = v57;
                v18.m128_f32[0] = v57.m128_f32[0];
                v19 = _mm_shuffle_ps(v18, v18, 225);
                v19.m128_f32[0] = _mm_shuffle_ps((__m128)v57.m128_u64[0], (__m128)v57.m128_u64[0], 85).m128_f32[0];
                v20 = _mm_shuffle_ps(v19, v19, 198);
                v20.m128_f32[0] = v17;
                v57 = _mm_shuffle_ps(v20, v20, 201);
                sub_18004D5C0(v60, 2581987370i64, &v57);
                si128 = _mm_load_si128((const __m128i *)&xmmword_1805E9170);
                v22 = (__m128i *)v63;
                v23 = *(_DWORD *)(v8 + 268);
                v24 = 0;
                while ( 1 )
                {
                  v25 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v22));
                  if ( v25 )
                    break;
                  ++v24;
                  ++v22;
                  if ( v24 >= 3 )
                    goto LABEL_14;
                }
                v30 = dword_1806526A0[v25] + 4 * v24;
                if ( v30 < 0xC )
                {
                  v31 = &v63[4 * v30 + 48];
LABEL_25:
                  v33 = 0xBF58476D1CE4E5B9ui64
                      * ((*(int *)v31 | 0x83CB90D600000000ui64) ^ ((*(int *)v31 | 0x83CB90D600000000ui64) >> 30));
                  v73 ^= (0x94D049BB133111EBui64 * (v33 ^ (v33 >> 27))) ^ ((0x94D049BB133111EBui64 * (v33 ^ (v33 >> 27))) >> 31);
                  goto LABEL_26;
                }
LABEL_14:
                v26 = v65;
                if ( v65 )
                {
                  while ( 2 )
                  {
                    v27 = (__m128i *)(v26 + 2);
                    v28 = 0;
                    while ( 1 )
                    {
                      v29 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v27));
                      if ( v29 )
                        break;
                      ++v28;
                      ++v27;
                      if ( v28 >= 3 )
                        goto LABEL_22;
                    }
                    v32 = dword_1806526A0[v29] + 4 * v28;
                    if ( (unsigned int)v32 < 0xC )
                    {
                      v31 = (char *)v26 + 4 * v32 + 64;
                      goto LABEL_25;
                    }
LABEL_22:
                    v26 = (_QWORD *)*v26;
                    if ( v26 )
                      continue;
                    break;
                  }
                }
LABEL_26:
                sub_18004D3A0(v63, 2211156182i64, (unsigned __int8)v23, dword_1806526A0);
                v35 = 0xBF58476D1CE4E5B9ui64
                    * (((unsigned __int8)v23 | 0x83CB90D600000000ui64) ^ (((unsigned __int8)v23 | 0x83CB90D600000000ui64) >> 30));
                v36 = (0x94D049BB133111EBui64 * (v35 ^ (v35 >> 27))) ^ v73 ^ ((0x94D049BB133111EBui64
                                                                             * (v35 ^ (v35 >> 27))) >> 31);
                v73 = v36;
                if ( v23 == 2 )
                {
                  if ( *(float *)(v8 + 272) > -90.0 && *(float *)(v8 + 276) > -90.0 )
                  {
                    v37 = _mm_load_si128((const __m128i *)&xmmword_1805E9180);
                    v38 = (__m128i *)v63;
                    v39 = 0;
                    while ( 1 )
                    {
                      v40 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v37, *v38));
                      if ( v40 )
                        break;
                      ++v39;
                      ++v38;
                      if ( v39 >= 3 )
                        goto LABEL_32;
                    }
                    v45 = dword_1806526A0[v40] + 4 * v39;
                    if ( v45 < 0xC )
                    {
                      v46 = &v63[4 * v45 + 48];
LABEL_43:
                      v48 = 0xBF58476D1CE4E5B9ui64
                          * ((*(int *)v46 | 0x85E2357100000000ui64) ^ ((*(int *)v46 | 0x85E2357100000000ui64) >> 30));
                      v73 = (0x94D049BB133111EBui64 * (v48 ^ (v48 >> 27))) ^ v36 ^ ((0x94D049BB133111EBui64
                                                                                   * (v48 ^ (v48 >> 27))) >> 31);
                      goto LABEL_44;
                    }
LABEL_32:
                    v41 = v65;
                    if ( v65 )
                    {
                      while ( 2 )
                      {
                        v42 = (__m128i *)(v41 + 2);
                        v43 = 0;
                        while ( 1 )
                        {
                          v44 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v37, *v42));
                          if ( v44 )
                            break;
                          ++v43;
                          ++v42;
                          if ( v43 >= 3 )
                            goto LABEL_40;
                        }
                        v47 = dword_1806526A0[v44] + 4 * v43;
                        if ( (unsigned int)v47 < 0xC )
                        {
                          v46 = (char *)v41 + 4 * v47 + 64;
                          goto LABEL_43;
                        }
LABEL_40:
                        v41 = (_QWORD *)*v41;
                        if ( v41 )
                          continue;
                        break;
                      }
                    }
LABEL_44:
                    sub_18004D3A0(v63, 2246194545i64, 1i64, v36);
                    v73 ^= 0x873E991A041B4D04ui64;
                    v49 = (__m128)*(unsigned int *)(v8 + 272);
                    *(double *)v49.m128_u64 = V_sinf();
                    v57 = _mm_shuffle_ps(v49, v49, 0);
                    sub_18004D5C0(v60, 2417859427i64, &v57);
                    v50 = (__m128)*(unsigned int *)(v8 + 276);
                    *(double *)v50.m128_u64 = V_sinf();
                    v57 = _mm_shuffle_ps(v50, v50, 0);
                    sub_18004D5C0(v60, 1360787319i64, &v57);
                  }
                  v51 = (__m128)*(unsigned int *)(v8 + 280);
                  *(double *)v51.m128_u64 = V_sinf();
                  v57 = _mm_shuffle_ps(v51, v51, 0);
                  sub_18004D5C0(v60, 3626488954i64, &v57);
                  v52 = (__m128)*(unsigned int *)(v8 + 284);
                  *(double *)v52.m128_u64 = V_sinf();
                  v57 = _mm_shuffle_ps(v52, v52, 0);
                  sub_18004D5C0(v60, 530749042i64, &v57);
                }
                LOBYTE(v34) = 1;
                v53 = *(_BYTE *)(a6 + 1736);
                v54 = *(unsigned __int8 (__fastcall **)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD))(*(_QWORD *)qword_18087B358 + 320i64);
                v55 = (*(__int64 (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)qword_18087B418 + 376i64))(
                        qword_18087B418,
                        3i64,
                        v34);
                v56 = a6 + 1716;
                if ( !v53 )
                  v56 = 0i64;
                if ( v54(qword_18087B358, v11, v60, a2, v55, v56, 0i64, 0x7FFFFFFF, 0) )
                {
                  ++*(_DWORD *)(a7 + 28);
                  (*(void (__fastcall **)(__int64, __int64, __int64, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                    a2,
                    1i64,
                    qword_1808D2840,
                    0i64,
                    4);
                  (*(void (__fastcall **)(__int64, _QWORD, _QWORD))(*(_QWORD *)a2 + 592i64))(
                    a2,
                    *((_QWORD *)&xmmword_1808D17E0 + 1),
                    0i64);
                  (*(void (__fastcall **)(__int64, _QWORD, _QWORD, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                    a2,
                    0i64,
                    xmmword_1808D17E0,
                    0i64,
                    -1);
                  (*(void (__fastcall **)(__int64, __int64, _QWORD, _QWORD, _DWORD, _DWORD))(*(_QWORD *)a2 + 736i64))(
                    a2,
                    5i64,
                    0i64,
                    HIDWORD(qword_1808D17D8),
                    qword_1808D17D8,
                    0);
                }
                sub_18004C7C0(v60);
              }
              else if ( dword_1808D4D28 < 10 )
              {
                ++dword_1808D4D28;
                Warning("LockDynamicConstantBuffer failed in CSkyBoxObjectDesc::DrawArray!!!\n");
              }
            }
          }
        }
      }
    }
  }
}


новый псевдо:
Expand Collapse Copy
void __fastcall sub_18014FB90(__int64 a1, __int64 a2, __int64 a3, int a4, int a5, __int64 a6, __int64 a7)
{
  __int64 v8; // rdi
  int *v9; // rcx
  __int64 v10; // rcx
  __int64 v11; // r12
  __int64 v12; // rcx
  float v13; // xmm3_4
  __m128 v14; // xmm4
  __m128 v15; // xmm4
  __m128 v16; // xmm4
  int v17; // esi
  __m128i *v18; // rax
  __m128i si128; // xmm1
  unsigned int v20; // ecx
  int v21; // edx
  _QWORD *v22; // rax
  __m128i *v23; // rcx
  unsigned int v24; // edx
  int v25; // r8d
  unsigned int v26; // edx
  char *v27; // rcx
  int v28; // r8d
  unsigned __int64 v29; // rcx
  __int64 v30; // r8
  unsigned __int64 v31; // rax
  unsigned __int64 v32; // r9
  __m128i v33; // xmm1
  __m128i *v34; // rax
  unsigned int v35; // ecx
  int v36; // edx
  _QWORD *v37; // rax
  __m128i *v38; // rcx
  unsigned int v39; // edx
  int v40; // r8d
  unsigned int v41; // edx
  char *v42; // rcx
  int v43; // r8d
  unsigned __int64 v44; // rcx
  __m128 v45; // xmm0
  __m128 v46; // xmm0
  __m128 v47; // xmm0
  __m128 v48; // xmm0
  char v49; // bl
  unsigned __int8 (__fastcall *v50)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD); // rdi
  __int64 v51; // rax
  __int64 v52; // rcx
  __m128 v53; // [rsp+58h] [rbp-B0h] BYREF
  _OWORD v54[3]; // [rsp+68h] [rbp-A0h] BYREF
  __int128 v55[4]; // [rsp+98h] [rbp-70h] BYREF
  char v56[160]; // [rsp+D8h] [rbp-30h] BYREF
  __int64 v57; // [rsp+178h] [rbp+70h]
  char v58[80]; // [rsp+188h] [rbp+80h] BYREF
  __int64 v59; // [rsp+1D8h] [rbp+D0h]
  char v60[96]; // [rsp+1E8h] [rbp+E0h] BYREF
  __int64 v61; // [rsp+248h] [rbp+140h]
  _QWORD *v62; // [rsp+250h] [rbp+148h]
  __int64 v63; // [rsp+2F8h] [rbp+1F0h]
  __int64 v64; // [rsp+358h] [rbp+250h]
  __int64 v65; // [rsp+3D8h] [rbp+2D0h]
  __int64 v66; // [rsp+418h] [rbp+310h]
  __int64 v67; // [rsp+448h] [rbp+340h]
  __int64 v68; // [rsp+458h] [rbp+350h]
  unsigned __int64 v69; // [rsp+460h] [rbp+358h]

  if ( a4 > 0 )
  {
    v8 = *(_QWORD *)(104i64 * a4 + a3 - 80);
    if ( v8 )
    {
      v9 = *(int **)(v8 + 208);
      if ( v9 )
      {
        if ( v9[8] > 0 )
        {
          v10 = *(_QWORD *)v9;
          if ( v10 )
          {
            v11 = (*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)v10 + 40i64))(v10, a6 + 48);
            if ( v11 )
            {
              sub_18048D200(v8 + 48, v54);
              sub_18004C5A0(v56);
              v12 = *(_QWORD *)(v8 + 168);
              if ( v12 )
              {
                v68 = *(_QWORD *)(v8 + 168);
                v59 = v12 + 176;
                v61 = v12 + 272;
                v63 = v12 + 384;
                v64 = v12 + 560;
                v65 = v12 + 656;
                v66 = v12 + 784;
                v67 = v12 + 848;
                v57 = v12;
              }
              v55[0] = v54[0];
              v55[1] = v54[1];
              v55[2] = v54[2];
              v55[3] = (__int128)_mm_load_si128((const __m128i *)&xmmword_1805F0AB0);
              sub_1800ACBD0(v58, 4222080039i64, v55);
              v13 = *(float *)(v8 + 240);
              v53.m128_u64[0] = *(_QWORD *)(v8 + 232);
              v53.m128_i32[3] = 0;
              v14 = v53;
              v14.m128_f32[0] = v53.m128_f32[0];
              v15 = _mm_shuffle_ps(v14, v14, 225);
              v15.m128_f32[0] = _mm_shuffle_ps((__m128)v53.m128_u64[0], (__m128)v53.m128_u64[0], 85).m128_f32[0];
              v16 = _mm_shuffle_ps(v15, v15, 198);
              v16.m128_f32[0] = v13;
              v53 = _mm_shuffle_ps(v16, v16, 201);
              sub_18004D980(v56, 2581987370i64, &v53);
              v17 = *(_DWORD *)(v8 + 244);
              v18 = (__m128i *)v60;
              si128 = _mm_load_si128((const __m128i *)&xmmword_1805F0F20);
              v20 = 0;
              while ( 1 )
              {
                v21 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v18));
                if ( v21 )
                  break;
                ++v20;
                ++v18;
                if ( v20 >= 3 )
                  goto LABEL_12;
              }
              v26 = dword_18065A6A0[v21] + 4 * v20;
              if ( v26 < 0xC )
              {
                v27 = &v60[4 * v26 + 48];
                goto LABEL_23;
              }
LABEL_12:
              v22 = v62;
              if ( !v62 )
                goto LABEL_24;
LABEL_13:
              v23 = (__m128i *)(v22 + 2);
              v24 = 0;
              while ( 1 )
              {
                v25 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(si128, *v23));
                if ( v25 )
                  break;
                ++v24;
                ++v23;
                if ( v24 >= 3 )
                {
LABEL_20:
                  v22 = (_QWORD *)*v22;
                  if ( !v22 )
                    goto LABEL_24;
                  goto LABEL_13;
                }
              }
              v28 = dword_18065A6A0[v25] + 4 * v24;
              if ( (unsigned int)v28 >= 0xC )
                goto LABEL_20;
              v27 = (char *)v22 + 4 * v28 + 64;
LABEL_23:
              v29 = 0xBF58476D1CE4E5B9ui64
                  * ((*(int *)v27 | 0x83CB90D600000000ui64) ^ ((*(int *)v27 | 0x83CB90D600000000ui64) >> 30));
              v69 ^= (0x94D049BB133111EBui64 * (v29 ^ (v29 >> 27))) ^ ((0x94D049BB133111EBui64 * (v29 ^ (v29 >> 27))) >> 31);
LABEL_24:
              sub_18004D480(v60, 2211156182i64, (unsigned __int8)v17, 0x83CB90D600000000ui64);
              v31 = 0xBF58476D1CE4E5B9ui64
                  * (((unsigned __int8)v17 | 0x83CB90D600000000ui64) ^ (((unsigned __int8)v17 | 0x83CB90D600000000ui64) >> 30));
              v32 = (0x94D049BB133111EBui64 * (v31 ^ (v31 >> 27))) ^ v69 ^ ((0x94D049BB133111EBui64 * (v31 ^ (v31 >> 27))) >> 31);
              v69 = v32;
              if ( v17 == 2 )
              {
                if ( *(float *)(v8 + 248) > -90.0 && *(float *)(v8 + 252) > -90.0 )
                {
                  v33 = _mm_load_si128((const __m128i *)&xmmword_1805F0F30);
                  v34 = (__m128i *)v60;
                  v35 = 0;
                  while ( 1 )
                  {
                    v36 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v33, *v34));
                    if ( v36 )
                      break;
                    ++v35;
                    ++v34;
                    if ( v35 >= 3 )
                      goto LABEL_30;
                  }
                  v41 = dword_18065A6A0[v36] + 4 * v35;
                  if ( v41 < 0xC )
                  {
                    v42 = &v60[4 * v41 + 48];
LABEL_41:
                    v44 = 0xBF58476D1CE4E5B9ui64
                        * ((*(int *)v42 | 0x85E2357100000000ui64) ^ ((*(int *)v42 | 0x85E2357100000000ui64) >> 30));
                    v69 = (0x94D049BB133111EBui64 * (v44 ^ (v44 >> 27))) ^ v32 ^ ((0x94D049BB133111EBui64
                                                                                 * (v44 ^ (v44 >> 27))) >> 31);
                    goto LABEL_42;
                  }
LABEL_30:
                  v37 = v62;
                  if ( v62 )
                  {
                    while ( 2 )
                    {
                      v38 = (__m128i *)(v37 + 2);
                      v39 = 0;
                      while ( 1 )
                      {
                        v40 = _mm_movemask_ps((__m128)_mm_cmpeq_epi32(v33, *v38));
                        if ( v40 )
                          break;
                        ++v39;
                        ++v38;
                        if ( v39 >= 3 )
                          goto LABEL_38;
                      }
                      v43 = dword_18065A6A0[v40] + 4 * v39;
                      if ( (unsigned int)v43 < 0xC )
                      {
                        v42 = (char *)v37 + 4 * v43 + 64;
                        goto LABEL_41;
                      }
LABEL_38:
                      v37 = (_QWORD *)*v37;
                      if ( v37 )
                        continue;
                      break;
                    }
                  }
LABEL_42:
                  sub_18004D480(v60, 2246194545i64, 1i64, v32);
                  v69 ^= 0x873E991A041B4D04ui64;
                  v45 = (__m128)*(unsigned int *)(v8 + 248);
                  *(double *)v45.m128_u64 = V_sinf();
                  v53 = _mm_shuffle_ps(v45, v45, 0);
                  sub_18004D980(v56, 2417859427i64, &v53);
                  v46 = (__m128)*(unsigned int *)(v8 + 252);
                  *(double *)v46.m128_u64 = V_sinf();
                  v53 = _mm_shuffle_ps(v46, v46, 0);
                  sub_18004D980(v56, 1360787319i64, &v53);
                }
                v47 = (__m128)*(unsigned int *)(v8 + 256);
                *(double *)v47.m128_u64 = V_sinf();
                v53 = _mm_shuffle_ps(v47, v47, 0);
                sub_18004D980(v56, 3626488954i64, &v53);
                v48 = (__m128)*(unsigned int *)(v8 + 260);
                *(double *)v48.m128_u64 = V_sinf();
                v53 = _mm_shuffle_ps(v48, v48, 0);
                sub_18004D980(v56, 530749042i64, &v53);
              }
              LOBYTE(v30) = 1;
              v49 = *(_BYTE *)(a6 + 1736);
              v50 = *(unsigned __int8 (__fastcall **)(__int64, __int64, char *, __int64, __int64, __int64, _QWORD, int, _DWORD))(*(_QWORD *)qword_1808846B8 + 320i64);
              v51 = (*(__int64 (__fastcall **)(__int64, __int64, __int64))(*(_QWORD *)qword_180884778 + 384i64))(
                      qword_180884778,
                      3i64,
                      v30);
              v52 = a6 + 1716;
              if ( !v49 )
                v52 = 0i64;
              if ( v50(qword_1808846B8, v11, v56, a2, v51, v52, 0i64, 0x7FFFFFFF, 0) )
              {
                ++*(_DWORD *)(a7 + 28);
                (*(void (__fastcall **)(__int64, __int64, __int64, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                  a2,
                  1i64,
                  qword_1808DDDF8,
                  0i64,
                  4);
                (*(void (__fastcall **)(__int64, _QWORD, _QWORD))(*(_QWORD *)a2 + 592i64))(
                  a2,
                  *((_QWORD *)&xmmword_1808DCD90 + 1),
                  0i64);
                (*(void (__fastcall **)(__int64, _QWORD, _QWORD, _QWORD, int))(*(_QWORD *)a2 + 624i64))(
                  a2,
                  0i64,
                  xmmword_1808DCD90,
                  0i64,
                  -1);
                (*(void (__fastcall **)(__int64, __int64, _QWORD, _QWORD, _DWORD, _DWORD))(*(_QWORD *)a2 + 752i64))(
                  a2,
                  5i64,
                  0i64,
                  HIDWORD(qword_1808DCD88),
                  qword_1808DCD88,
                  0);
              }
              sub_18004C8A0(v56);
            }
          }
        }
      }
    }
  }
}
а какой новый оффсет ( был 0x128)
 
либо 130 либо таким и остался
точно не мог таким остаться потому что я хукал с таким же оффсетом паттерном скайбоксы ( на прошлой работали) и вообще ниче небыло возможно 130
 
Кидайте список названий переменных/функций и что вам нужно: оффсет/сигнатура/индекс

я и возможно другие добрые люди поищут
мне нужно всео ффсеты и паттерны и если че там надо ещё для чита то тоже скинь
 
скиньте паже новые
constexpr const char* sig_ThirdPersonReset = "48 8B 40 08 44 38 20 75 10 44 88 67 01";
constexpr const char* sig_DrawObject = "48 8B C4 53 57 41 54 48 81 EC D0 00 00 00 49 63 F9 49";
constexpr const char* sig_LoadKV3 = "48 8D 0D ? ? ? ? FF 15 ? ? ? ? 49 8B 06";
constexpr const char* sig_CreateMaterial = "48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC ? 8B F1 48 8B DA";
 
скиньте паже новые
constexpr const char* sig_ThirdPersonReset = "48 8B 40 08 44 38 20 75 10 44 88 67 01";
constexpr const char* sig_DrawObject = "48 8B C4 53 57 41 54 48 81 EC D0 00 00 00 49 63 F9 49";
constexpr const char* sig_LoadKV3 = "48 8D 0D ? ? ? ? FF 15 ? ? ? ? 49 8B 06";
constexpr const char* sig_CreateMaterial = "48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC ? 8B F1 48 8B DA";
какие то шизоидные у тебя сигнатуры щас. в середину функций кидают
 
Назад
Сверху Снизу