Most visitors online was 8830 , on 6 Feb 2024
Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!
Join Today!You have for v145?
It would be very nice if you can give me the warptomap function
Sure that would be great.
int __userpurge CStage::OnSetField<eax>(int a1<eax>, int a2<ecx>, int a3)
{
int v3; // ebx@1
int v4; // eax@1
unsigned __int16 v5; // ax@3
int v6; // ebx@3
int v7; // eax@3
int v8; // eax@4
void *v9; // eax@8
int v10; // edi@12
int v11; // ebx@12
int v12; // ecx@12
int v13; // eax@12
int v14; // eax@12
bool v15; // zf@12
int v16; // eax@14
int v17; // edi@14
void *v18; // ecx@14
int v19; // ecx@15
int v20; // eax@19
int v21; // ebx@20
void (__thiscall *v22)(_DWORD); // eax@22
int v23; // eax@23
int v24; // ebx@23
int v25; // eax@23
char v26; // al@23
char v27; // al@26
int (__thiscall *v28)(_DWORD); // eax@26
int v29; // eax@27
int v30; // eax@28
int v31; // edi@33
void (__thiscall *v32)(_DWORD); // eax@35
int v33; // ebx@36
int v34; // edi@36
int v35; // eax@42
char v36; // al@50
int v37; // eax@50
int v38; // eax@50
int v39; // eax@53
int v40; // edi@60
int (__thiscall *v41)(_DWORD); // edx@61
int v42; // eax@63
int v43; // eax@64
int v44; // ebx@66
void (__thiscall *v45)(_DWORD); // eax@67
int (__stdcall *v46)(int); // eax@75
unsigned int v47; // eax@81
unsigned int v48; // edx@82
unsigned int v49; // eax@89
unsigned int v50; // edx@90
int v51; // edi@98
int (__thiscall *v52)(_DWORD); // eax@98
int v53; // esi@98
__int64 v54; // qax@100
int v55; // edi@101
int v56; // ecx@105
int v57; // eax@106
int v58; // esi@108
void *v59; // eax@110
int v60; // eax@114
int (__thiscall *v61)(_DWORD); // edx@116
int v62; // esi@117
int (__thiscall *v63)(_DWORD); // edx@118
int v64; // eax@125
int v65; // ecx@127
int v66; // edi@127
signed int v67; // esi@128
int v68; // eax@132
int v69; // ecx@133
void *v70; // eax@139
char *v71; // eax@139
int v72; // eax@142
int v73; // esi@144
int v74; // ecx@146
int v75; // edx@146
int v76; // ecx@154
int (__thiscall *v77)(_DWORD); // eax@154
int (__thiscall *v78)(_DWORD); // eax@155
int v79; // esi@156
int (__thiscall *v80)(_DWORD); // eax@157
char v81; // si@164
unsigned int v82; // ecx@164
unsigned int v83; // edx@164
int v84; // eax@164
void *v85; // eax@164
char *v86; // eax@164
HRESULT v87; // eax@166
HRESULT v88; // eax@168
int v89; // ecx@168
void *v90; // eax@172
int v91; // eax@172
void (*v92)(void); // edx@173
int v93; // eax@174
int v94; // edi@191
void *v95; // esp@192
wchar_t *v96; // eax@192
int v97; // eax@192
int v98; // eax@192
void (*v99)(void); // edx@193
int v100; // eax@194
int v101; // ecx@194
void (*v102)(void); // edx@198
int v103; // esi@203
int v104; // eax@204
const WCHAR *v105; // eax@205
int v106; // ecx@211
void (*v107)(void); // ecx@216
void (*v108)(void); // eax@218
int v109; // esi@221
DWORD v110; // eax@222
DWORD v111; // edx@222
int v112; // eax@222
int v113; // eax@226
int v114; // edi@244
int v115; // eax@245
int v116; // eax@246
int v117; // esi@248
int v118; // ebx@249
int v119; // eax@250
int v120; // ecx@251
void *v121; // eax@255
int (__thiscall *v122)(_DWORD); // eax@260
int v123; // esi@261
int (__thiscall *v124)(_DWORD); // eax@264
int (__thiscall *v125)(_DWORD); // eax@265
int v126; // eax@266
int v127; // eax@270
int v128; // edx@270
int v129; // eax@270
int v130; // eax@274
void (*v131)(void); // edx@283
int v132; // edi@295
int (__thiscall *v133)(_DWORD); // edx@298
int v134; // esi@299
int (__thiscall *v135)(_DWORD); // edx@300
int (__thiscall *v136)(_DWORD); // eax@308
int v137; // esi@309
int (__thiscall *v138)(_DWORD); // eax@310
int v139; // ecx@314
int v140; // eax@315
int v141; // eax@316
int v142; // esi@327
volatile LONG *v143; // edi@327
void (__thiscall *v144)(_DWORD); // eax@329
int v146; // [sp-98h] [bp-240h]@211
int v147; // [sp-94h] [bp-23Ch]@211
int v148; // [sp-90h] [bp-238h]@211
int v149; // [sp-8Ch] [bp-234h]@211
int v150; // [sp-88h] [bp-230h]@211
char *v151; // [sp-84h] [bp-22Ch]@211
int v152; // [sp-80h] [bp-228h]@204
int v153; // [sp-7Ch] [bp-224h]@193
int v154; // [sp-78h] [bp-220h]@192
int v155; // [sp-74h] [bp-21Ch]@192
int v156; // [sp-60h] [bp-208h]@327
int v157; // [sp-5Ch] [bp-204h]@312
int v158; // [sp-58h] [bp-200h]@146
VARIANTARG *v159; // [sp-54h] [bp-1FCh]@146
int v160; // [sp-50h] [bp-1F8h]@146
int v161; // [sp-4Ch] [bp-1F4h]@110
int v162; // [sp-48h] [bp-1F0h]@110
signed int v163; // [sp-44h] [bp-1ECh]@110
const CHAR *v164; // [sp-40h] [bp-1E8h]@110
char v165; // [sp-3Ch] [bp-1E4h]@110
LONG v166; // [sp-38h] [bp-1E0h]@100
int (****v167)[2]; // [sp-34h] [bp-1DCh]@76
int v168; // [sp-30h] [bp-1D8h]@67
int (****v169)[2]; // [sp-2Ch] [bp-1D4h]@61
int v170; // [sp-24h] [bp-1CCh]@50
signed int v171; // [sp-1Ch] [bp-1C4h]@35
int v172; // [sp-18h] [bp-1C0h]@14
signed int v173; // [sp-14h] [bp-1BCh]@14
unsigned int v174; // [sp-10h] [bp-1B8h]@1
char v175; // [sp+0h] [bp-1A8h]@160
__int16 v176; // [sp+14Ch] [bp-5Ch]@172
int v177; // [sp+154h] [bp-54h]@180
VARIANTARG pvargDest; // [sp+15Ch] [bp-4Ch]@168
int v179; // [sp+16Ch] [bp-3Ch]@3
char v180; // [sp+170h] [bp-38h]@50
int v181; // [sp+174h] [bp-34h]@31
char v182; // [sp+178h] [bp-30h]@36
char v183; // [sp+17Ch] [bp-2Ch]@36
int v184; // [sp+184h] [bp-24h]@36
int v185; // [sp+18Ch] [bp-1Ch]@31
int v186; // [sp+190h] [bp-18h]@270
int v187; // [sp+194h] [bp-14h]@98
int v188; // [sp+198h] [bp-10h]@27
int v189; // [sp+19Ch] [bp-Ch]@1
int (*v190)(); // [sp+1A0h] [bp-8h]@1
int v191; // [sp+1A4h] [bp-4h]@1
int v192; // [sp+1A8h] [bp+0h]@1
void *v193; // [sp+1ACh] [bp+4h]@110
int v194; // [sp+1B0h] [bp+8h]@3
int v195; // [sp+1B4h] [bp+Ch]@12
char v196; // [sp+1B8h] [bp+10h]@19
int v197; // [sp+1BCh] [bp+14h]@11
char v198; // [sp+1C0h] [bp+18h]@81
unsigned int Dst; // [sp+1C4h] [bp+1Ch]@81
int v200; // [sp+1C8h] [bp+20h]@84
int v201; // [sp+1CCh] [bp+24h]@200
__int16 v202; // [sp+1D4h] [bp+2Ch]@204
int v203; // [sp+1DCh] [bp+34h]@19
void *v204; // [sp+1E0h] [bp+38h]@19
VARIANTARG pvarg; // [sp+1E4h] [bp+3Ch]@164
int v206; // [sp+1F4h] [bp+4Ch]@3
FILETIME FileTime; // [sp+1F8h] [bp+50h]@105
int v208; // [sp+200h] [bp+58h]@4
int *v209; // [sp+204h] [bp+5Ch]@1
int v210; // [sp+208h] [bp+60h]@8
int v211; // [sp+20Ch] [bp+64h]@1
int v212; // [sp+210h] [bp+68h]@7
char v213; // [sp+217h] [bp+6Fh]@3
unsigned int v214; // [sp+218h] [bp+70h]@1
v191 = -1;
v190 = sub_14C4B10;
v189 = a1;
v214 = (unsigned int)&v192 ^ dword_1B3F710;
v174 = (unsigned int)&v192 ^ dword_1B3F710;
v209 = (int *)a2;
CUtilDlgEx::ForcedRet();
v211 = dword_1B450AC;
CClientOptMan::DecodeOpt((void *)dword_1B4ADA8, a3);
v3 = *(_DWORD *)(dword_1B450AC + 8404);
v4 = CInPacket::Decode4(a3);
sub_B44790((void *)dword_1B450AC, v4);
*(_DWORD *)(dword_1B450AC + 8416) = (unsigned __int8)CInPacket::Decode1(a3);
*(_DWORD *)(dword_1B450AC + 25092) = CInPacket::Decode4(a3);
if ( v3 != *(_DWORD *)(dword_1B450AC + 8404) )
*(_DWORD *)(dword_1B450AC + 22756) = 1;
v213 = CInPacket::Decode1(a3);
CInPacket::Decode4(a3);
v192 = (unsigned __int8)CInPacket::Decode1(a3);
v5 = CInPacket::Decode2(a3);
v6 = v5;
v179 = v5;
v206 = 0;
v7 = ZXString_char_::GetBuffer(0, 0);
memcpy(v7, String2, 0);
ZXString_char_::ReleaseBuffer(&v206, 0);
v191 = 0;
v194 = 0;
LOBYTE(v191) = 1;
if ( v6 )
{
v8 = CInPacket::DecodeStr(a3, (int)&v208);
ZXString_char_::operator_(&v206, (void *)v8);
LOBYTE(v191) = 1;
if ( v208 )
ZXString_char_::_Release((volatile LONG *)(v208 - 12));
if ( v6 > 0 )
{
v212 = v6;
do
{
CInPacket::DecodeStr(a3, (int)&v210);
v9 = (void *)ZArray_ZXString_char___::InsertBefore(-1);
ZXString_char_::operator_(v9, &v210);
LOBYTE(v191) = 1;
if ( v210 )
ZXString_char_::_Release((volatile LONG *)(v210 - 12));
--v212;
}
while ( v212 );
}
}
v197 = 0;
LOBYTE(v191) = 4;
if ( v192 )
{
v10 = CInPacket::Decode4(a3);
v11 = CInPacket::Decode4(a3);
v208 = CInPacket::Decode4(a3);
sub_B53400((void *)(v211 + 24676), v10, v11, v208);
ZSynchronizedHelper_ZFatalSection_::ZSynchronizedHelper_ZFatalSection_(&v195, v211 + 25212, (int)&v213);
v12 = v211;
*(_DWORD *)(v211 + 25188) = v10 | 0x100000;
*(_DWORD *)(v12 + 25200) = v10 | 0x100000;
*(_DWORD *)(v12 + 25192) = v11 | 0x1000;
*(_DWORD *)(v12 + 25204) = v11 | 0x1000;
v13 = v208 | 0x10;
*(_DWORD *)(v12 + 25196) = v208 | 0x10;
*(_DWORD *)(v12 + 25208) = v13;
v14 = v195;
v15 = *(_DWORD *)(v195 + 4) == 1;
--*(_DWORD *)(v14 + 4);
if ( v15 )
*(_DWORD *)v14 = 0;
v16 = sub_B46200(0);
v17 = v16 + 16;
v173 = 0;
v172 = a3;
*(_DWORD *)(v16 + 4) = 1;
v197 = v16 + 16;
CharacterData::Decode((void *)(v16 + 16), v172, v173);
v18 = (void *)v211;
v173 = a3;
*(_BYTE *)(dword_1B49C94 + 29) = 1;
sub_1343D90(v18, v173);
}
else
{
v19 = (unsigned __int8)CInPacket::Decode1(a3);
v208 = dword_1B450B4;
if ( (*(_DWORD *)(dword_1B450B4 + 1908) & 0xFFFFFFFE) == 18 || v19 )
{
sub_13483A0(dword_1B450AC);
if ( *(_DWORD *)(dword_1B450AC + 26956) )
*(_DWORD *)(dword_1B450AC + 26956) = 0;
}
v20 = CWvsContext::GetCharacterData(dword_1B450AC, (int)&v203);
ZRef_CharacterData_::operator__0(&v196, v20);
LOBYTE(v191) = 4;
if ( v204 )
{
v21 = (int)((char *)v204 - 16);
if ( !InterlockedDecrement((volatile LONG *)v204 - 3) )
{
InterlockedIncrement((volatile LONG *)(v21 + 4));
if ( v21 )
{
v22 = (void (__thiscall *)(_DWORD))**(_DWORD **)v21;
v173 = 1;
v22(v21);
}
}
}
v23 = CInPacket::Decode4(a3);
v24 = v197;
*(_DWORD *)(v197 + 269) = sub_40A0A0(v23, v197 + 261);
*(_BYTE *)(v24 + 273) = CInPacket::Decode1(a3);
v25 = CInPacket::Decode4(a3);
*(_DWORD *)(v24 + 105) = ZtlSecureTear_long_(v25, v24 + 97);
*(_DWORD *)(dword_1B450AC + 84) = 0;
v26 = CInPacket::Decode1(a3);
*(_DWORD *)(dword_1B450AC + 84) = (unsigned __int8)v26;
if ( v26 )
{
*(_DWORD *)(dword_1B450AC + 76) = CInPacket::Decode4(a3);
*(_DWORD *)(dword_1B450AC + 80) = CInPacket::Decode4(a3);
}
v17 = v197;
*(_DWORD *)(v208 + 31344) = 0;
}
v27 = CInPacket::Decode1(a3);
sub_12EADD0((unsigned __int8)v27);
v28 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128);
v172 = (int)&off_1B271E4;
if ( !v28(dword_1B5868C + 4) )
{
v29 = ZAllocEx_ZAllocAnonSelector_::Alloc(24);
v188 = v29;
LOBYTE(v191) = 6;
if ( v29 )
v30 = CInterStage::CInterStage(v29);
else
v30 = 0;
LOBYTE(v191) = 4;
set_stage(v30, 0);
}
v181 = 0;
v185 = 0;
LOBYTE(v191) = 7;
if ( v17 )
{
InterlockedIncrement((volatile LONG *)(v17 - 12));
if ( v181 )
{
v31 = v181 - 16;
if ( !InterlockedDecrement((volatile LONG *)(v181 - 16 + 4)) )
{
InterlockedIncrement((volatile LONG *)(v31 + 4));
if ( v181 != 16 )
{
v32 = (void (__thiscall *)(_DWORD))**(_DWORD **)v31;
v171 = 1;
v32(v31);
}
}
}
}
v33 = v197;
v34 = v211;
v182 = v213;
v181 = v197;
CInPacket::DecodeBuffer(a3, (int)&v183, 8u);
v184 = CInPacket::Decode4(a3);
if ( CInPacket::Decode1(a3) )
{
if ( v185 )
{
if ( !InterlockedDecrement((volatile LONG *)(v185 + 4)) )
{
InterlockedIncrement((volatile LONG *)(v185 + 4));
if ( v185 )
(**(void (__cdecl ***)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD))v185)(1, v171, v172, v173, v174);
}
v185 = 0;
}
v35 = sub_B43680(0);
*(_DWORD *)(v35 + 4) = 1;
v185 = v35;
sub_7C17F0(a3);
}
else
{
if ( v185 )
{
if ( !InterlockedDecrement((volatile LONG *)(v185 + 4)) )
{
InterlockedIncrement((volatile LONG *)(v185 + 4));
if ( v185 )
(**(void (__cdecl ***)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD))v185)(1, v171, v172, v173, v174);
}
v185 = 0;
}
}
if ( CInPacket::Decode1(a3) )
sub_1348560(v34);
v36 = CInPacket::Decode1(a3);
v170 = *(_DWORD *)(v33 + 269);
v188 = (unsigned __int8)v36;
v37 = ZtlSecureFuse_unsigned_long_(v33 + 261, v170);
v38 = *(_DWORD *)(sub_744520(&v203, v37) + 4);
LOBYTE(v191) = 8;
set_stage(v38, &v180);
LOBYTE(v191) = 7;
if ( v204 && !InterlockedDecrement((volatile LONG *)v204 + 4) )
{
v39 = (int)(v204 ? (char *)v204 + 12 : 0);
InterlockedIncrement((volatile LONG *)(v39 + 4));
if ( v204 )
{
if ( v204 != (void *)-12 )
(**((void (__cdecl ***)(_DWORD))v204 + 3))(1);
}
}
if ( dword_1B5868C
&& (*(int (__cdecl **)(int (****)[2], int))(*(_DWORD *)(dword_1B5868C + 4) + 128))(&off_1B259F4, v170) )
{
v40 = dword_1B5868C;
if ( !dword_1B5868C
|| (v41 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128),
v169 = &off_1B259F4,
!v41(dword_1B5868C + 4)) )
v40 = 0;
v42 = sub_489370(v40 + 696);
if ( sub_9A38D0(v42) )
{
v43 = (unsigned __int8)CInPacket::Decode1(a3);
if ( (signed int)(unsigned __int8)v43 > 0 )
{
v212 = v43;
do
{
CInPacket::DecodeStr(a3, (int)&v210);
v44 = v210;
LOBYTE(v191) = 9;
if ( dword_1B5868C )
{
v45 = *(void (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128);
v168 = (int)&off_1B259F4;
v45(dword_1B5868C + 4);
}
sub_931AD0(v44, -1);
LOBYTE(v191) = 7;
if ( v210 )
ZXString_char_::_Release((volatile LONG *)(v210 - 12));
--v212;
}
while ( v212 );
v33 = v197;
}
}
v34 = v211;
}
sub_1303D90(dword_1B450AC);
if ( v192 )
{
sub_5CAD90(dword_1B49C1C);
ZMap_long_long_long_::RemoveAll(v34 + 27012);
v212 = sub_64C460(v33 + 2407);
while ( v212 )
{
v46 = *(int (__stdcall **)(int))sub_64C490(&v212, &v210);
if ( v46 == loc_989AB3 )
{
v168 = 60 * v210;
v167 = (int (****)[2])loc_989AB3;
}
else
{
v168 = v210;
v167 = (int (****)[2])v46;
}
sub_12FCC00((char)v167, v168);
}
sub_134E820(1);
sub_134ECF0(1);
}
if ( TSecType_unsigned_char_::GetData(v34 + 8368) < 0 )
{
COutPacket::COutPacket_0((int)&v198, 308);
v47 = Dst;
LOBYTE(v191) = 10;
if ( Dst )
v48 = *(_DWORD *)(Dst - 4);
else
v48 = 0;
if ( v200 + 1 > v48 )
{
if ( Dst )
v47 = *(_DWORD *)(Dst - 4);
do
v47 *= 2;
while ( v200 + 1 > v47 );
ZArray_unsigned_char_::_Realloc(v47, 0, &v213);
v47 = Dst;
}
*(_BYTE *)(v47 + v200) = 24;
v49 = Dst;
++v200;
if ( Dst )
v50 = *(_DWORD *)(Dst - 4);
else
v50 = 0;
if ( v200 + 1 > v50 )
{
if ( Dst )
v49 = *(_DWORD *)(Dst - 4);
do
v49 *= 2;
while ( v200 + 1 > v49 );
ZArray_unsigned_char_::_Realloc(v49, 0, &v213);
v49 = Dst;
}
*(_BYTE *)(v49 + v200++) = 17;
CClientSocket::SendPacket(dword_1B450A4, &v198);
LOBYTE(v191) = 7;
ZArray_unsigned_char_::RemoveAll(&Dst);
}
v51 = (int)v209;
v52 = *(int (__thiscall **)(_DWORD))(v209[1] + 128);
v53 = (int)(v209 + 1);
v167 = &off_1B27710;
v187 = (int)(v209 + 1);
if ( v52(v209 + 1) )
{
if ( (unsigned __int8)ZtlSecureFuse_unsigned_char_(v33 + 51, *(_DWORD *)(v33 + 53)) != 1
|| (v166 = *(_DWORD *)(v33 + 177), v33 += 161, LODWORD(v54) = sub_48EB60(v33, v166), v54) )
{
v55 = v211;
}
else
{
v55 = v211;
v33 = 0;
if ( !*(_DWORD *)(v211 + 22936)
&& !*(_DWORD *)(v211 + 22940)
&& !*(_BYTE *)(v211 + 28201)
&& !*(_BYTE *)(v211 + 28208) )
{
FileTime.dwHighDateTime = ZAllocEx_ZAllocAnonSelector_::Alloc(5136);
LOBYTE(v191) = 11;
if ( FileTime.dwHighDateTime && (v57 = CUtilDlgEx::CUtilDlgEx(0)) != 0 && v57 != -8 )
{
v58 = v57;
v204 = (void *)v57;
if ( v57 )
InterlockedIncrement((volatile LONG *)(v57 + 12));
}
else
{
v58 = 0;
v204 = 0;
}
FileTime.dwHighDateTime = (DWORD)&v165;
v166 = 0;
v193 = &v164;
v164 = 0;
v163 = 0;
v162 = 0;
v161 = v56;
v209 = &v161;
LOBYTE(v191) = 14;
v59 = (void *)StringPool::GetInstance();
StringPool::GetString(v59, &v161, 7826);
LOBYTE(v191) = 12;
CUtilDlgEx::SetUtilDlgEx_0(v58, 0, (int)loc_897B50, v161, v162, v163, v164, v165, v166);
CUtilDlgEx::SetUtilDlgEx_TEXT(0, 0);
CUtilDlgEx::CreateUtilDlgEx(v58, 0, v55);
CDialog::DoModal(v58, v55, v58, 0);
}
}
v60 = dword_1B5868C;
if ( dword_1B5868C )
{
if ( (*(int (__cdecl **)(int (****)[2], int (****)[2]))(*(_DWORD *)(dword_1B5868C + 4) + 128))(&off_1B259F4, v167) )
{
v61 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128);
*(_DWORD *)&v165 = &off_1B259F4;
if ( v61(dword_1B5868C + 4) )
{
v62 = dword_1B5868C;
if ( !dword_1B5868C
|| (v63 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128),
v164 = (const CHAR *)&off_1B259F4,
!v63(dword_1B5868C + 4)) )
v62 = 0;
if ( sub_489370(v62 + 696) )
{
if ( !*(_DWORD *)(v55 + 22936) )
{
if ( !*(_DWORD *)(v55 + 22940) )
{
if ( !*(_BYTE *)(v55 + 28201) )
{
if ( !*(_BYTE *)(v55 + 28208) )
{
v64 = dword_1B49C1C;
if ( *(_DWORD *)(dword_1B49C1C + 32) )
{
if ( (unsigned int)((*(_DWORD *)(dword_1B49C1C + 3780) - *(_DWORD *)(dword_1B49C1C + 3776)) >> 3) >= 2 )
{
v65 = *(_DWORD *)(dword_1B49C1C + 3776);
v66 = *(_DWORD *)(v65 + 8 * ((*(_DWORD *)(dword_1B49C1C + 3780) - v65) >> 3) - 8);
v33 = *(_DWORD *)(v65 + 8 * ((*(_DWORD *)(dword_1B49C1C + 3780) - v65) >> 3) - 4);
if ( *(_DWORD *)(dword_1B49C1C + 104) )
v67 = 0;
else
v67 = *(_BYTE *)(dword_1B4553C + 136) != 0 ? -1 : 16;
if ( !dword_1B6E1D0 )
com_issue_error(-2147467261);
v68 = sub_B41F10(v67, v66, v33);
if ( v68 == 1 )
{
v69 = *(_DWORD *)(dword_1B49C1C + 3776);
v66 = *(_DWORD *)(v69 + 8 * ((*(_DWORD *)(dword_1B49C1C + 3780) - v69) >> 3) - 16);
v33 = *(_DWORD *)(v69 + 8 * ((*(_DWORD *)(dword_1B49C1C + 3780) - v69) >> 3) - 12);
if ( !dword_1B6E1D0 )
com_issue_error(-2147467261);
v68 = sub_B41F10(v67, v66, v33);
}
if ( !v68 && (get_screen_height(v164, *(_DWORD *)&v165) != v33 || get_screen_width() != v66) )
{
v212 = 0;
LOBYTE(v191) = 15;
v70 = (void *)StringPool::GetInstance();
v71 = *(char **)StringPool::GetString(v70, &v209, 8054);
v163 = v33;
LOBYTE(v191) = 16;
ZXString_char_::Format((int)&v212, v71, v66);
LOBYTE(v191) = 15;
if ( v209 )
ZXString_char_::_Release((volatile LONG *)v209 - 3);
FileTime.dwHighDateTime = ZAllocEx_ZAllocAnonSelector_::Alloc(5136);
LOBYTE(v191) = 17;
if ( FileTime.dwHighDateTime && (v72 = CUtilDlgEx::CUtilDlgEx(0)) != 0 && v72 != -8 )
{
v73 = v72;
v204 = (void *)v72;
if ( v72 )
InterlockedIncrement((volatile LONG *)(v72 + 12));
}
else
{
v73 = 0;
v204 = 0;
}
sub_70DBB0(1);
FileTime.dwHighDateTime = (DWORD)&v162;
v163 = 0;
v193 = &v161;
v161 = 0;
v160 = 1;
v159 = 0;
v158 = v74;
v209 = &v158;
LOBYTE(v191) = 20;
ZXString_char_::ZXString_char__0(&v158, (int)&v212);
LOBYTE(v191) = 18;
CUtilDlgEx::SetUtilDlgEx_0(
v73,
1,
(int)loc_897B50,
v158,
(int)v159,
v160,
(LPCSTR)v161,
v162,
v163);
sub_1256380(v73, v75);
CUtilDlgEx::CreateUtilDlgEx(v73, v33, v66);
CDialog::DoModal(v73, v66, v73, v33);
}
v64 = dword_1B49C1C;
}
v55 = v211;
*(_DWORD *)(v64 + 32) = 0;
}
}
}
}
}
}
}
}
v60 = dword_1B5868C;
}
if ( *(_DWORD *)(v55 + 8420) )
{
if ( v60 )
{
v76 = v60 + 4;
v77 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(v60 + 4) + 128);
v163 = (signed int)&off_1B259F4;
if ( v77(v76) )
{
v78 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128);
v162 = (int)&off_1B259F4;
if ( v78(dword_1B5868C + 4) )
{
v79 = dword_1B5868C;
if ( !dword_1B5868C
|| (v80 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128),
v161 = (int)&off_1B259F4,
!v80(dword_1B5868C + 4)) )
v79 = 0;
if ( sub_489370(v79 + 696) )
{
sub_C5B6D0(&v175);
LOBYTE(v191) = 21;
CDialog::DoModal((int)&v175, v55, v79, v33);
}
}
}
}
sub_13711F0(*(_DWORD *)(v55 + 8424), 0);
}
v213 = *(_BYTE *)(v55 + 8428);
if ( v213 )
{
v82 = *(_DWORD *)(v211 + 8434);
v83 = *(_DWORD *)(v211 + 8438);
v84 = *(_DWORD *)(v211 + 8442);
*(_DWORD *)&pvarg.vt = *(_DWORD *)(v211 + 8430);
v81 = pvarg.vt;
*(_QWORD *)&pvarg.wReserved2 = __PAIR__(v83, v82);
HIDWORD(pvarg.dblVal) = v84;
v210 = 0;
LOBYTE(v191) = 22;
v85 = (void *)StringPool::GetInstance();
v86 = *(char **)StringPool::GetString(v85, &v209, 3984);
v160 = pvarg.wReserved3;
v159 = (VARIANTARG *)pvarg.wReserved1;
LOBYTE(v191) = 23;
ZXString_char_::Format((int)&v210, v86, v81);
LOBYTE(v191) = 22;
if ( v209 )
ZXString_char_::_Release((volatile LONG *)v209 - 3);
VariantInit(&pvarg);
v87 = ZComAPI::ZComVariantCopy(&pvarg, &::pvarg);
if ( v87 < 0 )
com_issue_error(v87);
LOBYTE(v191) = 24;
VariantInit(&pvargDest);
v88 = ZComAPI::ZComVariantCopy(&pvargDest, &::pvarg);
if ( v88 < 0 )
com_issue_error(v88);
v160 = (int)&pvarg;
v159 = &pvargDest;
v158 = v89;
FileTime.dwHighDateTime = (DWORD)&v158;
LOBYTE(v191) = 25;
StringPool::GetInstance();
StringPool::GetBSTR((int)&v158, 3991);
LOBYTE(v191) = 26;
if ( !dword_1B6E1D4 )
com_issue_error(-2147467261);
LOBYTE(v191) = 25;
v90 = IWzResMan::GetObjectA((void *)dword_1B6E1D4, &v176, v158, (int)v159, v160);
LOBYTE(v191) = 27;
v91 = *(_DWORD *)sub_458890(&v209, v90);
LOBYTE(v191) = 28;
v195 = 0;
FileTime.dwHighDateTime = (DWORD)&v160;
v160 = v91;
if ( v91 )
{
v92 = *(void (**)(void))(*(_DWORD *)v91 + 4);
v159 = (VARIANTARG *)v91;
v92();
}
v93 = sub_455FC0(v159);
if ( v93 < 0 && v93 != -2147467262 )
com_issue_error(v93);
LOBYTE(v191) = 30;
if ( v209 )
(*(void (__cdecl **)(int *, int, int, int, signed int, const CHAR *, _DWORD))(*v209 + 8))(
v209,
v160,
v161,
v162,
v163,
v164,
*(_DWORD *)&v165);
LOBYTE(v191) = 31;
if ( v176 == 8 )
{
v176 = 0;
if ( v177 )
dword_1B5D608(v177 - 4);
}
else
{
VariantClear((VARIANTARG *)&v176);
}
LOBYTE(v191) = 32;
if ( pvargDest.vt == 8 )
{
pvargDest.vt = 0;
if ( pvargDest.lVal )
dword_1B5D608(pvargDest.lVal - 4);
}
else
{
VariantClear(&pvargDest);
}
LOBYTE(v191) = 33;
if ( pvarg.vt == 8 )
{
pvarg.vt = 0;
if ( pvarg.lVal )
dword_1B5D608(pvarg.lVal - 4);
}
else
{
VariantClear(&pvarg);
}
v94 = v195;
if ( v195 )
{
v95 = alloca(32);
v96 = _itow((unsigned __int8)v213, (wchar_t *)&v155, 10);
FileTime.dwHighDateTime = (DWORD)&v154;
sub_456780(v96);
LOBYTE(v191) = 33;
v97 = IWzProperty::Getitem(&Dst, v154);
LOBYTE(v191) = 35;
v98 = *(_DWORD *)sub_458890(&v193, v97);
LOBYTE(v191) = 36;
v208 = 0;
FileTime.dwHighDateTime = (DWORD)&v154;
v154 = v98;
if ( v98 )
{
v99 = *(void (**)(void))(*(_DWORD *)v98 + 4);
v153 = v98;
v99();
}
v100 = sub_455FC0(v153);
if ( v100 < 0 && v100 != -2147467262 )
com_issue_error(v100);
LOBYTE(v191) = 38;
if ( v193 )
{
v102 = *(void (**)(void))(*(_DWORD *)v193 + 8);
v153 = (int)v193;
v102();
}
LOBYTE(v191) = 39;
if ( (_WORD)Dst == 8 )
{
LOWORD(Dst) = 0;
if ( v201 )
dword_1B5D608(v201 - 4);
}
else
{
VariantClear((VARIANTARG *)&Dst);
}
v212 = 0;
v103 = v208;
LOBYTE(v191) = 40;
if ( v208 )
{
v152 = v101;
FileTime.dwHighDateTime = (DWORD)&v152;
StringPool::GetInstance();
StringPool::GetBSTR((int)&v152, 11903);
LOBYTE(v191) = 40;
v104 = IWzProperty::Getitem(&v202, v152);
v15 = *(_WORD *)v104 == 8;
LOBYTE(v191) = 42;
if ( v15 )
v105 = *(const WCHAR **)(v104 + 8);
else
v105 = &word_187BA78;
sub_4B4A40(v105, -1);
LOBYTE(v191) = 40;
if ( v202 == 8 )
{
v202 = 0;
if ( v203 )
dword_1B5D608(v203 - 4);
}
else
{
VariantClear((VARIANTARG *)&v202);
}
}
v152 = 0;
v151 = 0;
v150 = 0;
v149 = 1;
v148 = 0;
v147 = 0;
sub_523230(&FileTime.dwHighDateTime, word_187F734);
v146 = v106;
v204 = &v146;
LOBYTE(v191) = 43;
sub_519200(&v146, &v210);
CUtilDlg::Notice(v146, v147, v148, v149, v150, v151, v152);
LOBYTE(v191) = 40;
if ( FileTime.dwHighDateTime )
ZXString_char_::_Release((volatile LONG *)(FileTime.dwHighDateTime - 12));
LOBYTE(v191) = 39;
if ( v212 )
ZXString_char_::_Release((volatile LONG *)(v212 - 12));
LOBYTE(v191) = 33;
if ( v103 )
{
v107 = *(void (**)(void))(*(_DWORD *)v103 + 8);
v152 = v103;
v107();
}
}
LOBYTE(v191) = 22;
if ( v94 )
{
v108 = *(void (**)(void))(*(_DWORD *)v94 + 8);
v151 = (char *)v94;
v108();
}
LOBYTE(v191) = 7;
if ( v210 )
ZXString_char_::_Release((volatile LONG *)(v210 - 12));
}
v109 = v211;
if ( *(_DWORD *)(v211 + 8) )
{
v110 = Util::FTGetNow(v151, v152, v153, v154);
FileTime.dwHighDateTime = v111;
FileTime.dwLowDateTime = v110;
FileTimeToSystemTime(&FileTime, (LPSYSTEMTIME)&pvarg);
v112 = pvarg.wReserved3 + 100 * (pvarg.wReserved1 + 100 * pvarg.vt);
if ( v112 < 20110806 || v112 == 20110806 && HIWORD(pvarg.lVal) + 100 * LOWORD(pvarg.lVal) < 1431 && !dword_1B585F0 )
{
v113 = ZAllocEx_ZAllocAnonSelector_::Alloc(140);
v204 = (void *)v113;
LOBYTE(v191) = 44;
if ( v113 )
sub_C5AD30(v113);
LOBYTE(v191) = 7;
}
if ( *(_DWORD *)(v109 + 22936)
|| *(_DWORD *)(v109 + 22940)
|| *(_BYTE *)(v109 + 28201)
|| *(_BYTE *)(v109 + 28208) )
{
if ( dword_1B585F0 )
{
CWnd::Destroy((void *)dword_1B585F0);
if ( dword_1B585F0 )
(**(void (__cdecl ***)(_DWORD))(dword_1B585F0 + 8))(1);
}
}
if ( *(_DWORD *)(v109 + 22936) || *(_DWORD *)(v109 + 22940) || *(_BYTE *)(v109 + 28201) )
{
if ( dword_1B585F4 )
sub_C505E0(0);
if ( dword_1B585F8 )
sub_C50820(0);
}
*(_DWORD *)(v109 + 8) = 0;
}
v114 = v179;
if ( v179 )
{
v149 = 0;
v148 = (int)String2;
v212 = 0;
v115 = ZXString_char_::GetBuffer(0, 0);
memcpy(v115, v148, v149);
ZXString_char_::ReleaseBuffer(&v212, 0);
LOBYTE(v191) = 45;
if ( v206 )
v116 = *(_DWORD *)(v206 - 4);
else
v116 = 0;
ZXString_char_::_Cat(&v212, v206, v116);
ZXString_char_::_Cat(&v212, (int)word_187F734, 2);
v117 = 0;
if ( v114 > 0 )
{
v118 = v194;
do
{
ZXString_char_::_Cat(&v212, (int)dword_18B1990, 4);
v119 = *(_DWORD *)(v118 + 4 * v117);
if ( v119 )
v120 = *(_DWORD *)(v119 - 4);
else
v120 = 0;
ZXString_char_::_Cat(&v212, v119, v120);
++v117;
}
while ( v117 < v114 );
}
if ( !dword_1B585FC )
{
v121 = (void *)ZAllocEx_ZAllocAnonSelector_::Alloc(232);
v204 = v121;
LOBYTE(v191) = 46;
if ( v121 )
CUIEventAlarm::CUIEventAlarm(v121);
LOBYTE(v191) = 45;
}
v204 = &v149;
v149 = 0;
ZXString_char_::operator_(&v149, &v212);
CUIEventAlarm::SetEventAlarm(v149);
CUIEventAlarm::Layout_GEN(dword_1B585FC);
CUIEventAlarm::CreateEventAlarm(dword_1B585FC);
CWndMan::SetFocus(v187);
LOBYTE(v191) = 7;
if ( v212 )
ZXString_char_::_Release((volatile LONG *)(v212 - 12));
}
}
else
{
v122 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)v53 + 128);
v166 = (LONG)&off_1B259F4;
if ( v122(v53) )
{
v123 = v211;
if ( *(_DWORD *)(v211 + 8420) )
{
if ( !sub_489370(v51 + 696) )
{
if ( dword_1B5868C )
{
v124 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128);
*(_DWORD *)&v165 = &off_1B259F4;
if ( v124(dword_1B5868C + 4) )
{
v125 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128);
v164 = (const CHAR *)&off_1B259F4;
if ( v125(dword_1B5868C + 4) )
{
v126 = get_field();
if ( sub_489370(v126 + 696) == 10000 )
{
sub_C5B6D0(&v175);
LOBYTE(v191) = 47;
CDialog::DoModal((int)&v175, v51, v123, v33);
}
}
}
}
}
}
if ( *(_DWORD *)(v123 + 8) )
{
v127 = Util::FTGetNow(v164, *(_DWORD *)&v165, v166, v167);
v187 = v128;
v186 = v127;
FileTimeToSystemTime((const FILETIME *)&v186, (LPSYSTEMTIME)&pvarg);
v129 = pvarg.wReserved3 + 100 * (pvarg.wReserved1 + 100 * pvarg.vt);
if ( v129 < 20110806
|| v129 == 20110806 && HIWORD(pvarg.lVal) + 100 * LOWORD(pvarg.lVal) < 1431 && !dword_1B585F0 )
{
v130 = ZAllocEx_ZAllocAnonSelector_::Alloc(140);
v204 = (void *)v130;
LOBYTE(v191) = 48;
if ( v130 )
sub_C5AD30(v130);
LOBYTE(v191) = 7;
}
if ( *(_DWORD *)(v123 + 22936)
|| *(_DWORD *)(v123 + 22940)
|| *(_BYTE *)(v123 + 28201)
|| *(_BYTE *)(v123 + 28208) )
{
if ( dword_1B585F0 )
{
CWnd::Destroy((void *)dword_1B585F0);
if ( dword_1B585F0 )
{
v131 = (void (*)(void))**(_DWORD **)(dword_1B585F0 + 8);
v163 = 1;
v131();
}
}
}
if ( !dword_1B585F8 && sub_1312AF0(v123) )
sub_B43010(v163);
if ( *(_DWORD *)(v123 + 22936) || *(_DWORD *)(v123 + 22940) || *(_BYTE *)(v123 + 28201) )
{
if ( dword_1B585F4 )
sub_C505E0(0);
if ( dword_1B585F8 )
sub_C50820(0);
}
*(_DWORD *)(v123 + 8) = 0;
}
}
}
v132 = v211;
sub_BAEAA0(0);
sub_BAEA90(0);
if ( v192 )
CWvsContext::CheckNewQuestAvailabl((void *)v132, 1, 0);
if ( dword_1B5868C )
{
v133 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128);
v162 = (int)&off_1B259F4;
if ( v133(dword_1B5868C + 4) )
{
v134 = dword_1B5868C;
if ( !dword_1B5868C
|| (v135 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128),
v161 = (int)&off_1B259F4,
!v135(dword_1B5868C + 4)) )
v134 = 0;
if ( *(_DWORD *)(v134 + 708) == 29 )
{
COutPacket::COutPacket_0((int)&v198, 591);
LOBYTE(v191) = 49;
CClientSocket::SendPacket(dword_1B450A4, &v198);
LOBYTE(v191) = 7;
ZArray_unsigned_char_::RemoveAll(&Dst);
}
}
}
if ( !v188 )
sub_134A8A0((void *)v132);
if ( dword_1B4B008 )
{
if ( dword_1B5868C )
{
v136 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128);
v159 = (VARIANTARG *)&off_1B259F4;
if ( v136(dword_1B5868C + 4) )
{
v137 = dword_1B5868C;
if ( !dword_1B5868C
|| (v138 = *(int (__thiscall **)(_DWORD))(*(_DWORD *)(dword_1B5868C + 4) + 128),
v158 = (int)&off_1B259F4,
!v138(dword_1B5868C + 4)) )
v137 = 0;
v157 = (*(_DWORD *)(v137 + 712) >> 27) & 1;
sub_E4D170(v157);
}
}
}
if ( dword_1B450AC )
{
sub_1397570();
v139 = dword_1B450AC;
if ( dword_1B450AC )
{
v140 = *(_DWORD *)(dword_1B450AC + 8548);
if ( v140 )
{
v157 = *(_DWORD *)(v140 + 61);
v141 = sub_486E20(v140 + 57, v157);
if ( (signed __int16)v141 == 3101 || v141 == 3120 || v141 == 3121 || v141 == 3122 )
{
COutPacket::COutPacket_0((int)&v198, 352);
LOBYTE(v191) = 50;
CClientSocket::SendPacket(dword_1B450A4, &v198);
LOBYTE(v191) = 7;
ZArray_unsigned_char_::RemoveAll(&Dst);
}
v139 = dword_1B450AC;
}
if ( v139 )
sub_1307DA0();
}
}
if ( !dword_1B533F0 && !dword_1B58600 )
*(_DWORD *)(v132 + 29096) = 1;
LOBYTE(v191) = 4;
sub_B43FF0((int)&v180);
v142 = v197 - 16;
v143 = (volatile LONG *)(v197 - 16 + 4);
v156 = v197 - 16 + 4;
LOBYTE(v191) = 1;
if ( !InterlockedDecrement((volatile LONG *)v156) )
{
InterlockedIncrement(v143);
if ( v142 )
{
v144 = (void (__thiscall *)(_DWORD))**(_DWORD **)v142;
v156 = 1;
v144(v142);
}
}
LOBYTE(v191) = 0;
ZArray_ZXString_char___::RemoveAll(&v194);
v191 = -1;
if ( v206 )
ZXString_char_::_Release((volatile LONG *)(v206 - 12));
return security_check_cookie((unsigned int)&v192 ^ v214);
}
Thanks buddy.
v192 = -1;
v191 = sub_147F380;
v190 = a1;
v214 = (unsigned int)&v193 ^ dword_1AD6360;
v209 = (int *)a2;
sub_1218260((unsigned int)&v193 ^ dword_1AD6360);
v211 = dword_1ADBC54;
sub_5AF3B0(a3);
v3 = *(_DWORD *)(dword_1ADBC54 + 8404);
v4 = [COLOR=#ff0000]CInPacket::Decode4(a3);[/COLOR]
sub_B32470(v4);
*(_DWORD *)(dword_1ADBC54 + 8416) = (unsigned __int8)CInPacket::Decode1(a3);
*(_DWORD *)(dword_1ADBC54 + 24972) = [COLOR=#ff0000]CInPacket::Decode4(a3);[/COLOR]
if ( v3 != *(_DWORD *)(dword_1ADBC54 + 8404) )
*(_DWORD *)(dword_1ADBC54 + 22636) = 1;
v213 = [COLOR=#ff0000]CInPacket::Decode1(a3);[/COLOR]
[COLOR=#ff0000] CInPacket::Decode4(a3);[/COLOR]
v193 = (unsigned __int8)[COLOR=#ff0000]CInPacket::Decode1(a3);[/COLOR]
v5 = [COLOR=#ff0000]CInPacket::Decode2(a3);[/COLOR]
mplew.writeShort(2);
mplew.writeLong(1L);
mplew.writeLong(2L);
mplew.writeLong(chr.getClient().getChannel() - 1);
1/ idk what name of main function that handle all received packet. Could you please tell me it!
2/ i realize that name of function changed after open IDB and address also. Can you tell me how to find the true address before named!
3/
Code:v192 = -1; v191 = sub_147F380; v190 = a1; v214 = (unsigned int)&v193 ^ dword_1AD6360; v209 = (int *)a2; sub_1218260((unsigned int)&v193 ^ dword_1AD6360); v211 = dword_1ADBC54; sub_5AF3B0(a3); v3 = *(_DWORD *)(dword_1ADBC54 + 8404); v4 = [COLOR=#ff0000]CInPacket::Decode4(a3);[/COLOR] sub_B32470(v4); *(_DWORD *)(dword_1ADBC54 + 8416) = (unsigned __int8)CInPacket::Decode1(a3); *(_DWORD *)(dword_1ADBC54 + 24972) = [COLOR=#ff0000]CInPacket::Decode4(a3);[/COLOR] if ( v3 != *(_DWORD *)(dword_1ADBC54 + 8404) ) *(_DWORD *)(dword_1ADBC54 + 22636) = 1; v213 = [COLOR=#ff0000]CInPacket::Decode1(a3);[/COLOR] [COLOR=#ff0000] CInPacket::Decode4(a3);[/COLOR] v193 = (unsigned __int8)[COLOR=#ff0000]CInPacket::Decode1(a3);[/COLOR] v5 = [COLOR=#ff0000]CInPacket::Decode2(a3);[/COLOR]
but warp_to_map is:
so why the first decode is CInPacket:ecode4 not CInPacket:ecode2Code:mplew.writeShort(2); mplew.writeLong(1L); mplew.writeLong(2L); mplew.writeLong(chr.getClient().getChannel() - 1);
can i use v144.3 idb, name something then apply it to v146.1 ?
or else, use idb v146.1 apply to v144.3.
will something go to be wrong?
can i use v144.3 idb, name something then apply it to v146.1 ?
or else, use idb v146.1 apply to v144.3.
will something go to be wrong?
i got it, mean that when new version of NX we will have a new idb file, name it's function from begin !There were a lot of opcode changes from v144 to v146, so no.
Have fun with these:
You must be registered to see links
One question, did you make all of these? :O
how can i make a memory dumps? i tried with soft then it show me something like "access denied" or "cannot postpone this process" ....90% of them, yup. Mem dumps, localhosts, unpacked clients... most of them manual.
Note that some can be corrupt!!! I used IDA Pro 5 (non free) in the past, which seems to be 'detected' as a pirated version by 6.1. (IDBs contain license info!).