Arkadaşlar hemen hemen çoğunuz metin2 oyununu bilirsiniz. Bu oyunun giriş uygulamasının source kodlarını internette dolanırken buldum ancak bu kodları nasıl tekrar derleyip exe haline gitirebilirim.

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