Welcome!

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!

Library of IDB's for different versions with named addresses

Newbie Spellweaver
Joined
Dec 22, 2013
Messages
31
Reaction score
5
Re: Library of IDB's for different versions with named addresses [Rev. 004]

You have for v145?
 
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
Re: Library of IDB's for different versions with named addresses [Rev. 004]

You have for v145?

Uh, 145 is same as v146, but I didn't release 146 yet since I'm naming more on it. It's on hold o: Doing something else atm, but I wouldn't mind doing basic ones quickly for 145 if you need it asap.
 
Newbie Spellweaver
Joined
Dec 22, 2013
Messages
31
Reaction score
5
Re: Library of IDB's for different versions with named addresses [Rev. 004]

It would be very nice if you can give me the warptomap function :)
 
Newbie Spellweaver
Joined
Dec 22, 2013
Messages
31
Reaction score
5
Re: Library of IDB's for different versions with named addresses [Rev. 004]

Sure that would be great.
 
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
Re: Library of IDB's for different versions with named addresses [Rev. 004]

Sure that would be great.

Not a lot of stuff are named in it since... er it's way easier to analyze a sniffed packet for this one

Code:
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.

ik who u r n not ur buddy
 
Last edited:
Newbie Spellweaver
Joined
Dec 22, 2013
Messages
31
Reaction score
5
Re: Library of IDB's for different versions with named addresses [Rev. 004]

Thanks buddy.
 
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
Re: Library of IDB's for different versions with named addresses [Rev. 004]

Anyone care if I name little more stuff for v146 or just put it on thread cuz im sorta tired of that one now lol

EDIT: v99.2 ems from another thread added here (credits to me only for clogin and i renamed CStage::OnPacket to what it should be CField lol)
 
Last edited:
Legendary Battlemage
Joined
Mar 21, 2013
Messages
665
Reaction score
90
Re: Library of IDB's for different versions with named addresses [Rev. 004]

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:
Code:
        mplew.writeShort(2);
        mplew.writeLong(1L);
        mplew.writeLong(2L);
        mplew.writeLong(chr.getClient().getChannel() - 1);
so why the first decode is CInPacket::Decode4 not CInPacket::Decode2
 
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
Re: Library of IDB's for different versions with named addresses [Rev. 004]

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:
Code:
        mplew.writeShort(2);
        mplew.writeLong(1L);
        mplew.writeLong(2L);
        mplew.writeLong(chr.getClient().getChannel() - 1);
so why the first decode is CInPacket::Decode4 not CInPacket::Decode2

i'm not going to explain how to read ida... I've already stated it's easier to do warptomap with a sniffed copy

I only use ida for smaller/med packets

there are no recv stuff to be found in ida.... -.-
 
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
Re: Library of IDB's for different versions with named addresses [Rev. 004]

v146.1 idb is posted an it contains many names, tho most useless to many lawl. I got bored of it and did not wanna continue it...
 
Newbie Spellweaver
Joined
Jan 19, 2014
Messages
50
Reaction score
14
Re: Library of IDB's for different versions with named addresses [Rev. 004]

Thanks! I just downloaded IDA you posted in OP and now I can finally learn IDA =]
 
Legendary Battlemage
Joined
Mar 21, 2013
Messages
665
Reaction score
90
Re: Library of IDB's for different versions with named addresses [Rev. 004]

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?
 
BloopBloop
Joined
Aug 9, 2012
Messages
892
Reaction score
275
Re: Library of IDB's for different versions with named addresses [Rev. 004]

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?

v144 != v146
 
Legendary Battlemage
Joined
Mar 21, 2013
Messages
665
Reaction score
90
Re: Library of IDB's for different versions with named addresses [Rev. 004]

There were a lot of opcode changes from v144 to v146, so no.
i got it, mean that when new version of NX we will have a new idb file, name it's function from begin !
 
Everything is possible~
Loyal Member
Joined
Jan 9, 2008
Messages
818
Reaction score
847
Re: Library of IDB's for different versions with named addresses [Rev. 004]

Have fun with these:

 
Everything is possible~
Loyal Member
Joined
Jan 9, 2008
Messages
818
Reaction score
847
Re: Library of IDB's for different versions with named addresses [Rev. 004]

One question, did you make all of these? :O

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!).
 
Legendary Battlemage
Joined
Mar 21, 2013
Messages
665
Reaction score
90
Re: Library of IDB's for different versions with named addresses [Rev. 004]

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!).
how can i make a memory dumps? i tried with soft then it show me something like "access denied" or "cannot postpone this process" ....
 
Back
Top