fork download
  1. /* This file has been generated by the Hex-Rays decompiler.
  2.   Copyright (c) 2007-2011 Hex-Rays <info@hex-rays.com>
  3.  
  4.   Detected compiler: Visual C++
  5. */
  6.  
  7. #include <windows.h>
  8. #include <defs.h>
  9.  
  10.  
  11. //-------------------------------------------------------------------------
  12. // Data declarations
  13.  
  14. extern _UNKNOWN sub_4111AE; // weak
  15. extern _UNKNOWN sub_4111B8; // weak
  16. extern int dword_413804; // weak
  17. extern _UNKNOWN sub_413850; // weak
  18. extern int dword_413C1C; // weak
  19. extern _UNKNOWN unk_41C000; // weak
  20. extern _UNKNOWN unk_41C324; // weak
  21. extern _UNKNOWN unk_41C428; // weak
  22. extern _UNKNOWN unk_41C838; // weak
  23. extern int (__stdcall *off_41C98C[6])(); // weak
  24. extern int (__stdcall *off_41C9B0[6])(); // weak
  25. extern char aGeneric[8]; // weak
  26. extern char aUnknownError[14]; // weak
  27. extern int (__stdcall *off_41C9F0[6])(); // weak
  28. extern char aIostream[9]; // weak
  29. extern char aIostreamStream[22]; // weak
  30. extern int (__stdcall *off_41CA3C[6])(); // weak
  31. extern char aSystem[7]; // weak
  32. extern wchar_t aCProgramFilesX[71]; // weak
  33. extern char aStringTooLong[16]; // weak
  34. extern char aInvalidStringP[24]; // weak
  35. extern wchar_t aInvalidNullPoi[21]; // weak
  36. extern wchar_t a__onexitbeginN[97]; // weak
  37. extern wchar_t aS[3]; // weak
  38. extern wchar_t aFDdVctoolsCrtC[45]; // weak
  39. extern char aFDdVctoolsCr_0[45]; // weak
  40. extern wchar_t a__native_start[40]; // weak
  41. extern wchar_t aFDdVctoolsCr_1[43]; // weak
  42. extern LPCSTR lpMultiByteStr; // idb
  43. extern LPCSTR off_41CDF4; // idb
  44. extern int dword_41CDF8[]; // weak
  45. extern char byte_41CE10[]; // weak
  46. extern char aWasCorrupted_[17]; // weak
  47. extern wchar_t aRuntimeCheckEr[54]; // weak
  48. extern wchar_t aRunTimeCheckFa[32]; // weak
  49. extern char aUnknownFilenam[17]; // weak
  50. extern char aUnknownModuleN[20]; // weak
  51. extern char aRunTimeCheck_0[32]; // weak
  52. extern char aStackCorrupted[38]; // weak
  53. extern _UNKNOWN a_2x; // weak
  54. extern const WCHAR LibFileName[]; // idb
  55. extern char ProcName[]; // idb
  56. extern char MultiByteStr[]; // idb
  57. extern char aData[9]; // weak
  58. extern char aAllocationNumb[42]; // weak
  59. extern char aSize[8]; // weak
  60. extern char aAddress0x[13]; // weak
  61. extern char aStackAreaAroun[72]; // weak
  62. extern char aSSPSLdSDS[18]; // weak
  63. extern char asc_41D478[2]; // weak
  64. extern char asc_41D47C[3]; // weak
  65. extern char aSSSS[]; // idb
  66. extern int off_41D4CC[2]; // weak
  67. extern wchar_t aFDdVctoolsCr_2[44]; // weak
  68. extern wchar_t a_setdefaultpre[21]; // weak
  69. extern wchar_t a_controlfp_sVo[50]; // weak
  70. extern int dword_41D6E8; // weak
  71. extern int dword_41D6EC; // weak
  72. extern int dword_41D6F0; // weak
  73. extern int dword_41D6F4; // weak
  74. extern int dword_41D6F8; // weak
  75. extern int dword_41D6FC; // weak
  76. extern int dword_41D700; // weak
  77. extern int dword_41D704; // weak
  78. extern __int16 word_41D708; // weak
  79. extern const WCHAR ModuleName[]; // idb
  80. extern const WCHAR aAdvapi32_dll[]; // idb
  81. extern char aRegopenkeyexw[]; // idb
  82. extern char aRegqueryvaluee[]; // idb
  83. extern char aRegclosekey[]; // idb
  84. extern wchar_t aSoftwareMicros[46]; // weak
  85. extern wchar_t aProductdir[11]; // weak
  86. extern wchar_t aDll[]; // idb
  87. extern wchar_t Src[]; // idb
  88. extern const WCHAR aMspdb120[]; // idb
  89. extern char aPdbopenvalidat[]; // idb
  90. extern char aR[2]; // weak
  91. extern _UNKNOWN unk_41DEA8; // weak
  92. extern _UNKNOWN unk_41E0AC; // weak
  93. extern _UNKNOWN unk_41E620; // weak
  94. extern _UNKNOWN unk_41E640; // weak
  95. extern _UNKNOWN unk_41E660; // weak
  96. extern _UNKNOWN unk_41E680; // weak
  97. extern _UNKNOWN unk_41E6C0; // weak
  98. extern _UNKNOWN unk_41E6E0; // weak
  99. extern char *Format; // idb
  100. extern int __security_cookie; // weak
  101. extern int dword_41F008; // weak
  102. extern int dword_41F010; // idb
  103. extern int dword_41F018; // weak
  104. extern int dword_41F020; // idb
  105. extern int dword_41F028; // weak
  106. extern int dword_41F02C; // weak
  107. extern _UNKNOWN unk_41F324; // weak
  108. extern _UNKNOWN unk_41F328; // weak
  109. extern _UNKNOWN unk_41F32C; // weak
  110. extern char byte_41F330; // weak
  111. extern int dword_41F334; // weak
  112. extern int Code; // idb
  113. extern int dword_41F33C; // weak
  114. extern int dword_41F340; // weak
  115. extern int dword_41F344; // weak
  116. extern int dword_41F348; // weak
  117. extern int dword_41F34C; // weak
  118. extern int dword_41F350; // weak
  119. extern int (*dword_41F35C)(_DWORD, const char *, ...); // weak
  120. extern int dword_41F360; // weak
  121. extern int dword_41F364; // weak
  122. extern int dword_41F36C; // weak
  123. extern int dword_41F370; // weak
  124. extern int dword_41F374; // weak
  125. extern int dword_41F3B0; // weak
  126. extern __int16 word_41F43C; // weak
  127. extern __int16 word_41F440; // weak
  128. extern __int16 word_41F444; // weak
  129. extern __int16 word_41F448; // weak
  130. extern int dword_41F44C; // weak
  131. extern int dword_41F450; // weak
  132. extern int dword_41F454; // weak
  133. extern int dword_41F458; // weak
  134. extern int dword_41F45C; // weak
  135. extern int dword_41F460; // weak
  136. extern int dword_41F464; // weak
  137. extern int dword_41F468; // weak
  138. extern __int16 word_41F46C; // weak
  139. extern int dword_41F470; // weak
  140. extern int dword_41F474; // weak
  141. extern __int16 word_41F478; // weak
  142. extern int dword_41F67C; // weak
  143. extern int dword_41F720; // weak
  144. extern int dword_41F724; // weak
  145. extern int dword_41F72C; // weak
  146. extern int dword_41F730; // weak
  147. extern int dword_41F734; // weak
  148. extern int dword_41F738; // weak
  149. extern int dword_41F73C; // weak
  150. extern char byte_41F740; // weak
  151. extern char byte_41F741; // weak
  152. extern _UNKNOWN unk_41F744; // weak
  153. extern int dword_41F754; // weak
  154. extern int (__stdcall *dword_41F758)(_DWORD, _DWORD, _DWORD); // weak
  155. extern PVOID dword_41F768; // idb
  156. extern PVOID Ptr; // idb
  157. // extern void *_initenv; weak
  158. // extern int fmode;
  159. // extern void *commode; weak
  160.  
  161. //-------------------------------------------------------------------------
  162. // Function declarations
  163.  
  164. #define __thiscall __cdecl // Test compile in C mode
  165.  
  166. int sub_411005(void); // weak
  167. _DWORD __stdcall sub_41100A(_DWORD); // weak
  168. _DWORD __stdcall sub_41100F(_DWORD); // weak
  169. int sub_411014(void); // weak
  170. _DWORD __stdcall sub_41102D(_DWORD, _DWORD); // weak
  171. int __cdecl j___crtSetUnhandledExceptionFilter(_DWORD); // weak
  172. _DWORD __cdecl sub_411037(_DWORD); // weak
  173. int __thiscall sub_41103C(_DWORD); // weak
  174. _DWORD __cdecl sub_411046(_DWORD, _DWORD); // weak
  175. _DWORD __stdcall sub_411050(_DWORD, _DWORD); // weak
  176. int __thiscall sub_411055(_DWORD); // weak
  177. _DWORD __stdcall sub_41105F(_DWORD, _DWORD); // weak
  178. _DWORD __stdcall sub_411064(void *, _DWORD); // weak
  179. int __thiscall sub_411069(_DWORD); // weak
  180. int sub_411073(); // weak
  181. int __thiscall sub_411078(_DWORD); // weak
  182. int __cdecl sub_411087(_DWORD); // weak
  183. 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);
  184. _DWORD __stdcall sub_411096(_DWORD); // weak
  185. int __thiscall type_info::_type_info(_DWORD); // weak
  186. _DWORD __stdcall sub_4110AA(_DWORD); // weak
  187. int sub_4110AF(void); // weak
  188. int __thiscall sub_4110B4(_DWORD); // weak
  189. int sub_4110B9(void); // weak
  190. int sub_4110C3(void); // weak
  191. int sub_4110CD(void); // weak
  192. int __thiscall sub_4110D2(_DWORD); // weak
  193. int __thiscall sub_4110DC(_DWORD); // weak
  194. _DWORD __stdcall sub_4110E1(_DWORD, _DWORD); // weak
  195. _DWORD __cdecl sub_4110EB(_DWORD); // weak
  196. int __thiscall sub_4110FA(_DWORD); // weak
  197. int sub_4110FF(); // weak
  198. int __cdecl j__lock(_DWORD); // weak
  199. _DWORD __cdecl sub_41110E(_DWORD, _DWORD); // weak
  200. int __fastcall sub_411113(_DWORD, _DWORD); // weak
  201. _DWORD __cdecl sub_411118(char *Str); // weak
  202. void __cdecl operator delete(void *); // idb
  203. _DWORD __cdecl sub_411127(_DWORD); // weak
  204. _DWORD __cdecl sub_411131(char); // weak
  205. _DWORD __stdcall sub_411136(_DWORD); // weak
  206. int __thiscall sub_41113B(_DWORD); // weak
  207. void __cdecl terminate(); // idb
  208. int __cdecl j__initterm(_DWORD, _DWORD); // weak
  209. size_t __cdecl j_strlen(const char *Str);
  210. int __cdecl j___crtTerminateProcess(_DWORD); // weak
  211. int __thiscall sub_411168(_DWORD); // weak
  212. _DWORD __stdcall sub_41117C(_DWORD, _DWORD); // weak
  213. int __thiscall sub_411181(_DWORD); // weak
  214. _DWORD __stdcall sub_41118B(_DWORD, _DWORD); // weak
  215. int __thiscall sub_411195(_DWORD); // weak
  216. _DWORD __cdecl sub_41119A(_DWORD); // weak
  217. _DWORD __cdecl sub_4111A9(_DWORD, _DWORD); // weak
  218. _DWORD __stdcall sub_4111C7(_DWORD); // weak
  219. _DWORD __cdecl sub_4111CC(_DWORD, _DWORD); // weak
  220. _DWORD __cdecl sub_4111D1(_DWORD); // weak
  221. _DWORD __cdecl sub_4111D6(_DWORD, _DWORD, _DWORD); // weak
  222. int __thiscall sub_4111E0(_DWORD); // weak
  223. int __cdecl j__crt_debugger_hook(_DWORD); // weak
  224. _DWORD __cdecl sub_4111EA(void *Dst, void *Src, size_t Size); // weak
  225. _DWORD __cdecl sub_4111EF(_DWORD); // weak
  226. int __thiscall sub_4111F4(_DWORD); // weak
  227. _DWORD __stdcall sub_4111F9(_DWORD, char); // weak
  228. _DWORD __stdcall sub_4111FE(_DWORD); // weak
  229. int __thiscall sub_411203(_DWORD); // weak
  230. int __thiscall sub_41120D(_DWORD); // weak
  231. void *__cdecl j_memcpy(void *Dst, const void *Src, size_t Size);
  232. _DWORD __stdcall sub_411226(_DWORD); // weak
  233. _DWORD __cdecl sub_411230(_DWORD); // weak
  234. _DWORD __cdecl sub_411235(_onexit_t Ptr); // weak
  235. int __cdecl sub_41123F(_DWORD); // weak
  236. _DWORD __cdecl sub_411249(_DWORD); // weak
  237. int __cdecl sub_41124E(_DWORD, _DWORD); // weak
  238. _DWORD __cdecl sub_411258(void *Dst, void *Src, size_t Size); // weak
  239. int __thiscall sub_41125D(_DWORD); // weak
  240. _DWORD __cdecl sub_411267(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // weak
  241. _DWORD __stdcall sub_41126C(_DWORD); // weak
  242. int __thiscall sub_411280(_DWORD); // weak
  243. int __cdecl j___crtUnhandledException(_DWORD); // weak
  244. _DWORD __stdcall sub_41128A(_DWORD); // weak
  245. int __stdcall sub_411294(); // weak
  246. _DWORD __cdecl sub_4112A3(unsigned int); // weak
  247. int __cdecl j__unlock(_DWORD); // weak
  248. _DWORD __stdcall sub_4112C1(_DWORD, _DWORD, _DWORD); // weak
  249. int __thiscall sub_4112CB(_DWORD); // weak
  250. int __thiscall sub_4112D5(_DWORD); // weak
  251. int __cdecl sub_4112DA(_DWORD, _DWORD, _DWORD); // weak
  252. int sub_4112E9(void); // weak
  253. _DWORD __cdecl sub_4112EE(_DWORD, _DWORD, _DWORD); // weak
  254. _DWORD __stdcall sub_4112F3(char, _DWORD); // weak
  255. errno_t __cdecl j__controlfp_s(unsigned int *CurrentState, unsigned int NewValue, unsigned int Mask);
  256. _DWORD __cdecl sub_411302(_DWORD, _DWORD); // weak
  257. int __thiscall sub_41130C(_DWORD); // weak
  258. _DWORD __stdcall sub_411311(_DWORD); // weak
  259. int __thiscall sub_41131B(_DWORD); // weak
  260. int __stdcall j__invoke_watson(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // weak
  261. _DWORD __stdcall sub_41132A(_DWORD); // weak
  262. _DWORD __stdcall sub_411334(_DWORD, _DWORD); // weak
  263. _DWORD __stdcall sub_411339(_DWORD); // weak
  264. _DWORD __cdecl sub_41133E(_DWORD, _DWORD, char, _DWORD, LPWSTR lpFilename, DWORD nSize); // weak
  265. int sub_411343(void); // weak
  266. _DWORD __stdcall sub_411348(_DWORD, _DWORD); // weak
  267. 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);
  268. int __cdecl j__CRT_RTC_INITW(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // weak
  269. int __thiscall sub_411357(_DWORD); // weak
  270. _DWORD __cdecl sub_41135C(_DWORD); // weak
  271. int __thiscall sub_41136B(_DWORD); // weak
  272. int __cdecl j__amsg_exit(_DWORD); // weak
  273. void *__cdecl operator new(unsigned int); // idb
  274. int __thiscall sub_41137F(_DWORD); // weak
  275. int __thiscall sub_411384(_DWORD); // weak
  276. _DWORD __stdcall sub_411393(_DWORD); // weak
  277. int __cdecl j__except_handler4_common(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // weak
  278. int sub_4113B6(); // weak
  279. _DWORD __stdcall sub_4113C0(_DWORD, _DWORD, _DWORD, _DWORD); // weak
  280. _DWORD __cdecl sub_4113C5(_DWORD); // weak
  281. _DWORD __cdecl sub_4113CA(_DWORD, _DWORD); // weak
  282. int __thiscall sub_4113CF(_DWORD); // weak
  283. BOOL __stdcall j_IsProcessorFeaturePresent(DWORD ProcessorFeature);
  284. int __thiscall sub_4113DE(_DWORD); // weak
  285. int __thiscall sub_4113E8(_DWORD); // weak
  286. int __cdecl j___dllonexit(_DWORD, _DWORD, _DWORD); // weak
  287. _DWORD __stdcall sub_4113FC(void *, _DWORD); // weak
  288. _DWORD __cdecl sub_411406(_DWORD, _DWORD, _DWORD, _DWORD); // weak
  289. int __cdecl j__initterm_e(_DWORD, _DWORD); // weak
  290. int __cdecl sub_41141A(_DWORD); // weak
  291. errno_t __cdecl j_wcscpy_s(wchar_t *Dst, rsize_t SizeInWords, const wchar_t *Src);
  292. int __cdecl sub_411850();
  293. int __cdecl sub_4118B0();
  294. int __cdecl sub_411910();
  295. int __cdecl sub_411970();
  296. int __cdecl sub_4119B0();
  297. int __thiscall sub_4126E0(void *this, unsigned int a1);
  298. int __thiscall sub_412770(void *this, unsigned int a1);
  299. int __thiscall sub_412810(void *this, int a1, int a2, int a3);
  300. int __cdecl sub_412880(int a1);
  301. int __thiscall sub_4128C0(void *this, int a2, int a3);
  302. int __thiscall sub_412930(void *this, int a2, int a3);
  303. int __cdecl sub_412A30(int a1, int a2, int a3);
  304. int __thiscall sub_412A90(void *this, int a2, int a3);
  305. int __thiscall sub_412BA0(void *this, int a2);
  306. signed int __stdcall sub_412C00(int a1);
  307. int __cdecl sub_412C40(int a1, int a2);
  308. signed int __stdcall sub_412C90(int a1);
  309. int __cdecl sub_412CD0(int a1);
  310. int __cdecl sub_412D10(int a1);
  311. int __thiscall sub_412D50(void *this, int a2);
  312. int __thiscall sub_412E00(void *this);
  313. int __thiscall sub_412E80(void *this);
  314. void *__thiscall sub_412EE0(void *this);
  315. void *__thiscall sub_412F20(void *this);
  316. int __thiscall sub_412F60(void *this, int a2);
  317. int __thiscall sub_413030(void *this);
  318. int __thiscall sub_413080(void *this);
  319. int __thiscall sub_4130E0(void *this);
  320. int __thiscall sub_413140(void *this);
  321. int __thiscall sub_4131A0(void *this);
  322. int __thiscall sub_4131F0(void *this, int a2, int a3);
  323. int __thiscall sub_413240(void *this);
  324. int __thiscall sub_4132A0(void *this);
  325. int __thiscall sub_413300(void *this);
  326. int __thiscall sub_413350(void *this);
  327. int __thiscall sub_4133A0(void *this);
  328. void *__thiscall sub_4133F0(void *this);
  329. int __cdecl sub_413430(int a1, int a2);
  330. signed int __cdecl sub_413470();
  331. bool __thiscall sub_4134A0(void *this, void *a2);
  332. int __thiscall sub_413510(void *this, int a2);
  333. int __thiscall sub_4135C0(void *this, char a2);
  334. int __thiscall sub_413630(void *this, char a2);
  335. int __thiscall sub_4136A0(void *this, char a2);
  336. int __thiscall sub_413710(void *this, char a2);
  337. int __thiscall sub_413780(void *this);
  338. int __thiscall sub_413B10(int this, int a2);
  339. int __thiscall sub_413B90(void *this);
  340. int __thiscall sub_413C70(void *this, int a2);
  341. int __thiscall sub_413CD0(void *this, unsigned int a2, char a3);
  342. int __thiscall sub_413DF0(int this, unsigned int a2);
  343. int __thiscall sub_413E70(int this);
  344. int __thiscall sub_413F00(int this);
  345. int __thiscall sub_413F90(void *this, char a2, size_t a3);
  346. int __thiscall sub_4140A0(void *this);
  347. int __thiscall sub_414100(void *this);
  348. int __thiscall sub_414160(void *this, int a2);
  349. int __thiscall sub_4141C0(void *this, unsigned int a2);
  350. int __thiscall sub_414220(void *this, int a2);
  351. int __thiscall sub_414280(void *this, int a2, unsigned int a3, unsigned int a4);
  352. int __thiscall sub_414390(void *this, char *a2);
  353. int __thiscall sub_414420(void *this, void *a2, size_t a3);
  354. int __cdecl sub_414520(int a1, int a2);
  355. int __thiscall sub_414560(int this);
  356. int __thiscall sub_4145A0(int this);
  357. int __thiscall sub_4145E0(void *this, void *Dst, const void *Src, size_t Size);
  358. int __thiscall sub_414660(void *this, void *a2, int a3);
  359. int __thiscall sub_4146C0(void *this, void *a2, int a3);
  360. int __thiscall sub_414720(void *this, void *a2, int a3);
  361. int __thiscall sub_414780(void *this, int a2, int a3);
  362. int __thiscall sub_414830(void *this, int a2, int a3);
  363. int __thiscall sub_414890(void *this, int a2, int a3);
  364. int __thiscall sub_414930(void *this, int a2, int a3);
  365. int __thiscall sub_4149B0(int this, unsigned int a2);
  366. int __thiscall sub_414A30(int this, unsigned int a2, unsigned int a3);
  367. _UNKNOWN *__cdecl sub_414B10();
  368. int __cdecl sub_414B50(const char *Str);
  369. int __thiscall sub_414BD0(void *this);
  370. signed int __cdecl sub_414C30();
  371. int __cdecl sub_414C70(int a1);
  372. int __thiscall sub_414CC0(void *this);
  373. int __thiscall sub_414D60(void *this, int a2, int a3);
  374. int __thiscall sub_414E20(void *this, int a2, int a3);
  375. int __thiscall sub_414EE0(void *this, int a2, int a3);
  376. int __thiscall sub_414FA0(void *this, void *Dst, const void *Src, size_t Size);
  377. int __cdecl sub_415030();
  378. int __cdecl sub_415070();
  379. int __cdecl sub_4150B0();
  380. int __thiscall sub_4150F0(int this);
  381. _UNKNOWN *__cdecl sub_415130();
  382. int __thiscall sub_415170(void *this);
  383. int __thiscall sub_4151B0(void *this);
  384. int __cdecl sub_415270();
  385. signed int __cdecl sub_415320();
  386. // _onexit_t __usercall sub_415400<eax>(int a1<eax>, _onexit_t Ptr);
  387. int __cdecl sub_4154D8();
  388. signed int __cdecl sub_415540(int (__cdecl *a1)());
  389. int __fastcall sub_4156F0(int a1, int a2);
  390. // int __usercall sub_415760<eax>(char a1<zf>, int result<eax>);
  391. int __thiscall sub_415790(void *this, char a2);
  392. void __cdecl sub_4157B0();
  393. int __cdecl sub_4157F0();
  394. int __thiscall sub_415850(void *this, char a2);
  395. int __cdecl sub_4158E0();
  396. int __cdecl sub_415990();
  397. unsigned __int32 __cdecl sub_415A00();
  398. // signed int __usercall sub_415A10<eax>(int a1<eax>);
  399. signed int __cdecl sub_415CE0();
  400. signed int __cdecl start_0();
  401. int __cdecl sub_415DC0(int a1, int a2, int a3, int a4);
  402. // int __usercall sub_415DF0<eax>(int a1<eax>, int a2);
  403. // int __usercall sub_415EB0<eax>(int a1<eax>, int a2, int a3, int a4, int a5);
  404. int __cdecl sub_415F90(int a1, int a2, int a3);
  405. int __cdecl sub_416170(int a1, int a2);
  406. int __cdecl sub_4161E0(int a1, const void *a2);
  407. int __cdecl sub_416320(int a1, int a2, int a3, unsigned int a4);
  408. unsigned int __cdecl sub_4163B0(const char *a1);
  409. int __cdecl sub_4163D0(int, int, int, LPCSTR lpMultiByteStr); // idb
  410. int __cdecl sub_416770(int a1);
  411. // int __usercall sub_4167D0<eax>(int a1<ebx>, int a2<edi>, int a3<esi>, char a4);
  412. // int __usercall sub_416930<eax>(int a1<ebx>, int a2<edi>, int a3<esi>, int a4);
  413. int __cdecl sub_416BB0();
  414. int __cdecl sub_416BC0();
  415. int __cdecl sub_416C30(int a1);
  416. int __cdecl sub_416CA0(int a1, int a2, int a3, void (__thiscall *a4)(_DWORD));
  417. // int __usercall sub_416D1C<eax>(int a1<ebp>);
  418. int __cdecl sub_416D80(int a1);
  419. // int __userpurge sub_416DC0<eax>(int a1<eax>, int a2, int a3, int a4, void (__thiscall *a5)(_DWORD));
  420. int __stdcall sub_416E80(int a1);
  421. int __cdecl sub_416F00();
  422. int __cdecl sub_416F30();
  423. int __cdecl sub_416F50(int a1, unsigned int a2);
  424. // int __usercall sub_416FE0<eax>(int a1<eax>, int a2);
  425. int __cdecl sub_417160(int a1);
  426. int __cdecl sub_4171F0();
  427. int (*__cdecl sub_417320())(void);
  428. int __cdecl sub_417390(int a1, int a2, int a3, int a4, int a5, int a6);
  429. int __cdecl sub_4173C0();
  430. int __cdecl sub_417420();
  431. int __cdecl sub_4175B0();
  432. int __cdecl sub_417870(const wchar_t *FullPath, wchar_t *PathResult, size_t SIZE);
  433. // void *__usercall sub_417980<eax>(int a1<edi>, int a2, int a3, char a4, int a5, LPWSTR lpFilename, DWORD nSize);
  434. // int __usercall sub_418F60<eax>(int a1<ebp>);
  435. // int __usercall sub_418FA0<eax>(int a1<ebp>);
  436. // int __usercall sub_418FE0<eax>(int a1<ebp>);
  437. // int __usercall sub_419010<eax>(int a1<ebp>);
  438. int __cdecl sub_41A070();
  439. int __cdecl sub_41A0C0();
  440. int __cdecl sub_41A110();
  441. // PVOID __stdcall DecodePointer(PVOID Ptr);
  442. // BOOL __stdcall IsDebuggerPresent();
  443. // void __stdcall RaiseException(DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, const ULONG_PTR *lpArguments);
  444. // DWORD __stdcall GetLastError();
  445. // FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
  446. // HMODULE __stdcall LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
  447. // int __stdcall MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);
  448. // int __stdcall WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cbMultiByte, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar);
  449. // HMODULE __stdcall GetModuleHandleW(LPCWSTR lpModuleName);
  450. // DWORD __stdcall GetModuleFileNameW(HMODULE hModule, LPWSTR lpFilename, DWORD nSize);
  451. // BOOL __stdcall FreeLibrary(HMODULE hLibModule);
  452. // SIZE_T __stdcall VirtualQuery(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength);
  453. // HANDLE __stdcall GetProcessHeap();
  454. // BOOL __stdcall HeapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem);
  455. // LPVOID __stdcall HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes);
  456. // void __stdcall GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime);
  457. // DWORD __stdcall GetCurrentThreadId();
  458. // DWORD __stdcall GetCurrentProcessId();
  459. // BOOL __stdcall QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);
  460. // PVOID __stdcall EncodePointer(PVOID Ptr);
  461. // int __cdecl std::_Winerror_map(_DWORD); weak
  462. // int __cdecl std::_Syserror_map(_DWORD); weak
  463. // int __stdcall std::_Xout_of_range(_DWORD); weak
  464. // int __stdcall std::_Xlength_error(_DWORD); weak
  465. // int std::_Xbad_alloc(void); weak
  466. // int __thiscall std::_Container_base12::_Orphan_all(_DWORD); weak
  467. // int __thiscall std::_Container_base12::__Container_base12(_DWORD); weak
  468. // int __thiscall std::_Container_base12::_Container_base12(_DWORD); weak
  469. // int __cdecl std::_Debug_message(_DWORD, _DWORD, _DWORD); weak
  470. // int __cdecl CrtSetCheckCount(_DWORD); weak
  471. // void __cdecl exit(int Code);
  472. // int __cdecl cexit(_DWORD); weak
  473. // int __cdecl configthreadlocale(_DWORD); weak
  474. // int __cdecl _setusermatherr(_DWORD); weak
  475. // int __cdecl _set_app_type(_DWORD); weak
  476. // int __cdecl _getmainargs(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); weak
  477. // _onexit_t __cdecl onexit(_onexit_t Func);
  478. // int __cdecl calloc_dbg(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); weak
  479. // int CrtDbgReportW(_DWORD, _DWORD, _DWORD, _DWORD, const char *, ...); weak
  480. // void *__cdecl memmove(void *Dst, const void *Src, size_t Size);
  481. // int printf(const char *Format, ...);
  482.  
  483.  
  484. //----- (00411850) --------------------------------------------------------
  485. int __cdecl sub_411850()
  486. {
  487. int v0; // ecx@1
  488. char v2; // [sp+Ch] [bp-C0h]@1
  489.  
  490. memset(&v2, -858993460, 0xC0u);
  491. sub_411384(&unk_41F324);
  492. sub_4110EB(sub_41A070);
  493. return sub_4112D5(v0);
  494. }
  495. // 4110EB: using guessed type _DWORD __cdecl sub_4110EB(_DWORD);
  496. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  497. // 411384: using guessed type int __thiscall sub_411384(_DWORD);
  498.  
  499. //----- (004118B0) --------------------------------------------------------
  500. int __cdecl sub_4118B0()
  501. {
  502. int v0; // ecx@1
  503. char v2; // [sp+Ch] [bp-C0h]@1
  504.  
  505. memset(&v2, -858993460, 0xC0u);
  506. sub_4110DC(&unk_41F328);
  507. sub_4110EB(sub_41A0C0);
  508. return sub_4112D5(v0);
  509. }
  510. // 4110DC: using guessed type int __thiscall sub_4110DC(_DWORD);
  511. // 4110EB: using guessed type _DWORD __cdecl sub_4110EB(_DWORD);
  512. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  513.  
  514. //----- (00411910) --------------------------------------------------------
  515. int __cdecl sub_411910()
  516. {
  517. int v0; // ecx@1
  518. char v2; // [sp+Ch] [bp-C0h]@1
  519.  
  520. memset(&v2, -858993460, 0xC0u);
  521. sub_411055(&unk_41F32C);
  522. sub_4110EB(sub_41A110);
  523. return sub_4112D5(v0);
  524. }
  525. // 411055: using guessed type int __thiscall sub_411055(_DWORD);
  526. // 4110EB: using guessed type _DWORD __cdecl sub_4110EB(_DWORD);
  527. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  528.  
  529. //----- (00411970) --------------------------------------------------------
  530. int __cdecl sub_411970()
  531. {
  532. return 0;
  533. }
  534.  
  535. //----- (004119B0) --------------------------------------------------------
  536. int __cdecl sub_4119B0()
  537. {
  538. return 0;
  539. }
  540.  
  541. //----- (004126E0) --------------------------------------------------------
  542. int __thiscall sub_4126E0(void *this, unsigned int a1)
  543. {
  544. char v3; // [sp+Ch] [bp-CCh]@1
  545. void *v4; // [sp+D0h] [bp-8h]@1
  546.  
  547. memset(&v3, -858993460, 0xCCu);
  548. v4 = 0;
  549. if ( a1 )
  550. {
  551. if ( a1 > 0xFFFFFFFF || (v4 = operator new(a1)) == 0 )
  552. {
  553. std::_Xbad_alloc();
  554. sub_4112D5(this);
  555. }
  556. }
  557. return sub_4112D5(this);
  558. }
  559. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  560. // 4200A0: using guessed type int std___Xbad_alloc(void);
  561.  
  562. //----- (00412770) --------------------------------------------------------
  563. int __thiscall sub_412770(void *this, unsigned int a1)
  564. {
  565. char v3; // [sp+Ch] [bp-CCh]@1
  566. void *v4; // [sp+D0h] [bp-8h]@1
  567.  
  568. memset(&v3, -858993460, 0xCCu);
  569. v4 = 0;
  570. if ( a1 )
  571. {
  572. if ( a1 > 0x1FFFFFFF || (v4 = operator new(8 * a1)) == 0 )
  573. {
  574. std::_Xbad_alloc();
  575. sub_4112D5(this);
  576. }
  577. }
  578. return sub_4112D5(this);
  579. }
  580. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  581. // 4200A0: using guessed type int std___Xbad_alloc(void);
  582.  
  583. //----- (00412810) --------------------------------------------------------
  584. int __thiscall sub_412810(void *this, int a1, int a2, int a3)
  585. {
  586. char v5; // [sp+Ch] [bp-C0h]@1
  587.  
  588. memset(&v5, -858993460, 0xC0u);
  589. if ( !a1 )
  590. {
  591. std::_Debug_message(L"invalid null pointer", a2, a3);
  592. sub_4112D5(this);
  593. }
  594. return sub_4112D5(this);
  595. }
  596. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  597. // 41CB44: using guessed type wchar_t aInvalidNullPoi[21];
  598. // 4200B0: using guessed type int __cdecl std___Debug_message(_DWORD, _DWORD, _DWORD);
  599.  
  600. //----- (00412880) --------------------------------------------------------
  601. int __cdecl sub_412880(int a1)
  602. {
  603. return a1;
  604. }
  605.  
  606. //----- (004128C0) --------------------------------------------------------
  607. int __thiscall sub_4128C0(void *this, int a2, int a3)
  608. {
  609. int v3; // eax@1
  610. int v4; // ecx@1
  611. char v6; // [sp+Ch] [bp-CCh]@1
  612. void *v7; // [sp+D0h] [bp-8h]@1
  613.  
  614. memset(&v6, -858993460, 0xCCu);
  615. v7 = this;
  616. v3 = sub_41119A(a3);
  617. sub_4111D6(v7, a2, v3);
  618. return sub_4112D5(v4);
  619. }
  620. // 41119A: using guessed type _DWORD __cdecl sub_41119A(_DWORD);
  621. // 4111D6: using guessed type _DWORD __cdecl sub_4111D6(_DWORD, _DWORD, _DWORD);
  622. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  623.  
  624. //----- (00412930) --------------------------------------------------------
  625. int __thiscall sub_412930(void *this, int a2, int a3)
  626. {
  627. int v3; // eax@2
  628. unsigned int v5; // [sp-4h] [bp-104h]@1
  629. int v6; // [sp+Ch] [bp-F4h]@1
  630. int v7; // [sp+20h] [bp-E0h]@1
  631. void *v8; // [sp+ECh] [bp-14h]@1
  632. int v9; // [sp+FCh] [bp-4h]@1
  633. int v10; // [sp+100h] [bp+0h]@1
  634.  
  635. memset(&v6, -858993460, 0xE8u);
  636. v5 = (unsigned int)&v10 ^ __security_cookie;
  637. v8 = this;
  638. v7 = sub_411046(4, a2);
  639. v9 = 0;
  640. if ( v7 )
  641. {
  642. v3 = sub_41119A(a3);
  643. *(_DWORD *)v7 = *(_DWORD *)v3;
  644. v6 = v7;
  645. }
  646. else
  647. {
  648. v6 = 0;
  649. }
  650. return sub_4112D5(v5);
  651. }
  652. // 411046: using guessed type _DWORD __cdecl sub_411046(_DWORD, _DWORD);
  653. // 41119A: using guessed type _DWORD __cdecl sub_41119A(_DWORD);
  654. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  655. // 41F004: using guessed type int __security_cookie;
  656.  
  657. //----- (00412A30) --------------------------------------------------------
  658. int __cdecl sub_412A30(int a1, int a2, int a3)
  659. {
  660. int v3; // eax@1
  661. int v4; // ecx@1
  662. char v6; // [sp+Ch] [bp-C0h]@1
  663.  
  664. memset(&v6, -858993460, 0xC0u);
  665. v3 = sub_41119A(a3);
  666. sub_41102D(a2, v3);
  667. return sub_4112D5(v4);
  668. }
  669. // 41102D: using guessed type _DWORD __stdcall sub_41102D(_DWORD, _DWORD);
  670. // 41119A: using guessed type _DWORD __cdecl sub_41119A(_DWORD);
  671. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  672.  
  673. //----- (00412A90) --------------------------------------------------------
  674. int __thiscall sub_412A90(void *this, int a2, int a3)
  675. {
  676. int v3; // eax@2
  677. int v4; // edx@2
  678. int v5; // eax@2
  679. int v6; // ecx@2
  680. unsigned int v8; // [sp-4h] [bp-104h]@1
  681. int v9; // [sp+Ch] [bp-F4h]@1
  682. int v10; // [sp+20h] [bp-E0h]@1
  683. void *v11; // [sp+ECh] [bp-14h]@1
  684. int v12; // [sp+FCh] [bp-4h]@1
  685. int v13; // [sp+100h] [bp+0h]@1
  686.  
  687. memset(&v9, -858993460, 0xE8u);
  688. v8 = (unsigned int)&v13 ^ __security_cookie;
  689. v11 = this;
  690. v10 = sub_411046(8, a2);
  691. v12 = 0;
  692. if ( v10 )
  693. {
  694. v3 = sub_4111D1(a3);
  695. v4 = *(_DWORD *)v3;
  696. v5 = *(_DWORD *)(v3 + 4);
  697. v6 = v10;
  698. *(_DWORD *)v10 = v4;
  699. *(_DWORD *)(v6 + 4) = v5;
  700. v9 = v10;
  701. }
  702. else
  703. {
  704. v9 = 0;
  705. }
  706. return sub_4112D5(v8);
  707. }
  708. // 411046: using guessed type _DWORD __cdecl sub_411046(_DWORD, _DWORD);
  709. // 4111D1: using guessed type _DWORD __cdecl sub_4111D1(_DWORD);
  710. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  711. // 41F004: using guessed type int __security_cookie;
  712.  
  713. //----- (00412BA0) --------------------------------------------------------
  714. int __thiscall sub_412BA0(void *this, int a2)
  715. {
  716. int v2; // ecx@1
  717. char v4; // [sp+Ch] [bp-CCh]@1
  718.  
  719. memset(&v4, -858993460, 0xCCu);
  720. sub_411302(this, a2);
  721. return sub_4112D5(v2);
  722. }
  723. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  724. // 411302: using guessed type _DWORD __cdecl sub_411302(_DWORD, _DWORD);
  725.  
  726. //----- (00412C00) --------------------------------------------------------
  727. signed int __stdcall sub_412C00(int a1)
  728. {
  729. return -858993460;
  730. }
  731.  
  732. //----- (00412C40) --------------------------------------------------------
  733. int __cdecl sub_412C40(int a1, int a2)
  734. {
  735. int v2; // ecx@1
  736. char v4; // [sp+Ch] [bp-C0h]@1
  737.  
  738. memset(&v4, -858993460, 0xC0u);
  739. sub_411226(a2);
  740. return sub_4112D5(v2);
  741. }
  742. // 411226: using guessed type _DWORD __stdcall sub_411226(_DWORD);
  743. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  744.  
  745. //----- (00412C90) --------------------------------------------------------
  746. signed int __stdcall sub_412C90(int a1)
  747. {
  748. return -858993460;
  749. }
  750.  
  751. //----- (00412CD0) --------------------------------------------------------
  752. int __cdecl sub_412CD0(int a1)
  753. {
  754. return a1;
  755. }
  756.  
  757. //----- (00412D10) --------------------------------------------------------
  758. int __cdecl sub_412D10(int a1)
  759. {
  760. return a1;
  761. }
  762.  
  763. //----- (00412D50) --------------------------------------------------------
  764. int __thiscall sub_412D50(void *this, int a2)
  765. {
  766. unsigned int v2; // ST00_4@1
  767. char v4; // [sp+Ch] [bp-D8h]@1
  768. void *v5; // [sp+D0h] [bp-14h]@1
  769. int v6; // [sp+E0h] [bp-4h]@1
  770. int v7; // [sp+E4h] [bp+0h]@1
  771.  
  772. memset(&v4, -858993460, 0xCCu);
  773. v2 = (unsigned int)&v7 ^ __security_cookie;
  774. v5 = this;
  775. sub_411343();
  776. v6 = 0;
  777. sub_4110CD();
  778. return sub_4112D5(v2);
  779. }
  780. // 4110CD: using guessed type int sub_4110CD(void);
  781. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  782. // 411343: using guessed type int sub_411343(void);
  783. // 41F004: using guessed type int __security_cookie;
  784.  
  785. //----- (00412E00) --------------------------------------------------------
  786. int __thiscall sub_412E00(void *this)
  787. {
  788. int v1; // ecx@1
  789. int v2; // ecx@1
  790. char v4; // [sp+Ch] [bp-CCh]@1
  791. void *v5; // [sp+D0h] [bp-8h]@1
  792.  
  793. memset(&v4, -858993460, 0xCCu);
  794. v5 = this;
  795. std::_Container_base12::_Container_base12(this);
  796. sub_4112D5(v1);
  797. *((_DWORD *)v5 + 5) = 0;
  798. *((_DWORD *)v5 + 6) = 0;
  799. return sub_4112D5(v2);
  800. }
  801. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  802. // 4200AC: using guessed type int __thiscall std___Container_base12___Container_base12(_DWORD);
  803.  
  804. //----- (00412E80) --------------------------------------------------------
  805. int __thiscall sub_412E80(void *this)
  806. {
  807. int v1; // ecx@1
  808. char v3; // [sp+Ch] [bp-CCh]@1
  809.  
  810. memset(&v3, -858993460, 0xCCu);
  811. sub_4113DE(this);
  812. return sub_4112D5(v1);
  813. }
  814. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  815. // 4113DE: using guessed type int __thiscall sub_4113DE(_DWORD);
  816.  
  817. //----- (00412EE0) --------------------------------------------------------
  818. void *__thiscall sub_412EE0(void *this)
  819. {
  820. return this;
  821. }
  822.  
  823. //----- (00412F20) --------------------------------------------------------
  824. void *__thiscall sub_412F20(void *this)
  825. {
  826. return this;
  827. }
  828.  
  829. //----- (00412F60) --------------------------------------------------------
  830. int __thiscall sub_412F60(void *this, int a2)
  831. {
  832. unsigned int v2; // ST08_4@1
  833. int v3; // eax@1
  834. char v5; // [sp+Ch] [bp-E4h]@1
  835. char v6; // [sp+13h] [bp-DDh]@1
  836. void *v7; // [sp+DCh] [bp-14h]@1
  837. int v8; // [sp+ECh] [bp-4h]@1
  838. int v9; // [sp+F0h] [bp+0h]@1
  839.  
  840. memset(&v5, -858993460, 0xD8u);
  841. v2 = (unsigned int)&v9 ^ __security_cookie;
  842. v7 = this;
  843. v3 = sub_4113DE(&v6);
  844. sub_4111C7(v3);
  845. v8 = 0;
  846. sub_4112F3(0, 0);
  847. sub_41100F(a2);
  848. return sub_4112D5(v2);
  849. }
  850. // 41100F: using guessed type _DWORD __stdcall sub_41100F(_DWORD);
  851. // 4111C7: using guessed type _DWORD __stdcall sub_4111C7(_DWORD);
  852. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  853. // 4112F3: using guessed type _DWORD __stdcall sub_4112F3(char, _DWORD);
  854. // 4113DE: using guessed type int __thiscall sub_4113DE(_DWORD);
  855. // 41F004: using guessed type int __security_cookie;
  856.  
  857. //----- (00413030) --------------------------------------------------------
  858. int __thiscall sub_413030(void *this)
  859. {
  860. void *v2; // [sp+D0h] [bp-8h]@1
  861.  
  862. v2 = this;
  863. *(_DWORD *)this = 0;
  864. *((_DWORD *)v2 + 1) = 0;
  865. return (int)v2;
  866. }
  867.  
  868. //----- (00413080) --------------------------------------------------------
  869. int __thiscall sub_413080(void *this)
  870. {
  871. int v1; // ecx@1
  872. char v3; // [sp+Ch] [bp-CCh]@1
  873. void *v4; // [sp+D0h] [bp-8h]@1
  874.  
  875. memset(&v3, -858993460, 0xCCu);
  876. v4 = this;
  877. sub_41120D(this);
  878. *(_DWORD *)v4 = off_41C9B0;
  879. return sub_4112D5(v1);
  880. }
  881. // 41120D: using guessed type int __thiscall sub_41120D(_DWORD);
  882. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  883. // 41C9B0: using guessed type int (__stdcall *off_41C9B0[6])();
  884.  
  885. //----- (004130E0) --------------------------------------------------------
  886. int __thiscall sub_4130E0(void *this)
  887. {
  888. int v1; // ecx@1
  889. char v3; // [sp+Ch] [bp-CCh]@1
  890. void *v4; // [sp+D0h] [bp-8h]@1
  891.  
  892. memset(&v3, -858993460, 0xCCu);
  893. v4 = this;
  894. sub_411384(this);
  895. *(_DWORD *)v4 = off_41C9F0;
  896. return sub_4112D5(v1);
  897. }
  898. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  899. // 411384: using guessed type int __thiscall sub_411384(_DWORD);
  900. // 41C9F0: using guessed type int (__stdcall *off_41C9F0[6])();
  901.  
  902. //----- (00413140) --------------------------------------------------------
  903. int __thiscall sub_413140(void *this)
  904. {
  905. int v1; // ecx@1
  906. char v3; // [sp+Ch] [bp-CCh]@1
  907. void *v4; // [sp+D0h] [bp-8h]@1
  908.  
  909. memset(&v3, -858993460, 0xCCu);
  910. v4 = this;
  911. sub_411384(this);
  912. *(_DWORD *)v4 = off_41CA3C;
  913. return sub_4112D5(v1);
  914. }
  915. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  916. // 411384: using guessed type int __thiscall sub_411384(_DWORD);
  917. // 41CA3C: using guessed type int (__stdcall *off_41CA3C[6])();
  918.  
  919. //----- (004131A0) --------------------------------------------------------
  920. int __thiscall sub_4131A0(void *this)
  921. {
  922. void *v2; // [sp+D0h] [bp-8h]@1
  923.  
  924. v2 = this;
  925. *(_DWORD *)this = off_41C98C;
  926. return (int)v2;
  927. }
  928. // 41C98C: using guessed type int (__stdcall *off_41C98C[6])();
  929.  
  930. //----- (004131F0) --------------------------------------------------------
  931. int __thiscall sub_4131F0(void *this, int a2, int a3)
  932. {
  933. void *v4; // [sp+D0h] [bp-8h]@1
  934.  
  935. v4 = this;
  936. *(_DWORD *)this = a2;
  937. *((_DWORD *)v4 + 1) = a3;
  938. return (int)v4;
  939. }
  940.  
  941. //----- (00413240) --------------------------------------------------------
  942. int __thiscall sub_413240(void *this)
  943. {
  944. int v1; // ecx@1
  945. char v3; // [sp+Ch] [bp-CCh]@1
  946. void *v4; // [sp+D0h] [bp-8h]@1
  947.  
  948. memset(&v3, -858993460, 0xCCu);
  949. v4 = this;
  950. sub_4111F4(this);
  951. sub_411069(v4);
  952. return sub_4112D5(v1);
  953. }
  954. // 411069: using guessed type int __thiscall sub_411069(_DWORD);
  955. // 4111F4: using guessed type int __thiscall sub_4111F4(_DWORD);
  956. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  957.  
  958. //----- (004132A0) --------------------------------------------------------
  959. int __thiscall sub_4132A0(void *this)
  960. {
  961. int v1; // ecx@1
  962. int v2; // ecx@1
  963. char v4; // [sp+Ch] [bp-CCh]@1
  964. void *v5; // [sp+D0h] [bp-8h]@1
  965.  
  966. memset(&v4, -858993460, 0xCCu);
  967. v5 = this;
  968. std::_Container_base12::__Container_base12(this);
  969. sub_4112D5(v1);
  970. return sub_4112D5(v2);
  971. }
  972. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  973. // 4200A8: using guessed type int __thiscall std___Container_base12____Container_base12(_DWORD);
  974.  
  975. //----- (00413300) --------------------------------------------------------
  976. int __thiscall sub_413300(void *this)
  977. {
  978. int v1; // ecx@1
  979. char v3; // [sp+Ch] [bp-CCh]@1
  980.  
  981. memset(&v3, -858993460, 0xCCu);
  982. sub_411357(this);
  983. return sub_4112D5(v1);
  984. }
  985. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  986. // 411357: using guessed type int __thiscall sub_411357(_DWORD);
  987.  
  988. //----- (00413350) --------------------------------------------------------
  989. int __thiscall sub_413350(void *this)
  990. {
  991. int v1; // ecx@1
  992. char v3; // [sp+Ch] [bp-CCh]@1
  993.  
  994. memset(&v3, -858993460, 0xCCu);
  995. sub_41125D(this);
  996. return sub_4112D5(v1);
  997. }
  998. // 41125D: using guessed type int __thiscall sub_41125D(_DWORD);
  999. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1000.  
  1001. //----- (004133A0) --------------------------------------------------------
  1002. int __thiscall sub_4133A0(void *this)
  1003. {
  1004. int v1; // ecx@1
  1005. char v3; // [sp+Ch] [bp-CCh]@1
  1006.  
  1007. memset(&v3, -858993460, 0xCCu);
  1008. sub_41125D(this);
  1009. return sub_4112D5(v1);
  1010. }
  1011. // 41125D: using guessed type int __thiscall sub_41125D(_DWORD);
  1012. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1013.  
  1014. //----- (004133F0) --------------------------------------------------------
  1015. void *__thiscall sub_4133F0(void *this)
  1016. {
  1017. void *result; // eax@1
  1018.  
  1019. result = this;
  1020. *(_DWORD *)this = off_41C98C;
  1021. return result;
  1022. }
  1023. // 41C98C: using guessed type int (__stdcall *off_41C98C[6])();
  1024.  
  1025. //----- (00413430) --------------------------------------------------------
  1026. int __cdecl sub_413430(int a1, int a2)
  1027. {
  1028. return a2;
  1029. }
  1030.  
  1031. //----- (00413470) --------------------------------------------------------
  1032. signed int __cdecl sub_413470()
  1033. {
  1034. return -858993460;
  1035. }
  1036.  
  1037. //----- (004134A0) --------------------------------------------------------
  1038. bool __thiscall sub_4134A0(void *this, void *a2)
  1039. {
  1040. int v3; // [sp+Ch] [bp-D0h]@1
  1041. void *v4; // [sp+D4h] [bp-8h]@1
  1042.  
  1043. memset(&v3, -858993460, 0xD0u);
  1044. v4 = this;
  1045. return this == a2;
  1046. }
  1047.  
  1048. //----- (00413510) --------------------------------------------------------
  1049. int __thiscall sub_413510(void *this, int a2)
  1050. {
  1051. int v2; // ST00_4@1
  1052. int v3; // ecx@1
  1053. int v4; // esi@2
  1054. int v6; // [sp+Ch] [bp-D0h]@1
  1055. int v7; // [sp+D4h] [bp-8h]@1
  1056.  
  1057. memset(&v6, -858993460, 0xD0u);
  1058. v7 = (int)this;
  1059. v2 = sub_411280(a2);
  1060. sub_411280(v7);
  1061. v6 = (unsigned __int8)sub_4110AA(v2) && (v4 = sub_411181(v7), v4 == sub_411181(a2));
  1062. return sub_4112D5(v3);
  1063. }
  1064. // 4110AA: using guessed type _DWORD __stdcall sub_4110AA(_DWORD);
  1065. // 411181: using guessed type int __thiscall sub_411181(_DWORD);
  1066. // 411280: using guessed type int __thiscall sub_411280(_DWORD);
  1067. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1068.  
  1069. //----- (004135C0) --------------------------------------------------------
  1070. int __thiscall sub_4135C0(void *this, char a2)
  1071. {
  1072. int v2; // ecx@1
  1073. char v4; // [sp+Ch] [bp-CCh]@1
  1074. void *v5; // [sp+D0h] [bp-8h]@1
  1075.  
  1076. memset(&v4, -858993460, 0xCCu);
  1077. v5 = this;
  1078. sub_41125D(this);
  1079. if ( a2 & 1 )
  1080. operator delete(v5);
  1081. return sub_4112D5(v2);
  1082. }
  1083. // 41125D: using guessed type int __thiscall sub_41125D(_DWORD);
  1084. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1085.  
  1086. //----- (00413630) --------------------------------------------------------
  1087. int __thiscall sub_413630(void *this, char a2)
  1088. {
  1089. int v2; // ecx@1
  1090. char v4; // [sp+Ch] [bp-CCh]@1
  1091. void *v5; // [sp+D0h] [bp-8h]@1
  1092.  
  1093. memset(&v4, -858993460, 0xCCu);
  1094. v5 = this;
  1095. sub_4113CF(this);
  1096. if ( a2 & 1 )
  1097. operator delete(v5);
  1098. return sub_4112D5(v2);
  1099. }
  1100. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1101. // 4113CF: using guessed type int __thiscall sub_4113CF(_DWORD);
  1102.  
  1103. //----- (004136A0) --------------------------------------------------------
  1104. int __thiscall sub_4136A0(void *this, char a2)
  1105. {
  1106. int v2; // ecx@1
  1107. char v4; // [sp+Ch] [bp-CCh]@1
  1108. void *v5; // [sp+D0h] [bp-8h]@1
  1109.  
  1110. memset(&v4, -858993460, 0xCCu);
  1111. v5 = this;
  1112. sub_411168(this);
  1113. if ( a2 & 1 )
  1114. operator delete(v5);
  1115. return sub_4112D5(v2);
  1116. }
  1117. // 411168: using guessed type int __thiscall sub_411168(_DWORD);
  1118. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1119.  
  1120. //----- (00413710) --------------------------------------------------------
  1121. int __thiscall sub_413710(void *this, char a2)
  1122. {
  1123. int v2; // ecx@1
  1124. char v4; // [sp+Ch] [bp-CCh]@1
  1125. void *v5; // [sp+D0h] [bp-8h]@1
  1126.  
  1127. memset(&v4, -858993460, 0xCCu);
  1128. v5 = this;
  1129. sub_411357(this);
  1130. if ( a2 & 1 )
  1131. operator delete(v5);
  1132. return sub_4112D5(v2);
  1133. }
  1134. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1135. // 411357: using guessed type int __thiscall sub_411357(_DWORD);
  1136.  
  1137. //----- (00413780) --------------------------------------------------------
  1138. int __thiscall sub_413780(void *this)
  1139. {
  1140. int v1; // eax@1
  1141. int v2; // ecx@1
  1142. char v4; // [sp+Ch] [bp-E8h]@1
  1143. char v5; // [sp+10h] [bp-E4h]@1
  1144. char v6; // [sp+E3h] [bp-11h]@1
  1145. void *v7; // [sp+ECh] [bp-8h]@1
  1146. int v8; // [sp+F4h] [bp+0h]@1
  1147.  
  1148. memset(&v4, -858993460, 0xE8u);
  1149. v7 = this;
  1150. sub_41137F(&v6);
  1151. *(_DWORD *)v7 = sub_41128A(1);
  1152. v1 = sub_4111E0(&v5);
  1153. sub_411050(*(_DWORD *)v7, v1);
  1154. **(_DWORD **)v7 = v7;
  1155. sub_411113(&v8, &dword_413804);
  1156. return sub_4112D5(v2);
  1157. }
  1158. // 411050: using guessed type _DWORD __stdcall sub_411050(_DWORD, _DWORD);
  1159. // 411113: using guessed type int __fastcall sub_411113(_DWORD, _DWORD);
  1160. // 4111E0: using guessed type int __thiscall sub_4111E0(_DWORD);
  1161. // 41128A: using guessed type _DWORD __stdcall sub_41128A(_DWORD);
  1162. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1163. // 41137F: using guessed type int __thiscall sub_41137F(_DWORD);
  1164. // 413804: using guessed type int dword_413804;
  1165.  
  1166. //----- (00413850) --------------------------------------------------------
  1167. #error "413A5A: positive sp value has been found (funcsize=130)"
  1168.  
  1169. //----- (00413B10) --------------------------------------------------------
  1170. int __thiscall sub_413B10(int this, int a2)
  1171. {
  1172. int v2; // eax@1
  1173. int v3; // ecx@1
  1174. char v5; // [sp+Ch] [bp-D8h]@1
  1175. char v6; // [sp+13h] [bp-D1h]@1
  1176. int v7; // [sp+DCh] [bp-8h]@1
  1177.  
  1178. memset(&v5, -858993460, 0xD8u);
  1179. v7 = this;
  1180. v6 = 0;
  1181. *(_DWORD *)(this + 20) = a2;
  1182. v2 = sub_411078(v7);
  1183. sub_41110E(a2 + v2, &v6);
  1184. return sub_4112D5(v3);
  1185. }
  1186. // 411078: using guessed type int __thiscall sub_411078(_DWORD);
  1187. // 41110E: using guessed type _DWORD __cdecl sub_41110E(_DWORD, _DWORD);
  1188. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1189.  
  1190. //----- (00413B90) --------------------------------------------------------
  1191. int __thiscall sub_413B90(void *this)
  1192. {
  1193. int v1; // ecx@1
  1194. int v2; // ecx@1
  1195. char v4; // [sp+Ch] [bp-D8h]@1
  1196. char v5; // [sp+D3h] [bp-11h]@1
  1197. void **v6; // [sp+DCh] [bp-8h]@1
  1198. int v7; // [sp+E4h] [bp+0h]@1
  1199.  
  1200. memset(&v4, -858993460, 0xD8u);
  1201. v6 = (void **)this;
  1202. sub_41137F(&v5);
  1203. std::_Container_base12::_Orphan_all(v6);
  1204. sub_4112D5(v1);
  1205. sub_411136(*v6);
  1206. sub_411064(*v6, 1);
  1207. *v6 = 0;
  1208. sub_411113(&v7, &dword_413C1C);
  1209. return sub_4112D5(v2);
  1210. }
  1211. // 411064: using guessed type _DWORD __stdcall sub_411064(void *, _DWORD);
  1212. // 411113: using guessed type int __fastcall sub_411113(_DWORD, _DWORD);
  1213. // 411136: using guessed type _DWORD __stdcall sub_411136(_DWORD);
  1214. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1215. // 41137F: using guessed type int __thiscall sub_41137F(_DWORD);
  1216. // 413C1C: using guessed type int dword_413C1C;
  1217. // 4200A4: using guessed type int __thiscall std___Container_base12___Orphan_all(_DWORD);
  1218.  
  1219. //----- (00413C70) --------------------------------------------------------
  1220. int __thiscall sub_413C70(void *this, int a2)
  1221. {
  1222. int v2; // ecx@1
  1223. char v4; // [sp+Ch] [bp-CCh]@1
  1224. void *v5; // [sp+D0h] [bp-8h]@1
  1225.  
  1226. memset(&v4, -858993460, 0xCCu);
  1227. v5 = this;
  1228. sub_411195(a2);
  1229. return sub_4112D5(v2);
  1230. }
  1231. // 411195: using guessed type int __thiscall sub_411195(_DWORD);
  1232. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1233.  
  1234. //----- (00413CD0) --------------------------------------------------------
  1235. int __thiscall sub_413CD0(void *this, unsigned int a2, char a3)
  1236. {
  1237. unsigned int v3; // ecx@3
  1238. unsigned int v5; // [sp+Ch] [bp-D0h]@1
  1239. void *v6; // [sp+D4h] [bp-8h]@1
  1240.  
  1241. memset(&v5, -858993460, 0xD0u);
  1242. v6 = this;
  1243. if ( sub_41130C(this) < a2 )
  1244. sub_4110D2(v6);
  1245. v3 = *((_DWORD *)v6 + 6);
  1246. if ( v3 >= a2 )
  1247. {
  1248. if ( a3 && a2 < 0x10 )
  1249. {
  1250. if ( a2 >= *((_DWORD *)v6 + 5) )
  1251. v5 = *((_DWORD *)v6 + 5);
  1252. else
  1253. v5 = a2;
  1254. sub_4112F3(1, v5);
  1255. }
  1256. else
  1257. {
  1258. if ( !a2 )
  1259. sub_41126C(0);
  1260. }
  1261. }
  1262. else
  1263. {
  1264. sub_41105F(a2, *((_DWORD *)v6 + 5));
  1265. }
  1266. if ( a2 )
  1267. v5 = 1;
  1268. else
  1269. v5 = 0;
  1270. return sub_4112D5(v3);
  1271. }
  1272. // 41105F: using guessed type _DWORD __stdcall sub_41105F(_DWORD, _DWORD);
  1273. // 4110D2: using guessed type int __thiscall sub_4110D2(_DWORD);
  1274. // 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
  1275. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1276. // 4112F3: using guessed type _DWORD __stdcall sub_4112F3(char, _DWORD);
  1277. // 41130C: using guessed type int __thiscall sub_41130C(_DWORD);
  1278.  
  1279. //----- (00413DF0) --------------------------------------------------------
  1280. int __thiscall sub_413DF0(int this, unsigned int a2)
  1281. {
  1282. char v3; // [sp+Ch] [bp-CCh]@1
  1283. int v4; // [sp+D0h] [bp-8h]@1
  1284.  
  1285. memset(&v3, -858993460, 0xCCu);
  1286. v4 = this;
  1287. if ( a2 && a2 >= sub_411078(v4) )
  1288. {
  1289. sub_411078(v4);
  1290. this = v4;
  1291. }
  1292. return sub_4112D5(this);
  1293. }
  1294. // 411078: using guessed type int __thiscall sub_411078(_DWORD);
  1295. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1296.  
  1297. //----- (00413E70) --------------------------------------------------------
  1298. int __thiscall sub_413E70(int this)
  1299. {
  1300. int v2; // [sp+Ch] [bp-D0h]@1
  1301. int v3; // [sp+D4h] [bp-8h]@1
  1302.  
  1303. memset(&v2, -858993460, 0xD0u);
  1304. v3 = this;
  1305. if ( *(_DWORD *)(this + 24) < 0x10u )
  1306. v2 = v3 + 4;
  1307. else
  1308. v2 = sub_411127(*(_DWORD *)(v3 + 4));
  1309. return sub_4112D5(this);
  1310. }
  1311. // 411127: using guessed type _DWORD __cdecl sub_411127(_DWORD);
  1312. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1313.  
  1314. //----- (00413F00) --------------------------------------------------------
  1315. int __thiscall sub_413F00(int this)
  1316. {
  1317. int v2; // [sp+Ch] [bp-D0h]@1
  1318. int v3; // [sp+D4h] [bp-8h]@1
  1319.  
  1320. memset(&v2, -858993460, 0xD0u);
  1321. v3 = this;
  1322. if ( *(_DWORD *)(this + 24) < 0x10u )
  1323. v2 = v3 + 4;
  1324. else
  1325. v2 = sub_411127(*(_DWORD *)(v3 + 4));
  1326. return sub_4112D5(this);
  1327. }
  1328. // 411127: using guessed type _DWORD __cdecl sub_411127(_DWORD);
  1329. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1330.  
  1331. //----- (00413F90) --------------------------------------------------------
  1332. int __thiscall sub_413F90(void *this, char a2, size_t a3)
  1333. {
  1334. int v3; // ST08_4@3
  1335. void *v4; // eax@4
  1336. int v5; // ST08_4@5
  1337. int v6; // ST04_4@5
  1338. int v7; // ecx@6
  1339. char v9; // [sp+Ch] [bp-F0h]@1
  1340. char v10; // [sp+13h] [bp-E9h]@3
  1341. char v11; // [sp+1Fh] [bp-DDh]@5
  1342. int v12; // [sp+E8h] [bp-14h]@3
  1343. void *v13; // [sp+F4h] [bp-8h]@1
  1344.  
  1345. memset(&v9, -858993460, 0xF0u);
  1346. v13 = this;
  1347. if ( a2 && *((_DWORD *)v13 + 6) >= 0x10u )
  1348. {
  1349. v12 = *((_DWORD *)v13 + 1);
  1350. v3 = (int)((char *)v13 + 4);
  1351. sub_411339(&v10);
  1352. sub_411311(v3);
  1353. if ( a3 )
  1354. {
  1355. v4 = (void *)sub_411127(v12);
  1356. sub_4111EA((char *)v13 + 4, v4, a3);
  1357. }
  1358. v5 = *((_DWORD *)v13 + 6) + 1;
  1359. v6 = v12;
  1360. sub_411339(&v11);
  1361. sub_411348(v6, v5);
  1362. }
  1363. *((_DWORD *)v13 + 6) = 15;
  1364. sub_41126C(a3);
  1365. return sub_4112D5(v7);
  1366. }
  1367. // 411127: using guessed type _DWORD __cdecl sub_411127(_DWORD);
  1368. // 4111EA: using guessed type _DWORD __cdecl sub_4111EA(void *Dst, void *Src, size_t Size);
  1369. // 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
  1370. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1371. // 411311: using guessed type _DWORD __stdcall sub_411311(_DWORD);
  1372. // 411339: using guessed type _DWORD __stdcall sub_411339(_DWORD);
  1373. // 411348: using guessed type _DWORD __stdcall sub_411348(_DWORD, _DWORD);
  1374.  
  1375. //----- (004140A0) --------------------------------------------------------
  1376. int __thiscall sub_4140A0(void *this)
  1377. {
  1378. int v1; // ecx@1
  1379. int v2; // ecx@1
  1380. char v4; // [sp+Ch] [bp-CCh]@1
  1381. void *v5; // [sp+D0h] [bp-8h]@1
  1382.  
  1383. memset(&v4, -858993460, 0xCCu);
  1384. v5 = this;
  1385. std::_Xlength_error("string too long");
  1386. sub_4112D5(v1);
  1387. return sub_4112D5(v2);
  1388. }
  1389. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1390. // 42009C: using guessed type int __stdcall std___Xlength_error(_DWORD);
  1391.  
  1392. //----- (00414100) --------------------------------------------------------
  1393. int __thiscall sub_414100(void *this)
  1394. {
  1395. int v1; // ecx@1
  1396. int v2; // ecx@1
  1397. char v4; // [sp+Ch] [bp-CCh]@1
  1398. void *v5; // [sp+D0h] [bp-8h]@1
  1399.  
  1400. memset(&v4, -858993460, 0xCCu);
  1401. v5 = this;
  1402. std::_Xout_of_range("invalid string position");
  1403. sub_4112D5(v1);
  1404. return sub_4112D5(v2);
  1405. }
  1406. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1407. // 420098: using guessed type int __stdcall std___Xout_of_range(_DWORD);
  1408.  
  1409. //----- (00414160) --------------------------------------------------------
  1410. int __thiscall sub_414160(void *this, int a2)
  1411. {
  1412. int v2; // ecx@1
  1413. char v4; // [sp+Ch] [bp-CCh]@1
  1414. void *v5; // [sp+D0h] [bp-8h]@1
  1415.  
  1416. memset(&v4, -858993460, 0xCCu);
  1417. v5 = this;
  1418. sub_411096(a2);
  1419. return sub_4112D5(v2);
  1420. }
  1421. // 411096: using guessed type _DWORD __stdcall sub_411096(_DWORD);
  1422. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1423.  
  1424. //----- (004141C0) --------------------------------------------------------
  1425. int __thiscall sub_4141C0(void *this, unsigned int a2)
  1426. {
  1427. int v2; // ecx@1
  1428. char v4; // [sp+Ch] [bp-CCh]@1
  1429. void *v5; // [sp+D0h] [bp-8h]@1
  1430.  
  1431. memset(&v4, -858993460, 0xCCu);
  1432. v5 = this;
  1433. sub_4112A3(a2);
  1434. return sub_4112D5(v2);
  1435. }
  1436. // 4112A3: using guessed type _DWORD __cdecl sub_4112A3(unsigned int);
  1437. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1438.  
  1439. //----- (00414220) --------------------------------------------------------
  1440. int __thiscall sub_414220(void *this, int a2)
  1441. {
  1442. int v2; // ecx@1
  1443. char v4; // [sp+Ch] [bp-CCh]@1
  1444. void *v5; // [sp+D0h] [bp-8h]@1
  1445.  
  1446. memset(&v4, -858993460, 0xCCu);
  1447. v5 = this;
  1448. sub_411249(a2);
  1449. return sub_4112D5(v2);
  1450. }
  1451. // 411249: using guessed type _DWORD __cdecl sub_411249(_DWORD);
  1452. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1453.  
  1454. //----- (00414280) --------------------------------------------------------
  1455. int __thiscall sub_414280(void *this, int a2, unsigned int a3, unsigned int a4)
  1456. {
  1457. int v4; // ecx@6
  1458. unsigned __int8 v5; // al@7
  1459. size_t v6; // ST08_4@8
  1460. void *v7; // ST04_4@8
  1461. void *v8; // eax@8
  1462. char v10; // [sp+Ch] [bp-D8h]@1
  1463. size_t v11; // [sp+D0h] [bp-14h]@3
  1464. int v12; // [sp+DCh] [bp-8h]@1
  1465.  
  1466. memset(&v10, -858993460, 0xD8u);
  1467. v12 = (int)this;
  1468. if ( sub_41131B(a2) < a3 )
  1469. sub_411203(v12);
  1470. v11 = sub_41131B(a2) - a3;
  1471. if ( a4 < v11 )
  1472. v11 = a4;
  1473. if ( v12 == a2 )
  1474. {
  1475. sub_41132A(v11 + a3);
  1476. sub_41117C(0, a3);
  1477. }
  1478. else
  1479. {
  1480. v5 = sub_4111F9(v11, 0);
  1481. v4 = v5;
  1482. if ( v5 )
  1483. {
  1484. v6 = v11;
  1485. v7 = (void *)(a3 + sub_41113B(a2));
  1486. v8 = (void *)sub_411078(v12);
  1487. sub_4111EA(v8, v7, v6);
  1488. sub_41126C(v11);
  1489. }
  1490. }
  1491. return sub_4112D5(v4);
  1492. }
  1493. // 411078: using guessed type int __thiscall sub_411078(_DWORD);
  1494. // 41113B: using guessed type int __thiscall sub_41113B(_DWORD);
  1495. // 41117C: using guessed type _DWORD __stdcall sub_41117C(_DWORD, _DWORD);
  1496. // 4111EA: using guessed type _DWORD __cdecl sub_4111EA(void *Dst, void *Src, size_t Size);
  1497. // 4111F9: using guessed type _DWORD __stdcall sub_4111F9(_DWORD, char);
  1498. // 411203: using guessed type int __thiscall sub_411203(_DWORD);
  1499. // 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
  1500. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1501. // 41131B: using guessed type int __thiscall sub_41131B(_DWORD);
  1502. // 41132A: using guessed type _DWORD __stdcall sub_41132A(_DWORD);
  1503.  
  1504. //----- (00414390) --------------------------------------------------------
  1505. int __thiscall sub_414390(void *this, char *a2)
  1506. {
  1507. int v2; // eax@1
  1508. int v3; // ecx@1
  1509. char v5; // [sp+Ch] [bp-CCh]@1
  1510. void *v6; // [sp+D0h] [bp-8h]@1
  1511.  
  1512. memset(&v5, -858993460, 0xCCu);
  1513. v6 = this;
  1514. sub_4112EE(a2, L"c:\\program files (x86)\\microsoft visual studio 12.0\\vc\\include\\xstring", 1168);
  1515. v2 = sub_411118(a2);
  1516. sub_4110E1(a2, v2);
  1517. return sub_4112D5(v3);
  1518. }
  1519. // 4110E1: using guessed type _DWORD __stdcall sub_4110E1(_DWORD, _DWORD);
  1520. // 411118: using guessed type _DWORD __cdecl sub_411118(char *Str);
  1521. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1522. // 4112EE: using guessed type _DWORD __cdecl sub_4112EE(_DWORD, _DWORD, _DWORD);
  1523. // 41CA68: using guessed type wchar_t aCProgramFilesX[71];
  1524.  
  1525. //----- (00414420) --------------------------------------------------------
  1526. int __thiscall sub_414420(void *this, void *a2, size_t a3)
  1527. {
  1528. int v3; // eax@4
  1529. int v4; // ecx@4
  1530. unsigned __int8 v5; // al@5
  1531. void *v6; // eax@6
  1532. char v8; // [sp+Ch] [bp-CCh]@1
  1533. int v9; // [sp+D0h] [bp-8h]@1
  1534.  
  1535. memset(&v8, -858993460, 0xCCu);
  1536. v9 = (int)this;
  1537. if ( a3 )
  1538. sub_4112EE(a2, L"c:\\program files (x86)\\microsoft visual studio 12.0\\vc\\include\\xstring", 1151);
  1539. if ( (unsigned __int8)sub_41100A(a2) )
  1540. {
  1541. v3 = sub_411078(v9);
  1542. sub_4112C1(v9, (char *)a2 - v3, a3);
  1543. }
  1544. else
  1545. {
  1546. v5 = sub_4111F9(a3, 0);
  1547. v4 = v5;
  1548. if ( v5 )
  1549. {
  1550. v6 = (void *)sub_411078(v9);
  1551. sub_4111EA(v6, a2, a3);
  1552. sub_41126C(a3);
  1553. }
  1554. }
  1555. return sub_4112D5(v4);
  1556. }
  1557. // 41100A: using guessed type _DWORD __stdcall sub_41100A(_DWORD);
  1558. // 411078: using guessed type int __thiscall sub_411078(_DWORD);
  1559. // 4111EA: using guessed type _DWORD __cdecl sub_4111EA(void *Dst, void *Src, size_t Size);
  1560. // 4111F9: using guessed type _DWORD __stdcall sub_4111F9(_DWORD, char);
  1561. // 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
  1562. // 4112C1: using guessed type _DWORD __stdcall sub_4112C1(_DWORD, _DWORD, _DWORD);
  1563. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1564. // 4112EE: using guessed type _DWORD __cdecl sub_4112EE(_DWORD, _DWORD, _DWORD);
  1565. // 41CA68: using guessed type wchar_t aCProgramFilesX[71];
  1566.  
  1567. //----- (00414520) --------------------------------------------------------
  1568. int __cdecl sub_414520(int a1, int a2)
  1569. {
  1570. int result; // eax@1
  1571. char v3; // [sp+Ch] [bp-C0h]@1
  1572.  
  1573. memset(&v3, -858993460, 0xC0u);
  1574. result = a1;
  1575. *(_BYTE *)a1 = *(_BYTE *)a2;
  1576. return result;
  1577. }
  1578.  
  1579. //----- (00414560) --------------------------------------------------------
  1580. int __thiscall sub_414560(int this)
  1581. {
  1582. char v2; // [sp+Ch] [bp-CCh]@1
  1583. int v3; // [sp+D0h] [bp-8h]@1
  1584.  
  1585. memset(&v2, -858993460, 0xCCu);
  1586. v3 = this;
  1587. return *(_DWORD *)(this + 4);
  1588. }
  1589.  
  1590. //----- (004145A0) --------------------------------------------------------
  1591. int __thiscall sub_4145A0(int this)
  1592. {
  1593. char v2; // [sp+Ch] [bp-CCh]@1
  1594. int v3; // [sp+D0h] [bp-8h]@1
  1595.  
  1596. memset(&v2, -858993460, 0xCCu);
  1597. v3 = this;
  1598. return *(_DWORD *)(this + 4);
  1599. }
  1600.  
  1601. //----- (004145E0) --------------------------------------------------------
  1602. int __thiscall sub_4145E0(void *this, void *Dst, const void *Src, size_t Size)
  1603. {
  1604. void *v5; // [sp+Ch] [bp-C4h]@1
  1605.  
  1606. memset(&v5, -858993460, 0xC4u);
  1607. if ( Size )
  1608. v5 = j_memcpy(Dst, Src, Size);
  1609. else
  1610. v5 = Dst;
  1611. return sub_4112D5(this);
  1612. }
  1613. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1614.  
  1615. //----- (00414660) --------------------------------------------------------
  1616. int __thiscall sub_414660(void *this, void *a2, int a3)
  1617. {
  1618. int v3; // ecx@1
  1619. char v5; // [sp+Ch] [bp-CCh]@1
  1620. void *v6; // [sp+D0h] [bp-8h]@1
  1621.  
  1622. memset(&v5, -858993460, 0xCCu);
  1623. v6 = this;
  1624. sub_4113FC(a2, a3);
  1625. return sub_4112D5(v3);
  1626. }
  1627. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1628. // 4113FC: using guessed type _DWORD __stdcall sub_4113FC(void *, _DWORD);
  1629.  
  1630. //----- (004146C0) --------------------------------------------------------
  1631. int __thiscall sub_4146C0(void *this, void *a2, int a3)
  1632. {
  1633. int v3; // ecx@1
  1634. char v5; // [sp+Ch] [bp-CCh]@1
  1635. void *v6; // [sp+D0h] [bp-8h]@1
  1636.  
  1637. memset(&v5, -858993460, 0xCCu);
  1638. v6 = this;
  1639. operator delete(a2);
  1640. return sub_4112D5(v3);
  1641. }
  1642. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1643.  
  1644. //----- (00414720) --------------------------------------------------------
  1645. int __thiscall sub_414720(void *this, void *a2, int a3)
  1646. {
  1647. int v3; // ecx@1
  1648. char v5; // [sp+Ch] [bp-CCh]@1
  1649. void *v6; // [sp+D0h] [bp-8h]@1
  1650.  
  1651. memset(&v5, -858993460, 0xCCu);
  1652. v6 = this;
  1653. operator delete(a2);
  1654. return sub_4112D5(v3);
  1655. }
  1656. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1657.  
  1658. //----- (00414780) --------------------------------------------------------
  1659. int __thiscall sub_414780(void *this, int a2, int a3)
  1660. {
  1661. int v3; // ecx@1
  1662. int v4; // eax@2
  1663. int v5; // ecx@2
  1664. int v6; // eax@3
  1665. char v8; // [sp+Ch] [bp-CCh]@1
  1666. void *v9; // [sp+D0h] [bp-8h]@1
  1667.  
  1668. memset(&v8, -858993460, 0xCCu);
  1669. v9 = this;
  1670. std::_Syserror_map(a3);
  1671. if ( sub_4112D5(v3) )
  1672. {
  1673. v4 = sub_4110AF();
  1674. sub_41118B(a3, v4);
  1675. }
  1676. else
  1677. {
  1678. v6 = sub_4110B9();
  1679. sub_41118B(a3, v6);
  1680. }
  1681. return sub_4112D5(v5);
  1682. }
  1683. // 4110AF: using guessed type int sub_4110AF(void);
  1684. // 4110B9: using guessed type int sub_4110B9(void);
  1685. // 41118B: using guessed type _DWORD __stdcall sub_41118B(_DWORD, _DWORD);
  1686. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1687. // 420094: using guessed type int __cdecl std___Syserror_map(_DWORD);
  1688.  
  1689. //----- (00414830) --------------------------------------------------------
  1690. int __thiscall sub_414830(void *this, int a2, int a3)
  1691. {
  1692. int v3; // ecx@1
  1693. char v5; // [sp+Ch] [bp-CCh]@1
  1694.  
  1695. memset(&v5, -858993460, 0xCCu);
  1696. sub_41118B(a3, this);
  1697. return sub_4112D5(v3);
  1698. }
  1699. // 41118B: using guessed type _DWORD __stdcall sub_41118B(_DWORD, _DWORD);
  1700. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1701.  
  1702. //----- (00414890) --------------------------------------------------------
  1703. int __thiscall sub_414890(void *this, int a2, int a3)
  1704. {
  1705. int v3; // eax@1
  1706. int v4; // ecx@1
  1707. int v6; // [sp+Ch] [bp-D0h]@1
  1708. void *v7; // [sp+D4h] [bp-8h]@1
  1709.  
  1710. memset(&v6, -858993460, 0xD0u);
  1711. v7 = this;
  1712. v3 = sub_4110FA(a2);
  1713. v6 = (unsigned __int8)sub_4110AA(v3) && sub_4112CB(a2) == a3;
  1714. return sub_4112D5(v4);
  1715. }
  1716. // 4110AA: using guessed type _DWORD __stdcall sub_4110AA(_DWORD);
  1717. // 4110FA: using guessed type int __thiscall sub_4110FA(_DWORD);
  1718. // 4112CB: using guessed type int __thiscall sub_4112CB(_DWORD);
  1719. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1720.  
  1721. //----- (00414930) --------------------------------------------------------
  1722. int __thiscall sub_414930(void *this, int a2, int a3)
  1723. {
  1724. int v3; // ecx@1
  1725. int v4; // ecx@1
  1726. int v6; // [sp-4h] [bp-ECh]@1
  1727. char v7; // [sp+Ch] [bp-DCh]@1
  1728. char v8; // [sp+10h] [bp-D8h]@1
  1729. void *v9; // [sp+E0h] [bp-8h]@1
  1730.  
  1731. memset(&v7, -858993460, 0xDCu);
  1732. v9 = this;
  1733. v6 = a3;
  1734. (*(void (__thiscall **)(void *, char *, int))(*(_DWORD *)v9 + 12))(v9, &v8, a2);
  1735. sub_4112D5(v3);
  1736. sub_4111FE(v6);
  1737. return sub_4112D5(v4);
  1738. }
  1739. // 4111FE: using guessed type _DWORD __stdcall sub_4111FE(_DWORD);
  1740. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1741.  
  1742. //----- (004149B0) --------------------------------------------------------
  1743. int __thiscall sub_4149B0(int this, unsigned int a2)
  1744. {
  1745. int v2; // ecx@3
  1746. char v4; // [sp+Ch] [bp-CCh]@1
  1747. int v5; // [sp+D0h] [bp-8h]@1
  1748.  
  1749. memset(&v4, -858993460, 0xCCu);
  1750. v5 = this;
  1751. if ( *(_DWORD *)(this + 20) < a2 )
  1752. sub_411203(v5);
  1753. sub_41126C(a2);
  1754. return sub_4112D5(v2);
  1755. }
  1756. // 411203: using guessed type int __thiscall sub_411203(_DWORD);
  1757. // 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
  1758. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1759.  
  1760. //----- (00414A30) --------------------------------------------------------
  1761. int __thiscall sub_414A30(int this, unsigned int a2, unsigned int a3)
  1762. {
  1763. int v3; // ecx@3
  1764. int v4; // eax@6
  1765. char v6; // [sp+Ch] [bp-E4h]@1
  1766. unsigned int v7; // [sp+D0h] [bp-20h]@6
  1767. unsigned int v8; // [sp+DCh] [bp-14h]@6
  1768. int v9; // [sp+E8h] [bp-8h]@1
  1769.  
  1770. memset(&v6, -858993460, 0xE4u);
  1771. v9 = this;
  1772. if ( *(_DWORD *)(this + 20) < a2 )
  1773. sub_411203(v9);
  1774. v3 = *(_DWORD *)(v9 + 20) - a2;
  1775. if ( v3 > a3 )
  1776. {
  1777. if ( a3 )
  1778. {
  1779. v4 = sub_411078(v9);
  1780. v8 = a2 + v4;
  1781. v7 = *(_DWORD *)(v9 + 20) - a3;
  1782. sub_411258((void *)(a2 + v4), (void *)(a3 + a2 + v4), v7 - a2);
  1783. sub_41126C(v7);
  1784. }
  1785. }
  1786. else
  1787. {
  1788. sub_41126C(a2);
  1789. }
  1790. return sub_4112D5(v3);
  1791. }
  1792. // 411078: using guessed type int __thiscall sub_411078(_DWORD);
  1793. // 411203: using guessed type int __thiscall sub_411203(_DWORD);
  1794. // 411258: using guessed type _DWORD __cdecl sub_411258(void *Dst, void *Src, size_t Size);
  1795. // 41126C: using guessed type _DWORD __stdcall sub_41126C(_DWORD);
  1796. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1797.  
  1798. //----- (00414B10) --------------------------------------------------------
  1799. _UNKNOWN *__cdecl sub_414B10()
  1800. {
  1801. return &unk_41F324;
  1802. }
  1803.  
  1804. //----- (00414B50) --------------------------------------------------------
  1805. int __cdecl sub_414B50(const char *Str)
  1806. {
  1807. int v1; // ecx@1
  1808. size_t v3; // [sp+Ch] [bp-C4h]@1
  1809.  
  1810. memset(&v3, -858993460, 0xC4u);
  1811. v1 = *Str;
  1812. if ( *Str )
  1813. v3 = j_strlen(Str);
  1814. else
  1815. v3 = 0;
  1816. return sub_4112D5(v1);
  1817. }
  1818. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1819.  
  1820. //----- (00414BD0) --------------------------------------------------------
  1821. int __thiscall sub_414BD0(void *this)
  1822. {
  1823. int v1; // ecx@1
  1824. char v3; // [sp+Ch] [bp-CCh]@1
  1825.  
  1826. memset(&v3, -858993460, 0xCCu);
  1827. sub_4113C5(this);
  1828. return sub_4112D5(v1);
  1829. }
  1830. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1831. // 4113C5: using guessed type _DWORD __cdecl sub_4113C5(_DWORD);
  1832.  
  1833. //----- (00414C30) --------------------------------------------------------
  1834. signed int __cdecl sub_414C30()
  1835. {
  1836. return -1;
  1837. }
  1838.  
  1839. //----- (00414C70) --------------------------------------------------------
  1840. int __cdecl sub_414C70(int a1)
  1841. {
  1842. int v1; // ecx@1
  1843. char v3; // [sp+Ch] [bp-C0h]@1
  1844.  
  1845. memset(&v3, -858993460, 0xC0u);
  1846. sub_41136B(a1);
  1847. return sub_4112D5(v1);
  1848. }
  1849. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1850. // 41136B: using guessed type int __thiscall sub_41136B(_DWORD);
  1851.  
  1852. //----- (00414CC0) --------------------------------------------------------
  1853. int __thiscall sub_414CC0(void *this)
  1854. {
  1855. int v1; // eax@1
  1856. int v2; // ecx@1
  1857. unsigned int v4; // [sp+Ch] [bp-E8h]@1
  1858. char v5; // [sp+17h] [bp-DDh]@1
  1859. unsigned int v6; // [sp+E0h] [bp-14h]@1
  1860. void *v7; // [sp+ECh] [bp-8h]@1
  1861.  
  1862. memset(&v4, -858993460, 0xE8u);
  1863. v7 = this;
  1864. v1 = sub_411339(&v5);
  1865. v6 = sub_4113E8(v1);
  1866. if ( v6 > 1 )
  1867. v4 = v6 - 1;
  1868. else
  1869. v4 = 1;
  1870. return sub_4112D5(v2);
  1871. }
  1872. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1873. // 411339: using guessed type _DWORD __stdcall sub_411339(_DWORD);
  1874. // 4113E8: using guessed type int __thiscall sub_4113E8(_DWORD);
  1875.  
  1876. //----- (00414D60) --------------------------------------------------------
  1877. int __thiscall sub_414D60(void *this, int a2, int a3)
  1878. {
  1879. int v3; // ecx@1
  1880. int v4; // ecx@4
  1881. int v6; // [sp+Ch] [bp-E8h]@1
  1882. int v7; // [sp+14h] [bp-E0h]@1
  1883. int v8; // [sp+E0h] [bp-14h]@1
  1884. void *v9; // [sp+ECh] [bp-8h]@1
  1885.  
  1886. memset(&v6, -858993460, 0xE8u);
  1887. v9 = this;
  1888. v7 = 0;
  1889. std::_Syserror_map(a3);
  1890. v8 = sub_4112D5(v3);
  1891. if ( v8 )
  1892. v6 = v8;
  1893. else
  1894. v6 = (int)"unknown error";
  1895. sub_411393(v6);
  1896. return sub_4112D5(v4);
  1897. }
  1898. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1899. // 411393: using guessed type _DWORD __stdcall sub_411393(_DWORD);
  1900. // 420094: using guessed type int __cdecl std___Syserror_map(_DWORD);
  1901.  
  1902. //----- (00414E20) --------------------------------------------------------
  1903. int __thiscall sub_414E20(void *this, int a2, int a3)
  1904. {
  1905. int v3; // ecx@2
  1906. char v5; // [sp+Ch] [bp-D8h]@1
  1907. int v6; // [sp+10h] [bp-D4h]@1
  1908. void *v7; // [sp+DCh] [bp-8h]@1
  1909.  
  1910. memset(&v5, -858993460, 0xD8u);
  1911. v7 = this;
  1912. v6 = 0;
  1913. if ( a3 == 1 )
  1914. {
  1915. sub_411393("iostream stream error");
  1916. v6 |= 1u;
  1917. }
  1918. else
  1919. {
  1920. sub_411334(a2, a3);
  1921. v6 |= 1u;
  1922. }
  1923. return sub_4112D5(v3);
  1924. }
  1925. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1926. // 411334: using guessed type _DWORD __stdcall sub_411334(_DWORD, _DWORD);
  1927. // 411393: using guessed type _DWORD __stdcall sub_411393(_DWORD);
  1928.  
  1929. //----- (00414EE0) --------------------------------------------------------
  1930. int __thiscall sub_414EE0(void *this, int a2, int a3)
  1931. {
  1932. int v3; // ecx@1
  1933. int v4; // ecx@4
  1934. int v6; // [sp+Ch] [bp-E8h]@1
  1935. int v7; // [sp+14h] [bp-E0h]@1
  1936. int v8; // [sp+E0h] [bp-14h]@1
  1937. void *v9; // [sp+ECh] [bp-8h]@1
  1938.  
  1939. memset(&v6, -858993460, 0xE8u);
  1940. v9 = this;
  1941. v7 = 0;
  1942. std::_Winerror_map(a3);
  1943. v8 = sub_4112D5(v3);
  1944. if ( v8 )
  1945. v6 = v8;
  1946. else
  1947. v6 = (int)"unknown error";
  1948. sub_411393(v6);
  1949. return sub_4112D5(v4);
  1950. }
  1951. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1952. // 411393: using guessed type _DWORD __stdcall sub_411393(_DWORD);
  1953. // 420090: using guessed type int __cdecl std___Winerror_map(_DWORD);
  1954.  
  1955. //----- (00414FA0) --------------------------------------------------------
  1956. int __thiscall sub_414FA0(void *this, void *Dst, const void *Src, size_t Size)
  1957. {
  1958. int v5; // [sp+Ch] [bp-C4h]@1
  1959.  
  1960. memset(&v5, -858993460, 0xC4u);
  1961. if ( Size )
  1962. {
  1963. memmove(Dst, Src, Size);
  1964. v5 = sub_4112D5(this);
  1965. }
  1966. else
  1967. {
  1968. v5 = (int)Dst;
  1969. }
  1970. return sub_4112D5(this);
  1971. }
  1972. // 4112D5: using guessed type int __thiscall sub_4112D5(_DWORD);
  1973.  
  1974. //----- (00415030) --------------------------------------------------------
  1975. int __cdecl sub_415030()
  1976. {
  1977. return (int)"generic";
  1978. }
  1979.  
  1980. //----- (00415070) --------------------------------------------------------
  1981. int __cdecl sub_415070()
  1982. {
  1983. return (int)"iostream";
  1984. }
  1985.  
  1986. //----- (004150B0) --------------------------------------------------------
  1987. int __cdecl sub_4150B0()
  1988. {
  1989. return (int)"system";
  1990. }
  1991.  
  1992. //----- (004150F0) --------------------------------------------------------
  1993. int __thiscall sub_4150F0(int this)
  1994. {
  1995. char v2; // [sp+Ch] [bp-CCh]@1
  1996. int v3; // [sp+D0h] [bp-8h]@1
  1997.  
  1998. memset(&v2, -858993460, 0xCCu);
  1999. v3 = this;
  2000. return *(_DWORD *)(this + 20);
  2001. }
  2002.  
  2003. //----- (00415130) --------------------------------------------------------
  2004. _UNKNOWN *__cdecl sub_415130()
  2005. {
  2006. return &unk_41F32C;
  2007. }
  2008.  
  2009. //----- (00415170) --------------------------------------------------------
  2010. int __this
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:7:21: fatal error: windows.h: No such file or directory
 #include <windows.h>
                     ^
compilation terminated.
stdout
Standard output is empty