NOT:Balığı direk elime vermeye kalkmayın balık tutmayı öğretin

Kodlardan bir bölüm. Hepsini yazmadım çünkü çok uzun

Yardım eden herkeze şimdiden teşekkür ediyorum.
/* This file has been generated by the Hex-Rays decompiler.
Copyright (c) 2009 Hex-Rays <info@hex-rays.com>
Detected compiler: Visual C++
*/
#include <windows.h>
#include <math.h>
#include <defs.h>
#include <stdarg.h>
//-------------------------------------------------------------------------
// Data declarations
extern char aApply_attbon_5[23]; // weak
extern char aApply_attbon_6[24]; // weak
extern char aApply_attbon_7[20]; // weak
extern char aApply_attbon_8[22]; // weak
extern char aApply_attbon_9[23]; // weak
extern char aApply_mall_att[20]; // weak
extern char aApply_mall_def[20]; // weak
extern char aApply_mall_exp[20]; // weak
extern char aApply_mall_ite[21]; // weak
extern char aApply_mall_gol[21]; // weak
extern char aApply_max_hp_p[17]; // weak
extern char aApply_max_sp_p[17]; // weak
extern char aApply_skill_da[25]; // weak
extern char aApply_normal_h[30]; // weak
extern char aApply_skill_de[25]; // weak
extern char aApply_normal_0[30]; // weak
extern char aApply_pc_bang_[24]; // weak
extern char aApply_pc_ban_0[25]; // weak
extern char aApply_resist_2[21]; // weak
extern char aApply_resist_a[22]; // weak
extern char aApply_resist_3[18]; // weak
extern char aApply_resist_4[20]; // weak
extern char aCpythonnonplay[]; // idb
extern char aCpythonnonpl_0[]; // idb
extern char aCpythonnonpl_1[]; // idb
extern int (__thiscall *off_7D2BE4)(void *, char); // weak
extern int (__thiscall *off_7D2BEC)(void *, char); // weak
extern char aNonplayer[10]; // weak
extern char aOn_click_event[20]; // weak
extern char aOn_click_eve_0[22]; // weak
extern char aOn_click_eve_1[20]; // weak
extern char aOn_click_eve_2[20]; // weak
extern char aOn_click_eve_3[23]; // weak
extern char aPawn[5]; // weak
extern char aS_pawn[7]; // weak
extern char aKnight[7]; // weak
extern char aS_knight[9]; // weak
extern char aBoss[5]; // weak
extern char aKing[5]; // weak
extern char aRefreshstamina[15]; // weak
extern char aBinary_guild_e[28]; // weak
extern char aBinary_guild_4[27]; // weak
extern char aCpythonplayerS[]; // idb
extern char aCpythonplayerG[]; // idb
extern char aOnchangepkmode[15]; // weak
extern char aCpythonplaye_0[]; // idb
extern char aBinary_actemot[18]; // weak
extern char aStrangeSlotind[]; // idb
extern char aFailedToFindIt[]; // idb
extern char aCpythonplaye_1[]; // idb
extern char aCpythonplayerE[]; // idb
extern char aCpythonplay_13[]; // idb
extern char aCpythonplayerA[]; // idb
extern char aActivateskills[18]; // weak
extern char aCpythonplayerD[]; // idb
extern char aDeactivateskil[20]; // weak
extern char aOncannotpickit[17]; // weak
extern char aOncannotmining[15]; // weak
extern char aNeed_target[12]; // weak
extern char aOncannotshoter[18]; // weak
extern char aKissS[]; // idb
extern char aCpythonplayerL[]; // idb
extern char aCpythonplayerU[]; // idb
extern char aCpythonplaye_2[]; // idb
extern char aCpythonplaye_3[]; // idb
extern char aCpythonplaye_4[]; // idb
extern char aRefreshmobile[14]; // weak
extern char aBinary_checkga[23]; // weak
extern int (__thiscall *off_7D336C)(void *, char); // weak
extern int (__thiscall *off_7D3400)(void *, char); // weak
extern int (__thiscall *off_7D3408)(void *, char); // weak
extern int (__stdcall *off_7D3414)(int); // weak
extern int (__thiscall *off_7D34A8)(void *, char); // weak
extern int (__thiscall *off_7D34DC)(void *, char); // weak
extern int (__thiscall *off_7D3504)(void *, char); // weak
extern int (__thiscall *off_7D3544)(void *, char); // weak
extern int (__thiscall *off_7D3584)(void *, char); // weak
extern char aSetpctargetboa[17]; // weak
extern char aCpythonplay_12[51]; // weak
extern char aOnfishingwrong[20]; // weak
extern char aOncannotuseski[17]; // weak
extern char aOncannotshot[13]; // weak
extern char aOncannotattack[15]; // weak
extern char aCpythonplayerN[56]; // weak
extern char aPlayer[7]; // weak
extern char aLevel[6]; // weak
extern char aVoice[6]; // weak
extern int (__stdcall *off_7D4070)(int); // weak
extern char aNext_exp[9]; // weak
extern char aHp[3]; // weak
int v5; // ebp@1
int v6; // eax@4
int v7; // esi@4
int v8; // eax@5
int v9; // eax@7
int v10; // eax@11
int v11; // edx@12
int v12; // ecx@12
int v13; // edx@13
int v14; // edx@18
int v15; // eax@22
int v16; // ecx@22
int v17; // edx@24
int v18; // edx@26
int result; // eax@32
char v20; // [sp+10h] [bp-50h]@2
char v21; // [sp+14h] [bp-4Ch]@2
int v22; // [sp+24h] [bp-3Ch]@2
int v23; // [sp+28h] [bp-38h]@2
int (__thiscall **v24)(void *, char); // [sp+2Ch] [bp-34h]@2
int v25; // [sp+5Ch] [bp-4h]@2
int v26; // [sp+6Ch] [bp+Ch]@4
v5 = a4;
if ( *(_DWORD *)(a1 + 8) >= 0x1FFFFFFEu )
{
v23 = 15;
v22 = 0;
v21 = 0;
sub_40C0E0((int)&v20, "map/set<T> too long", 0x13u);
v25 = 0;
sub_40B860((int)&v24, (int)&v20);
v24 = &off_7B3E58;
_CxxThrowException(&v24, &unk_801A5C);
}
v7 = sub_4C0C20(a5, *(_DWORD *)(a1 + 4), a4, *(_DWORD *)(a1 + 4));
v6 = *(_DWORD *)(a1 + 4);
++*(_DWORD *)(a1 + 8);
v26 = v7;
if ( v5 == v6 )
{
*(_DWORD *)(v6 + 4) = v7;
**(_DWORD **)(a1 + 4) = v7;
v8 = *(_DWORD *)(a1 + 4);
LABEL_10:
*(_DWORD *)(v8 + 8) = v7;
goto LABEL_11;
}
if ( !a3 )
{
*(_DWORD *)(v5 + 8) = v7;
v8 = *(_DWORD *)(a1 + 4);
if ( v5 != *(_DWORD *)(v8 + 8) )
goto LABEL_11;
goto LABEL_10;
}
*(_DWORD *)v5 = v7;
v9 = *(_DWORD *)(a1 + 4);
if ( v5 == *(_DWORD *)v9 )
*(_DWORD *)v9 = v7;
LABEL_11:
v10 = v7 + 4;
if ( !*(_BYTE *)(*(_DWORD *)(v7 + 4) + 20) )
{
do
{
v12 = *(_DWORD *)v10;
v11 = *(_DWORD *)(*(_DWORD *)v10 + 4);
if ( *(_DWORD *)v10 == *(_DWORD *)v11 )
{
v13 = *(_DWORD *)(v11 + 8);
if ( *(_BYTE *)(v13 + 20) )
{
if ( v7 == *(_DWORD *)(v12 + 8) )
{
v7 = *(_DWORD *)v10;
sub_4C0B70(v12, a1);
}
*(_BYTE *)(*(_DWORD *)(v7 + 4) + 20) = 1;
*(_BYTE *)(*(_DWORD *)(*(_DWORD *)(v7 + 4) + 4) + 20) = 0;
sub_4C0BD0(*(void **)(*(_DWORD *)(v7 + 4) + 4), a1);
}
else
{
*(_BYTE *)(v12 + 20) = 1;
*(_BYTE *)(v13 + 20) = 1;
*(_BYTE *)(*(_DWORD *)(*(_DWORD *)v10 + 4) + 20) = 0;
v7 = *(_DWORD *)(*(_DWORD *)v10 + 4);
}
}
else
{
v14 = *(_DWORD *)v11;
if ( *(_BYTE *)(v14 + 20) )
{
if ( v7 == *(_DWORD *)v12 )
{
v7 = *(_DWORD *)v10;
sub_4C0BD0((void *)v12, a1);
}
*(_BYTE *)(*(_DWORD *)(v7 + 4) + 20) = 1;
*(_BYTE *)(*(_DWORD *)(*(_DWORD *)(v7 + 4) + 4) + 20) = 0;
v15 = *(_DWORD *)(*(_DWORD *)(v7 + 4) + 4);
v16 = *(_DWORD *)(v15 + 8);
*(_DWORD *)(v15 + 8) = *(_DWORD *)v16;
if ( !*(_BYTE *)(*(_DWORD *)v16 + 21) )
*(_DWORD *)(*(_DWORD *)v16 + 4) = v15;
*(_DWORD *)(v16 + 4) = *(_DWORD *)(v15 + 4);
v17 = *(_DWORD *)(a1 + 4);
if ( v15 == *(_DWORD *)(v17 + 4) )
{
*(_DWORD *)(v17 + 4) = v16;
}
else
{
v18 = *(_DWORD *)(v15 + 4);
if ( v15 == *(_DWORD *)v18 )
*(_DWORD *)v18 = v16;
else
*(_DWORD *)(v18 + 8) = v16;
}
*(_DWORD *)v16 = v15;
*(_DWORD *)(v15 + 4) = v16;
}
else
{
*(_BYTE *)(v12 + 20) = 1;
*(_BYTE *)(v14 + 20) = 1;
*(_BYTE *)(*(_DWORD *)(*(_DWORD *)v10 + 4) + 20) = 0;
v7 = *(_DWORD *)(*(_DWORD *)v10 + 4);
}
}
v10 = v7 + 4;
}
while ( !*(_BYTE *)(*(_DWORD *)(v7 + 4) + 20) );
v7 = v26;
}
*(_BYTE *)(*(_DWORD *)(*(_DWORD *)(a1 + 4) + 4) + 20) = 1;
result = a2;
*(_DWORD *)(a2 + 4) = v7;
*(_DWORD *)a2 = a1;
return result;
}
// 751FCB: using guessed type _DWORD __stdcall _CxxThrowException(_DWORD, _DWORD);
// 7B3E58: using guessed type int (__thiscall *off_7B3E58)(void *, char);
//----- (004C0B70) --------------------------------------------------------
int __thiscall sub_4C0B70(int this, int a2)
{
int result; // eax@1
int v3; // edx@3
int v4; // edx@5
result = *(_DWORD *)(this + 8);
*(_DWORD *)(this + 8) = *(_DWORD *)result;
if ( !*(_BYTE *)(*(_DWORD *)result + 21) )
*(_DWORD *)(*(_DWORD *)result + 4) = this;
*(_DWORD *)(result + 4) = *(_DWORD *)(this + 4);
v3 = *(_DWORD *)(a2 + 4);
if ( this == *(_DWORD *)(v3 + 4) )
{
*(_DWORD *)(v3 + 4) = result;
*(_DWORD *)result = this;
*(_DWORD *)(this + 4) = result;
}
else
{
v4 = *(_DWORD *)(this + 4);
if ( this == *(_DWORD *)v4 )
{
*(_DWORD *)v4 = result;
*(_DWORD *)result = this;
*(_DWORD *)(this + 4) = result;
}
else
{
*(_DWORD *)(v4 + 8) = result;
*(_DWORD *)result = this;
*(_DWORD *)(this + 4) = result;
}
}
return result;
}
//----- (004C0BD0) --------------------------------------------------------
int __thiscall sub_4C0BD0(void *this, int a2)
{
int result; // eax@1
int v3; // edx@1
int v4; // edx@3
int v5; // edx@5
result = *(_DWORD *)this;
*(_DWORD *)this = *(_DWORD *)(*(_DWORD *)this + 8);
v3 = *(_DWORD *)(result + 8);
if ( !*(_BYTE *)(v3 + 21) )
*(_DWORD *)(v3 + 4) = this;
*(_DWORD *)(result + 4) = *((_DWORD *)this + 1);
v4 = *(_DWORD *)(a2 + 4);
if ( this == *(void **)(v4 + 4) )
{
*(_DWORD *)(v4 + 4) = result;
*(_DWORD *)(result + 8) = this;
*((_DWORD *)this + 1) = result;
}
else
{
v5 = *((_DWORD *)this + 1);
if ( this == *(void **)(v5 + 8) )
{
*(_DWORD *)(v5 + 8) = result;
*(_DWORD *)(result + 8) = this;
*((_DWORD *)this + 1) = result;
}
else
{
*(_DWORD *)v5 = result;
*(_DWORD *)(result + 8) = this;
*((_DWORD *)this + 1) = result;
}
}
return result;
}
//----- (004C0C20) --------------------------------------------------------
int __userpurge sub_4C0C20<eax>(int a1<esi>, int a2, int a3, int a4)
{
int result; // eax@1
result = sub_4C0DA0(1u);
if ( result )
{
*(_DWORD *)result = a2;
*(_DWORD *)(result + 4) = a3;
*(_DWORD *)(result + 8) = a4;
*(_DWORD *)(result + 12) = *(_DWORD *)a1;
*(_DWORD *)(result + 16) = *(_DWORD *)(a1 + 4);
*(_BYTE *)(result + 20) = 0;
*(_BYTE *)(result + 21) = 0;
}
return result;
}
//----- (004C0CD0) --------------------------------------------------------
int __usercall sub_4C0CD0<eax>(int a1<esi>)
{
int v1; // eax@3
int result; // eax@4
int v3; // ecx@6
if ( !*(_DWORD *)a1 )
_invalid_parameter_noinfo();
v1 = *(_DWORD *)(a1 + 4);
if ( *(_BYTE *)(v1 + 21) )
{
result = *(_DWORD *)(v1 + 8);
*(_DWORD *)(a1 + 4) = result;
if ( *(_BYTE *)(result + 21) )
result = _invalid_parameter_noinfo();
}
else
{
v3 = *(_DWORD *)v1;
if ( *(_BYTE *)(*(_DWORD *)v1 + 21) )
{
for ( result = *(_DWORD *)(v1 + 4); !*(_BYTE *)(result + 21); result = *(_DWORD *)(result + 4) )
{
if ( *(_DWORD *)(a1 + 4) != *(_DWORD *)result )
break;
*(_DWORD *)(a1 + 4) = result;
}
if ( *(_BYTE *)(*(_DWORD *)(a1 + 4) + 21) )
result = _invalid_parameter_noinfo();
else
*(_DWORD *)(a1 + 4) = result;
}
else
{
for ( result = *(_DWORD *)(v3 + 8); !*(_BYTE *)(result + 21); result = *(_DWORD *)(result + 8) )
v3 = result;
*(_DWORD *)(a1 + 4) = v3;
}
}
return result;
}
//----- (004C0DA0) --------------------------------------------------------
int __fastcall sub_4C0DA0(unsigned int a1)
{
int v2; // [sp+0h] [bp-10h]@2
int (__thiscall **v3)(void *, char); // [sp+4h] [bp-Ch]@3
if ( 0xFFFFFFFF / a1 < 0x18 )
{
v2 = 0;
std__exception__exception(&v2);
v3 = &off_7B3E34;
_CxxThrowException(&v3, &unk_801A94);
}
return operator new(24 * a1);
}
// 7481B6: using guessed type _DWORD __stdcall std__exception__exception(_DWORD);
// 751FCB: using guessed type _DWORD __stdcall _CxxThrowException(_DWORD, _DWORD);
// 7B3E34: using guessed type int (__thiscall *off_7B3E34)(void *, char);
//----- (004C0E40) --------------------------------------------------------
int __stdcall sub_4C0E40(int a1)
{
unsigned int v1; // ebx@1
int v2; // esi@1
int v3; // eax@1
int v4; // eax@1
int v5; // eax@1
int v6; // eax@1
unsigned int v8; // [sp+10h] [bp-1Ch]@1
char v9; // [sp+14h] [bp-18h]@2
int v10; // [sp+28h] [bp-4h]@1
v2 = a1;
dword_897F20 = a1;
v1 = 0;
v10 = 0;
*(_DWORD *)a1 = &off_7D9964;
v3 = sub_4C4550();
*(_DWORD *)(a1 + 8) = v3;
*(_BYTE *)(v3 + 21) = 1;
*(_DWORD *)(*(_DWORD *)(v2 + 8) + 4) = *(_DWORD *)(v2 + 8);
**(_DWORD **)(v2 + 8) = *(_DWORD *)(v2 + 8);
*(_DWORD *)(*(_DWORD *)(v2 + 8) + 8) = *(_DWORD *)(v2 + 8);
*(_DWORD *)(a1 + 12) = 0;
LOBYTE(v10) = 1;
v4 = sub_408360();
*(_DWORD *)(a1 + 20) = v4;
*(_BYTE *)(v4 + 21) = 1;
*(_DWORD *)(*(_DWORD *)(v2 + 20) + 4) = *(_DWORD *)(v2 + 20);
**(_DWORD **)(v2 + 20) = *(_DWORD *)(v2 + 20);
*(_DWORD *)(*(_DWORD *)(v2 + 20) + 8) = *(_DWORD *)(v2 + 20);
*(_DWORD *)(a1 + 24) = 0;
LOBYTE(v10) = 2;
v5 = sub_413FF0();
*(_DWORD *)(a1 + 32) = v5;
*(_BYTE *)(v5 + 17) = 1;
*(_DWORD *)(*(_DWORD *)(v2 + 32) + 4) = *(_DWORD *)(v2 + 32);
**(_DWORD **)(v2 + 32) = *(_DWORD *)(v2 + 32);
*(_DWORD *)(*(_DWORD *)(v2 + 32) + 8) = *(_DWORD *)(v2 + 32);
*(_DWORD *)(a1 + 36) = 0;
*(_DWORD *)(a1 + 64) = 15;
*(_DWORD *)(a1 + 60) = 0;
*(_BYTE *)(a1 + 44) = 0;
LOBYTE(v10) = 4;
v6 = sub_4C4900();
*(_DWORD *)(a1 + 72) = v6;
*(_BYTE *)(v6 + 37) = 1;
*(_DWORD *)(*(_DWORD *)(v2 + 72) + 4) = *(_DWORD *)(v2 + 72);
**(_DWORD **)(v2 + 72) = *(_DWORD *)(v2 + 72);
*(_DWORD *)(*(_DWORD *)(v2 + 72) + 8) = *(_DWORD *)(v2 + 72);
*(_DWORD *)(a1 + 76) = 0;
LOBYTE(v10) = 5;
_mkdir("mark");
v8 = 0;
do
{
sub_411C30(a1 + 28, (int)&v9, (int)&v8);
++v1;
v8 = v1;
}
while ( v1 < 0x1900 );
return a1;
}
// 7D9964: using guessed type int (__thiscall *off_7D9964)(void *, char);
// 897F20: using guessed type int dword_897F20;
//----- (004C0F70) --------------------------------------------------------
void *__thiscall sub_4C0F70(void *this, char a2)
{
void *v2; // esi@1
v2 = this;
sub_4C0FB0((int)this);
if ( a2 & 1 )
j__free(v2);
return v2;
}
//----- (004C0FB0) --------------------------------------------------------
int __thiscall sub_4C0FB0(int this)
{
int v1; // ebx@1
int v2; // ebp@1
int v3; // edi@1
int v4; // esi@1