Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char __thiscall sub_801B70(void *this, int a2, void *a3)
- {
- void *v3; // esi@1
- void **v4; // eax@5
- char (*v5)[4]; // eax@7
- void **v6; // eax@7
- char (*v7)[4]; // eax@9
- void **v8; // eax@9
- char (*v9)[4]; // eax@11
- void **v10; // eax@11
- char (*v11)[4]; // eax@13
- void **v12; // eax@13
- char (*v13)[4]; // eax@15
- void **v14; // eax@15
- char (*v15)[4]; // eax@17
- void **v16; // eax@17
- char (*v17)[4]; // eax@19
- void **v18; // eax@19
- char (*v19)[4]; // eax@21
- void **v20; // eax@21
- char (*v21)[4]; // eax@23
- void **v22; // eax@23
- char (*v23)[4]; // eax@25
- void **v24; // eax@25
- char (*v25)[4]; // eax@27
- void **v26; // eax@27
- char (*v27)[4]; // eax@29
- void **v28; // eax@29
- char (*v29)[4]; // eax@31
- void **v30; // eax@31
- void *v31; // edi@33
- size_t v32; // ST28_4@33
- char (*v33)[4]; // eax@33
- void **v34; // eax@33
- char (*v35)[4]; // eax@35
- void **v36; // eax@35
- char (*v37)[4]; // eax@37
- void **v38; // eax@37
- char (*v39)[4]; // eax@39
- void **v40; // eax@39
- char (*v41)[4]; // eax@41
- void *v42; // eax@41
- signed int v43; // edi@42
- void **v44; // eax@49
- char (*v45)[4]; // eax@51
- void *v46; // eax@51
- signed int v47; // edi@52
- void **v48; // eax@59
- char (*v49)[4]; // eax@61
- void *v50; // eax@61
- signed int v51; // edi@62
- void **v52; // eax@69
- char (*v53)[4]; // eax@71
- char *v54; // eax@71
- signed int v55; // edi@72
- signed int v56; // ebx@72
- int v57; // ecx@79
- signed int v58; // eax@79
- bool v59; // cf@79
- void **v60; // eax@83
- char (*v61)[4]; // eax@85
- int v62; // ebx@85
- void *v63; // eax@85
- signed int v64; // edi@86
- void **v65; // eax@93
- char (*v66)[4]; // eax@95
- void *v67; // edi@95
- void **v68; // eax@95
- char (*v69)[4]; // eax@97
- int v70; // ebx@97
- void *v71; // eax@97
- signed int v72; // edi@98
- void **v73; // eax@105
- char (*v74)[4]; // eax@107
- int v75; // ebx@107
- void *v76; // eax@107
- signed int v77; // edi@108
- void **v78; // eax@115
- char (*v79)[4]; // eax@117
- int v80; // ebx@117
- void *v81; // eax@117
- signed int v82; // edi@118
- void **v83; // eax@125
- char (*v84)[4]; // eax@127
- void **v85; // eax@127
- char (*v86)[4]; // eax@129
- void **v87; // eax@129
- char (*v88)[4]; // eax@131
- void **v89; // eax@131
- char (*v90)[4]; // eax@133
- void **v91; // eax@133
- char (*v92)[4]; // eax@135
- void **v93; // eax@135
- char (*v94)[4]; // eax@137
- void **v95; // eax@137
- char (*v96)[4]; // eax@139
- void *v97; // edi@139
- int v98; // ebx@139
- void **v99; // eax@139
- char (*v100)[4]; // eax@141
- char *v101; // eax@141
- bool v102; // zf@141
- int v103; // eax@142
- int v104; // edi@143
- int v105; // edi@147
- void **v106; // eax@147
- char (*v107)[4]; // eax@149
- void **v108; // eax@150
- char (*v109)[4]; // eax@152
- const char *v110; // eax@152
- const char *v111; // ebx@152
- int v112; // edi@154
- void **v113; // eax@156
- int v114; // ebx@156
- char (*v115)[4]; // eax@158
- void *v116; // eax@158
- signed int v117; // edi@159
- char *v118; // eax@166
- void **v119; // eax@172
- int v120; // ebx@172
- char (*v121)[4]; // eax@174
- void *v122; // eax@174
- signed int v123; // edi@175
- char *v124; // eax@182
- void **v125; // eax@187
- int v126; // ebx@187
- char (*v127)[4]; // eax@189
- void *v128; // eax@189
- signed int v129; // edi@190
- unsigned int v130; // ecx@197
- signed int v131; // eax@197
- void **v132; // eax@203
- char (*v133)[4]; // eax@205
- int v134; // edi@205
- int v135; // ebx@205
- void *v136; // eax@205
- signed int v137; // edi@206
- void **v138; // eax@213
- char (*v139)[4]; // eax@215
- void **v140; // eax@215
- char (*v141)[4]; // eax@217
- void **v142; // eax@217
- char (*v143)[4]; // eax@219
- void **v144; // eax@219
- char (*v145)[4]; // eax@221
- double v146; // st7@221
- double v147; // st6@221
- unsigned int v148; // ecx@221
- signed int v149; // eax@221
- double v150; // rt0@222
- double v151; // rt1@225
- double v152; // st6@225
- double v153; // st7@225
- char (*v154)[4]; // eax@236
- char (*v155)[4]; // eax@236
- char (*v156)[4]; // eax@236
- void **v157; // eax@236
- char (*v158)[4]; // eax@238
- void *v159; // ebx@238
- void *v160; // edi@238
- char v161; // al@239
- char (*v162)[4]; // eax@239
- char *v163; // eax@239
- bool v164; // sf@241
- unsigned __int8 v165; // of@241
- signed int v166; // eax@242
- int v167; // ebx@243
- int v168; // eax@243
- void **v169; // ecx@244
- void **v170; // eax@250
- char (*v171)[4]; // eax@252
- char *v172; // eax@252
- char result; // al@264
- unsigned int v174; // [sp+4h] [bp-328h]@1
- int v175; // [sp+14h] [bp-318h]@161
- int v176; // [sp+18h] [bp-314h]@165
- int v177; // [sp+1Ch] [bp-310h]@1
- int v178; // [sp+20h] [bp-30Ch]@1
- void *v179; // [sp+24h] [bp-308h]@42
- char *v180; // [sp+28h] [bp-304h]@41
- void *v181; // [sp+2Ch] [bp-300h]@1
- void *v182; // [sp+30h] [bp-2FCh]@1
- void *v183; // [sp+34h] [bp-2F8h]@5
- int v184[5]; // [sp+38h] [bp-2F4h]@217
- int v185[5]; // [sp+4Ch] [bp-2E0h]@221
- int v186[5]; // [sp+60h] [bp-2CCh]@219
- int v187[5]; // [sp+74h] [bp-2B8h]@215
- int v188; // [sp+88h] [bp-2A4h]@192
- int v189; // [sp+8Ch] [bp-2A0h]@196
- int v190; // [sp+90h] [bp-29Ch]@196
- int v191; // [sp+94h] [bp-298h]@196
- int v192; // [sp+98h] [bp-294h]@196
- char v193; // [sp+9Ch] [bp-290h]@156
- char v194; // [sp+19Ch] [bp-190h]@139
- char v195; // [sp+29Ch] [bp-90h]@44
- unsigned int v196; // [sp+31Ch] [bp-10h]@1
- int v197; // [sp+328h] [bp-4h]@1
- int savedregs; // [sp+32Ch] [bp+0h]@1
- v196 = (unsigned int)&savedregs ^ dword_B68780;
- v174 = (unsigned int)&savedregs ^ dword_B68780;
- v3 = this;
- v177 = a2;
- v178 = EqGetTime();
- CXStr::CXStr(&v181, (char *)a3);
- v197 = 0;
- v182 = 0;
- LOBYTE(v197) = 1;
- if ( v181 && *((_DWORD *)v181 + 2) )
- sub_806EC0(`string');
- if ( (unsigned __int8)sub_7EBB70(a2, a3) )
- {
- v4 = (void **)operator+((int)&v183, &v181, "deity");
- LOBYTE(v197) = 2;
- sub_805D90(&v182, v4);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v5 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 8761) = sub_80E1B0(v5, 0);
- v6 = (void **)operator+((int)&v183, &v181, "highest_level");
- LOBYTE(v197) = 3;
- sub_805D90(&v182, v6);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v7 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35049) = sub_80E1B0(v7, 0);
- v8 = (void **)operator+((int)&v183, &v181, "sobriety");
- LOBYTE(v197) = 4;
- sub_805D90(&v182, v8);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v9 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 8763) = sub_80E1B0(v9, 0);
- v10 = (void **)operator+((int)&v183, &v181, "HairColor");
- LOBYTE(v197) = 5;
- sub_805D90(&v182, v10);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v11 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35056) = sub_80E1B0(v11, 0);
- v12 = (void **)operator+((int)&v183, &v181, "BeardColor");
- LOBYTE(v197) = 6;
- sub_805D90(&v182, v12);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v13 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35057) = sub_80E1B0(v13, 0);
- v14 = (void **)operator+((int)&v183, &v181, "NpcTintIndex");
- LOBYTE(v197) = 7;
- sub_805D90(&v182, v14);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v15 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 8765) = sub_80E1B0(v15, 0);
- v16 = (void **)operator+((int)&v183, &v181, "LeftEye");
- LOBYTE(v197) = 8;
- sub_805D90(&v182, v16);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v17 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35064) = sub_80E1B0(v17, 0);
- v18 = (void **)operator+((int)&v183, &v181, "RightEye");
- LOBYTE(v197) = 9;
- sub_805D90(&v182, v18);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v19 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35065) = sub_80E1B0(v19, 0);
- v20 = (void **)operator+((int)&v183, &v181, "Hair");
- LOBYTE(v197) = 10;
- sub_805D90(&v182, v20);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v21 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35066) = sub_80E1B0(v21, 0);
- v22 = (void **)operator+((int)&v183, &v181, "Beard");
- LOBYTE(v197) = 11;
- sub_805D90(&v182, v22);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v23 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35067) = sub_80E1B0(v23, 0);
- v24 = (void **)operator+((int)&v183, &v181, "OldFace");
- LOBYTE(v197) = 12;
- sub_805D90(&v182, v24);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v25 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35068) = sub_80E1B0(v25, 0);
- v26 = (void **)operator+((int)&v183, &v181, "AbilityPts");
- LOBYTE(v197) = 13;
- sub_805D90(&v182, v26);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v27 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 8768) = sub_80E1B0(v27, 0);
- v28 = (void **)operator+((int)&v183, &v181, "pkill");
- LOBYTE(v197) = 14;
- sub_805D90(&v182, v28);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v29 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 35048) = (unsigned __int8)sub_80E1B0(v29, 0) != 0;
- v30 = (void **)operator+((int)&v183, &v181, "InventoryInstanceData");
- LOBYTE(v197) = 15;
- sub_805D90(&v182, v30);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v31 = (void *)sub_7E4DE0(v174);
- v32 = sub_7E4DF0();
- v33 = sub_8061C0(&v182);
- sub_7BE620(a2, (int)v33, v31, v32);
- sub_805DE0(v31);
- v34 = (void **)operator+((int)&v183, &v181, "PocketPetSaveString");
- LOBYTE(v197) = 16;
- sub_805D90(&v182, v34);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v35 = sub_8061C0(&v182);
- sub_80E2C0((int)v35, (char *)v3 + 35076, 4096, (int)`string');
- v36 = (void **)operator+((int)&v183, &v181, "primActor");
- LOBYTE(v197) = 17;
- sub_805D90(&v182, v36);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v37 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 9803) = sub_80E1B0(v37, 0);
- v38 = (void **)operator+((int)&v183, &v181, "secdActor");
- LOBYTE(v197) = 18;
- sub_805D90(&v182, v38);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v39 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 9804) = sub_80E1B0(v39, 0);
- v40 = (void **)operator+((int)&v183, &v181, "m_newBodyTint");
- LOBYTE(v197) = 19;
- sub_805D90(&v182, v40);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v41 = sub_8061C0(&v182);
- v180 = 0;
- v42 = (void *)sub_80E2B0((void *)a2, (int)v41);
- v183 = v42;
- if ( v42 )
- {
- v179 = (void *)strlen((const char *)v42);
- v43 = 0;
- do
- {
- if ( (signed int)v180 >= (signed int)v179 )
- {
- *((_DWORD *)v3 + v43 + 4397) = 0;
- }
- else
- {
- v180 += sub_8085A0((char *)v183 + (_DWORD)v180, &v195, 44);
- *((_DWORD *)v3 + v43 + 4397) = atol(&v195);
- }
- ++v43;
- }
- while ( v43 < 9 );
- }
- else
- {
- *((_DWORD *)v3 + 4397) = 0;
- *((_DWORD *)v3 + 4398) = 0;
- *((_DWORD *)v3 + 4399) = 0;
- *((_DWORD *)v3 + 4400) = 0;
- *((_DWORD *)v3 + 4401) = 0;
- *((_DWORD *)v3 + 4402) = 0;
- *((_DWORD *)v3 + 4403) = 0;
- *((_DWORD *)v3 + 4404) = 0;
- *((_DWORD *)v3 + 4405) = 0;
- }
- v44 = (void **)operator+((int)&v183, &v181, "factiontable");
- LOBYTE(v197) = 20;
- sub_805D90(&v182, v44);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v45 = sub_8061C0(&v182);
- v180 = 0;
- v46 = (void *)sub_80E2B0((void *)a2, (int)v45);
- v183 = v46;
- if ( v46 )
- {
- v179 = (void *)strlen((const char *)v46);
- v47 = 0;
- do
- {
- if ( (signed int)v180 >= (signed int)v179 )
- {
- *((_DWORD *)v3 + v47 + 4406) = 0;
- }
- else
- {
- v180 += sub_8085A0((char *)v183 + (_DWORD)v180, &v195, 44);
- *((_DWORD *)v3 + v47 + 4406) = atoi(&v195);
- }
- ++v47;
- }
- while ( v47 < 2048 );
- }
- else
- {
- memset((char *)v3 + 17624, 0, 0x2000u);
- }
- v48 = (void **)operator+((int)&v183, &v181, "KnownCombatAbilities");
- LOBYTE(v197) = 21;
- sub_805D90(&v182, v48);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v49 = sub_8061C0(&v182);
- v180 = 0;
- v50 = (void *)sub_80E2B0((void *)a2, (int)v49);
- v183 = v50;
- if ( v50 )
- {
- v179 = (void *)strlen((const char *)v50);
- v51 = 0;
- do
- {
- if ( (signed int)v180 >= (signed int)v179 )
- {
- *((_DWORD *)v3 + v51 + 6454) = 0;
- }
- else
- {
- v180 += sub_8085A0((char *)v183 + (_DWORD)v180, &v195, 44);
- *((_DWORD *)v3 + v51 + 6454) = atoi(&v195);
- }
- ++v51;
- }
- while ( v51 < 300 );
- }
- else
- {
- memset((char *)v3 + 25816, 0, 0x4B0u);
- }
- v52 = (void **)operator+((int)&v183, &v181, "spell_used");
- LOBYTE(v197) = 22;
- sub_805D90(&v182, v52);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v53 = sub_8061C0(&v182);
- v54 = (char *)sub_80E2B0((void *)a2, (int)v53);
- v180 = v54;
- if ( v54 )
- {
- v183 = (void *)strlen(v54);
- v55 = 0;
- v56 = 0;
- do
- {
- if ( v56 >= (signed int)v183 )
- {
- *((_DWORD *)v3 + v55 + 6754) = 0;
- }
- else
- {
- v56 += sub_8085A0(&v180[v56], &v195, 44);
- *((_DWORD *)v3 + v55 + 6754) = atoi(&v195);
- }
- ++v55;
- }
- while ( v55 < 13 );
- }
- else
- {
- *((_DWORD *)v3 + 6754) = 0;
- *((_DWORD *)v3 + 6755) = 0;
- *((_DWORD *)v3 + 6756) = 0;
- *((_DWORD *)v3 + 6757) = 0;
- *((_DWORD *)v3 + 6758) = 0;
- *((_DWORD *)v3 + 6759) = 0;
- *((_DWORD *)v3 + 6760) = 0;
- *((_DWORD *)v3 + 6761) = 0;
- *((_DWORD *)v3 + 6762) = 0;
- *((_DWORD *)v3 + 6763) = 0;
- *((_DWORD *)v3 + 6764) = 0;
- *((_DWORD *)v3 + 6765) = 0;
- *((_DWORD *)v3 + 6766) = 0;
- }
- v57 = v178;
- v58 = 0;
- v59 = 1;
- do
- {
- if ( !v59 )
- __debugbreak();
- *((_DWORD *)v3 + v58++ + 6754) += v57;
- v59 = (unsigned int)v58 < 0xD;
- }
- while ( v58 < 13 );
- v60 = (void **)operator+((int)&v183, &v181, "AATimers");
- LOBYTE(v197) = 23;
- sub_805D90(&v182, v60);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v61 = sub_8061C0(&v182);
- v62 = 0;
- v63 = (void *)sub_80E2B0((void *)v177, (int)v61);
- v179 = v63;
- if ( v63 )
- {
- v178 = strlen((const char *)v63);
- v64 = 0;
- do
- {
- if ( v62 >= v178 )
- {
- *((_DWORD *)v3 + v64 + 6907) = 0;
- }
- else
- {
- v62 += sub_8085A0((char *)v179 + v62, &v195, 44);
- *((_DWORD *)v3 + v64 + 6907) = atoi(&v195);
- }
- ++v64;
- }
- while ( v64 < 100 );
- }
- else
- {
- memset((char *)v3 + 27628, 0, 0x190u);
- }
- v65 = (void **)operator+((int)&v183, &v181, "m_tmLastShield");
- LOBYTE(v197) = 24;
- sub_805D90(&v182, v65);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v66 = sub_8061C0(&v182);
- v67 = (void *)v177;
- *((_DWORD *)v3 + 9794) = sub_80E1B0(v66, 0);
- v68 = (void **)operator+((int)&v183, &v181, "CombatAbilityTimers");
- LOBYTE(v197) = 25;
- sub_805D90(&v182, v68);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v69 = sub_8061C0(&v182);
- v70 = 0;
- v71 = (void *)sub_80E2B0(v67, (int)v69);
- v179 = v71;
- if ( v71 )
- {
- v178 = strlen((const char *)v71);
- v72 = 0;
- do
- {
- if ( v70 >= v178 )
- {
- *((_DWORD *)v3 + v72 + 6767) = 0;
- }
- else
- {
- v70 += sub_8085A0((char *)v179 + v70, &v195, 44);
- *((_DWORD *)v3 + v72 + 6767) = atoi(&v195);
- }
- ++v72;
- }
- while ( v72 < 20 );
- }
- else
- {
- *((_DWORD *)v3 + 6767) = 0;
- *((_DWORD *)v3 + 6768) = 0;
- *((_DWORD *)v3 + 6769) = 0;
- *((_DWORD *)v3 + 6770) = 0;
- *((_DWORD *)v3 + 6771) = 0;
- *((_DWORD *)v3 + 6772) = 0;
- *((_DWORD *)v3 + 6773) = 0;
- *((_DWORD *)v3 + 6774) = 0;
- *((_DWORD *)v3 + 6775) = 0;
- *((_DWORD *)v3 + 6776) = 0;
- *((_DWORD *)v3 + 6777) = 0;
- *((_DWORD *)v3 + 6778) = 0;
- *((_DWORD *)v3 + 6779) = 0;
- *((_DWORD *)v3 + 6780) = 0;
- *((_DWORD *)v3 + 6781) = 0;
- *((_DWORD *)v3 + 6782) = 0;
- *((_DWORD *)v3 + 6783) = 0;
- *((_DWORD *)v3 + 6784) = 0;
- *((_DWORD *)v3 + 6785) = 0;
- *((_DWORD *)v3 + 6786) = 0;
- }
- v73 = (void **)operator+((int)&v183, &v181, "LinkedSpellTimers");
- LOBYTE(v197) = 26;
- sub_805D90(&v182, v73);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v74 = sub_8061C0(&v182);
- v75 = 0;
- v76 = (void *)sub_80E2B0((void *)v177, (int)v74);
- v179 = v76;
- if ( v76 )
- {
- v178 = strlen((const char *)v76);
- v77 = 0;
- do
- {
- if ( v75 >= v178 )
- {
- *((_DWORD *)v3 + v77 + 6787) = 0;
- }
- else
- {
- v75 += sub_8085A0((char *)v179 + v75, &v195, 44);
- *((_DWORD *)v3 + v77 + 6787) = atoi(&v195);
- }
- ++v77;
- }
- while ( v77 < 20 );
- }
- else
- {
- *((_DWORD *)v3 + 6787) = 0;
- *((_DWORD *)v3 + 6788) = 0;
- *((_DWORD *)v3 + 6789) = 0;
- *((_DWORD *)v3 + 6790) = 0;
- *((_DWORD *)v3 + 6791) = 0;
- *((_DWORD *)v3 + 6792) = 0;
- *((_DWORD *)v3 + 6793) = 0;
- *((_DWORD *)v3 + 6794) = 0;
- *((_DWORD *)v3 + 6795) = 0;
- *((_DWORD *)v3 + 6796) = 0;
- *((_DWORD *)v3 + 6797) = 0;
- *((_DWORD *)v3 + 6798) = 0;
- *((_DWORD *)v3 + 6799) = 0;
- *((_DWORD *)v3 + 6800) = 0;
- *((_DWORD *)v3 + 6801) = 0;
- *((_DWORD *)v3 + 6802) = 0;
- *((_DWORD *)v3 + 6803) = 0;
- *((_DWORD *)v3 + 6804) = 0;
- *((_DWORD *)v3 + 6805) = 0;
- *((_DWORD *)v3 + 6806) = 0;
- }
- v78 = (void **)operator+((int)&v183, &v181, "ItemRecastTimers");
- LOBYTE(v197) = 27;
- sub_805D90(&v182, v78);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v79 = sub_8061C0(&v182);
- v80 = 0;
- v81 = (void *)sub_80E2B0((void *)v177, (int)v79);
- v179 = v81;
- if ( v81 )
- {
- v178 = strlen((const char *)v81);
- v82 = 0;
- do
- {
- if ( v80 >= v178 )
- {
- *((_DWORD *)v3 + v82 + 6807) = 0;
- }
- else
- {
- v80 += sub_8085A0((char *)v179 + v80, &v195, 44);
- *((_DWORD *)v3 + v82 + 6807) = atoi(&v195);
- }
- ++v82;
- }
- while ( v82 < 100 );
- }
- else
- {
- memset((char *)v3 + 27228, 0, 0x190u);
- }
- v83 = (void **)operator+((int)&v183, &v181, "TotalAAsSpent");
- LOBYTE(v197) = 28;
- sub_805D90(&v182, v83);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v84 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 9796) = sub_80E1B0(v84, 0);
- v85 = (void **)operator+((int)&v183, &v181, "m_bSneak");
- LOBYTE(v197) = 29;
- sub_805D90(&v182, v85);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v86 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 39180) = sub_80E1B0(v86, 0) != 0;
- v87 = (void **)operator+((int)&v183, &v181, "m_bHide");
- LOBYTE(v197) = 30;
- sub_805D90(&v182, v87);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v88 = sub_8061C0(&v182);
- *((_BYTE *)v3 + 39181) = sub_80E1B0(v88, 0) != 0;
- v89 = (void **)operator+((int)&v183, &v181, "titlePrefixID");
- LOBYTE(v197) = 31;
- sub_805D90(&v182, v89);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v90 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 9806) = sub_80E1B0(v90, 0);
- v91 = (void **)operator+((int)&v183, &v181, "titleSuffixID");
- LOBYTE(v197) = 32;
- sub_805D90(&v182, v91);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v92 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 9807) = sub_80E1B0(v92, 0);
- v93 = (void **)operator+((int)&v183, &v181, "m_soleEnabledZoneId");
- LOBYTE(v197) = 33;
- sub_805D90(&v182, v93);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v94 = sub_8061C0(&v182);
- *((_DWORD *)v3 + 9809) = sub_80E1B0(v94, -1);
- v95 = (void **)operator+((int)&v183, &v181, "m_profileFadeTime");
- LOBYTE(v197) = 34;
- sub_805D90(&v182, v95);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v96 = sub_8061C0(&v182);
- v97 = (void *)v177;
- v98 = 0;
- *((_DWORD *)v3 + 9810) = sub_80E220(v96, -1);
- sub_809C10(&v194, 0x100u, "PetSaveString%d", 0);
- v99 = (void **)operator+((int)&v183, &v181, &v194);
- LOBYTE(v197) = 35;
- sub_805D90(&v182, v99);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v100 = sub_8061C0(&v182);
- v101 = (char *)sub_80E2B0(v97, (int)v100);
- v102 = *((_DWORD *)v3 + 8760) == 0;
- v180 = v101;
- if ( !v102 )
- {
- do
- {
- v103 = *((_DWORD *)v3 + 8760);
- if ( v103 )
- {
- v104 = *(_DWORD *)(v103 + 4096);
- operator delete(*((void **)v3 + 8760));
- *((_DWORD *)v3 + 8760) = v104;
- }
- }
- while ( *((_DWORD *)v3 + 8760) );
- }
- for ( ; v180; v180 = (char *)sub_80E2B0((void *)v177, (int)v107) )
- {
- if ( !*v180 )
- break;
- v105 = operator new(0x1004u);
- sub_809B30((char *)v105, v180, 0x1000u);
- ++v98;
- *(_DWORD *)(v105 + 4096) = *((_DWORD *)v3 + 8760);
- *((_DWORD *)v3 + 8760) = v105;
- sub_809C10(&v194, 0x100u, "PetSaveString%d", v98);
- v106 = (void **)operator+((int)&v183, &v181, &v194);
- LOBYTE(v197) = 36;
- sub_805D90(&v182, v106);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v183 = 0;
- v107 = sub_8061C0(&v182);
- }
- v108 = (void **)operator+((int)&v183, &v181, "PetSaveString");
- LOBYTE(v197) = 37;
- sub_805D90(&v182, v108);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v109 = sub_8061C0(&v182);
- v110 = (const char *)sub_80E2B0((void *)v177, (int)v109);
- v111 = v110;
- if ( v110 && *v110 )
- {
- v112 = operator new(0x1004u);
- sub_809B30((char *)v112, v111, 0x1000u);
- *(_DWORD *)(v112 + 4096) = *((_DWORD *)v3 + 8760);
- *((_DWORD *)v3 + 8760) = v112;
- }
- v180 = 0;
- do
- {
- sprintf(&v193, "TributeBenefit%d", v180);
- v113 = (void **)operator+((int)&v183, &v181, &v193);
- LOBYTE(v197) = 38;
- sub_805D90(&v182, v113);
- v114 = 0;
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v183 = 0;
- v115 = sub_8061C0(&v182);
- v116 = (void *)sub_80E2B0((void *)v177, (int)v115);
- v179 = v116;
- if ( v116 )
- {
- v178 = strlen((const char *)v116);
- v117 = 0;
- do
- {
- if ( v114 >= v178 )
- {
- *(&v175 + v117) = -1;
- }
- else
- {
- v114 += sub_8085A0((char *)v179 + v114, &v195, 44);
- *(&v175 + v117) = atoi(&v195);
- }
- ++v117;
- }
- while ( v117 < 2 );
- }
- else
- {
- v175 = -1;
- v176 = -1;
- }
- v118 = v180;
- if ( (unsigned int)v180 >= 5 )
- __debugbreak();
- *((_DWORD *)v3 + 2 * (_DWORD)v180 + 8697) = v175;
- if ( (unsigned int)v118 >= 5 )
- __debugbreak();
- *((_DWORD *)v3 + 2 * (_DWORD)v118 + 8698) = v176;
- v180 = v118 + 1;
- }
- while ( (signed int)(v118 + 1) < 5 );
- v180 = 0;
- do
- {
- sprintf(&v193, "TrophyTributeBenefit%d", v180);
- v119 = (void **)operator+((int)&v183, &v181, &v193);
- LOBYTE(v197) = 39;
- sub_805D90(&v182, v119);
- v120 = 0;
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v183 = 0;
- v121 = sub_8061C0(&v182);
- v122 = (void *)sub_80E2B0((void *)v177, (int)v121);
- v179 = v122;
- if ( v122 )
- {
- v178 = strlen((const char *)v122);
- v123 = 0;
- do
- {
- if ( v120 >= v178 )
- {
- *(&v175 + v123) = -1;
- }
- else
- {
- v120 += sub_8085A0((char *)v179 + v120, &v195, 44);
- *(&v175 + v123) = atoi(&v195);
- }
- ++v123;
- }
- while ( v123 < 2 );
- }
- else
- {
- v175 = -1;
- v176 = -1;
- }
- v124 = v180;
- if ( (unsigned int)v180 >= 0xA )
- __debugbreak();
- *((_DWORD *)v3 + 2 * (_DWORD)v180 + 8707) = v175;
- if ( (unsigned int)v124 >= 0xA )
- __debugbreak();
- *((_DWORD *)v3 + 2 * (_DWORD)v124 + 8708) = v176;
- v180 = v124 + 1;
- }
- while ( (signed int)(v124 + 1) < 10 );
- v125 = (void **)operator+((int)&v183, &v181, "PotionBelt");
- LOBYTE(v197) = 40;
- sub_805D90(&v182, v125);
- v126 = 0;
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v127 = sub_8061C0(&v182);
- v128 = (void *)sub_80E2B0((void *)v177, (int)v127);
- v179 = v128;
- if ( v128 )
- {
- v178 = strlen((const char *)v128);
- v129 = 0;
- do
- {
- if ( v126 >= v178 )
- {
- *(&v188 + v129) = 0;
- }
- else
- {
- v126 += sub_8085A0((char *)v179 + v126, &v195, 44);
- *(&v188 + v129) = atoi(&v195);
- }
- ++v129;
- }
- while ( v129 < 5 );
- }
- else
- {
- v188 = 0;
- v189 = 0;
- v190 = 0;
- v191 = 0;
- v192 = 0;
- }
- v130 = 0;
- v131 = 0;
- do
- {
- if ( v130 >= 5 )
- __debugbreak();
- *(_DWORD *)((char *)v3 + v131 + 34428) = 0;
- *(_DWORD *)((char *)v3 + v131 + 34432) = -1;
- *((_BYTE *)v3 + v131 + 34436) = 0;
- if ( v130 >= 5 )
- __debugbreak();
- *(_DWORD *)((char *)v3 + v131 + 34428) = *(&v188 + v130);
- v131 += 72;
- ++v130;
- }
- while ( v131 < 360 );
- v132 = (void **)operator+((int)&v183, &v181, "home_zone");
- LOBYTE(v197) = 41;
- sub_805D90(&v182, v132);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v133 = sub_8061C0(&v182);
- v134 = v177;
- v135 = 0;
- v136 = (void *)sub_80E2B0((void *)v177, (int)v133);
- v179 = v136;
- if ( v136 )
- {
- v178 = strlen((const char *)v136);
- v137 = 0;
- do
- {
- if ( v135 >= v178 )
- {
- *(&v188 + v137) = 0;
- }
- else
- {
- v135 += sub_8085A0((char *)v179 + v135, &v195, 44);
- *(&v188 + v137) = atoi(&v195);
- }
- ++v137;
- }
- while ( v137 < 5 );
- v134 = v177;
- }
- else
- {
- v188 = 0;
- v189 = 0;
- v190 = 0;
- v191 = 0;
- v192 = 0;
- }
- v138 = (void **)operator+((int)&v183, &v181, "home_x");
- LOBYTE(v197) = 42;
- sub_805D90(&v182, v138);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v139 = sub_8061C0(&v182);
- sub_7FF500(v134, (int)v139, (int)v187, 5, 0.0);
- v140 = (void **)operator+((int)&v183, &v181, "home_y");
- LOBYTE(v197) = 43;
- sub_805D90(&v182, v140);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v141 = sub_8061C0(&v182);
- sub_7FF500(v134, (int)v141, (int)v184, 5, 0.0);
- v142 = (void **)operator+((int)&v183, &v181, "home_z");
- LOBYTE(v197) = 44;
- sub_805D90(&v182, v142);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v143 = sub_8061C0(&v182);
- sub_7FF500(v134, (int)v143, (int)v186, 5, 0.0);
- v144 = (void **)operator+((int)&v183, &v181, "home_h");
- LOBYTE(v197) = 45;
- sub_805D90(&v182, v144);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v145 = sub_8061C0(&v182);
- sub_7FF500(v134, (int)v145, (int)v185, 5, 0.0);
- v146 = 9.0;
- v147 = 0.0;
- v148 = 0;
- v149 = 0;
- while ( 1 )
- {
- if ( v148 >= 5 )
- __debugbreak();
- *(float *)((char *)v3 + v149 + 13456) = v147;
- *(_DWORD *)((char *)v3 + v149 + 13448) = 0;
- *(float *)((char *)v3 + v149 + 13452) = v147;
- *(float *)((char *)v3 + v149 + 13464) = v147;
- v151 = v147;
- v152 = v146;
- v153 = v151;
- *(float *)((char *)v3 + v149 + 13460) = v152;
- if ( v148 >= 5 )
- __debugbreak();
- *(_DWORD *)((char *)v3 + v149 + 13448) = *(&v188 + v148);
- if ( v148 >= 5 )
- __debugbreak();
- *(float *)((char *)v3 + v149 + 13452) = *(float *)&v187[v148];
- if ( v148 >= 5 )
- __debugbreak();
- *(float *)((char *)v3 + v149 + 13456) = *(float *)&v184[v148];
- if ( v148 >= 5 )
- __debugbreak();
- *(float *)((char *)v3 + v149 + 13460) = *(float *)&v186[v148];
- if ( v148 >= 5 )
- __debugbreak();
- v149 += 20;
- *(float *)((char *)v3 + v149 + 13444) = *(float *)&v185[v148++];
- if ( v149 >= 100 )
- break;
- v150 = v152;
- v147 = v153;
- v146 = v150;
- }
- v154 = sub_8061C0(&v181);
- sub_7FF5D0(v134, v154);
- v155 = sub_8061C0(&v181);
- sub_7FF920(v134, v155);
- v156 = sub_8061C0(&v181);
- sub_7FFB40(v134, v156);
- v157 = (void **)operator+((int)&v183, &v181, "CurrentMercenaryIndex");
- LOBYTE(v197) = 46;
- sub_805D90(&v182, v157);
- LOBYTE(v197) = 1;
- if ( v183 )
- CXStr::FreeRep(v183);
- v158 = sub_8061C0(&v182);
- v159 = (void *)v177;
- v160 = 0;
- *((_DWORD *)v3 + 9811) = sub_80E1B0(v158, -1);
- v179 = 0;
- do
- {
- v161 = (unsigned int)sub_8061C0(&v181);
- sub_8079C0((int)&v182, "%sMercenarySaveString%d", v161);
- v162 = sub_8061C0(&v182);
- v163 = (char *)sub_80E2B0(v159, (int)v162);
- if ( v163 && *v163 )
- {
- CXStr::CXStr(&v180, v163);
- v165 = __OFSUB__(*((_DWORD *)v3 + 8756), 10);
- v164 = *((_DWORD *)v3 + 8756) - 10 < 0;
- LOBYTE(v197) = 47;
- if ( v164 ^ v165 )
- {
- v166 = *((_DWORD *)v3 + 8756);
- v183 = (void *)v166;
- if ( v166 >= 0 )
- {
- v167 = v166 + 1;
- sub_50A090(v166 + 1);
- v168 = *((_DWORD *)v3 + 8757);
- if ( v168 )
- {
- v169 = (void **)(v168 + 4 * (_DWORD)v183);
- *((_DWORD *)v3 + 8756) = v167;
- sub_805D90(v169, (void **)&v180);
- }
- }
- }
- LOBYTE(v197) = 1;
- if ( v180 )
- CXStr::FreeRep(v180);
- v160 = v179;
- v159 = (void *)v177;
- v180 = 0;
- }
- v160 = (char *)v160 + 1;
- v179 = v160;
- }
- while ( (signed int)v160 < 10 );
- if ( !*((_DWORD *)v3 + 8756) )
- {
- v170 = (void **)operator+((int)&v179, &v181, "MercenarySaveString");
- LOBYTE(v197) = 48;
- sub_805D90(&v182, v170);
- LOBYTE(v197) = 1;
- if ( v179 )
- CXStr::FreeRep(v179);
- v171 = sub_8061C0(&v182);
- v172 = (char *)sub_80E2B0(v159, (int)v171);
- if ( v172 && *v172 )
- {
- CXStr::CXStr(&v180, v172);
- LOBYTE(v197) = 49;
- sub_8018B0(&v180);
- LOBYTE(v197) = 1;
- if ( v180 )
- CXStr::FreeRep(v180);
- v180 = 0;
- }
- }
- if ( *((_DWORD *)v3 + 9811) == -1 && *((_DWORD *)v3 + 8756) > 0 )
- *((_DWORD *)v3 + 9811) = 0;
- LOBYTE(v197) = 0;
- if ( v182 )
- CXStr::FreeRep(v182);
- v182 = 0;
- v197 = -1;
- if ( v181 )
- CXStr::FreeRep(v181);
- result = 1;
- }
- else
- {
- LOBYTE(v197) = 0;
- if ( v182 )
- CXStr::FreeRep(v182);
- v182 = 0;
- v197 = -1;
- if ( v181 )
- CXStr::FreeRep(v181);
- result = 0;
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement