/* This file has been generated by the Hex-Rays decompiler.
Copyright (c) 2007-2011 Hex-Rays <info@hex-rays.com>
Detected compiler: Visual C++
*/
#include <windows.h>
#include <defs.h>
//-------------------------------------------------------------------------
// Data declarations
extern _UNKNOWN sub_4111AE; // weak
extern _UNKNOWN sub_4111B8; // weak
extern int dword_413804; // weak
extern _UNKNOWN sub_413850; // weak
extern int dword_413C1C; // weak
extern _UNKNOWN unk_41C000; // weak
extern _UNKNOWN unk_41C324; // weak
extern _UNKNOWN unk_41C428; // weak
extern _UNKNOWN unk_41C838; // weak
extern int (__stdcall *off_41C98C[6])(); // weak
extern int (__stdcall *off_41C9B0[6])(); // weak
extern char aGeneric[8]; // weak
extern char aUnknownError[14]; // weak
extern int (__stdcall *off_41C9F0[6])(); // weak
extern char aIostream[9]; // weak
extern char aIostreamStream[22]; // weak
extern int (__stdcall *off_41CA3C[6])(); // weak
extern char aSystem[7]; // weak
extern wchar_t aCProgramFilesX[71]; // weak
extern char aStringTooLong[16]; // weak
extern char aInvalidStringP[24]; // weak
extern wchar_t aInvalidNullPoi[21]; // weak
extern wchar_t a__onexitbeginN[97]; // weak
extern wchar_t aS[3]; // weak
extern wchar_t aFDdVctoolsCrtC[45]; // weak
extern char aFDdVctoolsCr_0[45]; // weak
extern wchar_t a__native_start[40]; // weak
extern wchar_t aFDdVctoolsCr_1[43]; // weak
extern LPCSTR lpMultiByteStr; // idb
extern LPCSTR off_41CDF4; // idb
extern int dword_41CDF8[]; // weak
extern char byte_41CE10[]; // weak
extern char aWasCorrupted_[17]; // weak
extern wchar_t aRuntimeCheckEr[54]; // weak
extern wchar_t aRunTimeCheckFa[32]; // weak
extern char aUnknownFilenam[17]; // weak
extern char aUnknownModuleN[20]; // weak
extern char aRunTimeCheck_0[32]; // weak
extern char aStackCorrupted[38]; // weak
extern _UNKNOWN a_2x; // weak
extern const WCHAR LibFileName[]; // idb
extern char ProcName[]; // idb
extern char MultiByteStr[]; // idb
extern char aData[9]; // weak
extern char aAllocationNumb[42]; // weak
extern char aSize[8]; // weak
extern char aAddress0x[13]; // weak
extern char aStackAreaAroun[72]; // weak
extern char aSSPSLdSDS[18]; // weak
extern char asc_41D478[2]; // weak
extern char asc_41D47C[3]; // weak
extern char aSSSS[]; // idb
extern int off_41D4CC[2]; // weak
extern wchar_t aFDdVctoolsCr_2[44]; // weak
extern wchar_t a_setdefaultpre[21]; // weak
extern wchar_t a_controlfp_sVo[50]; // weak
extern int dword_41D6E8; // weak
extern int dword_41D6EC; // weak
extern int dword_41D6F0; // weak
extern int dword_41D6F4; // weak
extern int dword_41D6F8; // weak
extern int dword_41D6FC; // weak
extern int dword_41D700; // weak
extern int dword_41D704; // weak
extern __int16 word_41D708; // weak
extern const WCHAR ModuleName[]; // idb
extern const WCHAR aAdvapi32_dll[]; // idb
extern char aRegopenkeyexw[]; // idb
extern char aRegqueryvaluee[]; // idb
extern char aRegclosekey[]; // idb
extern wchar_t aSoftwareMicros[46]; // weak
extern wchar_t aProductdir[11]; // weak
extern wchar_t aDll[]; // idb
extern wchar_t Src[]; // idb
extern const WCHAR aMspdb120[]; // idb
extern char aPdbopenvalidat[]; // idb
extern char aR[2]; // weak
extern _UNKNOWN unk_41DEA8; // weak
extern _UNKNOWN unk_41E0AC; // weak
extern _UNKNOWN unk_41E620; // weak
extern _UNKNOWN unk_41E640; // weak
extern _UNKNOWN unk_41E660; // weak
extern _UNKNOWN unk_41E680; // weak
extern _UNKNOWN unk_41E6C0; // weak
extern _UNKNOWN unk_41E6E0; // weak
extern char *Format; // idb
extern int __security_cookie; // weak
extern int dword_41F008; // weak
extern int dword_41F010; // idb
extern int dword_41F018; // weak
extern int dword_41F020; // idb
extern int dword_41F028; // weak
extern int dword_41F02C; // weak
extern _UNKNOWN unk_41F324; // weak
extern _UNKNOWN unk_41F328; // weak
extern _UNKNOWN unk_41F32C; // weak
extern char byte_41F330; // weak
extern int dword_41F334; // weak
extern int Code; // idb
extern int dword_41F33C; // weak
extern int dword_41F340; // weak
extern int dword_41F344; // weak
extern int dword_41F348; // weak
extern int dword_41F34C; // weak
extern int dword_41F350; // weak
extern int (*dword_41F35C)(_DWORD, const char *, ...); // weak
extern int dword_41F360; // weak
extern int dword_41F364; // weak
extern int dword_41F36C; // weak
extern int dword_41F370; // weak
extern int dword_41F374; // weak
extern int dword_41F3B0; // weak
extern __int16 word_41F43C; // weak
extern __int16 word_41F440; // weak
extern __int16 word_41F444; // weak
extern __int16 word_41F448; // weak
extern int dword_41F44C; // weak
extern int dword_41F450; // weak
extern int dword_41F454; // weak
extern int dword_41F458; // weak
extern int dword_41F45C; // weak
extern int dword_41F460; // weak
extern int dword_41F464; // weak
extern int dword_41F468; // weak
extern __int16 word_41F46C; // weak
extern int dword_41F470; // weak
extern int dword_41F474; // weak
extern __int16 word_41F478; // weak
extern int dword_41F67C; // weak
extern int dword_41F720; // weak
extern int dword_41F724; // weak
extern int dword_41F72C; // weak
extern int dword_41F730; // weak
extern int dword_41F734; // weak
extern int dword_41F738; // weak
extern int dword_41F73C; // weak
extern char byte_41F740; // weak
extern char byte_41F741; // weak
extern _UNKNOWN unk_41F744; // weak
extern int dword_41F754; // weak
extern int (__stdcall *dword_41F758)(_DWORD, _DWORD, _DWORD); // weak
extern PVOID dword_41F768; // idb
extern PVOID Ptr; // idb
// extern void *_initenv; weak
// extern int fmode;
// extern void *commode; weak
//-------------------------------------------------------------------------
// Function declarations
#define __thiscall __cdecl // Test compile in C mode
int sub_411005(void); // weak
_DWORD __stdcall sub_41100A(_DWORD); // weak
_DWORD __stdcall sub_41100F(_DWORD); // weak
int sub_411014(void); // weak
_DWORD __stdcall sub_41102D(_DWORD, _DWORD); // weak
int __cdecl j___crtSetUnhandledExceptionFilter(_DWORD); // weak
_DWORD __cdecl sub_411037(_DWORD); // weak
int __thiscall sub_41103C(_DWORD); // weak
_DWORD __cdecl sub_411046(_DWORD, _DWORD); // weak
_DWORD __stdcall sub_411050(_DWORD, _DWORD); // weak
int __thiscall sub_411055(_DWORD); // weak
_DWORD __stdcall sub_41105F(_DWORD, _DWORD); // weak
_DWORD __stdcall sub_411064(void *, _DWORD); // weak
int __thiscall sub_411069(_DWORD); // weak
int sub_411073(); // weak
int __thiscall sub_411078(_DWORD); // weak
int __cdecl sub_411087(_DWORD); // weak
errno_t __cdecl j__wsplitpath_s(const wchar_t *FullPath, wchar_t *Drive, size_t DriveSize, wchar_t *Dir, size_t DirSize, wchar_t *Filename, size_t FilenameSize, wchar_t *Ext, size_t ExtSize);
_DWORD __stdcall sub_411096(_DWORD); // weak
int __thiscall type_info::_type_info(_DWORD); // weak
_DWORD __stdcall sub_4110AA(_DWORD); // weak
int sub_4110AF(void); // weak
int __thiscall sub_4110B4(_DWORD); // weak
int sub_4110B9(void); // weak
int sub_4110C3(void); // weak
int sub_4110CD(void); // weak
int __thiscall sub_4110D2(_DWORD); // weak
int __thiscall sub_4110DC(_DWORD); // weak
_DWORD __stdcall sub_4110E1(_DWORD, _DWORD); // weak
_DWORD __cdecl sub_4110EB(_DWORD); // weak
int __thiscall sub_4110FA(_DWORD); // weak
int sub_4110FF(); // weak
int __cdecl j__lock(_DWORD); // weak
_DWORD __cdecl sub_41110E(_DWORD, _DWORD); // weak
int __fastcall sub_411113(_DWORD, _DWORD); // weak
_DWORD __cdecl sub_411118(char *Str); // weak
void __cdecl operator delete(void *); // idb
_DWORD __cdecl sub_411127(_DWORD); // weak
_DWORD __cdecl sub_411131(char); // weak
_DWORD __stdcall sub_411136(_DWORD); // weak
int __thiscall sub_41113B(_DWORD); // weak
void __cdecl terminate(); // idb
int __cdecl j__initterm(_DWORD, _DWORD); // weak
size_t __cdecl j_strlen(const char *Str);
int __cdecl j___crtTerminateProcess(_DWORD); // weak
int __thiscall sub_411168(_DWORD); // weak
_DWORD __stdcall sub_41117C(_DWORD, _DWORD); // weak
int __thiscall sub_411181(_DWORD); // weak
_DWORD __stdcall sub_41118B(_DWORD, _DWORD); // weak
int __thiscall sub_411195(_DWORD); // weak
_DWORD __cdecl sub_41119A(_DWORD); // weak
_DWORD __cdecl sub_4111A9(_DWORD, _DWORD); // weak
_DWORD __stdcall sub_4111C7(_DWORD); // weak
_DWORD __cdecl sub_4111CC(_DWORD, _DWORD); // weak
_DWORD __cdecl sub_4111D1(_DWORD); // weak
_DWORD __cdecl sub_4111D6(_DWORD, _DWORD, _DWORD); // weak
int __thiscall sub_4111E0(_DWORD); // weak
int __cdecl j__crt_debugger_hook(_DWORD); // weak
_DWORD __cdecl sub_4111EA(void *Dst, void *Src, size_t Size); // weak
_DWORD __cdecl sub_4111EF(_DWORD); // weak
int __thiscall sub_4111F4(_DWORD); // weak
_DWORD __stdcall sub_4111F9(_DWORD, char); // weak
_DWORD __stdcall sub_4111FE(_DWORD); // weak
int __thiscall sub_411203(_DWORD); // weak
int __thiscall sub_41120D(_DWORD); // weak
void *__cdecl j_memcpy(void *Dst, const void *Src, size_t Size);
_DWORD __stdcall sub_411226(_DWORD); // weak
_DWORD __cdecl sub_411230(_DWORD); // weak
_DWORD __cdecl sub_411235(_onexit_t Ptr); // weak
int __cdecl sub_41123F(_DWORD); // weak
_DWORD __cdecl sub_411249(_DWORD); // weak
int __cdecl sub_41124E(_DWORD, _DWORD); // weak
_DWORD __cdecl sub_411258(void *Dst, void *Src, size_t Size); // weak
int __thiscall sub_41125D(_DWORD); // weak
_DWORD __cdecl sub_411267(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // weak
_DWORD __stdcall sub_41126C(_DWORD); // weak
int __thiscall sub_411280(_DWORD); // weak
int __cdecl j___crtUnhandledException(_DWORD); // weak
_DWORD __stdcall sub_41128A(_DWORD); // weak
int __stdcall sub_411294(); // weak
_DWORD __cdecl sub_4112A3(unsigned int); // weak
int __cdecl j__unlock(_DWORD); // weak
_DWORD __stdcall sub_4112C1(_DWORD, _DWORD, _DWORD); // weak
int __thiscall sub_4112CB(_DWORD); // weak
int __thiscall sub_4112D5(_DWORD); // weak
int __cdecl sub_4112DA(_DWORD, _DWORD, _DWORD); // weak
int sub_4112E9(void); // weak
_DWORD __cdecl sub_4112EE(_DWORD, _DWORD, _DWORD); // weak
_DWORD __stdcall sub_4112F3(char, _DWORD); // weak
errno_t __cdecl j__controlfp_s(unsigned int *CurrentState, unsigned int NewValue, unsigned int Mask);
_DWORD __cdecl sub_411302(_DWORD, _DWORD); // weak
int __thiscall sub_41130C(_DWORD); // weak
_DWORD __stdcall sub_411311(_DWORD); // weak
int __thiscall sub_41131B(_DWORD); // weak
int __stdcall j__invoke_watson(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // weak
_DWORD __stdcall sub_41132A(_DWORD); // weak
_DWORD __stdcall sub_411334(_DWORD, _DWORD); // weak
_DWORD __stdcall sub_411339(_DWORD); // weak
_DWORD __cdecl sub_41133E(_DWORD, _DWORD, char, _DWORD, LPWSTR lpFilename, DWORD nSize); // weak
int sub_411343(void); // weak
_DWORD __stdcall sub_411348(_DWORD, _DWORD); // weak
errno_t __cdecl j__wmakepath_s(wchar_t *PathResult, size_t SIZE, const wchar_t *Drive, const wchar_t *Dir, const wchar_t *Filename, const wchar_t *Ext);
int __cdecl j__CRT_RTC_INITW(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // weak
int __thiscall sub_411357(_DWORD); // weak
_DWORD __cdecl sub_41135C(_DWORD); // weak
int __thiscall sub_41136B(_DWORD); // weak
int __cdecl j__amsg_exit(_DWORD); // weak
void *__cdecl operator new(unsigned int); // idb
int __thiscall sub_41137F(_DWORD); // weak
int __thiscall sub_411384(_DWORD); // weak
_DWORD __stdcall sub_411393(_DWORD); // weak
int __cdecl j__except_handler4_common(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // weak
int sub_4113B6(); // weak
_DWORD __stdcall sub_4113C0(_DWORD, _DWORD, _DWORD, _DWORD); // weak
_DWORD __cdecl sub_4113C5(_DWORD); // weak
_DWORD __cdecl sub_4113CA(_DWORD, _DWORD); // weak
int __thiscall sub_4113CF(_DWORD); // weak
BOOL __stdcall j_IsProcessorFeaturePresent(DWORD ProcessorFeature);
int __thiscall sub_4113DE(_DWORD); // weak
int __thiscall sub_4113E8(_DWORD); // weak
int __cdecl j___dllonexit(_DWORD, _DWORD, _DWORD); // weak
_DWORD __stdcall sub_4113FC(void *, _DWORD); // weak
_DWORD __cdecl sub_411406(_DWORD, _DWORD, _DWORD, _DWORD); // weak
int __cdecl j__initterm_e(_DWORD, _DWORD); // weak
int __cdecl sub_41141A(_DWORD); // weak
errno_t __cdecl j_wcscpy_s(wchar_t *Dst, rsize_t SizeInWords, const wchar_t *Src);
int __cdecl sub_411850();
int __cdecl sub_4118B0();
int __cdecl sub_411910();
int __cdecl sub_411970();
int __cdecl sub_4119B0();
int __thiscall sub_4126E0(void *this, unsigned int a1);
int __thiscall sub_412770(void *this, unsigned int a1);
int __thiscall sub_412810(void *this, int a1, int a2, int a3);
int __cdecl sub_412880(int a1);
int __thiscall sub_4128C0(void *this, int a2, int a3);
int __thiscall sub_412930(void *this, int a2, int a3);
int __cdecl sub_412A30(int a1, int a2, int a3);
int __thiscall sub_412A90(void *this, int a2, int a3);
int __thiscall sub_412BA0(void *this, int a2);
signed int __stdcall sub_412C00(int a1);
int __cdecl sub_412C40(int a1, int a2);
signed int __stdcall sub_412C90(int a1);
int __cdecl sub_412CD0(int a1);
int __cdecl sub_412D10(int a1);
int __thiscall sub_412D50(void *this, int a2);
int __thiscall sub_412E00(void *this);
int __thiscall sub_412E80(void *this);
void *__thiscall sub_412EE0(void *this);
void *__thiscall sub_412F20(void *this);
int __thiscall sub_412F60(void *this, int a2);
int __thiscall sub_413030(void *this);
int __thiscall sub_413080(void *this);
int __thiscall sub_4130E0(void *this);
int __thiscall sub_413140(void *this);
int __thiscall sub_4131A0(void *this);
int __thiscall sub_4131F0(void *this, int a2, int a3);
int __thiscall sub_413240(void *this);
int __thiscall sub_4132A0(void *this);
int __thiscall sub_413300(void *this);
int __thiscall sub_413350(void *this);
int __thiscall sub_4133A0(void *this);
void *__thiscall sub_4133F0(void *this);
int __cdecl sub_413430(int a1, int a2);
signed int __cdecl sub_413470();
bool __thiscall sub_4134A0(void *this, void *a2);
int __thiscall sub_413510(void *this, int a2);
int __thiscall sub_4135C0(void *this, char a2);
int __thiscall sub_413630(void *this, char a2);
int __thiscall sub_4136A0(void *this, char a2);
int __thiscall sub_413710(void *this, char a2);
int __thiscall sub_413780(void *this);
int __thiscall sub_413B10(int this, int a2);
int __thiscall sub_413B90(void *this);
int __thiscall sub_413C70(void *this, int a2);
int __thiscall sub_413CD0(void *this, unsigned int a2, char a3);
int __thiscall sub_413DF0(int this, unsigned int a2);
int __thiscall sub_413E70(int this);
int __thiscall sub_413F00(int this);
int __thiscall sub_413F90(void *this, char a2, size_t a3);
int __thiscall sub_4140A0(void *this);
int __thiscall sub_414100(void *this);
int __thiscall sub_414160(void *this, int a2);
int __thiscall sub_4141C0(void *this, unsigned int a2);
int __thiscall sub_414220(void *this, int a2);
int __thiscall sub_414280(void *this, int a2, unsigned int a3, unsigned int a4);
int __thiscall sub_414390(void *this, char *a2);
int __thiscall sub_414420(void *this, void *a2, size_t a3);
int __cdecl sub_414520(int a1, int a2);
int __thiscall sub_414560(int this);
int __thiscall sub_4145A0(int this);
int __thiscall sub_4145E0(void *this, void *Dst, const void *Src, size_t Size);
int __thiscall sub_414660(void *this, void *a2, int a3);
int __thiscall sub_4146C0(void *this, void *a2, int a3);
int __thiscall sub_414720(void *this, void *a2, int a3);
int __thiscall sub_414780(void *this, int a2, int a3);
int __thiscall sub_414830(void *this, int a2, int a3);
int __thiscall sub_414890(void *this, int a2, int a3);
int __thiscall sub_414930(void *this, int a2, int a3);
int __thiscall sub_4149B0(int this, unsigned int a2);
int __thiscall sub_414A30(int this, unsigned int a2, unsigned int a3);
_UNKNOWN *__cdecl sub_414B10();
int __cdecl sub_414B50(const char *Str);
int __thiscall sub_414BD0(void *this);
signed int __cdecl sub_414C30();
int __cdecl sub_414C70(int a1);
int __thiscall sub_414CC0(void *this);
int __thiscall sub_414D60(void *this, int a2, int a3);
int __thiscall sub_414E20(void *this, int a2, int a3);
int __thiscall sub_414EE0(void *this, int a2, int a3);
int __thiscall sub_414FA0(void *this, void *Dst, const void *Src, size_t Size);
int __cdecl sub_415030();
int __cdecl sub_415070();
int __cdecl sub_4150B0();
int __thiscall sub_4150F0(int this);
_UNKNOWN *__cdecl sub_415130();
int __thiscall sub_415170(void *this);
int __thiscall sub_4151B0(void *this);
int __cdecl sub_415270();
signed int __cdecl sub_415320();
// _onexit_t __usercall sub_415400<eax>(int a1<eax>, _onexit_t Ptr);
int __cdecl sub_4154D8();
signed int __cdecl sub_415540(int (__cdecl *a1)());
int __fastcall sub_4156F0(int a1, int a2);
// int __usercall sub_415760<eax>(char a1<zf>, int result<eax>);
int __thiscall sub_415790(void *this, char a2);
void __cdecl sub_4157B0();
int __cdecl sub_4157F0();
int __thiscall sub_415850(void *this, char a2);
int __cdecl sub_4158E0();
int __cdecl sub_415990();
unsigned __int32 __cdecl sub_415A00();
// signed int __usercall sub_415A10<eax>(int a1<eax>);
signed int __cdecl sub_415CE0();
signed int __cdecl start_0();
int __cdecl sub_415DC0(int a1, int a2, int a3, int a4);
// int __usercall sub_415DF0<eax>(int a1<eax>, int a2);
// int __usercall sub_415EB0<eax>(int a1<eax>, int a2, int a3, int a4, int a5);
int __cdecl sub_415F90(int a1, int a2, int a3);
int __cdecl sub_416170(int a1, int a2);
int __cdecl sub_4161E0(int a1, const void *a2);
int __cdecl sub_416320(int a1, int a2, int a3, unsigned int a4);
unsigned int __cdecl sub_4163B0(const char *a1);
int __cdecl sub_4163D0(int, int, int, LPCSTR lpMultiByteStr); // idb
int __cdecl sub_416770(int a1);
// int __usercall sub_4167D0<eax>(int a1<ebx>, int a2<edi>, int a3<esi>, char a4);
// int __usercall sub_416930<eax>(int a1<ebx>, int a2<edi>, int a3<esi>, int a4);
int __cdecl sub_416BB0();
int __cdecl sub_416BC0();
int __cdecl sub_416C30(int a1);
int __cdecl sub_416CA0(int a1, int a2, int a3, void (__thiscall *a4)(_DWORD));
// int __usercall sub_416D1C<eax>(int a1<ebp>);
int __cdecl sub_416D80(int a1);
// int __userpurge sub_416DC0<eax>(int a1<eax>, int a2, int a3, int a4, void (__thiscall *a5)(_DWORD));
int __stdcall sub_416E80(int a1);
int __cdecl sub_416F00();
int __cdecl sub_416F30();
int __cdecl sub_416F50(int a1, unsigned int a2);
// int __usercall sub_416FE0<eax>(int a1<eax>, int a2);
int __cdecl sub_417160(int a1);
int __cdecl sub_4171F0();
int (*__cdecl sub_417320())(void);
int __cdecl sub_417390(int a1, int a2, int a3, int a4, int a5, int a6);
int __cdecl sub_4173C0();
int __cdecl sub_417420();
int __cdecl sub_4175B0();
int __cdecl sub_417870(const wchar_t *FullPath, wchar_t *PathResult, size_t SIZE);
// void *__usercall sub_417980<eax>(int a1<edi>, int a2, int a3, char a4, int a5, LPWSTR lpFilename, DWORD nSize);
// int __usercall sub_418F60<eax>(int a1<ebp>);
// int __usercall sub_418FA0<eax>(int a1<ebp>);
// int __usercall sub_418FE0<eax>(int a1<ebp>);
// int __usercall sub_419010<eax>(int a1<ebp>);
int __cdecl sub_41A070();
int __cdecl sub_41A0C0();
int __cdecl sub_41A110();
// PVOID __stdcall DecodePointer(PVOID Ptr);
// BOOL __stdcall IsDebuggerPresent();
// void __stdcall RaiseException(DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, const ULONG_PTR *lpArguments);
// DWORD __stdcall GetLastError();
// FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
// HMODULE __stdcall LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
// int __stdcall MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);
// int __stdcall WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cbMultiByte, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar);
// HMODULE __stdcall GetModuleHandleW(LPCWSTR lpModuleName);
// DWORD __stdcall GetModuleFileNameW(HMODULE hModule, LPWSTR lpFilename, DWORD nSize);
// BOOL __stdcall FreeLibrary(HMODULE hLibModule);
// SIZE_T __stdcall VirtualQuery(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength);
// HANDLE __stdcall GetProcessHeap();
// BOOL __stdcall HeapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem);
// LPVOID __stdcall HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes);
// void __stdcall GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime);
// DWORD __stdcall GetCurrentThreadId();
// DWORD __stdcall GetCurrentProcessId();
// BOOL __stdcall QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);
// PVOID __stdcall EncodePointer(PVOID Ptr);
// int __cdecl std::_Winerror_map(_DWORD); weak
// int __cdecl std::_Syserror_map(_DWORD); weak
// int __stdcall std::_Xout_of_range(_DWORD); weak
// int __stdcall std::_Xlength_error(_DWORD); weak
// int std::_Xbad_alloc(void); weak
// int __thiscall std::_Container_base12::_Orphan_all(_DWORD); weak
// int __thiscall std::_Container_base12::__Container_base12(_DWORD); weak
// int __thiscall std::_Container_base12::_Container_base12(_DWORD); weak
// int __cdecl std::_Debug_message(_DWORD, _DWORD, _DWORD); weak
// int __cdecl CrtSetCheckCount(_DWORD); weak
// void __cdecl exit(int Code);
// int __cdecl cexit(_DWORD); weak
// int __cdecl configthreadlocale(_DWORD); weak
// int __cdecl _setusermatherr(_DWORD); weak
// int __cdecl _set_app_type(_DWORD); weak
// int __cdecl _getmainargs(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); weak
// _onexit_t __cdecl onexit(_onexit_t Func);
// int __cdecl calloc_dbg(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); weak
// int CrtDbgReportW(_DWORD, _DWORD, _DWORD, _DWORD, const char *, ...); weak
// void *__cdecl memmove(void *Dst, const void *Src, size_t Size);
// int printf(const char *Format, ...);
//----- (00411850) --------------------------------------------------------
int __cdecl sub_411850()
{
int v0; // ecx@1
char v2; // [sp+Ch] [bp-C0h]@1
memset(&v2, -858993460, 0xC0u);
sub_411384(&unk_41F324);
sub_4110EB(sub_41A070);
return sub_4112D5(v0);
}
// 4110EB: using guessed type _DWORD __cdecl sub_4110EB(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411384: using guessed type int __thiscall sub_411384(_DWORD);
//----- (004118B0) --------------------------------------------------------
int __cdecl sub_4118B0()
{
int v0; // ecx@1
char v2; // [sp+Ch] [bp-C0h]@1
memset(&v2, -858993460, 0xC0u);
sub_4110DC(&unk_41F328);
sub_4110EB(sub_41A0C0);
return sub_4112D5(v0);
}
// 4110DC: using guessed type int __thiscall sub_4110DC(_DWORD);
// 4110EB: using guessed type _DWORD __cdecl sub_4110EB(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00411910) --------------------------------------------------------
int __cdecl sub_411910()
{
int v0; // ecx@1
char v2; // [sp+Ch] [bp-C0h]@1
memset(&v2, -858993460, 0xC0u);
sub_411055(&unk_41F32C);
sub_4110EB(sub_41A110);
return sub_4112D5(v0);
}
// 411055: using guessed type int __thiscall sub_411055(_DWORD);
// 4110EB: using guessed type _DWORD __cdecl sub_4110EB(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00411970) --------------------------------------------------------
int __cdecl sub_411970()
{
return 0;
}
//----- (004119B0) --------------------------------------------------------
int __cdecl sub_4119B0()
{
return 0;
}
//----- (004126E0) --------------------------------------------------------
int __thiscall sub_4126E0(void *this, unsigned int a1)
{
char v3; // [sp+Ch] [bp-CCh]@1
void *v4; // [sp+D0h] [bp-8h]@1
memset(&v3, -858993460, 0xCCu);
v4 = 0;
if ( a1 )
{
if ( a1 > 0xFFFFFFFF || (v4 = operator new(a1)) == 0 )
{
std::_Xbad_alloc();
sub_4112D5(this);
}
}
return sub_4112D5(this);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4200A0: using guessed type int std___Xbad_alloc(void);
//----- (00412770) --------------------------------------------------------
int __thiscall sub_412770(void *this, unsigned int a1)
{
char v3; // [sp+Ch] [bp-CCh]@1
void *v4; // [sp+D0h] [bp-8h]@1
memset(&v3, -858993460, 0xCCu);
v4 = 0;
if ( a1 )
{
if ( a1 > 0x1FFFFFFF || (v4 = operator new(8 * a1)) == 0 )
{
std::_Xbad_alloc();
sub_4112D5(this);
}
}
return sub_4112D5(this);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4200A0: using guessed type int std___Xbad_alloc(void);
//----- (00412810) --------------------------------------------------------
int __thiscall sub_412810(void *this, int a1, int a2, int a3)
{
char v5; // [sp+Ch] [bp-C0h]@1
memset(&v5, -858993460, 0xC0u);
if ( !a1 )
{
std::_Debug_message(L"invalid null pointer", a2, a3);
sub_4112D5(this);
}
return sub_4112D5(this);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 41CB44: using guessed type wchar_t aInvalidNullPoi[21];
// 4200B0: using guessed type int __cdecl std___Debug_message(_DWORD, _DWORD, _DWORD);
//----- (00412880) --------------------------------------------------------
int __cdecl sub_412880(int a1)
{
return a1;
}
//----- (004128C0) --------------------------------------------------------
int __thiscall sub_4128C0(void *this, int a2, int a3)
{
int v3; // eax@1
int v4; // ecx@1
char v6; // [sp+Ch] [bp-CCh]@1
void *v7; // [sp+D0h] [bp-8h]@1
memset(&v6, -858993460, 0xCCu);
v7 = this;
v3 = sub_41119A(a3);
sub_4111D6(v7, a2, v3);
return sub_4112D5(v4);
}
// 41119A: using guessed type _DWORD __cdecl sub_41119A(_DWORD);
// 4111D6: using guessed type _DWORD __cdecl sub_4111D6(_DWORD, _DWORD, _DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00412930) --------------------------------------------------------
int __thiscall sub_412930(void *this, int a2, int a3)
{
int v3; // eax@2
unsigned int v5; // [sp-4h] [bp-104h]@1
int v6; // [sp+Ch] [bp-F4h]@1
int v7; // [sp+20h] [bp-E0h]@1
void *v8; // [sp+ECh] [bp-14h]@1
int v9; // [sp+FCh] [bp-4h]@1
int v10; // [sp+100h] [bp+0h]@1
memset(&v6, -858993460, 0xE8u);
v5 = (unsigned int)&v10 ^ __security_cookie;
v8 = this;
v7 = sub_411046(4, a2);
v9 = 0;
if ( v7 )
{
v3 = sub_41119A(a3);
*(_DWORD *)v7 = *(_DWORD *)v3;
v6 = v7;
}
else
{
v6 = 0;
}
return sub_4112D5(v5);
}
// 411046: using guessed type _DWORD __cdecl sub_411046(_DWORD, _DWORD);
// 41119A: using guessed type _DWORD __cdecl sub_41119A(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 41F004: using guessed type int __security_cookie;
//----- (00412A30) --------------------------------------------------------
int __cdecl sub_412A30(int a1, int a2, int a3)
{
int v3; // eax@1
int v4; // ecx@1
char v6; // [sp+Ch] [bp-C0h]@1
memset(&v6, -858993460, 0xC0u);
v3 = sub_41119A(a3);
sub_41102D(a2, v3);
return sub_4112D5(v4);
}
// 41102D: using guessed type _DWORD __stdcall sub_41102D(_DWORD, _DWORD);
// 41119A: using guessed type _DWORD __cdecl sub_41119A(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00412A90) --------------------------------------------------------
int __thiscall sub_412A90(void *this, int a2, int a3)
{
int v3; // eax@2
int v4; // edx@2
int v5; // eax@2
int v6; // ecx@2
unsigned int v8; // [sp-4h] [bp-104h]@1
int v9; // [sp+Ch] [bp-F4h]@1
int v10; // [sp+20h] [bp-E0h]@1
void *v11; // [sp+ECh] [bp-14h]@1
int v12; // [sp+FCh] [bp-4h]@1
int v13; // [sp+100h] [bp+0h]@1
memset(&v9, -858993460, 0xE8u);
v8 = (unsigned int)&v13 ^ __security_cookie;
v11 = this;
v10 = sub_411046(8, a2);
v12 = 0;
if ( v10 )
{
v3 = sub_4111D1(a3);
v4 = *(_DWORD *)v3;
v5 = *(_DWORD *)(v3 + 4);
v6 = v10;
*(_DWORD *)v10 = v4;
*(_DWORD *)(v6 + 4) = v5;
v9 = v10;
}
else
{
v9 = 0;
}
return sub_4112D5(v8);
}
// 411046: using guessed type _DWORD __cdecl sub_411046(_DWORD, _DWORD);
// 4111D1: using guessed type _DWORD __cdecl sub_4111D1(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 41F004: using guessed type int __security_cookie;
//----- (00412BA0) --------------------------------------------------------
int __thiscall sub_412BA0(void *this, int a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
memset(&v4, -858993460, 0xCCu);
sub_411302(this, a2);
return sub_4112D5(v2);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411302: using guessed type _DWORD __cdecl sub_411302(_DWORD, _DWORD);
//----- (00412C00) --------------------------------------------------------
signed int __stdcall sub_412C00(int a1)
{
return -858993460;
}
//----- (00412C40) --------------------------------------------------------
int __cdecl sub_412C40(int a1, int a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-C0h]@1
memset(&v4, -858993460, 0xC0u);
sub_411226(a2);
return sub_4112D5(v2);
}
// 411226: using guessed type _DWORD __stdcall sub_411226(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00412C90) --------------------------------------------------------
signed int __stdcall sub_412C90(int a1)
{
return -858993460;
}
//----- (00412CD0) --------------------------------------------------------
int __cdecl sub_412CD0(int a1)
{
return a1;
}
//----- (00412D10) --------------------------------------------------------
int __cdecl sub_412D10(int a1)
{
return a1;
}
//----- (00412D50) --------------------------------------------------------
int __thiscall sub_412D50(void *this, int a2)
{
unsigned int v2; // ST00_4@1
char v4; // [sp+Ch] [bp-D8h]@1
void *v5; // [sp+D0h] [bp-14h]@1
int v6; // [sp+E0h] [bp-4h]@1
int v7; // [sp+E4h] [bp+0h]@1
memset(&v4, -858993460, 0xCCu);
v2 = (unsigned int)&v7 ^ __security_cookie;
v5 = this;
sub_411343();
v6 = 0;
sub_4110CD();
return sub_4112D5(v2);
}
// 4110CD: using guessed type int sub_4110CD(void);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411343: using guessed type int sub_411343(void);
// 41F004: using guessed type int __security_cookie;
//----- (00412E00) --------------------------------------------------------
int __thiscall sub_412E00(void *this)
{
int v1; // ecx@1
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
std::_Container_base12::_Container_base12(this);
sub_4112D5(v1);
*((_DWORD *)v5 + 5) = 0;
*((_DWORD *)v5 + 6) = 0;
return sub_4112D5(v2);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4200AC: using guessed type int __thiscall std___Container_base12___Container_base12(_DWORD);
//----- (00412E80) --------------------------------------------------------
int __thiscall sub_412E80(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
memset(&v3, -858993460, 0xCCu);
sub_4113DE(this);
return sub_4112D5(v1);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4113DE: using guessed type int __thiscall sub_4113DE(_DWORD);
//----- (00412EE0) --------------------------------------------------------
void *__thiscall sub_412EE0(void *this)
{
return this;
}
//----- (00412F20) --------------------------------------------------------
void *__thiscall sub_412F20(void *this)
{
return this;
}
//----- (00412F60) --------------------------------------------------------
int __thiscall sub_412F60(void *this, int a2)
{
unsigned int v2; // ST08_4@1
int v3; // eax@1
char v5; // [sp+Ch] [bp-E4h]@1
char v6; // [sp+13h] [bp-DDh]@1
void *v7; // [sp+DCh] [bp-14h]@1
int v8; // [sp+ECh] [bp-4h]@1
int v9; // [sp+F0h] [bp+0h]@1
memset(&v5, -858993460, 0xD8u);
v2 = (unsigned int)&v9 ^ __security_cookie;
v7 = this;
v3 = sub_4113DE(&v6);
sub_4111C7(v3);
v8 = 0;
sub_4112F3(0, 0);
sub_41100F(a2);
return sub_4112D5(v2);
}
// 41100F: using guessed type _DWORD __stdcall sub_41100F(_DWORD);
// 4111C7: using guessed type _DWORD __stdcall sub_4111C7(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4112F3: using guessed type _DWORD __stdcall sub_4112F3(char, _DWORD);
// 4113DE: using guessed type int __thiscall sub_4113DE(_DWORD);
// 41F004: using guessed type int __security_cookie;
//----- (00413030) --------------------------------------------------------
int __thiscall sub_413030(void *this)
{
void *v2; // [sp+D0h] [bp-8h]@1
v2 = this;
*(_DWORD *)this = 0;
*((_DWORD *)v2 + 1) = 0;
return (int)v2;
}
//----- (00413080) --------------------------------------------------------
int __thiscall sub_413080(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
void *v4; // [sp+D0h] [bp-8h]@1
memset(&v3, -858993460, 0xCCu);
v4 = this;
sub_41120D(this);
*(_DWORD *)v4 = off_41C9B0;
return sub_4112D5(v1);
}
// 41120D: using guessed type int __thiscall sub_41120D(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 41C9B0: using guessed type int (__stdcall *off_41C9B0[6])();
//----- (004130E0) --------------------------------------------------------
int __thiscall sub_4130E0(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
void *v4; // [sp+D0h] [bp-8h]@1
memset(&v3, -858993460, 0xCCu);
v4 = this;
sub_411384(this);
*(_DWORD *)v4 = off_41C9F0;
return sub_4112D5(v1);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411384: using guessed type int __thiscall sub_411384(_DWORD);
// 41C9F0: using guessed type int (__stdcall *off_41C9F0[6])();
//----- (00413140) --------------------------------------------------------
int __thiscall sub_413140(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
void *v4; // [sp+D0h] [bp-8h]@1
memset(&v3, -858993460, 0xCCu);
v4 = this;
sub_411384(this);
*(_DWORD *)v4 = off_41CA3C;
return sub_4112D5(v1);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411384: using guessed type int __thiscall sub_411384(_DWORD);
// 41CA3C: using guessed type int (__stdcall *off_41CA3C[6])();
//----- (004131A0) --------------------------------------------------------
int __thiscall sub_4131A0(void *this)
{
void *v2; // [sp+D0h] [bp-8h]@1
v2 = this;
*(_DWORD *)this = off_41C98C;
return (int)v2;
}
// 41C98C: using guessed type int (__stdcall *off_41C98C[6])();
//----- (004131F0) --------------------------------------------------------
int __thiscall sub_4131F0(void *this, int a2, int a3)
{
void *v4; // [sp+D0h] [bp-8h]@1
v4 = this;
*(_DWORD *)this = a2;
*((_DWORD *)v4 + 1) = a3;
return (int)v4;
}
//----- (00413240) --------------------------------------------------------
int __thiscall sub_413240(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
void *v4; // [sp+D0h] [bp-8h]@1
memset(&v3, -858993460, 0xCCu);
v4 = this;
sub_4111F4(this);
sub_411069(v4);
return sub_4112D5(v1);
}
// 411069: using guessed type int __thiscall sub_411069(_DWORD);
// 4111F4: using guessed type int __thiscall sub_4111F4(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (004132A0) --------------------------------------------------------
int __thiscall sub_4132A0(void *this)
{
int v1; // ecx@1
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
std::_Container_base12::__Container_base12(this);
sub_4112D5(v1);
return sub_4112D5(v2);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4200A8: using guessed type int __thiscall std___Container_base12____Container_base12(_DWORD);
//----- (00413300) --------------------------------------------------------
int __thiscall sub_413300(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
memset(&v3, -858993460, 0xCCu);
sub_411357(this);
return sub_4112D5(v1);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411357: using guessed type int __thiscall sub_411357(_DWORD);
//----- (00413350) --------------------------------------------------------
int __thiscall sub_413350(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
memset(&v3, -858993460, 0xCCu);
sub_41125D(this);
return sub_4112D5(v1);
}
// 41125D: using guessed type int __thiscall sub_41125D(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (004133A0) --------------------------------------------------------
int __thiscall sub_4133A0(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
memset(&v3, -858993460, 0xCCu);
sub_41125D(this);
return sub_4112D5(v1);
}
// 41125D: using guessed type int __thiscall sub_41125D(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (004133F0) --------------------------------------------------------
void *__thiscall sub_4133F0(void *this)
{
void *result; // eax@1
result = this;
*(_DWORD *)this = off_41C98C;
return result;
}
// 41C98C: using guessed type int (__stdcall *off_41C98C[6])();
//----- (00413430) --------------------------------------------------------
int __cdecl sub_413430(int a1, int a2)
{
return a2;
}
//----- (00413470) --------------------------------------------------------
signed int __cdecl sub_413470()
{
return -858993460;
}
//----- (004134A0) --------------------------------------------------------
bool __thiscall sub_4134A0(void *this, void *a2)
{
int v3; // [sp+Ch] [bp-D0h]@1
void *v4; // [sp+D4h] [bp-8h]@1
memset(&v3, -858993460, 0xD0u);
v4 = this;
return this == a2;
}
//----- (00413510) --------------------------------------------------------
int __thiscall sub_413510(void *this, int a2)
{
int v2; // ST00_4@1
int v3; // ecx@1
int v4; // esi@2
int v6; // [sp+Ch] [bp-D0h]@1
int v7; // [sp+D4h] [bp-8h]@1
memset(&v6, -858993460, 0xD0u);
v7 = (int)this;
v2 = sub_411280(a2);
sub_411280(v7);
v6 = (unsigned __int8)sub_4110AA(v2) && (v4 = sub_411181(v7), v4 == sub_411181(a2));
return sub_4112D5(v3);
}
// 4110AA: using guessed type _DWORD __stdcall sub_4110AA(_DWORD);
// 411181: using guessed type int __thiscall sub_411181(_DWORD);
// 411280: using guessed type int __thiscall sub_411280(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (004135C0) --------------------------------------------------------
int __thiscall sub_4135C0(void *this, char a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
sub_41125D(this);
if ( a2 & 1 )
operator delete(v5);
return sub_4112D5(v2);
}
// 41125D: using guessed type int __thiscall sub_41125D(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00413630) --------------------------------------------------------
int __thiscall sub_413630(void *this, char a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
sub_4113CF(this);
if ( a2 & 1 )
operator delete(v5);
return sub_4112D5(v2);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4113CF: using guessed type int __thiscall sub_4113CF(_DWORD);
//----- (004136A0) --------------------------------------------------------
int __thiscall sub_4136A0(void *this, char a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
sub_411168(this);
if ( a2 & 1 )
operator delete(v5);
return sub_4112D5(v2);
}
// 411168: using guessed type int __thiscall sub_411168(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00413710) --------------------------------------------------------
int __thiscall sub_413710(void *this, char a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
sub_411357(this);
if ( a2 & 1 )
operator delete(v5);
return sub_4112D5(v2);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411357: using guessed type int __thiscall sub_411357(_DWORD);
//----- (00413780) --------------------------------------------------------
int __thiscall sub_413780(void *this)
{
int v1; // eax@1
int v2; // ecx@1
char v4; // [sp+Ch] [bp-E8h]@1
char v5; // [sp+10h] [bp-E4h]@1
char v6; // [sp+E3h] [bp-11h]@1
void *v7; // [sp+ECh] [bp-8h]@1
int v8; // [sp+F4h] [bp+0h]@1
memset(&v4, -858993460, 0xE8u);
v7 = this;
sub_41137F(&v6);
*(_DWORD *)v7 = sub_41128A(1);
v1 = sub_4111E0(&v5);
sub_411050(*(_DWORD *)v7, v1);
**(_DWORD **)v7 = v7;
sub_411113(&v8, &dword_413804);
return sub_4112D5(v2);
}
// 411050: using guessed type _DWORD __stdcall sub_411050(_DWORD, _DWORD);
// 411113: using guessed type int __fastcall sub_411113(_DWORD, _DWORD);
// 4111E0: using guessed type int __thiscall sub_4111E0(_DWORD);
// 41128A: using guessed type _DWORD __stdcall sub_41128A(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 41137F: using guessed type int __thiscall sub_41137F(_DWORD);
// 413804: using guessed type int dword_413804;
//----- (00413850) --------------------------------------------------------
#error "413A5A: positive sp value has been found (funcsize=130)"
//----- (00413B10) --------------------------------------------------------
int __thiscall sub_413B10(int this, int a2)
{
int v2; // eax@1
int v3; // ecx@1
char v5; // [sp+Ch] [bp-D8h]@1
char v6; // [sp+13h] [bp-D1h]@1
int v7; // [sp+DCh] [bp-8h]@1
memset(&v5, -858993460, 0xD8u);
v7 = this;
v6 = 0;
*(_DWORD *)(this + 20) = a2;
v2 = sub_411078(v7);
sub_41110E(a2 + v2, &v6);
return sub_4112D5(v3);
}
// 411078: using guessed type int __thiscall sub_411078(_DWORD);
// 41110E: using guessed type _DWORD __cdecl sub_41110E(_DWORD, _DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00413B90) --------------------------------------------------------
int __thiscall sub_413B90(void *this)
{
int v1; // ecx@1
int v2; // ecx@1
char v4; // [sp+Ch] [bp-D8h]@1
char v5; // [sp+D3h] [bp-11h]@1
void **v6; // [sp+DCh] [bp-8h]@1
int v7; // [sp+E4h] [bp+0h]@1
memset(&v4, -858993460, 0xD8u);
v6 = (void **)this;
sub_41137F(&v5);
std::_Container_base12::_Orphan_all(v6);
sub_4112D5(v1);
sub_411136(*v6);
sub_411064(*v6, 1);
*v6 = 0;
sub_411113(&v7, &dword_413C1C);
return sub_4112D5(v2);
}
// 411064: using guessed type _DWORD __stdcall sub_411064(void *, _DWORD);
// 411113: using guessed type int __fastcall sub_411113(_DWORD, _DWORD);
// 411136: using guessed type _DWORD __stdcall sub_411136(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 41137F: using guessed type int __thiscall sub_41137F(_DWORD);
// 413C1C: using guessed type int dword_413C1C;
// 4200A4: using guessed type int __thiscall std___Container_base12___Orphan_all(_DWORD);
//----- (00413C70) --------------------------------------------------------
int __thiscall sub_413C70(void *this, int a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
sub_411195(a2);
return sub_4112D5(v2);
}
// 411195: using guessed type int __thiscall sub_411195(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00413CD0) --------------------------------------------------------
int __thiscall sub_413CD0(void *this, unsigned int a2, char a3)
{
unsigned int v3; // ecx@3
unsigned int v5; // [sp+Ch] [bp-D0h]@1
void *v6; // [sp+D4h] [bp-8h]@1
memset(&v5, -858993460, 0xD0u);
v6 = this;
if ( sub_41130C(this) < a2 )
sub_4110D2(v6);
v3 = *((_DWORD *)v6 + 6);
if ( v3 >= a2 )
{
if ( a3 && a2 < 0x10 )
{
if ( a2 >= *((_DWORD *)v6 + 5) )
v5 = *((_DWORD *)v6 + 5);
else
v5 = a2;
sub_4112F3(1, v5);
}
else
{
if ( !a2 )
sub_41126C(0);
}
}
else
{
sub_41105F(a2, *((_DWORD *)v6 + 5));
}
if ( a2 )
v5 = 1;
else
v5 = 0;
return sub_4112D5(v3);
}
// 41105F: using guessed type _DWORD __stdcall sub_41105F(_DWORD, _DWORD);
// 4110D2: using guessed type int __thiscall sub_4110D2(_DWORD);
// 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4112F3: using guessed type _DWORD __stdcall sub_4112F3(char, _DWORD);
// 41130C: using guessed type int __thiscall sub_41130C(_DWORD);
//----- (00413DF0) --------------------------------------------------------
int __thiscall sub_413DF0(int this, unsigned int a2)
{
char v3; // [sp+Ch] [bp-CCh]@1
int v4; // [sp+D0h] [bp-8h]@1
memset(&v3, -858993460, 0xCCu);
v4 = this;
if ( a2 && a2 >= sub_411078(v4) )
{
sub_411078(v4);
this = v4;
}
return sub_4112D5(this);
}
// 411078: using guessed type int __thiscall sub_411078(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00413E70) --------------------------------------------------------
int __thiscall sub_413E70(int this)
{
int v2; // [sp+Ch] [bp-D0h]@1
int v3; // [sp+D4h] [bp-8h]@1
memset(&v2, -858993460, 0xD0u);
v3 = this;
if ( *(_DWORD *)(this + 24) < 0x10u )
v2 = v3 + 4;
else
v2 = sub_411127(*(_DWORD *)(v3 + 4));
return sub_4112D5(this);
}
// 411127: using guessed type _DWORD __cdecl sub_411127(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00413F00) --------------------------------------------------------
int __thiscall sub_413F00(int this)
{
int v2; // [sp+Ch] [bp-D0h]@1
int v3; // [sp+D4h] [bp-8h]@1
memset(&v2, -858993460, 0xD0u);
v3 = this;
if ( *(_DWORD *)(this + 24) < 0x10u )
v2 = v3 + 4;
else
v2 = sub_411127(*(_DWORD *)(v3 + 4));
return sub_4112D5(this);
}
// 411127: using guessed type _DWORD __cdecl sub_411127(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00413F90) --------------------------------------------------------
int __thiscall sub_413F90(void *this, char a2, size_t a3)
{
int v3; // ST08_4@3
void *v4; // eax@4
int v5; // ST08_4@5
int v6; // ST04_4@5
int v7; // ecx@6
char v9; // [sp+Ch] [bp-F0h]@1
char v10; // [sp+13h] [bp-E9h]@3
char v11; // [sp+1Fh] [bp-DDh]@5
int v12; // [sp+E8h] [bp-14h]@3
void *v13; // [sp+F4h] [bp-8h]@1
memset(&v9, -858993460, 0xF0u);
v13 = this;
if ( a2 && *((_DWORD *)v13 + 6) >= 0x10u )
{
v12 = *((_DWORD *)v13 + 1);
v3 = (int)((char *)v13 + 4);
sub_411339(&v10);
sub_411311(v3);
if ( a3 )
{
v4 = (void *)sub_411127(v12);
sub_4111EA((char *)v13 + 4, v4, a3);
}
v5 = *((_DWORD *)v13 + 6) + 1;
v6 = v12;
sub_411339(&v11);
sub_411348(v6, v5);
}
*((_DWORD *)v13 + 6) = 15;
sub_41126C(a3);
return sub_4112D5(v7);
}
// 411127: using guessed type _DWORD __cdecl sub_411127(_DWORD);
// 4111EA: using guessed type _DWORD __cdecl sub_4111EA(void *Dst, void *Src, size_t Size);
// 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411311: using guessed type _DWORD __stdcall sub_411311(_DWORD);
// 411339: using guessed type _DWORD __stdcall sub_411339(_DWORD);
// 411348: using guessed type _DWORD __stdcall sub_411348(_DWORD, _DWORD);
//----- (004140A0) --------------------------------------------------------
int __thiscall sub_4140A0(void *this)
{
int v1; // ecx@1
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
std::_Xlength_error("string too long");
sub_4112D5(v1);
return sub_4112D5(v2);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 42009C: using guessed type int __stdcall std___Xlength_error(_DWORD);
//----- (00414100) --------------------------------------------------------
int __thiscall sub_414100(void *this)
{
int v1; // ecx@1
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
std::_Xout_of_range("invalid string position");
sub_4112D5(v1);
return sub_4112D5(v2);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 420098: using guessed type int __stdcall std___Xout_of_range(_DWORD);
//----- (00414160) --------------------------------------------------------
int __thiscall sub_414160(void *this, int a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
sub_411096(a2);
return sub_4112D5(v2);
}
// 411096: using guessed type _DWORD __stdcall sub_411096(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (004141C0) --------------------------------------------------------
int __thiscall sub_4141C0(void *this, unsigned int a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
sub_4112A3(a2);
return sub_4112D5(v2);
}
// 4112A3: using guessed type _DWORD __cdecl sub_4112A3(unsigned int);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414220) --------------------------------------------------------
int __thiscall sub_414220(void *this, int a2)
{
int v2; // ecx@1
char v4; // [sp+Ch] [bp-CCh]@1
void *v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
sub_411249(a2);
return sub_4112D5(v2);
}
// 411249: using guessed type _DWORD __cdecl sub_411249(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414280) --------------------------------------------------------
int __thiscall sub_414280(void *this, int a2, unsigned int a3, unsigned int a4)
{
int v4; // ecx@6
unsigned __int8 v5; // al@7
size_t v6; // ST08_4@8
void *v7; // ST04_4@8
void *v8; // eax@8
char v10; // [sp+Ch] [bp-D8h]@1
size_t v11; // [sp+D0h] [bp-14h]@3
int v12; // [sp+DCh] [bp-8h]@1
memset(&v10, -858993460, 0xD8u);
v12 = (int)this;
if ( sub_41131B(a2) < a3 )
sub_411203(v12);
v11 = sub_41131B(a2) - a3;
if ( a4 < v11 )
v11 = a4;
if ( v12 == a2 )
{
sub_41132A(v11 + a3);
sub_41117C(0, a3);
}
else
{
v5 = sub_4111F9(v11, 0);
v4 = v5;
if ( v5 )
{
v6 = v11;
v7 = (void *)(a3 + sub_41113B(a2));
v8 = (void *)sub_411078(v12);
sub_4111EA(v8, v7, v6);
sub_41126C(v11);
}
}
return sub_4112D5(v4);
}
// 411078: using guessed type int __thiscall sub_411078(_DWORD);
// 41113B: using guessed type int __thiscall sub_41113B(_DWORD);
// 41117C: using guessed type _DWORD __stdcall sub_41117C(_DWORD, _DWORD);
// 4111EA: using guessed type _DWORD __cdecl sub_4111EA(void *Dst, void *Src, size_t Size);
// 4111F9: using guessed type _DWORD __stdcall sub_4111F9(_DWORD, char);
// 411203: using guessed type int __thiscall sub_411203(_DWORD);
// 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 41131B: using guessed type int __thiscall sub_41131B(_DWORD);
// 41132A: using guessed type _DWORD __stdcall sub_41132A(_DWORD);
//----- (00414390) --------------------------------------------------------
int __thiscall sub_414390(void *this, char *a2)
{
int v2; // eax@1
int v3; // ecx@1
char v5; // [sp+Ch] [bp-CCh]@1
void *v6; // [sp+D0h] [bp-8h]@1
memset(&v5, -858993460, 0xCCu);
v6 = this;
sub_4112EE(a2, L"c:\\program files (x86)\\microsoft visual studio 12.0\\vc\\include\\xstring", 1168);
v2 = sub_411118(a2);
sub_4110E1(a2, v2);
return sub_4112D5(v3);
}
// 4110E1: using guessed type _DWORD __stdcall sub_4110E1(_DWORD, _DWORD);
// 411118: using guessed type _DWORD __cdecl sub_411118(char *Str);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4112EE: using guessed type _DWORD __cdecl sub_4112EE(_DWORD, _DWORD, _DWORD);
// 41CA68: using guessed type wchar_t aCProgramFilesX[71];
//----- (00414420) --------------------------------------------------------
int __thiscall sub_414420(void *this, void *a2, size_t a3)
{
int v3; // eax@4
int v4; // ecx@4
unsigned __int8 v5; // al@5
void *v6; // eax@6
char v8; // [sp+Ch] [bp-CCh]@1
int v9; // [sp+D0h] [bp-8h]@1
memset(&v8, -858993460, 0xCCu);
v9 = (int)this;
if ( a3 )
sub_4112EE(a2, L"c:\\program files (x86)\\microsoft visual studio 12.0\\vc\\include\\xstring", 1151);
if ( (unsigned __int8)sub_41100A(a2) )
{
v3 = sub_411078(v9);
sub_4112C1(v9, (char *)a2 - v3, a3);
}
else
{
v5 = sub_4111F9(a3, 0);
v4 = v5;
if ( v5 )
{
v6 = (void *)sub_411078(v9);
sub_4111EA(v6, a2, a3);
sub_41126C(a3);
}
}
return sub_4112D5(v4);
}
// 41100A: using guessed type _DWORD __stdcall sub_41100A(_DWORD);
// 411078: using guessed type int __thiscall sub_411078(_DWORD);
// 4111EA: using guessed type _DWORD __cdecl sub_4111EA(void *Dst, void *Src, size_t Size);
// 4111F9: using guessed type _DWORD __stdcall sub_4111F9(_DWORD, char);
// 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
// 4112C1: using guessed type _DWORD __stdcall sub_4112C1(_DWORD, _DWORD, _DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4112EE: using guessed type _DWORD __cdecl sub_4112EE(_DWORD, _DWORD, _DWORD);
// 41CA68: using guessed type wchar_t aCProgramFilesX[71];
//----- (00414520) --------------------------------------------------------
int __cdecl sub_414520(int a1, int a2)
{
int result; // eax@1
char v3; // [sp+Ch] [bp-C0h]@1
memset(&v3, -858993460, 0xC0u);
result = a1;
*(_BYTE *)a1 = *(_BYTE *)a2;
return result;
}
//----- (00414560) --------------------------------------------------------
int __thiscall sub_414560(int this)
{
char v2; // [sp+Ch] [bp-CCh]@1
int v3; // [sp+D0h] [bp-8h]@1
memset(&v2, -858993460, 0xCCu);
v3 = this;
return *(_DWORD *)(this + 4);
}
//----- (004145A0) --------------------------------------------------------
int __thiscall sub_4145A0(int this)
{
char v2; // [sp+Ch] [bp-CCh]@1
int v3; // [sp+D0h] [bp-8h]@1
memset(&v2, -858993460, 0xCCu);
v3 = this;
return *(_DWORD *)(this + 4);
}
//----- (004145E0) --------------------------------------------------------
int __thiscall sub_4145E0(void *this, void *Dst, const void *Src, size_t Size)
{
void *v5; // [sp+Ch] [bp-C4h]@1
memset(&v5, -858993460, 0xC4u);
if ( Size )
v5 = j_memcpy(Dst, Src, Size);
else
v5 = Dst;
return sub_4112D5(this);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414660) --------------------------------------------------------
int __thiscall sub_414660(void *this, void *a2, int a3)
{
int v3; // ecx@1
char v5; // [sp+Ch] [bp-CCh]@1
void *v6; // [sp+D0h] [bp-8h]@1
memset(&v5, -858993460, 0xCCu);
v6 = this;
sub_4113FC(a2, a3);
return sub_4112D5(v3);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4113FC: using guessed type _DWORD __stdcall sub_4113FC(void *, _DWORD);
//----- (004146C0) --------------------------------------------------------
int __thiscall sub_4146C0(void *this, void *a2, int a3)
{
int v3; // ecx@1
char v5; // [sp+Ch] [bp-CCh]@1
void *v6; // [sp+D0h] [bp-8h]@1
memset(&v5, -858993460, 0xCCu);
v6 = this;
operator delete(a2);
return sub_4112D5(v3);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414720) --------------------------------------------------------
int __thiscall sub_414720(void *this, void *a2, int a3)
{
int v3; // ecx@1
char v5; // [sp+Ch] [bp-CCh]@1
void *v6; // [sp+D0h] [bp-8h]@1
memset(&v5, -858993460, 0xCCu);
v6 = this;
operator delete(a2);
return sub_4112D5(v3);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414780) --------------------------------------------------------
int __thiscall sub_414780(void *this, int a2, int a3)
{
int v3; // ecx@1
int v4; // eax@2
int v5; // ecx@2
int v6; // eax@3
char v8; // [sp+Ch] [bp-CCh]@1
void *v9; // [sp+D0h] [bp-8h]@1
memset(&v8, -858993460, 0xCCu);
v9 = this;
std::_Syserror_map(a3);
if ( sub_4112D5(v3) )
{
v4 = sub_4110AF();
sub_41118B(a3, v4);
}
else
{
v6 = sub_4110B9();
sub_41118B(a3, v6);
}
return sub_4112D5(v5);
}
// 4110AF: using guessed type int sub_4110AF(void);
// 4110B9: using guessed type int sub_4110B9(void);
// 41118B: using guessed type _DWORD __stdcall sub_41118B(_DWORD, _DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 420094: using guessed type int __cdecl std___Syserror_map(_DWORD);
//----- (00414830) --------------------------------------------------------
int __thiscall sub_414830(void *this, int a2, int a3)
{
int v3; // ecx@1
char v5; // [sp+Ch] [bp-CCh]@1
memset(&v5, -858993460, 0xCCu);
sub_41118B(a3, this);
return sub_4112D5(v3);
}
// 41118B: using guessed type _DWORD __stdcall sub_41118B(_DWORD, _DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414890) --------------------------------------------------------
int __thiscall sub_414890(void *this, int a2, int a3)
{
int v3; // eax@1
int v4; // ecx@1
int v6; // [sp+Ch] [bp-D0h]@1
void *v7; // [sp+D4h] [bp-8h]@1
memset(&v6, -858993460, 0xD0u);
v7 = this;
v3 = sub_4110FA(a2);
v6 = (unsigned __int8)sub_4110AA(v3) && sub_4112CB(a2) == a3;
return sub_4112D5(v4);
}
// 4110AA: using guessed type _DWORD __stdcall sub_4110AA(_DWORD);
// 4110FA: using guessed type int __thiscall sub_4110FA(_DWORD);
// 4112CB: using guessed type int __thiscall sub_4112CB(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414930) --------------------------------------------------------
int __thiscall sub_414930(void *this, int a2, int a3)
{
int v3; // ecx@1
int v4; // ecx@1
int v6; // [sp-4h] [bp-ECh]@1
char v7; // [sp+Ch] [bp-DCh]@1
char v8; // [sp+10h] [bp-D8h]@1
void *v9; // [sp+E0h] [bp-8h]@1
memset(&v7, -858993460, 0xDCu);
v9 = this;
v6 = a3;
(*(void (__thiscall **)(void *, char *, int))(*(_DWORD *)v9 + 12))(v9, &v8, a2);
sub_4112D5(v3);
sub_4111FE(v6);
return sub_4112D5(v4);
}
// 4111FE: using guessed type _DWORD __stdcall sub_4111FE(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (004149B0) --------------------------------------------------------
int __thiscall sub_4149B0(int this, unsigned int a2)
{
int v2; // ecx@3
char v4; // [sp+Ch] [bp-CCh]@1
int v5; // [sp+D0h] [bp-8h]@1
memset(&v4, -858993460, 0xCCu);
v5 = this;
if ( *(_DWORD *)(this + 20) < a2 )
sub_411203(v5);
sub_41126C(a2);
return sub_4112D5(v2);
}
// 411203: using guessed type int __thiscall sub_411203(_DWORD);
// 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414A30) --------------------------------------------------------
int __thiscall sub_414A30(int this, unsigned int a2, unsigned int a3)
{
int v3; // ecx@3
int v4; // eax@6
char v6; // [sp+Ch] [bp-E4h]@1
unsigned int v7; // [sp+D0h] [bp-20h]@6
unsigned int v8; // [sp+DCh] [bp-14h]@6
int v9; // [sp+E8h] [bp-8h]@1
memset(&v6, -858993460, 0xE4u);
v9 = this;
if ( *(_DWORD *)(this + 20) < a2 )
sub_411203(v9);
v3 = *(_DWORD *)(v9 + 20) - a2;
if ( v3 > a3 )
{
if ( a3 )
{
v4 = sub_411078(v9);
v8 = a2 + v4;
v7 = *(_DWORD *)(v9 + 20) - a3;
sub_411258((void *)(a2 + v4), (void *)(a3 + a2 + v4), v7 - a2);
sub_41126C(v7);
}
}
else
{
sub_41126C(a2);
}
return sub_4112D5(v3);
}
// 411078: using guessed type int __thiscall sub_411078(_DWORD);
// 411203: using guessed type int __thiscall sub_411203(_DWORD);
// 411258: using guessed type _DWORD __cdecl sub_411258(void *Dst, void *Src, size_t Size);
// 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414B10) --------------------------------------------------------
_UNKNOWN *__cdecl sub_414B10()
{
return &unk_41F324;
}
//----- (00414B50) --------------------------------------------------------
int __cdecl sub_414B50(const char *Str)
{
int v1; // ecx@1
size_t v3; // [sp+Ch] [bp-C4h]@1
memset(&v3, -858993460, 0xC4u);
v1 = *Str;
if ( *Str )
v3 = j_strlen(Str);
else
v3 = 0;
return sub_4112D5(v1);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00414BD0) --------------------------------------------------------
int __thiscall sub_414BD0(void *this)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-CCh]@1
memset(&v3, -858993460, 0xCCu);
sub_4113C5(this);
return sub_4112D5(v1);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 4113C5: using guessed type _DWORD __cdecl sub_4113C5(_DWORD);
//----- (00414C30) --------------------------------------------------------
signed int __cdecl sub_414C30()
{
return -1;
}
//----- (00414C70) --------------------------------------------------------
int __cdecl sub_414C70(int a1)
{
int v1; // ecx@1
char v3; // [sp+Ch] [bp-C0h]@1
memset(&v3, -858993460, 0xC0u);
sub_41136B(a1);
return sub_4112D5(v1);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 41136B: using guessed type int __thiscall sub_41136B(_DWORD);
//----- (00414CC0) --------------------------------------------------------
int __thiscall sub_414CC0(void *this)
{
int v1; // eax@1
int v2; // ecx@1
unsigned int v4; // [sp+Ch] [bp-E8h]@1
char v5; // [sp+17h] [bp-DDh]@1
unsigned int v6; // [sp+E0h] [bp-14h]@1
void *v7; // [sp+ECh] [bp-8h]@1
memset(&v4, -858993460, 0xE8u);
v7 = this;
v1 = sub_411339(&v5);
v6 = sub_4113E8(v1);
if ( v6 > 1 )
v4 = v6 - 1;
else
v4 = 1;
return sub_4112D5(v2);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411339: using guessed type _DWORD __stdcall sub_411339(_DWORD);
// 4113E8: using guessed type int __thiscall sub_4113E8(_DWORD);
//----- (00414D60) --------------------------------------------------------
int __thiscall sub_414D60(void *this, int a2, int a3)
{
int v3; // ecx@1
int v4; // ecx@4
int v6; // [sp+Ch] [bp-E8h]@1
int v7; // [sp+14h] [bp-E0h]@1
int v8; // [sp+E0h] [bp-14h]@1
void *v9; // [sp+ECh] [bp-8h]@1
memset(&v6, -858993460, 0xE8u);
v9 = this;
v7 = 0;
std::_Syserror_map(a3);
v8 = sub_4112D5(v3);
if ( v8 )
v6 = v8;
else
v6 = (int)"unknown error";
sub_411393(v6);
return sub_4112D5(v4);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411393: using guessed type _DWORD __stdcall sub_411393(_DWORD);
// 420094: using guessed type int __cdecl std___Syserror_map(_DWORD);
//----- (00414E20) --------------------------------------------------------
int __thiscall sub_414E20(void *this, int a2, int a3)
{
int v3; // ecx@2
char v5; // [sp+Ch] [bp-D8h]@1
int v6; // [sp+10h] [bp-D4h]@1
void *v7; // [sp+DCh] [bp-8h]@1
memset(&v5, -858993460, 0xD8u);
v7 = this;
v6 = 0;
if ( a3 == 1 )
{
sub_411393("iostream stream error");
v6 |= 1u;
}
else
{
sub_411334(a2, a3);
v6 |= 1u;
}
return sub_4112D5(v3);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411334: using guessed type _DWORD __stdcall sub_411334(_DWORD, _DWORD);
// 411393: using guessed type _DWORD __stdcall sub_411393(_DWORD);
//----- (00414EE0) --------------------------------------------------------
int __thiscall sub_414EE0(void *this, int a2, int a3)
{
int v3; // ecx@1
int v4; // ecx@4
int v6; // [sp+Ch] [bp-E8h]@1
int v7; // [sp+14h] [bp-E0h]@1
int v8; // [sp+E0h] [bp-14h]@1
void *v9; // [sp+ECh] [bp-8h]@1
memset(&v6, -858993460, 0xE8u);
v9 = this;
v7 = 0;
std::_Winerror_map(a3);
v8 = sub_4112D5(v3);
if ( v8 )
v6 = v8;
else
v6 = (int)"unknown error";
sub_411393(v6);
return sub_4112D5(v4);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
// 411393: using guessed type _DWORD __stdcall sub_411393(_DWORD);
// 420090: using guessed type int __cdecl std___Winerror_map(_DWORD);
//----- (00414FA0) --------------------------------------------------------
int __thiscall sub_414FA0(void *this, void *Dst, const void *Src, size_t Size)
{
int v5; // [sp+Ch] [bp-C4h]@1
memset(&v5, -858993460, 0xC4u);
if ( Size )
{
memmove(Dst, Src, Size);
v5 = sub_4112D5(this);
}
else
{
v5 = (int)Dst;
}
return sub_4112D5(this);
}
// 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
//----- (00415030) --------------------------------------------------------
int __cdecl sub_415030()
{
return (int)"generic";
}
//----- (00415070) --------------------------------------------------------
int __cdecl sub_415070()
{
return (int)"iostream";
}
//----- (004150B0) --------------------------------------------------------
int __cdecl sub_4150B0()
{
return (int)"system";
}
//----- (004150F0) --------------------------------------------------------
int __thiscall sub_4150F0(int this)
{
char v2; // [sp+Ch] [bp-CCh]@1
int v3; // [sp+D0h] [bp-8h]@1
memset(&v2, -858993460, 0xCCu);
v3 = this;
return *(_DWORD *)(this + 20);
}
//----- (00415130) --------------------------------------------------------
_UNKNOWN *__cdecl sub_415130()
{
return &unk_41F32C;
}
//----- (00415170) --------------------------------------------------------
int __this