Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // This file was generated by the Retargetable Decompiler
- // Website: https://retdec.com
- // Copyright (c) 2019 Retargetable Decompiler <info@retdec.com>
- //
- #include <stdint.h>
- // ----------------- Float Types Definitions ------------------
- typedef float float32_t;
- typedef double float64_t;
- // ------------------------ Structures ------------------------
- struct CPedAcquaintance {
- int32_t e0;
- int32_t e1;
- int32_t e2;
- int32_t e3;
- int32_t e4;
- };
- // ------------------------- Classes --------------------------
- // __non_rtti_object (base classes: exception, bad_typeid)
- // bad_cast (base classes: exception)
- // bad_typeid
- // exception
- // .?AVlogic_error@std@@ (base classes: exception)
- // .?AVout_of_range@std@@ (base classes: exception, .?AVlogic_error@std@@)
- // b
- // ------------------- Function Prototypes --------------------
- int32_t _3f__3f_0CEventAcquaintancePed_40__40_QAE_40_PAVCPed_40__40__40_Z(int32_t a1);
- int32_t _3f__3f_0CPedIntelligence_40__40_QAE_40_PAVCPed_40__40__40_Z(int32_t a1);
- int32_t _3f__3f_0CPhysical_40__40_QAE_40_XZ(int32_t a1);
- int32_t _3f__3f_0CTaskSimpleStandStill_40__40_QAE_40_I_N_NM_40_Z(int32_t a1, char a2, char a3, int32_t a4);
- float64_t _3f__3f_2CTask_40__40_YAPAXI_40_Z(void);
- int32_t _PedIntelligencePool__allocate(void);
- int32_t _pow2(char a1);
- int32_t _Z13FindPlayerPedi(int32_t a1);
- int32_t _ZN4CPedC2Ej(int32_t pPed, int32_t a2);
- int32_t CEventAcquaintancePed__dtor(void);
- int32_t CEventGroup__setActorEvent(int32_t a1, char a2);
- int32_t CPed_3a__3a_giveWeapon(int32_t a1, int32_t a2, int32_t a3);
- int32_t CPedAcquaintance__setForPedTypes(int32_t a1, int32_t a2);
- int32_t CPedSound__constructor(void);
- int32_t CPedTasks___3f_assignPrimaryTask(int32_t a1, int32_t a2, int32_t a3);
- int32_t CPopulation__updatePedCount(int32_t a1, char a2);
- int32_t CTask_870ADC__constructor(void);
- int32_t dummy_4E6AA0(int32_t a1);
- struct CPedAcquaintance * getPedTypeAcquaintancePtr(int32_t a1);
- int32_t ida_821216(void);
- int32_t ida_821b5e(void);
- int32_t ida_821d70(void);
- int32_t ida_822e85(void);
- int32_t ida_822f45(void);
- int32_t ida_822f80(void);
- int32_t ida_822fb8(void);
- int32_t sub_4E0E80(int32_t a1);
- int32_t sub_4F3D60(char * a1, char a2);
- int32_t sub_5FD8C0(int32_t a1);
- int32_t sub_681B60(int32_t a1, int32_t a2);
- // --------------------- Global Variables ---------------------
- int32_t _3f__3f__7CEventAcquaintancePedHate_40__40_6B_40_ = 0x420fb0;
- int32_t _3f__3f__7CPed_40__40_6B_40_ = 0x5e8c80;
- int32_t _vmt_85F438 = 0x4f2e90; // 0x85F438
- int32_t _vmt_86C2A8 = 0x4e1180; // 0x86C2A8
- int32_t _vmt_86C2AC = 0x504b70; // 0x86C2AC
- char g1 = 0;
- int32_t g2;
- // ------------------------ Functions -------------------------
- // Address range: 0x5e8030 - 0x5e8613
- // Demangled: CPed::CPed(uint)
- int32_t _ZN4CPedC2Ej(int32_t pPed, int32_t a2) {
- int32_t v1 = 0; // esp
- int32_t v2 = __readfsdword(0); // bp-12
- __writefsdword(0, (int32_t)&v2);
- int32_t v3; // ecx
- int32_t result = v3; // esi
- int32_t v4; // edi
- _3f__3f_0CPhysical_40__40_QAE_40_XZ(v4);
- int32_t v5 = result + 312; // ebp
- int32_t v6 = 0; // ebx
- *(int32_t *)result = (int32_t)&_3f__3f__7CPed_40__40_6B_40_;
- *(int32_t *)(v5 + 16) = v6;
- *(int32_t *)v5 = (int32_t)&_vmt_86C2A8;
- *(int32_t *)(v5 + 184) = v6;
- *(int32_t *)(v5 + 168) = (int32_t)&_vmt_85F438;
- *(int16_t *)(v5 + 304) = (int16_t)v6;
- *(int32_t *)(v5 + 328) = v6;
- *(int32_t *)(v5 + 332) = v6;
- *(int32_t *)(v5 + 148) = v6;
- *(char *)(v5 + 124) = (char)v6;
- *(int32_t *)(v5 + 156) = v6;
- *(int32_t *)(v5 + 160) = v6;
- *(int32_t *)(v5 + 164) = v6;
- CPedSound__constructor();
- v4 = result + 916;
- *(int32_t *)(result + 932) = v6;
- *(int32_t *)(v4 + 132) = v6;
- *(int32_t *)(v4 + 136) = v6;
- *(int32_t *)(v4 + 140) = v6;
- *(int32_t *)(v4 + 156) = v6;
- *(char *)(v4 + 126) = (char)v6;
- *(int32_t *)(v4 + 144) = v6;
- *(char *)(v4 + 124) = (char)v6;
- *(char *)(v4 + 125) = (char)v6;
- *(int32_t *)(v4 + 148) = v6;
- *(int32_t *)(v4 + 152) = v6;
- *(int32_t *)v4 = (int32_t)&_vmt_86C2AC;
- *(int32_t *)(v4 + 164) = v6;
- *(char *)(v4 + 160) = (char)v6;
- v3 = 0;
- *(int32_t *)(result + 1240) = v6;
- *(int32_t *)(result + 1244) = v6;
- int32_t v7 = result + 1248; // 0x5e811d
- int32_t v8 = v7; // eax
- *(int32_t *)v7 = v3;
- *(int32_t *)(v8 + 4) = v3;
- *(int32_t *)(v8 + 8) = v3;
- *(int32_t *)(v8 + 12) = v3;
- *(int32_t *)(v8 + 16) = v3;
- sub_5FD8C0(result);
- *(int32_t *)(result + 1344) = 0x42c80000;
- *(int32_t *)(result + 1348) = 0x42c80000;
- *(int32_t *)(result + 1352) = v6;
- *(int32_t *)(result + 1432) = pPed;
- ida_821d70();
- char * v9 = (char *)(result + 54); // 0x5e817d
- int32_t v10 = *(int32_t *)(result + 64); // 0x5e8180
- *v9 = *v9 & -8 | 3;
- *(int32_t *)(result + 64) = v10 | 0x10000010;
- *(char *)(result + 1156) = 1;
- v8 = v6;
- *(int32_t *)(result + 1420) = v6;
- *(int32_t *)(result + 1324) = v6;
- *(int32_t *)(result + 1860) = v6;
- *(int32_t *)(result + 1868) = v6;
- *(int32_t *)(result + 1864) = v6;
- *(int32_t *)(result + 1872) = v6;
- *(int32_t *)(result + 1360) = v6;
- *(int32_t *)(result + 1364) = v6;
- int32_t v11 = result + 1388; // 0x5e81d2
- *(int32_t *)v11 = v8;
- *(int32_t *)(v11 + 4) = v6;
- *(int32_t *)(v11 + 8) = v8;
- int32_t v12 = result + 1400; // 0x5e81e2
- v3 = v12;
- *(int32_t *)v12 = v6;
- *(int32_t *)(v3 + 4) = v8;
- *(int32_t *)(result + 1328) = 1;
- *(int32_t *)(result + 1332) = 1;
- int32_t v13 = *(int32_t *)(result + 1132); // 0x5e8200
- *(int32_t *)(result + 1368) = v6;
- *(int32_t *)(result + 1376) = 0x41700000;
- *(int32_t *)(result + 1380) = 0x3dcccccd;
- *(int32_t *)(result + 1372) = v6;
- *(int32_t *)(result + 1384) = v6;
- *(int32_t *)(v3 + 8) = 0x3f800000;
- *(char *)(result + 1817) = 40;
- *(int32_t *)(result + 1428) = v6;
- *(int32_t *)(result + 296) = v6;
- *(int32_t *)(result + 1336) = v6;
- *(int32_t *)(result + 1840) = v6;
- *(int32_t *)(result + 1844) = 0x3f800000;
- *(int32_t *)(result + 1820) = v6;
- *(int32_t *)(result + 1848) = v6;
- *(int32_t *)(result + 1852) = v6;
- *(int32_t *)(result + 1412) = v6;
- *(int32_t *)(result + 1416) = 0x47c34fff;
- *(int32_t *)(result + 140) = 0x428c0000;
- *(int32_t *)(result + 144) = 0x42c80000;
- *(int32_t *)(result + 152) = 0x3bbb3ee7;
- *(int32_t *)(result + 156) = 0x3d4ccccd;
- *(char *)(result + 1876) = -1;
- *(int32_t *)(result + 1132) = v13 & -0x20000 | 0x2000;
- int32_t v14 = ida_821b5e(); // 0x5e82d9
- int32_t v15 = *(int32_t *)(result + 1132); // 0x5e82de
- int32_t v16 = *(int32_t *)(result + 1140); // 0x5e82e4
- *(int32_t *)(result + 1136) = 0x6100000;
- int32_t v17 = (v15 & 0x1ffff | ((v14 & 3) != 0 ? 0x20000 : 0)) ^ -0x7ffe0000; // 0x5e830d
- *(int32_t *)(result + 1132) = v17;
- int32_t v18 = *(int32_t *)(result + 1144); // 0x5e8315
- *(int32_t *)(result + 1140) = v16 & 0x20000000 | 0x4000000;
- *(int32_t *)(result + 1144) = v18 & -0x3fffe0 | 0x21000;
- dummy_4E6AA0(result);
- sub_4E0E80(result);
- struct CPedAcquaintance * v19 = getPedTypeAcquaintancePtr(*(int32_t *)(result + 1432)); // 0x5e8353
- v8 = (int32_t)v19;
- *(int32_t *)(result + 1248) = v19->e0;
- *(int32_t *)(result + 1252) = *(int32_t *)(v8 + 4);
- *(int32_t *)(result + 1256) = *(int32_t *)(v8 + 8);
- int32_t v20 = *(int32_t *)(v8 + 12); // 0x5e8372
- *(int32_t *)(result + 1260) = v20;
- int32_t v21 = *(int32_t *)(v8 + 16); // 0x5e837b
- *(int32_t *)(result + 1264) = v21;
- *(int32_t *)(result + 1804) = 55;
- *(int32_t *)(result + 1808) = 55;
- *(char *)(result + 1816) = (char)v6;
- int32_t v22 = result + 1444; // 0x5e839e
- v8 = v22;
- *(int32_t *)(v22 - 4) = v6;
- *(int32_t *)v8 = v6;
- *(int32_t *)(v8 + 4) = v6;
- *(int32_t *)(v8 + 8) = v6;
- *(int32_t *)(v8 + 12) = v6;
- int32_t v23 = v8 + 28; // 0x5e83be
- v8 = v23;
- int32_t v24 = 12; // 0x5e83c1
- while (v24 != 0) {
- // 0x5e83b0
- *(int32_t *)(v23 - 4) = v6;
- *(int32_t *)v8 = v6;
- *(int32_t *)(v8 + 4) = v6;
- *(int32_t *)(v8 + 8) = v6;
- *(int32_t *)(v8 + 12) = v6;
- v23 = v8 + 28;
- v8 = v23;
- v24--;
- }
- // 0x5e83c4
- *(char *)(result + 1836) = 1;
- *(char *)(result + 1837) = 4;
- *(char *)(result + 1838) = (char)v6;
- CPed_3a__3a_giveWeapon(v6, v6, 1);
- v4 = -1;
- *(char *)(result + 1818) = 60;
- *(char *)(result + 1888) = -1;
- *(int32_t *)(result + 1892) = v6;
- *(int32_t *)(result + 1896) = v6;
- *(int32_t *)(result + 252) = v6;
- *(int32_t *)(result + 1924) = v6;
- *(char *)(result + 1120) = (char)v6;
- *(int32_t *)(result + 1128) = v6;
- *(int32_t *)(result + 1856) = v4;
- *(int16_t *)(result + 1878) = (int16_t)v6;
- *(char *)(result + 1839) = (char)v6;
- *(int32_t *)(result + 1356) = v6;
- *(int32_t *)(result + 1424) = v6;
- *(int32_t *)(result + 1268) = v6;
- *(int32_t *)(result + 1272) = v6;
- *(int32_t *)(result + 1276) = v6;
- *(int32_t *)(result + 1280) = v6;
- *(int16_t *)(result + 1284) = (int16_t)v6;
- *(int16_t *)(result + 1286) = (int16_t)v6;
- *(int16_t *)(result + 1288) = (int16_t)v6;
- *(int16_t *)(result + 1290) = (int16_t)v6;
- *(int32_t *)(result + 1928) = v6;
- *(int32_t *)(result + 1932) = v6;
- *(int32_t *)(result + 1944) = v4;
- int32_t v25;
- if (_PedIntelligencePool__allocate() == v6) {
- // 0x5e84a1
- v25 = 0;
- } else {
- // 0x5e8497
- v25 = _3f__3f_0CPedIntelligence_40__40_QAE_40_PAVCPed_40__40__40_Z(result);
- }
- // 0x5e84a3
- *(int32_t *)(result + 1148) = v25;
- int32_t v26 = *(int32_t *)(result + 1432); // 0x5e84a9
- *(char *)(v1 + 52) = 4;
- *(int32_t *)(result + 1152) = v6;
- if (v26 != v6) {
- // 0x5e84be
- if (v26 != 1) {
- // 0x5e84c3
- *(int32_t *)(v1 - 4) = 32;
- float64_t v27 = _3f__3f_2CTask_40__40_YAPAXI_40_Z(); // 0x5e84c5
- *(int32_t *)(v1 + 64) = (int32_t)(float32_t)v27;
- *(char *)(v1 + 52) = 6;
- int32_t v28;
- if ((int32_t)(float32_t)v27 == v6) {
- // 0x5e84e3
- v28 = 0;
- } else {
- // 0x5e84da
- v28 = CTask_870ADC__constructor();
- }
- // 0x5e84e5
- *(int32_t *)(v1 - 4) = 3;
- *(int32_t *)(v1 - 8) = v28;
- *(char *)(v1 + 52) = 4;
- sub_681B60((int32_t)&g2, (int32_t)&g2);
- }
- }
- // 0x5e84fb
- *(int32_t *)(v1 - 4) = 32;
- float64_t v29 = _3f__3f_2CTask_40__40_YAPAXI_40_Z(); // 0x5e84fd
- *(int32_t *)(v1 + 64) = (int32_t)(float32_t)v29;
- *(char *)(v1 + 52) = 7;
- int32_t v30;
- if ((int32_t)(float32_t)v29 == v6) {
- // 0x5e8524
- v30 = 0;
- } else {
- // 0x5e8512
- *(int32_t *)(v1 - 4) = 0x41000000;
- *(int32_t *)(v1 - 8) = v6;
- *(int32_t *)(v1 - 12) = 1;
- *(int32_t *)(v1 - 16) = v6;
- int32_t v31 = _3f__3f_0CTaskSimpleStandStill_40__40_QAE_40_I_N_NM_40_Z((int32_t)&g2, (char)&g2, (char)&g2, (int32_t)&g2); // 0x5e851d
- v30 = v31;
- }
- // 0x5e8526
- *(int32_t *)(v1 - 4) = v6;
- *(int32_t *)(v1 - 8) = 4;
- *(int32_t *)(v1 - 12) = v30;
- *(char *)(v1 + 52) = 4;
- CPedTasks___3f_assignPrimaryTask((int32_t)&g2, (int32_t)&g2, (int32_t)&g2);
- *(int32_t *)(v1 - 4) = v6;
- *(int32_t *)(v1 - 8) = result;
- *(int32_t *)(result + 1880) = v6;
- *(int32_t *)(result + 1936) = 0x3f800000;
- *(int16_t *)(result + 1940) = (int16_t)v4;
- CPopulation__updatePedCount((int32_t)&g2, (char)&g2);
- int32_t * v32 = (int32_t *)(result + 1140); // 0x5e855b
- int32_t v33 = *(int32_t *)(result + 1144); // 0x5e8561
- *v32 = *v32 & -0x20000001;
- *(int32_t *)(result + 1144) = v33 & -33;
- int32_t v34 = v1 + 8; // 0x5e8581
- int32_t v35; // 0x5e85fc
- if (g1 != (char)v6) {
- int32_t v36 = *(int32_t *)(result + 1432); // 0x5e8588
- if (v36 != v6) {
- // 0x5e8592
- if (v36 != 1) {
- // 0x5e8597
- *(int32_t *)(v1 + 4) = v6;
- *(int32_t *)v1 = _pow2((char)&g2);
- *(int32_t *)(v1 - 4) = 4;
- CPedAcquaintance__setForPedTypes((int32_t)&g2, (int32_t)&g2);
- *(int32_t *)(v1 - 4) = v4;
- *(int32_t *)v1 = _Z13FindPlayerPedi((int32_t)&g2);
- _3f__3f_0CEventAcquaintancePed_40__40_QAE_40_PAVCPed_40__40__40_Z((int32_t)&g2);
- v4 = &_3f__3f__7CEventAcquaintancePedHate_40__40_6B_40_;
- *(int32_t *)(v1 + 20) = (int32_t)&_3f__3f__7CEventAcquaintancePedHate_40__40_6B_40_;
- *(int32_t *)(v1 - 4) = v6;
- *(int32_t *)(v1 - 8) = v1 + 20;
- *(char *)(v1 + 52) = 8;
- *(int16_t *)(v1 + 42) = 1000;
- CEventGroup__setActorEvent((int32_t)&g2, (char)&g2);
- *(char *)(v1 + 52) = 4;
- *(int32_t *)(v1 + 20) = v4;
- CEventAcquaintancePed__dtor();
- v35 = v1;
- } else {
- v35 = v34;
- }
- } else {
- v35 = v34;
- }
- } else {
- v35 = v34;
- }
- // 0x5e85fc
- __writefsdword(0, *(int32_t *)(v35 + 44));
- return result;
- }
- // --------------- Dynamically Linked Functions ---------------
- // int32_t unknown_libname_1(void);
- // --------------------- Meta-Information ---------------------
- // Detected compiler/packer: securom
- // Detected functions: 1
- // Decompilation date: 2019-09-22 23:27:14
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement