Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // write access to const memory has been detected, the output may be wrong!
- void __fastcall sub_1404531A0(__int64 a1)
- {
- __int64 v1; // rsi
- int v2; // edi
- signed __int64 v3; // rbx
- int v4; // eax
- __int64 v5; // rdx
- int v6; // er9
- float v7; // eax
- unsigned int v8; // ecx
- __int64 v9; // rax
- int v10; // er8
- int v11; // ecx
- int v12; // ebx
- __int64 v13; // rax
- EntityInfo *v14; // rax
- __int64 v15; // rdi
- __int64 **v16; // rax
- int v17; // ebx
- int v18; // [rsp+30h] [rbp-168h]
- const char *v19; // [rsp+40h] [rbp-158h]
- int v20; // [rsp+48h] [rbp-150h]
- int v21; // [rsp+4Ch] [rbp-14Ch]
- __int64 v22; // [rsp+50h] [rbp-148h]
- __int64 v23; // [rsp+58h] [rbp-140h]
- signed int v24; // [rsp+60h] [rbp-138h]
- __int64 v25; // [rsp+68h] [rbp-130h]
- __int128 v26; // [rsp+70h] [rbp-128h]
- __int128 v27; // [rsp+80h] [rbp-118h]
- __int64 v28; // [rsp+90h] [rbp-108h]
- _BYTE v29[160]; // [rsp+E0h] [rbp-B8h]
- v1 = a1;
- v2 = 0;
- v3 = 0i64;
- v4 = sub_1405C7880(a1, *(_DWORD *)(a1 + 0x3EC8), *(_DWORD *)(a1 + 0x3ECC), (__int64)v29, (__int64)&v19);
- v5 = v4;
- if ( v4 > 0 )
- {
- do
- {
- *((_DWORD *)&v19 + v3) += v2;
- v2 = *((_DWORD *)&v19 + v3++);
- }
- while ( v3 < v4 );
- }
- v6 = 0;
- LODWORD(v7) = 1664525 * LODWORD(g_dwSeed) + 1013904223;
- g_dwSeed = v7;
- v8 = (unsigned int)((LODWORD(v7) >> 16) * ((signed __int16)(v2 - 1) + 1)) >> 16;
- v9 = 0i64;
- v10 = (signed __int16)v8;
- v11 = 0;
- if ( v5 > 0 )
- {
- while ( *((_DWORD *)&v19 + v9) < v10 )
- {
- ++v9;
- ++v11;
- if ( v9 >= v5 )
- goto LABEL_8;
- }
- v6 = v11;
- }
- LABEL_8:
- v12 = 0x4F000;
- switch ( *(_DWORD *)&v29[4 * v6] )
- {
- case 0xF001:
- v12 = 323585;
- break;
- case 0xF002:
- v12 = 323586;
- break;
- case 0xF003:
- v12 = 323587;
- break;
- case 0xF004:
- v12 = 323588;
- break;
- case 0xF005:
- v12 = 323589;
- break;
- case 0xF006:
- v12 = 323590;
- break;
- case 0xF007:
- v12 = 323591;
- break;
- case 0xF008:
- v12 = 323592;
- break;
- case 0xF009:
- v12 = 323593;
- break;
- case 0xF010:
- v12 = 323600;
- break;
- case 0xF011:
- v12 = 323601;
- break;
- case 0xF012:
- v12 = 323602;
- break;
- case 0xF013:
- v12 = 323603;
- break;
- case 0xF014:
- v12 = 0x4F014;
- break;
- case 0xF015:
- v12 = 0x4F015;
- break;
- case 0xF016:
- v12 = 0x4F016;
- break;
- case 0xF017:
- v12 = 0x4F017;
- break;
- case 0xF018:
- v12 = 323608;
- break;
- case 0xF019:
- v12 = 323609;
- break;
- case 0xF01A:
- v12 = 323610;
- break;
- case 0xF020:
- v12 = 323616;
- break;
- case 0xF021:
- v12 = 323617;
- break;
- case 0xF022:
- v12 = 323618;
- break;
- case 0xF023:
- v12 = 323619;
- break;
- case 0xF024:
- v12 = 323620;
- break;
- case 0xF025:
- v12 = 323621;
- break;
- case 0xF026:
- v12 = 323622;
- break;
- case 0xF027:
- v12 = 323623;
- break;
- case 0xF028:
- v12 = 323624;
- break;
- case 0xF029:
- v12 = 0x4F029;
- break;
- case 0xF02A:
- v12 = 0x4F02A;
- break;
- case 0xF02B:
- v12 = 323627;
- break;
- case 0xF02C:
- v12 = 323628;
- break;
- case 0xF02D:
- v12 = 323629;
- break;
- case 0xF02E:
- v12 = 323630;
- break;
- case 0xF030:
- v12 = 323632;
- break;
- case 0xF031:
- v12 = 323633;
- break;
- case 0xF032:
- v12 = 323634;
- break;
- case 0xF033:
- v12 = 323635;
- break;
- case 0xF034:
- v12 = 323636;
- break;
- case 0xF040:
- v18 = *(_DWORD *)(v1 + 0xC80);
- v13 = (__int64)GetEntityFromHandle(&v18);
- if ( v13 )
- v12 = (*(_DWORD *)(v13 + 0x5B8) == 0x10200) + 0x4F040;
- break;
- case 0xF042:
- v12 = 0x4F042;
- break;
- default:
- break;
- }
- v23 = 0i64;
- _mm_store_si128((__m128i *)&v26, (__m128i)0i64);
- _mm_store_si128((__m128i *)&v27, (__m128i)0i64);
- v19 = "BehaviorFunnel";
- v24 = 1;
- v25 = 0i64;
- v28 = 0i64;
- v20 = v12;
- v21 = v12;
- v22 = 0i64;
- v14 = CSceneEntitySystem::CreateEntity((__int64)&g_pSceneEntityHeap, (Create_t *)&v19);
- if ( v14 )
- {
- *(_DWORD *)(v1 + 16088) = v14->m_hParent;
- if ( !(v14->m_Flags & 3) )
- {
- v15 = (__int64)v14->m_pParent;
- if ( v15 && (v16 = (__int64 **)(*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v15 + 24i64))(v15)) != 0i64 )
- {
- while ( off_1410814C0 != (__int64 ***)v16 )
- {
- v16 = (__int64 **)*v16;
- if ( !v16 )
- goto LABEL_58;
- }
- }
- else
- {
- LABEL_58:
- v15 = 0i64;
- }
- if ( v15 )
- sub_14049E490(v15, *(_QWORD *)(v1 + 1552));
- }
- }
- *(_DWORD *)(v1 + 16084) = 0;
- v17 = v12 - 323610;
- if ( !v17 || v17 == 19 )
- *(_DWORD *)(v1 + 16084) = 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement