Decompiling ScriptProcess.dll

04/16/2009 03:13 ItsNobody#1
Im trying to decompile the dll using boomerang and it keeps hanging during the decompile process. Any ideas anyone?
04/16/2009 04:28 LeQuebecoisqc#2
I don't know if this is what u was looking for :S Nvm i couldnt decompile it.
scriptprocess.c source code:




unsigned int global7;

void ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z();
void ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z();
void ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z();
void ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z();
void ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z();
void ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z(__ size32 param1);

// address: 0x100ae25f
void ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z(__ size32 param1) {
unsigned int eax; // r24
void *ebp; // r29
void *ebp_1; // r29{127}
void *ebp_2; // r29{106}
void *ebp_3; // r29{73}
void *ebp_4; // r29{58}
void *ebp_5; // r29{44}
__size32 ebx; // r27
unsigned int edi; // r31
int esi; // r30
void *esp; // r28
void *esp_1; // r28{127}
void *esp_10; // r28{212}
void *esp_11; // r28{194}
void *esp_12; // r28{203}
void *esp_13; // r28{163}
void *esp_14; // r28{154}
void *esp_2; // r28{106}
void *esp_3; // r28{90}
void *esp_4; // r28{73}
void *esp_5; // r28{58}
void *esp_6; // r28{44}
void *esp_7; // r28{8}
void *esp_8; // r28{185}
void *esp_9; // r28{172}
unsigned int local0; // m[esp - 12]
int local1; // m[esp - 8]
void *local10; // esp_11{194}
void *local11; // esp_12{203}
void *local12; // esp_10{212}
int local2; // m[esp - 4]
int local3; // m[esp - 4]{106}
int local4; // m[esp - 8]{106}
int local5; // m[esp - 12]{106}
void *local6; // esp_14{154}
void *local7; // esp_13{163}
void *local8; // esp_9{172}
void *local9; // esp_8{185}

ebx = ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z(pc , 0x100c86d0, 12, param1); /* Warning: also results in esp_7, ebp */
local6 = esp_7;
local7 = esp_7;
local11 = esp_7;
eax = 1;
*(__size32*)(ebp - 28) = 1;
esi = *(ebp + 12);
edi = 0;
if (esi == 0 && *0x100d1178 == 0) {
L2:
esp_12 = local11;
eax = 0;
flags = LOGICALFLAGS32(0);
local12 = esp_12;
} else {
*(__size32*)(ebp - 4) = 0;
if (esi == 1) {
L21:
eax = global7;
if (global7 != 0) {
*(__size32*)(esp_7 - 4) = *(ebp + 16);
*(int*)(esp_7 - 8) = esi;
*(__size32*)(esp_7 - 12) = *(ebp + 8);
(*global7)(local0, local1, local2, global7, ebx, ebp, esi, 0, <all>, SUBFLAGS32(global7, 0, global7), global7 == 0, global7 < 0);
local6 = esp_6;
*(unsigned int*)(ebp_5 - 28) = eax;
}
ebx = param1;
esp_14 = local6;
tmp1 = *(ebp - 28) - edi;
local10 = esp_14;
if (*(ebp - 28) == edi) {
L3:
esp_11 = local10;
*(int*)(ebp - 4) = *(ebp - 4) | -1;
local11 = esp_11;
goto L2;
} else {
*(__size32*)(esp_14 - 4) = *(ebp + 16);
*(int*)(esp_14 - 8) = esi;
*(__size32*)(esp_14 - 12) = *(ebp + 8);
eax = ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z(lo cal0, local1, local2, eax, param1, ebp, esi, edi, <all>, SUBFLAGS32(*(ebp - 28), edi, tmp1), tmp1 == 0, *(ebp - 28) < edi); /* Warning: also results in ebx, esp_5, ebp_4, esi, edi */
local7 = esp_5;
local10 = esp_5;
*(unsigned int*)(ebp_4 - 28) = eax;
flags = SUBFLAGS32(eax, edi, eax - edi);
if (eax == edi) {
goto L3;
} else {
L15:
esp_13 = local7;
ebx = *(ebp + 16);
*(__size32*)(esp_13 - 4) = ebx;
*(int*)(esp_13 - 8) = esi;
*(__size32*)(esp_13 - 12) = *(ebp + 8);
eax = ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z(lo cal0, local1, local2, eax, ebx, ebp, esi, edi, <all>, flags, ZF, CF); /* Warning: also results in ebx, esp_4, ebp_3, esi, edi */
local8 = esp_4;
*(unsigned int*)(ebp_3 - 28) = eax;
if ( !(esi != 1 || eax != edi)) {
*(__size32*)(esp_4 - 4) = ebx;
*(unsigned int*)(esp_4 - 8) = edi;
*(__size32*)(esp_4 - 12) = *(ebp_3 + 8);
eax = ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z(lo cal0, local1, local2, eax, ebx, ebp_3, esi, edi, <all>, SUBFLAGS32(eax, edi, eax - edi), eax - edi == 0, eax < edi); /* Warning: also results in ebx, esp_3, esi, edi */
local8 = esp_3;
local8 = esp_3;
}
esp_9 = local8;
flags = SUBFLAGS32(esi, edi, esi - edi);
local9 = esp_9;
if (esi == edi) {
L10:
*(__size32*)(esp_9 - 4) = ebx;
*(int*)(esp_9 - 8) = esi;
*(__size32*)(esp_9 - 12) = *(ebp_3 + 8);
eax = ?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z(lo cal0, local1, local2, eax, ebx, ebp_3, esi, edi, <all>, flags, ZF, CF); /* Warning: also results in ebx, esp_2, ebp_2, esi, edi */
local9 = esp_2;
if (eax == 0) {
*(unsigned int*)(ebp_2 - 28) = edi;
}
if ( !(*(ebp_2 - 28) == edi || global7 == edi)) {
*(__size32*)(esp_2 - 4) = ebx;
*(int*)(esp_2 - 8) = esi;
*(__size32*)(esp_2 - 12) = *(ebp_2 + 8);
(*global7)(local5, local4, local3, global7, ebx, ebp_2, esi, edi, <all>, SUBFLAGS32(global7, edi, global7 - edi), global7 - edi == 0, global7 < edi);
local9 = esp_1;
local9 = esp_1;
*(unsigned int*)(ebp_1 - 28) = eax;
}
} else {
flags = SUBFLAGS32(esi, 3, esi - 3);
if (esi == 3) {
goto L10;
}
}
esp_8 = local9;
*(int*)(ebp_3 - 4) = *(ebp_3 - 4) | -1;
flags = LOGICALFLAGS32(*(ebp_3 - 4));
eax = *(ebp_3 - 28);
local12 = esp_8;
}
}
} else {
flags = SUBFLAGS32(esi, 2, esi - 2);
if (esi != 2) {
goto L15;
} else {
goto L21;
}
}
}
esp_10 = local12;
?OnGetItem@IScript@Quest@ScriptProcess@@UAEXG@Z(lo cal0, local1, local2, eax, ebx, ebp, esi, edi, <all>, flags, ZF, CF);
return;
}
04/16/2009 04:37 ItsNobody#3
lol thx LQ but this thing is being a pain in the ass this is the furthest i got and it was in the decoding process

/* NOTE: All functions in this file are assumed to be PASCAL calling convention
(hard coded in FrontEnd::readLibraryCatalog()) */

typedef unsigned int UINT;
typedef int INT;
typedef unsigned int SIZE_T;
typedef unsigned int LONG;
typedef unsigned char BYTE;
typedef BYTE *LPBYTE;
typedef LONG *LPLONG;
typedef const void *LPCVOID;
typedef void *LPVOID;
typedef void *PVOID;
typedef const char *LPCSTR;
typedef char *LPSTR;
typedef const short *LPCWSTR;
typedef short *LPWSTR;
typedef short wchar_t;
typedef unsigned int DWORD;
typedef unsigned short WORD;
typedef int HWND;
typedef int HMENU;
typedef int HFONT;
typedef int HLOCAL;
typedef int HINSTANCE;
typedef int HICON;
typedef int HCURSOR;
typedef int HBRUSH;
typedef int HACCEL;
typedef int HDC;
typedef int HGDIOBJ;
typedef int WPARAM;
typedef int LPARAM;
typedef int LRESULT;
typedef int ATOM;
typedef int BOOL;
typedef int HRSRC;
typedef int HMODULE;
typedef int HGLOBAL;
typedef unsigned int ULONG;
typedef unsigned char BYTE;
typedef char CHAR;
typedef int HRESULT;
typedef LRESULT WndProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
typedef WndProc *WNDPROC;
typedef int CRITICAL_SECTION;
typedef CRITICAL_SECTION *LPCRITICAL_SECTION;

typedef int WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
);

HLOCAL LocalFree(HLOCAL hMem);
DWORD FormatMessageA(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPSTR lpBuffer, DWORD nSize, va_list* Arguments);
LPSTR CharNextA(
LPCSTR lpsz
);
LPWSTR CharNextW(
LPCWSTR lpsz
);
LPSTR GetCommandLineA(void);
LPWSTR GetCommandLineW(void);

typedef struct {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEX;
typedef struct {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCWSTR lpszMenuName;
LPCWSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEXw;


ATOM RegisterClassExW(WNDCLASSEXw *lpwcx);
ATOM RegisterClassExA(WNDCLASSEX *lpwcx);

int LoadStringA(
HINSTANCE hInstance,
UINT uID,
LPSTR lpBuffer,
int nBufferMax
);

int LoadStringW(
HINSTANCE hInstance,
UINT uID,
LPWSTR lpBuffer,
int nBufferMax
);

HACCEL LoadAcceleratorsA(
HINSTANCE hInstance,
LPCSTR lpTableName
);

HACCEL LoadAcceleratorsW(
HINSTANCE hInstance,
LPCWSTR lpTableName
);

typedef struct {
int x;
int y;
} POINT;
typedef POINT *LPPOINT;

typedef struct {
int cx;
int cy;
} SIZE;

typedef struct {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
typedef MSG *LPMSG;

BOOL GetMessageA(
LPMSG lpMsg,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax
);
BOOL GetMessageW(
LPMSG lpMsg,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax
);

int TranslateAcceleratorA(
HWND hWnd,
HACCEL hAccTable,
LPMSG lpMsg
);

int TranslateAcceleratorW(
HWND hWnd,
HACCEL hAccTable,
LPMSG lpMsg
);

BOOL TranslateMessage(
const MSG *lpMsg
);

LRESULT DispatchMessageA(
const MSG *lpmsg
);

LRESULT DispatchMessageW(
const MSG *lpmsg
);

HICON LoadIconW(
HINSTANCE hInstance,
LPCWSTR lpIconName
);

HCURSOR LoadCursorW(
HINSTANCE hInstance,
LPCWSTR lpCursorName
);

HICON LoadIconA(
HINSTANCE hInstance,
LPCSTR lpIconName
);

HCURSOR LoadCursorA(
HINSTANCE hInstance,
LPCSTR lpCursorName
);

HWND CreateWindowExA(
DWORD dwExStyle,
LPCSTR lpClassName,
LPCSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);

HWND CreateWindowExW(
DWORD dwExStyle,
LPCWSTR lpClassName,
LPCWSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);

BOOL ShowWindow(
HWND hWnd,
int nCmdShow
);

BOOL UpdateWindow(
HWND hWnd
);

int MessageBoxA(
HWND hWnd,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType
);

int MessageBoxW(
HWND hWnd,
LPCWSTR lpText,
LPCWSTR lpCaption,
UINT uType
);

BOOL GetProcessDefaultLayout(DWORD *pdwDefaultLayout);
BOOL SetProcessDefaultLayout(DWORD dwDefaultLayout);

HLOCAL LocalAlloc(
UINT uFlags,
SIZE_T uBytes
);

BOOL IsDialogMessageA(HWND hDlg, LPMSG lpMsg);
BOOL IsDialogMessageW(HWND hDlg, LPMSG lpMsg);

BOOL IsChild(HWND hWndParent, HWND hWnd);

HBRUSH GetSysColorBrush(int nIndex);

BOOL SystemParametersInfoA(
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);

BOOL SystemParametersInfoW(
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);

BOOL SetMenu(HWND hWnd, HMENU hMenu);
BOOL DestroyWindow(HWND hWnd);
BOOL DestroyMenu(HMENU hMenu);

typedef int INT_PTR;
typedef INT_PTR DlgProc(
HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
typedef DlgProc *DLGPROC;

HWND CreateDialogParamA(
HINSTANCE hInstance,
LPCSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogFunc,
LPARAM dwInitParam
);

HWND CreateDialogParamW(
HINSTANCE hInstance,
LPCWSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogFunc,
LPARAM dwInitParam
);

LRESULT DefWindowProcA(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);

void PostQuitMessage(
int nExitCode
);

typedef struct {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
typedef RECT *LPRECT;

typedef struct {
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL fIncUpdate;
BYTE rgbReserved[32];
} PAINTSTRUCT;
typedef PAINTSTRUCT *LPPAINTSTRUCT;

HDC BeginPaint(
HWND hwnd,
LPPAINTSTRUCT lpPaint
);

BOOL EndPaint(
HWND hWnd,
LPPAINTSTRUCT lpPaint
);

BOOL GetClientRect(
HWND hWnd,
LPRECT lpRect
);

int DrawTextA(
HDC hDC,
LPCSTR lpString,
int nCount,
LPRECT lpRect,
UINT uFormat
);

int DrawTextW(
HDC hDC,
LPCWSTR lpString,
int nCount,
LPRECT lpRect,
UINT uFormat
);

BOOL GetTextExtentPointA(
HDC hDC,
LPCSTR lpStr,
int len,
SIZE* sz
);

HGDIOBJ SelectObject(
HDC hDC,
HGDIOBJ hObj
);

INT_PTR DialogBoxParamA(
HINSTANCE hInstance,
LPCSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogFunc,
LPARAM dwInitParam
);

INT_PTR DialogBoxParamW(
HINSTANCE hInstance,
LPCWSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogFunc,
LPARAM dwInitParam
);

BOOL EndDialog(
HWND hDlg,
INT_PTR nResult
);

int wsprintfA(
LPSTR lpOut,
LPCSTR lpFmt,
...
);

char *_gcvt(double value, int digits, char *buffer); /* Convert flt to str */
int MulDiv(int number, int numerator, int denominator);
HFONT CreateFontIndirectA(void* lf);
HFONT CreateFontA(
int nHeight, // height of font
int nWidth, // average character width
int nEscapement, // angle of escapement
int nOrientation, // base-line orientation angle
int fnWeight, // font weight
DWORD fdwItalic, // italic attribute option
DWORD fdwUnderline, // underline attribute option
DWORD fdwStrikeOut, // strikeout attribute option
DWORD fdwCharSet, // character set identifier
DWORD fdwOutputPrecision, // output precision
DWORD fdwClipPrecision, // clipping precision
DWORD fdwQuality, // output quality
DWORD fdwPitchAndFamily, // pitch and family
LPCTSTR lpszFace // typeface name
);

typedef DWORD LCID;
LCID GetThreadLocale();
HLOCAL LocalReAlloc(
HLOCAL hMem,
SIZE_T uBytes,
UINT uFlags
);
UINT GetProfileIntA(
LPCSTR lpAppName,
LPCSTR lpKeyName,
INT nDefault
);
UINT GetProfileIntW(
LPCWSTR lpAppName,
LPCWSTR lpKeyName,
INT nDefault
);
DWORD GetProfileStringA(
LPCSTR lpAppName,
LPCSTR lpKeyName,
LPCSTR lpDefault,
LPSTR lpReturnedString,
DWORD nSize
);
DWORD GetProfileStringW(
LPCWSTR lpAppName,
LPCWSTR lpKeyName,
LPCWSTR lpDefault,
LPWSTR lpReturnedString,
DWORD nSize
);
DWORD GetSysColor(
int nIndex
);
BOOL GetWindowRect(
HWND hWnd,
LPRECT lpRect
);
LONG GetWindowLongA(
HWND hWnd,
int nIndex
);
LONG GetWindowLongW(
HWND hWnd,
int nIndex
);
LONG SetWindowLongA(
HWND hWnd,
int nIndex,
LONG dwNewLong
);
LONG SetWindowLongW(
HWND hWnd,
int nIndex,
LONG dwNewLong
);
HMENU LoadMenuA(
HINSTANCE hInstance,
LPCSTR lpMenuName
);
HMENU LoadMenuW(
HINSTANCE hInstance,
LPCWSTR lpMenuName
);
LRESULT SendMessageA(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
LRESULT SendMessageW(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
BOOL InvalidateRect(
HWND hWnd,
LPRECT lpRect,
BOOL bErase
);
HWND GetDlgItem(
HWND hDlg,
int nIDDlgItem
);
BOOL EnableWindow(
HWND hWnd,
BOOL bEnable
);
int MapWindowPoints(
HWND hWndFrom,
HWND hWndTo,
LPPOINT lpPoints,
UINT cPoints
);
BOOL OffsetRect(
LPRECT lprc,
int dx,
int dy
);
BOOL SetWindowPos(
HWND hWnd,
HWND hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
UINT uFlags
);
HMENU GetMenu(
HWND hWnd
);
HMENU GetSubMenu(
HMENU hMenu,
int nPos
);
DWORD CheckMenuItem(
HMENU hmenu,
UINT uIDCheckItem,
UINT uCheck
);
BOOL SetDlgItemTextA(
HWND hDlg,
int nIDDlgItem,
LPCSTR lpString
);
BOOL SetDlgItemTextW(
HWND hDlg,
int nIDDlgItem,
LPCWSTR lpString
);
BOOL CheckRadioButton(
HWND hDlg,
int nIDFirstButton,
int nIDLastButton,
int nIDCheckButton
);
HCURSOR SetCursor(
HCURSOR hCursor
);
BOOL TextOutA(
HDC hDC,
int x, int y,
char* sz, int len);

int FillRect(
HDC hDC, // handle to DC
RECT *lprc, // rectangle
HBRUSH hbr // handle to brush
);

struct SLIST_ENTRY {
SLIST_ENTRY *Next;
};

typedef SLIST_ENTRY *PSLIST_ENTRY;

PSLIST_ENTRY InterlockedPushEntrySList(
PSLIST_HEADER ListHead,
PSLIST_ENTRY ListEntry
);

PSLIST_ENTRY InterlockedPopEntrySList(
PSLIST_HEADER ListHead
);

ULONGLONG VerSetConditionMask(
ULONGLONG dwlConditionMask,
DWORD dwTypeBitMask,
BYTE dwConditionMask
);

int FreeLibrary(unsigned int hModule);
int VirtualFree(void* lpAddress, int dwSize, unsigned int dwFreeType);

HRSRC FindResourceA(HMODULE hModule, LPCSTR lpName, LPCSTR lpType);
HGLOBAL LoadResource(HMODULE hModule, HRSRC hResInfo);
LPVOID LockResource(HGLOBAL hResData);
DWORD GetTempPathA(DWORD nBufferLength, LPSTR lpBuffer);
DWORD SizeofResource(HMODULE hModule, HRSRC hResInfo);
HINSTANCE ShellExecuteA(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);

typedef struct {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
} OSVERSIONINFOA;

typedef struct {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[128];
} OSVERSIONINFOW;

BOOL GetVersionExA(OSVERSIONINFOA *v);
BOOL GetVersionExW(OSVERSIONINFOW *v);

typedef struct {
DWORD dwOemId;
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;
DWORD dwReserved1;
DWORD dwReserved2;
} SYSTEM_INFO;

void GetSystemInfo(SYSTEM_INFO *sinf);

typedef struct {
DWORD dwLength; // sizeof(MEMORYSTATUS)
DWORD dwMemoryLoad; // % in use
DWORD dwTotalPhys;
DWORD dwAvailPhys;
DWORD dwTotalPageFile;
DWORD dwAvailPageFile;
DWORD dwTotalVirtual;
DWORD dwAvailVirtual;
} MEMORYSTATUS;

void GlobalMemoryStatus(MEMORYSTATUS *mst);

typedef struct {
UINT MaxCharSize;
BYTE DefaultChar[2]; // MAX_DEFAULTCHAR
BYTE LeadByte[12]; // MAX_LEADBYTES
} CPINFO;

BOOL GetCPInfo(UINT uCodePage, CPINFO *lpCPInfo);

typedef void *HANDLE;

HANDLE RegisterEventSourceA(char *uncServerName, char *sourceName);
BOOL DeregisterEventSource(HANDLE eventLog);

typedef void *FARPROC;

FARPROC GetProcAddress(HANDLE module, char *procName);

LONG InterlockedExchange(LONG *target, LONG *val);

HINSTANCE LoadLibraryExA(LPCSTR lib, HANDLE file, DWORD flags);
HINSTANCE LoadLibraryExW(LPCWSTR lib, HANDLE file, DWORD flags);

int MultiByteToWideChar(UINT CodePage, DWORD dwFlags,
LPCSTR lpMultiByteStr, int cbMultiByte,
LPWSTR lpWideCharStr, int cchWideChar);

// long name causes assertion failure
// typedef DWORD ACCESS_MASK;
typedef DWORD ACC_MSK;

LONG RegOpenKeyExA(HANDLE hKey, LPCTSTR lpSubKey, DWORD ulOptions,
ACC_MSK regsam, HANDLE *phkResult);
LONG RegOpenKeyExW(HANDLE hKey, LPCTSTR lpSubKey, DWORD ulOptions,
ACC_MSK regsam, HANDLE *phkResult);
LONG RegCloseKey(HANDLE hKey);

void SetLastError(DWORD error);

void Sleep(DWORD milliseconds);

LPVOID HeapAlloc(HANDLE hHeap, DWORD dwFlags, DWORD dwBytes);

BOOL HeapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem);

DWORD GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename, DWORD nSize);
DWORD GetModuleFileNameW(HMODULE hModule, LPWSTR lpFilename, DWORD nSize);

HANDLE GetStdHandle(DWORD nStdHandle);
BOOL SetStdHandle(DWORD nStdHandle, HANDLE hHandle);

BOOL WriteFile(
HANDLE hFile,
LPCVOID lpBuffer,
DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped
);

LPVOID VirtualAlloc(
LPVOID lpAddress,
DWORD dwSize,
DWORD flAllocationType,
DWORD flProtect
);

BOOL FlushFileBuffers(HANDLE hFile);

DWORD GetLastError(void);

DWORD
SetFilePointer(
HANDLE hFile,
LONG lDistanceToMove,
PLONG lpDistanceToMoveHigh,
DWORD dwMoveMethod
);

BOOL CloseHandle(HANDLE hObject);
BOOL CheckMenuRadioItem(
HMENU hmenu,
UINT idFirst,
UINT idLast,
UINT idCheck,
UINT uFlags
);

BOOL SetWindowTextA(
HWND hWnd,
LPCSTR lpString
);

BOOL SetWindowTextW(
HWND hWnd,
LPCWSTR lpString
);

HWND SetFocus(
HWND hWnd
);

LPSTR lstrcpynA(
LPSTR lpString1,
LPCSTR lpString2,
int iMaxLength
);

LPWSTR lstrcpynW(
LPWSTR lpString1,
LPCWSTR lpString2,
int iMaxLength
);

LPSTR lstrcatA(
LPSTR lpString1,
LPSTR lpString2
);

LPWSTR lstrcatW(
LPWSTR lpString1,
LPWSTR lpString2
);

wchar_t *lstrcpyW(wchar_t *dst, wchar_t *src);

int lstrlenW( const wchar_t *string );

void _CxxThrowException(int a, int b);

BOOL DisableThreadLibraryCalls(
HMODULE hModule
);

BOOL HeapDestroy(
HANDLE hHeap
);

void DeleteCriticalSection(
LPCRITICAL_SECTION lpCriticalSection
);

void InitializeCriticalSection(
LPCRITICAL_SECTION lpCriticalSection
);

typedef struct {
DWORD cb;
LPSTR lpReserved;
LPSTR lpDesktop;
LPSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFO;
typedef STARTUPINFO *LPSTARTUPINFO;

typedef struct {
DWORD cb;
LPWSTR lpReserved;
LPWSTR lpDesktop;
LPWSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFOW;
typedef STARTUPINFOW *LPSTARTUPINFOW;

void GetStartupInfo(LPSTARTUPINFO lpStartupInfo);
void GetStartupInfoW(LPSTARTUPINFOW lpStartupInfo);

HMODULE GetModuleHandle(LPCSTR lpModuleName);
HMODULE GetModuleHandleW(LPCWSTR lpModuleName);

void ExitProcess(UINT uExitCode);

BOOL PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
BOOL PostMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);

typedef void *REFCLSID;
HRESULT SHLoadInProc(REFCLSID rclsid);

HWND FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName);
HWND FindWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName);

void Sleep(DWORD dwMilliseconds);

HMODULE LoadLibraryA(LPCSTR lpFileName);
HMODULE LoadLibraryW(LPCWSTR lpFileName);

ATOM FindAtomA(LPCSTR lpString);
ATOM FindAtomW(LPCWSTR lpString);
ATOM AddAtomA(LPCSTR lpString);
ATOM AddAtomW(LPCWSTR lpString);
UINT GetAtomNameA(ATOM nAtom, LPSTR lpBuffer, int nSize);
UINT GetAtomNameA(ATOM nAtom, LPWSTR lpBuffer, int nSize);

LONG InterlockedIncrement(LONG *Addend);

LONG InterlockedDecrement(LONG *Addend);


// guessed LPR functions

void CloseLPR(int a);
int GetShortQueue(int a, int b);
int GetLongQueue(int a, int b);
int OpenLPR(int a, int b);

LPVOID TlsGetValue(DWORD dwTlsIndex);
DWORD TlsAlloc(void);

BOOL TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue);

DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);

BOOL ReleaseSemaphore(HANDLE hSemaphore, LONG lReleaseCount, LPLONG lpPreviousCount);
// unknown library proc: GetCurrentProcess
04/16/2009 10:12 advance#4
Decompiled ScriptProcess.dll for?
04/16/2009 13:39 Istel#5
to look pr0 (?)
04/16/2009 15:06 LeQuebecoisqc#6
The scripts that dekaronserver.exe/dekaron.exe read is coming from scriptprocess.dll for the rest you have to guess ;)
04/16/2009 15:52 advance#7
Apologize for my English is bad...
I think scriptprocess.dll is scripting language for game like [Only registered and activated users can see links. Click Here To Register...] it's library?
I think.it use for read and excute some script depend on your code (in any files outside scriptprocess.dll)?

I think.Mainly code are inside dekaron.exe (use hex compare for check it)
04/16/2009 19:56 ex6tenCe#8
dont feel pro
04/16/2009 22:38 LeQuebecoisqc#9
Out subject -.- Open a new thread named waste of posts then post your bullshits in there.