From 2c0cb9bdfc6eeda93473d8b370d0c7cf4b6bd0e9 Mon Sep 17 00:00:00 2001 From: msojocs Date: Sat, 13 Jul 2024 21:49:54 +0800 Subject: [PATCH] feat: support for --wxs --- .mocharc.js | 3 +- .vscode/launch.json | 103 +- changelog.md | 6 + src/include/define.h | 2 +- src/include/json.h | 1 + src/include/night.h | 3 +- src/include/wxml.h | 17 +- src/module/wcc.cpp | 451 +- src/night/night.cpp | 37 + src/night/ns_compile_js.cpp | 24 +- src/night/ns_node.cpp | 12 +- src/night/ns_stream.cpp | 5 +- src/night/ns_token.cpp | 4 +- src/utils/json.cpp | 232 + src/wcc.cpp | 109 +- test/main.cpp | 919 ++ test/runner/module-windows.ts | 2 +- test/spec/wcc/module/module.spec.ts | 2 +- test/spec/wcc/wxs/sample1.json | 1 + test/spec/wcc/wxs/sample2.json | 1 + test/spec/wcc/wxs/sample3.json | 3 + test/spec/wcc/wxs/wxs.spec.ts | 93 + test/wcc.disassembly.cpp | 18547 +++++++++++++------------- 23 files changed, 10781 insertions(+), 9796 deletions(-) create mode 100644 test/main.cpp create mode 100644 test/spec/wcc/wxs/sample1.json create mode 100644 test/spec/wcc/wxs/sample2.json create mode 100644 test/spec/wcc/wxs/sample3.json create mode 100644 test/spec/wcc/wxs/wxs.spec.ts diff --git a/.mocharc.js b/.mocharc.js index effbc24..02b13d1 100644 --- a/.mocharc.js +++ b/.mocharc.js @@ -5,6 +5,7 @@ module.exports = { ], recursive: true, spec: "./test/spec/**/*.spec.ts", - // spec: "test/spec/wcsc/module/module.spec.ts", + // spec: 'test/spec/wcc/module/module.spec.ts', + // spec: "test/spec/wcc/wxs/wxs.spec.ts", timeout: 20000, } \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index 5efffa2..3f84b55 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,6 +5,105 @@ "version": "0.2.0", "configurations": [ + { + "name": "wcc wxs sample2", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/build/wcc", + "args": [ + "--wxs", + "${workspaceRoot}/test/spec/wcc/wxs/sample2.json" + ], + "stopAtEntry": false, + "cwd": "${workspaceRoot}/", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set Disassembly Flavor to Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ], + "sourceFileMap":{ + "${workspaceRoot}": { + "editorPath": "${workspaceRoot}", + "useForBreakpoints": true + } + } + }, + { + "name": "wcc wxs sample3", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/build/wcc", + "args": [ + "--wxs", + "${workspaceRoot}/test/spec/wcc/wxs/sample3.json" + ], + "stopAtEntry": false, + "cwd": "${workspaceRoot}/", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set Disassembly Flavor to Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ], + "sourceFileMap":{ + "${workspaceRoot}": { + "editorPath": "${workspaceRoot}", + "useForBreakpoints": true + } + } + }, + { + "name": "wcc wxs sample4", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/build/wcc", + "args": [ + "--wxs", + "${workspaceRoot}/test/spec/wcc/wxs/sample4.json" + ], + "stopAtEntry": false, + "cwd": "${workspaceRoot}/", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set Disassembly Flavor to Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ], + "sourceFileMap":{ + "${workspaceRoot}": { + "editorPath": "${workspaceRoot}", + "useForBreakpoints": true + } + } + }, { "name": "(gdb) Launch", "type": "cppdbg", @@ -12,10 +111,10 @@ "program": "${workspaceFolder}/build/wcc", "args": [ "\"--config-path\"", - "\"/home/msojocs/github/wx-compiler/test/spec/issue/102/case1.txt\"" + "\"${workspaceRoot}/test/spec/issue/102/case1.txt\"" ], "stopAtEntry": false, - "cwd": "/home/msojocs/github/wx-compiler/test/spec/issue/102/wxapp", + "cwd": "${workspaceRoot}/test/spec/issue/102/wxapp", "environment": [], "externalConsole": false, "MIMode": "gdb", diff --git a/changelog.md b/changelog.md index 8578aba..81b09bb 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,9 @@ +## 🌈 v0.1.0 / 2024-07-13 + +🚀Features + +- 编译器:支持 `--wxs` 参数 + ## 🌈 v0.0.9 / 2024-07-07 🚀Features diff --git a/src/include/define.h b/src/include/define.h index 3ebb8c1..c8be9ae 100644 --- a/src/include/define.h +++ b/src/include/define.h @@ -5,5 +5,5 @@ const char aIfThisThisGUnd[] = "if(this&&this.__g===undefined)Object.definePrope const char aGwnConsoleWarn[] = "$gwn=console.warn;\n$gwl=console.log;\nfunction $gwh()\n{\nfunction x()\n{\n}\nx.prototype = \n{\nhn: function( obj, all )\n{\nif( typeof(obj) == 'object' )\n{\nvar cnt=0;\nvar any1=false,any2=false;\nfor(var x in obj)\n{\nany1=any1|x==='__value__';\nany2=any2|x==='__wxspec__';\ncnt++;\nif(cnt>2)break;\n}\nreturn cnt == 2 && any1 && any2 && ( all || obj.__wxspec__ !== 'm' || this.hn(obj.__value__) === 'h' ) ? \"h\" : \"n\";\n}\nreturn \"n\";\n},\nnh: function( obj, special )\n{\nreturn { __value__: obj, __wxspec__: special ? special : true }\n},\nrv: function( obj )\n{\nreturn this.hn(obj,true)==='n'?obj:this.rv(obj.__value__);\n},\nhm: function( obj )\n{\nif( typeof(obj) == 'object' )\n{\nvar cnt=0;\nvar any1=false,any2=false;\nfor(var x in obj)\n{\nany1=any1|x==='__value__';\nany2=any2|x==='__wxspec__';\ncnt++;\nif(cnt>2)break;\n}\nreturn cnt == 2 && any1 && any2 && (obj.__wxspec__ === 'm' || this.hm(obj.__value__) );\n}\nreturn false;\n}\n}\nreturn new x;\n}\nwh=$gwh();\nfunction $gstack(s){\nvar tmp=s.split('\\n '+' '+' '+' ');\nfor(var i=0;i=':\ncase '<=':\ncase '>':\ncase '<':\ncase '<<':\ncase '>>':\n_a = rev( ops[1], e, s, g, o, _f );\n_b = rev( ops[2], e, s, g, o, _f );\n_c = should_pass_type_info && (wh.hn( _a ) === 'h' || wh.hn( _b ) === 'h');\nswitch( rop )\n{\ncase '+':\n_d = wh.rv( _a ) + wh.rv( _b );\nbreak;\ncase '*':\n_d = wh.rv( _a ) * wh.rv( _b );\nbreak;\ncase '/':\n_d = wh.rv( _a ) / wh.rv( _b );\nbreak;\ncase '%':\n_d = wh.rv( _a ) % wh.rv( _b );\nbreak;\ncase '|':\n_d = wh.rv( _a ) | wh.rv( _b );\nbreak;\ncase '^':\n_d = wh.rv( _a ) ^ wh.rv( _b );\nbreak;\ncase '&':\n_d = wh.rv( _a ) & wh.rv( _b );\nbreak;\ncase '===':\n_d = wh.rv( _a ) === wh.rv( _b );\nbreak;\ncase '==':\n_d = wh.rv( _a ) == wh.rv( _b );\nbreak;\ncase '!=':\n_d = wh.rv( _a ) != wh.rv( _b );\nbreak;\ncase '!==':\n_d = wh.rv( _a ) !== wh.rv( _b );\nbreak;\ncase '>=':\n_d = wh.rv( _a ) >= wh.rv( _b );\nbreak;\ncase '<=':\n_d = wh.rv( _a ) <= wh.rv( _b );\nbreak;\ncase '>':\n_d = wh.rv( _a ) > wh.rv( _b );\nbreak;\ncase '<':\n_d = wh.rv( _a ) < wh.rv( _b );\nbreak;\ncase '<<':\n_d = wh.rv( _a ) << wh.rv( _b );\nbreak;\ncase '>>':\n_d = wh.rv( _a ) >> wh.rv( _b );\nbreak;\ndefault:\nbreak;\n}\nreturn _c ? wh.nh( _d, \"c\" ) : _d;\nbreak;\ncase '-':\n_a = ops.length === 3 ? rev( ops[1], e, s, g, o, _f ) : 0;\n_b = ops.length === 3 ? rev( ops[2], e, s, g, o, _f ) : rev( ops[1], e, s, g, o, _f );\n_c = should_pass_type_info && (wh.hn( _a ) === 'h' || wh.hn( _b ) === 'h');\n_d = _c ? wh.rv( _a ) - wh.rv( _b ) : _a - _b;\nreturn _c ? wh.nh( _d, \"c\" ) : _d;\nbreak;\ncase '!':\n_a = rev( ops[1], e, s, g, o, _f );\n_c = should_pass_type_info && (wh.hn( _a ) == 'h');\n_d = !wh.rv(_a);\nreturn _c ? wh.nh( _d, \"c\" ) : _d;\ncase '~':\n_a = rev( ops[1], e, s, g, o, _f );\n_c = should_pass_type_info && (wh.hn( _a ) == 'h');\n_d = ~wh.rv(_a);\nreturn _c ? wh.nh( _d, \"c\" ) : _d;\ndefault:\n$gwn('unrecognized op' + rop );\n}\n}\nfunction rev( ops, e, s, g, o, newap )\n{\nvar op = ops[0];\nvar _f = false;\nif ( typeof newap !== \"undefined\" ) o.ap = newap;\nif( typeof(op)==='object' )\n{\nvar vop=op[0];\nvar _a, _aa, _b, _bb, _c, _d, _s, _e, _ta, _tb, _td;\nswitch(vop)\n{\ncase 2:\nreturn ArithmeticEv(ops,e,s,g,o);\nbreak;\ncase 4: \nreturn rev( ops[1], e, s, g, o, _f );\nbreak;\ncase 5: \nswitch( ops.length )\n{\ncase 2: \n_a = rev( ops[1],e,s,g,o,_f );\nreturn should_pass_type_info?[_a]:[wh.rv(_a)];\nreturn [_a];\nbreak;\ncase 1: \nreturn [];\nbreak;\ndefault:\n_a = rev( ops[1],e,s,g,o,_f );\n_b = rev( ops[2],e,s,g,o,_f );\n_a.push( \nshould_pass_type_info ?\n_b :\nwh.rv( _b )\n);\nreturn _a;\nbreak;\n}\nbreak;\ncase 6:\n_a = rev(ops[1],e,s,g,o);\nvar ap = o.ap;\n_ta = wh.hn(_a)==='h';\n_aa = _ta ? wh.rv(_a) : _a;\no.is_affected |= _ta;\nif( should_pass_type_info )\n{\nif( _aa===null || typeof(_aa) === 'undefined' )\n{\nreturn _ta ? wh.nh(undefined, 'e') : undefined;\n}\n_b = rev(ops[2],e,s,g,o,_f);\n_tb = wh.hn(_b) === 'h';\n_bb = _tb ? wh.rv(_b) : _b;\no.ap = ap;\no.is_affected |= _tb;\nif( _bb===null || typeof(_bb) === 'undefined' || \n_bb === \"__proto__\" || _bb === \"prototype\" || _bb === \"caller\" ) \n{\nreturn (_ta || _tb) ? wh.nh(undefined, 'e') : undefined;\n}\n_d = _aa[_bb];\nif ( typeof _d === 'function' && !ap ) _d = undefined;\n_td = wh.hn(_d)==='h';\no.is_affected |= _td;\nreturn (_ta || _tb) ? (_td ? _d : wh.nh(_d, 'e')) : _d;\n}\nelse\n{\nif( _aa===null || typeof(_aa) === 'undefined' )\n{\nreturn undefined;\n}\n_b = rev(ops[2],e,s,g,o,_f);\n_tb = wh.hn(_b) === 'h';\n_bb = _tb ? wh.rv(_b) : _b;\no.ap = ap;\no.is_affected |= _tb;\nif( _bb===null || typeof(_bb) === 'undefined' || \n_bb === \"__proto__\" || _bb === \"prototype\" || _bb === \"caller\" ) \n{\nreturn undefined;\n}\n_d = _aa[_bb];\nif ( typeof _d === 'function' && !ap ) _d = undefined;\n_td = wh.hn(_d)==='h';\no.is_affected |= _td;\nreturn _td ? wh.rv(_d) : _d;\n}\ncase 7: \nswitch(ops[1][0])\n{\ncase 11:\no.is_affected |= wh.hn(g)==='h';\nreturn g;\ncase 3:\n_s = wh.rv( s );\n_e = wh.rv( e );\n_b = ops[1][1];\nif (g && g.f && g.f.hasOwnProperty(_b) )\n{\n_a = g.f;\no.ap = true;\n}\nelse\n{\n_a = _s && _s.hasOwnProperty(_b) ? \ns : (_e && _e.hasOwnProperty(_b) ? e : undefined );\n}\nif( should_pass_type_info )\n{\nif( _a )\n{\n_ta = wh.hn(_a) === 'h';\n_aa = _ta ? wh.rv( _a ) : _a;\n_d = _aa[_b];\n_td = wh.hn(_d) === 'h';\no.is_affected |= _ta || _td;\n_d = _ta && !_td ? wh.nh(_d,'e') : _d;\nreturn _d;\n}\n}\nelse\n{\nif( _a )\n{\n_ta = wh.hn(_a) === 'h';\n_aa = _ta ? wh.rv( _a ) : _a;\n_d = _aa[_b];\n_td = wh.hn(_d) === 'h';\no.is_affected |= _ta || _td;\nreturn wh.rv(_d);\n}\n}\nreturn undefined;\n}\nbreak;\ncase 8: \n_a = {};\n_a[ops[1]] = rev(ops[2],e,s,g,o,_f);\nreturn _a;\nbreak;\ncase 9: \n_a = rev(ops[1],e,s,g,o,_f);\n_b = rev(ops[2],e,s,g,o,_f);\nfunction merge( _a, _b, _ow )\n{\nvar ka, _bbk;\n_ta = wh.hn(_a)==='h';\n_tb = wh.hn(_b)==='h';\n_aa = wh.rv(_a);\n_bb = wh.rv(_b);\nfor(var k in _bb)\n{\nif ( _ow || !_aa.hasOwnProperty(k) )\n{\n_aa[k] = should_pass_type_info ? (_tb ? wh.nh(_bb[k],'e') : _bb[k]) : wh.rv(_bb[k]);\n}\n}\nreturn _a;\n}\nvar _c = _a\nvar _ow = true\nif ( typeof(ops[1][0]) === \"object\" && ops[1][0][0] === 10 ) {\n_a = _b\n_b = _c\n_ow = false\n}\nif ( typeof(ops[1][0]) === \"object\" && ops[1][0][0] === 10 ) {\nvar _r = {}\nreturn merge( merge( _r, _a, _ow ), _b, _ow );\n}\nelse\nreturn merge( _a, _b, _ow );\nbreak;\ncase 10:\n_a = rev(ops[1],e,s,g,o,_f);\n_a = should_pass_type_info ? _a : wh.rv( _a );\nreturn _a ;\nbreak;\ncase 12:\nvar _r;\n_a = rev(ops[1],e,s,g,o);\nif ( !o.ap )\n{\nreturn should_pass_type_info && wh.hn(_a)==='h' ? wh.nh( _r, 'f' ) : _r;\n}\nvar ap = o.ap;\n_b = rev(ops[2],e,s,g,o,_f);\no.ap = ap;\n_ta = wh.hn(_a)==='h';\n_tb = _ca(_b);\n_aa = wh.rv(_a);\t\n_bb = wh.rv(_b); snap_bb=$gdc(_bb,\"nv_\");\ntry{\n_r = typeof _aa === \"function\" ? $gdc(_aa.apply(null, snap_bb)) : undefined;\n} catch (e){\ne.message = e.message.replace(/nv_/g,\"\");\ne.stack = e.stack.substring(0,e.stack.indexOf(\"\\n\", e.stack.lastIndexOf(\"at nv_\")));\ne.stack = e.stack.replace(/\\snv_/g,\" \"); \ne.stack = $gstack(e.stack);\t\nif(g.debugInfo)\n{\ne.stack += \"\\n \"+\" \"+\" \"+\" at \"+g.debugInfo[0]+\":\"+g.debugInfo[1]+\":\"+g.debugInfo[2];\nconsole.error(e);\n}\n_r = undefined;\n}\nreturn should_pass_type_info && (_tb || _ta) ? wh.nh( _r, 'f' ) : _r;\n}\n}\nelse\n{\nif( op === 3 || op === 1) return ops[1];\nelse if( op === 11 ) \n{\nvar _a='';\nfor( var i = 1 ; i < ops.length ; i++ )\n{\nvar xp = wh.rv(rev(ops[i],e,s,g,o,_f));\n_a += typeof(xp) === 'undefined' ? '' : xp;\n}\nreturn _a;\n}\n}\n}\nfunction wrapper( ops, e, s, g, o, newap )\n{\nif( ops[0] == '11182016' )\n{\ng.debugInfo = ops[2];\nreturn rev( ops[1], e, s, g, o, newap );\n}\nelse\n{\ng.debugInfo = null;\nreturn rev( ops, e, s, g, o, newap );\n}\n}\nreturn wrapper;\n}\ngra=$gwrt(true); \ngrb=$gwrt(false); \nfunction TestTest( expr, ops, e,s,g, expect_a, expect_b, expect_affected )\n{\n{\nvar o = {is_affected:false};\nvar a = gra( ops, e,s,g, o );\nif( JSON.stringify(a) != JSON.stringify( expect_a )\n|| o.is_affected != expect_affected )\n{\nconsole.warn( \"A. \" + expr + \" get result \" + JSON.stringify(a) + \", \" + o.is_affected + \", but \" + JSON.stringify( expect_a ) + \", \" + expect_affected + \" is expected\" );\n}\n}\n{\nvar o = {is_affected:false};\nvar a = grb( ops, e,s,g, o );\nif( JSON.stringify(a) != JSON.stringify( expect_b )\n|| o.is_affected != expect_affected )\n{\nconsole.warn( \"B. \" + expr + \" get result \" + JSON.stringify(a) + \", \" + o.is_affected + \", but \" + JSON.stringify( expect_b ) + \", \" + expect_affected + \" is expected\" );\n}\n}\n}\n"; // idb const char aVarNfInitFunct[] = "var nf_init=function(){\nif(typeof __WXML_GLOBAL__===\"undefined\"||undefined===__WXML_GLOBAL__.wxs_nf_init){\nnf_init_Object();nf_init_Function();nf_init_Array();nf_init_String();nf_init_Boolean();nf_init_Number();nf_init_Math();nf_init_Date();nf_init_RegExp();\n}\nif(typeof __WXML_GLOBAL__!==\"undefined\") __WXML_GLOBAL__.wxs_nf_init=true;\n};\nvar nf_init_Object=function(){\nObject.defineProperty(Object.prototype,\"nv_constructor\",{writable:true,value:\"Object\"})\nObject.defineProperty(Object.prototype,\"nv_toString\",{writable:true,value:function(){return \"[object Object]\"}})\n}\nvar nf_init_Function=function(){\nObject.defineProperty(Function.prototype,\"nv_constructor\",{writable:true,value:\"Function\"})\nObject.defineProperty(Function.prototype,\"nv_length\",{get:function(){return this.length;},set:function(){}});\nObject.defineProperty(Function.prototype,\"nv_toString\",{writable:true,value:function(){return \"[function Function]\"}})\n}\nvar nf_init_Array=function(){\nObject.defineProperty(Array.prototype,\"nv_toString\",{writable:true,value:function(){return this.nv_join();}})\nObject.defineProperty(Array.prototype,\"nv_join\",{writable:true,value:function(s){\ns=undefined==s?',':s;\nvar r=\"\";\nfor(var i=0;i const&); std::string EscapeToJsonString(std::string const&); +int GetJsonDict(std::string &a1, std::map& a2); #endif \ No newline at end of file diff --git a/src/include/night.h b/src/include/night.h index 9ef6da3..c941fbb 100644 --- a/src/include/night.h +++ b/src/include/night.h @@ -54,6 +54,7 @@ namespace night int compile_ns(std::string const&,std::string const&,std::string const&,uint,std::string&,bool); void compile_ns_with_sourcemap(std::string const&,std::string const&,std::string const&,std::string const&,uint,std::string&,std::string&); + int compile_ns_no_wrapper(std::string const& a1, std::string const& a2, uint a5, std::string& a6, bool a7); void readfile(char const*, std::string &); void writefile(char const*, std::string &); @@ -310,7 +311,7 @@ namespace night std::vector * offset_28 = nullptr; int offset_32 = 0; std::vector offset_36; - int offset_48; + int offset_48 = 1; NSCompileJs(/* args */); ~NSCompileJs(); std::string compile(night::ns_node *); diff --git a/src/include/wxml.h b/src/include/wxml.h index 88573a8..7e18734 100644 --- a/src/include/wxml.h +++ b/src/include/wxml.h @@ -1,10 +1,12 @@ #ifndef __WXML_H_ #define __WXML_H_ +#include "define.h" #include #include #include #include +#include #include #include #include @@ -711,6 +713,19 @@ namespace WXML } // namespace EXPRLib - + namespace GlassEaselWxs { + const std::string sWrapper = "function n(nv_require,nv_exports,nv_module){%s}const t={nv_exports:{}};n((function(n){n.startsWith(\"p_\")&&(n=\"/\"+n.slice(2)),n.endsWith(\".wxs\")&&(n=n.slice(0,n.length-4));const t=gdc(require(n),\"nv_\");return function(){return t}}),t.nv_exports,t),Object.assign(module,gdc(t,void 0));"; + const std::string sGenFuncDeepCopy = "var gdc=function(){var e=function(){return void 0!==this?this:\"undefined\"!=typeof globalThis?globalThis:\"undefine" + "d\"!=typeof self?self:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:{}}();return function(" + "n,t,o,i=e){if(null==n)return n;if(\"undefined\"!=typeof __wxCodeSpace__&&\"function\"==typeof __wxCodeSpace__.isWxsS" + "tateObject&&__wxCodeSpace__.isWxsStateObject(n))return n;if(\"string\"==typeof n||\"boolean\"==typeof n||\"number\"=" + "=typeof n)return n;if(Array.isArray(n)){const e=[];for(let i=0;i +#include #include #include -#include namespace wx_compiler { @@ -26,226 +28,261 @@ using std::vector; int compile(Isolate *isolate, WCCOptions &options, Local &result, std::string &errMsg) { - int mark = 0; - if (options.debug) { - mark |= 2u; - } - if (options.debugWXS) { - mark |= 4u; - } - std::map fileContentMap; - for (int i = 0; i < options.files.size(); i++) { - fileContentMap[options.files[i]] = options.contents[i]; - } - map> componentListMap; - - std::string xc_Or_completeCode_Param = options.wxmlCompileConfig; - if (!xc_Or_completeCode_Param.empty()) - { + try { + int mark = 0; + if (options.debug) { + mark |= 2u; + } + if (options.debugWXS) { + mark |= 4u; + } + std::map fileContentMap; + std::map wxsMap; + for (int i = 0; i < options.files.size(); i++) { + auto file = options.files[i]; + fileContentMap[file] = options.contents[i]; + if (file.find(".wxs") != std::string::npos) { + wxsMap[file] = options.contents[i]; + } + } + map> componentListMap; + + std::string xc_Or_completeCode_Param = options.wxmlCompileConfig; + if (!xc_Or_completeCode_Param.empty()) { string data; vector allComponentList; - data = getNextArg(xc_Or_completeCode_Param, options.wxmlCompileConfigSplit); + data = + getNextArg(xc_Or_completeCode_Param, options.wxmlCompileConfigSplit); unsigned long long count = strtoull(&data[0], 0, 10); - for (unsigned long long i = 0; i < count; i++) - { - vector componentList; - string arg1 = getNextArg(xc_Or_completeCode_Param, options.wxmlCompileConfigSplit); - data = getNextArg(xc_Or_completeCode_Param, options.wxmlCompileConfigSplit); - unsigned long long jCount = strtoull(&data[0], 0, 10); - for (unsigned long long i = 0; i < jCount; i++) - { - string componentName = getNextArg(xc_Or_completeCode_Param, options.wxmlCompileConfigSplit); - componentList.push_back(componentName); - auto it = std::find(allComponentList.begin(), allComponentList.end(), componentName); - if (it == allComponentList.end()) - { - allComponentList.push_back(componentName); - } - } - auto it = componentListMap.lower_bound(arg1); - if (it == componentListMap.end() || arg1 < it->first) - { - componentListMap.emplace(arg1, componentList); + for (unsigned long long i = 0; i < count; i++) { + vector componentList; + string arg1 = getNextArg(xc_Or_completeCode_Param, + options.wxmlCompileConfigSplit); + data = getNextArg(xc_Or_completeCode_Param, + options.wxmlCompileConfigSplit); + unsigned long long jCount = strtoull(&data[0], 0, 10); + for (unsigned long long i = 0; i < jCount; i++) { + string componentName = getNextArg(xc_Or_completeCode_Param, + options.wxmlCompileConfigSplit); + componentList.push_back(componentName); + auto it = std::find(allComponentList.begin(), allComponentList.end(), + componentName); + if (it == allComponentList.end()) { + allComponentList.push_back(componentName); } + } + auto it = componentListMap.lower_bound(arg1); + if (it == componentListMap.end() || arg1 < it->first) { + componentListMap.emplace(arg1, componentList); + } } componentListMap["ALL"] = allComponentList; - } + } - if (options.lazyload) { - // 懒加载 - std::vector splitedData; - split(splitedData, options.lazyloadConfig, options.wxmlCompileConfigSplit); - // 处理文件路径 - for (int i = 0; i < splitedData.size(); i++) { - string path = splitedData[i]; - if (path[0] == '.' && path[1] == '/') { - // 以"./"开头,去掉前两个字符 - splitedData[i] = path.substr(2); + if (wxsMap.size()) + { + std::string wxs; + + for (auto m=wxsMap.begin(); m != wxsMap.end(); m++) { + auto v152 = m->first; + auto v156 = m->second; + std::string v146; + if ( night::compile_ns_no_wrapper(v152, v156, 1, v146, 0) ) + { + errMsg = "Error: " + v146 + "\n"; + return -2; + } + auto v31 = snprintf(0, 0, WXML::GlassEaselWxs::sWrapper.c_str(), + v146.c_str()) + 1; char *v32 = (char *)operator new[](v31); + snprintf(v32, v31, WXML::GlassEaselWxs::sWrapper.c_str(), + v146.c_str()); wxsMap[v152] = v32; delete[] v32; + } + } + if (options.lazyload) { + + // 懒加载 + std::vector splitedData; + split(splitedData, options.lazyloadConfig, + options.wxmlCompileConfigSplit); + // 处理文件路径 + for (int i = 0; i < splitedData.size(); i++) { + string path = splitedData[i]; + if (path[0] == '.' && path[1] == '/') { + // 以"./"开头,去掉前两个字符 + splitedData[i] = path.substr(2); + } } - } - int compilerResult = 0; + int compilerResult = 0; - std::map outputContentMap; - map outputFuncMap; - map> dependencyListMap; - map mapData1; - const char off_5403C3[] = {'s', '\0', 'e', '\0'}; + std::map outputContentMap; + map outputFuncMap; + map> dependencyListMap; + map mapData1; + const char off_5403C3[] = {'s', '\0', 'e', '\0'}; - compilerResult = WXML::Compiler::CompileLazy( - fileContentMap, errMsg, outputContentMap, - outputFuncMap, // map - dependencyListMap, // std::map> - componentListMap, // componentListMap - splitedData, mapData1, - options.isCut, // isLLA, - options.genfuncname, mark, 10, &off_5403C3[2], off_5403C3, "gg", "e_", - "d_", "p_", "\0", "boxofchocolate", "$gdwx", "f_"); - if (outputContentMap.count("__COMMON__") == 0) { - string helperCode; - WXML::Compiler::WXMLHelperCode(helperCode); - string data = - "var __wxAppData=__wxAppData||{};var " - "__wxAppCode__=__wxAppCode__||{};var global=global||{};var " - "__WXML_GLOBAL__=" - "__WXML_GLOBAL__||{entrys:{},defines:{},modules:{},ops:[],wxs_nf_" - "init:undefined,total_ops:0};var Component=Comp" - "onent||function(){};var definePlugin=definePlugin||function(){};var " - "requirePlugin=requirePlugin||function(){};" - "var Behavior=Behavior||function(){};var " - "__vd_version_info__=__vd_version_info__||{};var " - "__GWX_GLOBAL__=__GWX_G" - "LOBAL__||{};var __globalThis=(typeof " - "__vd_version_info__!=='undefined'&&typeof " - "__vd_version_info__.globalThis!" - "=='undefined')?__vd_version_info__.globalThis:(typeof " - "window!=='undefined'?window:globalThis);"; - data = data + helperCode; - outputContentMap["__COMMON__"] = data; - } else { - string helperCode; - WXML::Compiler::WXMLHelperCode(helperCode); - string commonData = - "var __wxAppData=__wxAppData||{};var " - "__wxAppCode__=__wxAppCode__||{};var global=global||{};var " - "__WXML_GLOBAL__=" - "__WXML_GLOBAL__||{entrys:{},defines:{},modules:{},ops:[],wxs_nf_" - "init:undefined,total_ops:0};var Component=Comp" - "onent||function(){};var definePlugin=definePlugin||function(){};var " - "requirePlugin=requirePlugin||function(){};" - "var Behavior=Behavior||function(){};var " - "__vd_version_info__=__vd_version_info__||{};var " - "__GWX_GLOBAL__=__GWX_G" - "LOBAL__||{};var __globalThis=(typeof " - "__vd_version_info__!=='undefined'&&typeof " - "__vd_version_info__.globalThis!" - "=='undefined')?__vd_version_info__.globalThis:(typeof " - "window!=='undefined'?window:globalThis);"; - commonData = commonData + helperCode; - commonData = commonData.append(outputContentMap["__COMMON__"]); + compilerResult = WXML::Compiler::CompileLazy( + fileContentMap, errMsg, outputContentMap, + outputFuncMap, // map + dependencyListMap, // std::map> + componentListMap, // componentListMap + splitedData, mapData1, + options.isCut, // isLLA, + options.genfuncname, mark, 10, &off_5403C3[2], off_5403C3, "gg", "e_", + "d_", "p_", "\0", "boxofchocolate", "$gdwx", "f_"); + if (outputContentMap.count("__COMMON__") == 0) { + string helperCode; + WXML::Compiler::WXMLHelperCode(helperCode); + string data = + "var __wxAppData=__wxAppData||{};var " + "__wxAppCode__=__wxAppCode__||{};var global=global||{};var " + "__WXML_GLOBAL__=" + "__WXML_GLOBAL__||{entrys:{},defines:{},modules:{},ops:[],wxs_nf_" + "init:undefined,total_ops:0};var Component=Comp" + "onent||function(){};var " + "definePlugin=definePlugin||function(){};var " + "requirePlugin=requirePlugin||function(){};" + "var Behavior=Behavior||function(){};var " + "__vd_version_info__=__vd_version_info__||{};var " + "__GWX_GLOBAL__=__GWX_G" + "LOBAL__||{};var __globalThis=(typeof " + "__vd_version_info__!=='undefined'&&typeof " + "__vd_version_info__.globalThis!" + "=='undefined')?__vd_version_info__.globalThis:(typeof " + "window!=='undefined'?window:globalThis);"; + data = data + helperCode; + outputContentMap["__COMMON__"] = data; + } else { + string helperCode; + WXML::Compiler::WXMLHelperCode(helperCode); + string commonData = + "var __wxAppData=__wxAppData||{};var " + "__wxAppCode__=__wxAppCode__||{};var global=global||{};var " + "__WXML_GLOBAL__=" + "__WXML_GLOBAL__||{entrys:{},defines:{},modules:{},ops:[],wxs_nf_" + "init:undefined,total_ops:0};var Component=Comp" + "onent||function(){};var " + "definePlugin=definePlugin||function(){};var " + "requirePlugin=requirePlugin||function(){};" + "var Behavior=Behavior||function(){};var " + "__vd_version_info__=__vd_version_info__||{};var " + "__GWX_GLOBAL__=__GWX_G" + "LOBAL__||{};var __globalThis=(typeof " + "__vd_version_info__!=='undefined'&&typeof " + "__vd_version_info__.globalThis!" + "=='undefined')?__vd_version_info__.globalThis:(typeof " + "window!=='undefined'?window:globalThis);"; + commonData = commonData + helperCode; + commonData = commonData.append(outputContentMap["__COMMON__"]); - outputContentMap["__COMMON__"] = commonData; - } + outputContentMap["__COMMON__"] = commonData; + } - std::stringstream dep; - dep << ";var __WXML_DEP__=__WXML_DEP__||{};"; - // dependencyListMap v121 - for (auto j = dependencyListMap.begin(); j != dependencyListMap.end(); - j++) { + std::stringstream dep; + dep << ";var __WXML_DEP__=__WXML_DEP__||{};"; + // dependencyListMap v121 + for (auto j = dependencyListMap.begin(); j != dependencyListMap.end(); + j++) { - if (j->second.begin() != j->second.end()) { - dep << "__WXML_DEP__[\""; - dep << j->first; - dep << "\"]=["; - auto list = j->second; + if (j->second.begin() != j->second.end()) { + dep << "__WXML_DEP__[\""; + dep << j->first; + dep << "\"]=["; + auto list = j->second; - for (auto k = list.begin(); k != list.end(); k++) { - dep << "\""; - dep << WXML::Rewrite::ToStringCode(*k); - dep << "\","; + for (auto k = list.begin(); k != list.end(); k++) { + dep << "\""; + dep << WXML::Rewrite::ToStringCode(*k); + dep << "\","; + } + + dep << "];"; + } + } + std::string v140 = dep.str(); + outputContentMap["__COMMON__"].append(v140); + if (!compilerResult) { + + v8::Local funcContent = v8::Object::New(isolate); + for (auto content : outputContentMap) { + funcContent + ->Set(isolate->GetCurrentContext(), + String::NewFromUtf8(isolate, content.first.c_str(), + v8::NewStringType::kNormal) + .ToLocalChecked(), + String::NewFromUtf8(isolate, content.second.c_str(), + v8::NewStringType::kNormal) + .ToLocalChecked()) + .Check(); + } + v8::Local funcName = v8::Object::New(isolate); + for (auto func : outputFuncMap) { + funcName + ->Set(isolate->GetCurrentContext(), + String::NewFromUtf8(isolate, func.first.c_str(), + v8::NewStringType::kNormal) + .ToLocalChecked(), + String::NewFromUtf8(isolate, func.second.c_str(), + v8::NewStringType::kNormal) + .ToLocalChecked()) + .Check(); } - dep << "];"; + // 你可以在这里设置对象的属性和方法 + + // 创建一个实例 + v8::Local object_instance = v8::Object::New(isolate); + auto _ = object_instance->Set( + isolate->GetCurrentContext(), + String::NewFromUtf8(isolate, "generateFunctionName", + v8::NewStringType::kNormal) + .ToLocalChecked(), + funcName); + _ = object_instance->Set(isolate->GetCurrentContext(), + String::NewFromUtf8(isolate, + "generateFunctionContent", + v8::NewStringType::kNormal) + .ToLocalChecked(), + funcContent); + + result = object_instance; } + return compilerResult; + } else { + // 普通 + + int compilerResult = 0; + std::map v105; + map> componentListMap; + std::string r; + compilerResult = + WXML::Compiler::Compile(fileContentMap, // a2 + errMsg, // a3 + r, // a4 + componentListMap, // a5 + v105, // a6 + false, // a7 + options.genfuncname, // a8 + mark, // a9 + '\n', // + "e", // off_5403C3[2] + "s", // off_5403C3 + "gg", // "gg" a13 + "e_", // "e_" + "d_", // "d_" + "p_", // "p_" + "", // '\0' + "boxofchocolate", // "boxofchocolate" + "$gdwx", // "$gdwx" + "f_"); // "f_" + result = String::NewFromUtf8(isolate, r.c_str(), NewStringType::kNormal) + .ToLocalChecked(); + return compilerResult; } - std::string v140 = dep.str(); - outputContentMap["__COMMON__"].append(v140); - if (!compilerResult) { - - v8::Local funcContent = v8::Object::New(isolate); - for (auto content : outputContentMap) { - funcContent - ->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, content.first.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked(), - String::NewFromUtf8(isolate, content.second.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked()) - .Check(); - } - v8::Local funcName = v8::Object::New(isolate); - for (auto func : outputFuncMap) { - funcName - ->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, func.first.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked(), - String::NewFromUtf8(isolate, func.second.c_str(), - v8::NewStringType::kNormal) - .ToLocalChecked()) - .Check(); - } - - // 你可以在这里设置对象的属性和方法 - - // 创建一个实例 - v8::Local object_instance = v8::Object::New(isolate); - auto _ = object_instance->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, "generateFunctionName", - v8::NewStringType::kNormal) - .ToLocalChecked(), - funcName); - _ = object_instance->Set(isolate->GetCurrentContext(), - String::NewFromUtf8(isolate, - "generateFunctionContent", - v8::NewStringType::kNormal) - .ToLocalChecked(), - funcContent); - - result = object_instance; - } - return compilerResult; - } else { - // 普通 - - int compilerResult = 0; - std::map v105; - map> componentListMap; - std::string r; - compilerResult = - WXML::Compiler::Compile(fileContentMap, // a2 - errMsg, // a3 - r, // a4 - componentListMap, // a5 - v105, // a6 - false, // a7 - options.genfuncname, // a8 - mark, // a9 - '\n', // - "e", // off_5403C3[2] - "s", // off_5403C3 - "gg", // "gg" a13 - "e_", // "e_" - "d_", // "d_" - "p_", // "p_" - "", // '\0' - "boxofchocolate", // "boxofchocolate" - "$gdwx", // "$gdwx" - "f_"); // "f_" - result = String::NewFromUtf8(isolate, r.c_str(), NewStringType::kNormal) - .ToLocalChecked(); - return compilerResult; + } catch (std::string err) { + fprintf(stderr, "err: %s\n", err.c_str()); + errMsg = err; + return 1; } return 0; } @@ -280,9 +317,13 @@ void wcc(const FunctionCallbackInfo &args) { // Convert the "msg" property to a C++ string and return it. if (code) { // error - args.GetReturnValue().Set( - String::NewFromUtf8(isolate, errMsg.c_str(), NewStringType::kNormal) - .ToLocalChecked()); + // args.GetReturnValue().Set( + // String::NewFromUtf8(isolate, errMsg.c_str(), NewStringType::kNormal) + // .ToLocalChecked()); + isolate->ThrowException(String::NewFromUtf8(isolate, + errMsg.c_str(), + NewStringType::kNormal) + .ToLocalChecked()); } else { // ok args.GetReturnValue().Set(result); diff --git a/src/night/night.cpp b/src/night/night.cpp index c29626d..e696513 100644 --- a/src/night/night.cpp +++ b/src/night/night.cpp @@ -1,4 +1,5 @@ #include "../include/night.h" +#include namespace night { @@ -156,6 +157,42 @@ namespace night throw "not implement"; } + int compile_ns_no_wrapper( + std::string const& a1, + std::string const& a2, + uint a3, + std::string& a4, + bool a5 + ) + { + const char off_51B9E4[] = { '\0', '%', 'u', '\0' }; // idb + a4 = off_51B9E4; + // a4 = ""; + night::NSStream v22(a1, a2, a3); + night::NSGod v8; + + night::NSToken v11; + v11.offset_0 = &v8; + v11.offset_4 = &v22; + + std::string v13 = a1; + night::NSASTParse v23(v13, &v11, &v8); + v13 = ""; + + night::NSCompileJs compile; + compile.offset_24 = &v23; + std::vector v9; + std::string v10 = compile.compile_once(a4, &v9, a5); + v8.hamlet(); + + int v5 =0; + if(v10.length()) + { + a4 = v10; + v5 = 121; + } + return v5; + } /** * 此函数只有定义实现,没有调用 * 所以,没有必要实现 diff --git a/src/night/ns_compile_js.cpp b/src/night/ns_compile_js.cpp index aa117e6..eadf8f3 100644 --- a/src/night/ns_compile_js.cpp +++ b/src/night/ns_compile_js.cpp @@ -1,4 +1,6 @@ #include "../include/night.h" +#include +#include namespace night { @@ -694,14 +696,22 @@ namespace night int inner_compile_once_i = compile_once_i; this->offset_28 = a4; a3 = ""; - night::ns_node* v5 = this->offset_24->top_down(); - if (a5) - { - std::string ret = v5->debug_no_space(); - printf("ast :%s\n", ret.data()); + try { + night::ns_node* v5 = this->offset_24->top_down(); + if (a5) + { + std::string ret = v5->debug_no_space(); + printf("ast :%s\n", ret.data()); + } + std::string v9 = this->compile(v5); + a3.assign(v9); + } + catch(const std::exception& err) + { + // printf("%s\n", err.what()); + std::string ret(err.what()); + return ret; } - std::string v9 = this->compile(v5); - a3.assign(v9); return this->offset_0; } diff --git a/src/night/ns_node.cpp b/src/night/ns_node.cpp index 93c4801..3502bbe 100644 --- a/src/night/ns_node.cpp +++ b/src/night/ns_node.cpp @@ -31,11 +31,11 @@ namespace night { if (this->offset_24.length()) { - sprintf(str, "(%d,%d)type[%s] value[%s]", this->offset_48, this->offset_52, this->offset_0, this->offset_60); + sprintf(str, "(%d,%d)type[%s] value[%s]", this->offset_48, this->offset_52, this->offset_0.c_str(), this->offset_60.c_str()); } else { - sprintf(str, "type[%s] value[%s]", this->offset_0, this->offset_60); + sprintf(str, "type[%s] value[%s]", this->offset_0.c_str(), this->offset_60.c_str()); } } if ( @@ -49,22 +49,22 @@ namespace night { if (this->offset_24.length()) { - sprintf(str, "(%d,%d)type[%s] value[%s]", this->offset_48, this->offset_52, this->offset_0, this->offset_60); + sprintf(str, "(%d,%d)type[%s] value[%s]", this->offset_48, this->offset_52, this->offset_0.c_str(), this->offset_60.c_str()); } else { - sprintf(str, "type[%s] value[%s]", this->offset_0, this->offset_60); + sprintf(str, "type[%s] value[%s]", this->offset_0.c_str(), this->offset_60.c_str()); } } if ("var" == this->offset_0) { if (this->offset_24.length()) { - sprintf(str, "(%d,%d)type[%s] value[%s] flag[%d]", this->offset_48, this->offset_52, this->offset_0, this->offset_60, this->offset_56); + sprintf(str, "(%d,%d)type[%s] value[%s] flag[%d]", this->offset_48, this->offset_52, this->offset_0.c_str(), this->offset_60.c_str(), this->offset_56); } else { - sprintf(str, "type[%s] value[%s] flag[%d]", this->offset_0, this->offset_60, this->offset_56); + sprintf(str, "type[%s] value[%s] flag[%d]", this->offset_0.c_str(), this->offset_60.c_str(), this->offset_56); } } // debug_no_space - 5 diff --git a/src/night/ns_stream.cpp b/src/night/ns_stream.cpp index 546d7aa..3f8b96e 100644 --- a/src/night/ns_stream.cpp +++ b/src/night/ns_stream.cpp @@ -1,4 +1,6 @@ #include "../include/night.h" +#include +#include namespace night { @@ -128,7 +130,8 @@ namespace night v12.append(":"); v10 += v12; v10 += a2; - throw v10; + + throw std::runtime_error(v10.c_str()); } } \ No newline at end of file diff --git a/src/night/ns_token.cpp b/src/night/ns_token.cpp index edb1929..9f41024 100644 --- a/src/night/ns_token.cpp +++ b/src/night/ns_token.cpp @@ -320,12 +320,12 @@ namespace night bool NSToken::tk_is_whitespace(char ch, void *) { - auto v1 = night::NS_BUILTIN_SPACE.find(ch, 0); + int v1 = night::NS_BUILTIN_SPACE.find(ch, 0); return v1 != -1; } bool NSToken::tk_is_not_line_break(char ch, void *) { - return ch != 10; + return ch != 10; // \n } bool NSToken::tk_is_valid_op_str(char ch, void *t) { diff --git a/src/utils/json.cpp b/src/utils/json.cpp index 60937d6..eba3fa4 100644 --- a/src/utils/json.cpp +++ b/src/utils/json.cpp @@ -1,7 +1,9 @@ +#include #include #include #include #include +#include std::string EscapeToJsonString(std::string const& a2) { @@ -48,3 +50,233 @@ std::string DictToJsonString(std::map const& a2) ret << "}"; return ret.str(); } +int HexDigit(char a1, int a2) +{ + int v2; // eax + + if ( (uint8_t)(a1 - 48) > 9u ) + { + if ( (uint8_t)(a1 - 97) > 5u ) + { + v2 = 0; + if ( (uint8_t)(a1 - 65) <= 5u ) + v2 = a1 - 55; + } + else + { + v2 = a1 - 87; + } + } + else + { + v2 = a1 - 48; + } + return v2 << a2; +} + +int GetUnicodeNum(std::string &a1, int a2) +{ + int v3; // ebx + int v4; // ebx + int v5; // ebx + + v3 = HexDigit(a1[a2 + 2], 12); + v4 = HexDigit(a1[a2 + 3], 8) + v3; + v5 = HexDigit(a1[a2 + 4], 4) + v4; + return v5 + HexDigit(a1[a2 + 5], 0); +} +void GetUnicode(std::string& a1, unsigned int a2) +{ + char v2; // bl + unsigned int v3; // eax + unsigned int v4; // eax + + v2 = a2; + if ( a2 > 0x7F ) + { + if ( a2 > 0x7FF ) + { + if ( a2 > 0xFFFF ) + { + a1.push_back((a2 >> 18) | 0xF0); + v4 = (a2 >> 12) & 0x3F | 0xFFFFFF80; + } + else + { + v4 = (a2 >> 12) | 0xFFFFFFE0; + } + a1.push_back(v4); + v3 = (a2 >> 6) & 0x3F | 0xFFFFFF80; + } + else + { + v3 = (a2 >> 6) | 0xFFFFFFC0; + } + a1.push_back(v3); + v2 = a2 & 0x3F | 0x80; + } + a1.push_back(v2); +} +int GetJsonString(std::string &a1, int *a2, std::string& a3) +{ + + std::ostringstream v17; + int v3 = *a2; + if ( a1[*a2] != '"' ) + { +LABEL_41: + int v9 = ~v3; + return v9; + } + std::string v16; + for ( *a2 = v3 + 1; ; ++*a2 ) + { + v3 = *a2; + char v12; + int v6; + int v14 = a1.length(); + if ( *a2 >= v14 ) + return ~v3; + char v5 = a1[v3]; + if ( v5 == '"' ) + break; + if ( v5 == '\\' ) + { + if ( v3 + 1 >= v14 ) + { + v6 = -2; +LABEL_31: + return v6 - v3; + } + char v7 = a1[v3 + 1]; + if ( v7 == 'n' ) + { + v12 = 10; + goto LABEL_26; + } + if ( v7 <= 'n' ) + { + if ( v7 == 'b' ) + { + v12 = 8; + goto LABEL_26; + } + if ( v7 <= 'b' ) + { + if ( v7 != '/' && v7 != '\\' && v7 != '"' ) + goto LABEL_41; + v17 << a1[v3 + 1]; + goto LABEL_27; + } + if ( v7 != 'f' ) + goto LABEL_41; + v12 = 12; +LABEL_26: + v17 << v12; +LABEL_27: + ++*a2; + continue; + } + if ( v7 == 't' ) + { + int v12 = 9; + goto LABEL_26; + } + if ( v7 != 'u' ) + { + if ( v7 != 'r' ) + goto LABEL_41; + int v12 = 13; + goto LABEL_26; + } + int UnicodeNum = GetUnicodeNum(a1, v3); + if ( (unsigned int)(UnicodeNum - 55296) > 0x3FF ) + { + *a2 = v3 + 5; + } + else + { + if ( v3 + 11 >= v14 || a1[v3 + 6] != '\\' ) + { + v6 = -7; + goto LABEL_31; + } + if ( a1[v3 + 7] != 'u' ) + { + v6 = -8; + goto LABEL_31; + } + int v10 = GetUnicodeNum(a1, v3 + 6); + *a2 = v3 + 11; + UnicodeNum = (v10 & 0x3FF | (UnicodeNum << 10) & 0xFFC00) + 0x10000; + } + GetUnicode(v16, UnicodeNum); + v17 << v16; + } + else + { + v17 << a1[v3]; + } + } + *a2 = v3 + 1; + a3 = v17.str(); + return 0; +} +int GetJsonDict(std::string &a1, std::map& a2) +{ + if ( a1[0] != '{' ) + return -1; + int v10 = 1; + while ( 1 ) + { + int v3 = a1.length(); + if ( v10 >= v3 ) + return 0; + std::string v11; + std::string v13; + while ( v10 < v3 ) + { + if ( a1[v10] == '"' ) + goto LABEL_9; + ++v10; + } + if ( v10 == v3 ) + return 0; +LABEL_9: + int JsonString = GetJsonString(a1, &v10, v11); + if ( JsonString ) + return JsonString; + int v5 = a1.length(); + while ( v10 < v5 ) + { + if ( a1[v10] == ':' ) + goto LABEL_18; + ++v10; + } + if ( v10 == v5 ) + { +LABEL_26: + return 0; + } +LABEL_18: + while ( v10 < v5 ) + { + if (a1[v10] == '"' ) + goto LABEL_20; + ++v10; + } + if ( v10 == v5 ) + return 0; +LABEL_20: + JsonString = GetJsonString(a1, &v10, v13); + if ( JsonString ) + { +LABEL_27: + return JsonString; + } + a2[v11] = v13; + int v7 = a1.length(); + while ( v10 < v7 && a1[v10] != ',' ) + ++v10; + } +} diff --git a/src/wcc.cpp b/src/wcc.cpp index b5b5943..48fa8ab 100644 --- a/src/wcc.cpp +++ b/src/wcc.cpp @@ -1,4 +1,6 @@ +#include #include +#include #include #include #include @@ -7,6 +9,7 @@ #include "include/string_utils.h" #include "include/wxml.h" #include "include/json.h" +#include "include/night.h" using namespace std; @@ -64,6 +67,9 @@ int main(int argc, const char **argv) bool version = false; bool isLLA = false; bool hasLL = false; + bool isWxs = false; + bool isGDC = false; + bool isWxsEnv = false; string xc_Or_completeCode_Param; string outputFileName; vector fileList; @@ -218,17 +224,18 @@ int main(int argc, const char **argv) mapData1["life_cycle_callback_content"] = callbackData; } } + else if (!param.compare("--pm")) + { + // 参数是--pm + if (i + 1 < paramList.size()) + { + mapData1["plain_text_marker"] = paramList[i + 1]; + continue; + } + } else { - if (!param.compare("--pm")) - { - // 参数是--pm - if (i + 1 < paramList.size()) - { - mapData1["plain_text_marker"] = paramList[i + 1]; - continue; - } - } + if (param[1] == 'l' && param[2] == 'l') { // -ll @@ -259,6 +266,19 @@ int main(int argc, const char **argv) i++; hasLL = true; } + else if (!param.compare("--wxs")) + { + isWxs = true; + } + else if (!param.compare("--gdc")) + { + isGDC = true; + } + else if (!param.compare("--wxs-env")) + { + isWxsEnv = true; + } + } } @@ -280,6 +300,74 @@ int main(int argc, const char **argv) fclose(f); } + if (isWxs) + { + std::string wxs; + if (fileList.size() == 0) + { + fprintf(stderr, "WXS file is needed\n"); + return -1; + } + if ( readFile(fileList[0].c_str(), wxs)) + { + fprintf(stderr, "Failed to read input from %s\n", fileList[0].c_str()); + return -1; + } + std::map cfg; + int ret = GetJsonDict(wxs, cfg); + if (ret) + { + fprintf(stderr, "Failed to read JSON at position %d (%c)", ret, wxs[ret]); + return -2; + } + + for (auto m=cfg.begin(); m != cfg.end(); m++) { + auto v152 = m->first; + auto v156 = m->second; + std::string v146; + if ( night::compile_ns_no_wrapper(v152, v156, 1, v146, 0) ) + { + fprintf(stderr, "Error in file %s: %s\n", v152.c_str(), v146.c_str()); + return -2; + } + auto v31 = snprintf(0, 0, WXML::GlassEaselWxs::sWrapper.c_str(), v146.c_str()) + 1; + char *v32 = (char *)operator new[](v31); + snprintf(v32, v31, WXML::GlassEaselWxs::sWrapper.c_str(), v146.c_str()); + cfg[v152] = v32; + delete[] v32; + } + std::string v136 = DictToJsonString(cfg); + FILE *f = stdout; + if (!outputFileName.empty()) + f = fopen(outputFileName.c_str(), "w"); + fprintf(f, "%s\n", v136.data()); + if (f != stdout) + return fclose(f); + return 0; + } + if (isGDC) + { + std::string v136 = WXML::GlassEaselWxs::sGenFuncDeepCopy.c_str(); + FILE *f = stdout; + if (!outputFileName.empty()) + f = fopen(outputFileName.c_str(), "w"); + fprintf(f, "%s\n", v136.data()); + if (f != stdout) + return fclose(f); + return 0; + } + if (isWxsEnv) + { + std::string v136 = WXML::GlassEaselWxs::sWxsEnvInit.c_str(); + FILE *f = stdout; + if (!outputFileName.empty()) + f = fopen(outputFileName.c_str(), "w"); + fprintf(f, "%s\n", v136.data()); + if (f != stdout) + return fclose(f); + return 0; + } + // main - 30 if (fileList.empty()) { @@ -498,7 +586,8 @@ int main(int argc, const char **argv) f = fopen(outputFileName.data(), "w"); } fprintf(f, "%s\n", v113.data()); - fclose(f); + if (f != stdout) + fclose(f); } } // main - 55 diff --git a/test/main.cpp b/test/main.cpp new file mode 100644 index 0000000..f220547 --- /dev/null +++ b/test/main.cpp @@ -0,0 +1,919 @@ + +//----- (00500ED0) -------------------------------------------------------- +int main(int argc, const char **argv, const char **envp) +{ + int v3; // ebx + char **v4; // edi + int v5; // eax + bool v6; // dl + int v7; // edi + int v8; // ebx + void **v9; // eax + _BYTE *v10; // edx + char v11; // al + char v12; // al + void **v13; // eax + void **v14; // eax + bool v15; // si + _BYTE *v16; // edx + char *v17; // eax + _DWORD *v18; // eax + const char **v19; // ecx + _BYTE *v20; // eax + void **v21; // esi + _DWORD *v22; // eax + char v23; // dl + void **v24; // ebx + char *v25; // ecx + int v26; // edx + int v27; // edx + FILE *v28; // ebx + int JsonDict; // eax + char **m; // ebx + int v31; // edi + char *v32; // esi + _DWORD *v33; // eax + const char **v34; // edx + unsigned int v35; // ebx + _DWORD *v36; // eax + _DWORD *v37; // eax + int v38; // esi + int v39; // edi + int v40; // esi + int *inserted; // ebx + char *v42; // eax + void **v43; // edi + char *v44; // esi + int insert_hint_unique_pos; // eax + _DWORD *v46; // edx + int v47; // edx + _DWORD *v48; // eax + int v49; // edx + FILE *v50; // ebx + int v51; // edi + void **j; // ebx + int *v53; // eax + int *v54; // esi + _DWORD *v55; // ebx + _DWORD *v56; // eax + _DWORD *v57; // eax + void **v58; // ecx + _DWORD *v59; // eax + int *k; // edi + std::ostream::sentry *v61; // esi + std::ostream::sentry *v62; // eax + int *v63; // ebx + std::ostream::sentry *v64; // eax + _DWORD *v65; // eax + FILE *v66; // ebx + int v67; // edx + int v68; // edx + int v69; // edx + void (__cdecl *v71)(void *); // [esp-6Ch] [ebp-414h] + char v72; // [esp+6h] [ebp-3A2h] + char v73; // [esp+7h] [ebp-3A1h] + char v74; // [esp+8h] [ebp-3A0h] + char v75; // [esp+9h] [ebp-39Fh] + char v76; // [esp+Ah] [ebp-39Eh] + char v77; // [esp+Bh] [ebp-39Dh] + const char **v78; // [esp+Ch] [ebp-39Ch] + char **v79; // [esp+Ch] [ebp-39Ch] + int v80; // [esp+10h] [ebp-398h] + int v81; // [esp+10h] [ebp-398h] + char v82; // [esp+14h] [ebp-394h] + int *v83; // [esp+14h] [ebp-394h] + int v84; // [esp+18h] [ebp-390h] + std::ostream::sentry *i; // [esp+18h] [ebp-390h] + std::ostream::sentry *v86; // [esp+18h] [ebp-390h] + bool excb; // [esp+1Ch] [ebp-38Ch] + int exc; // [esp+1Ch] [ebp-38Ch] + int exca; // [esp+1Ch] [ebp-38Ch] + char *FileName; // [esp+28h] [ebp-380h] BYREF + const char **v91; // [esp+2Ch] [ebp-37Ch] BYREF + void **v92; // [esp+30h] [ebp-378h] + int v93; // [esp+34h] [ebp-374h] + void **v94; // [esp+38h] [ebp-370h] BYREF + int v95; // [esp+3Ch] [ebp-36Ch] + int v96; // [esp+40h] [ebp-368h] + void **v97; // [esp+44h] [ebp-364h] BYREF + int v98; // [esp+48h] [ebp-360h] + int v99; // [esp+4Ch] [ebp-35Ch] + char *v100; // [esp+50h] [ebp-358h] BYREF + int v101; // [esp+54h] [ebp-354h] + char v102; // [esp+58h] [ebp-350h] BYREF + char *v103; // [esp+68h] [ebp-340h] BYREF + int v104; // [esp+6Ch] [ebp-33Ch] + char v105; // [esp+70h] [ebp-338h] BYREF + int v106; // [esp+80h] [ebp-328h] BYREF + int v107[5]; // [esp+84h] [ebp-324h] BYREF + int v108[6]; // [esp+98h] [ebp-310h] BYREF + void *v109[6]; // [esp+B0h] [ebp-2F8h] BYREF + int v110; // [esp+C8h] [ebp-2E0h] BYREF + int v111[5]; // [esp+CCh] [ebp-2DCh] BYREF + int v112; // [esp+E0h] [ebp-2C8h] BYREF + int v113[5]; // [esp+E4h] [ebp-2C4h] BYREF + int v114; // [esp+F8h] [ebp-2B0h] BYREF + int v115[5]; // [esp+FCh] [ebp-2ACh] BYREF + int v116[2]; // [esp+110h] [ebp-298h] BYREF + char v117; // [esp+118h] [ebp-290h] BYREF + void *v118[2]; // [esp+128h] [ebp-280h] BYREF + char v119; // [esp+130h] [ebp-278h] BYREF + int v120; // [esp+140h] [ebp-268h] BYREF + int v121[5]; // [esp+144h] [ebp-264h] BYREF + int v122; // [esp+158h] [ebp-250h] BYREF + int v123[5]; // [esp+15Ch] [ebp-24Ch] BYREF + int v124; // [esp+170h] [ebp-238h] BYREF + int v125[5]; // [esp+174h] [ebp-234h] BYREF + int v126; // [esp+188h] [ebp-220h] BYREF + int v127[5]; // [esp+18Ch] [ebp-21Ch] BYREF + int v128[6]; // [esp+1A0h] [ebp-208h] BYREF + int v129[6]; // [esp+1B8h] [ebp-1F0h] BYREF + int v130[6]; // [esp+1D0h] [ebp-1D8h] BYREF + int v131[6]; // [esp+1E8h] [ebp-1C0h] BYREF + int v132[6]; // [esp+200h] [ebp-1A8h] BYREF + int v133; // [esp+218h] [ebp-190h] BYREF + int v134; // [esp+21Ch] [ebp-18Ch] + int v135; // [esp+220h] [ebp-188h] + int v136; // [esp+230h] [ebp-178h] BYREF + int v137; // [esp+234h] [ebp-174h] + int v138; // [esp+238h] [ebp-170h] + char *String; // [esp+248h] [ebp-160h] BYREF + int v140; // [esp+24Ch] [ebp-15Ch] + int v141; // [esp+250h] [ebp-158h] BYREF + int v142; // [esp+260h] [ebp-148h] BYREF + char *v143[5]; // [esp+264h] [ebp-144h] BYREF + char *v144; // [esp+278h] [ebp-130h] BYREF + int v145[5]; // [esp+27Ch] [ebp-12Ch] BYREF + int v146; // [esp+290h] [ebp-118h] BYREF + int v147; // [esp+294h] [ebp-114h] + char v148[16]; // [esp+298h] [ebp-110h] BYREF + char *Format; // [esp+2A8h] [ebp-100h] BYREF + int v150; // [esp+2ACh] [ebp-FCh] + int v151[4]; // [esp+2B0h] [ebp-F8h] BYREF + int v152; // [esp+2C0h] [ebp-E8h] BYREF + int v153; // [esp+2C4h] [ebp-E4h] + char v154[4]; // [esp+2C8h] [ebp-E0h] BYREF + int v155[3]; // [esp+2CCh] [ebp-DCh] BYREF + char v156[192]; // [esp+2D8h] [ebp-D0h] BYREF + int *p_argc; // [esp+398h] [ebp-10h] + + p_argc = &argc; + v80 = argc; + v78 = argv; + __main(); + FileName = 0; + v100 = &v102; + v91 = 0; + v92 = 0; + v93 = 0; + v101 = 0; + v102 = 0; + v103 = &v105; + v104 = 0; + v105 = 0; + v94 = 0; + v95 = 0; + v96 = 0; + v97 = 0; + v98 = 0; + v99 = 0; + std::_Rb_tree_header::_Rb_tree_header(v107); + std::string::basic_string((void **)v108, "$gwx"); + std::string::basic_string(v109, " "); + v3 = 1; + std::_Rb_tree_header::_Rb_tree_header(v111); + while ( v3 < v80 ) + { + std::string::basic_string((void **)&v152, "--config-path"); + v4 = (char **)&v78[v3]; + v5 = std::string::compare((int)&v152, *v4); + v6 = 0; + if ( !v5 ) + v6 = v3 + 1 < v80; + excb = v6; + std::string::_M_dispose((void **)&v152); + if ( excb ) + { + std::string::operator=((unsigned int *)&v103, (char *)v78[++v3]); + } + else + { + std::string::basic_string((void **)&v152, *v4); + std::vector::emplace_back(&v94, &v152); + std::string::_M_dispose((void **)&v152); + } + ++v3; + } + if ( v104 ) + { + v147 = 0; + v146 = (int)v148; + v148[0] = 0; + ReadFile(v103, (unsigned int *)&v146); + while ( v147 ) + { + std::string::basic_string((void **)&Format, "\n"); + GetNextArg(&v152, &v146, (int)&Format); + std::vector::emplace_back(&v94, &v152); + std::string::_M_dispose((void **)&v152); + std::string::_M_dispose((void **)&Format); + } + std::string::_M_dispose((void **)&v146); + } + v7 = 0; + exc = 0; + v72 = 0; + v73 = 0; + v74 = 0; + v75 = 0; + v84 = -1431655765 * ((v95 - (int)v94) >> 3); + v76 = 0; + v82 = 0; + v77 = 0; + while ( v7 < v84 ) + { + v8 = 6 * v7; + v9 = &v94[6 * v7]; + v10 = *v9; + if ( *(_BYTE *)*v9 != 45 ) + { + std::vector::push_back(&v91, (int)v9); + goto LABEL_90; + } + v11 = v10[1]; + switch ( v11 ) + { + case 'd': + v12 = v10[2]; + if ( !v12 ) + { + exc |= 2u; + goto LABEL_90; + } + if ( v12 == 115 ) + { + exc |= 4u; + goto LABEL_90; + } + break; + case 's': + if ( v10[2] == 116 ) + { + exc |= 8u; + goto LABEL_90; + } + if ( v7 + 1 < v84 ) + { + v77 = 1; + std::vector::push_back(&v91, (int)&v94[v8 + 6]); + goto LABEL_90; + } + break; + case 'v': + if ( v10[2] == 98 ) + exc |= 0x10u; + else + v76 = 1; + goto LABEL_90; + case 'x': + if ( v10[2] == 99 && v7 + 1 < v84 ) + { + v13 = &v94[v8 + 6]; + v82 = 1; + if ( *(_BYTE *)*v13 != 45 ) + { + std::string::_M_assign((int)&v100, (int)v13); + v82 = 1; + ++v7; + } + goto LABEL_90; + } + break; + case 'c': + if ( v10[2] == 99 && v7 + 1 < v84 ) + { + v14 = &v94[v8 + 6]; + v82 = 0; + if ( *(_BYTE *)*v14 != 45 ) + { + std::string::_M_assign((int)&v100, (int)v14); + v82 = 0; + ++v7; + } + goto LABEL_90; + } + break; + case 'o': + if ( v7 + 1 < v84 ) + { + ++v7; + FileName = (char *)v94[v8 + 6]; + goto LABEL_90; + } + break; + case 'g': + if ( v10[2] == 110 && v7 + 1 < v84 ) + { + std::string::_M_assign((int)v108, (int)&v94[v8 + 6]); + ++v7; + goto LABEL_90; + } + break; + case 'p': + exc |= 0x20u; + goto LABEL_90; + case 't': + exc |= 1u; + goto LABEL_90; + case 'i': + exc |= 0x40u; + goto LABEL_90; + } + std::string::basic_string((void **)&v152, "--split"); + v15 = std::operator==((int)&v94[v8], (int)&v152); + if ( v15 ) + v15 = v7 + 1 < v84; + std::string::_M_dispose((void **)&v152); + if ( v15 ) + { + ++v7; + std::string::_M_assign((int)v109, (int)&v94[v8 + 6]); + } + else + { + v16 = v94[6 * v7]; + if ( v16[1] == 99 && v16[2] == 98 ) + { + ++v7; + LOBYTE(v151[0]) = 0; + Format = (char *)v151; + v17 = (char *)v94[v8 + 6]; + exc |= 0x80u; + v150 = 0; + ReadFile(v17, (unsigned int *)&Format); + if ( v150 ) + { + std::string::basic_string((void **)&v152, "life_cycle_callback_content"); + v18 = std::map::operator[](&v110, &v152); + std::string::_M_assign((int)v18, (int)&Format); + std::string::_M_dispose((void **)&v152); + } + std::string::_M_dispose((void **)&Format); + } + else if ( !std::string::compare((int)&v94[v8], "--pm") && v7 + 1 < v84 ) + { + v21 = &v94[v8 + 6]; + std::string::basic_string((void **)&v152, "plain_text_marker"); + v22 = std::map::operator[](&v110, &v152); + std::string::_M_assign((int)v22, (int)v21); + std::string::_M_dispose((void **)&v152); + ++v7; + } + else + { + v19 = (const char **)&v94[v8]; + v20 = v94[v8]; + if ( v20[1] == 108/*l*/ && v20[2] == 108/*l*/ ) + { + v23 = v20[3]; + if ( v23 != 119 ) + { + if ( v23 != 97 ) + { + fprintf(&__iob[2], "Error: expected -llw or -lla, but got %s", *v19); + exca = -1; + goto LABEL_177; + } + v15 = 1; + } + if ( !std::string::compare((int)v109, " ") ) + std::string::basic_string((void **)&v152, ","); + else + std::string::basic_string(&v152, (int)v109); + ++v7; + Split((int)&v133, (int *)&v94[v8 + 6], (int)&v152); + v24 = (void **)v133; + v25 = (char *)v97; + v133 = 0; + v26 = v98; + v97 = v24; + Format = v25; + v98 = v134; + v151[0] = v99; + v150 = v26; + v99 = v135; + v134 = 0; + v135 = 0; + std::vector::~vector((void ***)&Format, v26); + std::vector::~vector((void ***)&v133, v27); + std::string::_M_dispose((void **)&v152); + v75 = 1; + v82 = v15; + } + else if ( !std::string::compare((int)v19, "--wxs") ) + { + v74 = 1; + } + else if ( !std::string::compare((int)&v94[v8], "--gdc") ) + { + v73 = 1; + } + else if ( !std::string::compare((int)&v94[v8], "--wxs-env") ) + { + v72 = 1; + } + } + } +LABEL_90: + ++v7; + } + // version + if ( v76 ) + { + std::string::basic_string((void **)&v152, "global"); + WXML::Compiler::GetVersionInfo((int)&Format, &v152); + std::string::_M_dispose((void **)&v152); + if ( FileName && *FileName ) + v28 = fopen(FileName, "w"); + else + v28 = &__iob[1]; + fprintf(v28, "%s\n", Format); + fclose(v28); + std::string::_M_dispose((void **)&Format); + } + // not wxs + if ( !v74 ) + { + v34 = (const char **)&WXML::GlassEaselWxs::sGenFuncDeepCopy; + // not gdc + if ( !v73 ) + { + // not wxs env + if ( !v72 ) + { + // empty + if ( v91 == (const char **)v92 ) + { + exca = Usage(v80, v78); + } + else + { + v35 = 0; + std::_Rb_tree_header::_Rb_tree_header(v113); + std::_Rb_tree_header::_Rb_tree_header(v115); + if ( v77 ) + { + v152 = (int)v154; + v153 = 0; + v154[0] = 0; + ReadFile(0, (unsigned int *)&v152); + v36 = std::map::operator[](&v112, (int)v91); + std::string::_M_assign((int)v36, (int)&v152); + std::string::_M_dispose((void **)&v152); + } + else + { + while ( v35 < -1431655765 * (((char *)v92 - (char *)v91) >> 3) ) + { + v154[0] = 0; + v152 = (int)v154; + v153 = 0; + ReadFile((char *)v91[6 * v35], (unsigned int *)&v152); + v37 = std::map::operator[](&v112, (int)&v91[6 * v35]); + std::string::_M_assign((int)v37, (int)&v152); + ++v35; + std::string::_M_dispose((void **)&v152); + } + } + if ( v101 ) + { + GetNextArg(&String, (int *)&v100, (int)v109); + v81 = strtoull(String, 0, 10); + std::string::_M_dispose((void **)&String); + v136 = 0; + v137 = 0; + v138 = 0; + for ( i = 0; (int)i < v81; i = (std::ostream::sentry *)((char *)i + 1) ) + { + v150 = 0; + Format = (char *)v151; + LOBYTE(v151[0]) = 0; + String = 0; + v140 = 0; + v141 = 0; + GetNextArg(&v142, (int *)&v100, (int)v109); + std::string::operator=(&Format, &v142); + std::string::_M_dispose((void **)&v142); + std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>( + (int)v91, + (int)v92, + (int)&Format); + GetNextArg(&v144, (int *)&v100, (int)v109); + v38 = 0; + v79 = (char **)strtoull(v144, 0, 10); + std::string::_M_dispose((void **)&v144); + while ( v38 < (int)v79 ) + { + v153 = 0; + v152 = (int)v154; + v154[0] = 0; + GetNextArg(&v146, (int *)&v100, (int)v109); + std::string::operator=(&v152, &v146); + std::string::_M_dispose((void **)&v146); + std::vector::push_back(&String, (int)&v152); + v39 = v137; + if ( v39 == std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>( + v136, + v137, + (int)&v152) ) + std::vector::push_back(&v136, (int)&v152); + ++v38; + std::string::_M_dispose((void **)&v152); + } + v40 = v115[1]; + inserted = v115; + while ( v40 ) + { + if ( (unsigned __int8)std::operator<(v40 + 16, (int)&Format) ) + { + v40 = *(_DWORD *)(v40 + 12); + } + else + { + inserted = (int *)v40; + v40 = *(_DWORD *)(v40 + 8); + } + } + if ( inserted == v115 || (unsigned __int8)std::operator<((int)&Format, (int)(inserted + 4)) ) + { + v42 = (char *)operator new((struct type_info *)0x34, v71); + v43 = (void **)(v42 + 16); + v44 = v42; + std::string::basic_string((_DWORD *)v42 + 4, (int)&Format); + *((_DWORD *)v44 + 10) = 0; + *((_DWORD *)v44 + 11) = 0; + *((_DWORD *)v44 + 12) = 0; + insert_hint_unique_pos = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( + &v114, + inserted, + (int)v43); + inserted = (int *)insert_hint_unique_pos; + if ( v46 ) + { + inserted = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_insert_node( + &v114, + insert_hint_unique_pos, + v46, + v44); + } + else + { + std::vector::~vector((void ***)v44 + 10, 0); + std::string::_M_dispose(v43); + operator delete(v44); + } + } + std::vector::operator=((int)(inserted + 10), (int *)&String); + std::vector::~vector((void ***)&String, v47); + std::string::_M_dispose((void **)&Format); + } + std::string::basic_string((void **)&v152, "ALL"); + v48 = std::map>::operator[](&v114, &v152); + std::vector::operator=((int)v48, &v136); + std::string::_M_dispose((void **)&v152); + std::vector::~vector((void ***)&v136, v49); + } + v116[1] = 0; + v116[0] = (int)&v117; + v117 = 0; + v118[0] = &v119; + v118[1] = 0; + v119 = 0; + std::_Rb_tree_header::_Rb_tree_header(v121); + if ( v75 ) + { + v51 = v98; + for ( j = v97; (void **)v51 != j; j += 6 ) + { + if ( *(_BYTE *)*j == 46 && *((_BYTE *)*j + 1) == 47 ) + { + std::string::substr((void **)&v152, j, 2u, 0xFFFFFFFF); + std::string::operator=(j, &v152); + std::string::_M_dispose((void **)&v152); + } + } + std::_Rb_tree_header::_Rb_tree_header(v123); + std::_Rb_tree_header::_Rb_tree_header(v125); + std::_Rb_tree_header::_Rb_tree_header(v127); + std::string::basic_string((void **)&v152, "l_"); + std::string::basic_string((void **)&Format, "f_"); + std::string::basic_string((void **)&v146, "$gdwx"); + std::string::basic_string((void **)&v144, "boxofchocolate"); + std::string::basic_string((void **)&v142, (char *)&byte_5173B0); + std::string::basic_string((void **)&String, "p_"); + std::string::basic_string((void **)&v136, "d_"); + std::string::basic_string((void **)&v133, "e_"); + std::string::basic_string((void **)v132, "gg"); + std::string::basic_string((void **)v131, (char *)&off_5174F9); + std::string::basic_string((void **)v130, (_BYTE *)&off_5174F9 + 2); + std::string::basic_string((void **)v129, (char *)&byte_5173B0); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_Rb_tree( + v128, + (int)&v114); + exca = WXML::Compiler::CompileLazy( + (std::_Rb_tree_header *)&v112, + (unsigned int *)v116, + &v120, + &v106, + &v122, + (int)&v124, + (int)v128, + (std::_Rb_tree_header *)&v97, + 0, + v129, + (int)&v126, + &v110, + v82, + (int)v108, + exc, + 10, + v130, + v131, + v132, + &v133, + &v136, + (int *)&String, + (int)&v142, + (int)&v144, + (int)&v146, + (int *)&Format); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)v128); + std::string::_M_dispose((void **)v129); + std::string::_M_dispose((void **)v130); + std::string::_M_dispose((void **)v131); + std::string::_M_dispose((void **)v132); + std::string::_M_dispose((void **)&v133); + std::string::_M_dispose((void **)&v136); + std::string::_M_dispose((void **)&String); + std::string::_M_dispose((void **)&v142); + std::string::_M_dispose((void **)&v144); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&Format); + std::string::_M_dispose((void **)&v152); + std::string::basic_string((void **)&Format, "__COMMON__"); + v53 = (int *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_lower_bound( + v121[1], + (int)v121, + (int)&Format); + v54 = v53; + if ( v53 != v121 && (unsigned __int8)std::operator<((int)&Format, (int)(v53 + 4)) ) + v54 = v121; + std::string::_M_dispose((void **)&Format); + if ( v54 == v121 ) + { + WXML::Compiler::WXMLHelperCode[abi:cxx11]((void **)&Format); + std::string::basic_string( + (void **)&v146, + "var __wxAppData=__wxAppData||{};var __wxAppCode__=__wxAppCode__||{};var global=global||{};var __WXML_GLO" + "BAL__=__WXML_GLOBAL__||{entrys:{},defines:{},modules:{},ops:[],wxs_nf_init:undefined,total_ops:0};var Co" + "mponent=Component||function(){};var definePlugin=definePlugin||function(){};var requirePlugin=requirePlu" + "gin||function(){};var Behavior=Behavior||function(){};var __vd_version_info__=__vd_version_info__||{};va" + "r __GWX_GLOBAL__=__GWX_GLOBAL__||{};var __globalThis=(typeof __vd_version_info__!=='undefined'&&typeof _" + "_vd_version_info__.globalThis!=='undefined')?__vd_version_info__.globalThis:(typeof window!=='undefined'" + "?window:globalThis);"); + std::operator+(&v152, &v146, (unsigned int *)&Format); + std::string::basic_string((void **)&v144, "__COMMON__"); + v59 = std::map::operator[](&v120, &v144); + std::string::operator=(v59, &v152); + std::string::_M_dispose((void **)&v144); + std::string::_M_dispose((void **)&v152); + v58 = (void **)&v146; + } + else + { + std::string::basic_string((void **)&Format, "__COMMON__"); + v55 = std::map::operator[](&v120, &Format); + WXML::Compiler::WXMLHelperCode[abi:cxx11]((void **)&v144); + std::string::basic_string( + (void **)&v142, + "var __wxAppData=__wxAppData||{};var __wxAppCode__=__wxAppCode__||{};var global=global||{};var __WXML_GLO" + "BAL__=__WXML_GLOBAL__||{entrys:{},defines:{},modules:{},ops:[],wxs_nf_init:undefined,total_ops:0};var Co" + "mponent=Component||function(){};var definePlugin=definePlugin||function(){};var requirePlugin=requirePlu" + "gin||function(){};var Behavior=Behavior||function(){};var __vd_version_info__=__vd_version_info__||{};va" + "r __GWX_GLOBAL__=__GWX_GLOBAL__||{};var __globalThis=(typeof __vd_version_info__!=='undefined'&&typeof _" + "_vd_version_info__.globalThis!=='undefined')?__vd_version_info__.globalThis:(typeof window!=='undefined'" + "?window:globalThis);"); + std::operator+(&v146, &v142, (unsigned int *)&v144); + v56 = std::string::append(&v146, (int)v55); + std::string::basic_string(&v152, v56); + std::string::basic_string((void **)&String, "__COMMON__"); + v57 = std::map::operator[](&v120, &String); + std::string::operator=(v57, &v152); + std::string::_M_dispose((void **)&String); + std::string::_M_dispose((void **)&v152); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&v142); + v58 = (void **)&v144; + } + std::string::_M_dispose(v58); + std::string::_M_dispose((void **)&Format); + std::basic_stringstream,std::allocator>::basic_stringstream((int)&v152); + std::operator<<>((std::ostream::sentry *)v154, ";var __WXML_DEP__=__WXML_DEP__||{};"); + for ( k = (int *)v123[2]; k != v123; k = (int *)std::_Rb_tree_increment((int)k) ) + { + if ( k[11] != k[10] ) + { + v61 = std::operator<<>((std::ostream::sentry *)v154, "__WXML_DEP__[\""); + WXML::Rewrite::ToStringCode((int)&Format, k + 4); + v62 = std::operator<<(v61, (int *)&Format); + std::operator<<>(v62, "\"]=["); + std::string::_M_dispose((void **)&Format); + v63 = (int *)k[10]; + v83 = (int *)k[11]; + while ( v83 != v63 ) + { + v86 = std::operator<<>((std::ostream::sentry *)v154, "\""); + WXML::Rewrite::ToStringCode((int)&Format, v63); + v64 = std::operator<<(v86, (int *)&Format); + std::operator<<>(v64, "\","); + v63 += 6; + std::string::_M_dispose((void **)&Format); + } + std::operator<<>((std::ostream::sentry *)v154, "];"); + } + } + std::stringbuf::str((int)&Format, v155); + std::string::basic_string((void **)&v146, "__COMMON__"); + v65 = std::map::operator[](&v120, &v146); + std::string::operator+=(v65, (int)&Format); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&Format); + if ( exca ) + { + fprintf(&__iob[2], "Error %d: %s\n", exca, (const char *)v116[0]); + } + else + { + if ( FileName && *FileName ) + v66 = fopen(FileName, "w"); + else + v66 = &__iob[1]; + DictToJsonString((int)&v144, (int)&v120); + DictToJsonString((int)&v146, (int)&v106); + std::string::basic_string( + (void **)&Format, + " {\"generateFunctionContent\":%s,\"generateFunctionName\":%s} "); + fprintf(v66, Format, v144, v146); + fclose(v66); + std::string::_M_dispose((void **)&Format); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&v144); + } + std::basic_stringstream,std::allocator>::~basic_stringstream((int)&v152); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)&v126); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)&v124); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)&v122); + } + else + { + std::string::basic_string((void **)&v152, "l_"); + std::string::basic_string((void **)&Format, "f_"); + std::string::basic_string((void **)&v146, "$gdwx"); + std::string::basic_string((void **)&v144, "boxofchocolate"); + std::string::basic_string((void **)&v142, (char *)&byte_5173B0); + std::string::basic_string((void **)&String, "p_"); + std::string::basic_string((void **)&v136, "d_"); + std::string::basic_string((void **)&v133, "e_"); + std::string::basic_string((void **)v132, "gg"); + std::string::basic_string((void **)v131, (char *)&off_5174F9); + std::string::basic_string((void **)v130, (_BYTE *)&off_5174F9 + 2); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_Rb_tree( + v129, + (int)&v114); + exca = WXML::Compiler::Compile( + &v112, + (unsigned int *)v116, + v118, + v129, + &v110, + v82, + v108, + exc, + 10, + v130, + v131, + v132, + &v133, + &v136, + (int *)&String, + (int)&v142, + (int)&v144, + (int)&v146, + (int *)&Format); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)v129); + std::string::_M_dispose((void **)v130); + std::string::_M_dispose((void **)v131); + std::string::_M_dispose((void **)v132); + std::string::_M_dispose((void **)&v133); + std::string::_M_dispose((void **)&v136); + std::string::_M_dispose((void **)&String); + std::string::_M_dispose((void **)&v142); + std::string::_M_dispose((void **)&v144); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&Format); + std::string::_M_dispose((void **)&v152); + if ( exca ) + { + fprintf(&__iob[2], "%s\n", (const char *)v116[0]); + } + else + { + if ( FileName && *FileName ) + v50 = fopen(FileName, "w"); + else + v50 = &__iob[1]; + fprintf(v50, "%s\n", (const char *)v118[0]); + fclose(v50); + } + } + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v120); + std::string::_M_dispose(v118); + std::string::_M_dispose((void **)v116); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)&v114); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v112); + } + goto LABEL_177; // 清理数据 + } + v34 = (const char **)&WXML::GlassEaselWxs::sWxsEnvInit; + } + main::{lambda(std::string const&)#1}::operator()((const char **)&FileName, v34); + exca = 0; + goto LABEL_177; // 清理数据 + } + v140 = 0; + String = (char *)&v141; + LOBYTE(v141) = 0; + std::_Rb_tree_header::_Rb_tree_header(v143); + std::_Rb_tree_header::_Rb_tree_header(v145); + if ( ReadFile((char *)*v91, (unsigned int *)&String) ) + { + fprintf(&__iob[2], "Failed to read input from %s", *v91); + exca = -1; + } + else + { + JsonDict = GetJsonDict((int *)&String, (int)&v142); + exca = JsonDict; + if ( JsonDict ) + { + fprintf(&__iob[2], "Failed to read JSON at position %d (%c)", ~JsonDict, String[~JsonDict]); +LABEL_106: + exca = -2; + } + else + { + for ( m = (char **)v143[2]; m != v143; m = (char **)std::_Rb_tree_increment((int)m) ) + { + std::string::basic_string(&v152, (int)(m + 4)); + std::string::basic_string(v156, (int)(m + 10)); + v146 = (int)v148; + v147 = 0; + v148[0] = 0; + if ( night::compile_ns_no_wrapper((int)&v152, (int)v156, 1, (unsigned int *)&v146, 0) ) + { + fprintf(&__iob[2], "Error in file %s: %s\n", (const char *)v152, (const char *)v146); + std::string::_M_dispose((void **)&v146); + std::pair::~pair((void **)&v152); + goto LABEL_106; + } + v31 = snprintf(0, 0, WXML::GlassEaselWxs::sWrapper, v146) + 1; + v32 = (char *)operator new[](v31); + snprintf(v32, v31, WXML::GlassEaselWxs::sWrapper, v146); + std::string::basic_string((void **)&Format, v32); + v33 = std::map::operator[](&v144, (int)&v152); + std::string::operator=(v33, &Format); + std::string::_M_dispose((void **)&Format); + operator delete[](v32); + std::string::_M_dispose((void **)&v146); + std::pair::~pair((void **)&v152); + } + DictToJsonString((int)&v136, (int)&v144); + main::{lambda(std::string const&)#1}::operator()((const char **)&FileName, (const char **)&v136); + std::string::_M_dispose((void **)&v136); + } + } + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v144); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v142); + std::string::_M_dispose((void **)&String); +LABEL_177: + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v110); + std::string::_M_dispose(v109); + std::string::_M_dispose((void **)v108); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v106); + std::vector::~vector(&v97, v67); + std::vector::~vector(&v94, v68); + std::string::_M_dispose((void **)&v103); + std::string::_M_dispose((void **)&v100); + std::vector::~vector((void ***)&v91, v69); + return exca; +} \ No newline at end of file diff --git a/test/runner/module-windows.ts b/test/runner/module-windows.ts index 8b79a8d..f283ded 100644 --- a/test/runner/module-windows.ts +++ b/test/runner/module-windows.ts @@ -37,7 +37,7 @@ const HTTP = { // console.log('No more data in response.'); if (ret?.startsWith('server error')) { - console.log('error:', ret) + console.log('response error:\n', ret) } if (compilerOptions.lazyloadConfig || compilerOptions.lazyload) { diff --git a/test/spec/wcc/module/module.spec.ts b/test/spec/wcc/module/module.spec.ts index 83ed973..742e476 100644 --- a/test/spec/wcc/module/module.spec.ts +++ b/test/spec/wcc/module/module.spec.ts @@ -26,7 +26,7 @@ describe("wcc - module", function () { const w = await windows.wcc(p); const n = await linux.wcc(p, ''); // console.log('windows:', typeof w) - // console.log('linux:', typeof n) + // console.log('linux:', n) assert.equal(typeof n, typeof w); if (typeof w == 'string') diff --git a/test/spec/wcc/wxs/sample1.json b/test/spec/wcc/wxs/sample1.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/test/spec/wcc/wxs/sample1.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/spec/wcc/wxs/sample2.json b/test/spec/wcc/wxs/sample2.json new file mode 100644 index 0000000..0086773 --- /dev/null +++ b/test/spec/wcc/wxs/sample2.json @@ -0,0 +1 @@ +{"compile_placeholder.wxs":"/* compile_placeholder */"} \ No newline at end of file diff --git a/test/spec/wcc/wxs/sample3.json b/test/spec/wcc/wxs/sample3.json new file mode 100644 index 0000000..ec7d472 --- /dev/null +++ b/test/spec/wcc/wxs/sample3.json @@ -0,0 +1,3 @@ +{ + "pages/comm": "// /pages/comm.wxs\n\nvar foo = \"'hello world' from comm.wxs\";\nvar bar = function(d) {\n return d;\n}\nmodule.exports = {\n foo: foo,\n bar: bar\n};" +} \ No newline at end of file diff --git a/test/spec/wcc/wxs/wxs.spec.ts b/test/spec/wcc/wxs/wxs.spec.ts new file mode 100644 index 0000000..871eac1 --- /dev/null +++ b/test/spec/wcc/wxs/wxs.spec.ts @@ -0,0 +1,93 @@ + +import assert from 'assert'; +import path from 'path'; +import linux from '../../../runner/binary-linux' +import windows from '../../../runner/binary-windows' +import * as fs from 'fs' +import { describe } from "mocha"; + +describe("wcc - wxs", function () { + describe("wxs: node output should equal with wine", function () { + // afterEach(function(){ + // if(this.currentTest.state === 'failed'){ + // console.error('failed', this.currentTest) + // } + // }) + it("sample1", async function () { + const projectPath = path.resolve( + __dirname, + "../../../projects/miniprogram-demo/miniprogram" + ); + const p = path.resolve(__dirname, './sample1.json') + const args = [ + "--wxs", + p + ]; + const w = (await windows.wcc(args, projectPath)).replace(/\r\n/g, '\n') + const n = await linux.wcc(args, projectPath); + const storagePath = path.resolve( + __dirname, + `miniprogram-demo/${this.test?.title}` + ); + try { + fs.mkdirSync(storagePath, { recursive: true }); + } catch (error) {} + + assert.equal(typeof w, typeof n); + fs.writeFileSync(`${storagePath}/wine-output.js`, w); + fs.writeFileSync(`${storagePath}/node-output.js`, n); + assert.equal(w, n); + }); + + it("sample2", async function () { + const projectPath = path.resolve( + __dirname, + "../../../projects/miniprogram-demo/miniprogram" + ); + const p = path.resolve(__dirname, './sample2.json') + const args = [ + "--wxs", + p + ]; + const w = (await windows.wcc(args, projectPath)).replace(/\r\n/g, '\n') + const n = await linux.wcc(args, projectPath); + const storagePath = path.resolve( + __dirname, + `miniprogram-demo/${this.test?.title}` + ); + try { + fs.mkdirSync(storagePath, { recursive: true }); + } catch (error) {} + + assert.equal(typeof w, typeof n); + fs.writeFileSync(`${storagePath}/wine-output.js`, w); + fs.writeFileSync(`${storagePath}/node-output.js`, n); + assert.equal(w, n); + }); + it("sample3", async function () { + const projectPath = path.resolve( + __dirname, + "../../../projects/miniprogram-demo/miniprogram" + ); + const p = path.resolve(__dirname, './sample3.json') + const args = [ + "--wxs", + p + ]; + const w = (await windows.wcc(args, projectPath)).replace(/\r\n/g, '\n') + const n = await linux.wcc(args, projectPath); + const storagePath = path.resolve( + __dirname, + `miniprogram-demo/${this.test?.title}` + ); + try { + fs.mkdirSync(storagePath, { recursive: true }); + } catch (error) {} + + assert.equal(typeof w, typeof n); + fs.writeFileSync(`${storagePath}/wine-output.js`, w); + fs.writeFileSync(`${storagePath}/node-output.js`, n); + assert.equal(w, n); + }); + }); +}); diff --git a/test/wcc.disassembly.cpp b/test/wcc.disassembly.cpp index f5b3962..48ad4ac 100644 --- a/test/wcc.disassembly.cpp +++ b/test/wcc.disassembly.cpp @@ -73,9 +73,8 @@ void __cdecl __tcf_2(); // idb void __fastcall std::pair::~pair(void **a1); // void *__usercall __gnu_cxx::new_allocator::allocate@(unsigned int a1@); // _DWORD *__usercall std::__relocate_a_1>@(void **a1@, void **a2@, _DWORD *a3@); -unsigned int __thiscall std::string::basic_string(void **this, char *a2); -int __cdecl Usage(int a1, const char **a2); -int __cdecl ReadFile(char *FileName, unsigned int *a2); +int __thiscall std::string::basic_string(void **this, char *a2); +int __cdecl ReadFile(char *FileName, unsigned int **a2); _DWORD *__cdecl Trim(_DWORD *a1, int a2); _DWORD *__cdecl GetNextArg(_DWORD *a1, int *a2, int a3); void __fastcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree(int a1); @@ -99,9 +98,9 @@ int __cdecl WXML::Rewrite::ToStringCode2(int a1, int *a2); void __cdecl WXML::Rewrite::ToStringCode(int *a1, _DWORD *a2); int __cdecl WXML::Rewrite::ToStringCode(int a1, int *a2); int __cdecl WXML::Rewrite::GetToken(int a1, int a2); -unsigned int __thiscall std::string::basic_string(void **this, char *a2); -BOOL __cdecl WXML::Rewrite::RewriteRPX(int a1, unsigned int *a2, char *a3, char *a4); -int __cdecl WXML::Rewrite::RewriteImg(int a1, unsigned int *a2, int *a3, int a4, int a5); +int __thiscall std::string::basic_string(void **this, char *a2); +BOOL __cdecl WXML::Rewrite::RewriteRPX(int a1, unsigned int **a2, char *a3, char *a4); +int __cdecl WXML::Rewrite::RewriteImg(int a1, unsigned int **a2, int *a3, int a4, int a5); void __cdecl __tcf_1(); // idb void __cdecl __tcf_2_0(); // idb void __cdecl __tcf_3_0(); // idb @@ -154,7 +153,7 @@ void __fastcall std::vector::~vector(void ***a1); int snprintf_constprop_0(char *Buffer, int a2, char *Format, ...); int std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_clone_node,std::_Select1st>,std::less,std::allocator>>::_Alloc_node>(void); // weak int std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_clone_node,std::_Select1st>,std::less,std::allocator>>::_Alloc_node>(void); // weak -unsigned int __thiscall std::string::basic_string(void **this, char *a2); +int __thiscall std::string::basic_string(void **this, char *a2); void __fastcall std::_Vector_base::~_Vector_base(void **a1); int __thiscall night::NSStream::NSStream(_DWORD *this, int a2, int a3, int a4); _DWORD *__thiscall night::NSStream::next(_DWORD *ecx0, night::NSStream *this); @@ -190,37 +189,37 @@ _DWORD *__thiscall night::NSASTParse::is_op_or_comma(int *this, int a2); int __fastcall night::NSASTParse::end_line(int a1); // int __userpurge night::NSASTParse::is_op_self@(int a1@, night::NSASTParse *this, bool a3); // bool __userpurge night::NSASTParse::is_obj_op_self@(int *a1@, night::NSASTParse *this, bool a3); -_DWORD *__fastcall night::NSToken::next(int a1); +_DWORD *__fastcall night::NSToken::next(int); unsigned __int8 __thiscall night::NSASTParse::ignore_punc_pass_sem(int *this, int a2); _DWORD *__thiscall night::NSASTParse::ignore_punc(int *this, int a2); _DWORD *__thiscall night::NSASTParse::ignore_buildin_kw(int *this, int a2); _DWORD *__thiscall night::NSASTParse::ignore_op(int *this, int a2); _DWORD *__fastcall night::NSASTParse::ast_trans_kw(int *a1); // _DWORD *__userpurge night::NSASTParse::ast_dispatch@(_DWORD *a1@, night::NSASTParse *this, bool a3); -_DWORD *__fastcall night::NSASTParse::ast_op_self(int a1); +_DWORD *__fastcall night::NSASTParse::ast_op_self(_DWORD *a1); int __thiscall night::NSASTParse::make_binary_or_just_value(_DWORD *this, int a2, unsigned __int8 a3); _DWORD *__fastcall night::NSASTParse::ast_expression_no_comma(int *a1); -int __fastcall night::NSASTParse::ast_varname(int a1); -_DWORD *__thiscall night::NSASTParse::ast_obj_op_self(_DWORD *this, int a2); +_DWORD *__fastcall night::NSASTParse::ast_varname(int *a1); +_DWORD *__thiscall night::NSASTParse::ast_obj_op_self(int *this, int a2); _DWORD *__thiscall night::NSASTParse::ast_obj_dot(int *this, int a2); -unsigned int *__fastcall night::NSASTParse::ast_if(int *a1); +unsigned int **__fastcall night::NSASTParse::ast_if(int *a1); _DWORD *__fastcall night::NSASTParse::ast_ternary_expression(int *a1); void **__thiscall night::NSASTParse::make_list_by_parser(int *this, int a2, int a3, int a4, int a5, char a6, int a7, int a8); _DWORD *__thiscall night::NSASTParse::ast_call(int *this, int a2); -_DWORD *__thiscall night::NSASTParse::make_call_or_just_expression(int *this, int a2); +_DWORD *__thiscall night::NSASTParse::make_call_or_just_expression(int *this, _DWORD *a2); _DWORD *__fastcall night::NSASTParse::ast_expression(int *a1); _DWORD *__thiscall night::NSASTParse::ast_obj_op(int *this, int a2); _DWORD *__fastcall night::NSASTParse::ast_while(int *a1); _DWORD *__fastcall night::NSASTParse::ast_do_while(int *a1); _DWORD *__fastcall night::NSASTParse::ast_switch(int *a1); -_DWORD *__fastcall night::NSASTParse::top_down(int *a1); -_DWORD *__fastcall night::NSASTParse::ast_require(int *a1); +unsigned int **__fastcall night::NSASTParse::top_down(int *a1); +unsigned int **__fastcall night::NSASTParse::ast_require(int *a1); _DWORD *__fastcall night::NSASTParse::ast_code_block(int *a1); _DWORD *__fastcall night::NSASTParse::ast_function(int *a1); _DWORD *__fastcall night::NSASTParse::ast_new_array(int *a1); _DWORD *__fastcall night::NSASTParse::ast_for(int *a1); _DWORD *__fastcall night::NSASTParse::ast_obj_block(int *a1); -_DWORD *__fastcall night::NSASTParse::ast_var(_DWORD *a1); +unsigned int **__fastcall night::NSASTParse::ast_var(_DWORD *a1); _DWORD *__fastcall night::NSASTParse::ast_expression_no_binary(int *a1); void __fastcall std::vector::~vector(void ***a1, int a2); void __fastcall night::NSCompileJs::~NSCompileJs(int a1, int a2); @@ -232,7 +231,7 @@ int __thiscall night::NSCompileJs::compile_if[abi:cxx11](int this, int a2, _DWOR _DWORD *__thiscall night::NSCompileJs::compile_for[abi:cxx11](_DWORD *this, int a2, int a3); int __thiscall night::NSCompileJs::compile_while[abi:cxx11](int this, int a2, int a3); int __thiscall night::NSCompileJs::compile_do_while[abi:cxx11](int this, int a2, int a3); -int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, int a3); +int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, _DWORD **a3); int __thiscall night::NSCompileJs::compile_obj_self_op[abi:cxx11](int this, int a2, int a3); int __thiscall night::NSCompileJs::compile_obj_property[abi:cxx11](int this, int a2, int a3); int __thiscall night::NSCompileJs::compile_obj_dot[abi:cxx11](int this, int a2, int a3); @@ -243,10 +242,10 @@ _DWORD *__thiscall night::NSCompileJs::compile_assign[abi:cxx11](_DWORD *this, i int __thiscall night::NSCompileJs::compile_call[abi:cxx11](int this, int a2, int a3); int __thiscall night::NSCompileJs::compile_prog[abi:cxx11](int this, int a2, int a3); int __thiscall night::NSCompileJs::compile_prog_no_sem[abi:cxx11](int this, int a2, int a3); -_DWORD *__thiscall night::NSCompileJs::compile_once(_DWORD *this, int a2, unsigned int *a3, int a4, char a5); -int __cdecl night::compile_ns_no_wrapper(int a1, int a2, int a3, unsigned int *a4, char a5); -int __cdecl night::compile_ns(int a1, int a2, int a3, int a4, unsigned int *a5, char a6); -int __cdecl night::compile_ns_with_sourcemap(int *a1, int a2, int a3, int a4, int a5, unsigned int *a6, int a7); +_DWORD *__thiscall night::NSCompileJs::compile_once(_DWORD *this, int a2, unsigned int **a3, int a4, char a5); +int __cdecl night::compile_ns_no_wrapper(int a1, int a2, int a3, unsigned int **a4, char a5); +int __cdecl night::compile_ns(int a1, int a2, int a3, int a4, unsigned int **a5, char a6); +int __cdecl night::compile_ns_with_sourcemap(int *a1, int a2, int a3, int a4, int a5, unsigned int **a6, int a7); void __cdecl __tcf_0(); // idb void __cdecl __tcf_1_0(); // idb void __cdecl __tcf_2_1(); // idb @@ -329,7 +328,7 @@ void __cdecl __tcf_38_2(); // idb void __cdecl __tcf_39_1(); // idb int __cdecl night::str::path_combine(_DWORD *a1, _DWORD *a2, _DWORD *a3); int __cdecl night::str::get_token(int a1, _DWORD *a2, unsigned int a3); -int __cdecl night::readfile(char *FileName, unsigned int *a2); +int __cdecl night::readfile(char *FileName, unsigned int **a2); int __cdecl night::writefile(char *FileName, int a2); // idb void __cdecl __tcf_3_3(); // idb void __cdecl __tcf_4_3(); // idb @@ -379,7 +378,7 @@ void __fastcall WXML::NameAllocator::~NameAllocator(int a1); int snprintf_constprop_0_0(char *Buffer, int a2, int a3, ...); BOOL __fastcall std::__shared_ptr,std::allocator>,(__gnu_cxx::_Lock_policy)2>::__shared_ptr,std::allocator>>>(_DWORD *a1); int __cdecl WXML::Compiler::GetVersionInfo(int a1, int *a2); -int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **a1); +int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **); int __fastcall WXML::DOMLib::Token::~Token(int a1); void __fastcall std::vector::~vector(void **a1); _DWORD *__thiscall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(_DWORD *this, int a2); @@ -389,30 +388,30 @@ void __fastcall std::_Rb_tree,std::less,std::allocator>::~_Rb_tree(int a1); // int __usercall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_lower_bound@(int a1@, int a2@, int a3@); // int __usercall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_lower_bound@(int a1@, int a2@, int a3@); -unsigned int __thiscall std::string::basic_string(void **this, unsigned __int8 *a2); +int __thiscall std::string::basic_string(void **this, unsigned __int8 *a2); void **__cdecl WXML::Compiler::WXMLHelperCode[abi:cxx11](void **a1); void **__cdecl WXML::Compiler::GetFuncId(void **a1, _DWORD *a2, int a3); void __fastcall std::vector::~vector(void ***a1, int a2); -void __thiscall std::vector::_M_move_assign(void *this, int *a2); +void __thiscall std::vector::_M_move_assign(void ***this, void ***a2); void __fastcall std::deque::~deque(int a1); int __fastcall WXML::DOMLib::Parser::~Parser(int a1); -unsigned int __cdecl WXML::Compiler::ParseWxmlSource(int a1, int *a2, unsigned int *a3, _DWORD *a4, _DWORD *a5); -unsigned int __cdecl WXML::Compiler::DealWxsTag(int a1, int **a2, _DWORD *a3, int a4, int *a5, _DWORD *a6, unsigned int *a7); -int __cdecl WXML::Compiler::RenderDefine(unsigned int **a1, int *a2, _DWORD *a3, int a4, int a5, int a6, unsigned __int8 a7, int a8, char a9, int *a10, int *a11, int *a12, int a13, int *a14, int *a15, int *a16, int a17, int a18, int a19, int *a20); -int __cdecl WXML::Compiler::ProcessWxsInline(int *a1, int *a2, char a3, int a4, int *a5, _DWORD *a6, unsigned int *a7, _DWORD *a8, _DWORD *a9, int a10, char a11); +int __cdecl WXML::Compiler::ParseWxmlSource(int a1, int *a2, unsigned int **a3, _DWORD *a4, _DWORD *a5); +int __cdecl WXML::Compiler::DealWxsTag(int a1, int **a2, _DWORD *a3, int a4, int *a5, _DWORD *a6, unsigned int **a7); +int __cdecl WXML::Compiler::RenderDefine(unsigned int ***a1, int *a2, _DWORD *a3, int a4, int a5, int a6, unsigned __int8 a7, int a8, char a9, int *a10, int *a11, int *a12, int a13, int *a14, int *a15, int *a16, int a17, int a18, int a19, int *a20); +int __cdecl WXML::Compiler::ProcessWxsInline(int *a1, int *a2, char a3, int a4, int *a5, _DWORD *a6, unsigned int **a7, _DWORD *a8, _DWORD *a9, int a10, char a11); int __cdecl WXML::Compiler::ProcessWxsFile(int *a1, int a2, char a3, int a4, _DWORD *a5, _DWORD *a6); -unsigned int __cdecl WXML::Compiler::Compile(_DWORD *a1, unsigned int *a2, _DWORD *a3, _DWORD *a4, _DWORD *a5, char a6, int *a7, int a8, char a9, int *a10, int *a11, int *a12, int *a13, int *a14, int *a15, int a16, int a17, int a18, int *a19); -unsigned int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies(int a1, unsigned int *a2, _DWORD *a3, _DWORD *a4, _DWORD *a5); +unsigned int __cdecl WXML::Compiler::Compile(_DWORD *a1, unsigned int **a2, _DWORD *a3, _DWORD *a4, _DWORD *a5, char a6, int *a7, int a8, char a9, int *a10, int *a11, int *a12, int *a13, int *a14, int *a15, int a16, int a17, int a18, int *a19); +int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies(int a1, unsigned int **a2, _DWORD *a3, _DWORD *a4, _DWORD *a5); _DWORD std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_clone_node>,std::_Select1st>>,std::less,std::allocator>>>::_Alloc_node>(); // weak -int __cdecl WXML::Compiler::CompileLazyWithParsed(_DWORD *a1, _DWORD *a2, int a3, int a4, unsigned int *a5, _DWORD *a6, _DWORD *a7, int a8, _DWORD *a9, std::_Rb_tree_header *a10, char a11, char a12, _DWORD *a13, int a14, _DWORD *a15, char a16, int a17, int a18, char a19, int *a20, int *a21, int *a22, int *a23, int *a24, int *a25, int a26, int a27, int a28, int *a29); -int __cdecl WXML::Compiler::CompileLazy(std::_Rb_tree_header *a1, unsigned int *a2, _DWORD *a3, _DWORD *a4, _DWORD *a5, int a6, int a7, std::_Rb_tree_header *a8, char a9, _DWORD *a10, int a11, _DWORD *a12, char a13, int a14, int a15, char a16, int *a17, int *a18, int *a19, int *a20, int *a21, int *a22, int a23, int a24, int a25, int *a26); +int __cdecl WXML::Compiler::CompileLazyWithParsed(_DWORD *a1, _DWORD *a2, int a3, int a4, unsigned int **a5, _DWORD *a6, _DWORD *a7, int a8, _DWORD *a9, std::_Rb_tree_header *a10, char a11, char a12, _DWORD *a13, int a14, _DWORD *a15, char a16, int a17, int a18, char a19, int *a20, int *a21, int *a22, int *a23, int *a24, int *a25, int a26, int a27, int a28, int *a29); +int __cdecl WXML::Compiler::CompileLazy(std::_Rb_tree_header *a1, unsigned int **a2, _DWORD *a3, _DWORD *a4, _DWORD *a5, int a6, int a7, std::_Rb_tree_header *a8, char a9, _DWORD *a10, int a11, _DWORD *a12, char a13, int a14, int a15, char a16, int *a17, int *a18, int *a19, int *a20, int *a21, int *a22, int a23, int a24, int a25, int *a26); void __thiscall WXML::NameAllocator::NameAllocator(_DWORD *this, int a2, int a3); void __thiscall WXML::NameAllocator::GetNextName(int *this, _DWORD *a2); // void __usercall std::_Vector_base::_M_deallocate(void *a1@); // _DWORD *__usercall std::__relocate_a_1>@(void **a1@, void **a2@, _DWORD *a3@); void __fastcall std::vector::~vector(void ***a1); void __cdecl MMBizWxaAppComm::SplitBySlash(_DWORD *a1, void ***a2); -int __cdecl MMBizWxaAppComm::PathCombine(_DWORD *a1, _DWORD *a2, unsigned int *a3); +int __cdecl MMBizWxaAppComm::PathCombine(_DWORD *a1, _DWORD *a2, unsigned int **a3); int __cdecl MMBizWxaAppComm::PathCombine(int a1, _DWORD *a2, _DWORD *a3); bool __cdecl WXML::DOMLib::AttrsCompartor(int a1, int a2); void __cdecl __tcf_1_2(); // idb @@ -425,12 +424,11 @@ void __fastcall std::vector::~vector(void **a1); // int __userpurge WXML::DOMLib::WXMLDom::GenRawId@(_DWORD *a1@, WXML::DOMLib::WXMLDom *this, unsigned __int64 *a3); _DWORD *__thiscall WXML::DOMLib::Parser::GetParsed(_DWORD *ecx0, WXML::DOMLib::Parser *this); -void __fastcall WXML::DOMLib::Parser::Match(int a1); bool __stdcall WXML::DOMLib::Parser::IsValidTag(const char **a1); _DWORD *__fastcall WXML::DOMLib::Parser::Peek(_DWORD *a1); int __cdecl WXML::DOMLib::WXMLDom::Error(int a1, int *a2, int a3, int *a4, int *a5); int __cdecl WXML::DOMLib::joinString(int a1, _DWORD *a2, char a3); -int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **a1); +int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **); int __fastcall WXML::DOMLib::Token::~Token(int a1); // void __usercall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_drop_node(void **a1@); void __fastcall std::pair::~pair(void **a1); @@ -443,34 +441,34 @@ int __cdecl WXML::DOMLib::splitString(int a1, int *a2, char a3); int __cdecl WXML::DOMLib::resolvePath(int a1, int *a2, int *a3); int __fastcall WXML::DOMLib::Parser::ATTR(WXML::DOMLib::Parser *a1); int __fastcall WXML::DOMLib::Parser::ATTR_LIST(WXML::DOMLib::Parser *a1); -unsigned int __thiscall std::string::basic_string(void **this, char *a2); +int __thiscall std::string::basic_string(void **this, char *a2); void **__cdecl WXML::DOMLib::removern(void **a1, _DWORD *a2); int __thiscall WXML::DOMLib::WXMLDom::AddTestAttr(_DWORD *this, int *a2, int a3, char a4); // int __usercall WXML::DOMLib::WXMLDom::RewriteTree@(int a1@, const char **a2@); int __fastcall WXML::DOMLib::Parser::DOM(WXML::DOMLib::Parser *a1); int __fastcall WXML::DOMLib::Parser::DOMS(WXML::DOMLib::Parser *a1); -unsigned int __thiscall WXML::DOMLib::Parser::Parse(WXML::DOMLib::Parser *this, int a2, unsigned int *a3, int a4, _DWORD *a5); +int __thiscall WXML::DOMLib::Parser::Parse(WXML::DOMLib::Parser *this, int a2, unsigned int **a3, int a4, _DWORD *a5); unsigned int __cdecl WXML::DOMLib::recurseDependencies(int *a1, int *a2, _DWORD *a3); int __fastcall WXML::DOMLib::WXMLDom::RecordAllPath(int a1); void __fastcall std::deque>::~deque(int a1); void __fastcall WXML::EXPRLib::Parser::~Parser(int a1); -int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps(int *a1, unsigned int *a2, int a3, _DWORD *a4, _DWORD *a5, char a6, int a7, char a8, int *a9, char a10, int a11); -int __thiscall WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord(_DWORD *this, int *a2, unsigned int *a3, int a4, _DWORD *a5, int *a6, unsigned __int8 a7, int a8); +int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps(int *a1, unsigned int **a2, int a3, _DWORD *a4, unsigned int **a5, char a6, int a7, char a8, int *a9, char a10, int a11); +int __thiscall WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord(unsigned int **this, int *a2, unsigned int **a3, int a4, _DWORD *a5, int *a6, unsigned __int8 a7, int a8); int __thiscall WXML::DOMLib::WXMLDom::RenderNonDefine(int this, int *a2, int *a3, int a4, int *a5, int a6, int *a7, int *a8, int *a9, int *a10, int *a11, char a12, unsigned __int8 a13, int a14, int a15); int __thiscall WXML::DOMLib::WXMLDom::RenderChildren(_DWORD *this, int *a2, int *a3, int a4, int *a5, int a6, int *a7, int *a8, int *a9, int *a10, int *a11, char a12, unsigned __int8 a13, int a14, int a15); int __thiscall WXML::DOMLib::WXMLDom::RenderMeAsFunction(_DWORD *this, int *a2, int *a3, int a4, int *a5, int a6, int *a7, int *a8, int *a9, int *a10, int *a11, int *a12, char a13, int *a14, char a15, unsigned __int8 a16, int a17, int *a18); void __cdecl __tcf_0_0(); // idb // volatile signed __int32 *__usercall __gnu_cxx::__atomic_add_dispatch@(volatile signed __int32 *result@); -int __fastcall WXML::DOMLib::Machine::Reset(_DWORD *a1); +int __fastcall WXML::DOMLib::Machine::Reset(_DWORD *); void WXML::DOMLib::Machine::InitTransitTable(); void __thiscall WXML::DOMLib::Machine::Machine(int this, int a2); -int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **a1); +int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **); int __fastcall WXML::DOMLib::Token::~Token(int a1); // int __usercall std::__relocate_a_1>@(int a1@, int a2@, int a3@); -int __thiscall WXML::DOMLib::Machine::Feed(int *this, unsigned __int8 a2, int a3, _DWORD *a4, int a5, int a6); +int __thiscall WXML::DOMLib::Machine::Feed(int *this, char a2, int a3, _DWORD *a4, int a5, int a6); volatile signed __int32 **__thiscall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(volatile signed __int32 **this, volatile signed __int32 *a2); _DWORD __stdcall WXML::DOMLib::Tokenizer::Tokenizer(_DWORD, _DWORD); // weak -unsigned int __thiscall WXML::DOMLib::Tokenizer::GetTokens(char *this, _DWORD *a2, unsigned int *a3, _DWORD *a4); +int __thiscall WXML::DOMLib::Tokenizer::GetTokens(char *this, _DWORD *a2, unsigned int **a3, _DWORD *a4); int __cdecl vsnprintf_1(char *const Buffer, const size_t BufferCount, const char *const Format, va_list ArgList); void __cdecl __tcf_0_1(); // idb int (__stdcall *__fastcall std::_Function_base::~_Function_base(int a1))(int, int, int, int, int, int); @@ -481,40 +479,40 @@ void __fastcall std::_Rb_tree>::~vector(void **a1); void __cdecl WXML::Compiler::CalculateOutputChunkKeys(_DWORD *a1, int a2, int a3, int a4, _DWORD *a5); void __cdecl __tcf_1_3(); // idb -unsigned int __thiscall std::string::basic_string(void **this, char *a2); +int __thiscall std::string::basic_string(void **this, char *a2); // volatile signed __int32 *__usercall __gnu_cxx::__atomic_add_dispatch@(volatile signed __int32 *result@); std::ostream::sentry *__cdecl WXML::EXPRLib::OutputAsStringOrKeyWord(int a1, int *a2, int a3, _BYTE *a4); int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(int *this, int a2, int a3, _BYTE *a4); -int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **a1); +int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **); void __fastcall std::vector::~vector(void **a1); void __fastcall std::vector>::~vector(void **a1); // _DWORD *__usercall std::__relocate_a_1>@(_DWORD *a1@, _DWORD *a2@, _DWORD *a3@); volatile signed __int32 **__thiscall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(volatile signed __int32 **this, volatile signed __int32 *a2); -int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderCode(int *this, WXML::EXPRLib::Token *a2, int *a3, int *a4, int *a5, int *a6, int *a7, char a8, int a9); -// int __userpurge WXML::EXPRLib::Parser::Parse@(int a1@, void (__cdecl *a2)(void *)@, char **a3, int a4, int a5, int a6, unsigned int *a7, char a8); +int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderCode(char **this, WXML::EXPRLib::Token *a2, int *a3, int *a4, int *a5, int *a6, int *a7, char a8, int a9); +// int __userpurge WXML::EXPRLib::Parser::Parse@(int a1@, void (__cdecl *a2)(void *)@, char **a3, int a4, int a5, int a6, unsigned int **a7, char a8); void __cdecl __tcf_0_2(); // idb void __cdecl __tcf_0_3(); // idb -const char *__fastcall WXML::EXPRLib::Token::GetTokenName(const char **a1); -const char *__fastcall WXML::EXPRLib::Token::GetLiteral(_DWORD *a1); +const char *__fastcall WXML::EXPRLib::Token::GetTokenName(const char **); +const char *__fastcall WXML::EXPRLib::Token::GetLiteral(_DWORD *); void WXML::EXPRLib::Tokenizer::InitTransitTable(); -int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **a1); +int __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **); // _DWORD *__usercall std::__relocate_a_1>@(_DWORD *a1@, _DWORD *a2@, _DWORD *a3@); -unsigned int __thiscall WXML::EXPRLib::Tokenizer::Tokenizer(void **this, char *a2, int a3, int a4, int a5); -int __thiscall WXML::EXPRLib::Tokenizer::GetTokens(int *this, int a2, unsigned int *a3); +int __thiscall WXML::EXPRLib::Tokenizer::Tokenizer(void **this, char *a2, int a3, int a4, int a5); +int __thiscall WXML::EXPRLib::Tokenizer::GetTokens(int *this, int a2, unsigned int **a3); void __cdecl __tcf_1_4(); // idb -unsigned int __thiscall std::string::basic_string(void **this, char *a2); +int __thiscall std::string::basic_string(void **this, char *a2); // volatile signed __int32 *__usercall __gnu_cxx::__atomic_add_dispatch@(volatile signed __int32 *result@); void __fastcall std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(volatile signed __int32 **a1); void __fastcall std::vector>::~vector(void **a1); void __fastcall std::vector::~vector(void ***a1); -void __thiscall std::vector::_M_move_assign(void *this, int *a2); +void __thiscall std::vector::_M_move_assign(void ***this, void ***a2); int WXML::EXPRLib::TransitTable::GetExprNTType(); int WXML::EXPRLib::TransitTable::GetAttrListNTType(); int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_move_assign(int this, _DWORD *a2); void __fastcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree(int a1); _DWORD WXML::EXPRLib::TransitTable::Init(WXML::EXPRLib::TransitTable *__hidden this); // idb void __cdecl __tcf_0_4(); // idb -int __cdecl WXML::StringTemplating::Deal(const char *a1, int a2, _DWORD *a3, _BYTE *a4); +int __cdecl WXML::StringTemplating::Deal(const char *a1, int a2, void **a3, _BYTE *a4); // LPTOP_LEVEL_EXCEPTION_FILTER __stdcall SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter); // HMODULE __stdcall LoadLibraryA(LPCSTR lpLibFileName); // FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName); @@ -536,35 +534,35 @@ int __cdecl WXML::StringTemplating::Deal(const char *a1, int a2, _DWORD *a3, _BY // BOOL __usercall next_is_type_qual_isra_0@(char *a1@); // int __usercall d_discriminator@(int a1@); _BYTE *__cdecl d_growable_string_callback_adapter(void *Src, size_t Size, unsigned int *a3); -// _DWORD *__usercall d_index_template_argument_part_0@(_DWORD *result@, int a2@); -// _DWORD *__usercall d_lookup_template_argument_isra_0@(int a1@, int *a2@); +// _DWORD *__usercall d_index_template_argument_part_0@(_DWORD *result@, int@); +// _DWORD *__usercall d_lookup_template_argument_isra_0@(int@, int *@); // _DWORD *__usercall d_find_pack@(int a1@, _DWORD *a2@, int a3@); -// _DWORD *__usercall d_exprlist@(_DWORD *a1@, char a2@
); -// _DWORD *__usercall d_expression_1@(_DWORD *a1@); +// unsigned int *__usercall d_exprlist@(_DWORD *a1@, char a2@
); +// unsigned int *__usercall d_expression_1@(_DWORD *a1@); // int *__usercall d_template_arg@(_DWORD *a1@, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, int a11, int a12); // _DWORD *__usercall d_template_args_1@(_DWORD *a1@); -// _DWORD *__usercall d_template_args@(_DWORD *a1@); +// _DWORD *__usercall d_template_args@(_DWORD *@); // unsigned int *__usercall d_encoding@(int a1@, int a2@, int a3@); // int *__usercall d_name@(_DWORD *a1@, int a2@); // int *__usercall d_type@(int a1@, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, int a11, int a12); // _DWORD *__usercall d_operator_name@(_DWORD *a1@); // int __usercall d_parmlist@(_DWORD *a1@); // int **__usercall d_cv_qualifiers@(_DWORD *a1@, int **a2@, int a3@); -// _DWORD *__usercall d_bare_function_type@(_DWORD *a1@, int a2@); +// _DWORD *__usercall d_bare_function_type@(_DWORD *@, int@); // _DWORD *__usercall d_function_type@(int a1@); // _DWORD *__usercall d_unqualified_name@(_DWORD *a1@); -// _DWORD *__usercall d_expr_primary@(_DWORD *a1@); +// unsigned int *__usercall d_expr_primary@(_DWORD *a1@); // int __usercall d_print_comp@(int result@, int a2@, int *a3@); -// int __usercall d_print_mod@(int a1@, int a2@, _DWORD *a3@); -// int __usercall d_print_function_type_isra_0@(int a1@, int a2@, int *a3@, int **a4); +// int __usercall d_print_mod@(int a1@, int a2@, int *a3@); +// int __usercall d_print_function_type_isra_0@(int a1@, int a2@, int **a3@, int **a4); // int __usercall d_print_mod_list@(int result@, int a2@, int **a3@, int a4); -// int __usercall d_print_array_type_isra_0@(int a1@, int a2@, int *a3@, int **a4); -// int __usercall d_print_expr_op@(int a1@, int a2@, _DWORD *a3@); -// int __usercall d_print_subexpr@(int a1@, int a2@, _DWORD *a3@); +// int __usercall d_print_array_type_isra_0@(int a1@, int a2@, int **a3@, int **a4); +// int __usercall d_print_expr_op@(int a1@, int a2@, int *a3@); +// int __usercall d_print_subexpr@(int a1@, int a2@, int *a3@); // int __usercall d_maybe_print_fold_expression_isra_0@(int a1@, int a2@, int a3@, int a4); -// BOOL __usercall d_demangle_callback_constprop_0@(char *a1@, int a2@, int a3@); +// BOOL __usercall d_demangle_callback_constprop_0@(char *a1@, void (__cdecl *a2)(_DWORD *, int, int)@, int a3@); char *__cdecl __cxa_demangle(const char *lpmangled, char *lpout, size_t *lpoutlen, int *lpstatus); -unsigned int __cdecl __gcclibcxx_demangle_callback(char *a1, int a2, int a3); +unsigned int __cdecl __gcclibcxx_demangle_callback(char *a1, void (__cdecl *a2)(_DWORD *, int, int), int a3); char **_setargv(); // unsigned int __usercall __cpu_features_init@(__int32 a1@); void __cdecl __do_global_dtors(); // idb @@ -572,7 +570,6 @@ int __do_global_ctors(); int __main(); int __stdcall TlsCallback_1(int a1, int a2, int a3); int __stdcall __dyn_tls_init(int a1, int a2, int a3); -int __tlregdtor(); void sub_44DE90(); int __cdecl ___w64_mingwthr_add_key_dtor(int a1, int a2); int __cdecl ___w64_mingwthr_remove_key_dtor(int a1); @@ -584,8 +581,7 @@ int __cdecl fesetenv(const fenv_t *Env); long double __cdecl strtold(const char *String, char **EndPtr); int *__cdecl __increment_D2A(int *a1); // int __usercall sub_44E5C0@(int *a1@, int *a2@, _DWORD *a3@, double a4, int a5, int a6, _DWORD *a7); -_DWORD *__cdecl __decrement_D2A(int a1); -int *__cdecl __set_ones_D2A(unsigned int a1, int a2); +int *__cdecl __set_ones_D2A(int *a1, int a2); int __cdecl __strtodg(unsigned __int8 *a1, unsigned __int8 **a2, int *a3, int *a4, int *a5); int __cdecl __hexnan_D2A(unsigned __int8 **a1, int *a2, int *a3); // void __usercall sub_450AB0(int a1@); @@ -596,17 +592,16 @@ int *__cdecl __multadd_D2A(int *a1, int a2, int a3); int *__cdecl __i2b_D2A(int a1); int *__cdecl __mult_D2A(int a1, int a2); int __cdecl __pow5mult_D2A(int *a1, int a2); -int *__cdecl __lshift_D2A(_DWORD *a1, int a2); +int *__cdecl __lshift_D2A(char *a1, int a2); int __cdecl __cmp_D2A(int a1, int a2); int *__cdecl __diff_D2A(int a1, int a2); long double __cdecl __b2d_D2A(int a1, _DWORD *a2); int *__cdecl __d2b_D2A(double a1, _DWORD *a2, _DWORD *a3); -int __cdecl __strcp_D2A(__int64 a1); float __cdecl strtof(const char *String, char **EndPtr); unsigned __int64 __cdecl strtoull(const char *String, char **EndPtr, int Radix); wint_t __cdecl btowc(int Ch); int __cdecl vsnprintf_2(char *const Buffer, const size_t BufferCount, const char *const Format, va_list ArgList); -void *__cdecl __mingw_realloc(unsigned int a1, size_t a2); +int __cdecl __mingw_realloc(unsigned int a1, size_t a2); int __cdecl __mingw_free(unsigned int a1); // char *__usercall sub_451D30@(char *a1@, int a2@, __int16 a3@); // int __usercall sub_452060@(char *a1@, _BYTE *a2@, int a3@); @@ -614,8 +609,8 @@ int __cdecl __mingw_free(unsigned int a1); // int __usercall sub_452330@(int a1@, _DWORD *a2@); // int __usercall sub_452390@(_DWORD *a1@, _DWORD *a2@, int a3@); // int __usercall sub_4523E0@(_DWORD *a1@); -// int __usercall sub_452430@(char *a1@, unsigned int a2@, int a3@, _DWORD *a4); -int *__cdecl __mingw_glob(char *Str, int a2, int a3, char **a4); +// int __usercall sub_452430@(char *a1@, unsigned int a2@, int (__cdecl *a3)(_DWORD, int)@, _DWORD *a4); +int *__cdecl __mingw_glob(char *Str, int a2, int (__cdecl *a3)(_DWORD, int), char **a4); int __cdecl __mingw_globfree(int a1); char *__cdecl __mingw_dirname(char *Source); // HANDLE __usercall sub_453250@(const CHAR *lpFileName@, int a2@); @@ -630,7 +625,7 @@ int __mingw_mbrtowc_codeset_init(); UINT __cdecl __mingw_mbrlen_cur_max_init(UINT a1); int __mingw_mbrlen_cur_max(); int __cdecl __mingw_mbtowc_convert(LPCCH lpMultiByteStr, int a2, LPWSTR lpWideCharStr, int cchWideChar); // idb -int __cdecl __mingw_mbrscan_begin(_WORD **a1, int *a2, int *a3, unsigned int *a4); +int __cdecl __mingw_mbrscan_begin(_WORD **a1, int *a2, unsigned int *a3, unsigned int *a4); int __cdecl __mingw_mbtowc_copy(LPWSTR a1, LPCCH a2, unsigned int a3); size_t __cdecl mbrtowc(wchar_t *DstCh, const char *SrcCh, size_t SizeInBytes, mbstate_t *State); size_t __cdecl wcrtomb(char *Dest, wchar_t Source, mbstate_t *State); @@ -651,7 +646,7 @@ _DWORD *__cdecl __copybits_D2A(_DWORD *a1, int a2, int a3); int __cdecl __any_on_D2A(int a1, int a2); int *__cdecl __sum_D2A(int *a1, int *a2); int hexdig_init_D2A(); -// int __usercall sub_455040@(int *a1@); +// int __usercall sub_455040@(char **a1@); // int *__usercall sub_455100@(int a1@, __int64 a2, int a3, int a4, int a5, int *a6, int *a7); // int __usercall sub_455200@(int result@, int a2@); // int __usercall sub_455260@(int a1@, int a2@, int a3@); @@ -664,28 +659,28 @@ int hexdig_init_D2A(); // int __usercall sub_455710@(unsigned __int8 *a1@); // int __usercall sub_455790@(int a1@); // int __usercall sub_455840@(int a1@, int a2@); -// int __usercall sub_455880@(unsigned int a1@, unsigned int a2@, int a3@); -// int __usercall sub_455C50@(int a1@, _BYTE *a2@, int a3@, int a4); -// int __usercall sub_455FC0@(int a1@, _BYTE *a2@, int a3@, _DWORD *a4); +// int __usercall sub_455880@(unsigned int a1@, unsigned int a2@, _DWORD *a3@); +// int __usercall sub_455C50@(int a1@, char *a2@, int a3@, int a4); +// int __usercall sub_455FC0@(int a1@, char *a2@, int a3@, _DWORD *a4); // void __usercall sub_456090(_DWORD *a1@, long double a2); // void __usercall sub_456140(int a1@, long double a2); // void __usercall sub_456210(_DWORD *a1@, long double a2); // int __usercall sub_4563A0@(_DWORD *a1@, long double a2); -// int __usercall sub_456950@(int a1@, int a2@, int a3@, int a4); +// int *__usercall sub_456950@(int a1@, unsigned int a2@, unsigned int a3@, int a4); int __cdecl __mingw_pformat(__int16 a1, int a2, int a3, char *a4, double *a5); unsigned int __cdecl __mingw_memalign_base(unsigned int a1, unsigned int *a2); -void *__cdecl __mingw_memalign_realloc(int a1, int *a2, size_t a3); +int __cdecl __mingw_memalign_realloc(int a1, int *a2, size_t a3); int __mb_codeset_for_locale(); UINT __cdecl __mb_cur_max_for_codeset(UINT CodePage); -int __cdecl __mingw_mbrtowc_handler(_WORD *a1, int a2, unsigned int a3, _DWORD *a4); +unsigned int __cdecl __mingw_mbrtowc_handler(_WORD *a1, int a2, unsigned int a3, _DWORD *a4); int __mingw_wctomb_codeset_init(); UINT __cdecl __mingw_wctomb_cur_max_init(UINT a1); int __mingw_wctomb_cur_max(); UINT __cdecl __mingw_wctomb_convert(LPSTR lpMultiByteStr, int cbMultiByte, WCHAR *lpWideCharStr, int cchWideChar); -int *__cdecl __gdtoa(int *a1, int a2, int *a3, int *a4, int a5, int a6, int *a7, int **a8); +int *__cdecl __gdtoa(int *a1, int a2, int *a3, int *a4, int a5, int a6, int *a7, char **a8); int *__cdecl __rv_alloc_D2A(unsigned int a1); -int *__cdecl __nrv_alloc_D2A(char *a1, _DWORD *a2, unsigned int a3); -void __cdecl __freedtoa(_DWORD *a1); +int *__cdecl __nrv_alloc_D2A(char *a1, char **a2, unsigned int a3); +void __cdecl __freedtoa(_DWORD *); unsigned int __cdecl __quorem_D2A(int a1, int a2); int __cdecl __gthr_win32_once(__gthread_once_t *once, void (*func)(void)); int __cdecl __gthr_win32_key_create(__gthread_key_t *key, void (*dtor)(void *)); @@ -695,17 +690,15 @@ int __cdecl __gthr_win32_setspecific(__gthread_key_t key, const void *ptr); void __cdecl __gthr_win32_mutex_init_function(__gthread_mutex_t *mutex); void __cdecl __gthr_win32_mutex_destroy(__gthread_mutex_t *mutex); int __cdecl __gthr_win32_mutex_lock(__gthread_mutex_t *mutex); -int __cdecl __gthr_win32_mutex_trylock(__gthread_mutex_t *mutex); int __cdecl __gthr_win32_mutex_unlock(__gthread_mutex_t *mutex); void __cdecl __gthr_win32_recursive_mutex_init_function(__gthread_recursive_mutex_t *mutex); int __cdecl __gthr_win32_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex); int __cdecl __gthr_win32_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex); int __cdecl __gthr_win32_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex); int __cdecl __gthr_win32_recursive_mutex_destroy(__gthread_recursive_mutex_t *mutex); -// char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, int *a3@, int *a4); +// char *__usercall read_encoded_value_with_base@(char a1@, char *a2@, char *a3@, int *a4); // int __usercall base_of_encoded_value@(char a1@, _DWORD *a2@); // unsigned int __usercall execute_cfa_program@(int *a1@, unsigned int a2@, _DWORD *a3@, unsigned int a4); -void init_dwarf_reg_size_table(); // idb // int __usercall uw_frame_state_for@(dwarf_eh_bases *a1@, _DWORD *a2@); // int __usercall uw_install_context_1@(int a1@, int a2@); // int __usercall execute_stack_op@(char *a1@, unsigned int a2@, int a3@, int a4); @@ -715,9 +708,7 @@ void init_dwarf_reg_size_table(); // idb // int __usercall _Unwind_RaiseException_Phase2@(_DWORD *a1@, dwarf_eh_bases *a2@, int *a3@); // int __usercall _Unwind_ForcedUnwind_Phase2@(_Unwind_Exception *exc@, dwarf_eh_bases *context@, unsigned int *frames_p@); int __cdecl _Unwind_GetGR(int a1, int a2); -_Unwind_Word __cdecl _Unwind_GetCFA(_Unwind_Context *context); _DWORD *__cdecl _Unwind_SetGR(int a1, int a2, int a3); -_Unwind_Ptr __cdecl _Unwind_GetIP(_Unwind_Context *context); _Unwind_Ptr __cdecl _Unwind_GetIPInfo(_Unwind_Context *context, int *ip_before_insn); void __cdecl _Unwind_SetIP(_Unwind_Context *context, _Unwind_Ptr val); void *__cdecl _Unwind_GetLanguageSpecificData(_Unwind_Context *context); @@ -739,7 +730,7 @@ int __cdecl fde_unencoded_compare(object *ob, const fde *x, const fde *y); void init_object_mutex(); // idb // int __usercall size_of_encoded_value@(char a1@); // int __usercall base_from_object@(char a1@, int a2@); -// char *__usercall read_encoded_value_with_base_0@(char a1@, int *a2@, int *a3@, int *a4); +// char *__usercall read_encoded_value_with_base_0@(char a1@, char *a2@, char *a3@, int *a4); int __cdecl fde_single_encoding_compare(object *ob, const fde *x, const fde *y); // int __usercall get_cie_encoding@(const dwarf_cie *cie@); idb // size_t __usercall classify_object_over_fdes@(object *ob@, const fde *this_fde@); idb @@ -796,7 +787,6 @@ void __cdecl __emutls_register_common(__emutls_object *obj, word size, word alig // int __cdecl setvbuf(FILE *Stream, char *Buffer, int Mode, size_t Size); // char *__cdecl setlocale(int Category, const char *Locale); // wint_t __cdecl putwc(wchar_t Character, FILE *Stream); -// int __cdecl puts(const char *Buffer); // int __cdecl putchar(int Character); // int printf(const char *const Format, ...); // void *__cdecl memset(void *, int Val, size_t Size); @@ -865,7 +855,7 @@ void __cdecl __emutls_register_common(__emutls_object *obj, word size, word alig // void __stdcall DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection); // HANDLE __stdcall CreateSemaphoreW(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCWSTR lpName); BOOL __stdcall CloseHandle(HANDLE hObject); -int __cdecl __mingwthr_key_dtor(int a1, int a2); +int __cdecl __mingwthr_key_dtor(int, int); int __cdecl GetUnicode[abi:cxx11](int a1, unsigned int a2); int __cdecl GetJsonDict(int *a1, int a2); int __cdecl GetJsonString(int *a1, int *a2, _DWORD *a3); @@ -873,51 +863,36 @@ int __cdecl GetUnicodeNum(int *a1, int a2); int __cdecl DictToJsonString(int a1, int a2); int __cdecl EscapeToJsonString(int a1, int a2); int __cdecl _txnal_cow_string_D1(); -void __cdecl __noreturn _txnal_cow_string_c_str(); -void __cdecl __noreturn _txnal_sso_string_c_str(); -char *__cdecl _txnal_logic_error_get_msg(char *a1); -void __cdecl _txnal_cow_string_D1_commit(volatile signed __int32 *a1); -char *__cdecl _txnal_runtime_error_get_msg(char *a1); +void __cdecl _txnal_cow_string_D1_commit(unsigned int *a1); _DWORD *__cdecl _txnal_cow_string_C1_for_exceptions(_DWORD *a1); int __cdecl HexDigit(char a1, char a2); -void __cdecl __noreturn _ZGTtNKSt11logic_error4whatEv(int a1); -void __cdecl __noreturn _ZGTtNKSt13runtime_error4whatEv(int a1); void __cdecl _ZGTtNSt11logic_errorC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt11logic_errorD0Ev(int a1); -int _ZGTtNSt11logic_errorD2Ev(); void __cdecl _ZGTtNSt11range_errorC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt11range_errorD0Ev(int a1); -int _ZGTtNSt11range_errorD2Ev(); void __cdecl _ZGTtNSt12domain_errorC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt12domain_errorD0Ev(int a1); -int _ZGTtNSt12domain_errorD2Ev(); void __cdecl _ZGTtNSt12length_errorC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt12length_errorD0Ev(int a1); -int _ZGTtNSt12length_errorD2Ev(); void __cdecl _ZGTtNSt12out_of_rangeC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt12out_of_rangeD0Ev(int a1); -int _ZGTtNSt12out_of_rangeD2Ev(); void __cdecl _ZGTtNSt13runtime_errorC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt13runtime_errorD0Ev(int a1); -int _ZGTtNSt13runtime_errorD2Ev(); void __cdecl _ZGTtNSt14overflow_errorC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt14overflow_errorD0Ev(int a1); -int _ZGTtNSt14overflow_errorD2Ev(); void __cdecl _ZGTtNSt15underflow_errorC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt15underflow_errorD0Ev(int a1); -int _ZGTtNSt15underflow_errorD2Ev(); void __cdecl _ZGTtNSt16invalid_argumentC2EPKc(_DWORD *a1); void __cdecl _ZGTtNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1); void __cdecl __noreturn _ZGTtNSt16invalid_argumentD0Ev(int a1); -int _ZGTtNSt16invalid_argumentD2Ev(); void __cdecl eh_globals_dtor(int *a1); // int __usercall get_ttype_entry@(int a1@, int a2@); // int __usercall get_adjusted_ptr@(int a1@, int a2@, int **a3@); @@ -925,20 +900,18 @@ void __cdecl eh_globals_dtor(int *a1); // int __usercall check_exception_spec@(int a1@, int a2@, int *a3@, int a4); // _Unwind_Ptr __usercall base_of_encoded_value@(char a1@, _Unwind_Context *context@); void __cdecl __gxx_exception_cleanup(_Unwind_Reason_Code a1, _Unwind_Exception *a2); -// char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, int *a3@, int *a4); +// char *__usercall read_encoded_value_with_base@(char a1@, char *a2@, char *a3@, int *a4); void __cdecl __noreturn __cxxabiv1::__terminate(void (*a1)(void)); // idb void __cdecl __noreturn __cxxabiv1::__unexpected(void (*a1)(void)); // idb void __fastcall __cxxabiv1::__forced_unwind::~__forced_unwind(void *a1); void __fastcall __cxxabiv1::__class_type_info::~__class_type_info(_DWORD *a1); -void __cdecl __cxxabiv1::__class_type_info::~__class_type_info(__cxxabiv1::__class_type_info *this); // idb +void __cdecl __cxxabiv1::__class_type_info::~__class_type_info(__cxxabiv1::__class_type_info *__hidden this); // idb void __fastcall __cxxabiv1::__foreign_exception::~__foreign_exception(void *a1); void __fastcall __cxxabiv1::__si_class_type_info::~__si_class_type_info(_DWORD *a1); -void __cdecl __cxxabiv1::__si_class_type_info::~__si_class_type_info(__cxxabiv1::__si_class_type_info *this); // idb +void __cdecl __cxxabiv1::__si_class_type_info::~__si_class_type_info(__cxxabiv1::__si_class_type_info *__hidden this); // idb void __fastcall __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info(_DWORD *a1); -void __cdecl __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info(__cxxabiv1::__vmi_class_type_info *this); // idb __gthread_mutex_t *`anonymous namespace'::get_locale_mutex(); void __fastcall `anonymous namespace'::io_error_category::~io_error_category(_DWORD *a1); -void __cdecl `anonymous namespace'::io_error_category::~io_error_category(_anonymous_namespace_::io_error_category *this); // idb void __fastcall `anonymous namespace'::system_error_category::~system_error_category(void *a1); void (__cdecl ***`anonymous namespace'::__io_category_instance())(_anonymous_namespace_::io_error_category *__hidden this); void __fastcall `anonymous namespace'::generic_error_category::~generic_error_category(void *a1); @@ -964,14 +937,14 @@ _DWORD *__thiscall WXML::DOMLib::Token::Token(_DWORD *this, int a2); int __thiscall WXML::DOMLib::Token::operator=(int this, int a2); int __thiscall WXML::DOMLib::Token::operator=(int this, int a2); int __fastcall WXML::DOMLib::Parser::Parser(int a1); -char __thiscall WXML::DOMLib::WXMLDom::IfHasItsElse(_DWORD *this, signed int a2, int *a3); +bool __thiscall WXML::DOMLib::WXMLDom::IfHasItsElse(_DWORD *this, signed int a2, int *a3); int __cdecl WXML::DOMLib::WXMLDom::ToCamelStyle(int a1, int a2); char __fastcall WXML::DOMLib::WXMLDom::HasSpAttrPrefix(int a1); int __thiscall WXML::DOMLib::WXMLDom::MarkIfHasDescendant(int this, int *a2); void __thiscall WXML::DOMLib::WXMLDom::CutDomsForCustomComponent(_DWORD *this, int *a2); unsigned int __thiscall WXML::DOMLib::WXMLDom::Print(_DWORD *this, int a2, char *a3, char *a4); void __thiscall WXML::DOMLib::WXMLDom::PrintMe(int this, int a2, char *a3, char *a4); -int __fastcall WXML::DOMLib::WXMLDom::WXMLDom(int a1); +int __fastcall WXML::DOMLib::WXMLDom::WXMLDom(int); std::ostream::sentry *__thiscall WXML::DOMLib::StrCache::RenderPathDefine(_DWORD *this, int a2); _BYTE *__thiscall WXML::DOMLib::StrCache::Insert(_DWORD *this, int a2); int __thiscall WXML::DOMLib::StrCache::GetStrID(_DWORD *this, int a2); @@ -980,7 +953,6 @@ void __fastcall WXML::EXPRLib::EPS::~EPS(void *a1); // int __userpurge WXML::EXPRLib::Token::Token@(int a1@, _DWORD *a2@, WXML::EXPRLib::Token *this, const WXML::EXPRLib::Token *a4); // int __userpurge WXML::EXPRLib::Token::Token@(_DWORD *a1@, WXML::EXPRLib::Token *this, const WXML::EXPRLib::Token *a3); int __fastcall WXML::EXPRLib::Token::Token(_DWORD *a1); -int __fastcall WXML::EXPRLib::Action::Action(int a1); void __fastcall WXML::EXPRLib::Action::~Action(void **a1); void __fastcall WXML::EXPRLib::Action::~Action(void **a1); void __thiscall WXML::EXPRLib::Action::~Action(void **ecx0, WXML::EXPRLib::Action *this); @@ -989,11 +961,11 @@ void __fastcall WXML::EXPRLib::Terminal::~Terminal(void **a1); void __fastcall WXML::EXPRLib::Terminal::~Terminal(void **a1); void __thiscall WXML::EXPRLib::Terminal::~Terminal(void **ecx0, WXML::EXPRLib::Terminal *this); void __thiscall WXML::EXPRLib::Terminal::~Terminal(void **ecx0, WXML::EXPRLib::Terminal *this); -unsigned int *__thiscall night::NSASTParse::NSASTParse(int this, int a2, int a3, int a4); +unsigned int **__thiscall night::NSASTParse::NSASTParse(int this, int a2, int a3, int a4); int __thiscall night::ns_sourcemap::ns_sourcemap(_DWORD *this, _DWORD *a2); bool __cdecl night::NSToken::rw_cb_number(night::NSToken *this, _BYTE *a2); char __cdecl night::NSToken::tk_is_comment2(night::NSToken *this, night::NSStream *a2); -int __cdecl night::NSToken::tk_is_var_start(unsigned int this); +unsigned int __cdecl night::NSToken::tk_is_var_start(unsigned int this); bool __cdecl night::NSToken::tk_is_whitespace(night::NSToken *this); char __cdecl night::NSToken::tk_is_valid_op_str(night::NSToken *this, int a2); bool __cdecl night::NSToken::tk_is_not_line_break(night::NSToken *this); @@ -1002,8 +974,6 @@ int __cdecl night::NSToken::tk_is_var(night::NSToken *this); void **__thiscall night::ns_node::debug_no_space[abi:cxx11](void **this, const char **a2); void **__gnu_cxx::__to_xstring(void **a1, int (__cdecl *a2)(unsigned __int8 *, int, int, char *), int a3, int a4, ...); void __fastcall __gnu_cxx::__scoped_lock::~__scoped_lock(__gthread_mutex_t **a1); -int __fastcall __gnu_cxx::stdio_filebuf::fd(int a1); -int __fastcall __gnu_cxx::stdio_filebuf::file(int a1); char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FILE *a2, int a3, int a4); char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, int a2, int a3, int a4); void *__fastcall __gnu_cxx::stdio_filebuf::stdio_filebuf(_DWORD *a1); @@ -1013,8 +983,6 @@ void *__fastcall __gnu_cxx::stdio_filebuf::stdio_filebuf(_DWORD *a1); void __fastcall __gnu_cxx::stdio_filebuf::~stdio_filebuf(_DWORD **a1); void __fastcall __gnu_cxx::stdio_filebuf::~stdio_filebuf(int a1); void __fastcall __gnu_cxx::stdio_filebuf::~stdio_filebuf(int a1); -int __fastcall __gnu_cxx::stdio_filebuf::fd(int a1); -int __fastcall __gnu_cxx::stdio_filebuf::file(int a1); char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FILE *a2, int a3, int a4); char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, int a2, int a3, int a4); void *__fastcall __gnu_cxx::stdio_filebuf::stdio_filebuf(_DWORD *a1); @@ -1026,7 +994,6 @@ void __fastcall __gnu_cxx::stdio_filebuf::~stdio_filebuf(int a1); void __fastcall __gnu_cxx::stdio_filebuf::~stdio_filebuf(int a1); int __cdecl __gnu_cxx::__concat_size_t(char *a1, unsigned int a2, unsigned int a3); int __cdecl __gnu_cxx::__snprintf_lite(char *a1, unsigned int a2, const char *a3, char *a4); -int __fastcall __gnu_cxx::stdio_sync_filebuf::file(int a1); int __thiscall __gnu_cxx::stdio_sync_filebuf::swap(int this, int a2); int __fastcall __gnu_cxx::stdio_sync_filebuf::sync(int a1); int __fastcall __gnu_cxx::stdio_sync_filebuf::uflow(int a1); @@ -1042,9 +1009,7 @@ int __thiscall __gnu_cxx::stdio_sync_filebuf::stdio_sync_filebuf(_DWORD *t int __thiscall __gnu_cxx::stdio_sync_filebuf::stdio_sync_filebuf(_DWORD *this, int a2); int __thiscall __gnu_cxx::stdio_sync_filebuf::stdio_sync_filebuf(_DWORD *this, int a2); void __fastcall __gnu_cxx::stdio_sync_filebuf::~stdio_sync_filebuf(char *a1); -void __fastcall __gnu_cxx::stdio_sync_filebuf::~stdio_sync_filebuf(int a1); int __thiscall __gnu_cxx::stdio_sync_filebuf::operator=(int this, int a2); -int __fastcall __gnu_cxx::stdio_sync_filebuf::file(int a1); int __thiscall __gnu_cxx::stdio_sync_filebuf::swap(int this, int a2); int __fastcall __gnu_cxx::stdio_sync_filebuf::sync(int a1); wint_t __fastcall __gnu_cxx::stdio_sync_filebuf::uflow(int a1); @@ -1060,61 +1025,39 @@ int __thiscall __gnu_cxx::stdio_sync_filebuf::stdio_sync_filebuf(_DWORD int __thiscall __gnu_cxx::stdio_sync_filebuf::stdio_sync_filebuf(int this, int a2); int __thiscall __gnu_cxx::stdio_sync_filebuf::stdio_sync_filebuf(_DWORD *this, int a2); void __fastcall __gnu_cxx::stdio_sync_filebuf::~stdio_sync_filebuf(char *a1); -void __fastcall __gnu_cxx::stdio_sync_filebuf::~stdio_sync_filebuf(int a1); int __thiscall __gnu_cxx::stdio_sync_filebuf::operator=(int this, int a2); -void __fastcall __gnu_cxx::recursive_init_error::recursive_init_error(_DWORD *a1); +void __fastcall __gnu_cxx::recursive_init_error::recursive_init_error(_DWORD *); void __fastcall __gnu_cxx::recursive_init_error::~recursive_init_error(_DWORD *a1); -void __cdecl __gnu_cxx::recursive_init_error::~recursive_init_error(std::exception *a1); +void __cdecl __gnu_cxx::recursive_init_error::~recursive_init_error(std::exception *); void __fastcall __gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error(_DWORD *a1); -void __cdecl __gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error(std::exception *a1); +void __cdecl __gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error(std::exception *); void __fastcall __gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error(_DWORD *a1); -void __cdecl __gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error(std::exception *a1); +void __cdecl __gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error(std::exception *); void __cdecl __noreturn __gnu_cxx::__throw_insufficient_space(const char *Src, const char *a2); // idb void __cdecl __noreturn __gnu_cxx::__verbose_terminate_handler(size_t a1, size_t a2, FILE *a3); void __noreturn __gnu_cxx::__throw_concurrence_lock_error(void); // idb void __noreturn __gnu_cxx::__throw_concurrence_unlock_error(void); // idb int __gnu_cxx::__freeres(void); -bool __cdecl __gnu_cxx::operator==(_DWORD *a1, _DWORD *a2); -bool __cdecl __gnu_cxx::operator==(_DWORD *a1, _DWORD *a2); -bool __cdecl __gnu_cxx::operator==(_DWORD *a1, _DWORD *a2); -bool __cdecl __gnu_cxx::operator==(_DWORD *a1, _DWORD *a2); -bool __cdecl __gnu_cxx::operator==(_DWORD *a1, _DWORD *a2); -bool __cdecl __gnu_cxx::operator==(_DWORD *a1, _DWORD *a2); -bool __cdecl __gnu_cxx::operator==(_DWORD *a1, _DWORD *a2); -bool __cdecl __gnu_cxx::operator==(_DWORD *a1, _DWORD *a2); // char __userpurge __cxxabiv1::__class_type_info::__do_catch@(_DWORD *a1@, __cxxabiv1::__class_type_info *this, const std::type_info *a3, void **a4, unsigned int a5); bool __thiscall __cxxabiv1::__class_type_info::__do_upcast(_DWORD *this, int a2, int a3, _DWORD *a4); // int __userpurge __cxxabiv1::__class_type_info::__do_upcast@(int *a1@, __cxxabiv1::__class_type_info *this, const __class_type_info *a3, void **a4); int __thiscall __cxxabiv1::__class_type_info::__do_dyncast(_DWORD *this, int a2, int a3, int a4, int a5, int a6, int a7, _DWORD *a8); -int __stdcall __cxxabiv1::__class_type_info::__do_find_public_src(__cxxabiv1::__class_type_info *this, const __cxxabiv1::__class_type_info *a2, const void *a3, const __cxxabiv1::__class_type_info *a4, const void *a5); char __thiscall __cxxabiv1::__si_class_type_info::__do_upcast(int this, int a2, int a3, _DWORD *a4); int __thiscall __cxxabiv1::__si_class_type_info::__do_dyncast(_DWORD *this, int a2, int a3, int a4, int a5, int a6, int a7, _DWORD *a8); // int __userpurge __cxxabiv1::__si_class_type_info::__do_find_public_src@(int a1@, __cxxabiv1::__si_class_type_info *this, const __cxxabiv1::__class_type_info *a3, const void *a4, const __cxxabiv1::__class_type_info *a5, const void *a6); int __thiscall __cxxabiv1::__vmi_class_type_info::__do_upcast(_DWORD *this, int a2, _DWORD *a3, _DWORD *a4); -int __thiscall __cxxabiv1::__vmi_class_type_info::__do_dyncast(_DWORD *this, int a2, int a3, int a4, _DWORD *a5, int a6, _DWORD *a7, int *a8); +int __thiscall __cxxabiv1::__vmi_class_type_info::__do_dyncast(_DWORD *this, int a2, int a3, int a4, char *a5, int a6, char *a7, int *a8); // int __userpurge __cxxabiv1::__vmi_class_type_info::__do_find_public_src@(_DWORD *a1@, __cxxabiv1::__vmi_class_type_info *this, const __cxxabiv1::__class_type_info *a3, const void *a4, const __cxxabiv1::__class_type_info *a5, const void *a6); -const char *`anonymous namespace'::io_error_category::name(); int __thiscall `anonymous namespace'::io_error_category::message[abi:cxx11](int this, int a2, int a3); -_anonymous_namespace_::system_error_category *__stdcall `anonymous namespace'::system_error_category::default_error_condition(_anonymous_namespace_::system_error_category *this, int a2); -const char *`anonymous namespace'::system_error_category::name(); -const char *`anonymous namespace'::generic_error_category::name(); void **__thiscall `anonymous namespace'::system_error_category::message[abi:cxx11](void **this, int a2, int ErrorMessage); -int WXML::EXPRLib::NonTerminal::GetClass(); -int WXML::EXPRLib::EPS::GetClass(); -int WXML::EXPRLib::Action::GetClass(); -int WXML::EXPRLib::Terminal::GetClass(); -const char *__gnu_cxx::__concurrence_lock_error::what(); -const char *__gnu_cxx::__concurrence_unlock_error::what(); int __thiscall std::wstring::_M_disjunct(unsigned int *this, unsigned int a2); unsigned int __thiscall std::wstring::find_last_of(int *this, wchar_t *String, int a3); unsigned int __thiscall std::wstring::find_last_of(int *this, wchar_t *S, unsigned int a3, size_t N); unsigned int __thiscall std::wstring::find_last_of(int *this, wchar_t **a2, int a3); -int __thiscall std::wstring::find_last_of(_DWORD *this, __int16 a2, unsigned int a3); +unsigned int __thiscall std::wstring::find_last_of(_DWORD *this, __int16 a2, unsigned int a3); unsigned int __thiscall std::wstring::find_first_of(_DWORD *this, wchar_t *String, int a3); unsigned int __thiscall std::wstring::find_first_of(_DWORD *this, wchar_t *S, unsigned int a3, size_t N); unsigned int __thiscall std::wstring::find_first_of(_DWORD *this, wchar_t **a2, int a3); -int __thiscall std::wstring::find_first_of(int *this, wchar_t C, unsigned int a3); -void *__thiscall std::wstring::get_allocator(void *this, int a2); unsigned int __thiscall std::wstring::_M_check_length(_DWORD *this, int a2, unsigned int a3, std::length_error *a4); unsigned int __thiscall std::wstring::find_last_not_of(int *this, wchar_t *String, int a3); unsigned int __thiscall std::wstring::find_last_not_of(int *this, wchar_t *S, unsigned int a3, size_t N); @@ -1125,61 +1068,31 @@ unsigned int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *S unsigned int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t **a2, int a3); int __thiscall std::wstring::find_first_not_of(int *this, __int16 a2, unsigned int a3); int __thiscall std::wstring::at(int *this, unsigned int a2); -int __fastcall std::wstring::end(_DWORD *a1); -int __fastcall std::wstring::_Rep::_M_is_leaked(int a1); -bool __fastcall std::wstring::_Rep::_M_is_shared(int a1); -int __fastcall std::wstring::back(_DWORD *a1); -int __fastcall std::wstring::cend(_DWORD *a1); size_t __thiscall std::wstring::copy(_DWORD *this, wchar_t *S1, unsigned int a3, unsigned int a4); -int __fastcall std::wstring::data(int a1); int __thiscall std::wstring::find(int *this, wchar_t *S2, int a3); int __thiscall std::wstring::find(int *this, wchar_t *S2, unsigned int a3, size_t a4); int __thiscall std::wstring::find(int *this, wchar_t **a2, int a3); int __thiscall std::wstring::find(int *this, wchar_t C, unsigned int a3); -_DWORD *__thiscall std::wstring::rend(_DWORD *this, _DWORD *a2); -int __fastcall std::wstring::size(_DWORD *a1); -int __fastcall std::wstring::begin(int a1); -int __fastcall std::wstring::c_str(int a1); -_DWORD *__thiscall std::wstring::crend(_DWORD *this, _DWORD *a2); -bool __fastcall std::wstring::empty(_DWORD *a1); -int __fastcall std::wstring::front(int a1); unsigned int __thiscall std::wstring::rfind(int *this, wchar_t *String, int a3); unsigned int __thiscall std::wstring::rfind(int *this, wchar_t *S2, unsigned int a3, size_t N); unsigned int __thiscall std::wstring::rfind(int *this, wchar_t **a2, int a3); int __thiscall std::wstring::rfind(_DWORD *this, __int16 a2, unsigned int a3); -int __fastcall std::wstring::_M_rep(_DWORD *a1); -int __fastcall std::wstring::cbegin(int a1); -int __fastcall std::wstring::length(_DWORD *a1); -_DWORD *__thiscall std::wstring::rbegin(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::wstring::substr(_DWORD *this, int *a2, unsigned int a3, unsigned int a4); -int __fastcall std::wstring::_M_data(int a1); -int __fastcall std::wstring::_M_iend(_DWORD *a1); int __thiscall std::wstring::compare(const wchar_t **this, wchar_t *String); int __thiscall std::wstring::compare(const wchar_t **this, const wchar_t **a2); int __thiscall std::wstring::compare(_DWORD *this, unsigned int a2, unsigned int a3, wchar_t *String); int __thiscall std::wstring::compare(int *this, unsigned int a2, unsigned int a3, wchar_t *S2, unsigned int a5); int __thiscall std::wstring::compare(int *this, unsigned int a2, size_t a3, const wchar_t **a4); int __thiscall std::wstring::compare(int *this, unsigned int a2, size_t a3, _DWORD *a4, unsigned int a5, size_t a6); -_DWORD *__thiscall std::wstring::crbegin(_DWORD *this, _DWORD *a2); unsigned int __thiscall std::wstring::_M_check(_DWORD *this, unsigned int a2, const char *a3); -unsigned int __thiscall std::wstring::_M_limit(_DWORD *this, int a2, unsigned int a3); -int __fastcall std::wstring::capacity(_DWORD *a1); -int std::wstring::max_size(); -int __fastcall std::wstring::_M_ibegin(int a1); -int __thiscall std::wstring::operator[](_DWORD *this, int a2); -int __fastcall std::istream::gcount(int a1); -int __fastcall std::istream::sentry::operator bool(unsigned __int8 *a1); -int __fastcall std::ostream::sentry::operator bool(unsigned __int8 *a1); // int __userpurge std::string::_M_disjunct@(_DWORD *a1@, std::string *this, const char *a3); -// int __userpurge std::string::find_last_of@(int *a1@, std::string *this, char *a3, unsigned int a4); -// int __userpurge std::string::find_last_of@(int *a1@, std::string *this, const char *a3, size_t MaxCount, unsigned int a5); -// int __userpurge std::string::find_last_of@(int *a1@, std::string **this, const std::string *a3, unsigned int a4); -// int __userpurge std::string::find_last_of@(_DWORD *a1@, std::string *this, unsigned int a3, unsigned int a4); +// const char *__userpurge std::string::find_last_of@(int *a1@, std::string *this, char *a3, unsigned int a4); +// const char *__userpurge std::string::find_last_of@(int *a1@, std::string *this, const char *a3, size_t MaxCount, unsigned int a5); +// const char *__userpurge std::string::find_last_of@(int *a1@, std::string **this, const std::string *a3, unsigned int a4); +// unsigned int __userpurge std::string::find_last_of@(_DWORD *a1@, std::string *this, unsigned int a3, unsigned int a4); // int __userpurge std::string::find_first_of@(int *a1@, std::string *this, char *a3, unsigned int a4); // int __userpurge std::string::find_first_of@(int *a1@, std::string *this, const char *a3, size_t MaxCount, unsigned int a5); // int __userpurge std::string::find_first_of@(int *a1@, std::string **this, const std::string *a3, unsigned int a4); -// char *__userpurge std::string::find_first_of@(int *a1@, std::string *this, unsigned int a3, unsigned int a4); -void *__thiscall std::string::get_allocator(void *ecx0, std::string *this); // char *__userpurge std::string::_M_check_length@(_DWORD *a1@, std::string *this, unsigned int a3, std::length_error *a4, const char *a5); // int __userpurge std::string::find_last_not_of@(int *a1@, std::string *this, char *a3, unsigned int a4); // int __userpurge std::string::find_last_not_of@(int *a1@, std::string *this, const char *a3, unsigned int MaxCount, unsigned int a5); @@ -1190,144 +1103,81 @@ void *__thiscall std::string::get_allocator(void *ecx0, std::string *this); // int __userpurge std::string::find_first_not_of@(int *a1@, std::string **this, const std::string *a3, unsigned int a4); // int __userpurge std::string::find_first_not_of@(int *a1@, std::string *this, unsigned int a3, unsigned int a4); // char *__userpurge std::string::at@(int *a1@, std::string *this, unsigned int a3); -int __fastcall std::string::end(_DWORD *a1); -int __fastcall std::string::_Rep::_M_is_leaked(int a1); -bool __fastcall std::string::_Rep::_M_is_shared(int a1); -int __fastcall std::string::back(_DWORD *a1); -int __fastcall std::string::cend(_DWORD *a1); -// int __userpurge std::string::copy@(_DWORD *a1@, std::string *this, char *a3, unsigned int a4, unsigned int a5); -int __fastcall std::string::data(int a1); -// unsigned int __userpurge std::string::find@(int *a1@, std::string *this, char *a3, unsigned int a4); -// unsigned int __userpurge std::string::find@(int *a1@, std::string *this, const char *a3, size_t Size, unsigned int a5); -// unsigned int __userpurge std::string::find@(int *a1@, std::string **this, const std::string *a3, unsigned int a4); +// char *__userpurge std::string::copy@(_DWORD *a1@, std::string *this, char *a3, unsigned int a4, unsigned int a5); +// int __userpurge std::string::find@(int *a1@, std::string *this, char *a3, unsigned int a4); +// int __userpurge std::string::find@(int *a1@, std::string *this, const char *a3, size_t Size, unsigned int a5); +// int __userpurge std::string::find@(int *a1@, std::string **this, const std::string *a3, unsigned int a4); // char *__userpurge std::string::find@(int *a1@, std::string *this, unsigned int a3, unsigned int a4); -_DWORD *__thiscall std::string::rend(_DWORD *ecx0, std::string *this); -int __fastcall std::string::size(_DWORD *a1); -int __fastcall std::string::begin(int a1); -int __fastcall std::string::c_str(int a1); -_DWORD *__thiscall std::string::crend(_DWORD *ecx0, std::string *this); -bool __fastcall std::string::empty(_DWORD *a1); -int __fastcall std::string::front(int a1); // int __userpurge std::string::rfind@(int *a1@, std::string *this, char *a3, unsigned int a4); // int __userpurge std::string::rfind@(int *a1@, std::string *this, const char *a3, size_t Size, unsigned int a5); // int __userpurge std::string::rfind@(int *a1@, std::string **this, const std::string *a3, unsigned int a4); // int __userpurge std::string::rfind@(_DWORD *a1@, std::string *this, unsigned int a3, unsigned int a4); -int __fastcall std::string::_M_rep(_DWORD *a1); -int __fastcall std::string::cbegin(int a1); -int __fastcall std::string::length(_DWORD *a1); -_DWORD *__thiscall std::string::rbegin(_DWORD *ecx0, std::string *this); _DWORD *__thiscall std::string::substr(_DWORD *ecx0, std::string *this, std::string *a3, unsigned int a4); -int __fastcall std::string::_M_data(int a1); -int __fastcall std::string::_M_iend(_DWORD *a1); // int __userpurge std::string::compare@(const void **a1@, std::string *this, const char *a3); // int __userpurge std::string::compare@(const void **a1@, const void **this, const std::string *a3); // int __userpurge std::string::compare@(int *a1@, std::string *this, unsigned int a3, char *Str, const char *a5); // int __userpurge std::string::compare@(int *a1@, std::string *this, const char *a3, void *Buf2, const char *a5, unsigned int a6); // int __userpurge std::string::compare@(int *a1@, std::string *this, unsigned int a3, const void **a4, const std::string *a5); // int __userpurge std::string::compare@(int *a1@, std::string *this, unsigned int a3, _DWORD *a4, const std::string *a5, size_t a6, unsigned int a7); -_DWORD *__thiscall std::string::crbegin(_DWORD *ecx0, std::string *this); // std::string *__userpurge std::string::_M_check@(_DWORD *a1@, std::string *this, const char *a3, const char *a4); -// unsigned int __userpurge std::string::_M_limit@(_DWORD *a1@, std::string *this, unsigned int a3, unsigned int a4); -int __fastcall std::string::capacity(_DWORD *a1); -int std::string::max_size(); -int __fastcall std::string::_M_ibegin(int a1); -int __thiscall std::string::operator[](_DWORD *this, int a2); -const char *std::bad_typeid::what(); int __fastcall std::error_code::default_error_condition(int a1); -int __fastcall std::moneypunct::neg_format(_DWORD *a1); -int __fastcall std::moneypunct::pos_format(_DWORD *a1); _DWORD *__thiscall std::moneypunct::curr_symbol(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::moneypunct::do_grouping(_DWORD *this, int a2); -int __fastcall std::moneypunct::frac_digits(_DWORD *a1); -int __fastcall std::moneypunct::decimal_point(_DWORD *a1); -int __fastcall std::moneypunct::do_neg_format(int a1); -int __fastcall std::moneypunct::do_pos_format(int a1); +int __fastcall std::moneypunct::do_neg_format(int); +int __fastcall std::moneypunct::do_pos_format(int); _DWORD *__thiscall std::moneypunct::negative_sign(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::moneypunct::positive_sign(_DWORD *this, _DWORD *a2); -int __fastcall std::moneypunct::thousands_sep(_DWORD *a1); _DWORD *__thiscall std::moneypunct::do_curr_symbol(_DWORD *this, int a2); -int __fastcall std::moneypunct::do_frac_digits(int a1); -int __fastcall std::moneypunct::do_decimal_point(int a1); +int __fastcall std::moneypunct::do_frac_digits(int); +int __fastcall std::moneypunct::do_decimal_point(int); _DWORD *__thiscall std::moneypunct::do_negative_sign(_DWORD *this, int a2); _DWORD *__thiscall std::moneypunct::do_positive_sign(_DWORD *this, int a2); -int __fastcall std::moneypunct::do_thousands_sep(int a1); +int __fastcall std::moneypunct::do_thousands_sep(int); _DWORD *__thiscall std::moneypunct::grouping(_DWORD *this, _DWORD *a2); -int __fastcall std::moneypunct::neg_format(_DWORD *a1); -int __fastcall std::moneypunct::pos_format(_DWORD *a1); _DWORD *__thiscall std::moneypunct::curr_symbol(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::moneypunct::do_grouping(_DWORD *this, int a2); -int __fastcall std::moneypunct::frac_digits(_DWORD *a1); -int __fastcall std::moneypunct::decimal_point(_DWORD *a1); -int __fastcall std::moneypunct::do_neg_format(int a1); -int __fastcall std::moneypunct::do_pos_format(int a1); +int __fastcall std::moneypunct::do_neg_format(int); +int __fastcall std::moneypunct::do_pos_format(int); _DWORD *__thiscall std::moneypunct::negative_sign(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::moneypunct::positive_sign(_DWORD *this, _DWORD *a2); -int __fastcall std::moneypunct::thousands_sep(_DWORD *a1); _DWORD *__thiscall std::moneypunct::do_curr_symbol(_DWORD *this, int a2); -int __fastcall std::moneypunct::do_frac_digits(int a1); -int __fastcall std::moneypunct::do_decimal_point(int a1); +int __fastcall std::moneypunct::do_frac_digits(int); +int __fastcall std::moneypunct::do_decimal_point(int); _DWORD *__thiscall std::moneypunct::do_negative_sign(_DWORD *this, int a2); _DWORD *__thiscall std::moneypunct::do_positive_sign(_DWORD *this, int a2); -int __fastcall std::moneypunct::do_thousands_sep(int a1); +int __fastcall std::moneypunct::do_thousands_sep(int); _DWORD *__thiscall std::moneypunct::grouping(_DWORD *this, _DWORD *a2); -int __fastcall std::moneypunct::neg_format(_DWORD *a1); -int __fastcall std::moneypunct::pos_format(_DWORD *a1); _DWORD *__thiscall std::moneypunct::curr_symbol(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::moneypunct::do_grouping(_DWORD *this, int a2); -int __fastcall std::moneypunct::frac_digits(_DWORD *a1); -int __fastcall std::moneypunct::decimal_point(_DWORD *a1); -int __fastcall std::moneypunct::do_neg_format(int a1); -int __fastcall std::moneypunct::do_pos_format(int a1); +int __fastcall std::moneypunct::do_neg_format(int); +int __fastcall std::moneypunct::do_pos_format(int); _DWORD *__thiscall std::moneypunct::negative_sign(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::moneypunct::positive_sign(_DWORD *this, _DWORD *a2); -int __fastcall std::moneypunct::thousands_sep(_DWORD *a1); _DWORD *__thiscall std::moneypunct::do_curr_symbol(_DWORD *this, int a2); -int __fastcall std::moneypunct::do_frac_digits(int a1); -int __fastcall std::moneypunct::do_decimal_point(int a1); +int __fastcall std::moneypunct::do_frac_digits(int); +int __fastcall std::moneypunct::do_decimal_point(int); _DWORD *__thiscall std::moneypunct::do_negative_sign(_DWORD *this, int a2); _DWORD *__thiscall std::moneypunct::do_positive_sign(_DWORD *this, int a2); -int __fastcall std::moneypunct::do_thousands_sep(int a1); +int __fastcall std::moneypunct::do_thousands_sep(int); _DWORD *__thiscall std::moneypunct::grouping(_DWORD *this, _DWORD *a2); -int __fastcall std::moneypunct::neg_format(_DWORD *a1); -int __fastcall std::moneypunct::pos_format(_DWORD *a1); _DWORD *__thiscall std::moneypunct::curr_symbol(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::moneypunct::do_grouping(_DWORD *this, int a2); -int __fastcall std::moneypunct::frac_digits(_DWORD *a1); -int __fastcall std::moneypunct::decimal_point(_DWORD *a1); -int __fastcall std::moneypunct::do_neg_format(int a1); -int __fastcall std::moneypunct::do_pos_format(int a1); +int __fastcall std::moneypunct::do_neg_format(int); +int __fastcall std::moneypunct::do_pos_format(int); _DWORD *__thiscall std::moneypunct::negative_sign(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::moneypunct::positive_sign(_DWORD *this, _DWORD *a2); -int __fastcall std::moneypunct::thousands_sep(_DWORD *a1); _DWORD *__thiscall std::moneypunct::do_curr_symbol(_DWORD *this, int a2); -int __fastcall std::moneypunct::do_frac_digits(int a1); -int __fastcall std::moneypunct::do_decimal_point(int a1); +int __fastcall std::moneypunct::do_frac_digits(int); +int __fastcall std::moneypunct::do_decimal_point(int); _DWORD *__thiscall std::moneypunct::do_negative_sign(_DWORD *this, int a2); _DWORD *__thiscall std::moneypunct::do_positive_sign(_DWORD *this, int a2); -int __fastcall std::moneypunct::do_thousands_sep(int a1); +int __fastcall std::moneypunct::do_thousands_sep(int); _DWORD *__thiscall std::moneypunct::grouping(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_date_formats(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_time_formats(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_days_abbreviated(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_date_time_formats(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_months_abbreviated(_DWORD *this, _DWORD *a2); void __thiscall std::__timepunct::_M_put(const char **this, char *Buffer, size_t SizeInBytes, char *Format, struct tm *Tm); -_DWORD *__thiscall std::__timepunct::_M_days(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_am_pm(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_months(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_date_formats(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_time_formats(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_days_abbreviated(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_date_time_formats(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_months_abbreviated(_DWORD *this, _DWORD *a2); void __thiscall std::__timepunct::_M_put(const char **this, wchar_t *Buffer, size_t SizeInWords, wchar_t *Format, struct tm *Tm); -_DWORD *__thiscall std::__timepunct::_M_days(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_am_pm(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::__timepunct::_M_months(_DWORD *this, _DWORD *a2); int __stdcall std::__use_cache>::operator()(int *a1); int __stdcall std::__use_cache>::operator()(int *a1); -int __fastcall std::logic_error::what(int a1); -bool __fastcall std::__basic_file::is_open(_DWORD *a1); +bool __fastcall std::__basic_file::is_open(_DWORD *); int __thiscall std::__facet_shims::`anonymous namespace'::collate_shim::do_compare(int *this, int a2, int a3, int a4, int a5); int __thiscall std::__facet_shims::`anonymous namespace'::collate_shim::do_compare(int *this, int a2, int a3, int a4, int a5); _DWORD *__thiscall std::__facet_shims::`anonymous namespace'::collate_shim::do_transform(_DWORD *this, int a2, int a3, int a4); @@ -1372,10 +1222,10 @@ int __thiscall std::__facet_shims::`anonymous namespace'::time_get_shim int __thiscall std::__facet_shims::`anonymous namespace'::time_get_shim::do_get_weekday(int *this, int a2, int a3, int a4, int a5, int a6, int a7, int a8); int __thiscall std::__facet_shims::`anonymous namespace'::time_get_shim::do_get_monthname(int *this, int a2, int a3, int a4, int a5, int a6, int a7, int a8); int __thiscall std::__facet_shims::`anonymous namespace'::time_get_shim::do_get_monthname(int *this, int a2, int a3, int a4, int a5, int a6, int a7, int a8); -int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, std::string *a3, int a4, int a5, unsigned __int8 a6, int a7, int *a8, int a9); +int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, std::string *a3, int a4, int a5, char a6, int a7, int *a8, int a9); int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, int a3, int a4, int a5, unsigned __int8 a6, int a7, _DWORD *a8, int *a9); int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, int a3, int a4, int a5, unsigned __int8 a6, int a7, _DWORD *a8, long double *a9); -int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, std::string *a3, int a4, int a5, unsigned __int8 a6, int a7, int *a8, long double *a9); +int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, std::string *a3, int a4, int a5, char a6, int a7, int *a8, long double *a9); int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, int a3, int a4, int a5, unsigned __int8 a6, int a7, _DWORD *a8, int a9); int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, int a3, int a4, int a5, unsigned __int8 a6, int a7, _DWORD *a8, int *a9); int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_get(_DWORD *this, int a2, int a3, int a4, int a5, unsigned __int8 a6, int a7, _DWORD *a8, long double *a9); @@ -1388,87 +1238,44 @@ int __thiscall std::__facet_shims::`anonymous namespace'::money_put_shim::do_put(int *this, int a2, int a3, unsigned __int8 a4, int a5, unsigned __int16 a6, _DWORD *a7); int __thiscall std::__facet_shims::`anonymous namespace'::money_put_shim::do_put(int *this, int a2, int a3, unsigned __int8 a4, int a5, __int16 a6, long double a7); int __thiscall std::__facet_shims::`anonymous namespace'::money_put_shim::do_put(int *this, int a2, int a3, unsigned __int8 a4, int a5, __int16 a6, long double a7); -const char *_ZGTtNKSt13bad_exception4whatEv(); -bool __fastcall std::filebuf::is_open(int a1); -bool __fastcall std::wfilebuf::is_open(int a1); -int __fastcall std::fstream::rdbuf(int a1); -bool __fastcall std::fstream::is_open(int a1); -int __fastcall std::wfstream::rdbuf(int a1); -bool __fastcall std::wfstream::is_open(int a1); -int __fastcall std::wistream::gcount(int a1); -int __fastcall std::wistream::sentry::operator bool(unsigned __int8 *a1); -int __fastcall std::wostream::sentry::operator bool(unsigned __int8 *a1); -int __fastcall std::runtime_error::what(int a1); -int __fastcall std::ifstream::rdbuf(int a1); -bool __fastcall std::ifstream::is_open(int a1); -int __fastcall std::wifstream::rdbuf(int a1); -bool __fastcall std::wifstream::is_open(int a1); -int __fastcall std::ofstream::rdbuf(int a1); -bool __fastcall std::ofstream::is_open(int a1); -int __fastcall std::wofstream::rdbuf(int a1); -bool __fastcall std::wofstream::is_open(int a1); -int __fastcall std::streambuf::gptr(int a1); -int __fastcall std::streambuf::pptr(int a1); -int __fastcall std::streambuf::eback(int a1); -int __fastcall std::streambuf::egptr(int a1); -int __fastcall std::streambuf::epptr(int a1); -int __fastcall std::streambuf::pbase(int a1); +int __fastcall std::runtime_error::what(int); volatile signed __int32 **__thiscall std::streambuf::getloc(volatile signed __int32 **this, int a2); -int __fastcall std::wstreambuf::gptr(int a1); -int __fastcall std::wstreambuf::pptr(int a1); -int __fastcall std::wstreambuf::eback(int a1); -int __fastcall std::wstreambuf::egptr(int a1); -int __fastcall std::wstreambuf::epptr(int a1); -int __fastcall std::wstreambuf::pbase(int a1); volatile signed __int32 **__thiscall std::wstreambuf::getloc(volatile signed __int32 **this, int a2); -const char *std::bad_function_call::what(); -int __fastcall std::__codecvt_utf8_base::do_max_length(int a1); int __thiscall std::__codecvt_utf8_base::do_in(unsigned int *this, int a2, int a3, int a4, _DWORD *a5, int a6, int a7, _DWORD *a8); int __thiscall std::__codecvt_utf8_base::do_out(int this, int a2, unsigned int *a3, unsigned int *a4, unsigned int **a5, _BYTE *a6, _BYTE *a7, _BYTE **a8); unsigned __int8 *__thiscall std::__codecvt_utf8_base::do_length(int this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, int a5); -int __fastcall std::__codecvt_utf8_base::do_max_length(int a1); int __thiscall std::__codecvt_utf8_base::do_in(_DWORD *this, int a2, int a3, int a4, _DWORD *a5, int a6, int a7, _DWORD *a8); int __thiscall std::__codecvt_utf8_base::do_out(_DWORD *this, int a2, unsigned __int16 *a3, unsigned __int16 *a4, unsigned __int16 **a5, int a6, int a7, _DWORD *a8); -int __thiscall std::__codecvt_utf8_base::do_length(unsigned int *this, int a2, int a3, unsigned __int8 *a4, int a5); -int __fastcall std::__codecvt_utf8_base::do_max_length(int a1); +int __thiscall std::__codecvt_utf8_base::do_length(unsigned int *this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, int a5); int __thiscall std::__codecvt_utf8_base::do_in(_DWORD *this, int a2, int a3, int a4, _DWORD *a5, int a6, int a7, _DWORD *a8); int __thiscall std::__codecvt_utf8_base::do_out(_DWORD *this, int a2, unsigned __int16 *a3, unsigned __int16 *a4, unsigned __int16 **a5, int a6, int a7, _DWORD *a8); -int __thiscall std::__codecvt_utf8_base::do_length(unsigned int *this, int a2, int a3, unsigned __int8 *a4, int a5); +int __thiscall std::__codecvt_utf8_base::do_length(unsigned int *this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, int a5); // char __userpurge std::__iosfail_type_info::__do_upcast@(int *a1@, std::__iosfail_type_info *this, const __cxxabiv1::__class_type_info *a3, void **a4); bool __thiscall std::istreambuf_iterator::equal(_DWORD *this, int a2); // int __usercall std::istreambuf_iterator::_M_get@(_DWORD **a1@, int a2@); bool __thiscall std::istreambuf_iterator::equal(_WORD *this, int a2); // int __usercall std::istreambuf_iterator::_M_get@(_DWORD **a1@, int a2@); -int __fastcall std::__codecvt_utf16_base::do_max_length(int a1); int __thiscall std::__codecvt_utf16_base::do_in(_DWORD *this, int a2, int a3, int a4, int *a5, unsigned int *a6, unsigned int *a7, unsigned int **a8); -int __thiscall std::__codecvt_utf16_base::do_out(_DWORD *this, int a2, unsigned int *a3, unsigned int *a4, unsigned int **a5, int a6, int a7, _DWORD *a8); +int __thiscall std::__codecvt_utf16_base::do_out(_DWORD *this, int a2, unsigned int *a3, unsigned int *a4, unsigned int **a5, _WORD *a6, int a7, _DWORD *a8); int __thiscall std::__codecvt_utf16_base::do_length(_DWORD *this, int a2, int a3, int a4, int a5); -int __fastcall std::__codecvt_utf16_base::do_max_length(int a1); int __thiscall std::__codecvt_utf16_base::do_in(unsigned int *this, int a2, int a3, int a4, _DWORD *a5, int a6, int a7, int *a8); int __thiscall std::__codecvt_utf16_base::do_out(_DWORD *this, int a2, unsigned __int16 *a3, unsigned __int16 *a4, unsigned __int16 **a5, int a6, int a7, _DWORD *a8); int __thiscall std::__codecvt_utf16_base::do_length(_DWORD *this, int a2, int a3, int a4, int a5); -int __fastcall std::__codecvt_utf16_base::do_max_length(int a1); int __thiscall std::__codecvt_utf16_base::do_in(unsigned int *this, int a2, int a3, int a4, _DWORD *a5, int a6, int a7, int *a8); int __thiscall std::__codecvt_utf16_base::do_out(_DWORD *this, int a2, unsigned __int16 *a3, unsigned __int16 *a4, unsigned __int16 **a5, int a6, int a7, _DWORD *a8); int __thiscall std::__codecvt_utf16_base::do_length(_DWORD *this, int a2, int a3, int a4, int a5); -const char *std::bad_array_new_length::what(); -int __fastcall std::__codecvt_utf8_utf16_base::do_max_length(int a1); -int __thiscall std::__codecvt_utf8_utf16_base::do_in(int this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, unsigned __int8 **a5, unsigned int *a6, unsigned int *a7, unsigned int **a8); +int __thiscall std::__codecvt_utf8_utf16_base::do_in(int this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, unsigned __int8 **a5, char *a6, char *a7, char **a8); int __thiscall std::__codecvt_utf8_utf16_base::do_out(int this, int a2, unsigned int *a3, unsigned int *a4, unsigned int **a5, _BYTE *a6, _BYTE *a7, _BYTE **a8); -int __thiscall std::__codecvt_utf8_utf16_base::do_length(unsigned int *this, int a2, int a3, unsigned __int8 *a4, unsigned int a5); -int __fastcall std::__codecvt_utf8_utf16_base::do_max_length(int a1); +int __thiscall std::__codecvt_utf8_utf16_base::do_length(unsigned int *this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, unsigned int a5); int __thiscall std::__codecvt_utf8_utf16_base::do_in(_DWORD *this, int a2, int a3, int a4, _DWORD *a5, int a6, int a7, _DWORD *a8); int __thiscall std::__codecvt_utf8_utf16_base::do_out(unsigned int *this, int a2, unsigned __int16 *a3, unsigned __int16 *a4, unsigned __int16 **a5, int a6, int a7, _DWORD *a8); -int __thiscall std::__codecvt_utf8_utf16_base::do_length(unsigned int *this, int a2, int a3, unsigned __int8 *a4, unsigned int a5); -int __fastcall std::__codecvt_utf8_utf16_base::do_max_length(int a1); +int __thiscall std::__codecvt_utf8_utf16_base::do_length(unsigned int *this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, unsigned int a5); int __thiscall std::__codecvt_utf8_utf16_base::do_in(int this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, unsigned __int8 **a5, char *a6, char *a7, char **a8); int __thiscall std::__codecvt_utf8_utf16_base::do_out(int this, int a2, unsigned __int16 *a3, unsigned __int16 *a4, unsigned __int16 **a5, _BYTE *a6, _BYTE *a7, _BYTE **a8); -int __thiscall std::__codecvt_utf8_utf16_base::do_length(unsigned int *this, int a2, int a3, unsigned __int8 *a4, unsigned int a5); +int __thiscall std::__codecvt_utf8_utf16_base::do_length(unsigned int *this, int a2, unsigned __int8 *a3, unsigned __int8 *a4, unsigned int a5); _DWORD *__thiscall std::_V2::error_category::_M_message[abi:cxx11](_DWORD *this, int a2, int a3); void **__thiscall std::_V2::error_category::_M_message(void **ecx0, std::_V2::error_category *this, int a3); -// bool __userpurge std::_V2::error_category::equivalent@(int a1@, std::_V2::error_category *this, const std::error_code *a3, int a4); int __thiscall std::_V2::error_category::equivalent(void *this, int a2, _DWORD *a3); -std::_V2::error_category *__stdcall std::_V2::error_category::default_error_condition(std::_V2::error_category *this, int a2); BOOL __thiscall std::map::count(_DWORD *this, int a2); _DWORD *__thiscall std::map>::at(_DWORD *this, int a2); BOOL __thiscall std::map::count(_DWORD *this, int a2); @@ -1480,9 +1287,9 @@ int __fastcall std::ctype::_M_widen_init(int a1); int __fastcall std::ctype::_M_narrow_init(int a1); _BYTE *__thiscall std::ctype::widen(_BYTE *this, _BYTE *Src, _BYTE *a3, void *a4); _BYTE *__stdcall std::ctype::do_widen(_BYTE *Src, _BYTE *a2, void *a3); -int __stdcall std::ctype::do_widen(unsigned __int8 a1); +int __stdcall std::ctype::do_widen(unsigned __int8); _BYTE *__stdcall std::ctype::do_narrow(_BYTE *Src, _BYTE *a2, int a3, void *a4); -int __stdcall std::ctype::do_narrow(unsigned __int8 a1, int a2); +int __stdcall std::ctype::do_narrow(unsigned __int8, int); unsigned __int16 *__thiscall std::ctype::do_scan_is(void *this, unsigned __int16 a2, unsigned __int16 *a3, unsigned int a4); unsigned int __stdcall std::ctype::do_tolower(wint_t *a1, unsigned int a2); wint_t __stdcall std::ctype::do_tolower(wint_t C); @@ -1493,104 +1300,57 @@ wctype_t __stdcall std::ctype::_M_convert_to_wmask(unsigned __int16 a1) unsigned int __thiscall std::ctype::do_is(char *this, wint_t *a2, unsigned int a3, _WORD *a4); int __thiscall std::ctype::do_is(_WORD *this, unsigned __int16 a2, wint_t C); unsigned __int8 *__thiscall std::ctype::do_widen(_WORD *this, unsigned __int8 *a2, unsigned __int8 *a3, int a4); -int __thiscall std::ctype::do_widen(unsigned __int16 *this, unsigned __int8 a2); unsigned int __thiscall std::ctype::do_narrow(_BYTE *this, wint_t *a2, unsigned int a3, char a4, char *a5); int __thiscall std::ctype::do_narrow(_BYTE *this, wint_t WCh, int a3); -int __fastcall std::locale::id::_M_id(int *a1); -int __thiscall std::locale::name[abi:cxx11](int this, int *a2); +int __fastcall std::locale::id::_M_id(int *); +_DWORD *__thiscall std::locale::name[abi:cxx11](_DWORD *this, int *a2); unsigned int **__thiscall std::locale::name(unsigned int **ecx0, std::locale *this); // _DWORD *__userpurge std::locale::facet::_M_cow_shim@(volatile signed __int32 *a1@, std::locale::facet *this, const std::locale::id *a3); // _DWORD *__userpurge std::locale::facet::_M_sso_shim@(volatile signed __int32 *a1@, std::locale::facet *this, const std::locale::id *a3); -int __fastcall std::locale::facet::_M_remove_reference(volatile signed __int32 *a1); bool __thiscall std::locale::operator==(int *this, int *a2); int __thiscall std::vector::_M_check_len(_DWORD *this, unsigned int a2, std::length_error *a3); int __thiscall std::vector::_M_check_len(_DWORD *this, unsigned int a2, std::length_error *a3); -int __fastcall std::moneypunct::neg_format(_DWORD *a1); -int __fastcall std::moneypunct::pos_format(_DWORD *a1); void **__thiscall std::moneypunct::curr_symbol(void **this, _DWORD *a2); void **__thiscall std::moneypunct::do_grouping(void **this, int a2); -int __fastcall std::moneypunct::frac_digits(_DWORD *a1); -int __fastcall std::moneypunct::decimal_point(_DWORD *a1); -int __fastcall std::moneypunct::do_neg_format(int a1); -int __fastcall std::moneypunct::do_pos_format(int a1); void **__thiscall std::moneypunct::negative_sign(void **this, _DWORD *a2); void **__thiscall std::moneypunct::positive_sign(void **this, _DWORD *a2); -int __fastcall std::moneypunct::thousands_sep(_DWORD *a1); void **__thiscall std::moneypunct::do_curr_symbol(void **this, int a2); -int __fastcall std::moneypunct::do_frac_digits(int a1); -int __fastcall std::moneypunct::do_decimal_point(int a1); void **__thiscall std::moneypunct::do_negative_sign(void **this, int a2); void **__thiscall std::moneypunct::do_positive_sign(void **this, int a2); -int __fastcall std::moneypunct::do_thousands_sep(int a1); void **__thiscall std::moneypunct::grouping(void **this, _DWORD *a2); -int __fastcall std::moneypunct::neg_format(_DWORD *a1); -int __fastcall std::moneypunct::pos_format(_DWORD *a1); void **__thiscall std::moneypunct::curr_symbol(void **this, _DWORD *a2); void **__thiscall std::moneypunct::do_grouping(void **this, int a2); -int __fastcall std::moneypunct::frac_digits(_DWORD *a1); -int __fastcall std::moneypunct::decimal_point(_DWORD *a1); -int __fastcall std::moneypunct::do_neg_format(int a1); -int __fastcall std::moneypunct::do_pos_format(int a1); void **__thiscall std::moneypunct::negative_sign(void **this, _DWORD *a2); void **__thiscall std::moneypunct::positive_sign(void **this, _DWORD *a2); -int __fastcall std::moneypunct::thousands_sep(_DWORD *a1); void **__thiscall std::moneypunct::do_curr_symbol(void **this, int a2); -int __fastcall std::moneypunct::do_frac_digits(int a1); -int __fastcall std::moneypunct::do_decimal_point(int a1); void **__thiscall std::moneypunct::do_negative_sign(void **this, int a2); void **__thiscall std::moneypunct::do_positive_sign(void **this, int a2); -int __fastcall std::moneypunct::do_thousands_sep(int a1); void **__thiscall std::moneypunct::grouping(void **this, _DWORD *a2); -int __fastcall std::moneypunct::neg_format(_DWORD *a1); -int __fastcall std::moneypunct::pos_format(_DWORD *a1); wchar_t **__thiscall std::moneypunct::curr_symbol(wchar_t **this, _DWORD *a2); void **__thiscall std::moneypunct::do_grouping(void **this, int a2); -int __fastcall std::moneypunct::frac_digits(_DWORD *a1); -int __fastcall std::moneypunct::decimal_point(_DWORD *a1); -int __fastcall std::moneypunct::do_neg_format(int a1); -int __fastcall std::moneypunct::do_pos_format(int a1); wchar_t **__thiscall std::moneypunct::negative_sign(wchar_t **this, _DWORD *a2); wchar_t **__thiscall std::moneypunct::positive_sign(wchar_t **this, _DWORD *a2); -int __fastcall std::moneypunct::thousands_sep(_DWORD *a1); wchar_t **__thiscall std::moneypunct::do_curr_symbol(wchar_t **this, int a2); -int __fastcall std::moneypunct::do_frac_digits(int a1); -int __fastcall std::moneypunct::do_decimal_point(int a1); wchar_t **__thiscall std::moneypunct::do_negative_sign(wchar_t **this, int a2); wchar_t **__thiscall std::moneypunct::do_positive_sign(wchar_t **this, int a2); -int __fastcall std::moneypunct::do_thousands_sep(int a1); void **__thiscall std::moneypunct::grouping(void **this, _DWORD *a2); -int __fastcall std::moneypunct::neg_format(_DWORD *a1); -int __fastcall std::moneypunct::pos_format(_DWORD *a1); wchar_t **__thiscall std::moneypunct::curr_symbol(wchar_t **this, _DWORD *a2); void **__thiscall std::moneypunct::do_grouping(void **this, int a2); -int __fastcall std::moneypunct::frac_digits(_DWORD *a1); -int __fastcall std::moneypunct::decimal_point(_DWORD *a1); -int __fastcall std::moneypunct::do_neg_format(int a1); -int __fastcall std::moneypunct::do_pos_format(int a1); wchar_t **__thiscall std::moneypunct::negative_sign(wchar_t **this, _DWORD *a2); wchar_t **__thiscall std::moneypunct::positive_sign(wchar_t **this, _DWORD *a2); -int __fastcall std::moneypunct::thousands_sep(_DWORD *a1); wchar_t **__thiscall std::moneypunct::do_curr_symbol(wchar_t **this, int a2); -int __fastcall std::moneypunct::do_frac_digits(int a1); -int __fastcall std::moneypunct::do_decimal_point(int a1); wchar_t **__thiscall std::moneypunct::do_negative_sign(wchar_t **this, int a2); wchar_t **__thiscall std::moneypunct::do_positive_sign(wchar_t **this, int a2); -int __fastcall std::moneypunct::do_thousands_sep(int a1); void **__thiscall std::moneypunct::grouping(void **this, _DWORD *a2); int __thiscall std::string::_M_disjunct(unsigned int *this, unsigned int a2); -bool __fastcall std::string::_M_is_local(_DWORD *a1); unsigned int __thiscall std::string::find_last_of(int *this, char *Str, int a3); unsigned int __thiscall std::string::find_last_of(int *this, void *Buf, unsigned int a3, size_t MaxCount); unsigned int __thiscall std::string::find_last_of(int *this, int a2, int a3); -int __thiscall std::string::find_last_of(int *this, char a2, unsigned int a3); -int __fastcall std::string::_M_local_data(int a1); +unsigned int __thiscall std::string::find_last_of(int *this, char a2, unsigned int a3); unsigned int __thiscall std::string::find_first_of(_DWORD *this, char *Str, int a3); unsigned int __thiscall std::string::find_first_of(_DWORD *this, void *Buf, unsigned int a3, size_t MaxCount); unsigned int __thiscall std::string::find_first_of(_DWORD *this, int a2, int a3); -char *__thiscall std::string::find_first_of(int *this, char a2, unsigned int a3); -void *__thiscall std::string::get_allocator(void *this, int a2); unsigned int __thiscall std::string::_M_check_length(_DWORD *this, int a2, unsigned int a3, std::length_error *a4); -int __fastcall std::string::_M_get_allocator(int a1); unsigned int __thiscall std::string::find_last_not_of(int *this, char *Str, int a3); unsigned int __thiscall std::string::find_last_not_of(int *this, void *Buf, unsigned int a3, size_t MaxCount); unsigned int __thiscall std::string::find_last_not_of(int *this, int a2, int a3); @@ -1600,275 +1360,163 @@ unsigned int __thiscall std::string::find_first_not_of(int *this, void *Buf, uns unsigned int __thiscall std::string::find_first_not_of(int *this, int a2, int a3); int __thiscall std::string::find_first_not_of(int *this, char a2, unsigned int a3); unsigned int __thiscall std::string::at(_DWORD *this, unsigned int a2); -int __fastcall std::string::end(_DWORD *a1); -int __fastcall std::string::back(_DWORD *a1); -int __fastcall std::string::cend(_DWORD *a1); size_t __thiscall std::string::copy(_DWORD *this, _BYTE *a2, unsigned int a3, unsigned int a4); -int __fastcall std::string::data(int a1); -int __thiscall std::string::find(int *this, char *Str, int a3); -int __thiscall std::string::find(int *this, char *Buf2, unsigned int a3, size_t Size); -int __thiscall std::string::find(int *this, int a2, int a3); +unsigned int __thiscall std::string::find(int *this, char *Str, int a3); +unsigned int __thiscall std::string::find(int *this, char *Buf2, unsigned int a3, size_t Size); +unsigned int __thiscall std::string::find(int *this, int a2, int a3); char *__thiscall std::string::find(int *this, char a2, unsigned int a3); -_DWORD *__thiscall std::string::rend(_DWORD *this, _DWORD *a2); -int __fastcall std::string::size(int a1); -int __fastcall std::string::begin(int a1); -int __fastcall std::string::c_str(int a1); -_DWORD *__thiscall std::string::crend(_DWORD *this, _DWORD *a2); -bool __fastcall std::string::empty(int a1); -int __fastcall std::string::front(int a1); unsigned int __thiscall std::string::rfind(int *this, char *Str, int a3); unsigned int __thiscall std::string::rfind(int *this, void *Buf2, unsigned int a3, size_t Size); unsigned int __thiscall std::string::rfind(int *this, int a2, int a3); int __thiscall std::string::rfind(int *this, char a2, unsigned int a3); -int __fastcall std::string::cbegin(int a1); -int __fastcall std::string::length(int a1); -_DWORD *__thiscall std::string::rbegin(_DWORD *this, _DWORD *a2); void **__thiscall std::string::substr(void **this, _DWORD *a2, unsigned int a3, unsigned int a4); -int __fastcall std::string::_M_data(int a1); int __thiscall std::string::compare(int this, char *Str); int __thiscall std::string::compare(int this, int a2); int __thiscall std::string::compare(_DWORD *this, unsigned int a2, unsigned int a3, char *Str); int __thiscall std::string::compare(_DWORD *this, unsigned int a2, unsigned int a3, void *Buf2, unsigned int a5); int __thiscall std::string::compare(_DWORD *this, unsigned int a2, size_t a3, int a4); int __thiscall std::string::compare(_DWORD *this, unsigned int a2, size_t a3, _DWORD *a4, unsigned int a5, size_t a6); -_DWORD *__thiscall std::string::crbegin(_DWORD *this, _DWORD *a2); unsigned int __thiscall std::string::_M_check(_DWORD *this, unsigned int a2, const char *a3); -unsigned int __thiscall std::string::_M_limit(_DWORD *this, int a2, unsigned int a3); -int __fastcall std::string::capacity(_DWORD *a1); -int std::string::max_size(); -int __thiscall std::string::operator[](_DWORD *this, int a2); bool __thiscall std::wstring::_M_disjunct(unsigned int *this, unsigned int a2); -bool __fastcall std::wstring::_M_is_local(_DWORD *a1); unsigned int __thiscall std::wstring::find_last_of(_DWORD *this, wchar_t *String, int a3); unsigned int __thiscall std::wstring::find_last_of(_DWORD *this, wchar_t *S, unsigned int a3, size_t N); unsigned int __thiscall std::wstring::find_last_of(_DWORD *this, int a2, int a3); -int __thiscall std::wstring::find_last_of(int *this, __int16 a2, unsigned int a3); -int __fastcall std::wstring::_M_local_data(int a1); +unsigned int __thiscall std::wstring::find_last_of(int *this, __int16 a2, unsigned int a3); unsigned int __thiscall std::wstring::find_first_of(_DWORD *this, wchar_t *String, int a3); unsigned int __thiscall std::wstring::find_first_of(_DWORD *this, wchar_t *S, unsigned int a3, size_t N); unsigned int __thiscall std::wstring::find_first_of(_DWORD *this, int a2, int a3); -int __thiscall std::wstring::find_first_of(int *this, wchar_t C, unsigned int a3); -void *__thiscall std::wstring::get_allocator(void *this, int a2); unsigned int __thiscall std::wstring::_M_check_length(_DWORD *this, int a2, unsigned int a3, std::length_error *a4); -int __fastcall std::wstring::_M_get_allocator(int a1); unsigned int __thiscall std::wstring::find_last_not_of(_DWORD *this, wchar_t *String, int a3); unsigned int __thiscall std::wstring::find_last_not_of(_DWORD *this, wchar_t *S, unsigned int a3, int N); unsigned int __thiscall std::wstring::find_last_not_of(_DWORD *this, int a2, int a3); int __thiscall std::wstring::find_last_not_of(int *this, __int16 a2, unsigned int a3); -int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *String, int a3); -int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *S, unsigned int a3, size_t N); -int __thiscall std::wstring::find_first_not_of(_DWORD *this, int a2, int a3); +unsigned int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *String, int a3); +unsigned int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *S, unsigned int a3, size_t N); +unsigned int __thiscall std::wstring::find_first_not_of(_DWORD *this, int a2, int a3); int __thiscall std::wstring::find_first_not_of(int *this, __int16 a2, unsigned int a3); -int __thiscall std::wstring::at(_DWORD *this, unsigned int a2); -int __fastcall std::wstring::end(_DWORD *a1); -int __fastcall std::wstring::back(_DWORD *a1); -int __fastcall std::wstring::cend(_DWORD *a1); +unsigned int __thiscall std::wstring::at(_DWORD *this, unsigned int a2); size_t __thiscall std::wstring::copy(_DWORD *this, wchar_t *S1, unsigned int a3, unsigned int a4); -int __fastcall std::wstring::data(int a1); int __thiscall std::wstring::find(int *this, wchar_t *S2, int a3); int __thiscall std::wstring::find(int *this, wchar_t *S2, unsigned int a3, size_t a4); int __thiscall std::wstring::find(int *this, int a2, int a3); int __thiscall std::wstring::find(int *this, wchar_t C, unsigned int a3); -_DWORD *__thiscall std::wstring::rend(_DWORD *this, _DWORD *a2); -int __fastcall std::wstring::size(int a1); -int __fastcall std::wstring::begin(int a1); -int __fastcall std::wstring::c_str(int a1); -_DWORD *__thiscall std::wstring::crend(_DWORD *this, _DWORD *a2); -bool __fastcall std::wstring::empty(int a1); -int __fastcall std::wstring::front(int a1); unsigned int __thiscall std::wstring::rfind(int *this, wchar_t *String, int a3); unsigned int __thiscall std::wstring::rfind(int *this, wchar_t *S2, unsigned int a3, size_t N); unsigned int __thiscall std::wstring::rfind(int *this, int a2, int a3); int __thiscall std::wstring::rfind(int *this, __int16 a2, unsigned int a3); -int __fastcall std::wstring::cbegin(int a1); -int __fastcall std::wstring::length(int a1); -_DWORD *__thiscall std::wstring::rbegin(_DWORD *this, _DWORD *a2); wchar_t **__thiscall std::wstring::substr(wchar_t **this, _DWORD *a2, unsigned int a3, unsigned int a4); -int __fastcall std::wstring::_M_data(int a1); int __thiscall std::wstring::compare(int this, wchar_t *String); int __thiscall std::wstring::compare(int this, int a2); int __thiscall std::wstring::compare(_DWORD *this, unsigned int a2, unsigned int a3, wchar_t *String); int __thiscall std::wstring::compare(_DWORD *this, unsigned int a2, unsigned int a3, wchar_t *S2, unsigned int a5); int __thiscall std::wstring::compare(_DWORD *this, unsigned int a2, size_t a3, int a4); int __thiscall std::wstring::compare(_DWORD *this, unsigned int a2, size_t a3, _DWORD *a4, unsigned int a5, size_t a6); -_DWORD *__thiscall std::wstring::crbegin(_DWORD *this, _DWORD *a2); unsigned int __thiscall std::wstring::_M_check(_DWORD *this, unsigned int a2, const char *a3); -unsigned int __thiscall std::wstring::_M_limit(_DWORD *this, int a2, unsigned int a3); -int __fastcall std::wstring::capacity(_DWORD *a1); -int std::wstring::max_size(); -int __thiscall std::wstring::operator[](_DWORD *this, int a2); int __thiscall std::stringbuf::str(int this, _DWORD *a2); _WORD *__thiscall std::wstringbuf::str(_WORD *this, _DWORD *a2); int __thiscall std::basic_stringstream,std::allocator>::str(int this, _DWORD *a2); -int __fastcall std::basic_stringstream,std::allocator>::rdbuf(int a1); _WORD *__thiscall std::basic_stringstream,std::allocator>::str(_WORD *this, _DWORD *a2); -int __fastcall std::basic_stringstream,std::allocator>::rdbuf(int a1); int __thiscall std::istringstream::str(int this, _DWORD *a2); -int __fastcall std::istringstream::rdbuf(int a1); _WORD *__thiscall std::wistringstream::str(_WORD *this, _DWORD *a2); -int __fastcall std::wistringstream::rdbuf(int a1); int __thiscall std::ostringstream::str(int this, _DWORD *a2); -int __fastcall std::ostringstream::rdbuf(int a1); _WORD *__thiscall std::wostringstream::str(_WORD *this, _DWORD *a2); -int __fastcall std::wostringstream::rdbuf(int a1); int __stdcall std::collate::_M_compare(char *String1, char *String2); // idb int __stdcall std::collate::do_compare(unsigned __int8 *a1, size_t Size, unsigned __int8 *a3, size_t a4); size_t __stdcall std::collate::_M_transform(char *Destination, char *Source, size_t MaxCount); -int __thiscall std::collate::do_transform(int this, int a2, unsigned __int8 *a3, size_t Size); -int __thiscall std::collate::hash(void *this, char *a1, char *a2); -int __fastcall std::collate::compare(int a1); +_DWORD *__thiscall std::collate::do_transform(_DWORD *this, int a2, unsigned __int8 *a3, size_t Size); int __stdcall std::collate::do_hash(char *a1, char *a2); void *__thiscall std::collate::transform(void *this, int a2, int a3, int a4); int __stdcall std::collate::_M_compare(wchar_t *String1, wchar_t *String2); // idb int __stdcall std::collate::do_compare(wchar_t *a1, int a2, wchar_t *a3, int a4); size_t __stdcall std::collate::_M_transform(wchar_t *Destination, wchar_t *Source, size_t MaxCount); int __thiscall std::collate::do_transform(int this, int a2, wchar_t *a3, int a4); -int __thiscall std::collate::hash(void *this, unsigned __int16 *a1, unsigned int a2); -int __fastcall std::collate::compare(int a1); int __stdcall std::collate::do_hash(unsigned __int16 *a1, unsigned int a2); void *__thiscall std::collate::transform(void *this, int a2, int a3, int a4); -int __stdcall std::messages::_M_convert_to_char(int a1); -_DWORD *__thiscall std::messages::_M_convert_from_char(_DWORD *this, int a2, int a3); void *__thiscall std::messages::get(void *this, int a2, int a3, int a4, int a5, int a6); -int __thiscall std::messages::open(void *this, int a2, int a3); int __thiscall std::messages::open(void *this, int a2, int a3, int a4); -int (__stdcall *__thiscall std::messages::close(void *this, int a2))(int); _DWORD *__thiscall std::messages::do_get(_DWORD *this, int a2, int a3, int a4, int a5, int a6); -int __stdcall std::messages::do_open(int a1, int a2); -int __stdcall std::messages::do_close(int); // weak -int __stdcall std::messages::_M_convert_to_char(int a1); -_DWORD *__thiscall std::messages::_M_convert_from_char(_DWORD *this, int a2, int a3); +int __stdcall std::messages::do_open(int, int); void *__thiscall std::messages::get(void *this, int a2, int a3, int a4, int a5, int a6); -int __thiscall std::messages::open(void *this, int a2, int a3); int __thiscall std::messages::open(void *this, int a2, int a3, int a4); -int (__stdcall *__thiscall std::messages::close(void *this, int a2))(int); wchar_t **__thiscall std::messages::do_get(wchar_t **this, int a2, int a3, int a4, int a5, int a6); -int __stdcall std::messages::do_open(int a1, int a2); -int __stdcall std::messages::do_close(int); // weak +int __stdcall std::messages::do_open(int, int); void **__thiscall std::numpunct::do_grouping(void **this, int a2); void **__thiscall std::numpunct::do_truename(void **this, int a2); void **__thiscall std::numpunct::do_falsename(void **this, int a2); -int __fastcall std::numpunct::decimal_point(_DWORD *a1); -int __fastcall std::numpunct::thousands_sep(_DWORD *a1); -int __fastcall std::numpunct::do_decimal_point(int a1); -int __fastcall std::numpunct::do_thousands_sep(int a1); void **__thiscall std::numpunct::grouping(void **this, _DWORD *a2); void **__thiscall std::numpunct::truename(void **this, _DWORD *a2); void **__thiscall std::numpunct::falsename(void **this, _DWORD *a2); void **__thiscall std::numpunct::do_grouping(void **this, int a2); wchar_t **__thiscall std::numpunct::do_truename(wchar_t **this, int a2); wchar_t **__thiscall std::numpunct::do_falsename(wchar_t **this, int a2); -int __fastcall std::numpunct::decimal_point(_DWORD *a1); -int __fastcall std::numpunct::thousands_sep(_DWORD *a1); -int __fastcall std::numpunct::do_decimal_point(int a1); -int __fastcall std::numpunct::do_thousands_sep(int a1); void **__thiscall std::numpunct::grouping(void **this, _DWORD *a2); wchar_t **__thiscall std::numpunct::truename(wchar_t **this, _DWORD *a2); wchar_t **__thiscall std::numpunct::falsename(wchar_t **this, _DWORD *a2); -int __fastcall std::time_get>::date_order(int a1); _DWORD *__stdcall std::time_get>::do_get_date(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, _DWORD *a7); _DWORD *__stdcall std::time_get>::do_get_time(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, _DWORD *a7); _DWORD *__stdcall std::time_get>::do_get_year(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, int a7); -int __fastcall std::time_get>::get_weekday(int a1); -int std::time_get>::do_date_order(); -int __fastcall std::time_get>::get_monthname(int a1); _DWORD *__stdcall std::time_get>::_M_extract_num(_DWORD *a1, int a2, _DWORD *a3, int a4, int *a5, signed int a6, int a7, unsigned int a8, int a9, _DWORD *a10); _DWORD *__stdcall std::time_get>::do_get_weekday(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, int a7); int __stdcall std::time_get>::_M_extract_name(unsigned __int64 a1, _DWORD *a2, int a3, _DWORD *a4, int a5, _DWORD *a6, int a7, _DWORD *a8); _DWORD *__stdcall std::time_get>::do_get_monthname(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, int a7); _DWORD *__stdcall std::time_get>::_M_extract_via_format(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, _DWORD *a7, char *a8); _DWORD *__stdcall std::time_get>::_M_extract_wday_or_month(_DWORD *a1, int a2, _DWORD *a3, int a4, unsigned int *a5, int a6, unsigned int a7, int a8, _DWORD *a9); -int __thiscall std::time_get>::get(void *this, int a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7, _DWORD *a8, unsigned __int8 *a9, unsigned __int8 *a10); -int __thiscall std::time_get>::get(void *this, _DWORD *a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7, _DWORD *a8, char a9, char a10); +_DWORD *__thiscall std::time_get>::get(void *this, _DWORD *a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7, _DWORD *a8, unsigned __int8 *a9, unsigned __int8 *a10); +_DWORD *__thiscall std::time_get>::get(void *this, _DWORD *a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7, _DWORD *a8, char a9, char a10); _DWORD *__stdcall std::time_get>::do_get(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, _DWORD *a7, char a8, char a9); -int __fastcall std::time_get>::get_date(int a1); -int __fastcall std::time_get>::get_time(int a1); -int __fastcall std::time_get>::get_year(int a1); -int __fastcall std::time_get>::date_order(int a1); _DWORD *__stdcall std::time_get>::do_get_date(_DWORD *a1, int a2, _DWORD *a3, int *a4, int a5, _DWORD *a6, _DWORD *a7); _DWORD *__stdcall std::time_get>::do_get_time(_DWORD *a1, int a2, _DWORD *a3, int *a4, int a5, _DWORD *a6, _DWORD *a7); -_DWORD *__stdcall std::time_get>::do_get_year(_DWORD *a1, __int16 a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int a7); -int __fastcall std::time_get>::get_weekday(int a1); -int std::time_get>::do_date_order(); -int __fastcall std::time_get>::get_monthname(int a1); -_DWORD *__stdcall std::time_get>::_M_extract_num(_DWORD *a1, __int16 a2, _DWORD *a3, __int16 a4, int *a5, signed int a6, int a7, unsigned int a8, int a9, _DWORD *a10); +_DWORD *__stdcall std::time_get>::do_get_year(_DWORD *a1, unsigned __int16 a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int a7); +_DWORD *__stdcall std::time_get>::_M_extract_num(_DWORD *a1, unsigned __int16 a2, _DWORD *a3, __int16 a4, int *a5, signed int a6, int a7, unsigned int a8, int a9, _DWORD *a10); _DWORD *__stdcall std::time_get>::do_get_weekday(_DWORD *a1, int a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int a7); _DWORD *__stdcall std::time_get>::_M_extract_name(_DWORD *a1, int a2, _DWORD *a3, int *a4, _DWORD *a5, int a6, int a7, int a8, _DWORD *a9); _DWORD *__stdcall std::time_get>::do_get_monthname(_DWORD *a1, int a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int a7); _DWORD *__stdcall std::time_get>::_M_extract_via_format(_DWORD *a1, int a2, _DWORD *a3, int *a4, int a5, _DWORD *a6, _DWORD *a7, wchar_t *String); _DWORD *__stdcall std::time_get>::_M_extract_wday_or_month(_DWORD *a1, int a2, _DWORD *a3, __int16 a4, _DWORD *a5, int a6, unsigned int a7, int a8, _DWORD *a9); -int __thiscall std::time_get>::get(void *this, int a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7, _DWORD *a8, unsigned __int16 *a9, unsigned __int16 *a10); -int __thiscall std::time_get>::get(void *this, _DWORD *a2, int a3, _DWORD *a4, int *a5, int a6, _DWORD *a7, _DWORD *a8, char a9, char a10); +_DWORD *__thiscall std::time_get>::get(void *this, _DWORD *a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7, _DWORD *a8, unsigned __int16 *a9, unsigned __int16 *a10); +_DWORD *__thiscall std::time_get>::get(void *this, _DWORD *a2, int a3, _DWORD *a4, int *a5, int a6, _DWORD *a7, _DWORD *a8, char a9, char a10); _DWORD *__stdcall std::time_get>::do_get(_DWORD *a1, int a2, _DWORD *a3, int *a4, int a5, _DWORD *a6, _DWORD *a7, char a8, char a9); -int __fastcall std::time_get>::get_date(int a1); -int __fastcall std::time_get>::get_time(int a1); -int __fastcall std::time_get>::get_year(int a1); unsigned int __stdcall std::money_get>::_M_extract(unsigned int a1, int a2, unsigned int a3, int a4, int a5, _DWORD *a6, _DWORD *a7); unsigned int __stdcall std::money_get>::_M_extract(unsigned int a1, int a2, unsigned int a3, int a4, int a5, _DWORD *a6, _DWORD *a7); -int __thiscall std::money_get>::get(void *this, int a2, int a3, int a4, int a5, unsigned __int8 a6); -int __thiscall std::money_get>::get(void *this, int a2, int a3, int a4, int a5, unsigned __int8 a6); unsigned int __stdcall std::money_get>::do_get(unsigned int a1, int a2, unsigned int a3, int a4, char a5, int a6, _DWORD *a7, int *a8); unsigned int __stdcall std::money_get>::do_get(std::locale::facet *a1, int a2, unsigned int a3, int a4, char a5, int a6, _DWORD *a7, long double *a8); unsigned int __stdcall std::money_get>::_M_extract(unsigned int a1, __int16 a2, unsigned int a3, __int16 a4, int a5, _DWORD *a6, _DWORD *a7); unsigned int __stdcall std::money_get>::_M_extract(unsigned int a1, __int16 a2, unsigned int a3, __int16 a4, int a5, _DWORD *a6, _DWORD *a7); -int __thiscall std::money_get>::get(void *this, int a2, int a3, int a4, int a5, unsigned __int8 a6); -int __thiscall std::money_get>::get(void *this, int a2, int a3, int a4, int a5, unsigned __int8 a6); unsigned int __stdcall std::money_get>::do_get(unsigned int a1, __int16 a2, unsigned int a3, __int16 a4, char a5, int a6, _DWORD *a7, int *a8); unsigned int __stdcall std::money_get>::do_get(std::locale::facet *a1, __int16 a2, unsigned int a3, __int16 a4, char a5, int a6, _DWORD *a7, long double *a8); -int __thiscall std::money_put>::put(void *this, int a2, int a3, unsigned __int8 a4, int a5, char a6); -int __thiscall std::money_put>::put(void *this, int a2, int a3, unsigned __int8 a4, int a5, char a6); int __stdcall std::money_put>::do_put(int a1, char a2, char a3, int a4, char a5, int a6); int __thiscall std::money_put>::do_put(void *this, int a2, char a3, int a4, int a5, int a6, long double a7); int __stdcall std::money_put>::_M_insert(int a1, char a2, int a3, char a4, int a5); int __stdcall std::money_put>::_M_insert(int a1, char a2, int a3, char a4, int a5); -int __thiscall std::money_put>::put(void *this, int a2, int a3, unsigned __int8 a4, int a5, unsigned __int16 a6); -int __thiscall std::money_put>::put(void *this, int a2, int a3, unsigned __int8 a4, int a5, unsigned __int16 a6); int __stdcall std::money_put>::do_put(int a1, char a2, char a3, int a4, wchar_t a5, int a6); int __thiscall std::money_put>::do_put(void *this, int a2, int a3, int a4, int a5, int a6, long double a7); int __stdcall std::money_put>::_M_insert(int a1, char a2, int a3, wchar_t a4, int a5); int __stdcall std::money_put>::_M_insert(int a1, char a2, int a3, wchar_t a4, int a5); -int __stdcall std::codecvt::do_in(int a1, unsigned __int8 *a2, int a3, unsigned __int8 **a4, int a5, int a6, _DWORD *a7); +int __stdcall std::codecvt::do_in(int a1, unsigned __int8 *a2, unsigned __int8 *a3, unsigned __int8 **a4, int a5, int a6, _DWORD *a7); int __stdcall std::codecvt::do_out(int a1, unsigned int *a2, unsigned int *a3, unsigned int **a4, int a5, int a6, int *a7); unsigned __int8 *__stdcall std::codecvt::do_length(int a1, unsigned __int8 *a2, unsigned __int8 *a3, int a4); int __stdcall std::codecvt::do_in(int a1, int a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7); int __stdcall std::codecvt::do_out(int a1, unsigned int *a2, unsigned int *a3, unsigned int **a4, _BYTE *a5, _BYTE *a6, _DWORD *a7); unsigned __int8 *__stdcall std::codecvt::do_length(int a1, unsigned __int8 *a2, unsigned __int8 *a3, int a4); -int __stdcall std::codecvt::do_unshift(int a1, int a2, int a3, _DWORD *a4); -int __stdcall std::codecvt::do_in(int a1, unsigned __int8 *a2, unsigned __int8 *a3, unsigned __int8 **a4, int a5, int a6, int *a7); +int __stdcall std::codecvt::do_in(int a1, unsigned __int8 *a2, unsigned __int8 *a3, unsigned __int8 **a4, _WORD *a5, _WORD *a6, int *a7); int __stdcall std::codecvt::do_out(int a1, unsigned __int16 *a2, unsigned __int16 *a3, unsigned __int16 **a4, int a5, int a6, int *a7); unsigned __int8 *__stdcall std::codecvt::do_length(int a1, unsigned __int8 *a2, unsigned __int8 *a3, unsigned int a4); -int __stdcall std::codecvt::do_unshift(int a1, int a2, int a3, _DWORD *a4); -int std::codecvt::do_encoding(); -int std::codecvt::do_max_length(); -int std::codecvt::do_always_noconv(); int __stdcall std::codecvt::do_in(int a1, int a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7); int __stdcall std::codecvt::do_out(int a1, unsigned __int16 *a2, unsigned __int16 *a3, unsigned __int16 **a4, _BYTE *a5, _BYTE *a6, _BYTE **a7); -int __stdcall std::codecvt::do_length(int a1, int a2, unsigned __int8 *a3, unsigned int a4); -int __stdcall std::codecvt::do_unshift(int a1, int a2, int a3, _DWORD *a4); -int std::codecvt::do_max_length(); -int std::codecvt::do_always_noconv(); -int __stdcall std::codecvt::do_in(int a1, int a2, int a3, _DWORD *a4, int a5, int a6, _DWORD *a7); -unsigned int __stdcall std::codecvt::do_length(int a1, int a2, int a3, unsigned int a4); -BOOL std::codecvt::do_encoding(); -int std::codecvt::do_max_length(); -int std::codecvt::do_always_noconv(); +int __stdcall std::codecvt::do_length(int a1, unsigned __int8 *a2, unsigned __int8 *a3, unsigned int a4); int __stdcall std::codecvt::do_in(unsigned int *a1, char *a2, unsigned int a3, char **a4, wchar_t *a5, unsigned int a6, wchar_t **a7); int __stdcall std::codecvt::do_out(unsigned int *a1, wchar_t *a2, unsigned int a3, wchar_t **a4, char *a5, unsigned int a6, char **a7); int __stdcall std::codecvt::do_length(unsigned int *a1, char *a2, unsigned int a3, int a4); int __stdcall std::collate::_M_compare(char *String1, char *String2); // idb -int __stdcall std::collate::do_compare(int a1, _BYTE *a2, int a3, int a4); +int __stdcall std::collate::do_compare(_BYTE *a1, _BYTE *a2, _BYTE *a3, int a4); size_t __stdcall std::collate::_M_transform(char *Destination, char *Source, size_t MaxCount); -unsigned int **__thiscall std::collate::do_transform(unsigned int **this, int a2, _BYTE *a3, int a4); -int __thiscall std::collate::hash(void *this, char *a1, char *a2); -int __fastcall std::collate::compare(int a1); +unsigned int **__thiscall std::collate::do_transform(unsigned int **this, int a2, _BYTE *a3, _BYTE *a4); int __stdcall std::collate::do_hash(char *a1, char *a2); void *__thiscall std::collate::transform(void *this, int a2, int a3, int a4); int __stdcall std::collate::_M_compare(wchar_t *String1, wchar_t *String2); // idb -int __stdcall std::collate::do_compare(int a1, const wchar_t *a2, int a3, int a4); +int __stdcall std::collate::do_compare(const wchar_t *a1, const wchar_t *a2, const wchar_t *a3, int a4); size_t __stdcall std::collate::_M_transform(wchar_t *Destination, wchar_t *Source, size_t MaxCount); -void **__thiscall std::collate::do_transform(void **this, int a2, const wchar_t *a3, int a4); -int __thiscall std::collate::hash(void *this, unsigned __int16 *a1, unsigned int a2); -int __fastcall std::collate::compare(int a1); +void **__thiscall std::collate::do_transform(void **this, int a2, const wchar_t *a3, const wchar_t *a4); int __stdcall std::collate::do_hash(unsigned __int16 *a1, unsigned int a2); void *__thiscall std::collate::transform(void *this, int a2, int a3, int a4); unsigned int __stdcall std::num_get>::_M_extract_int[abi:cxx11](_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, unsigned int *a7); @@ -1884,28 +1532,11 @@ unsigned __int64 __stdcall std::num_get>::_M unsigned __int64 __stdcall std::num_get>::_M_extract_int(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); unsigned __int64 __stdcall std::num_get>::_M_extract_int(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); unsigned __int64 __stdcall std::num_get>::_M_extract_float(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, unsigned int **a6); -int __fastcall std::num_get>::get(int a1); -int __fastcall std::num_get>::get(int a1); -int __fastcall std::num_get>::get(int a1); -int __fastcall std::num_get>::get(int a1); -int __fastcall std::num_get>::get(int a1); -int __thiscall std::num_get>::get(void *this, unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, unsigned int *a6); -int __thiscall std::num_get>::get(void *this, unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); -int __thiscall std::num_get>::get(void *this, unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, unsigned int *a6); -int __thiscall std::num_get>::get(void *this, unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, unsigned __int16 *a6); -int __thiscall std::num_get>::get(void *this, unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); -int __thiscall std::num_get>::get(void *this, unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); unsigned __int64 __stdcall std::num_get>::do_get(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, _DWORD *a6); unsigned __int64 __stdcall std::num_get>::do_get(unsigned __int64 a1, _DWORD *a2, int a3, int a4, int *a5, _BYTE *a6); int __stdcall std::num_get>::do_get(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, double *a6); int __stdcall std::num_get>::do_get(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, long double *a6); int __stdcall std::num_get>::do_get(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, float *a6); -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak _DWORD *__stdcall std::num_get>::_M_extract_int[abi:cxx11](_DWORD *a1, wchar_t a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, unsigned int *a7); _DWORD *__stdcall std::num_get>::_M_extract_int[abi:cxx11](_DWORD *a1, wchar_t a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int *a7); _DWORD *__stdcall std::num_get>::_M_extract_int[abi:cxx11](_DWORD *a1, wchar_t a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, unsigned int *a7); @@ -1919,28 +1550,11 @@ __int64 __stdcall std::num_get>::_M_ex __int64 __stdcall std::num_get>::_M_extract_int(__int64 a1, _DWORD *a2, __int16 a3, int a4, _DWORD *a5, int *a6); __int64 __stdcall std::num_get>::_M_extract_int(__int64 a1, _DWORD *a2, __int16 a3, int a4, _DWORD *a5, _DWORD *a6); __int64 __stdcall std::num_get>::_M_extract_float(__int64 a1, _DWORD *a2, __int16 a3, int a4, _DWORD *a5, unsigned int **a6); -int __fastcall std::num_get>::get(int a1); -int __fastcall std::num_get>::get(int a1); -int __fastcall std::num_get>::get(int a1); -int __fastcall std::num_get>::get(int a1); -int __fastcall std::num_get>::get(int a1); -int __thiscall std::num_get>::get(void *this, __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, unsigned int *a6); -int __thiscall std::num_get>::get(void *this, __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); -int __thiscall std::num_get>::get(void *this, __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, unsigned int *a6); -int __thiscall std::num_get>::get(void *this, __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, unsigned __int16 *a6); -int __thiscall std::num_get>::get(void *this, __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); -int __thiscall std::num_get>::get(void *this, __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, _DWORD *a6); int __stdcall std::num_get>::do_get(__int64 a1, _DWORD *a2, __int16 a3, int a4, _DWORD *a5, _DWORD *a6); int __stdcall std::num_get>::do_get(__int64 a1, _DWORD *a2, __int16 a3, int a4, int *a5, _BYTE *a6); _DWORD *__stdcall std::num_get>::do_get(__int64 a1, _DWORD *a2, __int16 a3, int a4, _DWORD *a5, double *a6); _DWORD *__stdcall std::num_get>::do_get(__int64 a1, _DWORD *a2, __int16 a3, int a4, _DWORD *a5, long double *a6); _DWORD *__stdcall std::num_get>::do_get(__int64 a1, _DWORD *a2, __int16 a3, int a4, _DWORD *a5, float *a6); -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak -int __stdcall std::num_get>::do_get(int, int, int, int, int, int, int); // weak _BYTE *__stdcall std::num_put>::_M_group_int(char *a1, int a2, char a3, int a4, _BYTE *a5, _BYTE *a6, _DWORD *a7); int __stdcall std::num_put>::_M_insert_int(int a1, int a2, _DWORD *a3, int a4, int a5); int __stdcall std::num_put>::_M_insert_int(int a1, int a2, _DWORD *a3, int a4, int a5); @@ -1949,23 +1563,11 @@ int __stdcall std::num_put>::_M_insert_int>::_M_group_float(char *a1, int a2, char a3, char *Src, int a5, _BYTE *a6, _DWORD *a7); int __thiscall std::num_put>::_M_insert_float(void *this, int a2, int a3, _DWORD *a4, int a5, int a6, double a7); int __thiscall std::num_put>::_M_insert_float(void *this, int a2, int a3, std::__num_base *a4, int a5, int a6, long double a7); -int __thiscall std::num_put>::put(void *this, int a2, int a3, int a4, char a5); -int __thiscall std::num_put>::put(void *this, int a2, int a3, int a4, char a5, unsigned __int8 a6); -int __thiscall std::num_put>::put(void *this, int a2, int a3, int a4, char a5); -int __thiscall std::num_put>::put(void *this, int a2, int a3, int a4, char a5); -int __thiscall std::num_put>::put(void *this, int a2, int a3, _DWORD *a4, char a5, int a6); -int __thiscall std::num_put>::put(void *this, int a2, int a3, _DWORD *a4, char a5, int a6); -int __thiscall std::num_put>::put(void *this, int a2, int a3, _DWORD *a4, char a5, UDItype a6); -int __thiscall std::num_put>::put(void *this, int a2, int a3, _DWORD *a4, char a5, int a6, int a7); -int __stdcall std::num_put>::_M_pad(char a1, int a2, _DWORD *a3, char *a4, _BYTE *a5, int *a6); +int __stdcall std::num_put>::_M_pad(char a1, int a2, _DWORD *a3, char *a4, char *a5, int *a6); int __stdcall std::num_put>::do_put(int a1, int a2, _DWORD *a3, char a4, int a5); int *__stdcall std::num_put>::do_put(int *a1, int a2, _DWORD *a3, int a4, int a5); int __thiscall std::num_put>::do_put(void *this, int a2, int a3, _DWORD *a4, char a5, double a6); int __thiscall std::num_put>::do_put(void *this, int a2, int a3, std::__num_base *a4, char a5, long double a6); -int __stdcall std::num_put>::do_put(int a1, int a2, _DWORD *a3, char a4, int a5); -int __stdcall std::num_put>::do_put(int a1, int a2, _DWORD *a3, char a4, int a5); -int __stdcall std::num_put>::do_put(int a1, int a2, _DWORD *a3, char a4, UDItype a5); -int __stdcall std::num_put>::do_put(int a1, int a2, _DWORD *a3, char a4, int a5, int a6); int __stdcall std::num_put>::_M_group_int(char *a1, int a2, __int16 a3, int a4, _WORD *a5, _WORD *a6, int *a7); int __stdcall std::num_put>::_M_insert_int(int a1, int a2, wchar_t *S1, int a4, int a5); // idb int __stdcall std::num_put>::_M_insert_int(int a1, int a2, wchar_t *S1, int a4, int a5); // idb @@ -1974,200 +1576,105 @@ int __stdcall std::num_put>::_M_insert int __stdcall std::num_put>::_M_group_float(char *a1, int a2, __int16 a3, wchar_t *S2, _WORD *a5, _WORD *a6, _DWORD *a7); int __thiscall std::num_put>::_M_insert_float(void *this, int a2, int a3, wchar_t *S1, int a5, int a6, double a7); int __fastcall std::num_put>::_M_insert_float(int a1, int a2, int a3, int a4, wchar_t *S1, int a6, int a7, long double a8); -int __thiscall std::num_put>::put(void *this, int a2, int a3, int a4, unsigned __int16 a5); -int __thiscall std::num_put>::put(void *this, int a2, int a3, int a4, unsigned __int16 a5, unsigned __int8 a6); -int __thiscall std::num_put>::put(void *this, int a2, int a3, int a4, unsigned __int16 a5); -int __thiscall std::num_put>::put(void *this, int a2, int a3, int a4, unsigned __int16 a5); -int __thiscall std::num_put>::put(void *this, int a2, int a3, wchar_t *a4, unsigned __int16 a5, int a6); -int __thiscall std::num_put>::put(void *this, int a2, int a3, wchar_t *a4, unsigned __int16 a5, int a6); -int __thiscall std::num_put>::put(void *this, int a2, int a3, wchar_t *a4, unsigned __int16 a5, UDItype a6); -int __thiscall std::num_put>::put(void *this, int a2, int a3, wchar_t *a4, unsigned __int16 a5, int a6, int a7); -int __stdcall std::num_put>::_M_pad(unsigned __int16 a1, int a2, wchar_t *S1, wchar_t *a4, wchar_t *a5, int *a6); -int __stdcall std::num_put>::do_put(int a1, int a2, wchar_t *S1, unsigned __int16 a4, int a5); +int __stdcall std::num_put>::_M_pad(__int16 a1, int a2, wchar_t *S1, wchar_t *a4, wchar_t *a5, int *a6); +int __stdcall std::num_put>::do_put(int a1, int a2, wchar_t *S1, __int16 a4, int a5); int *__stdcall std::num_put>::do_put(int *a1, int a2, wchar_t *S1, int a4, int a5); -int __thiscall std::num_put>::do_put(void *this, int a2, int a3, wchar_t *S1, unsigned __int16 a5, double a6); -int __thiscall std::num_put>::do_put(void *this, int a2, int a3, wchar_t *S1, unsigned __int16 a5, long double a6); -int __stdcall std::num_put>::do_put(int a1, int a2, wchar_t *a3, unsigned __int16 a4, int a5); -int __stdcall std::num_put>::do_put(int a1, int a2, wchar_t *a3, unsigned __int16 a4, int a5); -int __stdcall std::num_put>::do_put(int a1, int a2, wchar_t *a3, unsigned __int16 a4, UDItype a5); -int __stdcall std::num_put>::do_put(int a1, int a2, wchar_t *a3, unsigned __int16 a4, int a5, int a6); +int __thiscall std::num_put>::do_put(void *this, int a2, int a3, wchar_t *S1, __int16 a5, double a6); +int __thiscall std::num_put>::do_put(void *this, int a2, int a3, wchar_t *S1, __int16 a5, long double a6); _DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find(_DWORD *this, int a2); _DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find(_DWORD *this, int a2); -const char *std::bad_cast::what(); -int __thiscall std::function::operator()(int this, char a2, char a3); -int __fastcall std::ios_base::failure::what(int a1); -int __stdcall std::messages::_M_convert_to_char(int a1); -_DWORD *__thiscall std::messages::_M_convert_from_char(_DWORD *this, int a2, int a3); +int __thiscall std::function::operator()(int this, int a2, char a3); void *__thiscall std::messages::get(void *this, int a2, int a3, int a4, int a5, int a6); -int __thiscall std::messages::open(void *this, int a2, int a3); int __thiscall std::messages::open(void *this, int a2, int a3, int a4); -int (__stdcall *__thiscall std::messages::close(void *this, int a2))(int); unsigned int **__thiscall std::messages::do_get(unsigned int **this, int a2, int a3, int a4, int a5, unsigned int **a6); -int __stdcall std::messages::do_open(int a1, int a2); -int __stdcall std::messages::do_close(int); // weak -int __stdcall std::messages::_M_convert_to_char(int a1); -_DWORD *__thiscall std::messages::_M_convert_from_char(_DWORD *this, int a2, int a3); +int __stdcall std::messages::do_open(int, int); void *__thiscall std::messages::get(void *this, int a2, int a3, int a4, int a5, int a6); -int __thiscall std::messages::open(void *this, int a2, int a3); int __thiscall std::messages::open(void *this, int a2, int a3, int a4); -int (__stdcall *__thiscall std::messages::close(void *this, int a2))(int); _DWORD *__thiscall std::messages::do_get(_DWORD *this, int a2, int a3, int a4, int a5, _DWORD *a6); -int __stdcall std::messages::do_open(int a1, int a2); -int __stdcall std::messages::do_close(int); // weak +int __stdcall std::messages::do_open(int, int); _DWORD *__thiscall std::numpunct::do_grouping(_DWORD *this, int a2); _DWORD *__thiscall std::numpunct::do_truename(_DWORD *this, int a2); _DWORD *__thiscall std::numpunct::do_falsename(_DWORD *this, int a2); -int __fastcall std::numpunct::decimal_point(_DWORD *a1); -int __fastcall std::numpunct::thousands_sep(_DWORD *a1); -int __fastcall std::numpunct::do_decimal_point(int a1); -int __fastcall std::numpunct::do_thousands_sep(int a1); +int __fastcall std::numpunct::do_decimal_point(int); +int __fastcall std::numpunct::do_thousands_sep(int); _DWORD *__thiscall std::numpunct::grouping(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::numpunct::truename(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::numpunct::falsename(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::numpunct::do_grouping(_DWORD *this, int a2); _DWORD *__thiscall std::numpunct::do_truename(_DWORD *this, int a2); _DWORD *__thiscall std::numpunct::do_falsename(_DWORD *this, int a2); -int __fastcall std::numpunct::decimal_point(_DWORD *a1); -int __fastcall std::numpunct::thousands_sep(_DWORD *a1); -int __fastcall std::numpunct::do_decimal_point(int a1); -int __fastcall std::numpunct::do_thousands_sep(int a1); +int __fastcall std::numpunct::do_decimal_point(int); +int __fastcall std::numpunct::do_thousands_sep(int); _DWORD *__thiscall std::numpunct::grouping(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::numpunct::truename(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::numpunct::falsename(_DWORD *this, _DWORD *a2); -int __fastcall std::time_get>::date_order(int a1); int __stdcall std::time_get>::do_get_date(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, _DWORD *a6); int __stdcall std::time_get>::do_get_time(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, _DWORD *a6); _DWORD *__stdcall std::time_get>::do_get_year(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, int a7); -int __fastcall std::time_get>::get_weekday(int a1); -int std::time_get>::do_date_order(); -int __fastcall std::time_get>::get_monthname(int a1); _DWORD *__stdcall std::time_get>::_M_extract_num(_DWORD *a1, int a2, _DWORD *a3, int a4, int *a5, signed int a6, int a7, unsigned int a8, int a9, _DWORD *a10); _DWORD *__stdcall std::time_get>::do_get_weekday(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, int a7); int __stdcall std::time_get>::_M_extract_name(unsigned __int64 a1, _DWORD *a2, int a3, _DWORD *a4, int a5, _DWORD *a6, int a7, _DWORD *a8); _DWORD *__stdcall std::time_get>::do_get_monthname(_DWORD *a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, int a7); unsigned __int64 __stdcall std::time_get>::_M_extract_via_format(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, _DWORD *a6, char *a7); _DWORD *__stdcall std::time_get>::_M_extract_wday_or_month(_DWORD *a1, int a2, _DWORD *a3, int a4, unsigned int *a5, int a6, unsigned int a7, int a8, _DWORD *a9); -int __stdcall std::time_get>::get(int a1, int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, _DWORD *a7, unsigned __int8 *a8, unsigned __int8 *a9); +_DWORD *__stdcall std::time_get>::get(_DWORD *a1, unsigned int a2, _DWORD *a3, int a4, int a5, _DWORD *a6, _DWORD *a7, unsigned __int8 *a8, unsigned __int8 *a9); int __stdcall std::time_get>::get(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, _DWORD *a6, char a7, char a8); int __stdcall std::time_get>::do_get(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, _DWORD *a6, char a7, char a8); -int __fastcall std::time_get>::get_date(int a1); -int __fastcall std::time_get>::get_time(int a1); -int __fastcall std::time_get>::get_year(int a1); -int __fastcall std::time_get>::date_order(int a1); _DWORD *__stdcall std::time_get>::do_get_date(__int64 a1, _DWORD *a2, int *a3, int a4, _DWORD *a5, _DWORD *a6); _DWORD *__stdcall std::time_get>::do_get_time(__int64 a1, _DWORD *a2, int *a3, int a4, _DWORD *a5, _DWORD *a6); -_DWORD *__stdcall std::time_get>::do_get_year(_DWORD *a1, __int16 a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int a7); -int __fastcall std::time_get>::get_weekday(int a1); -int std::time_get>::do_date_order(); -int __fastcall std::time_get>::get_monthname(int a1); -_DWORD *__stdcall std::time_get>::_M_extract_num(_DWORD *a1, __int16 a2, _DWORD *a3, __int16 a4, int *a5, signed int a6, int a7, unsigned int a8, int a9, _DWORD *a10); +_DWORD *__stdcall std::time_get>::do_get_year(_DWORD *a1, unsigned __int16 a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int a7); +_DWORD *__stdcall std::time_get>::_M_extract_num(_DWORD *a1, unsigned __int16 a2, _DWORD *a3, __int16 a4, int *a5, signed int a6, int a7, unsigned int a8, int a9, _DWORD *a10); _DWORD *__stdcall std::time_get>::do_get_weekday(_DWORD *a1, int a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int a7); _DWORD *__stdcall std::time_get>::_M_extract_name(_DWORD *a1, int a2, _DWORD *a3, int *a4, _DWORD *a5, int a6, int a7, int a8, _DWORD *a9); _DWORD *__stdcall std::time_get>::do_get_monthname(_DWORD *a1, int a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int a7); __int64 __stdcall std::time_get>::_M_extract_via_format(__int64 a1, _DWORD *a2, int *a3, int a4, _DWORD *a5, _DWORD *a6, wchar_t *a7); _DWORD *__stdcall std::time_get>::_M_extract_wday_or_month(_DWORD *a1, int a2, _DWORD *a3, __int16 a4, _DWORD *a5, int a6, unsigned int a7, int a8, _DWORD *a9); -int __thiscall std::time_get>::get(void *this, int a2, int a3, _DWORD *a4, int a5, _DWORD *a6, _DWORD *a7, _DWORD *a8, unsigned __int16 *a9, unsigned __int16 *a10); +_DWORD *__thiscall std::time_get>::get(void *this, _DWORD *a2, int a3, _DWORD *a4, int a5, _DWORD *a6, _DWORD *a7, _DWORD *a8, unsigned __int16 *a9, unsigned __int16 *a10); int __stdcall std::time_get>::get(__int64 a1, _DWORD *a2, int *a3, int a4, _DWORD *a5, _DWORD *a6, char a7, char a8); _DWORD *__stdcall std::time_get>::do_get(__int64 a1, _DWORD *a2, int *a3, int a4, _DWORD *a5, _DWORD *a6, char a7, char a8); -int __fastcall std::time_get>::get_date(int a1); -int __fastcall std::time_get>::get_time(int a1); -int __fastcall std::time_get>::get_year(int a1); __int64 __thiscall std::time_put>::put(void *this, __int64 a2, int a3, char a4, int a5, unsigned __int8 *a6, unsigned __int8 *a7); -int __thiscall std::time_put>::put(void *this, int a2, int a3, int a4, char a5, int a6, char a7, char a8); int __stdcall std::time_put>::do_put(int a1, char a2, int a3, int a4, struct tm *a5, char a6, char a7); _DWORD *__thiscall std::time_put>::put(void *this, _DWORD *a2, int a3, int a4, unsigned __int16 a5, int a6, unsigned __int16 *a7, unsigned __int16 *a8); -int __thiscall std::time_put>::put(void *this, int a2, int a3, int a4, unsigned __int16 a5, int a6, char a7, char a8); int __stdcall std::time_put>::do_put(int a1, char a2, int a3, int a4, struct tm *a5, char a6, char a7); -const char *std::bad_alloc::what(); -int __fastcall std::ios::exceptions(int a1); -int __fastcall std::ios::bad(int a1); -int __fastcall std::ios::eof(int a1); -int __fastcall std::ios::tie(int a1); -bool __fastcall std::ios::fail(int a1); int __fastcall std::ios::fill(int a1); -bool __fastcall std::ios::good(int a1); -int __fastcall std::ios::rdbuf(int a1); int __thiscall std::ios::widen(int *this, int a2); int __thiscall std::ios::narrow(_DWORD *this, int a2, int a3); -int __fastcall std::ios::rdstate(int a1); -int __fastcall std::ios::operator void *(int a1); -bool __fastcall std::ios::operator bool(int a1); -bool __fastcall std::ios::operator!(int a1); -int __fastcall std::wios::exceptions(int a1); -int __fastcall std::wios::bad(int a1); -int __fastcall std::wios::eof(int a1); -int __fastcall std::wios::tie(int a1); -bool __fastcall std::wios::fail(int a1); int __fastcall std::wios::fill(int a1); -bool __fastcall std::wios::good(int a1); -int __fastcall std::wios::rdbuf(int a1); int __thiscall std::wios::widen(_DWORD *this, char a2); int __thiscall std::wios::narrow(_DWORD *this, unsigned __int16 a2, char a3); -int __fastcall std::wios::rdstate(int a1); -int __fastcall std::wios::operator void *(int a1); -bool __fastcall std::wios::operator bool(int a1); -bool __fastcall std::wios::operator!(int a1); -const char *_ZGTtNKSt9exception4whatEv(); int __stdcall std::money_get>::_M_extract(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); int __stdcall std::money_get>::_M_extract(unsigned __int64 a1, _DWORD *a2, int a3, int a4, _DWORD *a5, int *a6); -int __thiscall std::money_get>::get(void *this, int a2, int a3, int a4, int a5, unsigned __int8 a6); -int __thiscall std::money_get>::get(void *this, int a2, int a3, int a4, int a5, unsigned __int8 a6); int __stdcall std::money_get>::do_get(unsigned __int64 a1, _DWORD *a2, int a3, char a4, int a5, _DWORD *a6, unsigned int **a7); int __stdcall std::money_get>::do_get(unsigned __int64 a1, _DWORD *a2, int a3, char a4, int a5, _DWORD *a6, long double *a7); _DWORD *__stdcall std::money_get>::_M_extract(_DWORD *a1, unsigned __int16 a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int *a7); _DWORD *__stdcall std::money_get>::_M_extract(_DWORD *a1, unsigned __int16 a2, _DWORD *a3, __int16 a4, int a5, _DWORD *a6, int *a7); -int __thiscall std::money_get>::get(void *this, int a2, int a3, int a4, int a5, unsigned __int8 a6); -int __thiscall std::money_get>::get(void *this, int a2, int a3, int a4, int a5, unsigned __int8 a6); _DWORD *__stdcall std::money_get>::do_get(_DWORD *a1, unsigned __int16 a2, _DWORD *a3, __int16 a4, char a5, int a6, _DWORD *a7, void **a8); _DWORD *__stdcall std::money_get>::do_get(std::locale::facet *a1, unsigned __int16 a2, _DWORD *a3, __int16 a4, char a5, int a6, _DWORD *a7, long double *a8); -int __thiscall std::money_put>::put(void *this, int a2, int a3, unsigned __int8 a4, int a5, char a6); -int __thiscall std::money_put>::put(void *this, int a2, int a3, unsigned __int8 a4, int a5, char a6); int __stdcall std::money_put>::do_put(int a1, char a2, char a3, int a4, char a5, std::string **a6); int __thiscall std::money_put>::do_put(void *this, std::locale *a2, char a3, int a4, int a5, int a6, long double a7); int __stdcall std::money_put>::_M_insert(int a1, char a2, int a3, char a4, std::string **a5); int __stdcall std::money_put>::_M_insert(int a1, char a2, int a3, char a4, std::string **a5); -int __thiscall std::money_put>::put(void *this, int a2, int a3, unsigned __int8 a4, int a5, unsigned __int16 a6); -int __thiscall std::money_put>::put(void *this, int a2, int a3, unsigned __int8 a4, int a5, unsigned __int16 a6); int __stdcall std::money_put>::do_put(int a1, char a2, char a3, int a4, __int16 a5, wchar_t **a6); int __thiscall std::money_put>::do_put(void *this, std::locale *a2, char a3, int a4, int a5, int a6, long double a7); int __stdcall std::money_put>::_M_insert(int a1, char a2, int a3, __int16 a4, wchar_t **a5); int __stdcall std::money_put>::_M_insert(int a1, char a2, int a3, wchar_t a4, wchar_t **a5); // bool __userpurge std::type_info::__do_catch@(_DWORD *a1@, std::type_info *this, const std::type_info *a3, void **a4, unsigned int a5); -int __stdcall std::type_info::__do_upcast(std::type_info *this, const __cxxabiv1::__class_type_info *a2, void **a3); -int std::type_info::__is_function_p(); bool __thiscall std::type_info::operator==(_DWORD *this, int a2); -int __cdecl std::wstring::_S_compare(int a1, int a2); -int __thiscall std::wstring::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); -int __thiscall std::wstring::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); const wchar_t *__fastcall std::wstring::_M_leak_hard(const wchar_t **a1); -_DWORD *__cdecl std::wstring::_S_construct(unsigned int a1, wchar_t a2); // _DWORD *__usercall std::wstring::_S_construct@(unsigned int a1@, wchar_t a2@); wchar_t *__cdecl std::wstring::_S_construct<__gnu_cxx::__normal_iterator>(wchar_t *S2, wchar_t *a2); -_DWORD *__cdecl std::wstring::_S_construct(const wchar_t *a1, int a2); -_DWORD *__cdecl std::wstring::_S_construct(const wchar_t *a1, int a2); +_DWORD *__cdecl std::wstring::_S_construct(const wchar_t *a1, const wchar_t *a2); +_DWORD *__cdecl std::wstring::_S_construct(const wchar_t *a1, const wchar_t *a2); // _DWORD *__usercall std::wstring::_S_construct@(const wchar_t *a1@, int a2@); -void *std::wstring::_S_empty_rep(); -int __cdecl std::wstring::_S_copy_chars(wchar_t *a1, const wchar_t *a2, size_t N); -int __cdecl std::wstring::_S_copy_chars(wchar_t *a1, const wchar_t *a2, size_t N); -int __cdecl std::wstring::_S_copy_chars(wchar_t *a1, const wchar_t *a2, size_t N); -int __cdecl std::wstring::_S_copy_chars(wchar_t *a1, const wchar_t *a2, size_t N); char *__fastcall std::wstring::shrink_to_fit(void **a1); const wchar_t **__thiscall std::wstring::_M_replace_aux(const wchar_t **this, size_t a2, int a3, size_t N, wchar_t C); const wchar_t **__thiscall std::wstring::_M_replace_safe(const wchar_t **this, size_t a2, int a3, wchar_t *S2, size_t N); -_DWORD *__cdecl std::wstring::_S_construct_aux_2(unsigned int a1, wchar_t a2); const wchar_t *__thiscall std::wstring::at(const wchar_t **this, unsigned int a2); -int __fastcall std::wstring::end(const wchar_t **a1); +const wchar_t *__fastcall std::wstring::end(const wchar_t **a1); void __thiscall std::wstring::_Rep::_M_destroy(void *this, int a2); void __thiscall std::wstring::_Rep::_M_dispose(volatile signed __int32 *this, int a2); void __fastcall std::wstring::_Rep::_M_dispose(volatile signed __int32 *a1); void __thiscall std::wstring::_Rep::_M_dispose(volatile signed __int32 *this, int a2); -int __fastcall std::wstring::_Rep::_M_refcopy(int a1); -int __fastcall std::wstring::_Rep::_M_refdata(int a1); -void *std::wstring::_Rep::_S_empty_rep(); -void __fastcall std::wstring::_Rep::_M_set_leaked(int a1); -void __fastcall std::wstring::_Rep::_M_set_sharable(int a1); -int __thiscall std::wstring::_Rep::_M_set_length_and_sharable(int this, int a2); -_DWORD *__thiscall std::wstring::_Rep::_M_grab(int this, int a2, int a3); _DWORD *__thiscall std::wstring::_Rep::_M_clone(int this, int a2, int a3); _DWORD *__cdecl std::wstring::_Rep::_S_create(unsigned int a1, unsigned int a2); const wchar_t *__fastcall std::wstring::back(const wchar_t **a1); @@ -2190,7 +1697,6 @@ const wchar_t **__thiscall std::wstring::assign(const wchar_t **this, wchar_t *S void **__thiscall std::wstring::assign(void **this, _DWORD *a2); const wchar_t **__thiscall std::wstring::assign(const wchar_t **this, _DWORD *a2, unsigned int a3, size_t a4); const wchar_t **__thiscall std::wstring::assign(const wchar_t **this, size_t a2, __int16 a3); -const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, int a2, wchar_t *a3, size_t a4); const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, int a2, size_t a3, __int16 a4); char *__thiscall std::wstring::insert(const wchar_t **this, int a2, wchar_t a3); const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, int a2, wchar_t *String); @@ -2201,19 +1707,8 @@ const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, unsigned i _DWORD *__thiscall std::wstring::rbegin(_DWORD *this, const wchar_t **a2); void __thiscall std::wstring::resize(void **this, size_t a2); void __thiscall std::wstring::resize(void **this, size_t a2, wchar_t a3); -size_t __cdecl std::wstring::_M_copy(wchar_t *S1, const wchar_t *S2, size_t N); -int __thiscall std::wstring::_M_data(_DWORD *this, int a2); -const wchar_t *__fastcall std::wstring::_M_leak(const wchar_t **a1); -size_t __cdecl std::wstring::_M_move(wchar_t *S1, const wchar_t *S2, size_t N); -const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t *a4, size_t N); const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t *String); -const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t *a4, size_t N); -const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t *a4, size_t a5); const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t **a4); -const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t *a4, size_t N); -const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t *a4, size_t N); -const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t *a4, size_t N); -const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, size_t a4, wchar_t a5); const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t *String); const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, unsigned int a2, unsigned int a3, wchar_t *a4, size_t N); const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, int a3, wchar_t **a4); @@ -2221,14 +1716,10 @@ const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, int a2, i const wchar_t **__thiscall std::wstring::replace(const wchar_t **this, unsigned int a2, unsigned int a3, size_t a4, wchar_t a5); char *__thiscall std::wstring::reserve(void **this, char *a2); void __fastcall std::wstring::pop_back(const wchar_t **a1); -wchar_t *__cdecl std::wstring::_M_assign(wchar_t *a1, size_t C, size_t N); void __thiscall std::wstring::_M_mutate(const wchar_t **this, size_t a2, int a3, int a4); _WORD *__thiscall std::wstring::push_back(void **this, __int16 a2); -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, int a3); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, wchar_t *String, int a3); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4); -void __thiscall std::wstring::basic_string(_DWORD *this, int a2); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, int a3); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, unsigned int a3, int a4); @@ -2236,15 +1727,11 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, int *a2, unsigned in _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, int *a2, unsigned int a3, unsigned int a4, int a5); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, unsigned int a2, wchar_t a3, int a4); -void __fastcall std::wstring::basic_string(_DWORD *a1); wchar_t *__thiscall std::wstring::basic_string<__gnu_cxx::__normal_iterator>(wchar_t **this, wchar_t *a2, wchar_t *a3, int a4); -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4); -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4); -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, const wchar_t *a3, int a4); +_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, const wchar_t *a3, int a4); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, wchar_t *String, int a3); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4); -void __thiscall std::wstring::basic_string(_DWORD *this, int a2); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, int a3); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, unsigned int a3, int a4); @@ -2252,10 +1739,9 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, int *a2, unsigned in _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, int *a2, unsigned int a3, unsigned int a4, int a5); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4); _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, unsigned int a2, wchar_t a3, int a4); -void __fastcall std::wstring::basic_string(_DWORD *a1); wchar_t *__thiscall std::wstring::basic_string<__gnu_cxx::__normal_iterator>(wchar_t **this, wchar_t *a2, wchar_t *a3, int a4); -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4); -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4); +_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, const wchar_t *a3, int a4); +_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, const wchar_t *a3, int a4); void __fastcall std::wstring::~wstring(volatile signed __int32 **a1); void __fastcall std::wstring::~wstring(volatile signed __int32 **a1); int __thiscall std::wstring::operator=(int *this, int *a2); @@ -2273,7 +1759,6 @@ int __thiscall std::iostream::iostream(int *this, int *a2, _DWORD *a3); int __thiscall std::iostream::iostream(int *this, int *a2, int a3); int __thiscall std::iostream::iostream(_DWORD *ecx0, std::iostream *this); void __fastcall std::iostream::~iostream(_DWORD *a1); -void __fastcall std::iostream::~iostream(int a1); void __thiscall std::iostream::~iostream(_DWORD *ecx0, std::iostream *this); _DWORD *__thiscall std::iostream::operator=(_DWORD *this, _DWORD *a2); std::istream::sentry *__thiscall std::istream::_M_extract(std::istream::sentry *this, int a2); @@ -2307,7 +1792,7 @@ std::istream::sentry *__fastcall std::istream::ignore(std::istream::sentry *a1); // int __userpurge std::istream::sentry::sentry@(_BYTE *a1@, std::istream::sentry *this, std::istream *a3, bool a4); // int __userpurge std::istream::sentry::sentry@(_BYTE *a1@, std::istream::sentry *this, std::istream *a3, bool a4); // std::istream::sentry *__userpurge std::istream::getline@(std::istream::sentry *a1@, std::istream *this, char *a3, int a4); -// std::istream::sentry *__userpurge std::istream::getline@(std::istream::sentry *a1@, std::istream *this, char *a3, unsigned __int8 a4, char a5); +// std::istream::sentry *__userpurge std::istream::getline@(std::istream::sentry *a1@, std::istream *this, char *a3, char a4, char a5); // std::istream::sentry *__userpurge std::istream::putback@(std::istream::sentry *a1@, std::istream *this, char a3); // int __userpurge std::istream::readsome@(std::istream::sentry *a1@, std::istream *this, char *a3, int a4); int __thiscall std::istream::istream(_DWORD *this, int *a2); @@ -2317,8 +1802,6 @@ int __thiscall std::istream::istream(int *this, int *a2, _DWORD *a3); BOOL __thiscall std::istream::istream(int *this, int *a2, int a3); BOOL __thiscall std::istream::istream(_DWORD *ecx0, std::istream *this); void __fastcall std::istream::~istream(_DWORD *a1); -void __fastcall std::istream::~istream(_DWORD *a1); -void __thiscall std::istream::~istream(_DWORD *ecx0, std::istream *this); _DWORD *__thiscall std::istream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::istream::operator>>(void *this, int (__cdecl *a2)(void *)); char *__thiscall std::istream::operator>>(char *this, void (__cdecl *a2)(char *)); @@ -2352,54 +1835,31 @@ BOOL __thiscall std::ostream::ostream(_DWORD *this, int a2); BOOL __fastcall std::ostream::ostream(int a1); int __thiscall std::ostream::ostream(int *this, int *a2, _DWORD *a3); BOOL __thiscall std::ostream::ostream(int *this, int *a2, int a3); -int __thiscall std::ostream::ostream(_DWORD *ecx0, std::ostream *this, std::iostream *a3); -BOOL __thiscall std::ostream::ostream(_DWORD *ecx0, std::ostream *this); void __fastcall std::ostream::~ostream(_DWORD *a1); -void __fastcall std::ostream::~ostream(_DWORD *a1); -void __thiscall std::ostream::~ostream(_DWORD *ecx0, std::ostream *this); _DWORD *__thiscall std::ostream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::ostream::operator<<(void *this, int (__cdecl *a2)(void *)); char *__thiscall std::ostream::operator<<(char *this, void (__cdecl *a2)(char *)); char *__thiscall std::ostream::operator<<(char *this, void (__cdecl *a2)(char *)); std::ostream::sentry *__thiscall std::ostream::operator<<(std::ostream::sentry *this, _DWORD *a2); -std::ostream::sentry *__thiscall std::ostream::operator<<(std::ostream::sentry *this, unsigned __int8 a2); +std::ostream::sentry *__thiscall std::ostream::operator<<(std::ostream::sentry *this, unsigned __int8); std::ostream::sentry *__thiscall std::ostream::operator<<(std::ostream::sentry *this, float a2); _DWORD __stdcall std::ostream::operator<<(_DWORD); // weak -std::ostream::sentry *__thiscall std::ostream::operator<<(std::ostream::sentry *this, unsigned __int16 a2); -std::ostream::sentry *__thiscall std::ostream::operator<<(std::ostream::sentry *this, unsigned __int16 a2); -char *__cdecl std::string::_S_compare(std::string *this, unsigned int a2); -int __thiscall std::string::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); -int __thiscall std::string::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); volatile signed __int32 *__fastcall std::string::_M_leak_hard(volatile signed __int32 **a1); -unsigned int *__cdecl std::string::_S_construct(unsigned int a1, char a2); // unsigned int *__usercall std::string::_S_construct@(unsigned int a1@, char a2@
); void *__cdecl std::string::_S_construct<__gnu_cxx::__normal_iterator>(_BYTE *Src, _BYTE *a2); -_DWORD *__cdecl std::string::_S_construct(_BYTE *a1, int a2); -_DWORD *__cdecl std::string::_S_construct(_BYTE *a1, int a2); +_DWORD *__cdecl std::string::_S_construct(_BYTE *a1, _BYTE *a2); +_DWORD *__cdecl std::string::_S_construct(_BYTE *a1, _BYTE *a2); // _DWORD *__usercall std::string::_S_construct@(_BYTE *a1@, int a2@); -unsigned int *std::string::_S_empty_rep(); -int __cdecl std::string::_S_copy_chars(_BYTE *a1, unsigned __int8 *a2, size_t Size); -int __cdecl std::string::_S_copy_chars(_BYTE *a1, unsigned __int8 *a2, size_t Size); -size_t __cdecl std::string::_S_copy_chars(std::string *this, char *a2, size_t Size); -size_t __cdecl std::string::_S_copy_chars(std::string *this, char *a2, size_t Size); unsigned int *__fastcall std::string::shrink_to_fit(unsigned int **a1); // volatile signed __int32 **__userpurge std::string::_M_replace_aux@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, size_t Size, char a5, char a6); // volatile signed __int32 **__userpurge std::string::_M_replace_safe@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, _BYTE *Src, size_t Size, unsigned int a6); -unsigned int *__cdecl std::string::_S_construct_aux_2(unsigned int a1, char a2); // char *__userpurge std::string::at@(volatile signed __int32 **a1@, std::string *this, unsigned int a3); int __fastcall std::string::end(volatile signed __int32 **a1); void __thiscall std::string::_Rep::_M_destroy(void *this, int a2); -void __thiscall std::string::_Rep::_M_dispose(volatile signed __int32 *this, int a2); +void __thiscall std::string::_Rep::_M_dispose(unsigned int *this, int a2); void __fastcall std::string::_Rep::_M_dispose(volatile signed __int32 *a1); void __thiscall std::string::_Rep::_M_dispose(volatile signed __int32 *this, int a2); void __thiscall std::string::_Rep::_M_dispose(volatile signed __int32 *this, int a2); -int __fastcall std::string::_Rep::_M_refcopy(int a1); -int __fastcall std::string::_Rep::_M_refdata(int a1); -unsigned int *std::string::_Rep::_S_empty_rep(); -void __fastcall std::string::_Rep::_M_set_leaked(int a1); -void __fastcall std::string::_Rep::_M_set_sharable(int a1); -// std::string::_Rep *__userpurge std::string::_Rep::_M_set_length_and_sharable@(unsigned int *a1@, std::string::_Rep *this, unsigned int a3); -unsigned int *__thiscall std::string::_Rep::_M_grab(int this, int a2, int a3); unsigned int *__thiscall std::string::_Rep::_M_clone(int this, int a2, int a3); _DWORD *__cdecl std::string::_Rep::_S_create(unsigned int a1, unsigned int a2); char *__fastcall std::string::back(volatile signed __int32 **a1); @@ -2423,45 +1883,29 @@ int __stdcall std::string::assign(std::string *); // idb // unsigned int **__userpurge std::string::assign@(unsigned int **a1@, unsigned int **this, const std::string *a3); // volatile signed __int32 **__userpurge std::string::assign@(volatile signed __int32 **a1@, std::string *this, const std::string *a3, unsigned int a4, unsigned int a5); // volatile signed __int32 **__userpurge std::string::assign@(volatile signed __int32 **a1@, size_t this, char a3, char a4); -// volatile signed __int32 **__userpurge std::string::insert@(volatile signed __int32 **a1@, std::string *a2, volatile signed __int32 *a3, size_t a4, unsigned int a5); char *__thiscall std::string::insert(volatile signed __int32 **this, int a2, char a3); volatile signed __int32 **__thiscall std::string::insert(volatile signed __int32 **this, int a2, size_t a3, char a4); // volatile signed __int32 **__userpurge std::string::insert@(volatile signed __int32 **a1@, std::string *this, char *Str, const char *a4); -// volatile signed __int32 **__userpurge std::string::insert@(volatile signed __int32 **a1@, std::string *this, volatile signed __int32 *a3, size_t Size, unsigned int a5); -// volatile signed __int32 **__userpurge std::string::insert@(volatile signed __int32 **a1@, std::string *this, volatile signed __int32 **a3, const std::string *a4); +// volatile signed __int32 **__userpurge std::string::insert@(volatile signed __int32 **a1@, std::string *this, char *a3, size_t Size, unsigned int a5); +// volatile signed __int32 **__userpurge std::string::insert@(volatile signed __int32 **a1@, std::string *this, char **a3, const std::string *a4); // volatile signed __int32 **__userpurge std::string::insert@(volatile signed __int32 **a1@, std::string *this, _DWORD *a3, const std::string *a4, unsigned int a5, unsigned int a6); // volatile signed __int32 **__userpurge std::string::insert@(volatile signed __int32 **a1@, std::string *this, size_t a3, char a4, char a5); _DWORD *__thiscall std::string::rbegin(_DWORD *ecx0, volatile signed __int32 **this); // void __userpurge std::string::resize(unsigned int **a1@, std::string *this, unsigned int a3); // void __userpurge std::string::resize(unsigned int **a1@, size_t this, char a3, char a4); -size_t __cdecl std::string::_M_copy(void *this, const void *Src, size_t Size); -// std::string *__userpurge std::string::_M_data@(_DWORD *a1@, std::string *this, char *a3); -volatile signed __int32 *__fastcall std::string::_M_leak(volatile signed __int32 **a1); -size_t __cdecl std::string::_M_move(void *this, const void *Src, size_t Size); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *a2, int a3, volatile signed __int32 *a4, size_t Size, unsigned int a6); volatile signed __int32 **__thiscall std::string::replace(volatile signed __int32 **this, int a2, int a3, char *Str); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *a2, int a3, volatile signed __int32 *a4, size_t Size, unsigned int a6); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *a2, int a3, volatile signed __int32 *a4, size_t a5, unsigned int a6); -volatile signed __int32 **__thiscall std::string::replace(volatile signed __int32 **this, int a2, int a3, volatile signed __int32 **a4); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *a2, int a3, volatile signed __int32 *a4, size_t Size, unsigned int a6); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *a2, int a3, volatile signed __int32 *a4, size_t Size, unsigned int a6); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *a2, int a3, volatile signed __int32 *a4, size_t a5, unsigned int a6); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *a2, int a3, size_t a4, char a5, char a6); +volatile signed __int32 **__thiscall std::string::replace(volatile signed __int32 **this, int a2, int a3, char **a4); // volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, char *Str, const char *a5); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, volatile signed __int32 *a4, size_t Size, unsigned int a6); -// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, volatile signed __int32 **a4, const std::string *a5); +// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, char *a4, size_t Size, unsigned int a6); +// volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, char **a4, const std::string *a5); // volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, _DWORD *a4, const std::string *a5, unsigned int a6, unsigned int a7); // volatile signed __int32 **__userpurge std::string::replace@(volatile signed __int32 **a1@, std::string *this, unsigned int a3, size_t a4, char a5, char a6); // unsigned int *__userpurge std::string::reserve@(unsigned int **a1@, std::string *this, unsigned int a3); void __fastcall std::string::pop_back(volatile signed __int32 **a1); -char *__cdecl std::string::_M_assign(std::string *this, char *Val, size_t Size); // void __userpurge std::string::_M_mutate(volatile signed __int32 **a1@, size_t this, unsigned int a3, unsigned int a4, unsigned int a5); // unsigned int *__userpurge std::string::push_back@(unsigned int **a1@, std::string *this, char a3); -_DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2, int a3); _DWORD *__thiscall std::string::string(_DWORD *this, char *Str, int a3); _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4); -void __thiscall std::string::string(_DWORD *this, int a2); // unsigned int *__userpurge std::string::string@(unsigned int **a1@, unsigned int **this, const std::string *a3); unsigned int *__thiscall std::string::string(unsigned int **this, unsigned int **a2, int a3); _DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2, unsigned int a3, int a4); @@ -2469,15 +1913,11 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2, unsigned int a3 _DWORD *__thiscall std::string::string(_DWORD *this, int *a2, unsigned int a3, unsigned int a4, int a5); _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4); unsigned int *__thiscall std::string::string(unsigned int **this, unsigned int a2, char a3, int a4); -void __fastcall std::string::string(_DWORD *a1); void *__thiscall std::string::string<__gnu_cxx::__normal_iterator>(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4); -_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4); -_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4); -_DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2); -_DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4); +_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4); _DWORD *__thiscall std::string::string(_DWORD *this, char *Str, int a3); _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4); -void __thiscall std::string::string(_DWORD *this, int a2); // unsigned int *__userpurge std::string::string@(unsigned int **a1@, unsigned int **this, const std::string *a3); unsigned int *__thiscall std::string::string(unsigned int **this, unsigned int **a2, int a3); _DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2, unsigned int a3, int a4); @@ -2485,10 +1925,9 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2, unsigned int a3 _DWORD *__thiscall std::string::string(_DWORD *this, int *a2, unsigned int a3, unsigned int a4, int a5); _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4); unsigned int *__thiscall std::string::string(unsigned int **this, unsigned int a2, char a3, int a4); -void __fastcall std::string::string(_DWORD *a1); void *__thiscall std::string::string<__gnu_cxx::__normal_iterator>(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4); -_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4); -_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4); +_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4); +_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4); void __fastcall std::string::~string(volatile signed __int32 **a1); void __fastcall std::string::~string(volatile signed __int32 **a1); int __stdcall std::string::operator=(std::string *); // idb @@ -2500,8 +1939,7 @@ unsigned int **__thiscall std::string::operator+=(unsigned int **this, std::stri unsigned int **__thiscall std::string::operator+=(unsigned int **this, char a2); int __cdecl std::__num_base::_S_format_float(std::__num_base *this, const std::ios_base *a2, char *a3); void __fastcall std::bad_typeid::~bad_typeid(_DWORD *a1); -void __cdecl std::bad_typeid::~bad_typeid(std::exception *a1); -int __cdecl std::money_base::_S_construct_pattern(); +void __cdecl std::bad_typeid::~bad_typeid(std::exception *); int __thiscall std::moneypunct::_M_initialize_moneypunct(_DWORD *this, int a2, int a3); int __thiscall std::moneypunct::moneypunct(_DWORD *this, int a2, int a3); int __thiscall std::moneypunct::moneypunct(_DWORD *this, int a2, int a3, int a4); @@ -2558,7 +1996,6 @@ _DWORD *__thiscall std::__timepunct::__timepunct(_DWORD *this, int a2); void __fastcall std::__timepunct::~__timepunct(void *a1); void __cdecl std::__timepunct::~__timepunct(std::locale::facet *a1); void __cdecl std::__timepunct::~__timepunct(std::locale::facet *a1); -int __thiscall std::logic_error::logic_error(_DWORD *this, int a2); // _DWORD *__userpurge std::logic_error::logic_error@(int a1@, std::logic_error *this, const char *a3); _DWORD *__thiscall std::logic_error::logic_error(_DWORD *this, int a2); // unsigned int *__userpurge std::logic_error::logic_error@(int a1@, unsigned int **this, const std::logic_error *a3); @@ -2571,16 +2008,16 @@ unsigned int **__thiscall std::logic_error::operator=(unsigned int **this, int a _DWORD *__thiscall std::range_error::range_error(_DWORD *this, int a2); // unsigned int *__userpurge std::range_error::range_error@(_DWORD *a1@, unsigned int **this, const std::string *a3); void __fastcall std::range_error::~range_error(_DWORD *a1); -void __fastcall std::range_error::~range_error(_DWORD *a1); +void __fastcall std::range_error::~range_error(_DWORD *); // int __usercall std::_Destroy_aux::__destroy *>@(int a1@, int a2, int a3); // int __usercall std::_Destroy_aux::__destroy *>@(int a1@, int a2, int a3); // int __usercall std::_Destroy_aux::__destroy *>@(int a1@, int a2, int a3); void __cdecl std::_Destroy_aux::__destroy(void **a1, char **a2); // int __usercall std::_Destroy_aux::__destroy@(int a1@, void **a2, void **a3); // int __usercall std::_Destroy_aux::__destroy@(int a1@, void **a2, void **a3); -void __fastcall __spoils std::`anonymous namespace'::utf16_span(unsigned int a1, unsigned __int8 *a2, unsigned int a3, char a4); +// void __usercall std::`anonymous namespace'::utf16_span(unsigned int a1@, unsigned __int8 *a2@, unsigned __int8 *a3@, unsigned int a4, char a5); // int __usercall std::`anonymous namespace'::read_utf16_bom@(int result@, _DWORD *a2@); -// int __usercall std::`anonymous namespace'::write_utf8_bom@(int *a1@); +// int __usercall std::`anonymous namespace'::write_utf8_bom@(int *@); // int __usercall std::`anonymous namespace'::write_utf16_bom@(int a1@, char a2@
); // int __usercall std::`anonymous namespace'::read_utf8_code_point@(unsigned __int8 **a1@, unsigned int a2@); // int __usercall std::`anonymous namespace'::read_utf8_code_point@(unsigned __int8 **a1@, unsigned int a2@); @@ -2591,17 +2028,14 @@ void __fastcall __spoils std::`anonymous namespace'::utf16_span(u // int __usercall std::`anonymous namespace'::ucs2_in@(_DWORD *a1@, int *a2@, unsigned int a3@, char a4); // int __usercall std::`anonymous namespace'::ucs4_in@(int *a1@, int *a2@, unsigned int a3@, char a4); // int __usercall std::`anonymous namespace'::read_bom@(int a1@, _WORD *a2@); -// int __usercall std::`anonymous namespace'::read_bom@(int *a1@); -// int __usercall std::`anonymous namespace'::read_bom@(int *a1@); +// int __usercall std::`anonymous namespace'::read_bom@(int *@); // int __usercall std::`anonymous namespace'::ucs2_out@(unsigned __int16 **a1@, _DWORD *a2@, unsigned int a3@, char a4); // int __usercall std::`anonymous namespace'::utf16_in@(int *a1@, _DWORD *a2@, unsigned int a3@, char a4, int a5); // int __usercall std::`anonymous namespace'::ucs2_span@(unsigned int a1@, int a2@, unsigned int a3@, char a4); -void __fastcall __spoils std::`anonymous namespace'::ucs2_span(int a1, unsigned __int8 *a2, unsigned int a3, char a4); +// void __usercall std::`anonymous namespace'::ucs2_span(int a1@, unsigned __int8 *a2@, unsigned __int8 *a3@, unsigned int a4, char a5); // int __usercall std::`anonymous namespace'::utf16_out@(unsigned __int16 **a1@, int *a2@, unsigned int a3@, char a4, int a5); // int __usercall std::`anonymous namespace'::utf16_out@(unsigned __int16 **a1@, _BYTE **a2@, unsigned int a3@, int a4); char *__thiscall std::_Vector_base::_M_create_storage(_DWORD *this, unsigned int a2); -int __fastcall std::__basic_file::fd(int a1); -int __fastcall std::__basic_file::file(int a1); _BYTE *__thiscall std::__basic_file::open(_BYTE *this, char *FileName, char a3, int a4); FILE *__thiscall std::__basic_file::open(_BYTE *this, wchar_t *FileName, char a3); int __fastcall std::__basic_file::sync(FILE **a1); @@ -2613,13 +2047,11 @@ _BYTE *__thiscall std::__basic_file::sys_open(_BYTE *this, FILE *Stream, i _BYTE *__thiscall std::__basic_file::sys_open(_BYTE *this, int FileHandle, char a3); unsigned int __thiscall std::__basic_file::xsputn_2(void *this, char *a2, unsigned int a3, char *a4, unsigned int a5); int __fastcall std::__basic_file::showmanyc(int a1); -void __thiscall std::__basic_file::__basic_file(_BYTE *this, int a2); +void __thiscall std::__basic_file::__basic_file(_BYTE *this, int); int __fastcall std::__basic_file::~__basic_file(_DWORD); // weak -_DWORD *__thiscall std::__cow_string::__cow_string(_DWORD *this, _DWORD *a2); // _DWORD *__userpurge std::__cow_string::__cow_string@(_DWORD *a1@, std::__cow_string *this, const char *a3, unsigned int a4); _DWORD *__thiscall std::__cow_string::__cow_string(_DWORD *this, int a2); // unsigned int *__userpurge std::__cow_string::__cow_string@(unsigned int **a1@, unsigned int **this, const std::__cow_string *a3); -void __fastcall std::__cow_string::__cow_string(_DWORD *a1); void __fastcall std::__cow_string::~__cow_string(volatile signed __int32 **a1); int *__thiscall std::__cow_string::operator=(int *this, std::string *a2); unsigned int **__thiscall std::__cow_string::operator=(unsigned int **this, unsigned int **a2); @@ -2629,47 +2061,41 @@ volatile signed __int32 *__thiscall std::__shared_ptr::operator=(volatile signed __int32 **this, volatile signed __int32 **a2); _DWORD *__thiscall std::__shared_ptr,std::allocator>,(__gnu_cxx::_Lock_policy)2>::operator=(_DWORD *this, int *a2); _DWORD *__thiscall std::__sso_string::__sso_string(_DWORD *this, _DWORD *a2); -// unsigned int __userpurge std::__sso_string::__sso_string@(void **a1@, std::__sso_string *this, const char *a3, unsigned int a4); +// int __userpurge std::__sso_string::__sso_string@(void **a1@, std::__sso_string *this, const char *a3, unsigned int a4); _BYTE *__thiscall std::__sso_string::__sso_string(_DWORD *this, int a2); // _BYTE *__userpurge std::__sso_string::__sso_string@(_DWORD *a1@, std::__sso_string *this, const std::__sso_string *a3); -// unsigned int __userpurge std::__sso_string::__sso_string@(void **a1@, std::__sso_string **this, const std::string *a3); -int __fastcall std::__sso_string::__sso_string(int a1); +// int __userpurge std::__sso_string::__sso_string@(void **a1@, std::__sso_string **this, const std::string *a3); void __fastcall std::__sso_string::~__sso_string(void **a1); _DWORD *__thiscall std::__sso_string::operator=(_DWORD *this, int a2); void *__thiscall std::__sso_string::operator=(void *this, int a2); unsigned __int8 __thiscall std::ctype_byname::ctype_byname(_DWORD *this, int **a2, int a3); -unsigned __int8 __thiscall std::ctype_byname::ctype_byname(_DWORD *this, int ***a2, int a3); -unsigned __int8 __thiscall std::ctype_byname::ctype_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::ctype_byname::~ctype_byname(_DWORD *a1); -void __cdecl std::ctype_byname::~ctype_byname(std::locale::facet *a1); char __thiscall std::ctype_byname::ctype_byname(_DWORD *this, int **a2, int a3); -char __thiscall std::ctype_byname::ctype_byname(_DWORD *this, int ***a2, int a3); -char __thiscall std::ctype_byname::ctype_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::ctype_byname::~ctype_byname(_DWORD *a1); void __cdecl std::ctype_byname::~ctype_byname(std::locale::facet *a1); // _DWORD *__userpurge std::domain_error::domain_error@(_DWORD *a1@, std::domain_error *this, const char *a3); _DWORD *__thiscall std::domain_error::domain_error(_DWORD *this, int a2); // unsigned int *__userpurge std::domain_error::domain_error@(_DWORD *a1@, unsigned int **this, const std::string *a3); void __fastcall std::domain_error::~domain_error(_DWORD *a1); -void __fastcall std::domain_error::~domain_error(_DWORD *a1); +void __fastcall std::domain_error::~domain_error(_DWORD *); // _DWORD *__userpurge std::length_error::length_error@(_DWORD *a1@, std::length_error *this, const char *a3); _DWORD *__thiscall std::length_error::length_error(_DWORD *this, int a2); // unsigned int *__userpurge std::length_error::length_error@(_DWORD *a1@, unsigned int **this, const std::string *a3); void __fastcall std::length_error::~length_error(_DWORD *a1); -void __fastcall std::length_error::~length_error(_DWORD *a1); +void __fastcall std::length_error::~length_error(_DWORD *); // _DWORD *__userpurge std::out_of_range::out_of_range@(_DWORD *a1@, std::out_of_range *this, const char *a3); _DWORD *__thiscall std::out_of_range::out_of_range(_DWORD *this, int a2); // unsigned int *__userpurge std::out_of_range::out_of_range@(_DWORD *a1@, unsigned int **this, const std::string *a3); void __fastcall std::out_of_range::~out_of_range(_DWORD *a1); -void __fastcall std::out_of_range::~out_of_range(_DWORD *a1); -void __fastcall std::system_error::~system_error(_DWORD *a1); +void __fastcall std::out_of_range::~out_of_range(_DWORD *); void __fastcall std::system_error::~system_error(_DWORD *a1); +void __fastcall std::system_error::~system_error(_DWORD *); void *__fastcall std::_Bvector_base>::_M_deallocate(int a1); int __cdecl std::__facet_shims::__time_get(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, char a10); int __cdecl std::__facet_shims::__time_get(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, char a10); int __cdecl std::__facet_shims::__time_get(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, char a10); int __cdecl std::__facet_shims::__time_get(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, char a10); -int __cdecl std::__facet_shims::__money_get(int a1, int *a2, int a3, std::string *a4, int a5, int a6, unsigned __int8 a7, int a8, _DWORD *a9, int a10, int a11); +int __cdecl std::__facet_shims::__money_get(int a1, int *a2, int a3, std::string *a4, int a5, int a6, char a7, int a8, _DWORD *a9, int a10, int a11); int __cdecl std::__facet_shims::__money_get(int a1, int *a2, int a3, int a4, int a5, int a6, unsigned __int8 a7, int a8, _DWORD *a9, int a10, _DWORD *a11); int __cdecl std::__facet_shims::__money_get(int a1, int *a2, int a3, int a4, int a5, int a6, unsigned __int8 a7, int a8, _DWORD *a9, int a10, _DWORD *a11); int __cdecl std::__facet_shims::__money_get(int a1, int *a2, int a3, int a4, int a5, int a6, unsigned __int8 a7, int a8, _DWORD *a9, int a10, int a11); @@ -2742,9 +2168,9 @@ void __fastcall std::__facet_shims::`anonymous namespace'::moneypunct_shim::~moneypunct_shim(std::locale::facet *a1); void __cdecl std::__facet_shims::`anonymous namespace'::moneypunct_shim::~moneypunct_shim(std::locale::facet *a1); void __cdecl std::__facet_shims::`anonymous namespace'::__destroy_string(volatile signed __int32 **a1); -void __cdecl std::__facet_shims::`anonymous namespace'::__destroy_string(void **a1); +void __cdecl std::__facet_shims::`anonymous namespace'::__destroy_string(void **); void __cdecl std::__facet_shims::`anonymous namespace'::__destroy_string(volatile signed __int32 **a1); -void __cdecl std::__facet_shims::`anonymous namespace'::__destroy_string(void **a1); +void __cdecl std::__facet_shims::`anonymous namespace'::__destroy_string(void **); void __cdecl std::__facet_shims::__messages_get(int a1, int a2, int a3, std::string *a4, int a5, int a6, _BYTE *a7, int a8); void __cdecl std::__facet_shims::__messages_get(int a1, int a2, _DWORD *a3, int a4, int a5, int a6, unsigned __int8 *a7, int a8); void __cdecl std::__facet_shims::__messages_get(int a1, int a2, _DWORD *a3, int a4, int a5, int a6, const wchar_t *a7, int a8); @@ -2765,10 +2191,10 @@ void __cdecl std::__facet_shims::__collate_transform(int a1, int a2, int a void __cdecl std::__facet_shims::__collate_transform(int a1, int a2, _DWORD *a3, int a4, int a5); void __cdecl std::__facet_shims::__collate_transform(int a1, int a2, _DWORD *a3, int a4, int a5); void __cdecl std::__facet_shims::__collate_transform(int a1, int a2, int a3, int a4, int a5); -int __cdecl std::__facet_shims::__time_get_dateorder(int a1, int a2); -int __cdecl std::__facet_shims::__time_get_dateorder(int a1, int a2); -int __cdecl std::__facet_shims::__time_get_dateorder(int a1, int a2); -int __cdecl std::__facet_shims::__time_get_dateorder(int a1, int a2); +int __cdecl std::__facet_shims::__time_get_dateorder(int, int); +int __cdecl std::__facet_shims::__time_get_dateorder(int, int); +int __cdecl std::__facet_shims::__time_get_dateorder(int, int); +int __cdecl std::__facet_shims::__time_get_dateorder(int, int); void __cdecl std::__facet_shims::__numpunct_fill_cache(int a1, int *a2, int a3); void __cdecl std::__facet_shims::__numpunct_fill_cache(int a1, int *a2, int a3); void __cdecl std::__facet_shims::__numpunct_fill_cache(int a1, int *a2, int a3); @@ -2789,7 +2215,6 @@ void __fastcall std::bad_exception::~bad_exception(void *a1); void __cdecl std::bad_exception::~bad_exception(void *); // idb unsigned int __thiscall std::filebuf::_M_set_buffer(_DWORD *this, int a2); int __thiscall std::filebuf::_M_get_ext_pos(int this, int a2); -int __fastcall std::filebuf::_M_create_pback(int a1); int __fastcall std::filebuf::_M_destroy_pback(int a1); int __fastcall std::filebuf::_M_terminate_output(_DWORD *a1); bool __thiscall std::filebuf::_M_convert_to_external(_DWORD *this, char *a2, unsigned int a3); @@ -2798,7 +2223,6 @@ void __fastcall std::filebuf::_M_allocate_internal_buffer(int a1); char *__thiscall std::filebuf::open(char *this, char *a2, int a3); char *__thiscall std::filebuf::open(char *this, int a2); char *__thiscall std::filebuf::open(char *this, wchar_t *a2, int a3); -char *__thiscall std::filebuf::open(char *this, char *a2, int a3); int __thiscall std::filebuf::swap(int this, int a2); int __fastcall std::filebuf::sync(_DWORD *a1); int __fastcall std::filebuf::close(int a1); @@ -2823,17 +2247,15 @@ void __fastcall std::filebuf::~filebuf(int a1); int __thiscall std::filebuf::operator=(int this, int a2); unsigned int __thiscall std::wfilebuf::_M_set_buffer(_DWORD *this, int a2); int __thiscall std::wfilebuf::_M_get_ext_pos(int this, int a2); -int __fastcall std::wfilebuf::_M_create_pback(int a1); int __fastcall std::wfilebuf::_M_destroy_pback(int a1); int __fastcall std::wfilebuf::_M_terminate_output(_DWORD *a1); bool __thiscall std::wfilebuf::_M_convert_to_external(_DWORD *this, char *a2, unsigned int a3); void __fastcall std::wfilebuf::_M_destroy_internal_buffer(int a1); -int __fastcall std::wfilebuf::_M_allocate_internal_buffer(int a1); +int __fastcall std::wfilebuf::_M_allocate_internal_buffer(int); int __fastcall std::wfilebuf::_M_allocate_internal_buffer(int a1); char *__thiscall std::wfilebuf::open(int this, char *a2, int a3); char *__thiscall std::wfilebuf::open(char *this, int a2); char *__thiscall std::wfilebuf::open(int this, wchar_t *a2, int a3); -char *__thiscall std::wfilebuf::open(void *this, char *a2, int a3); int __thiscall std::wfilebuf::swap(int this, int a2); int __fastcall std::wfilebuf::sync(_DWORD *a1); int __fastcall std::wfilebuf::close(int a1); @@ -2861,7 +2283,6 @@ int __thiscall std::fstream::open(char *this, wchar_t *a2, int a3); int __thiscall std::fstream::open(char *this, char **a2, int a3); int __thiscall std::fstream::swap(_DWORD *this, _DWORD *a2); int __fastcall std::fstream::close(_DWORD *a1); -bool __fastcall std::fstream::is_open(int a1); int __thiscall std::fstream::basic_fstream(_DWORD *this, int *a2); int __thiscall std::fstream::basic_fstream(char *this, char *a2, int a3); int __thiscall std::fstream::basic_fstream(char *this, wchar_t *a2, int a3); @@ -2874,14 +2295,13 @@ int __thiscall std::fstream::basic_fstream(char *this, int *a2, char **a3, int a BOOL __thiscall std::fstream::basic_fstream(int *this, int *a2); void __fastcall std::fstream::~fstream(_DWORD *a1); void __fastcall std::fstream::~fstream(int a1); -int __thiscall std::fstream::~fstream(_DWORD *this, int *a2); +int __thiscall std::fstream::~fstream(int *this, int *a2); _DWORD *__thiscall std::fstream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::wfstream::open(int *this, char *a2, int a3); int __thiscall std::wfstream::open(int *this, wchar_t *a2, int a3); int __thiscall std::wfstream::open(int *this, char **a2, int a3); int __thiscall std::wfstream::swap(_DWORD *this, _DWORD *a2); int __fastcall std::wfstream::close(_DWORD *a1); -bool __fastcall std::wfstream::is_open(int a1); int __thiscall std::wfstream::basic_fstream(_DWORD *this, int *a2); int __thiscall std::wfstream::basic_fstream(_DWORD *this, char *a2, int a3); int __thiscall std::wfstream::basic_fstream(_DWORD *this, wchar_t *a2, int a3); @@ -2894,7 +2314,7 @@ int __thiscall std::wfstream::basic_fstream(int *this, int *a2, char **a3, int a BOOL __thiscall std::wfstream::basic_fstream(int *this, int *a2); void __fastcall std::wfstream::~wfstream(_DWORD *a1); void __fastcall std::wfstream::~wfstream(int a1); -int __thiscall std::wfstream::~wfstream(_DWORD *this, int *a2); +int __thiscall std::wfstream::~wfstream(int *this, int *a2); _DWORD *__thiscall std::wfstream::operator=(_DWORD *this, _DWORD *a2); int *__thiscall std::wistream::_M_extract(int *this, int a2); int *__thiscall std::wistream::_M_extract(int *this, int a2); @@ -2937,8 +2357,6 @@ int __thiscall std::wistream::basic_istream(int *this, int *a2, _DWORD *a3); BOOL __thiscall std::wistream::basic_istream(int *this, int *a2, int a3); BOOL __thiscall std::wistream::basic_istream(int *this, int *a2); void __fastcall std::wistream::~wistream(char *a1); -void __fastcall std::wistream::~wistream(_DWORD *a1); -int __thiscall std::wistream::~wistream(int *this, int *a2); _DWORD *__thiscall std::wistream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::wistream::operator>>(void *this, int (__cdecl *a2)(void *)); char *__thiscall std::wistream::operator>>(char *this, void (__cdecl *a2)(char *)); @@ -2972,23 +2390,15 @@ int __thiscall std::wostream::basic_ostream(_DWORD *this, int a2); BOOL __fastcall std::wostream::basic_ostream(int a1); int __thiscall std::wostream::basic_ostream(int *this, int *a2, _DWORD *a3); BOOL __thiscall std::wostream::basic_ostream(int *this, int *a2, int a3); -int __thiscall std::wostream::basic_ostream(int *this, int *a2, int a3); -BOOL __thiscall std::wostream::basic_ostream(int *this, int *a2); void __fastcall std::wostream::~wostream(char *a1); -void __fastcall std::wostream::~wostream(_DWORD *a1); -int __thiscall std::wostream::~wostream(int *this, int *a2); _DWORD *__thiscall std::wostream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::wostream::operator<<(void *this, int (__cdecl *a2)(void *)); char *__thiscall std::wostream::operator<<(char *this, void (__cdecl *a2)(char *)); char *__thiscall std::wostream::operator<<(char *this, void (__cdecl *a2)(char *)); int *__thiscall std::wostream::operator<<(int *this, _DWORD *a2); -int *__thiscall std::wostream::operator<<(int *this, unsigned __int8 a2); int *__thiscall std::wostream::operator<<(int *this, float a2); -int *__thiscall std::wostream::operator<<(int *this, unsigned __int16 a2); -int *__thiscall std::wostream::operator<<(int *this, unsigned __int16 a2); // unsigned int __userpurge std::random_device::_M_init_pretr1@(unsigned int *a1@, const void **this, const std::string *a3); -// FILE *__userpurge std::random_device::_M_init@(FILE **a1@, const void **this, const std::string *a3); -int __thiscall std::runtime_error::runtime_error(_DWORD *this, int a2); +// FILE *__userpurge std::random_device::_M_init@(FILE **a1@, const char **this, const std::string *a3); // _DWORD *__userpurge std::runtime_error::runtime_error@(int a1@, std::runtime_error *this, const char *a3); _DWORD *__thiscall std::runtime_error::runtime_error(_DWORD *this, int a2); // unsigned int *__userpurge std::runtime_error::runtime_error@(int a1@, unsigned int **this, const std::runtime_error *a3); @@ -3002,40 +2412,38 @@ int __thiscall std::ifstream::open(char *this, wchar_t *a2, int a3); int __thiscall std::ifstream::open(char *this, char **a2, int a3); int __thiscall std::ifstream::swap(_DWORD *this, _DWORD *a2); int __fastcall std::ifstream::close(_DWORD *a1); -bool __fastcall std::ifstream::is_open(int a1); int __thiscall std::ifstream::basic_ifstream(_DWORD *this, int *a2); int __thiscall std::ifstream::basic_ifstream(char *this, char *a2, int a3); int __thiscall std::ifstream::basic_ifstream(char *this, wchar_t *a2, int a3); int __thiscall std::ifstream::basic_ifstream(char *this, char **a2, int a3); BOOL __fastcall std::ifstream::basic_ifstream(int a1); -int __thiscall std::ifstream::basic_ifstream(_DWORD *this, int *a2, _DWORD *a3); +int __thiscall std::ifstream::basic_ifstream(int *this, int *a2, _DWORD *a3); int __thiscall std::ifstream::basic_ifstream(char *this, int *a2, char *a3, int a4); int __thiscall std::ifstream::basic_ifstream(char *this, int *a2, wchar_t *a3, int a4); int __thiscall std::ifstream::basic_ifstream(char *this, int *a2, char **a3, int a4); BOOL __thiscall std::ifstream::basic_ifstream(int *this, int *a2); void __fastcall std::ifstream::~ifstream(_DWORD *a1); void __fastcall std::ifstream::~ifstream(int a1); -int __thiscall std::ifstream::~ifstream(_DWORD *this, int *a2); +int __thiscall std::ifstream::~ifstream(int *this, int *a2); _DWORD *__thiscall std::ifstream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::wifstream::open(int *this, char *a2, int a3); int __thiscall std::wifstream::open(int *this, wchar_t *a2, int a3); int __thiscall std::wifstream::open(int *this, char **a2, int a3); int __thiscall std::wifstream::swap(_DWORD *this, _DWORD *a2); int __fastcall std::wifstream::close(_DWORD *a1); -bool __fastcall std::wifstream::is_open(int a1); int __thiscall std::wifstream::basic_ifstream(_DWORD *this, int *a2); int __thiscall std::wifstream::basic_ifstream(_DWORD *this, char *a2, int a3); int __thiscall std::wifstream::basic_ifstream(_DWORD *this, wchar_t *a2, int a3); int __thiscall std::wifstream::basic_ifstream(_DWORD *this, char **a2, int a3); BOOL __fastcall std::wifstream::basic_ifstream(int a1); -int __thiscall std::wifstream::basic_ifstream(_DWORD *this, int *a2, _DWORD *a3); +int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, _DWORD *a3); int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, char *a3, int a4); int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, wchar_t *a3, int a4); int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, char **a3, int a4); BOOL __thiscall std::wifstream::basic_ifstream(int *this, int *a2); void __fastcall std::wifstream::~wifstream(_DWORD *a1); void __fastcall std::wifstream::~wifstream(int a1); -int __thiscall std::wifstream::~wifstream(_DWORD *this, int *a2); +int __thiscall std::wifstream::~wifstream(int *this, int *a2); _DWORD *__thiscall std::wifstream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::wiostream::swap(_DWORD *this, _DWORD *a2); int __thiscall std::wiostream::basic_iostream(_DWORD *this, int *a2); @@ -3045,7 +2453,6 @@ int __thiscall std::wiostream::basic_iostream(int *this, int *a2, _DWORD *a3); int __thiscall std::wiostream::basic_iostream(int *this, int *a2, int a3); int __thiscall std::wiostream::basic_iostream(int *this, int *a2); void __fastcall std::wiostream::~basic_iostream(char *a1); -void __fastcall std::wiostream::~basic_iostream(int a1); int __thiscall std::wiostream::~basic_iostream(int *this, int *a2); _DWORD *__thiscall std::wiostream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::ofstream::open(char *this, char *a2, int a3); @@ -3053,7 +2460,6 @@ int __thiscall std::ofstream::open(char *this, wchar_t *a2, int a3); int __thiscall std::ofstream::open(char *this, char **a2, int a3); int __thiscall std::ofstream::swap(_DWORD *this, _DWORD *a2); int __fastcall std::ofstream::close(_DWORD *a1); -bool __fastcall std::ofstream::is_open(int a1); int __thiscall std::ofstream::basic_ofstream(_DWORD *this, int *a2); int __thiscall std::ofstream::basic_ofstream(char *this, char *a2, int a3); int __thiscall std::ofstream::basic_ofstream(char *this, wchar_t *a2, int a3); @@ -3066,14 +2472,13 @@ int __thiscall std::ofstream::basic_ofstream(char *this, int *a2, char **a3, int BOOL __thiscall std::ofstream::basic_ofstream(int *this, int *a2); void __fastcall std::ofstream::~ofstream(_DWORD *a1); void __fastcall std::ofstream::~ofstream(int a1); -int __thiscall std::ofstream::~ofstream(_DWORD *this, int *a2); +int __thiscall std::ofstream::~ofstream(int *this, int *a2); _DWORD *__thiscall std::ofstream::operator=(_DWORD *this, _DWORD *a2); int __thiscall std::wofstream::open(int *this, char *a2, int a3); int __thiscall std::wofstream::open(int *this, wchar_t *a2, int a3); int __thiscall std::wofstream::open(int *this, char **a2, int a3); int __thiscall std::wofstream::swap(_DWORD *this, _DWORD *a2); int __fastcall std::wofstream::close(_DWORD *a1); -bool __fastcall std::wofstream::is_open(int a1); int __thiscall std::wofstream::basic_ofstream(_DWORD *this, int *a2); int __thiscall std::wofstream::basic_ofstream(_DWORD *this, char *a2, int a3); int __thiscall std::wofstream::basic_ofstream(_DWORD *this, wchar_t *a2, int a3); @@ -3086,7 +2491,7 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char **a3, int BOOL __thiscall std::wofstream::basic_ofstream(int *this, int *a2); void __fastcall std::wofstream::~wofstream(_DWORD *a1); void __fastcall std::wofstream::~wofstream(int a1); -int __thiscall std::wofstream::~wofstream(_DWORD *this, int *a2); +int __thiscall std::wofstream::~wofstream(int *this, int *a2); _DWORD *__thiscall std::wofstream::operator=(_DWORD *this, _DWORD *a2); unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int *a2, int a3); @@ -3095,8 +2500,6 @@ unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_D unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int *a2, int a3); unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int *a2, int a3); void __fastcall std::codecvt_byname::~codecvt_byname(_DWORD *a1); -void __cdecl std::codecvt_byname::~codecvt_byname(std::locale::facet *a1); -void __cdecl std::codecvt_byname::~codecvt_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int *a2, int a3); unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int *a2, int a3); @@ -3104,8 +2507,6 @@ unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int *a2, int a3); unsigned __int8 __thiscall std::codecvt_byname::codecvt_byname(_DWORD *this, int *a2, int a3); void __fastcall std::codecvt_byname::~codecvt_byname(_DWORD *a1); -void __cdecl std::codecvt_byname::~codecvt_byname(std::locale::facet *a1); -void __cdecl std::codecvt_byname::~codecvt_byname(std::locale::facet *a1); char __thiscall std::collate_byname::collate_byname(_DWORD *this, int **a2, int a3); char __thiscall std::collate_byname::collate_byname(_DWORD *this, int *a2, int a3); char __thiscall std::collate_byname::collate_byname(_DWORD *this, int **a2, int a3); @@ -3124,127 +2525,77 @@ void __cdecl std::collate_byname::~collate_byname(std::locale::facet *a _DWORD *__thiscall std::overflow_error::overflow_error(_DWORD *this, int a2); // unsigned int *__userpurge std::overflow_error::overflow_error@(_DWORD *a1@, unsigned int **this, const std::string *a3); void __fastcall std::overflow_error::~overflow_error(_DWORD *a1); -void __fastcall std::overflow_error::~overflow_error(_DWORD *a1); -void __fastcall std::_Rb_tree_header::_Rb_tree_header(_DWORD *a1); -void __fastcall std::_Rb_tree_header::_Rb_tree_header(_DWORD *a1); -void __fastcall std::_Rb_tree_header::_Rb_tree_header(_DWORD *a1); +void __fastcall std::overflow_error::~overflow_error(_DWORD *); +void __fastcall std::_Rb_tree_header::_Rb_tree_header(_DWORD *); +void __fastcall std::_Rb_tree_header::_Rb_tree_header(_DWORD *); +void __fastcall std::_Rb_tree_header::_Rb_tree_header(_DWORD *); void __fastcall std::_Sp_counted_ptr::_M_destroy(void *a1); void __fastcall std::_Sp_counted_ptr::_M_dispose(int a1); -int __stdcall std::_Sp_counted_ptr::_M_get_deleter(int a1); void __fastcall std::_Sp_counted_ptr::~_Sp_counted_ptr(void *a1); void __fastcall std::_Sp_counted_ptr::_M_destroy(void *a1); void __fastcall std::_Sp_counted_ptr::_M_dispose(int a1, int a2); -int __stdcall std::_Sp_counted_ptr::_M_get_deleter(int a1); void __fastcall std::_Sp_counted_ptr::~_Sp_counted_ptr(void *a1); void __fastcall std::_Sp_counted_ptr::_M_destroy(void *a1); void __fastcall std::_Sp_counted_ptr::_M_dispose(int a1); -int __stdcall std::_Sp_counted_ptr::_M_get_deleter(int a1); void __fastcall std::_Sp_counted_ptr::~_Sp_counted_ptr(void *a1); void __fastcall std::_Sp_counted_ptr::_M_destroy(void *a1); -int __fastcall std::_Sp_counted_ptr::_M_dispose(int a1); -int __stdcall std::_Sp_counted_ptr::_M_get_deleter(int a1); void __fastcall std::_Sp_counted_ptr::~_Sp_counted_ptr(void *a1); void __fastcall std::_Sp_counted_ptr::_M_destroy(void *a1); void __fastcall std::_Sp_counted_ptr::_M_dispose(int a1); -int __stdcall std::_Sp_counted_ptr::_M_get_deleter(int a1); void __fastcall std::_Sp_counted_ptr::~_Sp_counted_ptr(void *a1); _DWORD *__thiscall std::streambuf::pubseekoff(_DWORD *this, int a2, int a3, int a4, int a5, int a6); _DWORD *__thiscall std::streambuf::pubseekpos(_DWORD *this, int a2, int a3, int a4, int a5, int a6, int a7); -int __thiscall std::streambuf::__safe_gbump(_DWORD *this, int a2); -int __thiscall std::streambuf::__safe_pbump(_DWORD *this, int a2); -int __thiscall std::streambuf::setg(_DWORD *this, int a2, int a3, int a4); -int __thiscall std::streambuf::setp(_DWORD *this, int a2, int a3); void __thiscall std::streambuf::swap(int this, int a2); -int std::streambuf::sync(); -int __thiscall std::streambuf::gbump(_DWORD *this, int a2); int __stdcall std::streambuf::imbue(int); // weak -int __thiscall std::streambuf::pbump(_DWORD *this, int a2); -int __fastcall std::streambuf::sgetc(_DWORD *a1); -int __fastcall std::streambuf::sgetn(int a1); int __thiscall std::streambuf::sputc(_DWORD *this, unsigned __int8 a2); -int __fastcall std::streambuf::sputn(int a1); int __fastcall std::streambuf::uflow(_DWORD *a1); int __fastcall std::streambuf::sbumpc(_DWORD *a1); -int __fastcall std::streambuf::sbumpc(int a1); -void *__thiscall std::streambuf::setbuf(void *this, int a2, int a3); +int __fastcall std::streambuf::sbumpc(int); int __fastcall std::streambuf::snextc(_DWORD *a1); int (*__fastcall std::streambuf::stossc(_DWORD *a1))(void); int __thiscall std::streambuf::xsgetn(_DWORD *this, char *a2, int a3); int __thiscall std::streambuf::xsputn(_DWORD *this, unsigned __int8 *a2, int a3); -int __fastcall std::streambuf::pubsync(int a1); -_DWORD *__thiscall std::streambuf::seekoff(_DWORD *this, int a2, int a3, int a4, int a5, int a6); +_DWORD *__thiscall std::streambuf::seekoff(_DWORD *this, int, int, int, int, int); _DWORD *__thiscall std::streambuf::seekpos(_DWORD *this, int a2, int a3, int a4, int a5, int a6, int a7); int __fastcall std::streambuf::sungetc(_DWORD *a1); -int __fastcall std::streambuf::in_avail(_DWORD *a1); -int __stdcall std::streambuf::overflow(int a1); +int __stdcall std::streambuf::overflow(int); volatile signed __int32 **__thiscall std::streambuf::pubimbue(volatile signed __int32 **this, volatile signed __int32 **a2, volatile signed __int32 **a3); -int __stdcall std::streambuf::pbackfail(int a1); -int __thiscall std::streambuf::pubsetbuf(void *this, int a2, int a3); -int std::streambuf::showmanyc(); +int __stdcall std::streambuf::pbackfail(int); int __thiscall std::streambuf::sputbackc(_DWORD *this, unsigned __int8 a2); int std::streambuf::underflow(); -// volatile signed __int32 *__userpurge std::streambuf::basic_streambuf@(_DWORD *a1@, int a2, const std::locale *a3); -int __fastcall std::streambuf::basic_streambuf(_DWORD *a1); -// volatile signed __int32 *__userpurge std::streambuf::basic_streambuf@(_DWORD *a1@, int a2, const std::locale *a3); -int __fastcall std::streambuf::basic_streambuf(_DWORD *a1); +// volatile signed __int32 *__userpurge std::streambuf::basic_streambuf@(_DWORD *@, int, const std::locale *); void __fastcall std::streambuf::~streambuf(char *a1); -void __fastcall std::streambuf::~streambuf(int a1); -void __fastcall std::streambuf::~streambuf(int a1); volatile signed __int32 **__thiscall std::streambuf::operator=(volatile signed __int32 **this, int a2); _DWORD *__thiscall std::wstreambuf::pubseekoff(_DWORD *this, int a2, int a3, int a4, int a5, int a6); _DWORD *__thiscall std::wstreambuf::pubseekpos(_DWORD *this, int a2, int a3, int a4, int a5, int a6, int a7); -int __thiscall std::wstreambuf::__safe_gbump(_DWORD *this, int a2); -int __thiscall std::wstreambuf::__safe_pbump(_DWORD *this, int a2); -int __thiscall std::wstreambuf::setg(_DWORD *this, int a2, int a3, int a4); -int __thiscall std::wstreambuf::setp(_DWORD *this, int a2, int a3); void __thiscall std::wstreambuf::swap(int this, int a2); -int std::wstreambuf::sync(); -int __thiscall std::wstreambuf::gbump(_DWORD *this, int a2); int __stdcall std::wstreambuf::imbue(int); // weak -int __thiscall std::wstreambuf::pbump(_DWORD *this, int a2); -int __fastcall std::wstreambuf::sgetc(_DWORD *a1); -int __fastcall std::wstreambuf::sgetn(int a1); int __thiscall std::wstreambuf::sputc(_DWORD *this, int a2); -int __fastcall std::wstreambuf::sputn(int a1); int __fastcall std::wstreambuf::uflow(_DWORD *a1); int __fastcall std::wstreambuf::sbumpc(_DWORD *a1); -int __fastcall std::wstreambuf::sbumpc(int a1); -void *__thiscall std::wstreambuf::setbuf(void *this, int a2, int a3); +int __fastcall std::wstreambuf::sbumpc(int); int __fastcall std::wstreambuf::snextc(_DWORD *a1); int (*__fastcall std::wstreambuf::stossc(_DWORD *a1))(void); int __thiscall std::wstreambuf::xsgetn(_DWORD *this, wchar_t *a2, int a3); int __thiscall std::wstreambuf::xsputn(_DWORD *this, wchar_t *a2, int a3); -int __fastcall std::wstreambuf::pubsync(int a1); -_DWORD *__thiscall std::wstreambuf::seekoff(_DWORD *this, int a2, int a3, int a4, int a5, int a6); +_DWORD *__thiscall std::wstreambuf::seekoff(_DWORD *this, int, int, int, int, int); _DWORD *__thiscall std::wstreambuf::seekpos(_DWORD *this, int a2, int a3, int a4, int a5, int a6, int a7); int __fastcall std::wstreambuf::sungetc(_DWORD *a1); -int __fastcall std::wstreambuf::in_avail(_DWORD *a1); -int __stdcall std::wstreambuf::overflow(int a1); +int __stdcall std::wstreambuf::overflow(int); volatile signed __int32 **__thiscall std::wstreambuf::pubimbue(volatile signed __int32 **this, volatile signed __int32 **a2, volatile signed __int32 **a3); -int __stdcall std::wstreambuf::pbackfail(int a1); -int __thiscall std::wstreambuf::pubsetbuf(void *this, int a2, int a3); -int std::wstreambuf::showmanyc(); +int __stdcall std::wstreambuf::pbackfail(int); int __thiscall std::wstreambuf::sputbackc(_DWORD *this, int a2); int std::wstreambuf::underflow(); -// volatile signed __int32 *__userpurge std::wstreambuf::basic_streambuf@(_DWORD *a1@, int a2, const std::locale *a3); -int __fastcall std::wstreambuf::basic_streambuf(_DWORD *a1); -// volatile signed __int32 *__userpurge std::wstreambuf::basic_streambuf@(_DWORD *a1@, int a2, const std::locale *a3); -int __fastcall std::wstreambuf::basic_streambuf(_DWORD *a1); +// volatile signed __int32 *__userpurge std::wstreambuf::basic_streambuf@(_DWORD *@, int, const std::locale *); void __fastcall std::wstreambuf::~wstreambuf(char *a1); -void __fastcall std::wstreambuf::~wstreambuf(int a1); -void __fastcall std::wstreambuf::~wstreambuf(int a1); volatile signed __int32 **__thiscall std::wstreambuf::operator=(volatile signed __int32 **this, int a2); unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); -unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); -unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::messages_byname::~messages_byname(_DWORD *a1); void __cdecl std::messages_byname::~messages_byname(std::locale::facet *a1); void __cdecl std::messages_byname::~messages_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); -unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); -unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::messages_byname::~messages_byname(_DWORD *a1); void __cdecl std::messages_byname::~messages_byname(std::locale::facet *a1); void __cdecl std::messages_byname::~messages_byname(std::locale::facet *a1); @@ -3253,62 +2604,26 @@ unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *t unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::numpunct_byname::~numpunct_byname(_DWORD *a1); -void __cdecl std::numpunct_byname::~numpunct_byname(std::locale::facet *a1); -void __cdecl std::numpunct_byname::~numpunct_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::numpunct_byname::~numpunct_byname(_DWORD *a1); -void __cdecl std::numpunct_byname::~numpunct_byname(std::locale::facet *a1); -void __cdecl std::numpunct_byname::~numpunct_byname(std::locale::facet *a1); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); void __fastcall std::time_get_byname>::~time_get_byname(_DWORD *a1); -void __cdecl std::time_get_byname>::~time_get_byname(std::locale::facet *a1); -void __cdecl std::time_get_byname>::~time_get_byname(std::locale::facet *a1); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); void __fastcall std::time_get_byname>::~time_get_byname(_DWORD *a1); -void __cdecl std::time_get_byname>::~time_get_byname(std::locale::facet *a1); -void __cdecl std::time_get_byname>::~time_get_byname(std::locale::facet *a1); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); void __fastcall std::time_put_byname>::~time_put_byname(_DWORD *a1); -void __cdecl std::time_put_byname>::~time_put_byname(std::locale::facet *a1); -void __cdecl std::time_put_byname>::~time_put_byname(std::locale::facet *a1); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_put_byname>::time_put_byname(_DWORD *this, int a2, int a3); void __fastcall std::time_put_byname>::~time_put_byname(_DWORD *a1); -void __cdecl std::time_put_byname>::~time_put_byname(std::locale::facet *a1); -void __cdecl std::time_put_byname>::~time_put_byname(std::locale::facet *a1); // _DWORD *__userpurge std::underflow_error::underflow_error@(_DWORD *a1@, std::underflow_error *this, const char *a3); _DWORD *__thiscall std::underflow_error::underflow_error(_DWORD *this, int a2); // unsigned int *__userpurge std::underflow_error::underflow_error@(_DWORD *a1@, unsigned int **this, const std::string *a3); void __fastcall std::underflow_error::~underflow_error(_DWORD *a1); -void __fastcall std::underflow_error::~underflow_error(_DWORD *a1); +void __fastcall std::underflow_error::~underflow_error(_DWORD *); int __fastcall std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release(volatile signed __int32 *a1); void __thiscall std::__numpunct_cache::_M_cache(int this, int a2); -int __thiscall std::__numpunct_cache::__numpunct_cache(_DWORD *this, int a2); -int __thiscall std::__numpunct_cache::__numpunct_cache(_DWORD *this, int a2); void __fastcall std::__numpunct_cache::~__numpunct_cache(void *a1); void __cdecl std::__numpunct_cache::~__numpunct_cache(std::locale::facet *a1); void __cdecl std::__numpunct_cache::~__numpunct_cache(std::locale::facet *a1); void __thiscall std::__numpunct_cache::_M_cache(int this, int a2); -BOOL __thiscall std::__numpunct_cache::__numpunct_cache(_DWORD *this, int a2); -BOOL __thiscall std::__numpunct_cache::__numpunct_cache(_DWORD *this, int a2); void __fastcall std::__numpunct_cache::~__numpunct_cache(void *a1); void __cdecl std::__numpunct_cache::~__numpunct_cache(std::locale::facet *a1); void __cdecl std::__numpunct_cache::~__numpunct_cache(std::locale::facet *a1); @@ -3316,104 +2631,68 @@ void __cdecl std::__numpunct_cache::~__numpunct_cache(std::locale::face _DWORD *__thiscall std::invalid_argument::invalid_argument(_DWORD *this, int a2); // unsigned int *__userpurge std::invalid_argument::invalid_argument@(_DWORD *a1@, unsigned int **this, const std::string *a3); void __fastcall std::invalid_argument::~invalid_argument(_DWORD *a1); -void __fastcall std::invalid_argument::~invalid_argument(_DWORD *a1); +void __fastcall std::invalid_argument::~invalid_argument(_DWORD *); int *__fastcall std::_Rb_tree_iterator>>::operator++(int *a1); -BOOL __thiscall std::__timepunct_cache::__timepunct_cache(_DWORD *this, int a2); -BOOL __thiscall std::__timepunct_cache::__timepunct_cache(_DWORD *this, int a2); void __fastcall std::__timepunct_cache::~__timepunct_cache(_DWORD *a1); -void __cdecl std::__timepunct_cache::~__timepunct_cache(std::locale::facet *a1); -void __cdecl std::__timepunct_cache::~__timepunct_cache(std::locale::facet *a1); -BOOL __thiscall std::__timepunct_cache::__timepunct_cache(_DWORD *this, int a2); -BOOL __thiscall std::__timepunct_cache::__timepunct_cache(_DWORD *this, int a2); void __fastcall std::__timepunct_cache::~__timepunct_cache(_DWORD *a1); -void __cdecl std::__timepunct_cache::~__timepunct_cache(std::locale::facet *a1); -void __cdecl std::__timepunct_cache::~__timepunct_cache(std::locale::facet *a1); void __fastcall std::bad_function_call::~bad_function_call(_DWORD *a1); -void __cdecl std::bad_function_call::~bad_function_call(std::exception *a1); +void __cdecl std::bad_function_call::~bad_function_call(std::exception *); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::moneypunct_byname::~moneypunct_byname(_DWORD *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::moneypunct_byname::~moneypunct_byname(_DWORD *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::moneypunct_byname::~moneypunct_byname(_DWORD *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::moneypunct_byname::~moneypunct_byname(_DWORD *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); void __thiscall std::__moneypunct_cache::_M_cache(int this, int a2); -int __thiscall std::__moneypunct_cache::__moneypunct_cache(_DWORD *this, int a2); -int __thiscall std::__moneypunct_cache::__moneypunct_cache(_DWORD *this, int a2); void __fastcall std::__moneypunct_cache::~__moneypunct_cache(void *a1); void __cdecl std::__moneypunct_cache::~__moneypunct_cache(std::locale::facet *a1); void __cdecl std::__moneypunct_cache::~__moneypunct_cache(std::locale::facet *a1); void __thiscall std::__moneypunct_cache::_M_cache(int this, int a2); -int __thiscall std::__moneypunct_cache::__moneypunct_cache(_DWORD *this, int a2); -int __thiscall std::__moneypunct_cache::__moneypunct_cache(_DWORD *this, int a2); void __fastcall std::__moneypunct_cache::~__moneypunct_cache(void *a1); void __cdecl std::__moneypunct_cache::~__moneypunct_cache(std::locale::facet *a1); void __cdecl std::__moneypunct_cache::~__moneypunct_cache(std::locale::facet *a1); void __thiscall std::__moneypunct_cache::_M_cache(int this, int a2); -BOOL __thiscall std::__moneypunct_cache::__moneypunct_cache(_DWORD *this, int a2); -BOOL __thiscall std::__moneypunct_cache::__moneypunct_cache(_DWORD *this, int a2); void __fastcall std::__moneypunct_cache::~__moneypunct_cache(void *a1); void __cdecl std::__moneypunct_cache::~__moneypunct_cache(std::locale::facet *a1); void __cdecl std::__moneypunct_cache::~__moneypunct_cache(std::locale::facet *a1); void __thiscall std::__moneypunct_cache::_M_cache(int this, int a2); -BOOL __thiscall std::__moneypunct_cache::__moneypunct_cache(_DWORD *this, int a2); -BOOL __thiscall std::__moneypunct_cache::__moneypunct_cache(_DWORD *this, int a2); void __fastcall std::__moneypunct_cache::~__moneypunct_cache(void *a1); void __cdecl std::__moneypunct_cache::~__moneypunct_cache(std::locale::facet *a1); void __cdecl std::__moneypunct_cache::~__moneypunct_cache(std::locale::facet *a1); void __fastcall std::__codecvt_utf8_base::~__codecvt_utf8_base(_DWORD *a1); -void __cdecl std::__codecvt_utf8_base::~__codecvt_utf8_base(std::locale::facet *a1); void __fastcall std::__codecvt_utf8_base::~__codecvt_utf8_base(_DWORD *a1); -void __cdecl std::__codecvt_utf8_base::~__codecvt_utf8_base(std::locale::facet *a1); void __fastcall std::__codecvt_utf8_base::~__codecvt_utf8_base(_DWORD *a1); -void __cdecl std::__codecvt_utf8_base::~__codecvt_utf8_base(std::locale::facet *a1); void __fastcall std::__iosfail_type_info::~__iosfail_type_info(_DWORD *a1); -void __cdecl std::__iosfail_type_info::~__iosfail_type_info(std::__iosfail_type_info *this); // idb void __fastcall std::__codecvt_utf16_base::~__codecvt_utf16_base(_DWORD *a1); -void __cdecl std::__codecvt_utf16_base::~__codecvt_utf16_base(std::locale::facet *a1); void __fastcall std::__codecvt_utf16_base::~__codecvt_utf16_base(_DWORD *a1); -void __cdecl std::__codecvt_utf16_base::~__codecvt_utf16_base(std::locale::facet *a1); void __fastcall std::__codecvt_utf16_base::~__codecvt_utf16_base(_DWORD *a1); -void __cdecl std::__codecvt_utf16_base::~__codecvt_utf16_base(std::locale::facet *a1); _DWORD *__cdecl std::__uninitialized_copy::__uninit_copy<__gnu_cxx::__normal_iterator>,std::string*>(int a1, int a2, _DWORD *a3); _DWORD *__cdecl std::__uninitialized_copy::__uninit_copy(_DWORD *a1, _DWORD *a2, _DWORD *a3); void __fastcall std::bad_array_new_length::~bad_array_new_length(_DWORD *a1); -void __cdecl std::bad_array_new_length::~bad_array_new_length(std::exception *a1); +void __cdecl std::bad_array_new_length::~bad_array_new_length(std::exception *); void __fastcall std::_Sp_counted_ptr_inplace,std::allocator>,std::allocator,std::allocator>>,(__gnu_cxx::_Lock_policy)2>::_M_destroy(void *a1); -int __fastcall std::_Sp_counted_ptr_inplace,std::allocator>,std::allocator,std::allocator>>,(__gnu_cxx::_Lock_policy)2>::_M_dispose(int a1); char *__thiscall std::_Sp_counted_ptr_inplace,std::allocator>,std::allocator,std::allocator>>,(__gnu_cxx::_Lock_policy)2>::_M_get_deleter(char *this, _DWORD *a2); void __fastcall std::_Sp_counted_ptr_inplace,std::allocator>,std::allocator,std::allocator>>,(__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr_inplace(void *a1); void __fastcall std::__codecvt_utf8_utf16_base::~__codecvt_utf8_utf16_base(_DWORD *a1); -void __cdecl std::__codecvt_utf8_utf16_base::~__codecvt_utf8_utf16_base(std::locale::facet *a1); void __fastcall std::__codecvt_utf8_utf16_base::~__codecvt_utf8_utf16_base(_DWORD *a1); -void __cdecl std::__codecvt_utf8_utf16_base::~__codecvt_utf8_utf16_base(std::locale::facet *a1); void __fastcall std::__codecvt_utf8_utf16_base::~__codecvt_utf8_utf16_base(_DWORD *a1); -void __cdecl std::__codecvt_utf8_utf16_base::~__codecvt_utf8_utf16_base(std::locale::facet *a1); void __fastcall std::_V2::error_category::~error_category(void *a1); void __cdecl std::_V2::error_category::~error_category(std::_V2::error_category *__hidden this); // idb void (__cdecl ***std::_V2::system_category())(_anonymous_namespace_::system_error_category *__hidden this); -void (__cdecl ***std::_V2::generic_category())(_anonymous_namespace_::generic_error_category *__hidden this); int __thiscall std::map::erase(_DWORD *this, int a2); char *__thiscall std::map::operator[](_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::map::operator[](_DWORD *this, int a2); @@ -3428,14 +2707,13 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, int a2); _DWORD *__thiscall std::map::operator[](_DWORD *this, int a2); _DWORD *__thiscall std::map>>::operator[](_DWORD *this, _DWORD *a2); char *__thiscall std::map>>::operator[](_DWORD *this, int *a2); -char *__thiscall std::map::operator[](_DWORD *this, int *a2); +char *__thiscall std::map::operator[](_DWORD *this, unsigned int *a2); _DWORD *__thiscall std::set::insert(_DWORD *this, int a2); int __thiscall std::pair::swap(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::pair::pair(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::pair::operator=(_DWORD *this, _DWORD *a2); -int __cdecl std::__pad>::_S_pad(_DWORD *a1, void *Src, char *a3, _BYTE *a4, int a5, int a6); +int __cdecl std::__pad>::_S_pad(_DWORD *a1, void *Src, char *a3, char *a4, int a5, int a6); int __cdecl std::__pad>::_S_pad(wchar_t *S1, wchar_t *S2, wchar_t *a3, wchar_t *a4, int a5, int a6); -void *std::ctype::classic_table(); int __thiscall std::ctype::ctype(_DWORD *this, void *a2, char a3, int a4); int __thiscall std::ctype::ctype(_DWORD *this, int a2, void *a3, char a4, int a5); void __fastcall std::ctype::~ctype(void *a1); @@ -3446,11 +2724,11 @@ wctype_t __thiscall std::ctype::ctype(_DWORD *this, int a2); void __fastcall std::ctype::~ctype(_DWORD *a1); void __cdecl std::ctype::~ctype(std::locale::facet *a1); int __thiscall std::deque>::_M_push_back_aux const&>(int this, _DWORD *a2); -int __fastcall std::deque>::back(_DWORD *a1); +int __fastcall std::deque>::back(_DWORD *); int __fastcall std::deque>::pop_back(_DWORD *a1); volatile signed __int32 *__thiscall std::deque>::push_back(_DWORD *this, _DWORD *a2); int __thiscall std::deque>::_M_push_back_aux const&>(int this, _DWORD *a2); -int __fastcall std::deque>::back(_DWORD *a1); +int __fastcall std::deque>::back(_DWORD *); int __fastcall std::deque>::pop_back(_DWORD *a1); volatile signed __int32 *__thiscall std::deque>::push_back(_DWORD *this, _DWORD *a2); int __thiscall std::deque>::_M_push_back_aux const&>(int this, _DWORD *a2); @@ -3476,13 +2754,12 @@ int __cdecl std::locale::facet::_S_clone_c_locale(); int **__cdecl std::locale::facet::_S_create_c_locale(std::locale::facet *this, int **a2); void std::locale::facet::_S_initialize_once(void); // idb std::locale::facet *__cdecl std::locale::facet::_S_destroy_c_locale(std::locale::facet *this); -int __cdecl std::locale::facet::_S_lc_ctype_c_locale(); void __fastcall std::locale::facet::~facet(void *a1); void __cdecl std::locale::facet::~facet(std::locale::facet *__hidden this); // idb std::locale *__cdecl std::locale::global(std::locale *this, volatile signed __int32 **a2); _DWORD *std::locale::classic(); -// std::locale *__userpurge std::locale::locale@(_DWORD *a1@, std::locale *this, std::locale::_Impl *a3); -// volatile signed __int32 *__userpurge std::locale::locale@(volatile signed __int32 **a1@, volatile signed __int32 **this, const std::locale *a3); +// std::locale *__userpurge std::locale::locale@(_DWORD *@, std::locale *this, std::locale::_Impl *); +// volatile signed __int32 *__userpurge std::locale::locale@(volatile signed __int32 **@, volatile signed __int32 **this, const std::locale *); int __fastcall std::locale::locale(_DWORD *a1); void __fastcall std::locale::~locale(_DWORD **a1); volatile signed __int32 **__thiscall std::locale::operator=(volatile signed __int32 **this, volatile signed __int32 **a2); @@ -3493,35 +2770,35 @@ char *__thiscall std::vector>::_M char *__thiscall std::vector>::push_back(char **this, _DWORD *a2); char *__thiscall std::vector>::_M_realloc_insert const&>(char **this, char *a2, _DWORD *a3); char *__thiscall std::vector>::push_back(int this, _DWORD *a2); -volatile signed __int32 *__thiscall std::vector>::vector(volatile signed __int32 **this, volatile signed __int32 **a2); -int __thiscall std::vector::_M_realloc_insert(_DWORD *this, char *a2, _DWORD *a3); -_BYTE *__thiscall std::vector::push_back(_DWORD *this, _DWORD *a2); +volatile signed __int32 *__thiscall std::vector>::vector(volatile signed __int32 **this, char **a2); +unsigned int __thiscall std::vector::_M_realloc_insert(void **this, char *a2, _DWORD *a3); +_BYTE *__thiscall std::vector::push_back(void **this, _DWORD *a2); void *__thiscall std::vector::_M_realloc_insert(void **this, int a2, WXML::DOMLib::Token *a3); _BYTE *__thiscall std::vector::push_back(int this, WXML::DOMLib::Token *a2); -int __thiscall std::vector::_M_realloc_insert(void ***this, char *a2, volatile signed __int32 **a3); -volatile signed __int32 *__thiscall std::vector::push_back(int this, volatile signed __int32 **a2); -_DWORD *__thiscall std::vector::_M_realloc_insert(char **this, char *a2, WXML::EXPRLib::Token *a3); +unsigned int __thiscall std::vector::_M_realloc_insert(void ***this, char *a2, char **a3); +volatile signed __int32 *__thiscall std::vector::push_back(int this, char **a2); +char *__thiscall std::vector::_M_realloc_insert(char **this, char *a2, WXML::EXPRLib::Token *a3); unsigned int __thiscall std::vector::_M_realloc_insert(char **this, char *a2, _DWORD *a3); -int __thiscall std::vector::at(_DWORD *this, unsigned int a2); +unsigned int __thiscall std::vector::at(_DWORD *this, unsigned int a2); int __thiscall std::vector::push_back(char **this, _DWORD *a2); void __thiscall std::vector::emplace_back(void ***this, _DWORD *a2); _DWORD __stdcall std::vector::_M_realloc_insert(_DWORD, _DWORD); // weak -char *__thiscall std::vector::_M_realloc_insert(_DWORD *this, char *a2, _DWORD *a3); +char *__thiscall std::vector::_M_realloc_insert(void **this, char *a2, _DWORD *a3); _BYTE *__thiscall std::vector::push_back(_DWORD *this, int a2); int __thiscall std::vector::operator=(int this, int *a2); char *__thiscall std::vector::_M_realloc_insert(void **this, _BYTE *a2, _DWORD *a3); char *__thiscall std::vector::push_back(int this, _DWORD *a2); char *__thiscall std::vector::emplace_back(void **this, _DWORD *a2); -int __thiscall std::vector::at(_DWORD *this, unsigned int a2); +unsigned int __thiscall std::vector::at(_DWORD *this, unsigned int a2); char *__thiscall std::vector::push_back(void **this, _DWORD *a2); char *__thiscall std::vector>>::_M_realloc_insert> const&>(void **this, _BYTE *a2, _DWORD *a3); -int __thiscall std::vector>>::at(_DWORD *this, unsigned int a2); +unsigned int __thiscall std::vector>>::at(_DWORD *this, unsigned int a2); char *__thiscall std::vector>>::push_back(int this, _DWORD *a2); char **__thiscall std::vector>::_M_realloc_insert>(char **this, char *a2, _DWORD *a3); -char *__thiscall std::vector>::emplace_back>(_DWORD *this, _DWORD *a2); -char *__thiscall std::vector>::_M_realloc_insert>(_DWORD *this, char *a2, _DWORD *a3); -int __thiscall std::vector>::emplace_back>(int this, _DWORD *a2); -int __thiscall std::vector>::_M_realloc_insert>(char **this, char *a2, _DWORD *a3); +char *__thiscall std::vector>::emplace_back>(void **this, _DWORD *a2); +char *__thiscall std::vector>::_M_realloc_insert>(void **this, char *a2, _DWORD *a3); +unsigned int __thiscall std::vector>::emplace_back>(int this, _DWORD *a2); +unsigned int __thiscall std::vector>::_M_realloc_insert>(char **this, void **a2, _DWORD *a3); int __thiscall std::vector>::_M_realloc_insert>(char **this, char *a2, _DWORD *a3); char *__thiscall std::vector::_M_realloc_insert(void **this, _BYTE *a2, _DWORD *a3); char *__thiscall std::vector::push_back(int this, _DWORD *a2); @@ -3563,41 +2840,23 @@ void __fastcall std::moneypunct::~moneypunct(void *a1); void __cdecl std::moneypunct::~moneypunct(std::locale::facet *a1); void __thiscall std::string::_M_destroy(void **this, int a2); void __fastcall std::string::_M_dispose(void **a1); -unsigned int *__thiscall std::string::_M_replace(unsigned int *this, size_t a2, size_t a3, char *Src, size_t a5); -int __cdecl std::string::_S_compare(int a1, int a2); -int __thiscall std::string::_M_capacity(_DWORD *this, int a2); -int __thiscall std::string::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); -int __thiscall std::string::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); -int __thiscall std::string::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); -int __thiscall std::string::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); +unsigned int **__thiscall std::string::_M_replace(unsigned int **this, size_t a2, size_t a3, char *Src, size_t a5); _BYTE *__thiscall std::string::_M_construct(_DWORD *this, size_t a2, char a3); _BYTE *__thiscall std::string::_M_construct<__gnu_cxx::__normal_iterator>(_DWORD *this, _BYTE *Src, int a3, int a4); _BYTE *__thiscall std::string::_M_construct<__gnu_cxx::__normal_iterator>(_DWORD *this, _BYTE *Src, int a3, int a4); -unsigned int __thiscall std::string::_M_construct(void **this, unsigned __int8 *a2, size_t Size, int a4); +int __thiscall std::string::_M_construct(void **this, unsigned __int8 *a2, size_t Size, int a4); _BYTE *__thiscall std::string::_M_construct(_DWORD *this, _BYTE *Src, int a3, int a4); -int __fastcall std::string::_M_local_data(int a1); -int __thiscall std::string::_M_set_length(int *this, int a2); -int __cdecl std::string::_S_copy_chars(_BYTE *a1, unsigned __int8 *a2, size_t Size); -int __cdecl std::string::_S_copy_chars(_BYTE *a1, unsigned __int8 *a2, size_t Size); -int __cdecl std::string::_S_copy_chars(_BYTE *a1, unsigned __int8 *a2, size_t Size); -int __cdecl std::string::_S_copy_chars(_BYTE *a1, unsigned __int8 *a2, size_t Size); +int __cdecl std::string::_S_copy_chars(_BYTE *, unsigned __int8 *, size_t Size); +int __cdecl std::string::_S_copy_chars(_BYTE *, unsigned __int8 *, size_t Size); void __fastcall std::string::shrink_to_fit(_DWORD *a1); _DWORD *__thiscall std::string::_M_replace_aux(_DWORD *this, size_t a2, int a3, size_t a4, char a5); -int __fastcall std::string::_M_get_allocator(int a1); -_BYTE *__thiscall std::string::_M_construct_aux_2(_DWORD *this, size_t a2, char a3); unsigned int __thiscall std::string::at(_DWORD *this, unsigned int a2); -int __fastcall std::string::end(_DWORD *a1); -int __fastcall std::string::back(_DWORD *a1); -_DWORD *__thiscall std::string::rend(_DWORD *this, _DWORD *a2); _BYTE *__thiscall std::string::swap(_DWORD *this, _DWORD *a2); -int __fastcall std::string::begin(int a1); -_BYTE *__fastcall std::string::clear(int a1); int __thiscall std::string::erase(int *this, int a2); -int __thiscall std::string::erase(int *this, _BYTE *a2, int a3); +_BYTE *__thiscall std::string::erase(int *this, _BYTE *a2, int a3); int __thiscall std::string::erase(int *this, int a2); -int __thiscall std::string::erase(int *this, _BYTE *a2, int a3); +_BYTE *__thiscall std::string::erase(int *this, _BYTE *a2, int a3); int *__thiscall std::string::erase(int *this, unsigned int a2, unsigned int a3); -int __fastcall std::string::front(int a1); _DWORD *__thiscall std::string::append(_DWORD *this, char *Str); _DWORD *__thiscall std::string::append(_DWORD *this, _BYTE *a2, size_t a3); _DWORD *__thiscall std::string::append(_DWORD *this, int a2); @@ -3605,51 +2864,45 @@ _DWORD *__thiscall std::string::append(_DWORD *this, _DWORD *a2, unsigned int a3 _DWORD *__thiscall std::string::append(_DWORD *this, _BYTE *a2, size_t a3); _DWORD *__thiscall std::string::append(_DWORD *this, size_t a2, char a3); _DWORD *__thiscall std::string::assign(_DWORD *this, int a2); -unsigned int *__thiscall std::string::assign(unsigned int *this, char *Str); -unsigned int *__thiscall std::string::assign(unsigned int *this, char *a2, size_t a3); +unsigned int **__thiscall std::string::assign(unsigned int **this, char *Str); +unsigned int **__thiscall std::string::assign(unsigned int **this, char *a2, size_t a3); void *__thiscall std::string::assign(void *this, int a2); -unsigned int *__thiscall std::string::assign(unsigned int *this, _DWORD *a2, unsigned int a3, size_t a4); -unsigned int *__thiscall std::string::assign(unsigned int *this, char *a2, size_t a3); +unsigned int **__thiscall std::string::assign(unsigned int **this, _DWORD *a2, unsigned int a3, size_t a4); +unsigned int **__thiscall std::string::assign(unsigned int **this, char *a2, size_t a3); _DWORD *__thiscall std::string::assign(_DWORD *this, size_t a2, char a3); -size_t __thiscall std::string::insert(unsigned int *this, int a2, char *a3, size_t a4); +size_t __thiscall std::string::insert(unsigned int **this, int a2, char *a3, size_t a4); size_t __thiscall std::string::insert(_DWORD *this, int a2, char a3); size_t __thiscall std::string::insert(_DWORD *this, int a2, size_t a3, char a4); -unsigned int *__thiscall std::string::insert(unsigned int *this, int a2, char *a3, size_t a4); +unsigned int **__thiscall std::string::insert(unsigned int **this, int a2, char *a3, size_t a4); size_t __thiscall std::string::insert(_DWORD *this, int a2, char a3); _DWORD *__thiscall std::string::insert(_DWORD *this, int a2, size_t a3, char a4); -unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2, char *Str); -unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2, char *a3, size_t a4); -unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2, int a3); -unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2, _DWORD *a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::insert(unsigned int **this, unsigned int a2, char *Str); +unsigned int **__thiscall std::string::insert(unsigned int **this, unsigned int a2, char *a3, size_t a4); +unsigned int **__thiscall std::string::insert(unsigned int **this, unsigned int a2, int a3); +unsigned int **__thiscall std::string::insert(unsigned int **this, unsigned int a2, _DWORD *a3, char *a4, size_t a5); _DWORD *__thiscall std::string::insert(_DWORD *this, unsigned int a2, size_t a3, char a4); -unsigned int *__thiscall std::string::insert<__gnu_cxx::__normal_iterator>(unsigned int *this, int a2, char *a3, int a4); -_DWORD *__thiscall std::string::rbegin(_DWORD *this, _DWORD *a2); +unsigned int **__thiscall std::string::insert<__gnu_cxx::__normal_iterator>(unsigned int **this, int a2, char *a3, int a4); _DWORD *__thiscall std::string::resize(int *this, _DWORD *a2); _DWORD *__thiscall std::string::resize(int *this, _DWORD *a2, char a3); -int __thiscall std::string::_M_data(_DWORD *this, int a2); -size_t __cdecl std::string::_S_copy(void *a1, const void *Src, size_t Size); -size_t __cdecl std::string::_S_move(void *a1, const void *Src, size_t Size); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, int a4); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *Str); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -_DWORD *__thiscall std::string::replace(_DWORD *this, int a2, int a3, size_t a4, char a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *Str); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, int a4); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5); -_DWORD *__thiscall std::string::replace(_DWORD *this, int a2, int a3, size_t a4, char a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, unsigned int a2, unsigned int a3, char *Str); -unsigned int *__thiscall std::string::replace(unsigned int *this, unsigned int a2, unsigned int a3, char *a4, size_t a5); -unsigned int *__thiscall std::string::replace(unsigned int *this, unsigned int a2, size_t a3, int a4); -unsigned int *__thiscall std::string::replace(unsigned int *this, unsigned int a2, size_t a3, _DWORD *a4, unsigned int a5, size_t a6); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, int a4); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *Str); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *Str); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, int a4); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, unsigned int a2, unsigned int a3, char *Str); +unsigned int **__thiscall std::string::replace(unsigned int **this, unsigned int a2, unsigned int a3, char *a4, size_t a5); +unsigned int **__thiscall std::string::replace(unsigned int **this, unsigned int a2, size_t a3, int a4); +unsigned int **__thiscall std::string::replace(unsigned int **this, unsigned int a2, size_t a3, _DWORD *a4, unsigned int a5, size_t a6); _DWORD *__thiscall std::string::replace(_DWORD *this, unsigned int a2, unsigned int a3, size_t a4, char a5); void __thiscall std::string::reserve(_DWORD *this, unsigned int a2); int __thiscall std::string::_M_erase(int *this, int a2, int a3); @@ -3657,50 +2910,33 @@ int __fastcall std::string::pop_back(int *a1); _DWORD *__thiscall std::string::_M_append(_DWORD *this, _BYTE *Src, size_t Size); void __thiscall std::string::_M_assign(int this, int a2); void *__stdcall std::string::_M_create(unsigned int *a1, unsigned int a2); -int __thiscall std::string::_M_length(_DWORD *this, int a2); -size_t __thiscall std::string::_M_mutate(int this, size_t Size, int a3, _BYTE *a4, size_t a5); -void *__cdecl std::string::_S_assign(_BYTE *a1, void *Val, size_t Size); +int __thiscall std::string::_M_mutate(int this, size_t Size, int a3, _BYTE *a4, size_t a5); _DWORD *__thiscall std::string::push_back(_DWORD *this, char a2); _DWORD *__thiscall std::string::basic_string(_DWORD *this, _DWORD *a2); _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2, int a3); -unsigned int __thiscall std::string::basic_string(void **this, char *Str, int a3); -unsigned int __thiscall std::string::basic_string(void **this, unsigned __int8 *a2, int a3, int a4); -char *__thiscall std::string::basic_string(_DWORD *this, int a2); +int __thiscall std::string::basic_string(void **this, char *Str, int a3); _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2); _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2, int a3); -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4); -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4); -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5); -unsigned int __thiscall std::string::basic_string(void **this, unsigned __int8 *a2, int a3, int a4); +int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4); +int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4); +int __thiscall std::string::basic_string(void **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5); _BYTE *__thiscall std::string::basic_string(_DWORD *this, size_t a2, char a3, int a4); -int __fastcall std::string::basic_string(int a1); -_BYTE *__thiscall std::string::basic_string<__gnu_cxx::__normal_iterator,void>(_DWORD *this, _BYTE *a2, int a3, int a4); -unsigned int __thiscall std::string::basic_string(void **this, unsigned __int8 *a2, size_t a3, int a4); -_BYTE *__thiscall std::string::basic_string(_DWORD *this, _BYTE *a2, int a3, int a4); _DWORD *__thiscall std::string::basic_string(_DWORD *this, _DWORD *a2); _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2, int a3); -unsigned int __thiscall std::string::basic_string(void **this, char *Str, int a3); -unsigned int __thiscall std::string::basic_string(void **this, unsigned __int8 *a2, int a3, int a4); -char *__thiscall std::string::basic_string(_DWORD *this, int a2); +int __thiscall std::string::basic_string(void **this, char *Str, int a3); _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2); _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2, int a3); -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4); -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4); -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5); -unsigned int __thiscall std::string::basic_string(void **this, unsigned __int8 *a2, int a3, int a4); +int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4); +int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4); +int __thiscall std::string::basic_string(void **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5); _BYTE *__thiscall std::string::basic_string(_DWORD *this, size_t a2, char a3, int a4); -int __fastcall std::string::basic_string(int a1); -_BYTE *__thiscall std::string::basic_string<__gnu_cxx::__normal_iterator,void>(_DWORD *this, _BYTE *a2, int a3, int a4); -unsigned int __thiscall std::string::basic_string(void **this, unsigned __int8 *a2, size_t a3, int a4); -_BYTE *__thiscall std::string::basic_string(_DWORD *this, _BYTE *a2, int a3, int a4); void __fastcall std::string::~string(void **a1); void __fastcall std::string::~string(void **a1); _DWORD *__thiscall std::string::operator=(_DWORD *this, _DWORD *a2); -unsigned int *__thiscall std::string::operator=(unsigned int *this, char *Str); +unsigned int **__thiscall std::string::operator=(unsigned int **this, char *Str); void *__thiscall std::string::operator=(void *this, int a2); -unsigned int *__thiscall std::string::operator=(unsigned int *this, char *a2, size_t a3); +unsigned int **__thiscall std::string::operator=(unsigned int **this, char *a2, size_t a3); _DWORD *__thiscall std::string::operator=(_DWORD *this, char a2); -int __thiscall std::string::operator[](_DWORD *this, int a2); _DWORD *__thiscall std::string::operator+=(_DWORD *this, char *Str); _DWORD *__thiscall std::string::operator+=(_DWORD *this, int a2); _DWORD *__thiscall std::string::operator+=(_DWORD *this, _BYTE *a2, size_t a3); @@ -3708,47 +2944,27 @@ _DWORD *__thiscall std::string::operator+=(_DWORD *this, char a2); void __thiscall std::wstring::_M_destroy(void **this, int a2); void __fastcall std::wstring::_M_dispose(void **a1); int __thiscall std::wstring::_M_replace(int this, size_t a2, size_t a3, wchar_t *a4, size_t a5); -int __cdecl std::wstring::_S_compare(int a1, int a2); -int __thiscall std::wstring::_M_capacity(_DWORD *this, int a2); -int __thiscall std::wstring::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); -int __thiscall std::wstring::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); -int __thiscall std::wstring::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); -int __thiscall std::wstring::_Alloc_hider::_Alloc_hider(_DWORD *this, int a2, int a3); wchar_t *__thiscall std::wstring::_M_construct(wchar_t **this, size_t a2, wchar_t a3); wchar_t *__thiscall std::wstring::_M_construct<__gnu_cxx::__normal_iterator>(wchar_t **this, wchar_t *S2, int a3, int a4); wchar_t *__thiscall std::wstring::_M_construct<__gnu_cxx::__normal_iterator>(wchar_t **this, wchar_t *S2, int a3, int a4); wchar_t *__thiscall std::wstring::_M_construct(wchar_t **this, wchar_t *S2, int a3, int a4); wchar_t *__thiscall std::wstring::_M_construct(wchar_t **this, wchar_t *S2, int a3, int a4); -int __fastcall std::wstring::_M_local_data(int a1); -int __thiscall std::wstring::_M_set_length(int *this, int a2); -int __cdecl std::wstring::_S_copy_chars(wchar_t *a1, const wchar_t *a2, size_t N); -int __cdecl std::wstring::_S_copy_chars(wchar_t *a1, const wchar_t *a2, size_t N); -int __cdecl std::wstring::_S_copy_chars(wchar_t *a1, const wchar_t *a2, size_t N); -int __cdecl std::wstring::_S_copy_chars(wchar_t *a1, const wchar_t *a2, size_t N); void __fastcall std::wstring::shrink_to_fit(_DWORD *a1); int __thiscall std::wstring::_M_replace_aux(int this, size_t a2, int a3, size_t a4, wchar_t a5); -int __fastcall std::wstring::_M_get_allocator(int a1); -wchar_t *__thiscall std::wstring::_M_construct_aux_2(wchar_t **this, size_t a2, wchar_t a3); -int __thiscall std::wstring::at(_DWORD *this, unsigned int a2); -int __fastcall std::wstring::end(_DWORD *a1); -int __fastcall std::wstring::back(_DWORD *a1); -_DWORD *__thiscall std::wstring::rend(_DWORD *this, _DWORD *a2); +unsigned int __thiscall std::wstring::at(_DWORD *this, unsigned int a2); void __thiscall std::wstring::swap(wchar_t **this, int a2); -int __fastcall std::wstring::begin(int a1); -_WORD *__fastcall std::wstring::clear(int a1); int __thiscall std::wstring::erase(int *this, int a2); _WORD *__thiscall std::wstring::erase(int *this, _WORD *a2, int a3); int __thiscall std::wstring::erase(int *this, int a2); _WORD *__thiscall std::wstring::erase(int *this, _WORD *a2, int a3); int *__thiscall std::wstring::erase(int *this, unsigned int a2, unsigned int a3); -int __fastcall std::wstring::front(int a1); int __thiscall std::wstring::append(_DWORD *this, wchar_t *String); int __thiscall std::wstring::append(_DWORD *this, wchar_t *a2, size_t a3); int __thiscall std::wstring::append(void *this, int a2); int __thiscall std::wstring::append(void *this, _DWORD *a2, unsigned int a3, size_t a4); int __thiscall std::wstring::append(_DWORD *this, wchar_t *a2, size_t a3); int __thiscall std::wstring::append(size_t *this, size_t a2, __int16 a3); -wchar_t **__thiscall std::wstring::assign(wchar_t **this, int a2); +wchar_t ***__thiscall std::wstring::assign(wchar_t ***this, int a2); int __thiscall std::wstring::assign(size_t *this, wchar_t *String); int __thiscall std::wstring::assign(size_t *this, wchar_t *a2, size_t a3); void *__thiscall std::wstring::assign(void *this, int a2); @@ -3767,12 +2983,8 @@ int __thiscall std::wstring::insert(_DWORD *this, unsigned int a2, int a3); int __thiscall std::wstring::insert(_DWORD *this, unsigned int a2, _DWORD *a3, unsigned int a4, size_t a5); int __thiscall std::wstring::insert(_DWORD *this, unsigned int a2, size_t a3, __int16 a4); int __thiscall std::wstring::insert<__gnu_cxx::__normal_iterator>(_DWORD *this, int a2, wchar_t *a3, int a4); -_DWORD *__thiscall std::wstring::rbegin(_DWORD *this, _DWORD *a2); -int __thiscall std::wstring::resize(int *this, unsigned int a2); -int __thiscall std::wstring::resize(int *this, unsigned int a2, wchar_t a3); -int __thiscall std::wstring::_M_data(_DWORD *this, int a2); -size_t __cdecl std::wstring::_S_copy(wchar_t *S1, const wchar_t *S2, size_t N); -size_t __cdecl std::wstring::_S_move(wchar_t *S1, const wchar_t *S2, size_t N); +int __thiscall std::wstring::resize(int *this, size_t a2); +int __thiscall std::wstring::resize(int *this, size_t a2, wchar_t a3); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, int a4); @@ -3781,7 +2993,6 @@ int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); -int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, size_t a4, wchar_t a5); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *String); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); @@ -3789,7 +3000,6 @@ int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, int a4); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, wchar_t *a4, size_t a5); -int __thiscall std::wstring::replace(_DWORD *this, int a2, int a3, size_t a4, wchar_t a5); int __thiscall std::wstring::replace(_DWORD *this, unsigned int a2, unsigned int a3, wchar_t *String); int __thiscall std::wstring::replace(_DWORD *this, unsigned int a2, unsigned int a3, wchar_t *a4, size_t a5); int __thiscall std::wstring::replace(_DWORD *this, unsigned int a2, size_t a3, int a4); @@ -3801,54 +3011,37 @@ int __fastcall std::wstring::pop_back(int *a1); int __thiscall std::wstring::_M_append(int this, wchar_t *S2, size_t N); void __thiscall std::wstring::_M_assign(int this, int a2); void *__stdcall std::wstring::_M_create(unsigned int *a1, unsigned int a2); -int __thiscall std::wstring::_M_length(_DWORD *this, int a2); const wchar_t *__thiscall std::wstring::_M_mutate(const wchar_t **this, size_t N, int a3, wchar_t *a4, size_t a5); -wchar_t *__cdecl std::wstring::_S_assign(wchar_t *a1, size_t C, size_t N); const wchar_t *__thiscall std::wstring::push_back(int this, wchar_t a2); int __thiscall std::wstring::basic_string(wchar_t *this, int a2); _WORD *__thiscall std::wstring::basic_string(wchar_t *this, int a2, int a3); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *String, int a3); -wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, int a3, int a4); -int __thiscall std::wstring::basic_string(_DWORD *this, int a2); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, int a2); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, int a2, int a3); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, unsigned int a3, int a4); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, unsigned int a3, int a4); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5); -wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, int a3, int a4); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, size_t a2, __int16 a3, int a4); -int __fastcall std::wstring::basic_string(int a1); -wchar_t *__thiscall std::wstring::basic_string<__gnu_cxx::__normal_iterator,void>(wchar_t **this, wchar_t *a2, int a3, int a4); -wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, int a3, int a4); -wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, int a3, int a4); int __thiscall std::wstring::basic_string(wchar_t *this, int a2); _WORD *__thiscall std::wstring::basic_string(wchar_t *this, int a2, int a3); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *String, int a3); -wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, int a3, int a4); -int __thiscall std::wstring::basic_string(_DWORD *this, int a2); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, int a2); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, int a2, int a3); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, unsigned int a3, int a4); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, unsigned int a3, int a4); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5); -wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, int a3, int a4); wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, size_t a2, __int16 a3, int a4); -int __fastcall std::wstring::basic_string(int a1); -wchar_t *__thiscall std::wstring::basic_string<__gnu_cxx::__normal_iterator,void>(wchar_t **this, wchar_t *a2, int a3, int a4); -wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, int a3, int a4); -wchar_t *__thiscall std::wstring::basic_string(wchar_t **this, wchar_t *a2, int a3, int a4); void __fastcall std::wstring::~wstring(void **a1); void __fastcall std::wstring::~wstring(void **a1); -wchar_t **__thiscall std::wstring::operator=(wchar_t **this, int a2); +wchar_t ***__thiscall std::wstring::operator=(wchar_t ***this, int a2); int __thiscall std::wstring::operator=(size_t *this, wchar_t *String); void *__thiscall std::wstring::operator=(void *this, int a2); size_t *__thiscall std::wstring::operator=(size_t *this, wchar_t *a2, size_t a3); int *__thiscall std::wstring::operator=(int *this, wchar_t a2); -int __thiscall std::wstring::operator[](_DWORD *this, int a2); int __thiscall std::wstring::operator+=(_DWORD *this, wchar_t *String); int __thiscall std::wstring::operator+=(void *this, int a2); int __thiscall std::wstring::operator+=(_DWORD *this, wchar_t *a2, size_t a3); -_DWORD *__thiscall std::wstring::operator+=(char *this, __int16 a2); +const wchar_t **__thiscall std::wstring::operator+=(char *this, wchar_t a2); char __thiscall std::collate_byname::collate_byname(_DWORD *this, int **a2, int a3); char __thiscall std::collate_byname::collate_byname(_DWORD *this, int *a2, int a3); char __thiscall std::collate_byname::collate_byname(_DWORD *this, int **a2, int a3); @@ -3867,64 +3060,56 @@ unsigned int __thiscall std::stringbuf::__xfer_bufptrs::__xfer_bufptrs(_DWORD *t unsigned int __thiscall std::stringbuf::__xfer_bufptrs::__xfer_bufptrs(_DWORD *this, _DWORD *a2, int a3); int __fastcall std::stringbuf::__xfer_bufptrs::~__xfer_bufptrs(int a1); int __fastcall std::stringbuf::__xfer_bufptrs::~__xfer_bufptrs(int a1); -unsigned int __fastcall std::stringbuf::_M_update_egptr(int a1); -int __thiscall std::stringbuf::_M_stringbuf_init(int this, int a2); -int __thiscall std::stringbuf::str(int this, int a2); -int __thiscall std::stringbuf::swap(_DWORD *this, int a2); -_DWORD *__thiscall std::stringbuf::setbuf(_DWORD *this, _DWORD *a2, int a3); -int __thiscall std::stringbuf::_M_sync(_DWORD *this, _DWORD *a2, int a3, unsigned int a4); +char *__thiscall std::stringbuf::_M_stringbuf_init(int this, int a2); +char *__thiscall std::stringbuf::str(int this, int a2); +int __thiscall std::stringbuf::swap(volatile signed __int32 **this, _DWORD *a2); +_DWORD *__thiscall std::stringbuf::setbuf(_DWORD *this, char *a2, int a3); +char *__thiscall std::stringbuf::_M_sync(_DWORD *this, char *a2, int a3, unsigned int a4); unsigned int *__thiscall std::stringbuf::seekoff(unsigned int *this, _DWORD *a2, __int64 a3, int a4, unsigned int a5); _DWORD *__thiscall std::stringbuf::seekpos(_DWORD *this, _DWORD *a2, __int64 a3, int a4, int a5, int a6); int __thiscall std::stringbuf::_M_pbump(_DWORD *this, int a2, int a3, __int64 a4); int __thiscall std::stringbuf::overflow(int this, int a2); int __thiscall std::stringbuf::pbackfail(int this, int a2); -int __fastcall std::stringbuf::showmanyc(int a1); -int __fastcall std::stringbuf::underflow(int a1); -int __thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2); +char *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2, int a3); -int __thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3); +char *__thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3); char *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, int a2); int __fastcall std::stringbuf::basic_stringbuf(int a1); -int __thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2); +char *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2, int a3); -int __thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3); +char *__thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3); char *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, int a2); int __fastcall std::stringbuf::basic_stringbuf(int a1); void __fastcall std::stringbuf::~stringbuf(_DWORD *a1); void __fastcall std::stringbuf::~stringbuf(int a1); -int __thiscall std::stringbuf::operator=(int this, int a2); +_DWORD *__thiscall std::stringbuf::operator=(_DWORD *this, int a2); unsigned int __thiscall std::wstringbuf::__xfer_bufptrs::__xfer_bufptrs(_DWORD *this, _DWORD *a2, int a3); unsigned int __thiscall std::wstringbuf::__xfer_bufptrs::__xfer_bufptrs(_DWORD *this, _DWORD *a2, int a3); int __fastcall std::wstringbuf::__xfer_bufptrs::~__xfer_bufptrs(int a1); int __fastcall std::wstringbuf::__xfer_bufptrs::~__xfer_bufptrs(int a1); -unsigned int __fastcall std::wstringbuf::_M_update_egptr(int a1); -int __thiscall std::wstringbuf::_M_stringbuf_init(int this, int a2); -int __thiscall std::wstringbuf::str(int this, int a2); -int __thiscall std::wstringbuf::swap(_DWORD *this, int a2); +_DWORD *__thiscall std::wstringbuf::_M_stringbuf_init(int this, int a2); +_DWORD *__thiscall std::wstringbuf::str(int this, int a2); +int __thiscall std::wstringbuf::swap(_DWORD *this, _DWORD *a2); _DWORD *__thiscall std::wstringbuf::setbuf(_DWORD *this, _DWORD *a2, int a3); -int __thiscall std::wstringbuf::_M_sync(_DWORD *this, _DWORD *a2, int a3, unsigned int a4); +_DWORD *__thiscall std::wstringbuf::_M_sync(_DWORD *this, _DWORD *a2, int a3, unsigned int a4); unsigned int *__thiscall std::wstringbuf::seekoff(unsigned int *this, _DWORD *a2, __int64 a3, int a4, unsigned int a5); _DWORD *__thiscall std::wstringbuf::seekpos(_DWORD *this, _DWORD *a2, __int64 a3, int a4, int a5, int a6); int __thiscall std::wstringbuf::_M_pbump(_DWORD *this, int a2, int a3, __int64 a4); int __thiscall std::wstringbuf::overflow(int this, int a2); int __thiscall std::wstringbuf::pbackfail(int this, int a2); -int __fastcall std::wstringbuf::showmanyc(int a1); -int __fastcall std::wstringbuf::underflow(int a1); -int __thiscall std::wstringbuf::basic_stringbuf(int this, int a2); +_DWORD *__thiscall std::wstringbuf::basic_stringbuf(int this, int a2); int __thiscall std::wstringbuf::basic_stringbuf(int this, _DWORD *a2, int a3); -int __thiscall std::wstringbuf::basic_stringbuf(int this, int a2, int a3); +_DWORD *__thiscall std::wstringbuf::basic_stringbuf(int this, int a2, int a3); int __thiscall std::wstringbuf::basic_stringbuf(_DWORD *this, int a2); int __fastcall std::wstringbuf::basic_stringbuf(int a1); -int __thiscall std::wstringbuf::basic_stringbuf(int this, int a2); +_DWORD *__thiscall std::wstringbuf::basic_stringbuf(int this, int a2); int __thiscall std::wstringbuf::basic_stringbuf(int this, _DWORD *a2, int a3); -int __thiscall std::wstringbuf::basic_stringbuf(int this, int a2, int a3); +_DWORD *__thiscall std::wstringbuf::basic_stringbuf(int this, int a2, int a3); int __thiscall std::wstringbuf::basic_stringbuf(_DWORD *this, int a2); int __fastcall std::wstringbuf::basic_stringbuf(int a1); void __fastcall std::wstringbuf::~wstringbuf(_DWORD *a1); void __fastcall std::wstringbuf::~wstringbuf(int a1); -int __thiscall std::wstringbuf::operator=(int this, int a2); -unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); -unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); +_DWORD *__thiscall std::wstringbuf::operator=(_DWORD *this, int a2); unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); void __fastcall std::messages_byname::~messages_byname(_DWORD *a1); @@ -3932,8 +3117,6 @@ void __cdecl std::messages_byname::~messages_byname(std::locale::facet *a1 void __cdecl std::messages_byname::~messages_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); -unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); -unsigned __int8 __thiscall std::messages_byname::messages_byname(_DWORD *this, int **a2, int a3); void __fastcall std::messages_byname::~messages_byname(_DWORD *a1); void __cdecl std::messages_byname::~messages_byname(std::locale::facet *a1); void __cdecl std::messages_byname::~messages_byname(std::locale::facet *a1); @@ -3942,59 +3125,35 @@ unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *t unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::numpunct_byname::~numpunct_byname(_DWORD *a1); -void __cdecl std::numpunct_byname::~numpunct_byname(std::locale::facet *a1); -void __cdecl std::numpunct_byname::~numpunct_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::numpunct_byname::numpunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::numpunct_byname::~numpunct_byname(_DWORD *a1); -void __cdecl std::numpunct_byname::~numpunct_byname(std::locale::facet *a1); -void __cdecl std::numpunct_byname::~numpunct_byname(std::locale::facet *a1); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); void __fastcall std::time_get_byname>::~time_get_byname(_DWORD *a1); -void __cdecl std::time_get_byname>::~time_get_byname(std::locale::facet *a1); -void __cdecl std::time_get_byname>::~time_get_byname(std::locale::facet *a1); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); -BOOL __thiscall std::time_get_byname>::time_get_byname(_DWORD *this, int a2, int a3); void __fastcall std::time_get_byname>::~time_get_byname(_DWORD *a1); -void __cdecl std::time_get_byname>::~time_get_byname(std::locale::facet *a1); -void __cdecl std::time_get_byname>::~time_get_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::moneypunct_byname::~moneypunct_byname(_DWORD *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::moneypunct_byname::~moneypunct_byname(_DWORD *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::moneypunct_byname::~moneypunct_byname(_DWORD *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int **a2, int a3); unsigned __int8 __thiscall std::moneypunct_byname::moneypunct_byname(_DWORD *this, int ***a2, int a3); void __fastcall std::moneypunct_byname::~moneypunct_byname(_DWORD *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -void __cdecl std::moneypunct_byname::~moneypunct_byname(std::locale::facet *a1); -int __thiscall std::basic_stringstream,std::allocator>::str(int this, int a2); -int __thiscall std::basic_stringstream,std::allocator>::swap(_DWORD *this, _DWORD *a2); +char *__thiscall std::basic_stringstream,std::allocator>::str(int this, int a2); +int __thiscall std::basic_stringstream,std::allocator>::swap(volatile signed __int32 **this, _DWORD *a2); char *__thiscall std::basic_stringstream,std::allocator>::basic_stringstream(_DWORD *this, _DWORD *a2); BOOL __thiscall std::basic_stringstream,std::allocator>::basic_stringstream(char *this, int a2, int a3); BOOL __thiscall std::basic_stringstream,std::allocator>::basic_stringstream(_DWORD *this, int a2); @@ -4007,9 +3166,9 @@ void __fastcall std::basic_stringstream,std::allocat void __fastcall std::basic_stringstream,std::allocator>::~basic_stringstream(int a1); int __thiscall std::basic_stringstream,std::allocator>::~basic_stringstream(char *this, int *a2); char *__thiscall std::basic_stringstream,std::allocator>::operator=(char *this, int a2); -int __thiscall std::basic_stringstream,std::allocator>::str(int this, int a2); +_DWORD *__thiscall std::basic_stringstream,std::allocator>::str(int this, int a2); int __thiscall std::basic_stringstream,std::allocator>::swap(_DWORD *this, _DWORD *a2); -char *__thiscall std::basic_stringstream,std::allocator>::basic_stringstream(char *this, int *a2); +char *__thiscall std::basic_stringstream,std::allocator>::basic_stringstream(char *this, const wchar_t *a2); BOOL __thiscall std::basic_stringstream,std::allocator>::basic_stringstream(char *this, int a2, int a3); BOOL __thiscall std::basic_stringstream,std::allocator>::basic_stringstream(_DWORD *this, int a2); BOOL __fastcall std::basic_stringstream,std::allocator>::basic_stringstream(int a1); @@ -4021,8 +3180,8 @@ void __fastcall std::basic_stringstream,std::a void __fastcall std::basic_stringstream,std::allocator>::~basic_stringstream(int a1); int __thiscall std::basic_stringstream,std::allocator>::~basic_stringstream(char *this, int *a2); char *__thiscall std::basic_stringstream,std::allocator>::operator=(char *this, int a2); -int __thiscall std::istringstream::str(int this, int a2); -int __thiscall std::istringstream::swap(_DWORD *this, _DWORD *a2); +char *__thiscall std::istringstream::str(int this, int a2); +int __thiscall std::istringstream::swap(volatile signed __int32 **this, _DWORD *a2); char *__thiscall std::istringstream::basic_istringstream(_DWORD *this, _DWORD *a2); BOOL __thiscall std::istringstream::basic_istringstream(char *this, int a2, int a3); BOOL __thiscall std::istringstream::basic_istringstream(_DWORD *this, int a2); @@ -4035,9 +3194,9 @@ void __fastcall std::istringstream::~istringstream(_DWORD *a1); void __fastcall std::istringstream::~istringstream(int a1); int __thiscall std::istringstream::~istringstream(int *this, int *a2); char *__thiscall std::istringstream::operator=(char *this, int a2); -int __thiscall std::wistringstream::str(int this, int a2); +_DWORD *__thiscall std::wistringstream::str(int this, int a2); int __thiscall std::wistringstream::swap(_DWORD *this, _DWORD *a2); -char *__thiscall std::wistringstream::basic_istringstream(char *this, int *a2); +char *__thiscall std::wistringstream::basic_istringstream(char *this, const wchar_t *a2); BOOL __thiscall std::wistringstream::basic_istringstream(char *this, int a2, int a3); BOOL __thiscall std::wistringstream::basic_istringstream(_DWORD *this, int a2); BOOL __fastcall std::wistringstream::basic_istringstream(int a1); @@ -4049,8 +3208,8 @@ void __fastcall std::wistringstream::~wistringstream(_DWORD *a1); void __fastcall std::wistringstream::~wistringstream(int a1); int __thiscall std::wistringstream::~wistringstream(int *this, int *a2); char *__thiscall std::wistringstream::operator=(char *this, int a2); -int __thiscall std::ostringstream::str(int this, int a2); -int __thiscall std::ostringstream::swap(_DWORD *this, _DWORD *a2); +char *__thiscall std::ostringstream::str(int this, int a2); +int __thiscall std::ostringstream::swap(volatile signed __int32 **this, _DWORD *a2); char *__thiscall std::ostringstream::basic_ostringstream(_DWORD *this, _DWORD *a2); BOOL __thiscall std::ostringstream::basic_ostringstream(char *this, int a2, int a3); BOOL __thiscall std::ostringstream::basic_ostringstream(_DWORD *this, int a2); @@ -4063,9 +3222,9 @@ void __fastcall std::ostringstream::~ostringstream(_DWORD *a1); void __fastcall std::ostringstream::~ostringstream(int a1); int __thiscall std::ostringstream::~ostringstream(int *this, int *a2); volatile signed __int32 **__thiscall std::ostringstream::operator=(volatile signed __int32 **this, int a2); -int __thiscall std::wostringstream::str(int this, int a2); +_DWORD *__thiscall std::wostringstream::str(int this, int a2); int __thiscall std::wostringstream::swap(_DWORD *this, _DWORD *a2); -char *__thiscall std::wostringstream::basic_ostringstream(char *this, int *a2); +char *__thiscall std::wostringstream::basic_ostringstream(char *this, const wchar_t *a2); BOOL __thiscall std::wostringstream::basic_ostringstream(char *this, int a2, int a3); BOOL __thiscall std::wostringstream::basic_ostringstream(_DWORD *this, int a2); BOOL __fastcall std::wostringstream::basic_ostringstream(int a1); @@ -4076,7 +3235,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(int *this, int *a2); void __fastcall std::wostringstream::~wostringstream(_DWORD *a1); void __fastcall std::wostringstream::~wostringstream(int a1); int __thiscall std::wostringstream::~wostringstream(int *this, int *a2); -char *__thiscall std::wostringstream::operator=(char *this, int a2); +volatile signed __int32 **__thiscall std::wostringstream::operator=(volatile signed __int32 **this, int a2); int __thiscall std::collate::collate(_DWORD *this, char a2, int a3); int __thiscall std::collate::collate(_DWORD *this, int a2); int __thiscall std::collate::collate(_DWORD *this, char a2, int a3); @@ -4123,45 +3282,17 @@ int __thiscall std::numpunct::numpunct(_DWORD *this, int a2, int a3); int __thiscall std::numpunct::numpunct(_DWORD *this, int a2); void __fastcall std::numpunct::~numpunct(void *a1); void __cdecl std::numpunct::~numpunct(std::locale::facet *a1); -BOOL __thiscall std::time_get>::time_get(_DWORD *this, int a2); -BOOL __thiscall std::time_get>::time_get(_DWORD *this, int a2); void __fastcall std::time_get>::~time_get(_DWORD *a1); -void __cdecl std::time_get>::~time_get(std::locale::facet *a1); -void __cdecl std::time_get>::~time_get(std::locale::facet *a1); -BOOL __thiscall std::time_get>::time_get(_DWORD *this, int a2); -BOOL __thiscall std::time_get>::time_get(_DWORD *this, int a2); void __fastcall std::time_get>::~time_get(_DWORD *a1); -void __cdecl std::time_get>::~time_get(std::locale::facet *a1); -void __cdecl std::time_get>::~time_get(std::locale::facet *a1); -BOOL __thiscall std::money_get>::money_get(_DWORD *this, int a2); -BOOL __thiscall std::money_get>::money_get(_DWORD *this, int a2); void __fastcall std::money_get>::~money_get(_DWORD *a1); -void __cdecl std::money_get>::~money_get(std::locale::facet *a1); -void __cdecl std::money_get>::~money_get(std::locale::facet *a1); -BOOL __thiscall std::money_get>::money_get(_DWORD *this, int a2); -BOOL __thiscall std::money_get>::money_get(_DWORD *this, int a2); void __fastcall std::money_get>::~money_get(_DWORD *a1); -void __cdecl std::money_get>::~money_get(std::locale::facet *a1); -void __cdecl std::money_get>::~money_get(std::locale::facet *a1); -BOOL __thiscall std::money_put>::money_put(_DWORD *this, int a2); -BOOL __thiscall std::money_put>::money_put(_DWORD *this, int a2); void __fastcall std::money_put>::~money_put(_DWORD *a1); -void __cdecl std::money_put>::~money_put(std::locale::facet *a1); -void __cdecl std::money_put>::~money_put(std::locale::facet *a1); -BOOL __thiscall std::money_put>::money_put(_DWORD *this, int a2); -BOOL __thiscall std::money_put>::money_put(_DWORD *this, int a2); void __fastcall std::money_put>::~money_put(_DWORD *a1); -void __cdecl std::money_put>::~money_put(std::locale::facet *a1); -void __cdecl std::money_put>::~money_put(std::locale::facet *a1); void **__cdecl std::to_string(void **this, unsigned int a2); void __fastcall std::codecvt::~codecvt(_DWORD *a1); -void __cdecl std::codecvt::~codecvt(std::locale::facet *a1); void __fastcall std::codecvt::~codecvt(_DWORD *a1); -void __cdecl std::codecvt::~codecvt(std::locale::facet *a1); void __fastcall std::codecvt::~codecvt(_DWORD *a1); -void __cdecl std::codecvt::~codecvt(std::locale::facet *a1); void __fastcall std::codecvt::~codecvt(_DWORD *a1); -void __cdecl std::codecvt::~codecvt(std::locale::facet *a1); int __thiscall std::codecvt::codecvt(_DWORD *this, char a2, int a3); int __thiscall std::codecvt::codecvt(_DWORD *this, int a2); void __fastcall std::codecvt::~codecvt(void *a1); @@ -4184,89 +3315,73 @@ int __thiscall std::collate::collate(_DWORD *this, int a2); void __fastcall std::collate::~collate(_DWORD *a1); void __cdecl std::collate::~collate(std::locale::facet *a1); void __cdecl std::collate::~collate(std::locale::facet *a1); -BOOL __thiscall std::num_get>::num_get(_DWORD *this, int a2); -BOOL __thiscall std::num_get>::num_get(_DWORD *this, int a2); void __fastcall std::num_get>::~num_get(_DWORD *a1); -void __cdecl std::num_get>::~num_get(std::locale::facet *a1); -void __cdecl std::num_get>::~num_get(std::locale::facet *a1); -BOOL __thiscall std::num_get>::num_get(_DWORD *this, int a2); -BOOL __thiscall std::num_get>::num_get(_DWORD *this, int a2); void __fastcall std::num_get>::~num_get(_DWORD *a1); -void __cdecl std::num_get>::~num_get(std::locale::facet *a1); -void __cdecl std::num_get>::~num_get(std::locale::facet *a1); -BOOL __thiscall std::num_put>::num_put(_DWORD *this, int a2); -BOOL __thiscall std::num_put>::num_put(_DWORD *this, int a2); void __fastcall std::num_put>::~num_put(_DWORD *a1); -void __cdecl std::num_put>::~num_put(std::locale::facet *a1); -void __cdecl std::num_put>::~num_put(std::locale::facet *a1); -BOOL __thiscall std::num_put>::num_put(_DWORD *this, int a2); -BOOL __thiscall std::num_put>::num_put(_DWORD *this, int a2); void __fastcall std::num_put>::~num_put(_DWORD *a1); -void __cdecl std::num_put>::~num_put(std::locale::facet *a1); -void __cdecl std::num_put>::~num_put(std::locale::facet *a1); int __thiscall std::_Rb_tree,std::less,std::allocator>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree,std::less,std::allocator>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree,std::less,std::allocator>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); void __stdcall std::_Rb_tree,std::less,std::allocator>::_M_erase(void **a1); int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); void __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase(void *a1); void __stdcall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_erase(void *a1); void **__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>(_DWORD *this, int a2); void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(void **a1); -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::equal_range(_DWORD *this, int a2); +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::equal_range(_DWORD *this, int a2); _DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_insert_node(_DWORD *this, int a2, _DWORD *a3, _DWORD *a4); _DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>(_DWORD *this, char **a2); int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); _DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find(_DWORD *this, int a2); int __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(int a1); _DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_insert_node(_DWORD *this, int a2, _DWORD *a3, _DWORD *a4); int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(void **a1); int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); void __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase(void *a1); _DWORD *__thiscall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_insert_node(_DWORD *this, int a2, _DWORD *a3, _DWORD *a4); int __thiscall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); void __stdcall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_erase(void *a1); int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); void __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase(void **a1); int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); void __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase(void *a1); _DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_insert_node(_DWORD *this, int a2, _DWORD *a3, _DWORD *a4); int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); _DWORD *__stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_copy>,std::_Select1st>>,std::less,std::allocator>>>::_Alloc_node>(int *a1, int a2, int a3); void __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase(void *a1); int *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_Rb_tree(_DWORD *this, int a2); _DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_insert_node(_DWORD *this, int a2, _DWORD *a3, _DWORD *a4); int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(void **a1); int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos(_DWORD *this, int a2); -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int a3); _DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find(_DWORD *this, int a2); int __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_copy,std::_Select1st>,std::less,std::allocator>>::_Alloc_node>(int a1, int a2, int a3); void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(void **a1); void **__thiscall std::_Rb_tree,std::pair const,std::string>,std::_Select1st const,std::string>>,std::less>,std::allocator const,std::string>>>::_M_emplace_unique,std::string>>(_DWORD *this, _DWORD *a2); void __stdcall std::_Rb_tree,std::pair const,std::string>,std::_Select1st const,std::string>>,std::less>,std::allocator const,std::string>>>::_M_erase(void **a1); -int __thiscall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_unique_pos(_DWORD *this, _DWORD *a2); -int __thiscall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int *a3); +_DWORD *__thiscall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_unique_pos(_DWORD *this, _DWORD *a2); +_DWORD *__thiscall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, int *a3); void __stdcall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_erase(void **a1); -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos(_DWORD *this, _DWORD *a2); -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, unsigned int *a3); +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos(_DWORD *this, _DWORD *a2); +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos(_DWORD *this, _DWORD *a2, unsigned int *a3); int __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_copy,std::_Select1st>,std::less,std::allocator>>::_Alloc_node>(int a1, int a2, int a3); void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(void **a1); -int __thiscall std::_Rb_tree,std::less,std::allocator>::_M_insert_unique(_DWORD *this, _DWORD *a2); +_DWORD *__thiscall std::_Rb_tree,std::less,std::allocator>::_M_insert_unique(_DWORD *this, _DWORD *a2); _DWORD *__stdcall std::_Rb_tree,std::less,std::allocator>::_M_copy,std::less,std::allocator>::_Alloc_node>(int *a1, int a2, int a3); void __stdcall std::_Rb_tree,std::less,std::allocator>::_M_erase(void **a1); void __fastcall std::bad_cast::~bad_cast(_DWORD *a1); -void __cdecl std::bad_cast::~bad_cast(std::exception *a1); -// int *__userpurge std::ios_base::_M_grow_words@(_DWORD *a1@, int this, char a3, bool a4); +void __cdecl std::bad_cast::~bad_cast(std::exception *); +// int *__userpurge std::ios_base::_M_grow_words@(_DWORD *a1@, unsigned int this, char a3, bool a4); int __cdecl std::ios_base::sync_with_stdio(std::ios_base *this); int __thiscall std::ios_base::_M_call_callbacks(_DWORD *this, int a2); _DWORD *__thiscall std::ios_base::register_callback(_DWORD *this, int a2, int a3); @@ -4274,7 +3389,6 @@ void __fastcall std::ios_base::_M_dispose_callbacks(int a1); int std::ios_base::Init::Init(); void __cdecl std::ios_base::Init::~Init(); volatile signed __int32 **__thiscall std::ios_base::imbue(volatile signed __int32 **ecx0, volatile signed __int32 **this, volatile signed __int32 **a3); -int std::ios_base::xalloc(); void __fastcall std::ios_base::_M_init(int a1); // volatile signed __int32 **__userpurge std::ios_base::_M_move@(int a1@, std::ios_base *this, std::ios_base *a3); // void __userpurge std::ios_base::_M_swap(int a1@, std::ios_base *this, std::ios_base *a3); @@ -4282,7 +3396,6 @@ int __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, char *St void __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, int a2); int __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, int a2, int *a3); void __fastcall std::ios_base::failure[abi:cxx11]::~failure(_DWORD *a1); -void __fastcall std::ios_base::failure[abi:cxx11]::~failure(_DWORD *a1); // unsigned int *__userpurge std::ios_base::failure::failure@(int a1@, unsigned int **this, const std::string *a3); void __fastcall std::ios_base::failure::~failure(_DWORD *a1); void __fastcall std::ios_base::failure::~failure(_DWORD *a1); @@ -4321,32 +3434,14 @@ int __thiscall std::numpunct::numpunct(_DWORD *this, int a2, int a3); int __thiscall std::numpunct::numpunct(_DWORD *this, int a2); void __fastcall std::numpunct::~numpunct(void *a1); void __cdecl std::numpunct::~numpunct(std::locale::facet *a1); -BOOL __thiscall std::time_get>::time_get(_DWORD *this, int a2); -BOOL __thiscall std::time_get>::time_get(_DWORD *this, int a2); void __fastcall std::time_get>::~time_get(_DWORD *a1); -void __cdecl std::time_get>::~time_get(std::locale::facet *a1); -void __cdecl std::time_get>::~time_get(std::locale::facet *a1); -BOOL __thiscall std::time_get>::time_get(_DWORD *this, int a2); -BOOL __thiscall std::time_get>::time_get(_DWORD *this, int a2); void __fastcall std::time_get>::~time_get(_DWORD *a1); -void __cdecl std::time_get>::~time_get(std::locale::facet *a1); -void __cdecl std::time_get>::~time_get(std::locale::facet *a1); -BOOL __thiscall std::time_put>::time_put(_DWORD *this, int a2); -BOOL __thiscall std::time_put>::time_put(_DWORD *this, int a2); void __fastcall std::time_put>::~time_put(_DWORD *a1); -void __cdecl std::time_put>::~time_put(std::locale::facet *a1); -void __cdecl std::time_put>::~time_put(std::locale::facet *a1); -BOOL __thiscall std::time_put>::time_put(_DWORD *this, int a2); -BOOL __thiscall std::time_put>::time_put(_DWORD *this, int a2); void __fastcall std::time_put>::~time_put(_DWORD *a1); -void __cdecl std::time_put>::~time_put(std::locale::facet *a1); -void __cdecl std::time_put>::~time_put(std::locale::facet *a1); void __fastcall std::bad_alloc::~bad_alloc(_DWORD *a1); -void __cdecl std::bad_alloc::~bad_alloc(std::exception *a1); -int __thiscall std::ios::exceptions(_DWORD *this, int a2); +void __cdecl std::bad_alloc::~bad_alloc(std::exception *); int __thiscall std::ios::_M_setstate(_DWORD *this, int a2); void *__thiscall std::ios::_M_cache_locale(_DWORD *this, int a2); -int __thiscall std::ios::tie(_DWORD *this, int a2); int __thiscall std::ios::fill(int this, char a2); BOOL __thiscall std::ios::init(int this, int a2); int __thiscall std::ios::move(int this, std::ios_base *a2); @@ -4356,19 +3451,13 @@ int __thiscall std::ios::clear(_DWORD *this, int a2); volatile signed __int32 **__thiscall std::ios::imbue(volatile signed __int32 **this, volatile signed __int32 **a2, volatile signed __int32 **a3); int __thiscall std::ios::rdbuf(_DWORD *this, int a2); int __thiscall std::ios::copyfmt(int this, _DWORD *a2); -int __thiscall std::ios::setstate(_DWORD *this, int a2); -int __thiscall std::ios::set_rdbuf(_DWORD *this, int a2); BOOL __thiscall std::ios::basic_ios(int this, int a2); int __fastcall std::ios::basic_ios(int a1); BOOL __thiscall std::ios::basic_ios(int this, int a2); int __fastcall std::ios::basic_ios(int a1); void __fastcall std::ios::~ios(_DWORD *a1); -void __fastcall std::ios::~ios(int a1); -void __fastcall std::ios::~ios(int a1); -int __thiscall std::wios::exceptions(_DWORD *this, int a2); int __thiscall std::wios::_M_setstate(_DWORD *this, int a2); void *__thiscall std::wios::_M_cache_locale(_DWORD *this, int a2); -int __thiscall std::wios::tie(_DWORD *this, int a2); int __thiscall std::wios::fill(int this, __int16 a2); BOOL __thiscall std::wios::init(int this, int a2); int __thiscall std::wios::move(int this, std::ios_base *a2); @@ -4378,72 +3467,48 @@ int __thiscall std::wios::clear(_DWORD *this, int a2); volatile signed __int32 **__thiscall std::wios::imbue(volatile signed __int32 **this, volatile signed __int32 **a2, volatile signed __int32 **a3); int __thiscall std::wios::rdbuf(_DWORD *this, int a2); int __thiscall std::wios::copyfmt(int this, _DWORD *a2); -int __thiscall std::wios::setstate(_DWORD *this, int a2); -int __thiscall std::wios::set_rdbuf(_DWORD *this, int a2); BOOL __thiscall std::wios::basic_ios(int this, int a2); int __fastcall std::wios::basic_ios(int a1); BOOL __thiscall std::wios::basic_ios(int this, int a2); int __fastcall std::wios::basic_ios(int a1); void __fastcall std::wios::~wios(_DWORD *a1); -void __fastcall std::wios::~wios(int a1); -void __fastcall std::wios::~wios(int a1); void __fastcall std::exception::~exception(void *a1); void __cdecl std::exception::~exception(std::exception *__hidden this); // idb -BOOL __thiscall std::money_get>::money_get(_DWORD *this, int a2); -BOOL __thiscall std::money_get>::money_get(_DWORD *this, int a2); void __fastcall std::money_get>::~money_get(_DWORD *a1); -void __cdecl std::money_get>::~money_get(std::locale::facet *a1); -void __cdecl std::money_get>::~money_get(std::locale::facet *a1); -BOOL __thiscall std::money_get>::money_get(_DWORD *this, int a2); -BOOL __thiscall std::money_get>::money_get(_DWORD *this, int a2); void __fastcall std::money_get>::~money_get(_DWORD *a1); -void __cdecl std::money_get>::~money_get(std::locale::facet *a1); -void __cdecl std::money_get>::~money_get(std::locale::facet *a1); -BOOL __thiscall std::money_put>::money_put(_DWORD *this, int a2); -BOOL __thiscall std::money_put>::money_put(_DWORD *this, int a2); void __fastcall std::money_put>::~money_put(_DWORD *a1); -void __cdecl std::money_put>::~money_put(std::locale::facet *a1); -void __cdecl std::money_put>::~money_put(std::locale::facet *a1); -BOOL __thiscall std::money_put>::money_put(_DWORD *this, int a2); -BOOL __thiscall std::money_put>::money_put(_DWORD *this, int a2); void __fastcall std::money_put>::~money_put(_DWORD *a1); -void __cdecl std::money_put>::~money_put(std::locale::facet *a1); -void __cdecl std::money_put>::~money_put(std::locale::facet *a1); void __fastcall std::type_info::~type_info(void *a1); void __cdecl std::type_info::~type_info(std::type_info *__hidden this); // idb void __cdecl std::__pop_heap<__gnu_cxx::__normal_iterator *,std::vector>>,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>(_DWORD *a1, int a2, _DWORD *a3, unsigned __int8 (__cdecl **a4)(int, int)); void __noreturn std::unexpected(void); // idb void __cdecl std::__make_heap<__gnu_cxx::__normal_iterator *,std::vector>>,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>(int a1, int a2, unsigned __int8 (__cdecl **a3)(int, int)); void __cdecl std::__adjust_heap<__gnu_cxx::__normal_iterator *,std::vector>>,int,std::pair,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>(int a1, int a2, int a3, _DWORD *a4, unsigned __int8 (__cdecl *a5)(int, int)); -int __cdecl std::__int_to_char(_BYTE *a1, unsigned int a2, int a3, __int16 a4, char a5); -int __cdecl std::__int_to_char(_BYTE *a1, UDItype n, int a3, __int16 a4, char a5); +_BYTE *__cdecl std::__int_to_char(_BYTE *a1, unsigned int a2, int a3, __int16 a4, char a5); +_BYTE *__cdecl std::__int_to_char(_BYTE *a1, UDItype n, int a3, __int16 a4, char a5); int __cdecl std::__int_to_char(_WORD *a1, unsigned int a2, int a3, __int16 a4, char a5); int __cdecl std::__int_to_char(_WORD *a1, UDItype n, int a3, __int16 a4, char a5); void (*std::get_terminate(void))(void); -__int32 __cdecl std::set_terminate(void (*a1)(void)); _BYTE *__cdecl std::__add_grouping(_BYTE *a1, char a2, char *a3, int a4, _BYTE *a5, _BYTE *a6); _WORD *__cdecl std::__add_grouping(_WORD *a1, __int16 a2, char *a3, int a4, _WORD *a5, _WORD *a6); void __cdecl std::__convert_to_v(char *String, double *a2, _DWORD *a3); void __cdecl std::__convert_to_v(char *String, long double *a2, _DWORD *a3); void __cdecl std::__convert_to_v(char *String, float *a2, _DWORD *a3); void (*std::get_unexpected(void))(void); -__int32 __cdecl std::set_unexpected(void (*a1)(void)); int std::get_new_handler(void); -__int32 __cdecl std::set_new_handler(void (*a1)(void)); int std::__convert_from_v(int *const *a1, char *Buffer, size_t BufferCount, char *Format, ...); void __cdecl std::__insertion_sort<__gnu_cxx::__normal_iterator *,std::vector>>,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>(char *a1, char *a2, int (__cdecl *a3)(void **, char *)); -int __cdecl std::__introsort_loop<__gnu_cxx::__normal_iterator *,std::vector>>,int,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>(_DWORD *a1, int a2, int a3, unsigned __int8 (__cdecl *a4)(int, int)); +int __cdecl std::__introsort_loop<__gnu_cxx::__normal_iterator *,std::vector>>,int,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>(char *a1, char *a2, int a3, unsigned __int8 (__cdecl *a4)(int, int)); std::ostream::sentry *__cdecl std::__ostream_insert>(std::ostream::sentry *a1, int a2, int a3); int *__cdecl std::__ostream_insert>(int *a1, int a2, int a3); int __cdecl std::__copy_streambufs>(_DWORD *a1, _DWORD *a2); int __cdecl std::__copy_streambufs>(_DWORD *a1, _DWORD *a2); int __cdecl std::__verify_grouping(char *a1, unsigned int a2, int a3); // idb int __cdecl std::__verify_grouping(char *a1, unsigned int a2, const char **a3); -void (__cdecl ***std::iostream_category(void))(_anonymous_namespace_::io_error_category *__hidden this); -int __cdecl std::_Rb_tree_decrement(_DWORD *a1); -int __cdecl std::_Rb_tree_decrement(_DWORD *a1); +void (__cdecl ***std::iostream_category(void))(_anonymous_namespace_::io_error_category *__hidden); +int __cdecl std::_Rb_tree_decrement(_DWORD *); int __cdecl std::_Rb_tree_increment(_DWORD); // weak -int __cdecl std::_Rb_tree_increment(int a1); +int __cdecl std::_Rb_tree_increment(int); bool std::uncaught_exception(void); int std::uncaught_exceptions(void); int __cdecl std::_Rb_tree_black_count(_DWORD *a1, _DWORD *a2); @@ -4451,7 +3516,7 @@ int __cdecl std::_Rb_tree_rotate_left(int a1, _DWORD *a2); int __cdecl std::_Rb_tree_rotate_right(int a1, _DWORD *a2); int __cdecl std::__copy_streambufs_eof>(_DWORD *a1, _DWORD *a2, _BYTE *a3); int __cdecl std::__copy_streambufs_eof>(_DWORD *a1, _DWORD *a2, _BYTE *a3); -int __cdecl std::__destroy_ios_failure(int (__fastcall ***a1)(_DWORD)); +int __cdecl std::__destroy_ios_failure(int (__fastcall ***)(_DWORD)); int __cdecl std::__verify_grouping_impl(const char *a1, unsigned int a2, const char *a3, unsigned int a4); void __cdecl std::__construct_ios_failure(void *a1, char *a2); bool __cdecl std::__is_ios_failure_handler(const __cxxabiv1::__class_type_info *a1); @@ -4467,13 +3532,9 @@ _DWORD *__cdecl std::endl>(int *a1); std::ostream::sentry *__cdecl std::ends>(std::ostream::sentry *a1); int *__cdecl std::ends>(int *a1); void __cdecl std::sort<__gnu_cxx::__normal_iterator *,std::vector>>,bool (*)(std::pair const&,std::pair const&)>(char *a1, char *a2, unsigned __int8 (__cdecl *a3)(int, int)); -_DWORD *__cdecl std::flush>(_DWORD *a1); -_DWORD *__cdecl std::flush>(_DWORD *a1); std::istream::sentry *__cdecl std::getline,std::allocator>(std::istream::sentry *a1, _DWORD *a2); -std::istream::sentry *__cdecl std::getline,std::allocator>(std::istream::sentry *a1, _DWORD *a2, unsigned __int8 a3); +std::istream::sentry *__cdecl std::getline,std::allocator>(std::istream::sentry *a1, _DWORD *a2, char a3); _DWORD *__cdecl std::getline,std::allocator>(_DWORD *a1, int a2, wchar_t a3); -int __cdecl std::setfill(unsigned __int8 a1); -int __cdecl std::setfill(unsigned __int16 a1); int __cdecl std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>(int a1, int a2, int a3); int __cdecl std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>(int a1, int a2, char **a3); int __cdecl std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>(int a1, int a2, int a3); @@ -4562,7 +3623,6 @@ void *__cdecl std::use_facet> void *__cdecl std::use_facet>>(int a1); void *__cdecl std::use_facet>>(int a1); void *__cdecl std::use_facet>>(int a1); -// int __usercall std::local_Rb_tree_decrement@(_DWORD *a1@); bool __cdecl std::operator==(int a1, int a2); bool __cdecl std::operator==(char *a1, int a2); bool __cdecl std::operator==(int a1, char *a2); @@ -4573,20 +3633,12 @@ std::ostream::sentry *__cdecl std::operator<<>(std::ostre std::ostream::sentry *__cdecl std::operator<<>(std::ostream::sentry *a1, char a2); std::ostream::sentry *__cdecl std::operator<<>(std::ostream::sentry *a1, char a2); _DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); _DWORD *__cdecl std::operator<<>(_DWORD *a1, char a2); std::ostream::sentry *__cdecl std::operator<<(std::ostream::sentry *a1, int *a2); int *__cdecl std::operator<<>(int *a1, wchar_t *String); int *__cdecl std::operator<<>(int *a1, char *Str); int *__cdecl std::operator<<>(int *a1, __int16 a2); _DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator<<>(_DWORD *a1, int a2); _DWORD *__cdecl std::operator<<>(_DWORD *a1, __int16 a2); int *__cdecl std::operator<<>(int *a1, char a2); unsigned int __cdecl std::operator<(int a1, int a2); @@ -4594,8 +3646,8 @@ bool __cdecl std::operator<(int a1, int a2); int __cdecl std::operator!=(char *a1, int a2); // idb int __cdecl std::operator!=(int a1, char *a2); // idb int __cdecl std::operator!=(int a1, int a2); -_DWORD *__cdecl std::operator+(_DWORD *a1, _DWORD *a2, unsigned int *a3); -_DWORD *__cdecl std::operator+(_DWORD *a1, char *a2, unsigned int *a3); +_DWORD *__cdecl std::operator+(_DWORD *a1, _DWORD *a2, unsigned int **a3); +_DWORD *__cdecl std::operator+(_DWORD *a1, char *a2, unsigned int **a3); int __cdecl std::operator+(int a1, char *a2, int a3); _DWORD *__cdecl std::operator+(_DWORD *a1, int a2, char *a3); _DWORD *__cdecl std::operator+(_DWORD *a1, int a2, int a3); @@ -4612,52 +3664,36 @@ void **__cdecl std::operator+(void **a1, wchar_t a2, const wchar_t **a3 std::istream::sentry *__cdecl std::operator>>>(std::istream::sentry *a1, char *a2); std::istream::sentry *__cdecl std::operator>>>(std::istream::sentry *a1, _BYTE *a2); _DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); _DWORD *__cdecl std::operator>>>(_DWORD *a1, char a2); std::istream::sentry *__cdecl std::operator>>(std::istream::sentry *a1, _DWORD *a2); int *__cdecl std::operator>>>(int *a1, _WORD *a2); _DWORD *__cdecl std::operator>>>(_DWORD *a1, _WORD *a2); _DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); -_DWORD *__cdecl std::operator>>>(_DWORD *a1, int a2); _DWORD *__cdecl std::operator>>>(_DWORD *a1, __int16 a2); void __fastcall `non-virtual thunk to'std::iostream::~iostream(int a1); -void __fastcall `non-virtual thunk to'std::iostream::~iostream(_DWORD *a1); void __fastcall `non-virtual thunk to'std::fstream::~fstream(int a1); void __fastcall `non-virtual thunk to'std::fstream::~fstream(int a1); void __fastcall `non-virtual thunk to'std::wfstream::~wfstream(int a1); void __fastcall `non-virtual thunk to'std::wfstream::~wfstream(int a1); void __fastcall `non-virtual thunk to'std::wiostream::~basic_iostream(int a1); -void __fastcall `non-virtual thunk to'std::wiostream::~basic_iostream(_DWORD *a1); void __fastcall `non-virtual thunk to'std::basic_stringstream,std::allocator>::~basic_stringstream(int a1); void __fastcall `non-virtual thunk to'std::basic_stringstream,std::allocator>::~basic_stringstream(int a1); void __fastcall `non-virtual thunk to'std::basic_stringstream,std::allocator>::~basic_stringstream(int a1); void __fastcall `non-virtual thunk to'std::basic_stringstream,std::allocator>::~basic_stringstream(int a1); void __fastcall `virtual thunk to'std::iostream::~iostream(_DWORD *a1); -void __fastcall `virtual thunk to'std::iostream::~iostream(_DWORD *a1); void __fastcall `virtual thunk to'std::istream::~istream(_DWORD *a1); -void __fastcall `virtual thunk to'std::istream::~istream(_DWORD *a1); -void __fastcall `virtual thunk to'std::ostream::~ostream(_DWORD *a1); void __fastcall `virtual thunk to'std::ostream::~ostream(_DWORD *a1); void __fastcall `virtual thunk to'std::fstream::~fstream(_DWORD *a1); void __fastcall `virtual thunk to'std::fstream::~fstream(_DWORD *a1); void __fastcall `virtual thunk to'std::wfstream::~wfstream(_DWORD *a1); void __fastcall `virtual thunk to'std::wfstream::~wfstream(_DWORD *a1); void __fastcall `virtual thunk to'std::wistream::~wistream(_DWORD *a1); -void __fastcall `virtual thunk to'std::wistream::~wistream(_DWORD *a1); -void __fastcall `virtual thunk to'std::wostream::~wostream(_DWORD *a1); void __fastcall `virtual thunk to'std::wostream::~wostream(_DWORD *a1); void __fastcall `virtual thunk to'std::ifstream::~ifstream(_DWORD *a1); void __fastcall `virtual thunk to'std::ifstream::~ifstream(_DWORD *a1); void __fastcall `virtual thunk to'std::wifstream::~wifstream(_DWORD *a1); void __fastcall `virtual thunk to'std::wifstream::~wifstream(_DWORD *a1); void __fastcall `virtual thunk to'std::wiostream::~basic_iostream(_DWORD *a1); -void __fastcall `virtual thunk to'std::wiostream::~basic_iostream(_DWORD *a1); void __fastcall `virtual thunk to'std::ofstream::~ofstream(_DWORD *a1); void __fastcall `virtual thunk to'std::ofstream::~ofstream(_DWORD *a1); void __fastcall `virtual thunk to'std::wofstream::~wofstream(_DWORD *a1); @@ -4708,15 +3744,15 @@ void __cdecl __tcf_0_5(); // idb void __cdecl __tcf_0_6(); // idb void __cdecl __tcf_0_7(); // idb void __cdecl __tcf_0_8(); // idb -void __cdecl __tcf_0_9(std::_V2::error_category *a1); +void __cdecl __tcf_0_9(std::_V2::error_category *); void __cdecl __tcf_0_10(); // idb void __cdecl __tcf_1_5(); // idb int __cdecl main(int argc, const char **argv, const char **envp); int _GLOBAL__sub_I_sCliVersion(); int _GLOBAL__sub_I__ZN5night8NSStreamC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_j(); -unsigned int __thiscall std::string::basic_string(void **this, char *a2); +int __thiscall std::string::basic_string(void **this, char *a2); int _GLOBAL__sub_I__ZN5night9sourcemap21gen_sourcemap_contentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt3mapIS6_jSt4lessIS6_ESaISt4pairIS7_jEEES9_IjS6_SA_IjESaISC_IKjS6_EEERSt6vectorINS_12ns_sourcemapESaISM_EEiRS6_PS6_(); -unsigned int __thiscall std::string::basic_string(void **this, char *a2); +int __thiscall std::string::basic_string(void **this, char *a2); int _GLOBAL__sub_I__ZN5night3str12path_combineERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RS6_(); int _GLOBAL__sub_I__ZN4WXML8Compiler9GetFuncIdERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS7_ESaISt4pairIKS7_iEEERSB_(); int _GLOBAL__sub_I__ZN4WXML6DOMLib7WXMLDom12componentCntE(); @@ -4749,8 +3785,6 @@ void __cdecl __noreturn std::locale::global(struct type_info *lptinfo, void (__c // void __usercall __noreturn std::locale::name(int a1@, void **a2@, int a3@, _Unwind_Exception *a4@); void __thiscall std::wstring::_Rep::_M_dispose(volatile signed __int32 *this, int a2); void __thiscall std::string::_Rep::_M_dispose(volatile signed __int32 *this, int a2); -void _GLOBAL__sub_I__ZNSt12ctype_bynameIcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj(); -void _GLOBAL__sub_I__ZNSt12ctype_bynameIwEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj(); void __noreturn std::wfilebuf::_M_allocate_internal_buffer(void); void __noreturn std::__throw_bad_exception(void); // idb void __noreturn std::__throw_bad_alloc(void); // idb @@ -4768,8 +3802,6 @@ void __cdecl __noreturn std::__throw_underflow_error(std::underflow_error *a1); void __noreturn std::__throw_bad_function_call(void); // idb void __noreturn std::ios_base::_M_grow_words(void); int __stdcall std::ios_base::_M_call_callbacks(_DWORD); // weak -void _GLOBAL__sub_I__ZNSt12ctype_bynameIcEC2ERKSsj(); -void _GLOBAL__sub_I__ZNSt12ctype_bynameIwEC2ERKSsj(); void __noreturn __cxa_bad_cast(void); void __noreturn __cxa_bad_typeid(void); void __noreturn __cxa_throw_bad_array_new_length(void); @@ -4790,7 +3822,7 @@ void __cdecl __noreturn std::__throw_system_error(int a1); // idb int _GLOBAL__sub_I__ZSt20__throw_system_errori(); int __stdcall std::istream::ignore(_DWORD); // weak int __stdcall std::wistream::ignore(_DWORD); // weak -void __cdecl __noreturn d_type_cold(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, int a11); +void __cdecl __noreturn d_type_cold(int, int, int, int, int, int, int, int, int, int, int); void __cdecl __noreturn base_of_encoded_value_cold(); void __cdecl __noreturn uw_frame_state_for_cold(); void __cdecl __noreturn uw_install_context_1_cold(); @@ -4814,12 +3846,9 @@ void __cdecl __noreturn __emutls_get_address_cold(); //------------------------------------------------------------------------- // Data declarations -_UNKNOWN loc_460000; // weak -_UNKNOWN loc_49FFFE; // weak char byte_50001F = '\x90'; // weak func_ptr __CTOR_LIST__[] = { (func_ptr)0xFFFFFFFF }; // idb int (__cdecl *_data_start__)(_DWORD) = NULL; // weak -char *sCliVersion = "20230804"; // weak int WXML::RPX::acceptNum(char const*,int &)::canAccept[266] = { 65536, @@ -5691,46 +4720,6 @@ int once_22341 = 0; // weak LONG dword_5150F0 = -1; // idb int once_21263 = 0; // weak LONG dword_5150F8 = -1; // idb -char `guard variable for'std::moneypunct::id = '\0'; // weak -char `guard variable for'std::moneypunct::id = '\0'; // weak -char `guard variable for'std::moneypunct::id = '\0'; // weak -char `guard variable for'std::moneypunct::id = '\0'; // weak -char `guard variable for'std::__timepunct::id = '\0'; // weak -char `guard variable for'std::__timepunct::id = '\0'; // weak -char `guard variable for'std::moneypunct::id = '\0'; // weak -char `guard variable for'std::moneypunct::id = '\0'; // weak -char `guard variable for'std::moneypunct::id = '\0'; // weak -char `guard variable for'std::moneypunct::id = '\0'; // weak -char `guard variable for'std::collate::id = '\0'; // weak -char `guard variable for'std::collate::id = '\0'; // weak -char `guard variable for'std::messages::id = '\0'; // weak -char `guard variable for'std::messages::id = '\0'; // weak -char `guard variable for'std::numpunct::id = '\0'; // weak -char `guard variable for'std::numpunct::id = '\0'; // weak -char `guard variable for'std::time_get>::id = '\0'; // weak -char `guard variable for'std::time_get>::id = '\0'; // weak -char `guard variable for'std::money_get>::id = '\0'; // weak -char `guard variable for'std::money_get>::id = '\0'; // weak -char `guard variable for'std::money_put>::id = '\0'; // weak -char `guard variable for'std::money_put>::id = '\0'; // weak -char `guard variable for'std::collate::id = '\0'; // weak -char `guard variable for'std::collate::id = '\0'; // weak -char `guard variable for'std::num_get>::id = '\0'; // weak -char `guard variable for'std::num_get>::id = '\0'; // weak -char `guard variable for'std::num_put>::id = '\0'; // weak -char `guard variable for'std::num_put>::id = '\0'; // weak -char `guard variable for'std::messages::id = '\0'; // weak -char `guard variable for'std::messages::id = '\0'; // weak -char `guard variable for'std::numpunct::id = '\0'; // weak -char `guard variable for'std::numpunct::id = '\0'; // weak -char `guard variable for'std::time_get>::id = '\0'; // weak -char `guard variable for'std::time_get>::id = '\0'; // weak -char `guard variable for'std::time_put>::id = '\0'; // weak -char `guard variable for'std::time_put>::id = '\0'; // weak -char `guard variable for'std::money_get>::id = '\0'; // weak -char `guard variable for'std::money_get>::id = '\0'; // weak -char `guard variable for'std::money_put>::id = '\0'; // weak -char `guard variable for'std::money_put>::id = '\0'; // weak __guard `guard variable for'`anonymous namespace'::get_locale_mutex(void)::locale_mutex = 0; // idb __guard `guard variable for'`anonymous namespace'::__io_category_instance(void)::__ec = 0; // idb __guard `guard variable for'`anonymous namespace'::get_locale_cache_mutex(void)::locale_cache_mutex = 0; // idb @@ -5771,7 +4760,6 @@ _UNKNOWN `anonymous namespace'::money_put_w; // weak int dword_51530C = 0; // weak _DWORD `anonymous namespace'::timepunct_c[5] = { 0, 0, 0, 0, 0 }; // weak _DWORD `anonymous namespace'::timepunct_w[5] = { 0, 0, 0, 0, 0 }; // weak -int `anonymous namespace'::__new_handler = 0; // weak _DWORD `anonymous namespace'::c_locale_impl[5] = { 0, 0, 0, 0, 0 }; // weak _UNKNOWN `anonymous namespace'::moneypunct_cf; // weak int dword_515354 = 0; // weak @@ -6328,7 +5316,6 @@ int dword_515F54 = 0; // weak _UNKNOWN `anonymous namespace'::num_put_w; // weak int dword_515F5C = 0; // weak __gthread_recursive_mutex_t *`anonymous namespace'::static_mutex = NULL; // idb -void (__cdecl **`anonymous namespace'::system_category_instance[2])(_anonymous_namespace_::system_error_category *__hidden this) = { &off_5377D4, &off_5377FC }; // weak void (__cdecl **`anonymous namespace'::generic_category_instance)(_anonymous_namespace_::generic_error_category *__hidden this) = &off_5377FC; // weak _UNKNOWN __gnu_internal::buf_cin_sync; // weak int dword_515F84 = 0; // weak @@ -7239,7 +6226,6 @@ void *std::__timepunct_cache::_S_timezones[2] = { &off_530734, &off_530 int std::ctype::id = 0; // weak int std::ctype::id = 0; // weak int std::locale::_S_classic = 0; // weak -int std::locale::id::_S_refcount = 0; // weak int std::locale::facet::_S_c_locale = 0; // weak __gthread_once_t std::locale::facet::_S_once = { 0, -1 }; // idb __gthread_once_t std::locale::_S_once = { 0, -1 }; // idb @@ -7550,7 +6536,6 @@ int dword_516B8C = 0; // weak int dword_516B90 = 0; // weak char byte_516B94 = '\0'; // weak char __gnu_cxx::__verbose_terminate_handler(void)::terminating = '\0'; // weak -int std::ios_base::xalloc(void)::_S_top = 0; // weak const char byte_5173B0 = '\0'; // idb void *off_517814 = &unk_5F766E; // weak void *off_517818 = &unk_5F746E; // weak @@ -7618,7 +6603,6 @@ char *WXML::DOMLib::szWXIFControlAttrs[4] = { "wx-if", "wx:if", "wx:elif", "wx:e int *`typeinfo for'WXML::Compiler::CalculateOutputChunkKeys(std::vector const&,std::string const&,std::map> const&,std::map> const&,std::map>&)::{lambda(unsigned int,unsigned int)#1} = &off_537714; // weak const char off_52E6CD[] = { '\'', '\0', '[', '\0' }; // idb const char off_52E79F[] = { '=', '[', ']', '\0' }; // idb -_UNKNOWN unk_52E8FC; // weak char *WXML::EXPRLib::Tokenizer::GetTokens(std::vector &,std::string &)::KEYWORDS[4] = { "true", "false", "undefined", "null" }; // weak _UNKNOWN unk_52F13C; // weak _UNKNOWN unk_52F13E; // weak @@ -7785,10 +6769,35 @@ int CSWTCH_107[6] = { 4, 1, 16, 2, 8, 0 }; // weak char *const CSWTCH_20 = "a"; // idb int std::money_base::_S_default_pattern = 67109634; // weak _WORD std::`anonymous namespace'::utf16le_bom[2] = { -257, 0 }; // weak -__int16 std::`anonymous namespace'::utf8_bom = -17425; // weak _WORD std::`anonymous namespace'::utf16_bom[2] = { -2, 0 }; // weak char **std::locale::_S_categories = &__gnu_cxx::category_names; // weak -int *std::locale::_S_twinned_facets = &std::numpunct::id; // weak +int std::locale::_S_twinned_facets[24] = +{ + 5334568, + 5334472, + 5334528, + 5334456, + 5334576, + 5334480, + 5334592, + 5334488, + 5334600, + 5334496, + 5334060, + 5334440, + 5334064, + 5334444, + 5334560, + 5334464, + 5334572, + 5334476, + 5334532, + 5334460, + 5334580, + 5334484, + 5334596, + 5334492 +}; // weak int *const std::locale::facet::_S_c_name = (int *const)0x43; // idb _UNKNOWN unk_533844; // weak _UNKNOWN unk_533858; // weak @@ -7961,8 +6970,6 @@ int (*off_537FE8)() = &std::messages_byname::~messages_byname; // weak int (*off_538004)() = &std::messages_byname::~messages_byname; // weak int (*off_538020)() = &std::numpunct_byname::~numpunct_byname; // weak int (*off_538044)() = &std::numpunct_byname::~numpunct_byname; // weak -int (*off_538068)() = &std::time_get_byname>::~time_get_byname; // weak -int (*off_538094)() = &std::time_get_byname>::~time_get_byname; // weak int (*off_5380C0)() = &std::moneypunct_byname::~moneypunct_byname; // weak int (*off_5380F4)() = &std::moneypunct_byname::~moneypunct_byname; // weak int (*off_538128)() = &std::moneypunct_byname::~moneypunct_byname; // weak @@ -8152,10 +7159,6 @@ int (*off_538AC8)() = &std::messages_byname::~messages_byname; // weak int (*off_538AE4)() = &std::messages_byname::~messages_byname; // weak int (*off_538B00)() = &std::numpunct_byname::~numpunct_byname; // weak int (*off_538B24)() = &std::numpunct_byname::~numpunct_byname; // weak -int (*off_538B48)() = &std::time_get_byname>::~time_get_byname; // weak -int (*off_538B70)() = &std::time_get_byname>::~time_get_byname; // weak -int (*off_538B98)() = &std::time_put_byname>::~time_put_byname; // weak -int (*off_538BAC)() = &std::time_put_byname>::~time_put_byname; // weak void (__cdecl *off_538BC0)(std::underflow_error *__hidden this) = &std::underflow_error::~underflow_error; // weak int (*off_538BD4)() = &std::__numpunct_cache::~__numpunct_cache; // weak int (*off_538BE4)() = &std::__numpunct_cache::~__numpunct_cache; // weak @@ -8575,77 +7578,12 @@ int dword_5911E4; // weak int dword_59129C; // weak int dword_5915E8; // weak int dword_5A1AEC; // weak -_UNKNOWN unk_620001; // weak char WXML::DOMLib::Machine::InitTransitTable(void)::bInited; // weak int WXML::EXPRLib::Tokenizer::TT[]; // weak int dword_689DA0[]; // weak -int dword_689DA4[33]; // weak -int dword_689E28; // weak -int dword_689E2C; // weak -int dword_689E3C; // weak -int dword_689E40; // weak -int dword_689E5C; // weak -int dword_689E60; // weak -int dword_689E94; // weak -int dword_689E98; // weak -int dword_689E9C; // weak -int dword_689F94; // weak -int dword_68A1A4; // weak -int dword_68A29C; // weak -int dword_68A5A8; // weak -int dword_68A5AC[46]; // weak -int dword_68A664; // weak -int dword_68A9AC; // weak -int dword_68AA68; // weak -int dword_68ADB0; // weak -int dword_68B1E0; // weak -int dword_68B240; // weak -int dword_68B328; // weak -int dword_68B5B8; // weak -int dword_68B5E4; // weak -int dword_68B9BC; // weak -int dword_68B9E8; // weak -int dword_68BA5C; // weak -int dword_68BB30; // weak -int dword_68BDC0; // weak -int dword_68BDEC; // weak -int dword_68C1C4; // weak -int dword_68C1C8[46]; // weak -int dword_68C280; // weak -int dword_68C5C8; // weak -int dword_68C5CC[256]; // weak -int dword_68C9CC; // weak -int dword_68CAC4; // weak -int dword_68CDD0; // weak -int dword_68CDD4[256]; // weak -int dword_68D1D4; // weak -int dword_68D270; // weak -int dword_68D5D8; // weak -int dword_68D7CC; // weak -int dword_68D9DC; // weak -int dword_68DAD0; // weak -int dword_68DAD4; // weak -int dword_68DDE0; // weak -int dword_68DED8; // weak -int dword_68DEDC; // weak -int dword_68E1E4; // weak -int dword_68E2DC; // weak -int dword_68E5E8; // weak -int dword_68E6E0; // weak -int dword_68E9EC; // weak -int dword_68EAE4; // weak -int dword_68EDF0; // weak -int dword_68EE9C; // weak -int dword_68F1F4; // weak -int dword_68F2A0; // weak -int dword_68F5F8; // weak -int dword_68F6A4; // weak -int dword_68F6B8; // weak -int dword_68F9FC; // weak -char WXML::EXPRLib::Tokenizer::InitTransitTable(void)::bInited; // weak int _CRT_fmode; // idb int __cpu_features; // weak -int dword_78A9D0; // weak +_UNKNOWN dword_78A9D0; // weak int _CRT_MT; // weak int dword_78A9E8; // weak int dword_78A9EC; // weak @@ -9196,12 +8134,12 @@ _DWORD *__usercall std::__relocate_a_1 0xF ) { - *this = std::string::_M_create(v6, 0); + *this = std::string::_M_create((unsigned int *)v6, 0); this[2] = (void *)v6[0]; } std::string::_S_copy_chars(*this, (unsigned __int8 *)a2, (size_t)&a2[v3 - 1]); result = v6[0]; - v5 = *this; + v5 = (int)*this; this[1] = (void *)v6[0]; - v5[result] = 0; + *(_BYTE *)(v5 + result) = 0; return result; } // 4016F6: using guessed type unsigned int var_1C[7]; @@ -9249,7 +8187,7 @@ int __cdecl Usage(int a1, const char **a2) // 515004: using guessed type char *sCliVersion; //----- (0040185E) -------------------------------------------------------- -int __cdecl ReadFile(char *FileName, unsigned int *a2) +int __cdecl ReadFile(char *FileName, unsigned int **a2) { int v2; // edi FILE *ptr; // ebx @@ -9307,8 +8245,8 @@ _DWORD *__cdecl Trim(_DWORD *a1, int a2) //----- (004019B7) -------------------------------------------------------- _DWORD *__cdecl GetNextArg(_DWORD *a1, int *a2, int a3) { - int v3; // eax - int v4; // ebx + unsigned int v3; // eax + unsigned int v4; // ebx void *v6[2]; // [esp+18h] [ebp-60h] BYREF char v7; // [esp+20h] [ebp-58h] BYREF void *v8[6]; // [esp+30h] [ebp-48h] BYREF @@ -9322,7 +8260,7 @@ _DWORD *__cdecl GetNextArg(_DWORD *a1, int *a2, int a3) if ( v3 == -1 ) { std::string::_M_assign((int)v6, (int)a2); - std::string::operator=((unsigned int *)a2, (char *)&byte_5173B0); + std::string::operator=((unsigned int **)a2, (char *)&byte_5173B0); } else { @@ -9377,7 +8315,7 @@ void __fastcall std::vector::~vector(void ***a1, int a2) int __cdecl Split(int a1, int *a2, int a3) { unsigned int v3; // edi - int v4; // ebx + unsigned int v4; // ebx void *v6[6]; // [esp+10h] [ebp-48h] BYREF void *v7[12]; // [esp+28h] [ebp-30h] BYREF @@ -10038,7 +8976,7 @@ int __cdecl WXML::Rewrite::GetToken(int a1, int a2) // 402509: variable 'v11' is possibly undefined //----- (0040259E) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *a2) +int __thiscall std::string::basic_string(void **this, char *a2) { size_t v3; // eax int v5; // [esp+8h] [ebp-10h] @@ -10053,7 +8991,7 @@ unsigned int __thiscall std::string::basic_string(void **this, char *a2) // 4025D4: variable 'v5' is possibly undefined //----- (004025E5) -------------------------------------------------------- -BOOL __cdecl WXML::Rewrite::RewriteRPX(int a1, unsigned int *a2, char *a3, char *a4) +BOOL __cdecl WXML::Rewrite::RewriteRPX(int a1, unsigned int **a2, char *a3, char *a4) { unsigned int i; // edi int v5; // ebx @@ -10117,7 +9055,7 @@ BOOL __cdecl WXML::Rewrite::RewriteRPX(int a1, unsigned int *a2, char *a3, char LABEL_15: v14 = std::string::append(v26, (int)v28); else - v14 = std::string::insert((unsigned int *)v28, 0, (int)v26); + v14 = std::string::insert((unsigned int **)v28, 0, (int)v26); std::string::basic_string(v30, v14); std::string::operator+=(a2, (int)v30); ++i; @@ -10136,12 +9074,12 @@ LABEL_15: } if ( v21 != v22 && v19 ) std::string::operator+=(a2, (int)(v22 - 24)); - v15 = a2[1]; + v15 = (unsigned int)a2[1]; if ( v15 == *(_DWORD *)(a1 + 4) ) { v16 = 0; if ( v15 ) - v16 = memcmp((const void *)*a2, *(const void **)a1, a2[1]) != 0; + v16 = memcmp(*a2, *(const void **)a1, (size_t)a2[1]) != 0; } else { @@ -10153,7 +9091,7 @@ LABEL_15: } //----- (004028A8) -------------------------------------------------------- -int __cdecl WXML::Rewrite::RewriteImg(int a1, unsigned int *a2, int *a3, int a4, int a5) +int __cdecl WXML::Rewrite::RewriteImg(int a1, unsigned int **a2, int *a3, int a4, int a5) { unsigned int v5; // edi int v6; // ebx @@ -10604,10 +9542,10 @@ int __usercall std::__relocate_a_1@( //----- (00402FD6) -------------------------------------------------------- int snprintf_constprop_0(char *Buffer, int a2, char *Format, ...) { - va_list va; // [esp+2Ch] [ebp+14h] BYREF + va_list ArgList; // [esp+2Ch] [ebp+14h] BYREF - va_start(va, Format); - return vsnprintf_2(Buffer, 0x400u, Format, va); + va_start(ArgList, Format); + return vsnprintf_2(Buffer, 0x400u, Format, ArgList); } //----- (00403000) -------------------------------------------------------- @@ -10617,26 +9555,26 @@ int snprintf_constprop_0(char *Buffer, int a2, char *Format, ...) #error "4030B7: call analysis failed (funcsize=31)" //----- (004030D8) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *a2) +int __thiscall std::string::basic_string(void **this, char *a2) { unsigned int v3; // kr04_4 - unsigned int result; // eax - _BYTE *v5; // edx - unsigned int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF + int result; // eax + int v5; // edx + int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF *this = this + 2; v3 = strlen(a2) + 1; v6[0] = v3 - 1; if ( v3 - 1 > 0xF ) { - *this = std::string::_M_create(v6, 0); + *this = std::string::_M_create((unsigned int *)v6, 0); this[2] = (void *)v6[0]; } std::string::_S_copy_chars(*this, (unsigned __int8 *)a2, (size_t)&a2[v3 - 1]); result = v6[0]; - v5 = *this; + v5 = (int)*this; this[1] = (void *)v6[0]; - v5[result] = 0; + *(_BYTE *)(v5 + result) = 0; return result; } // 4030D8: using guessed type unsigned int var_1C[7]; @@ -10652,10 +9590,10 @@ void __fastcall std::_Vector_base::~_Vector_base(void * //----- (00403162) -------------------------------------------------------- int __thiscall night::NSStream::NSStream(_DWORD *this, int a2, int a3, int a4) { - int v4; // edi + _DWORD *v4; // edi int result; // eax - v4 = (int)(this + 6); + v4 = this + 6; *this = this + 2; this[6] = this + 8; this[1] = 0; @@ -10663,7 +9601,7 @@ int __thiscall night::NSStream::NSStream(_DWORD *this, int a2, int a3, int a4) this[7] = 0; *((_BYTE *)this + 32) = 0; std::string::_M_assign((int)this, a2); - std::string::_M_assign(v4, a3); + std::string::_M_assign((int)v4, a3); result = a4; this[12] = 0; this[13] = a4; @@ -11180,7 +10118,7 @@ _DWORD *__thiscall night::NSToken::read_string(night::NSStream **this, char a2, { bool v3; // di bool v5; // si - night::NSStream *v6; // ebx + void *v6; // ebx _DWORD *v7; // ebx int v9[3]; // [esp+24h] [ebp-54h] BYREF void *v10[2]; // [esp+30h] [ebp-48h] BYREF @@ -11244,11 +10182,11 @@ _DWORD *__thiscall night::NSToken::read_number(night::NSStream **this, int a2) { char v3; // di _DWORD *v4; // eax - night::NSStream *v5; // ebx + void *v5; // ebx _DWORD *v6; // ebx char v8; // [esp+1Fh] [ebp-79h] BYREF void *v9[6]; // [esp+20h] [ebp-78h] BYREF - _DWORD v10[6]; // [esp+38h] [ebp-60h] BYREF + int v10[6]; // [esp+38h] [ebp-60h] BYREF int v11[2]; // [esp+50h] [ebp-48h] BYREF char v12; // [esp+58h] [ebp-40h] BYREF int v13[12]; // [esp+68h] [ebp-30h] BYREF @@ -11265,7 +10203,7 @@ _DWORD *__thiscall night::NSToken::read_number(night::NSStream **this, int a2) { v11[0] = (int)&v12; std::string::_M_construct(v11, 1u, v3); - std::operator+(v13, "Unexpected token `", (unsigned int *)v11); + std::operator+(v13, "Unexpected token `", (unsigned int **)v11); v4 = std::string::append(v13, "`"); std::string::basic_string(v10, v4); std::string::_M_dispose((void **)v13); @@ -11350,11 +10288,11 @@ void __thiscall night::NSToken::push(int this, int a2) _DWORD *__thiscall night::NSToken::read_var(int this, int a2) { _DWORD *v3; // eax - int v4; // edi + unsigned int v4; // edi night::NSStream *v5; // ebx _DWORD *v6; // ebx _DWORD *v7; // eax - int v8; // edi + unsigned int v8; // edi night::NSStream *v9; // ebx void *v10; // eax _DWORD v12[3]; // [esp+24h] [ebp-84h] BYREF @@ -11421,6 +10359,7 @@ _DWORD *__thiscall night::NSToken::read_var(int this, int a2) } // 586AB0: using guessed type int night::NS_BUILTIN_TYPE[6]; // 586AC8: using guessed type int night::NS_BUILTIN_KW[6]; +// 586E40: using guessed type void *night::nsv_; //----- (00404532) -------------------------------------------------------- _DWORD *__fastcall night::NSToken::read_next(int a1) @@ -11432,8 +10371,8 @@ _DWORD *__fastcall night::NSToken::read_next(int a1) night::NSStream *v6; // ebx night::NSStream *v7; // ebx _DWORD *v8; // eax - int v10; // [esp+1Ch] [ebp-8Ch] - int v11; // [esp+1Ch] [ebp-8Ch] + unsigned int v10; // [esp+1Ch] [ebp-8Ch] + unsigned int v11; // [esp+1Ch] [ebp-8Ch] _DWORD *v12; // [esp+1Ch] [ebp-8Ch] int v13[3]; // [esp+24h] [ebp-84h] BYREF void *v14[6]; // [esp+30h] [ebp-78h] BYREF @@ -11483,7 +10422,7 @@ _DWORD *__fastcall night::NSToken::read_next(int a1) v12 = *(_DWORD **)(a1 + 4); v15[0] = (int)v16; std::string::_M_construct(v15, 1u, v4); - std::operator+(v17, "Unexpected token `", (unsigned int *)v15); + std::operator+(v17, "Unexpected token `", (unsigned int **)v15); v8 = std::string::append(v17, "`"); std::string::basic_string(v18, v8); night::NSStream::err(v12, (int)v18, 0, 0, 0); @@ -11715,7 +10654,7 @@ unsigned __int8 __thiscall night::NSASTParse::ignore_punc_pass_sem(int *this, in bool v8; // [esp+1Ch] [ebp-6Ch] _DWORD **v9; // [esp+1Ch] [ebp-6Ch] void *v10[6]; // [esp+28h] [ebp-60h] BYREF - _DWORD v11[6]; // [esp+40h] [ebp-48h] BYREF + int v11[6]; // [esp+40h] [ebp-48h] BYREF void *v12[12]; // [esp+58h] [ebp-30h] BYREF if ( night::NSASTParse::is_punctuation(this, a2) ) @@ -11756,6 +10695,7 @@ unsigned __int8 __thiscall night::NSASTParse::ignore_punc_pass_sem(int *this, in } return result; } +// 586E40: using guessed type void *night::nsv_; // 404BF4: using guessed type _DWORD var_48[6]; //----- (00404D80) -------------------------------------------------------- @@ -11770,7 +10710,7 @@ _DWORD *__thiscall night::NSASTParse::ignore_punc(int *this, int a2) bool v10; // [esp+1Ch] [ebp-6Ch] _DWORD **v11; // [esp+1Ch] [ebp-6Ch] void *v12[6]; // [esp+28h] [ebp-60h] BYREF - _DWORD v13[6]; // [esp+40h] [ebp-48h] BYREF + int v13[6]; // [esp+40h] [ebp-48h] BYREF void *v14[12]; // [esp+58h] [ebp-30h] BYREF v3 = night::NSASTParse::is_punctuation(this, a2); @@ -11810,6 +10750,7 @@ _DWORD *__thiscall night::NSASTParse::ignore_punc(int *this, int a2) } return night::NSToken::next(v4); } +// 586E40: using guessed type void *night::nsv_; // 404D80: using guessed type _DWORD var_48[6]; //----- (00404EEC) -------------------------------------------------------- @@ -11818,8 +10759,8 @@ _DWORD *__thiscall night::NSASTParse::ignore_buildin_kw(int *this, int a2) _DWORD *v3; // eax _DWORD **v4; // ebx _DWORD *v6; // eax - _DWORD v7[6]; // [esp+10h] [ebp-48h] BYREF - _DWORD v8[12]; // [esp+28h] [ebp-30h] BYREF + int v7[6]; // [esp+10h] [ebp-48h] BYREF + int v8[12]; // [esp+28h] [ebp-30h] BYREF v3 = night::NSASTParse::is_buildin_keywords(this, a2); v4 = (_DWORD **)this[7]; @@ -11841,8 +10782,8 @@ _DWORD *__thiscall night::NSASTParse::ignore_op(int *this, int a2) _DWORD *v3; // eax _DWORD **v4; // ebx _DWORD *v6; // eax - _DWORD v7[6]; // [esp+10h] [ebp-48h] BYREF - _DWORD v8[12]; // [esp+28h] [ebp-30h] BYREF + int v7[6]; // [esp+10h] [ebp-48h] BYREF + int v8[12]; // [esp+28h] [ebp-30h] BYREF v3 = night::NSASTParse::is_op(this, a2); v4 = (_DWORD **)this[7]; @@ -11874,229 +10815,223 @@ _DWORD *__fastcall night::NSASTParse::ast_trans_kw(int *a1) int v12; // ecx _DWORD *v13; // eax void *v14; // esi - void *v15; // eax - void *v16; // esi - night::NSASTParse *v17; // edx - void **v18; // esi - void *v19; // ebx + void *v15; // esi + void **v16; // esi + void *v17; // ebx + _DWORD *v18; // eax + _DWORD **v19; // edi _DWORD *v20; // eax _DWORD **v21; // edi _DWORD *v22; // eax - _DWORD **v23; // edi - _DWORD *v24; // eax - void *v25; // ebx - int v26; // ecx + void *v23; // ebx + int v24; // ecx + _DWORD *v25; // eax + int v26; // esi _DWORD *v27; // eax - int v28; // esi - _DWORD *v29; // eax - _DWORD **v30; // edi - _DWORD **v31; // edi + _DWORD **v28; // edi + _DWORD **v29; // edi + _DWORD *v30; // eax + _DWORD **v31; // esi _DWORD *v32; // eax - _DWORD **v33; // esi + void *v33; // ebx _DWORD *v34; // eax - void *v35; // ebx - _DWORD *v36; // eax - night::NSASTParse *v38; // [esp+0h] [ebp-88h] - char v39; // [esp+17h] [ebp-71h] - unsigned int v40; // [esp+18h] [ebp-70h] - int v41; // [esp+18h] [ebp-70h] - unsigned int v42; // [esp+1Ch] [ebp-6Ch] - void *v43; // [esp+1Ch] [ebp-6Ch] - _DWORD *v44; // [esp+1Ch] [ebp-6Ch] - int v45[6]; // [esp+28h] [ebp-60h] BYREF - void *v46[6]; // [esp+40h] [ebp-48h] BYREF - void *v47[12]; // [esp+58h] [ebp-30h] BYREF + char v36; // [esp+17h] [ebp-71h] + unsigned int v37; // [esp+18h] [ebp-70h] + int v38; // [esp+18h] [ebp-70h] + unsigned int v39; // [esp+1Ch] [ebp-6Ch] + void *v40; // [esp+1Ch] [ebp-6Ch] + _DWORD *v41; // [esp+1Ch] [ebp-6Ch] + int v42[6]; // [esp+28h] [ebp-60h] BYREF + void *v43[6]; // [esp+40h] [ebp-48h] BYREF + void *v44[12]; // [esp+58h] [ebp-30h] BYREF v2 = a1[7]; v3 = *(_DWORD *)(v2 + 4); - v40 = *(_DWORD *)(v3 + 52); - v42 = *(_DWORD *)(v3 + 56); + v37 = *(_DWORD *)(v3 + 52); + v39 = *(_DWORD *)(v3 + 56); v4 = night::NSToken::next(v2); - std::string::basic_string(v45, (int)(v4 + 15)); - if ( std::operator==("true", (int)v45) || std::operator==("false", (int)v45) ) + std::string::basic_string(v42, (int)(v4 + 15)); + if ( std::operator==("true", (int)v42) || std::operator==("false", (int)v42) ) { v5 = (void *)a1[6]; - std::string::basic_string(v47, (int)&night::NS_TYPE_BOOL); - v6 = night::NSGod::gen_son(v5, (int)v47); + std::string::basic_string(v44, (int)&night::NS_TYPE_BOOL); + v6 = night::NSGod::gen_son(v5, (int)v44); goto LABEL_31; } - if ( std::operator==("null", (int)v45) - || std::operator==("undefined", (int)v45) - || std::operator==((char *)off_51BF34, (int)v45) - || std::operator==("Infinity", (int)v45) ) + if ( std::operator==("null", (int)v42) + || std::operator==("undefined", (int)v42) + || std::operator==((char *)off_51BF34, (int)v42) + || std::operator==("Infinity", (int)v42) ) { LABEL_50: - v35 = (void *)a1[6]; - std::string::basic_string(v47, (int)&night::NS_TYPE_KW); - v11 = night::NSGod::gen_son(v35, (int)v47); - std::string::_M_dispose(v47); + v33 = (void *)a1[6]; + std::string::basic_string(v44, (int)&night::NS_TYPE_KW); + v11 = night::NSGod::gen_son(v33, (int)v44); + std::string::_M_dispose(v44); std::string::_M_assign((int)(v11 + 6), (int)(v4 + 6)); v11[12] = v4[12]; v11[13] = v4[13]; - std::string::_M_assign((int)(v11 + 15), (int)v45); + std::string::_M_assign((int)(v11 + 15), (int)v42); goto LABEL_51; } - if ( std::operator==("return", (int)v45) - || std::operator==("delete", (int)v45) - || std::operator==("void", (int)v45) ) + if ( std::operator==("return", (int)v42) + || std::operator==("delete", (int)v42) + || std::operator==("void", (int)v42) ) { - if ( !std::string::compare((int)v45, "return") && a1[8] <= 0 ) + if ( !std::string::compare((int)v42, "return") && a1[8] <= 0 ) { v7 = (_DWORD **)a1[7]; - std::operator+((int)v46, "Illegal ", (int)v45); - v8 = std::string::append(v46, " statement"); - std::string::basic_string(v47, v8); - night::NSToken::err(v7, (int)v47, v40, v42, 1); + std::operator+((int)v43, "Illegal ", (int)v42); + v8 = std::string::append(v43, " statement"); + std::string::basic_string(v44, v8); + night::NSToken::err(v7, (int)v44, v37, v39, 1); } - v43 = (void *)a1[6]; - std::string::basic_string(v47, (int)&night::NS_TYPE_VAR); - v44 = night::NSGod::gen_son(v43, (int)v47); - std::string::_M_dispose(v47); - std::string::_M_assign((int)(v44 + 15), (int)v45); - std::string::_M_assign((int)(v44 + 6), (int)(v4 + 6)); + v40 = (void *)a1[6]; + std::string::basic_string(v44, (int)&night::NS_TYPE_VAR); + v41 = night::NSGod::gen_son(v40, (int)v44); + std::string::_M_dispose(v44); + std::string::_M_assign((int)(v41 + 15), (int)v42); + std::string::_M_assign((int)(v41 + 6), (int)(v4 + 6)); v9 = (void *)a1[6]; - v44[12] = v4[12]; - v44[13] = v4[13]; - std::string::basic_string(v47, (int)&night::std_v_v_n); - v41 = night::NSGod::gen_girl(v9, (int)v47); - std::string::_M_dispose(v47); + v41[12] = v4[12]; + v41[13] = v4[13]; + std::string::basic_string(v44, (int)&night::std_v_v_n); + v38 = night::NSGod::gen_girl(v9, (int)v44); + std::string::_M_dispose(v44); v10 = (void *)a1[6]; - std::string::basic_string(v47, (int)&night::NS_TYPE_CALL); - v11 = night::NSGod::gen_son(v10, (int)v47); - std::string::_M_dispose(v47); + std::string::basic_string(v44, (int)&night::NS_TYPE_CALL); + v11 = night::NSGod::gen_son(v10, (int)v44); + std::string::_M_dispose(v44); v12 = a1[7]; - v11[55] = v44; - v11[56] = v41; + v11[55] = v41; + v11[56] = v38; v13 = night::NSToken::peek(v12); if ( v13 && std::string::find(v13 + 21, 10, 0) == (char *)-1 ) { v14 = (void *)a1[6]; - std::string::basic_string(v47, (int)&night::std_v_n); - v15 = (void *)night::NSGod::gen_girl(v14, (int)v47); - v38 = v17; - v46[0] = v15; - std::string::_M_dispose(v47); - v18 = (void **)v46[0]; - v47[0] = (void *)night::NSASTParse::ast_expression(v38); - std::vector::emplace_back(v18, v47); + std::string::basic_string(v44, (int)&night::std_v_n); + v43[0] = (void *)night::NSGod::gen_girl(v14, (int)v44); + std::string::_M_dispose(v44); + v16 = (void **)v43[0]; + v44[0] = night::NSASTParse::ast_expression(a1); + std::vector::emplace_back(v16, v44); } else { - v16 = (void *)a1[6]; - std::string::basic_string(v47, (int)&night::std_v_n); - v46[0] = (void *)night::NSGod::gen_girl(v16, (int)v47); - std::string::_M_dispose(v47); + v15 = (void *)a1[6]; + std::string::basic_string(v44, (int)&night::std_v_n); + v43[0] = (void *)night::NSGod::gen_girl(v15, (int)v44); + std::string::_M_dispose(v44); } - std::vector>>::push_back(v41, v46); + std::vector>>::push_back(v38, v43); goto LABEL_51; } - if ( std::operator==("typeof", (int)v45) ) + if ( std::operator==("typeof", (int)v42) ) { - v19 = (void *)a1[6]; - std::string::basic_string(v47, (int)&night::NS_TYPE_OP_SELF); - v11 = night::NSGod::gen_son(v19, (int)v47); - std::string::_M_dispose(v47); - std::string::basic_string(v47, (int)v45); - std::string::append(v47, (char *)asc_51BF80); - std::string::operator=(v11 + 39, v47); - std::string::_M_dispose(v47); - v20 = night::NSASTParse::ast_expression_no_binary(a1); - v11[48] = v20; - if ( !night::NSASTParse::is_exp((int)v20) ) + v17 = (void *)a1[6]; + std::string::basic_string(v44, (int)&night::NS_TYPE_OP_SELF); + v11 = night::NSGod::gen_son(v17, (int)v44); + std::string::_M_dispose(v44); + std::string::basic_string(v44, (int)v42); + std::string::append(v44, (char *)asc_51BF80); + std::string::operator=(v11 + 39, v44); + std::string::_M_dispose(v44); + v18 = night::NSASTParse::ast_expression_no_binary(a1); + v11[48] = v18; + if ( !night::NSASTParse::is_exp((int)v18) ) { - v21 = (_DWORD **)a1[7]; - std::operator+((int)v46, "Unexpected statement[", v11[48]); - v22 = std::string::append(v46, "]"); - std::string::basic_string(v47, v22); - night::NSToken::err(v21, (int)v47, v40, v42, 1); + v19 = (_DWORD **)a1[7]; + std::operator+((int)v43, "Unexpected statement[", v11[48]); + v20 = std::string::append(v43, "]"); + std::string::basic_string(v44, v20); + night::NSToken::err(v19, (int)v44, v37, v39, 1); } goto LABEL_51; } - if ( std::operator==("this", (int)v45) ) + if ( std::operator==("this", (int)v42) ) goto LABEL_30; - if ( !std::operator==("arguments", (int)v45) ) + if ( !std::operator==("arguments", (int)v42) ) { - if ( !std::operator==("break", (int)v45) && !std::operator==("continue", (int)v45) ) + if ( !std::operator==("break", (int)v42) && !std::operator==("continue", (int)v42) ) { - v30 = (_DWORD **)a1[7]; - std::operator+((int)v46, "Unexpected token `", (int)v45); - v36 = std::string::append(v46, "`"); - std::string::basic_string(v47, v36); - night::NSToken::err(v30, (int)v47, v40, v42, 1); + v28 = (_DWORD **)a1[7]; + std::operator+((int)v43, "Unexpected token `", (int)v42); + v34 = std::string::append(v43, "`"); + std::string::basic_string(v44, v34); + night::NSToken::err(v28, (int)v44, v37, v39, 1); } - if ( !std::string::compare((int)v45, "break") && a1[9] <= 0 - || !std::string::compare((int)v45, "continue") && a1[10] <= 0 ) + if ( !std::string::compare((int)v42, "break") && a1[9] <= 0 + || !std::string::compare((int)v42, "continue") && a1[10] <= 0 ) { - v31 = (_DWORD **)a1[7]; - std::operator+((int)v46, "Illegal ", (int)v45); - v32 = std::string::append(v46, " statement"); - std::string::basic_string(v47, v32); - night::NSToken::err(v31, (int)v47, v40, v42, 1); + v29 = (_DWORD **)a1[7]; + std::operator+((int)v43, "Illegal ", (int)v42); + v30 = std::string::append(v43, " statement"); + std::string::basic_string(v44, v30); + night::NSToken::err(v29, (int)v44, v37, v39, 1); } - v39 = night::NSASTParse::end_line((int)a1); - if ( !v39 ) + v36 = night::NSASTParse::end_line((int)a1); + if ( !v36 ) { - std::string::basic_string(v46, ";"); - if ( !night::NSASTParse::is_punctuation(a1, (int)v46) ) + std::string::basic_string(v43, ";"); + if ( !night::NSASTParse::is_punctuation(a1, (int)v43) ) { - std::string::basic_string(v47, "}"); - v39 = night::NSASTParse::is_punctuation(a1, (int)v47) == 0; - std::string::_M_dispose(v47); + std::string::basic_string(v44, "}"); + v36 = night::NSASTParse::is_punctuation(a1, (int)v44) == 0; + std::string::_M_dispose(v44); } - std::string::_M_dispose(v46); - if ( v39 ) + std::string::_M_dispose(v43); + if ( v36 ) { - v33 = (_DWORD **)a1[7]; - std::operator+((int)v46, "Unexpected token after `", (int)v45); - v34 = std::string::append(v46, "`"); - std::string::basic_string(v47, v34); - night::NSToken::err(v33, (int)v47, v40, v42, 1); + v31 = (_DWORD **)a1[7]; + std::operator+((int)v43, "Unexpected token after `", (int)v42); + v32 = std::string::append(v43, "`"); + std::string::basic_string(v44, v32); + night::NSToken::err(v31, (int)v44, v37, v39, 1); } } goto LABEL_50; } if ( a1[8] <= 0 ) { - v23 = (_DWORD **)a1[7]; - std::operator+((int)v46, "Illegal ", (int)v45); - v24 = std::string::append(v46, " statement"); - std::string::basic_string(v47, v24); - night::NSToken::err(v23, (int)v47, v40, v42, 1); + v21 = (_DWORD **)a1[7]; + std::operator+((int)v43, "Illegal ", (int)v42); + v22 = std::string::append(v43, " statement"); + std::string::basic_string(v44, v22); + night::NSToken::err(v21, (int)v44, v37, v39, 1); } LABEL_30: - v25 = (void *)a1[6]; - std::string::basic_string(v47, (int)&night::NS_TYPE_KW); - v6 = night::NSGod::gen_son(v25, (int)v47); + v23 = (void *)a1[6]; + std::string::basic_string(v44, (int)&night::NS_TYPE_KW); + v6 = night::NSGod::gen_son(v23, (int)v44); LABEL_31: v11 = v6; - std::string::_M_dispose(v47); - std::string::_M_assign((int)(v11 + 15), (int)v45); + std::string::_M_dispose(v44); + std::string::_M_assign((int)(v11 + 15), (int)v42); std::string::_M_assign((int)(v11 + 6), (int)(v4 + 6)); - v26 = a1[7]; + v24 = a1[7]; v11[12] = v4[12]; v11[13] = v4[13]; - v27 = night::NSToken::peek(v26); - if ( v27 ) + v25 = night::NSToken::peek(v24); + if ( v25 ) { - v28 = (int)(v27 + 15); - if ( std::operator==("[", (int)(v27 + 15)) ) + v26 = (int)(v25 + 15); + if ( std::operator==("[", (int)(v25 + 15)) ) { - v29 = night::NSASTParse::ast_obj_op(a1, (int)v11); + v27 = night::NSASTParse::ast_obj_op(a1, (int)v11); LABEL_36: - v11 = night::NSASTParse::make_call_or_just_expression(a1, (int)v29); + v11 = night::NSASTParse::make_call_or_just_expression(a1, v27); goto LABEL_51; } - if ( std::operator==(".", v28) ) + if ( std::operator==(".", v26) ) { - v29 = night::NSASTParse::ast_obj_dot(a1, (int)v11); + v27 = night::NSASTParse::ast_obj_dot(a1, (int)v11); goto LABEL_36; } } LABEL_51: - std::string::_M_dispose((void **)v45); + std::string::_M_dispose((void **)v42); return v11; } -// 405354: variable 'v17' is possibly undefined //----- (004058D8) -------------------------------------------------------- _DWORD *__userpurge night::NSASTParse::ast_dispatch@(_DWORD *a1@, night::NSASTParse *this, bool a3) @@ -12111,7 +11046,7 @@ _DWORD *__userpurge night::NSASTParse::ast_dispatch@(_DWORD *a1@, nigh _DWORD *v11; // eax void *v12; // esi void *v13; // esi - unsigned int *v14; // ecx + unsigned int **v14; // ecx _DWORD *v15; // eax int v16; // ebx _DWORD *v17; // eax @@ -12138,7 +11073,7 @@ _DWORD *__userpurge night::NSASTParse::ast_dispatch@(_DWORD *a1@, nigh _DWORD *v39; // eax _DWORD *v40; // eax _DWORD *v41; // eax - int v42; // ebx + _DWORD *v42; // ebx _DWORD **v43; // ebx int v44; // esi _DWORD *v45; // eax @@ -12147,92 +11082,90 @@ _DWORD *__userpurge night::NSASTParse::ast_dispatch@(_DWORD *a1@, nigh int v48; // esi _DWORD **v49; // ebx _DWORD *v50; // eax - night::NSASTParse *v51; // [esp+0h] [ebp-1B8h] + bool v51; // [esp+4h] [ebp-1B4h] bool v52; // [esp+4h] [ebp-1B4h] bool v53; // [esp+4h] [ebp-1B4h] - bool v54; // [esp+4h] [ebp-1B4h] - char v55; // [esp+18h] [ebp-1A0h] + char v54; // [esp+18h] [ebp-1A0h] char is_op_self; // [esp+1Ch] [ebp-19Ch] + char v56; // [esp+1Ch] [ebp-19Ch] char v57; // [esp+1Ch] [ebp-19Ch] - char v58; // [esp+1Ch] [ebp-19Ch] - bool v59; // [esp+21h] [ebp-197h] - char v60; // [esp+22h] [ebp-196h] - char v61; // [esp+23h] [ebp-195h] - char v62; // [esp+24h] [ebp-194h] - void *v63; // [esp+28h] [ebp-190h] - _DWORD *v64; // [esp+28h] [ebp-190h] - char v65; // [esp+28h] [ebp-190h] - unsigned int v66; // [esp+2Ch] [ebp-18Ch] - _DWORD *v67; // [esp+2Ch] [ebp-18Ch] - char v68; // [esp+2Ch] [ebp-18Ch] + bool v58; // [esp+21h] [ebp-197h] + char v59; // [esp+22h] [ebp-196h] + char v60; // [esp+23h] [ebp-195h] + char v61; // [esp+24h] [ebp-194h] + void *v62; // [esp+28h] [ebp-190h] + _DWORD *v63; // [esp+28h] [ebp-190h] + char v64; // [esp+28h] [ebp-190h] + unsigned int v65; // [esp+2Ch] [ebp-18Ch] + _DWORD *v66; // [esp+2Ch] [ebp-18Ch] + char v67; // [esp+2Ch] [ebp-18Ch] + _DWORD *v68; // [esp+2Ch] [ebp-18Ch] _DWORD *v69; // [esp+2Ch] [ebp-18Ch] - _DWORD *v70; // [esp+2Ch] [ebp-18Ch] - bool v71[4]; // [esp+38h] [ebp-180h] BYREF - int v72; // [esp+3Ch] [ebp-17Ch] - void *v73[6]; // [esp+50h] [ebp-168h] BYREF - void *v74[6]; // [esp+68h] [ebp-150h] BYREF - void *v75[6]; // [esp+80h] [ebp-138h] BYREF - void *v76[6]; // [esp+98h] [ebp-120h] BYREF - void *v77[6]; // [esp+B0h] [ebp-108h] BYREF - void *v78[6]; // [esp+C8h] [ebp-F0h] BYREF - void *v79[6]; // [esp+E0h] [ebp-D8h] BYREF - void *v80[6]; // [esp+F8h] [ebp-C0h] BYREF - void *v81[6]; // [esp+110h] [ebp-A8h] BYREF - void *v82[6]; // [esp+128h] [ebp-90h] BYREF - void *v83[6]; // [esp+140h] [ebp-78h] BYREF - void *v84[6]; // [esp+158h] [ebp-60h] BYREF - void *v85[6]; // [esp+170h] [ebp-48h] BYREF - void *v86[12]; // [esp+188h] [ebp-30h] BYREF + bool v70[4]; // [esp+38h] [ebp-180h] BYREF + int v71; // [esp+3Ch] [ebp-17Ch] + void *v72[6]; // [esp+50h] [ebp-168h] BYREF + void *v73[6]; // [esp+68h] [ebp-150h] BYREF + void *v74[6]; // [esp+80h] [ebp-138h] BYREF + void *v75[6]; // [esp+98h] [ebp-120h] BYREF + void *v76[6]; // [esp+B0h] [ebp-108h] BYREF + void *v77[6]; // [esp+C8h] [ebp-F0h] BYREF + void *v78[6]; // [esp+E0h] [ebp-D8h] BYREF + void *v79[6]; // [esp+F8h] [ebp-C0h] BYREF + void *v80[6]; // [esp+110h] [ebp-A8h] BYREF + void *v81[6]; // [esp+128h] [ebp-90h] BYREF + void *v82[6]; // [esp+140h] [ebp-78h] BYREF + void *v83[6]; // [esp+158h] [ebp-60h] BYREF + void *v84[6]; // [esp+170h] [ebp-48h] BYREF + void *v85[12]; // [esp+188h] [ebp-30h] BYREF - std::string::basic_string(v86, "("); - v4 = night::NSASTParse::is_punctuation(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, "("); + v4 = night::NSASTParse::is_punctuation(a1, (int)v85); + std::string::_M_dispose(v85); if ( v4 ) { v5 = (void *)a1[6]; - std::string::basic_string(v86, (int)&night::std_v_n); - v6 = (void **)night::NSGod::gen_girl(v5, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, (int)&night::std_v_n); + v6 = (void **)night::NSGod::gen_girl(v5, (int)v85); + std::string::_M_dispose(v85); v7 = (void *)a1[6]; - std::string::basic_string(v86, (int)&night::NS_TYPE_PUNC); - v83[0] = night::NSGod::gen_son(v7, (int)v86); - std::string::_M_dispose(v86); - std::string::operator=((unsigned int *)v83[0] + 15, "("); - std::vector::push_back(v6, v83); - v51 = (night::NSASTParse *)v7; + std::string::basic_string(v85, (int)&night::NS_TYPE_PUNC); + v82[0] = night::NSGod::gen_son(v7, (int)v85); + std::string::_M_dispose(v85); + std::string::operator=((unsigned int **)v82[0] + 15, "("); + std::vector::push_back(v6, v82); night::NSToken::next(a1[7]); v8 = *(_DWORD *)(a1[7] + 4); v9 = *(_DWORD *)(v8 + 52); - v66 = *(_DWORD *)(v8 + 56); - v84[0] = (void *)night::NSASTParse::ast_expression(v51); - if ( !night::NSASTParse::is_exp((int)v84[0]) ) + v65 = *(_DWORD *)(v8 + 56); + v83[0] = night::NSASTParse::ast_expression(a1); + if ( !night::NSASTParse::is_exp((int)v83[0]) ) { - v63 = v84[0]; - if ( (unsigned __int8)std::operator!=((int)&night::NS_TYPE_ASSIGN, (int)v84[0]) ) + v62 = v83[0]; + if ( (unsigned __int8)std::operator!=((int)&night::NS_TYPE_ASSIGN, (int)v83[0]) ) { v10 = (_DWORD **)a1[7]; - std::operator+((int)v85, "Unexpected statement[", (int)v63); - v11 = std::string::append(v85, "]"); - std::string::basic_string(v86, v11); - night::NSToken::err(v10, (int)v86, v9, v66, 1); + std::operator+((int)v84, "Unexpected statement[", (int)v62); + v11 = std::string::append(v84, "]"); + std::string::basic_string(v85, v11); + night::NSToken::err(v10, (int)v85, v9, v65, 1); } } - std::vector::push_back(v6, v84); - std::string::basic_string(v86, ")"); - night::NSASTParse::ignore_punc(a1, (int)v86); - std::string::_M_dispose(v86); - v12 = (void *)a1[6]; - std::string::basic_string(v86, (int)&night::NS_TYPE_PUNC); - v83[0] = night::NSGod::gen_son(v12, (int)v86); - std::string::_M_dispose(v86); - std::string::operator=((unsigned int *)v83[0] + 15, ")"); std::vector::push_back(v6, v83); + std::string::basic_string(v85, ")"); + night::NSASTParse::ignore_punc(a1, (int)v85); + std::string::_M_dispose(v85); + v12 = (void *)a1[6]; + std::string::basic_string(v85, (int)&night::NS_TYPE_PUNC); + v82[0] = night::NSGod::gen_son(v12, (int)v85); + std::string::_M_dispose(v85); + std::string::operator=((unsigned int **)v82[0] + 15, ")"); + std::vector::push_back(v6, v82); v13 = (void *)a1[6]; - std::string::basic_string(v86, (int)&night::NS_TYPE_BRACKET); - v83[0] = night::NSGod::gen_son(v13, (int)v86); - std::string::_M_dispose(v86); - v14 = (unsigned int *)v83[0]; - *((_DWORD *)v83[0] + 57) = v6; + std::string::basic_string(v85, (int)&night::NS_TYPE_BRACKET); + v82[0] = night::NSGod::gen_son(v13, (int)v85); + std::string::_M_dispose(v85); + v14 = (unsigned int **)v82[0]; + *((_DWORD *)v82[0] + 57) = v6; std::string::operator=(v14 + 27, (char *)off_51B9E4); v15 = night::NSToken::peek(a1[7]); if ( v15 ) @@ -12240,28 +11173,28 @@ _DWORD *__userpurge night::NSASTParse::ast_dispatch@(_DWORD *a1@, nigh v16 = (int)(v15 + 15); if ( std::operator==("[", (int)(v15 + 15)) ) { - v17 = night::NSASTParse::ast_obj_op(a1, (int)v83[0]); - return night::NSASTParse::make_call_or_just_expression(a1, (int)v17); + v17 = night::NSASTParse::ast_obj_op(a1, (int)v82[0]); + return night::NSASTParse::make_call_or_just_expression(a1, v17); } if ( std::operator==(".", v16) ) { - v17 = night::NSASTParse::ast_obj_dot(a1, (int)v83[0]); - return night::NSASTParse::make_call_or_just_expression(a1, (int)v17); + v17 = night::NSASTParse::ast_obj_dot(a1, (int)v82[0]); + return night::NSASTParse::make_call_or_just_expression(a1, v17); } } - v17 = v83[0]; - return night::NSASTParse::make_call_or_just_expression(a1, (int)v17); + v17 = v82[0]; + return night::NSASTParse::make_call_or_just_expression(a1, v17); } - std::string::basic_string(v71, (int)(a1 + 11)); - std::string::operator=(a1 + 11, (char *)off_51B9E4); - std::string::basic_string(v86, "{"); - v19 = night::NSASTParse::is_punctuation(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v70, (int)(a1 + 11)); + std::string::operator=((unsigned int **)a1 + 11, (char *)off_51B9E4); + std::string::basic_string(v85, "{"); + v19 = night::NSASTParse::is_punctuation(a1, (int)v85); + std::string::_M_dispose(v85); if ( v19 ) { - v64 = night::NSToken::next(a1[7]); + v63 = night::NSToken::next(a1[7]); v20 = night::NSToken::next(a1[7]); - v67 = night::NSToken::next(a1[7]); + v66 = night::NSToken::next(a1[7]); v21 = 0; if ( v20 ) { @@ -12269,11 +11202,11 @@ _DWORD *__userpurge night::NSASTParse::ast_dispatch@(_DWORD *a1@, nigh || (v21 = std::operator==((int)&night::NS_TYPE_STR, (int)v20)) ) { v21 = 0; - if ( v67 ) + if ( v66 ) { - v21 = std::operator==((int)&night::NS_TYPE_PUNC, (int)v67); + v21 = std::operator==((int)&night::NS_TYPE_PUNC, (int)v66); if ( v21 ) - v21 = std::operator==(":", (int)(v67 + 15)); + v21 = std::operator==(":", (int)(v66 + 15)); } } if ( std::operator==((int)&night::NS_TYPE_PUNC, (int)v20) ) @@ -12283,210 +11216,210 @@ _DWORD *__userpurge night::NSASTParse::ast_dispatch@(_DWORD *a1@, nigh v21 = v22; } } - night::NSToken::push(a1[7], (int)v67); + night::NSToken::push(a1[7], (int)v66); night::NSToken::push(a1[7], (int)v20); - night::NSToken::push(a1[7], (int)v64); + night::NSToken::push(a1[7], (int)v63); if ( v21 ) { v23 = night::NSASTParse::ast_obj_block(a1); LABEL_110: - v40 = night::NSASTParse::make_call_or_just_expression(a1, (int)v23); + v40 = night::NSASTParse::make_call_or_just_expression(a1, v23); goto LABEL_112; } - if ( !v72 || (unsigned __int8)std::operator!=("op not=", (int)v71) ) + if ( !v71 || (unsigned __int8)std::operator!=("op not=", (int)v70) ) { v23 = night::NSASTParse::ast_code_block(a1); goto LABEL_110; } } - std::string::basic_string(v86, "["); - v24 = night::NSASTParse::is_punctuation(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, "["); + v24 = night::NSASTParse::is_punctuation(a1, (int)v85); + std::string::_M_dispose(v85); if ( v24 ) { v23 = night::NSASTParse::ast_new_array(a1); goto LABEL_110; } - if ( night::NSASTParse::is_obj_op_self(a1, 0, v52) ) + if ( night::NSASTParse::is_obj_op_self(a1, 0, v51) ) { v23 = night::NSASTParse::ast_obj_op_self(a1, 0); goto LABEL_110; } - is_op_self = night::NSASTParse::is_op_self((int)a1, (night::NSASTParse *)1, v53); + is_op_self = night::NSASTParse::is_op_self((int)a1, (night::NSASTParse *)1, v52); if ( is_op_self ) { - v23 = night::NSASTParse::ast_op_self((int)a1); + v23 = night::NSASTParse::ast_op_self(a1); goto LABEL_110; } - std::string::basic_string(v86, "if"); - v25 = night::NSASTParse::is_buildin_keywords(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, "if"); + v25 = night::NSASTParse::is_buildin_keywords(a1, (int)v85); + std::string::_M_dispose(v85); if ( v25 ) { v23 = night::NSASTParse::ast_if(a1); goto LABEL_110; } - std::string::basic_string(v86, (char *)off_51BC9A); - v26 = night::NSASTParse::is_buildin_keywords(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, (char *)off_51BC9A); + v26 = night::NSASTParse::is_buildin_keywords(a1, (int)v85); + std::string::_M_dispose(v85); if ( v26 ) { v23 = night::NSASTParse::ast_for(a1); goto LABEL_110; } - std::string::basic_string(v86, "while"); - v27 = night::NSASTParse::is_buildin_keywords(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, "while"); + v27 = night::NSASTParse::is_buildin_keywords(a1, (int)v85); + std::string::_M_dispose(v85); if ( v27 ) { v23 = night::NSASTParse::ast_while(a1); goto LABEL_110; } - std::string::basic_string(v86, "do"); - v28 = night::NSASTParse::is_buildin_keywords(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, "do"); + v28 = night::NSASTParse::is_buildin_keywords(a1, (int)v85); + std::string::_M_dispose(v85); if ( v28 ) { v23 = night::NSASTParse::ast_do_while(a1); goto LABEL_110; } - std::string::basic_string(v86, "switch"); - v29 = night::NSASTParse::is_buildin_keywords(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, "switch"); + v29 = night::NSASTParse::is_buildin_keywords(a1, (int)v85); + std::string::_M_dispose(v85); if ( v29 ) { v23 = night::NSASTParse::ast_switch(a1); goto LABEL_110; } - std::string::basic_string(v73, "true"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v73) ) + std::string::basic_string(v72, "true"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v72) ) { - v65 = 0; + v64 = 0; v33 = 0; v32 = 0; v31 = 0; - v61 = 0; - v30 = 0; v60 = 0; - v62 = 0; - v68 = 0; + v30 = 0; + v59 = 0; + v61 = 0; + v67 = 0; } else { - std::string::basic_string(v74, "false"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v74) ) + std::string::basic_string(v73, "false"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v73) ) { - v65 = 0; + v64 = 0; v33 = 0; v32 = 0; v31 = 0; - v61 = 0; v60 = 0; - v62 = 0; - v68 = 0; + v59 = 0; + v61 = 0; + v67 = 0; } else { - std::string::basic_string(v75, "null"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v75) ) + std::string::basic_string(v74, "null"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v74) ) { - v65 = 0; + v64 = 0; v33 = 0; v32 = 0; - v61 = 0; v60 = 0; - v62 = 0; - v68 = 0; + v59 = 0; + v61 = 0; + v67 = 0; } else { - std::string::basic_string(v76, "undefined"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v76) ) + std::string::basic_string(v75, "undefined"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v75) ) { - v65 = 0; + v64 = 0; v33 = 0; v32 = 0; - v61 = 0; v60 = 0; - v62 = 0; + v59 = 0; + v61 = 0; } else { - std::string::basic_string(v77, (char *)off_51BF34); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v77) ) + std::string::basic_string(v76, (char *)off_51BF34); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v76) ) { - v65 = 0; + v64 = 0; v33 = 0; v32 = 0; - v61 = 0; v60 = 0; + v59 = 0; } else { - std::string::basic_string(v78, "Infinity"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v78) ) + std::string::basic_string(v77, "Infinity"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v77) ) { - v65 = 0; + v64 = 0; v33 = 0; v32 = 0; - v61 = 0; + v60 = 0; } else { - std::string::basic_string(v79, "return"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v79) ) + std::string::basic_string(v78, "return"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v78) ) { - v65 = 0; + v64 = 0; v33 = 0; v32 = 0; } else { - std::string::basic_string(v80, "delete"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v80) ) + std::string::basic_string(v79, "delete"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v79) ) { v33 = 0; v32 = 0; } else { - std::string::basic_string(v81, "void"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v81) ) + std::string::basic_string(v80, "void"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v80) ) { v33 = 0; } else { - std::string::basic_string(v82, "typeof"); - if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v82) ) + std::string::basic_string(v81, "typeof"); + if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v81) ) { - std::string::basic_string(v83, "this"); - if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v83) ) + std::string::basic_string(v82, "this"); + if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v82) ) { - std::string::basic_string(v84, "arguments"); - v59 = 1; - if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v84) ) + std::string::basic_string(v83, "arguments"); + v58 = 1; + if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v83) ) { - std::string::basic_string(v85, "break"); - v59 = 1; - if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v85) ) + std::string::basic_string(v84, "break"); + v58 = 1; + if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v84) ) { - std::string::basic_string(v86, "continue"); - v59 = night::NSASTParse::is_buildin_keywords(a1, (int)v86) != 0; - std::string::_M_dispose(v86); + std::string::basic_string(v85, "continue"); + v58 = night::NSASTParse::is_buildin_keywords(a1, (int)v85) != 0; + std::string::_M_dispose(v85); } - std::string::_M_dispose(v85); + std::string::_M_dispose(v84); } v30 = 1; v31 = 1; - std::string::_M_dispose(v84); - v60 = 1; + std::string::_M_dispose(v83); + v59 = 1; v32 = 1; v33 = 1; + v60 = 1; v61 = 1; - v62 = 1; - v68 = 1; - v65 = 1; + v67 = 1; + v64 = 1; goto LABEL_59; } is_op_self = 1; @@ -12495,98 +11428,98 @@ LABEL_110: } v32 = 1; } - v65 = 1; + v64 = 1; } - v61 = 1; + v60 = 1; } - v60 = 1; + v59 = 1; } - v62 = 1; + v61 = 1; } - v68 = 1; + v67 = 1; } v31 = 1; } v30 = 1; } - v59 = 1; + v58 = 1; if ( is_op_self ) { LABEL_59: - v55 = v32; - v57 = v33; - std::string::_M_dispose(v83); - v32 = v55; - v33 = v57; + v54 = v32; + v56 = v33; + std::string::_M_dispose(v82); + v32 = v54; + v33 = v56; } if ( v33 ) { - v58 = v32; - std::string::_M_dispose(v82); - v32 = v58; + v57 = v32; + std::string::_M_dispose(v81); + v32 = v57; } if ( v32 ) - std::string::_M_dispose(v81); - if ( v65 ) std::string::_M_dispose(v80); - if ( v61 ) + if ( v64 ) std::string::_M_dispose(v79); if ( v60 ) std::string::_M_dispose(v78); - if ( v62 ) - std::string::_M_dispose(v77); - if ( v68 ) - std::string::_M_dispose(v76); - if ( v31 ) - std::string::_M_dispose(v75); - if ( v30 ) - std::string::_M_dispose(v74); - std::string::_M_dispose(v73); if ( v59 ) + std::string::_M_dispose(v77); + if ( v61 ) + std::string::_M_dispose(v76); + if ( v67 ) + std::string::_M_dispose(v75); + if ( v31 ) + std::string::_M_dispose(v74); + if ( v30 ) + std::string::_M_dispose(v73); + std::string::_M_dispose(v72); + if ( v58 ) { v23 = night::NSASTParse::ast_trans_kw(a1); goto LABEL_110; } - std::string::basic_string(v86, "require"); - v34 = night::NSASTParse::is_buildin_keywords(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, "require"); + v34 = night::NSASTParse::is_buildin_keywords(a1, (int)v85); + std::string::_M_dispose(v85); if ( v34 ) { v23 = night::NSASTParse::ast_require(a1); goto LABEL_110; } - std::string::basic_string(v86, (char *)off_51BA88); - v35 = night::NSASTParse::is_buildin_keywords(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, (char *)off_51BA88); + v35 = night::NSASTParse::is_buildin_keywords(a1, (int)v85); + std::string::_M_dispose(v85); if ( v35 ) { v23 = night::NSASTParse::ast_var(a1); goto LABEL_110; } - std::string::basic_string(v86, "function"); - v36 = night::NSASTParse::is_buildin_keywords(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, "function"); + v36 = night::NSASTParse::is_buildin_keywords(a1, (int)v85); + std::string::_M_dispose(v85); if ( v36 ) { v23 = night::NSASTParse::ast_function(a1); goto LABEL_110; } - std::string::basic_string(v86, ";"); - v37 = night::NSASTParse::is_punctuation(a1, (int)v86); - std::string::_M_dispose(v86); + std::string::basic_string(v85, ";"); + v37 = night::NSASTParse::is_punctuation(a1, (int)v85); + std::string::_M_dispose(v85); if ( !v37 ) { v41 = night::NSToken::next(a1[7]); - v42 = (int)v41; + v42 = v41; if ( !v41 ) { v43 = (_DWORD **)a1[7]; - std::string::basic_string(v86, "End of file"); - night::NSToken::err(v43, (int)v86, 0, 0, 0); + std::string::basic_string(v85, "End of file"); + night::NSToken::err(v43, (int)v85, 0, 0, 0); } if ( std::operator==((int)&night::NS_TYPE_VAR, (int)v41) - || std::operator==((int)&night::NS_TYPE_NUM, v42) - || std::operator==((int)&night::NS_TYPE_STR, v42) ) + || std::operator==((int)&night::NS_TYPE_NUM, (int)v42) + || std::operator==((int)&night::NS_TYPE_STR, (int)v42) ) { v45 = night::NSToken::peek(a1[7]); if ( v45 ) @@ -12597,26 +11530,26 @@ LABEL_59: if ( std::operator==(".", v46) ) goto LABEL_109; } - if ( night::NSASTParse::is_obj_op_self(a1, (night::NSASTParse *)1, v54) ) + if ( night::NSASTParse::is_obj_op_self(a1, (night::NSASTParse *)1, v53) ) { - v23 = night::NSASTParse::ast_obj_op_self(a1, v42); + v23 = night::NSASTParse::ast_obj_op_self(a1, (int)v42); goto LABEL_110; } } else { - v44 = v42 + 60; - if ( !std::operator==((int)&night::NS_TYPE_B_TYPE, v42) ) + v44 = (int)(v42 + 15); + if ( !std::operator==((int)&night::NS_TYPE_B_TYPE, (int)v42) ) { v49 = (_DWORD **)a1[7]; - std::operator+((int)v85, "Unexpected token `", v44); - v50 = std::string::append(v85, "`"); - std::string::basic_string(v86, v50); - night::NSToken::err(v49, (int)v86, 0, 0, 0); + std::operator+((int)v84, "Unexpected token `", v44); + v50 = std::string::append(v84, "`"); + std::string::basic_string(v85, v50); + night::NSToken::err(v49, (int)v85, 0, 0, 0); } - if ( !std::operator==("Number", v42 + 60) - && !std::operator==("Math", v42 + 60) - && !std::operator==("Date", v42 + 60) ) + if ( !std::operator==("Number", (int)(v42 + 15)) + && !std::operator==("Math", (int)(v42 + 15)) + && !std::operator==("Date", (int)(v42 + 15)) ) { goto LABEL_111; } @@ -12627,13 +11560,13 @@ LABEL_59: if ( std::operator==("[", (int)(v47 + 15)) ) { LABEL_107: - v23 = night::NSASTParse::ast_obj_op(a1, v42); + v23 = night::NSASTParse::ast_obj_op(a1, (int)v42); goto LABEL_110; } if ( std::operator==(".", v48) ) { LABEL_109: - v23 = night::NSASTParse::ast_obj_dot(a1, v42); + v23 = night::NSASTParse::ast_obj_dot(a1, (int)v42); goto LABEL_110; } } @@ -12642,22 +11575,22 @@ LABEL_111: goto LABEL_112; } v38 = (void *)a1[6]; - std::string::basic_string(v86, (int)&night::NS_TYPE_SKIP); - v39 = night::NSGod::gen_son(v38, (int)v86); - v69 = night::NSASTParse::make_call_or_just_expression(a1, (int)v39); - std::string::_M_dispose(v86); - v40 = v69; + std::string::basic_string(v85, (int)&night::NS_TYPE_SKIP); + v39 = night::NSGod::gen_son(v38, (int)v85); + v68 = night::NSASTParse::make_call_or_just_expression(a1, v39); + std::string::_M_dispose(v85); + v40 = v68; LABEL_112: - v70 = v40; - std::string::_M_dispose((void **)v71); - return v70; + v69 = v40; + std::string::_M_dispose((void **)v70); + return v69; } -// 405D36: variable 'v52' is possibly undefined -// 405D55: variable 'v53' is possibly undefined -// 4066CB: variable 'v54' is possibly undefined +// 405D36: variable 'v51' is possibly undefined +// 405D55: variable 'v52' is possibly undefined +// 4066CB: variable 'v53' is possibly undefined //----- (00406BA4) -------------------------------------------------------- -_DWORD *__fastcall night::NSASTParse::ast_op_self(int a1) +_DWORD *__fastcall night::NSASTParse::ast_op_self(_DWORD *a1) { _DWORD *v2; // eax void *v3; // ebx @@ -12666,14 +11599,14 @@ _DWORD *__fastcall night::NSASTParse::ast_op_self(int a1) _DWORD *v7; // [esp+1Ch] [ebp-3Ch] void *v8[12]; // [esp+28h] [ebp-30h] BYREF - v2 = night::NSToken::next(*(_DWORD *)(a1 + 28)); - v3 = *(void **)(a1 + 24); + v2 = night::NSToken::next(a1[7]); + v3 = (void *)a1[6]; v7 = v2; std::string::basic_string(v8, (int)&night::NS_TYPE_OP_SELF); v4 = night::NSGod::gen_son(v3, (int)v8); std::string::_M_dispose(v8); std::string::_M_assign((int)(v4 + 39), (int)(v7 + 15)); - v4[48] = night::NSASTParse::ast_dispatch(0, v6); + v4[48] = night::NSASTParse::ast_dispatch(a1, 0, v6); return v4; } // 406C01: variable 'v6' is possibly undefined @@ -12689,7 +11622,7 @@ int __thiscall night::NSASTParse::make_binary_or_just_value(_DWORD *this, int a2 _DWORD *v8; // edi bool v10; // bl char *v11; // eax - int v12; // eax + _DWORD *v12; // eax int binary_or_just_value; // edi _DWORD **v14; // esi void *v15; // eax @@ -12743,7 +11676,7 @@ int __thiscall night::NSASTParse::make_binary_or_just_value(_DWORD *this, int a2 std::string::_M_assign((int)(v8 + 39), (int)v25); v8[46] = v5; v8[45] = a2; - return night::NSASTParse::make_binary_or_just_value(v8, a3); + return night::NSASTParse::make_binary_or_just_value(this, (int)v8, a3); } else { @@ -12751,9 +11684,9 @@ int __thiscall night::NSASTParse::make_binary_or_just_value(_DWORD *this, int a2 v11 = "="; if ( !v10 ) v11 = "op not="; - std::string::operator=(this + 11, v11); - v12 = night::NSASTParse::ast_dispatch(0, v21); - binary_or_just_value = night::NSASTParse::make_binary_or_just_value(v12, a3); + std::string::operator=((unsigned int **)this + 11, v11); + v12 = night::NSASTParse::ast_dispatch(this, 0, v21); + binary_or_just_value = night::NSASTParse::make_binary_or_just_value(this, (int)v12, a3); if ( !night::NSASTParse::is_exp(binary_or_just_value) ) { v14 = (_DWORD **)this[7]; @@ -12778,7 +11711,7 @@ int __thiscall night::NSASTParse::make_binary_or_just_value(_DWORD *this, int a2 std::string::basic_string(v28, "Expected exp"); night::NSToken::err(v17, (int)v28, v23, v24, 1); } - return night::NSASTParse::make_binary_or_just_value(v16, a3); + return night::NSASTParse::make_binary_or_just_value(this, (int)v16, a3); } } return a2; @@ -12790,45 +11723,43 @@ int __thiscall night::NSASTParse::make_binary_or_just_value(_DWORD *this, int a2 //----- (00406FBC) -------------------------------------------------------- _DWORD *__fastcall night::NSASTParse::ast_expression_no_comma(int *a1) { - int v1; // eax - int binary_or_just_value; // eax + _DWORD *v1; // eax + _DWORD *binary_or_just_value; // eax bool v4; // [esp+4h] [ebp-24h] - v1 = night::NSASTParse::ast_dispatch(0, v4); - binary_or_just_value = night::NSASTParse::make_binary_or_just_value(a1, v1, 1u); + v1 = night::NSASTParse::ast_dispatch(a1, 0, v4); + binary_or_just_value = (_DWORD *)night::NSASTParse::make_binary_or_just_value(a1, (int)v1, 1u); return night::NSASTParse::make_call_or_just_expression(a1, binary_or_just_value); } // 406FCC: variable 'v4' is possibly undefined //----- (00406FF6) -------------------------------------------------------- -int __fastcall night::NSASTParse::ast_varname(int a1) +_DWORD *__fastcall night::NSASTParse::ast_varname(int *a1) { int v2; // eax unsigned int v3; // edi - int v4; // ebx + _DWORD *v4; // ebx _DWORD **v5; // esi - night::NSASTParse *v7; // [esp+0h] [ebp-58h] - unsigned int v8; // [esp+1Ch] [ebp-3Ch] - void *v9[12]; // [esp+28h] [ebp-30h] BYREF + unsigned int v7; // [esp+1Ch] [ebp-3Ch] + void *v8[12]; // [esp+28h] [ebp-30h] BYREF - v2 = *(_DWORD *)(*(_DWORD *)(a1 + 28) + 4); + v2 = *(_DWORD *)(a1[7] + 4); v3 = *(_DWORD *)(v2 + 56); - v8 = *(_DWORD *)(v2 + 52); - v4 = night::NSASTParse::ast_expression_no_comma(v7); - if ( (!std::operator==((int)&night::NS_TYPE_ASSIGN, v4) - || !std::operator==((int)&night::NS_TYPE_VAR, *(_DWORD *)(v4 + 180))) - && !std::operator==((int)&night::NS_TYPE_VAR, v4) ) + v7 = *(_DWORD *)(v2 + 52); + v4 = night::NSASTParse::ast_expression_no_comma(a1); + if ( (!std::operator==((int)&night::NS_TYPE_ASSIGN, (int)v4) + || !std::operator==((int)&night::NS_TYPE_VAR, v4[45])) + && !std::operator==((int)&night::NS_TYPE_VAR, (int)v4) ) { - v5 = *(_DWORD ***)(a1 + 28); - std::string::basic_string(v9, "Expected variable"); - night::NSToken::err(v5, (int)v9, v8, v3, 1); + v5 = (_DWORD **)a1[7]; + std::string::basic_string(v8, "Expected variable"); + night::NSToken::err(v5, (int)v8, v7, v3, 1); } return v4; } -// 407010: variable 'v7' is possibly undefined //----- (004070A6) -------------------------------------------------------- -_DWORD *__thiscall night::NSASTParse::ast_obj_op_self(_DWORD *this, int a2) +_DWORD *__thiscall night::NSASTParse::ast_obj_op_self(int *this, int a2) { void *v3; // esi int v4; // ecx @@ -12841,81 +11772,79 @@ _DWORD *__thiscall night::NSASTParse::ast_obj_op_self(_DWORD *this, int a2) _DWORD **v11; // ebx _DWORD **v12; // ebx _DWORD *v13; // eax - int v14; // esi + _DWORD *v14; // esi void *v15; // edi _DWORD *v16; // edi - night::NSASTParse *v18; // [esp+0h] [ebp-68h] - int v19; // [esp+14h] [ebp-54h] - int v20; // [esp+18h] [ebp-50h] - _DWORD *v21; // [esp+1Ch] [ebp-4Ch] - _DWORD v22[6]; // [esp+20h] [ebp-48h] BYREF - void *v23[12]; // [esp+38h] [ebp-30h] BYREF + int v18; // [esp+14h] [ebp-54h] + int v19; // [esp+18h] [ebp-50h] + _DWORD *v20; // [esp+1Ch] [ebp-4Ch] + int v21[6]; // [esp+20h] [ebp-48h] BYREF + void *v22[12]; // [esp+38h] [ebp-30h] BYREF v3 = (void *)this[6]; - std::string::basic_string(v23, (int)&night::NS_TYPE_OBJ_SELF_OP); - v21 = night::NSGod::gen_son(v3, (int)v23); - std::string::_M_dispose(v23); - *((_BYTE *)v21 + 200) = a2 == 0; - v20 = (int)(v21 + 39); - std::string::operator=(v21 + 39, (char *)off_51B9E4); + std::string::basic_string(v22, (int)&night::NS_TYPE_OBJ_SELF_OP); + v20 = night::NSGod::gen_son(v3, (int)v22); + std::string::_M_dispose(v22); + *((_BYTE *)v20 + 200) = a2 == 0; + v19 = (int)(v20 + 39); + std::string::operator=((unsigned int **)v20 + 39, (char *)off_51B9E4); v4 = this[7]; - v21[48] = 0; + v20[48] = 0; v5 = night::NSToken::next(v4); if ( !v5 ) { v6 = (_DWORD **)this[7]; - std::string::basic_string(v23, "End of file"); - night::NSToken::err(v6, (int)v23, 0, 0, 0); + std::string::basic_string(v22, "End of file"); + night::NSToken::err(v6, (int)v22, 0, 0, 0); } v7 = (int)(v5 + 15); v8 = (int)(v5 + 21); - v19 = (int)(v21 + 21); + v18 = (int)(v20 + 21); if ( a2 ) { - v21[48] = a2; - std::string::_M_assign(v20, v7); - std::string::_M_assign(v19, v8); + v20[48] = a2; + std::string::_M_assign(v19, v7); + std::string::_M_assign(v18, v8); } else { - std::string::_M_assign(v20, v7); - std::string::_M_assign(v19, v8); + std::string::_M_assign(v19, v7); + std::string::_M_assign(v18, v8); v9 = night::NSToken::peek(this[7]); v10 = v9; if ( !v9 ) { v11 = (_DWORD **)this[7]; - std::string::basic_string(v23, "End of file"); - night::NSToken::err(v11, (int)v23, 0, 0, 0); + std::string::basic_string(v22, "End of file"); + night::NSToken::err(v11, (int)v22, 0, 0, 0); } if ( (unsigned __int8)std::operator!=((int)&night::NS_TYPE_VAR, (int)v9) ) { v12 = (_DWORD **)this[7]; - std::operator+((int)v22, "Unexpected token `", (int)(v10 + 15)); - v13 = std::string::append(v22, "`"); - std::string::basic_string(v23, v13); - night::NSToken::err(v12, (int)v23, 0, 0, 0); + std::operator+((int)v21, "Unexpected token `", (int)(v10 + 15)); + v13 = std::string::append(v21, "`"); + std::string::basic_string(v22, v13); + night::NSToken::err(v12, (int)v22, 0, 0, 0); } - v14 = night::NSASTParse::ast_expression_no_comma(v18); - if ( std::operator==((int)&night::NS_TYPE_OBJ_SELF_OP, v14) ) + v14 = night::NSASTParse::ast_expression_no_comma(this); + if ( std::operator==((int)&night::NS_TYPE_OBJ_SELF_OP, (int)v14) ) { v15 = (void *)this[6]; - std::string::basic_string(v23, (int)&night::NS_TYPE_OP); - v16 = night::NSGod::gen_son(v15, (int)v23); - std::string::_M_dispose(v23); - std::string::_M_assign((int)(v16 + 15), v14 + 156); - std::string::_M_assign((int)(v16 + 21), v14 + 84); + std::string::basic_string(v22, (int)&night::NS_TYPE_OP); + v16 = night::NSGod::gen_son(v15, (int)v22); + std::string::_M_dispose(v22); + std::string::_M_assign((int)(v16 + 15), (int)(v14 + 39)); + std::string::_M_assign((int)(v16 + 21), (int)(v14 + 21)); night::NSToken::push(this[7], (int)v16); - v21[48] = *(_DWORD *)(v14 + 192); + v20[48] = v14[48]; } else { - v21[48] = v14; + v20[48] = v14; } } - return v21; + return v20; } -// 40723B: variable 'v18' is possibly undefined // 4070A6: using guessed type _DWORD var_48[6]; //----- (00407324) -------------------------------------------------------- @@ -12935,7 +11864,7 @@ _DWORD *__thiscall night::NSASTParse::ast_obj_dot(int *this, int a2) _DWORD *v15; // [esp+14h] [ebp-54h] unsigned int v16; // [esp+18h] [ebp-50h] unsigned int v17; // [esp+1Ch] [ebp-4Ch] - _DWORD v18[6]; // [esp+20h] [ebp-48h] BYREF + int v18[6]; // [esp+20h] [ebp-48h] BYREF void *v19[12]; // [esp+38h] [ebp-30h] BYREF v3 = (void *)this[6]; @@ -12983,13 +11912,13 @@ _DWORD *__thiscall night::NSASTParse::ast_obj_dot(int *this, int a2) // 407324: using guessed type _DWORD var_48[6]; //----- (00407500) -------------------------------------------------------- -unsigned int *__fastcall night::NSASTParse::ast_if(int *a1) +unsigned int **__fastcall night::NSASTParse::ast_if(int *a1) { _DWORD *v2; // eax void *v3; // esi int v4; // edi - unsigned int *v5; // esi - _DWORD *v7; // [esp+1Ch] [ebp-3Ch] + unsigned int **v5; // esi + unsigned int *v7; // [esp+1Ch] [ebp-3Ch] _DWORD *v8; // [esp+1Ch] [ebp-3Ch] _DWORD *v9; // [esp+1Ch] [ebp-3Ch] void *v10[12]; // [esp+28h] [ebp-30h] BYREF @@ -13002,11 +11931,11 @@ unsigned int *__fastcall night::NSASTParse::ast_if(int *a1) v3 = (void *)a1[6]; v4 = (int)v2; std::string::basic_string(v10, (int)&night::NS_TYPE_IF); - v5 = night::NSGod::gen_son(v3, (int)v10); + v5 = (unsigned int **)night::NSGod::gen_son(v3, (int)v10); std::string::_M_dispose(v10); - v5[52] = v4; + v5[52] = (unsigned int *)v4; v5[53] = 0; - v5[51] = (unsigned int)v7; + v5[51] = v7; if ( (unsigned __int8)std::operator!=((int)&night::NS_TYPE_PROG_NO_SEM, v4) ) { if ( !night::NSToken::eof(a1[7]) ) @@ -13025,7 +11954,7 @@ unsigned int *__fastcall night::NSASTParse::ast_if(int *a1) if ( v9 ) { night::NSToken::next(a1[7]); - v5[53] = (unsigned int)night::NSASTParse::ast_expression_no_comma(a1); + v5[53] = night::NSASTParse::ast_expression_no_comma(a1); } return v5; } @@ -13033,35 +11962,29 @@ unsigned int *__fastcall night::NSASTParse::ast_if(int *a1) //----- (00407656) -------------------------------------------------------- _DWORD *__fastcall night::NSASTParse::ast_ternary_expression(int *a1) { - int v2; // edi - night::NSASTParse *v3; // ecx - int v4; // eax - void *v5; // ebx - int v6; // esi + _DWORD *v2; // edi + _DWORD *v3; // eax + void *v4; // ebx + _DWORD *v5; // esi _DWORD *result; // eax - night::NSASTParse *v8; // [esp+0h] [ebp-58h] - night::NSASTParse *v9; // [esp+0h] [ebp-58h] - _DWORD *v10; // [esp+1Ch] [ebp-3Ch] - void *v11[12]; // [esp+28h] [ebp-30h] BYREF + _DWORD *v7; // [esp+1Ch] [ebp-3Ch] + void *v8[12]; // [esp+28h] [ebp-30h] BYREF - v2 = night::NSASTParse::ast_expression_no_comma(v8); - std::string::basic_string(v11, ":"); - night::NSASTParse::ignore_punc(a1, (int)v11); - v9 = v3; - std::string::_M_dispose(v11); - v4 = night::NSASTParse::ast_expression_no_comma(v9); - v5 = (void *)a1[6]; - v6 = v4; - std::string::basic_string(v11, (int)&night::NS_TYPE_TERNARY); - v10 = night::NSGod::gen_son(v5, (int)v11); - std::string::_M_dispose(v11); - result = v10; - v10[45] = v2; - v10[46] = v6; + v2 = night::NSASTParse::ast_expression_no_comma(a1); + std::string::basic_string(v8, ":"); + night::NSASTParse::ignore_punc(a1, (int)v8); + std::string::_M_dispose(v8); + v3 = night::NSASTParse::ast_expression_no_comma(a1); + v4 = (void *)a1[6]; + v5 = v3; + std::string::basic_string(v8, (int)&night::NS_TYPE_TERNARY); + v7 = night::NSGod::gen_son(v4, (int)v8); + std::string::_M_dispose(v8); + result = v7; + v7[45] = v2; + v7[46] = v5; return result; } -// 407661: variable 'v8' is possibly undefined -// 407685: variable 'v3' is possibly undefined //----- (004076EE) -------------------------------------------------------- void **__thiscall night::NSASTParse::make_list_by_parser( @@ -13079,21 +12002,17 @@ void **__thiscall night::NSASTParse::make_list_by_parser( int v11; // edi char i; // si _DWORD *v13; // eax - night::NSASTParse *v14; // edx - _DWORD *v15; // eax - night::NSASTParse *v17; // [esp+0h] [ebp-58h] - night::NSASTParse *v18; // [esp+0h] [ebp-58h] - void *v19; // [esp+18h] [ebp-40h] - void **v20; // [esp+1Ch] [ebp-3Ch] - _DWORD *v21; // [esp+24h] [ebp-34h] BYREF - void *v22[12]; // [esp+28h] [ebp-30h] BYREF + void *v15; // [esp+18h] [ebp-40h] + void **v16; // [esp+1Ch] [ebp-3Ch] + _DWORD *v17; // [esp+24h] [ebp-34h] BYREF + void *v18[12]; // [esp+28h] [ebp-30h] BYREF v9 = (void *)this[6]; - std::string::basic_string(v22, (int)&night::std_v_n); - v10 = night::NSGod::gen_girl(v9, (int)v22); + std::string::basic_string(v18, (int)&night::std_v_n); + v10 = night::NSGod::gen_girl(v9, (int)v18); v11 = 0; - v20 = (void **)v10; - std::string::_M_dispose(v22); + v16 = (void **)v10; + std::string::_M_dispose(v18); night::NSASTParse::ignore_punc(this, a2); for ( i = 1; !night::NSToken::eof(this[7]) && !night::NSASTParse::is_punctuation(this, a3); i = 0 ) { @@ -13109,43 +12028,35 @@ void **__thiscall night::NSASTParse::make_list_by_parser( break; if ( std::operator==("ast_expression_no_comma", a5) ) { - if ( std::operator==("ast_new_array", a8) ) + if ( std::operator==("ast_new_array", a8) && night::NSASTParse::is_punctuation(this, a4) ) { - v13 = night::NSASTParse::is_punctuation(this, a4); - v17 = v14; - if ( v13 ) - { - v19 = (void *)this[6]; - std::string::basic_string(v22, (int)&night::NS_TYPE_SKIP); - v21 = night::NSGod::gen_son(v19, (int)v22); - std::string::_M_dispose(v22); - goto LABEL_20; - } + v15 = (void *)this[6]; + std::string::basic_string(v18, (int)&night::NS_TYPE_SKIP); + v17 = night::NSGod::gen_son(v15, (int)v18); + std::string::_M_dispose(v18); + goto LABEL_20; } - v15 = (_DWORD *)night::NSASTParse::ast_expression_no_comma(v17); + v13 = night::NSASTParse::ast_expression_no_comma(this); } else if ( std::operator==("ast_expression", a5) ) { - v15 = (_DWORD *)night::NSASTParse::ast_expression(v18); + v13 = night::NSASTParse::ast_expression(this); } else { if ( !std::operator==("ast_varname", a5) ) goto LABEL_20; - v15 = (_DWORD *)night::NSASTParse::ast_varname((int)this); + v13 = night::NSASTParse::ast_varname(this); } - v21 = v15; + v17 = v13; LABEL_20: - std::vector::push_back(v20, &v21); + std::vector::push_back(v16, &v17); } if ( a7 != -1 && v11 != a7 ) return 0; night::NSASTParse::ignore_punc(this, a3); - return v20; + return v16; } -// 4077D7: variable 'v14' is possibly undefined -// 40780E: variable 'v17' is possibly undefined -// 40782E: variable 'v18' is possibly undefined //----- (004078B0) -------------------------------------------------------- _DWORD *__thiscall night::NSASTParse::ast_call(int *this, int a2) @@ -13241,35 +12152,34 @@ _DWORD *__thiscall night::NSASTParse::ast_call(int *this, int a2) { if ( !std::operator==(".", v13) ) return v5; - v5 = (_DWORD *)night::NSASTParse::ast_obj_dot(v5); + v5 = night::NSASTParse::ast_obj_dot(this, (int)v5); std::string::basic_string(v25, "("); v14 = night::NSASTParse::is_punctuation(this, (int)v25); } v15 = v14; std::string::_M_dispose(v25); if ( v15 ) - return (_DWORD *)night::NSASTParse::ast_call(v5); + return night::NSASTParse::ast_call(this, (int)v5); } return v5; } -// 407324: using guessed type __int64 __stdcall night::NSASTParse::ast_obj_dot(_DWORD); //----- (00407CC4) -------------------------------------------------------- -_DWORD *__thiscall night::NSASTParse::make_call_or_just_expression(int *this, int a2) +_DWORD *__thiscall night::NSASTParse::make_call_or_just_expression(int *this, _DWORD *a2) { _DWORD *v3; // ebx void *v5[12]; // [esp+18h] [ebp-30h] BYREF - v3 = (_DWORD *)a2; - if ( !std::operator==((int)&night::NS_TYPE_PROG, a2) - && !std::operator==((int)&night::NS_TYPE_B_TYPE, a2) - && !std::operator==((int)&night::NS_TYPE_KW, a2) - && (!std::operator==((int)&night::NS_TYPE_FUNC, a2) - || !(unsigned __int8)std::operator!=((char *)off_51B9E4, a2 + 132)) ) + v3 = a2; + if ( !std::operator==((int)&night::NS_TYPE_PROG, (int)a2) + && !std::operator==((int)&night::NS_TYPE_B_TYPE, (int)a2) + && !std::operator==((int)&night::NS_TYPE_KW, (int)a2) + && (!std::operator==((int)&night::NS_TYPE_FUNC, (int)a2) + || !(unsigned __int8)std::operator!=((char *)off_51B9E4, (int)(a2 + 33))) ) { std::string::basic_string(v5, "("); if ( night::NSASTParse::is_punctuation(this, (int)v5) ) - v3 = night::NSASTParse::ast_call(this, a2); + v3 = night::NSASTParse::ast_call(this, (int)a2); std::string::_M_dispose(v5); } return v3; @@ -13279,11 +12189,11 @@ _DWORD *__thiscall night::NSASTParse::make_call_or_just_expression(int *this, in _DWORD *__fastcall night::NSASTParse::ast_expression(int *a1) { _DWORD *v1; // eax - int binary_or_just_value; // eax + _DWORD *binary_or_just_value; // eax bool v4; // [esp+4h] [ebp-24h] v1 = night::NSASTParse::ast_dispatch(a1, 0, v4); - binary_or_just_value = night::NSASTParse::make_binary_or_just_value(a1, (int)v1, 0); + binary_or_just_value = (_DWORD *)night::NSASTParse::make_binary_or_just_value(a1, (int)v1, 0); return night::NSASTParse::make_call_or_just_expression(a1, binary_or_just_value); } // 407DAC: variable 'v4' is possibly undefined @@ -13297,84 +12207,77 @@ _DWORD *__thiscall night::NSASTParse::ast_obj_op(int *this, int a2) _DWORD *v6; // ebx _DWORD *v7; // eax _DWORD *v9; // eax - night::NSASTParse *v11; // [esp+0h] [ebp-58h] - bool v12; // [esp+4h] [ebp-54h] - int v13; // [esp+1Ch] [ebp-3Ch] - void *v14[12]; // [esp+28h] [ebp-30h] BYREF + bool v11; // [esp+4h] [ebp-54h] + int v12; // [esp+1Ch] [ebp-3Ch] + void *v13[12]; // [esp+28h] [ebp-30h] BYREF v3 = (void *)this[6]; - std::string::basic_string(v14, (int)&night::std_v_n); - v4 = (void **)night::NSGod::gen_girl(v3, (int)v14); - std::string::_M_dispose(v14); + std::string::basic_string(v13, (int)&night::std_v_n); + v4 = (void **)night::NSGod::gen_girl(v3, (int)v13); + std::string::_M_dispose(v13); v5 = (void *)this[6]; - std::string::basic_string(v14, (int)&night::NS_TYPE_OBJ_PROPERTY); - v6 = night::NSGod::gen_son(v5, (int)v14); - std::string::_M_dispose(v14); + std::string::basic_string(v13, (int)&night::NS_TYPE_OBJ_PROPERTY); + v6 = night::NSGod::gen_son(v5, (int)v13); + std::string::_M_dispose(v13); v6[49] = v4; v6[48] = a2; do { - std::string::basic_string(v14, "["); - v11 = (night::NSASTParse *)night::NSASTParse::ignore_punc(this, (int)v14); - std::string::_M_dispose(v14); - v14[0] = (void *)night::NSASTParse::ast_expression(v11); - std::vector::emplace_back(v4, v14); - std::string::basic_string(v14, "]"); - night::NSASTParse::ignore_punc(this, (int)v14); - std::string::_M_dispose(v14); + std::string::basic_string(v13, "["); + night::NSASTParse::ignore_punc(this, (int)v13); + std::string::_M_dispose(v13); + v13[0] = night::NSASTParse::ast_expression(this); + std::vector::emplace_back(v4, v13); + std::string::basic_string(v13, "]"); + night::NSASTParse::ignore_punc(this, (int)v13); + std::string::_M_dispose(v13); v7 = night::NSToken::peek(this[7]); if ( !v7 ) break; - v13 = (int)(v7 + 15); + v12 = (int)(v7 + 15); if ( std::operator==(";", (int)(v7 + 15)) ) break; } - while ( !(unsigned __int8)std::operator!=("[", v13) ); - if ( night::NSASTParse::is_obj_op_self(this, 0, v12) ) + while ( !(unsigned __int8)std::operator!=("[", v12) ); + if ( night::NSASTParse::is_obj_op_self(this, 0, v11) ) return night::NSASTParse::ast_obj_op_self(this, (int)v6); v9 = night::NSToken::peek(this[7]); if ( v9 && std::operator==(".", (int)(v9 + 15)) ) - return (_DWORD *)night::NSASTParse::ast_obj_dot(v6); + return night::NSASTParse::ast_obj_dot(this, (int)v6); return v6; } -// 407EF4: variable 'v12' is possibly undefined -// 407324: using guessed type __int64 __stdcall night::NSASTParse::ast_obj_dot(_DWORD); +// 407EF4: variable 'v11' is possibly undefined //----- (00407F60) -------------------------------------------------------- _DWORD *__fastcall night::NSASTParse::ast_while(int *a1) { void *v2; // esi _DWORD *v3; // esi - night::NSASTParse *v4; // edx _DWORD *result; // eax - night::NSASTParse *v6; // [esp+0h] [ebp-38h] - night::NSASTParse *v7; // [esp+0h] [ebp-38h] - void *v8[8]; // [esp+18h] [ebp-20h] BYREF + void *v5[8]; // [esp+18h] [ebp-20h] BYREF night::NSToken::next(a1[7]); v2 = (void *)a1[6]; - std::string::basic_string(v8, (int)&night::NS_TYPE_WHILE); - v3 = night::NSGod::gen_son(v2, (int)v8); - std::string::_M_dispose(v8); + std::string::basic_string(v5, (int)&night::NS_TYPE_WHILE); + v3 = night::NSGod::gen_son(v2, (int)v5); + std::string::_M_dispose(v5); v3[51] = 0; v3[54] = 0; - std::string::basic_string(v8, "("); - night::NSASTParse::ignore_punc(a1, (int)v8); - v6 = v4; - std::string::_M_dispose(v8); - v3[51] = night::NSASTParse::ast_expression(v6); - std::string::basic_string(v8, ")"); - v7 = (night::NSASTParse *)night::NSASTParse::ignore_punc(a1, (int)v8); - std::string::_M_dispose(v8); + std::string::basic_string(v5, "("); + night::NSASTParse::ignore_punc(a1, (int)v5); + std::string::_M_dispose(v5); + v3[51] = night::NSASTParse::ast_expression(a1); + std::string::basic_string(v5, ")"); + night::NSASTParse::ignore_punc(a1, (int)v5); + std::string::_M_dispose(v5); ++a1[9]; ++a1[10]; - v3[54] = night::NSASTParse::ast_expression(v7); + v3[54] = night::NSASTParse::ast_expression(a1); result = v3; --a1[9]; --a1[10]; return result; } -// 407FCE: variable 'v4' is possibly undefined //----- (00408042) -------------------------------------------------------- _DWORD *__fastcall night::NSASTParse::ast_do_while(int *a1) @@ -13384,58 +12287,48 @@ _DWORD *__fastcall night::NSASTParse::ast_do_while(int *a1) int v4; // eax int v5; // eax unsigned int v6; // edi - _DWORD *v7; // eax - night::NSASTParse *v8; // edx - _DWORD **v9; // ebx - night::NSASTParse *v10; // edx - night::NSASTParse *v12; // [esp+0h] [ebp-58h] - night::NSASTParse *v13; // [esp+0h] [ebp-58h] - _DWORD *v14; // [esp+18h] [ebp-40h] - unsigned int v15; // [esp+1Ch] [ebp-3Ch] - void *v16[12]; // [esp+28h] [ebp-30h] BYREF + _DWORD **v7; // ebx + _DWORD *v9; // [esp+18h] [ebp-40h] + unsigned int v10; // [esp+1Ch] [ebp-3Ch] + void *v11[12]; // [esp+28h] [ebp-30h] BYREF night::NSToken::next(a1[7]); v2 = (void *)a1[6]; - std::string::basic_string(v16, (int)&night::NS_TYPE_DO_WHILE); - v3 = night::NSGod::gen_son(v2, (int)v16); - std::string::_M_dispose(v16); + std::string::basic_string(v11, (int)&night::NS_TYPE_DO_WHILE); + v3 = night::NSGod::gen_son(v2, (int)v11); + std::string::_M_dispose(v11); v4 = a1[7]; v3[51] = 0; v3[54] = 0; v5 = *(_DWORD *)(v4 + 4); v6 = *(_DWORD *)(v5 + 56); - v15 = *(_DWORD *)(v5 + 52); - std::string::basic_string(v16, "{"); - v7 = night::NSASTParse::is_punctuation(a1, (int)v16); - v12 = v8; - v14 = v7; - std::string::_M_dispose(v16); - if ( !v14 ) + v10 = *(_DWORD *)(v5 + 52); + std::string::basic_string(v11, "{"); + v9 = night::NSASTParse::is_punctuation(a1, (int)v11); + std::string::_M_dispose(v11); + if ( !v9 ) { - v9 = (_DWORD **)a1[7]; - std::string::basic_string(v16, "Expected `{`"); - night::NSToken::err(v9, (int)v16, v15, v6, 1); + v7 = (_DWORD **)a1[7]; + std::string::basic_string(v11, "Expected `{`"); + night::NSToken::err(v7, (int)v11, v10, v6, 1); } ++a1[9]; ++a1[10]; - v3[54] = night::NSASTParse::ast_expression(v12); + v3[54] = night::NSASTParse::ast_expression(a1); --a1[9]; --a1[10]; - std::string::basic_string(v16, "while"); - night::NSASTParse::ignore_buildin_kw(a1, (int)v16); - std::string::_M_dispose(v16); - std::string::basic_string(v16, "("); - night::NSASTParse::ignore_punc(a1, (int)v16); - v13 = v10; - std::string::_M_dispose(v16); - v3[51] = night::NSASTParse::ast_expression(v13); - std::string::basic_string(v16, ")"); - night::NSASTParse::ignore_punc(a1, (int)v16); - std::string::_M_dispose(v16); + std::string::basic_string(v11, "while"); + night::NSASTParse::ignore_buildin_kw(a1, (int)v11); + std::string::_M_dispose(v11); + std::string::basic_string(v11, "("); + night::NSASTParse::ignore_punc(a1, (int)v11); + std::string::_M_dispose(v11); + v3[51] = night::NSASTParse::ast_expression(a1); + std::string::basic_string(v11, ")"); + night::NSASTParse::ignore_punc(a1, (int)v11); + std::string::_M_dispose(v11); return v3; } -// 4080C0: variable 'v8' is possibly undefined -// 408162: variable 'v10' is possibly undefined //----- (004081C4) -------------------------------------------------------- _DWORD *__fastcall night::NSASTParse::ast_switch(int *a1) @@ -13448,258 +12341,237 @@ _DWORD *__fastcall night::NSASTParse::ast_switch(int *a1) _DWORD *v7; // esi int v8; // ecx int v9; // eax - void **v10; // edi + _DWORD *v10; // edi _DWORD **v11; // esi _DWORD *v12; // eax _DWORD *v13; // esi bool v14; // si void **v15; // esi - _DWORD *v16; // eax - bool v17; // di - _DWORD *v18; // eax - night::NSASTParse *v19; // edx - _DWORD *v20; // eax + bool v16; // di + void *v17; // edi + void **v18; // edi + _DWORD *v19; // edi + void *v20; // esi void *v21; // edi - night::NSToken *v22; // eax - night::NSASTParse *v23; // edx - void *v24; // esi - void *v25; // edi - void **v26; // esi - _DWORD **v27; // ebx - _DWORD *v28; // esi + void **v22; // esi + _DWORD **v23; // ebx + _DWORD *v24; // esi + _DWORD *v25; // esi + _DWORD *v26; // esi + void **v27; // esi + _DWORD **v28; // ebx _DWORD *v29; // esi - _DWORD *v30; // eax - night::NSASTParse *v31; // edx - _DWORD *v32; // esi - void **v33; // esi - _DWORD **v34; // ebx - _DWORD *v35; // esi - night::NSASTParse *v37; // [esp+0h] [ebp-88h] - night::NSASTParse *v38; // [esp+0h] [ebp-88h] - night::NSASTParse *v39; // [esp+0h] [ebp-88h] - unsigned int v40; // [esp+10h] [ebp-78h] - unsigned int v41; // [esp+14h] [ebp-74h] - int v42; // [esp+18h] [ebp-70h] - bool v43; // [esp+18h] [ebp-70h] - void *v44; // [esp+1Ch] [ebp-6Ch] - _DWORD *v45; // [esp+1Ch] [ebp-6Ch] - night::NSToken *v46; // [esp+24h] [ebp-64h] BYREF - void *v47[6]; // [esp+28h] [ebp-60h] BYREF - void *v48[6]; // [esp+40h] [ebp-48h] BYREF - void *v49[12]; // [esp+58h] [ebp-30h] BYREF + unsigned int v31; // [esp+10h] [ebp-78h] + unsigned int v32; // [esp+14h] [ebp-74h] + int v33; // [esp+18h] [ebp-70h] + bool v34; // [esp+18h] [ebp-70h] + void *v35; // [esp+1Ch] [ebp-6Ch] + _DWORD *v36; // [esp+1Ch] [ebp-6Ch] + night::NSToken *v37; // [esp+24h] [ebp-64h] BYREF + void *v38[6]; // [esp+28h] [ebp-60h] BYREF + void *v39[6]; // [esp+40h] [ebp-48h] BYREF + void *v40[12]; // [esp+58h] [ebp-30h] BYREF night::NSToken::next(a1[7]); v2 = (void *)a1[6]; - std::string::basic_string(v49, (int)&night::std_v_n); - v3 = night::NSGod::gen_girl(v2, (int)v49); - std::string::_M_dispose(v49); + std::string::basic_string(v40, (int)&night::std_v_n); + v3 = night::NSGod::gen_girl(v2, (int)v40); + std::string::_M_dispose(v40); v4 = (void *)a1[6]; - std::string::basic_string(v49, (int)&night::std_v_v_n); - v42 = night::NSGod::gen_girl(v4, (int)v49); - std::string::_M_dispose(v49); + std::string::basic_string(v40, (int)&night::std_v_v_n); + v33 = night::NSGod::gen_girl(v4, (int)v40); + std::string::_M_dispose(v40); v5 = (void *)a1[6]; - std::string::basic_string(v49, (int)&night::std_v_n); - v6 = night::NSGod::gen_girl(v5, (int)v49); - std::string::_M_dispose(v49); - v44 = (void *)a1[6]; - std::string::basic_string(v49, (int)&night::NS_TYPE_SWITCH); - v45 = night::NSGod::gen_son(v44, (int)v49); - std::string::_M_dispose(v49); - v45[58] = v3; - v45[51] = 0; - v45[59] = v42; - v45[60] = v6; - std::string::basic_string(v49, "("); - v37 = (night::NSASTParse *)night::NSASTParse::ignore_punc(a1, (int)v49); - std::string::_M_dispose(v49); - v45[51] = night::NSASTParse::ast_expression(v37); - std::string::basic_string(v49, ")"); - night::NSASTParse::ignore_punc(a1, (int)v49); - std::string::_M_dispose(v49); - std::string::basic_string(v49, "{"); - night::NSASTParse::ignore_punc(a1, (int)v49); - std::string::_M_dispose(v49); + std::string::basic_string(v40, (int)&night::std_v_n); + v6 = night::NSGod::gen_girl(v5, (int)v40); + std::string::_M_dispose(v40); + v35 = (void *)a1[6]; + std::string::basic_string(v40, (int)&night::NS_TYPE_SWITCH); + v36 = night::NSGod::gen_son(v35, (int)v40); + std::string::_M_dispose(v40); + v36[58] = v3; + v36[51] = 0; + v36[59] = v33; + v36[60] = v6; + std::string::basic_string(v40, "("); + night::NSASTParse::ignore_punc(a1, (int)v40); + std::string::_M_dispose(v40); + v36[51] = night::NSASTParse::ast_expression(a1); + std::string::basic_string(v40, ")"); + night::NSASTParse::ignore_punc(a1, (int)v40); + std::string::_M_dispose(v40); + std::string::basic_string(v40, "{"); + night::NSASTParse::ignore_punc(a1, (int)v40); + std::string::_M_dispose(v40); ++a1[9]; while ( 1 ) { - std::string::basic_string(v49, "case"); - v7 = night::NSASTParse::is_buildin_keywords(a1, (int)v49); - std::string::_M_dispose(v49); + std::string::basic_string(v40, "case"); + v7 = night::NSASTParse::is_buildin_keywords(a1, (int)v40); + std::string::_M_dispose(v40); if ( !v7 ) break; - std::string::basic_string(v49, "case"); - night::NSASTParse::ignore_buildin_kw(a1, (int)v49); - std::string::_M_dispose(v49); + std::string::basic_string(v40, "case"); + night::NSASTParse::ignore_buildin_kw(a1, (int)v40); + std::string::_M_dispose(v40); v8 = a1[7]; v9 = *(_DWORD *)(v8 + 4); - v40 = *(_DWORD *)(v9 + 52); - v41 = *(_DWORD *)(v9 + 56); - v10 = (void **)night::NSToken::peek(v8); + v31 = *(_DWORD *)(v9 + 52); + v32 = *(_DWORD *)(v9 + 56); + v10 = night::NSToken::peek(v8); if ( !v10 ) goto LABEL_4; - std::string::basic_string(v48, (char *)&asc_51BF80[2]); - v43 = 1; - if ( !night::NSASTParse::is_op(a1, (int)v48) ) + std::string::basic_string(v39, (char *)&asc_51BF80[2]); + v34 = 1; + if ( !night::NSASTParse::is_op(a1, (int)v39) ) { - std::string::basic_string(v49, (char *)&asc_51BF80[4]); - v43 = night::NSASTParse::is_op(a1, (int)v49) != 0; - std::string::_M_dispose(v49); + std::string::basic_string(v40, (char *)&asc_51BF80[4]); + v34 = night::NSASTParse::is_op(a1, (int)v40) != 0; + std::string::_M_dispose(v40); } - std::string::_M_dispose(v48); - if ( v43 ) + std::string::_M_dispose(v39); + if ( v34 ) { night::NSToken::next(a1[7]); v12 = night::NSToken::peek(a1[7]); v13 = v12; if ( !v12 || !std::operator==((int)&night::NS_TYPE_NUM, (int)v12) ) goto LABEL_4; - v10 += 15; - std::operator+(v49, (int)v10, (int)(v13 + 15)); - std::string::operator=(v13 + 15, v49); - std::string::_M_dispose(v49); + std::operator+(v40, (int)(v10 + 15), (int)(v13 + 15)); + std::string::operator=(v13 + 15, v40); + std::string::_M_dispose(v40); } else if ( !std::operator==((int)&night::NS_TYPE_VAR, (int)v10) && !std::operator==((int)&night::NS_TYPE_NUM, (int)v10) && !std::operator==((int)&night::NS_TYPE_STR, (int)v10) ) { - std::string::basic_string(v48, "true"); - if ( night::NSASTParse::is_buildin_keywords(a1, (int)v48) ) + std::string::basic_string(v39, "true"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v39) ) { v14 = 1; } else { - v10 = v49; - std::string::basic_string(v49, "false"); - v14 = night::NSASTParse::is_buildin_keywords(a1, (int)v49) != 0; - std::string::_M_dispose(v49); + std::string::basic_string(v40, "false"); + v14 = night::NSASTParse::is_buildin_keywords(a1, (int)v40) != 0; + std::string::_M_dispose(v40); } - std::string::_M_dispose(v48); + std::string::_M_dispose(v39); if ( !v14 ) { LABEL_4: v11 = (_DWORD **)a1[7]; - std::string::basic_string(v49, "Expected variable|numer|boolean|string"); - night::NSToken::err(v11, (int)v49, v40, v41, 1); + std::string::basic_string(v40, "Expected variable|numer|boolean|string"); + night::NSToken::err(v11, (int)v40, v31, v32, 1); } } - v15 = (void **)v45[58]; - v49[0] = night::NSToken::next(a1[7]); - std::vector::emplace_back(v15, v49); - std::string::basic_string(v49, ":"); - night::NSASTParse::ignore_punc(a1, (int)v49); - std::string::_M_dispose(v49); - v46 = 0; + v15 = (void **)v36[58]; + v40[0] = night::NSToken::next(a1[7]); + std::vector::emplace_back(v15, v40); + std::string::basic_string(v40, ":"); + night::NSASTParse::ignore_punc(a1, (int)v40); + std::string::_M_dispose(v40); + v37 = 0; while ( 1 ) { - std::string::basic_string(v47, "case"); - v16 = night::NSASTParse::is_buildin_keywords(a1, (int)v47); - v38 = (night::NSASTParse *)v10; - if ( v16 ) + std::string::basic_string(v38, "case"); + if ( night::NSASTParse::is_buildin_keywords(a1, (int)v38) ) { - v17 = 0; + v16 = 0; } else { - std::string::basic_string(v48, "default"); - v18 = night::NSASTParse::is_buildin_keywords(a1, (int)v48); - v17 = 0; - v38 = v19; - if ( !v18 ) + std::string::basic_string(v39, "default"); + v16 = 0; + if ( !night::NSASTParse::is_buildin_keywords(a1, (int)v39) ) { - std::string::basic_string(v49, "}"); - v20 = night::NSASTParse::is_punctuation(a1, (int)v49); - v38 = 0; - v17 = v20 == 0; - std::string::_M_dispose(v49); + std::string::basic_string(v40, "}"); + v16 = night::NSASTParse::is_punctuation(a1, (int)v40) == 0; + std::string::_M_dispose(v40); } - std::string::_M_dispose(v48); + std::string::_M_dispose(v39); } - std::string::_M_dispose(v47); - if ( !v17 ) + std::string::_M_dispose(v38); + if ( !v16 ) break; - if ( !v46 ) + if ( !v37 ) { - v21 = (void *)a1[6]; - std::string::basic_string(v49, (int)&night::std_v_n); - v22 = (night::NSToken *)night::NSGod::gen_girl(v21, (int)v49); - v38 = v23; - v46 = v22; - std::string::_M_dispose(v49); + v17 = (void *)a1[6]; + std::string::basic_string(v40, (int)&night::std_v_n); + v37 = (night::NSToken *)night::NSGod::gen_girl(v17, (int)v40); + std::string::_M_dispose(v40); } - v10 = (void **)v46; - v49[0] = (void *)night::NSASTParse::ast_expression(v38); - std::vector::emplace_back(v10, v49); + v18 = (void **)v37; + v40[0] = night::NSASTParse::ast_expression(a1); + std::vector::emplace_back(v18, v40); while ( !night::NSToken::eof(a1[7]) ) { - std::string::basic_string(v49, ";"); - v10 = (void **)night::NSASTParse::is_punctuation(a1, (int)v49); - std::string::_M_dispose(v49); - if ( !v10 ) + std::string::basic_string(v40, ";"); + v19 = night::NSASTParse::is_punctuation(a1, (int)v40); + std::string::_M_dispose(v40); + if ( !v19 ) break; night::NSToken::next(a1[7]); } } - if ( !v46 ) + if ( !v37 ) { - v24 = (void *)a1[6]; - std::string::basic_string(v49, (int)&night::std_v_n); - v46 = (night::NSToken *)night::NSGod::gen_girl(v24, (int)v49); - std::string::_M_dispose(v49); - v25 = (void *)a1[6]; - v26 = (void **)v46; - std::string::basic_string(v49, (int)&night::NS_TYPE_SKIP); - v48[0] = night::NSGod::gen_son(v25, (int)v49); - std::vector::emplace_back(v26, v48); - std::string::_M_dispose(v49); + v20 = (void *)a1[6]; + std::string::basic_string(v40, (int)&night::std_v_n); + v37 = (night::NSToken *)night::NSGod::gen_girl(v20, (int)v40); + std::string::_M_dispose(v40); + v21 = (void *)a1[6]; + v22 = (void **)v37; + std::string::basic_string(v40, (int)&night::NS_TYPE_SKIP); + v39[0] = night::NSGod::gen_son(v21, (int)v40); + std::vector::emplace_back(v22, v39); + std::string::_M_dispose(v40); } - std::vector>>::push_back(v45[59], &v46); + std::vector>>::push_back(v36[59], &v37); if ( night::NSToken::eof(a1[7]) ) { - v27 = (_DWORD **)a1[7]; - std::string::basic_string(v49, "End of file"); - night::NSToken::err(v27, (int)v49, 0, 0, 0); + v23 = (_DWORD **)a1[7]; + std::string::basic_string(v40, "End of file"); + night::NSToken::err(v23, (int)v40, 0, 0, 0); } - std::string::basic_string(v49, "}"); - v28 = night::NSASTParse::is_punctuation(a1, (int)v49); - std::string::_M_dispose(v49); - if ( v28 ) + std::string::basic_string(v40, "}"); + v24 = night::NSASTParse::is_punctuation(a1, (int)v40); + std::string::_M_dispose(v40); + if ( v24 ) break; - std::string::basic_string(v49, "default"); - v29 = night::NSASTParse::is_buildin_keywords(a1, (int)v49); - std::string::_M_dispose(v49); - if ( v29 ) + std::string::basic_string(v40, "default"); + v25 = night::NSASTParse::is_buildin_keywords(a1, (int)v40); + std::string::_M_dispose(v40); + if ( v25 ) { - std::string::basic_string(v49, "default"); - night::NSASTParse::ignore_buildin_kw(a1, (int)v49); - std::string::_M_dispose(v49); - std::string::basic_string(v49, ":"); - night::NSASTParse::ignore_punc(a1, (int)v49); - std::string::_M_dispose(v49); + std::string::basic_string(v40, "default"); + night::NSASTParse::ignore_buildin_kw(a1, (int)v40); + std::string::_M_dispose(v40); + std::string::basic_string(v40, ":"); + night::NSASTParse::ignore_punc(a1, (int)v40); + std::string::_M_dispose(v40); while ( 1 ) { - std::string::basic_string(v49, "}"); - v30 = night::NSASTParse::is_punctuation(a1, (int)v49); - v39 = v31; - v32 = v30; - std::string::_M_dispose(v49); - if ( v32 ) + std::string::basic_string(v40, "}"); + v26 = night::NSASTParse::is_punctuation(a1, (int)v40); + std::string::_M_dispose(v40); + if ( v26 ) break; - v33 = (void **)v45[60]; - v49[0] = (void *)night::NSASTParse::ast_expression(v39); - std::vector::emplace_back(v33, v49); + v27 = (void **)v36[60]; + v40[0] = night::NSASTParse::ast_expression(a1); + std::vector::emplace_back(v27, v40); if ( night::NSToken::eof(a1[7]) ) { - v34 = (_DWORD **)a1[7]; - std::string::basic_string(v49, "End of file"); - night::NSToken::err(v34, (int)v49, 0, 0, 0); + v28 = (_DWORD **)a1[7]; + std::string::basic_string(v40, "End of file"); + night::NSToken::err(v28, (int)v40, 0, 0, 0); } while ( 1 ) { - std::string::basic_string(v49, ";"); - v35 = night::NSASTParse::is_punctuation(a1, (int)v49); - std::string::_M_dispose(v49); - if ( !v35 ) + std::string::basic_string(v40, ";"); + v29 = night::NSASTParse::is_punctuation(a1, (int)v40); + std::string::_M_dispose(v40); + if ( !v29 ) break; night::NSToken::next(a1[7]); } @@ -13708,17 +12580,14 @@ LABEL_4: } } --a1[9]; - std::string::basic_string(v49, "}"); - night::NSASTParse::ignore_punc(a1, (int)v49); - std::string::_M_dispose(v49); - return v45; + std::string::basic_string(v40, "}"); + night::NSASTParse::ignore_punc(a1, (int)v40); + std::string::_M_dispose(v40); + return v36; } -// 408604: variable 'v19' is possibly undefined -// 408691: variable 'v23' is possibly undefined -// 408898: variable 'v31' is possibly undefined //----- (004089E4) -------------------------------------------------------- -_DWORD *__fastcall night::NSASTParse::top_down(int *a1) +unsigned int **__fastcall night::NSASTParse::top_down(int *a1) { void *v2; // edi _DWORD *v3; // ebx @@ -13729,7 +12598,7 @@ _DWORD *__fastcall night::NSASTParse::top_down(int *a1) _DWORD **v8; // esi _DWORD *v9; // edi void *v10; // ebx - _DWORD *v11; // ebx + unsigned int **v11; // ebx unsigned int v13; // [esp+14h] [ebp-44h] unsigned int v14; // [esp+18h] [ebp-40h] void **v15; // [esp+1Ch] [ebp-3Ch] @@ -13791,15 +12660,15 @@ _DWORD *__fastcall night::NSASTParse::top_down(int *a1) } v10 = (void *)a1[6]; std::string::basic_string(v17, (int)&night::NS_TYPE_PROG); - v11 = night::NSGod::gen_son(v10, (int)v17); + v11 = (unsigned int **)night::NSGod::gen_son(v10, (int)v17); std::string::_M_dispose(v17); - v11[57] = v15; + v11[57] = (unsigned int *)v15; std::string::operator=(v11 + 27, (char *)off_51B9E4); return v11; } //----- (00408CF4) -------------------------------------------------------- -_DWORD *__fastcall night::NSASTParse::ast_require(int *a1) +unsigned int **__fastcall night::NSASTParse::ast_require(int *a1) { void *v2; // esi void **v3; // edi @@ -13813,14 +12682,14 @@ _DWORD *__fastcall night::NSASTParse::ast_require(int *a1) void *v11; // esi void *v12; // esi void *v13; // esi - _DWORD *v14; // ecx + unsigned int **v14; // ecx _DWORD *v15; // eax int v16; // esi _DWORD *v17; // eax unsigned int v19; // [esp+18h] [ebp-60h] unsigned int v20; // [esp+1Ch] [ebp-5Ch] void *v21; // [esp+1Ch] [ebp-5Ch] - _DWORD *v22; // [esp+28h] [ebp-50h] BYREF + unsigned int **v22; // [esp+28h] [ebp-50h] BYREF _DWORD *v23; // [esp+2Ch] [ebp-4Ch] BYREF void *v24[2]; // [esp+30h] [ebp-48h] BYREF char v25; // [esp+38h] [ebp-40h] BYREF @@ -13830,14 +12699,14 @@ _DWORD *__fastcall night::NSASTParse::ast_require(int *a1) std::string::basic_string(v26, (int)&night::std_v_n); v3 = (void **)night::NSGod::gen_girl(v2, (int)v26); std::string::_M_dispose(v26); - v22 = night::NSToken::next(a1[7]); + v22 = (unsigned int **)night::NSToken::next(a1[7]); std::operator+(v26, (int)&night::nsv_, (int)(v22 + 15)); std::string::operator=(v22 + 15, v26); std::string::_M_dispose(v26); std::vector::push_back(v3, &v22); v4 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_PUNC); - v22 = night::NSGod::gen_son(v4, (int)v26); + v22 = (unsigned int **)night::NSGod::gen_son(v4, (int)v26); std::string::_M_dispose(v26); std::string::operator=(v22 + 15, "("); std::vector::push_back(v3, &v22); @@ -13871,29 +12740,29 @@ _DWORD *__fastcall night::NSASTParse::ast_require(int *a1) std::string::_M_dispose(v24); v21 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_PUNC); - v22 = night::NSGod::gen_son(v21, (int)v26); + v22 = (unsigned int **)night::NSGod::gen_son(v21, (int)v26); std::string::_M_dispose(v26); std::string::operator=(v22 + 15, ")"); std::vector::push_back(v3, &v22); night::NSToken::next(a1[7]); v11 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_PUNC); - v22 = night::NSGod::gen_son(v11, (int)v26); + v22 = (unsigned int **)night::NSGod::gen_son(v11, (int)v26); std::string::_M_dispose(v26); std::string::operator=(v22 + 15, "("); std::vector::push_back(v3, &v22); v12 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_PUNC); - v22 = night::NSGod::gen_son(v12, (int)v26); + v22 = (unsigned int **)night::NSGod::gen_son(v12, (int)v26); std::string::_M_dispose(v26); std::string::operator=(v22 + 15, ")"); std::vector::push_back(v3, &v22); v13 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_PROG_NO_SEM_REQUIRE); - v22 = night::NSGod::gen_son(v13, (int)v26); + v22 = (unsigned int **)night::NSGod::gen_son(v13, (int)v26); std::string::_M_dispose(v26); v14 = v22; - v22[57] = v3; + v22[57] = (unsigned int *)v3; std::string::operator=(v14 + 27, (char *)off_51B9E4); v15 = night::NSToken::peek(a1[7]); if ( !v15 ) @@ -13904,13 +12773,14 @@ _DWORD *__fastcall night::NSASTParse::ast_require(int *a1) if ( std::operator==(".", v16) ) { v17 = night::NSASTParse::ast_obj_dot(a1, (int)v22); - return night::NSASTParse::make_call_or_just_expression(a1, (int)v17); + return (unsigned int **)night::NSASTParse::make_call_or_just_expression(a1, v17); } return v22; } v17 = night::NSASTParse::ast_obj_op(a1, (int)v22); - return night::NSASTParse::make_call_or_just_expression(a1, (int)v17); + return (unsigned int **)night::NSASTParse::make_call_or_just_expression(a1, v17); } +// 586E40: using guessed type void *night::nsv_; //----- (004090B2) -------------------------------------------------------- _DWORD *__fastcall night::NSASTParse::ast_code_block(int *a1) @@ -13918,9 +12788,9 @@ _DWORD *__fastcall night::NSASTParse::ast_code_block(int *a1) void **list_by_parser; // edi void *v3; // esi void **v4; // esi - unsigned int *v5; // ecx + unsigned int **v5; // ecx void *v6; // edi - unsigned int *v7; // ecx + unsigned int **v7; // ecx void *v9; // [esp+2Ch] [ebp-9Ch] void *v10; // [esp+2Ch] [ebp-9Ch] void *v11; // [esp+2Ch] [ebp-9Ch] @@ -13949,7 +12819,7 @@ _DWORD *__fastcall night::NSASTParse::ast_code_block(int *a1) std::string::basic_string(v16, (int)&night::NS_TYPE_PUNC); v15[0] = night::NSGod::gen_son(v9, (int)v16); std::string::_M_dispose(v16); - std::string::operator=((unsigned int *)v15[0] + 15, "{"); + std::string::operator=((unsigned int **)v15[0] + 15, "{"); std::vector::push_back(v4, v15); if ( *list_by_parser != list_by_parser[1] ) { @@ -13957,7 +12827,7 @@ _DWORD *__fastcall night::NSASTParse::ast_code_block(int *a1) std::string::basic_string(v16, (int)&night::NS_TYPE_PROG); v15[0] = night::NSGod::gen_son(v10, (int)v16); std::string::_M_dispose(v16); - v5 = (unsigned int *)v15[0]; + v5 = (unsigned int **)v15[0]; *((_DWORD *)v15[0] + 57) = list_by_parser; std::string::operator=(v5 + 27, (char *)off_51B9E4); std::vector::push_back(v4, v15); @@ -13966,16 +12836,16 @@ _DWORD *__fastcall night::NSASTParse::ast_code_block(int *a1) std::string::basic_string(v16, (int)&night::NS_TYPE_PUNC); v15[0] = night::NSGod::gen_son(v11, (int)v16); std::string::_M_dispose(v16); - std::string::operator=((unsigned int *)v15[0] + 15, "}"); + std::string::operator=((unsigned int **)v15[0] + 15, "}"); std::vector::push_back(v4, v15); v6 = (void *)a1[6]; std::string::basic_string(v16, (int)&night::NS_TYPE_PROG_NO_SEM); v15[0] = night::NSGod::gen_son(v6, (int)v16); std::string::_M_dispose(v16); - v7 = (unsigned int *)v15[0]; + v7 = (unsigned int **)v15[0]; *((_DWORD *)v15[0] + 57) = v4; std::string::operator=(v7 + 27, (char *)off_51B9E4); - return night::NSASTParse::make_call_or_just_expression(a1, (int)v15[0]); + return night::NSASTParse::make_call_or_just_expression(a1, (_DWORD *)v15[0]); } //----- (0040935E) -------------------------------------------------------- @@ -13984,7 +12854,7 @@ _DWORD *__fastcall night::NSASTParse::ast_function(int *a1) void *v2; // esi _DWORD *v3; // esi _DWORD *v4; // eax - unsigned int *v5; // ecx + unsigned int **v5; // ecx _DWORD *v6; // edi bool v7; // al int v8; // ecx @@ -14002,9 +12872,9 @@ _DWORD *__fastcall night::NSASTParse::ast_function(int *a1) std::string::_M_assign((int)v3, (int)&night::NS_TYPE_FUNC); night::NSToken::next(a1[7]); v4 = night::NSToken::peek(a1[7]); - v5 = v3 + 33; + v5 = (unsigned int **)(v3 + 33); v6 = v4; - if ( v4 && (v7 = std::operator==((int)&night::NS_TYPE_VAR, (int)v4), v5 = v3 + 33, v7) ) + if ( v4 && (v7 = std::operator==((int)&night::NS_TYPE_VAR, (int)v4), v5 = (unsigned int **)(v3 + 33), v7) ) { std::string::_M_assign((int)v5, (int)(v6 + 15)); std::string::_M_assign((int)(v3 + 6), (int)(v6 + 6)); @@ -14041,9 +12911,9 @@ _DWORD *__fastcall night::NSASTParse::ast_new_array(int *a1) void **list_by_parser; // edi void *v3; // esi void **v4; // esi - unsigned int *v5; // ecx + unsigned int **v5; // ecx void *v6; // edi - unsigned int *v7; // ecx + unsigned int **v7; // ecx _DWORD *v8; // esi _DWORD *v9; // eax int v10; // edi @@ -14075,7 +12945,7 @@ _DWORD *__fastcall night::NSASTParse::ast_new_array(int *a1) std::string::basic_string(v20, (int)&night::NS_TYPE_PUNC); v19[0] = night::NSGod::gen_son(v13, (int)v20); std::string::_M_dispose(v20); - std::string::operator=((unsigned int *)v19[0] + 15, "["); + std::string::operator=((unsigned int **)v19[0] + 15, "["); std::vector::push_back(v4, v19); if ( *list_by_parser != list_by_parser[1] ) { @@ -14083,7 +12953,7 @@ _DWORD *__fastcall night::NSASTParse::ast_new_array(int *a1) std::string::basic_string(v20, (int)&night::NS_TYPE_PROG); v19[0] = night::NSGod::gen_son(v14, (int)v20); std::string::_M_dispose(v20); - v5 = (unsigned int *)v19[0]; + v5 = (unsigned int **)v19[0]; *((_DWORD *)v19[0] + 57) = list_by_parser; std::string::operator=(v5 + 27, ","); std::vector::push_back(v4, v19); @@ -14092,16 +12962,16 @@ _DWORD *__fastcall night::NSASTParse::ast_new_array(int *a1) std::string::basic_string(v20, (int)&night::NS_TYPE_PUNC); v19[0] = night::NSGod::gen_son(v15, (int)v20); std::string::_M_dispose(v20); - std::string::operator=((unsigned int *)v19[0] + 15, "]"); + std::string::operator=((unsigned int **)v19[0] + 15, "]"); std::vector::push_back(v4, v19); v6 = (void *)a1[6]; std::string::basic_string(v20, (int)&night::NS_TYPE_ARRAY); v19[0] = night::NSGod::gen_son(v6, (int)v20); std::string::_M_dispose(v20); - v7 = (unsigned int *)v19[0]; + v7 = (unsigned int **)v19[0]; *((_DWORD *)v19[0] + 57) = v4; std::string::operator=(v7 + 27, (char *)off_51B9E4); - v8 = night::NSASTParse::make_call_or_just_expression(a1, (int)v19[0]); + v8 = night::NSASTParse::make_call_or_just_expression(a1, (_DWORD *)v19[0]); v9 = night::NSToken::peek(a1[7]); if ( v9 ) { @@ -14121,67 +12991,62 @@ _DWORD *__fastcall night::NSASTParse::ast_for(int *a1) _DWORD *v3; // esi int v4; // edi _DWORD **v5; // ebx - night::NSASTParse *v6; // edx - _DWORD **v7; // ebx + _DWORD **v6; // ebx _DWORD *result; // eax - night::NSASTParse *v9; // [esp+0h] [ebp-C8h] - void *v10; // [esp+2Ch] [ebp-9Ch] - void *v11[6]; // [esp+38h] [ebp-90h] BYREF - void *v12[6]; // [esp+50h] [ebp-78h] BYREF - void *v13[6]; // [esp+68h] [ebp-60h] BYREF - void *v14[6]; // [esp+80h] [ebp-48h] BYREF - void *v15[12]; // [esp+98h] [ebp-30h] BYREF + void *v8; // [esp+2Ch] [ebp-9Ch] + void *v9[6]; // [esp+38h] [ebp-90h] BYREF + void *v10[6]; // [esp+50h] [ebp-78h] BYREF + void *v11[6]; // [esp+68h] [ebp-60h] BYREF + void *v12[6]; // [esp+80h] [ebp-48h] BYREF + void *v13[12]; // [esp+98h] [ebp-30h] BYREF night::NSToken::next(a1[7]); v2 = (void *)a1[6]; - std::string::basic_string(v15, (int)&night::NS_TYPE_FOR); - v3 = night::NSGod::gen_son(v2, (int)v15); - std::string::_M_dispose(v15); + std::string::basic_string(v13, (int)&night::NS_TYPE_FOR); + v3 = night::NSGod::gen_son(v2, (int)v13); + std::string::_M_dispose(v13); v3[57] = 0; v3[54] = 0; - std::string::basic_string(v15, (char *)off_51B9E4); - std::string::basic_string(v14, "ast_expression"); - std::string::basic_string(v13, ";"); - std::string::basic_string(v12, ")"); - std::string::basic_string(v11, "("); - v3[57] = night::NSASTParse::make_list_by_parser(a1, (int)v11, (int)v12, (int)v13, (int)v14, 0, 2, (int)v15); + std::string::basic_string(v13, (char *)off_51B9E4); + std::string::basic_string(v12, "ast_expression"); + std::string::basic_string(v11, ";"); + std::string::basic_string(v10, ")"); + std::string::basic_string(v9, "("); + v3[57] = night::NSASTParse::make_list_by_parser(a1, (int)v9, (int)v10, (int)v11, (int)v12, 0, 2, (int)v13); + std::string::_M_dispose(v9); + std::string::_M_dispose(v10); std::string::_M_dispose(v11); std::string::_M_dispose(v12); std::string::_M_dispose(v13); - std::string::_M_dispose(v14); - std::string::_M_dispose(v15); v4 = v3[57]; if ( !v4 ) { v5 = (_DWORD **)a1[7]; - std::string::basic_string(v15, "Expected `for(xxx;xxx;xxx)`"); - night::NSToken::err(v5, (int)v15, 0, 0, 0); + std::string::basic_string(v13, "Expected `for(xxx;xxx;xxx)`"); + night::NSToken::err(v5, (int)v13, 0, 0, 0); } if ( *(_DWORD *)(v4 + 4) - *(_DWORD *)v4 == 8 ) { - v10 = (void *)a1[6]; - std::string::basic_string(v15, (int)&night::NS_TYPE_SKIP); - v14[0] = night::NSGod::gen_son(v10, (int)v15); - std::vector::emplace_back((void **)v4, v14); - v9 = v6; - std::string::_M_dispose(v15); + v8 = (void *)a1[6]; + std::string::basic_string(v13, (int)&night::NS_TYPE_SKIP); + v12[0] = night::NSGod::gen_son(v8, (int)v13); + std::vector::emplace_back((void **)v4, v12); + std::string::_M_dispose(v13); } if ( *(_DWORD *)(v3[57] + 4) - *(_DWORD *)v3[57] != 12 ) { - v7 = (_DWORD **)a1[7]; - std::string::basic_string(v15, "Expected `for(xxx;xxx;xxx)`"); - night::NSToken::err(v7, (int)v15, 0, 0, 0); + v6 = (_DWORD **)a1[7]; + std::string::basic_string(v13, "Expected `for(xxx;xxx;xxx)`"); + night::NSToken::err(v6, (int)v13, 0, 0, 0); } ++a1[9]; ++a1[10]; - v3[54] = night::NSASTParse::ast_expression(v9); + v3[54] = night::NSASTParse::ast_expression(a1); result = v3; --a1[9]; --a1[10]; return result; } -// 4099E1: variable 'v6' is possibly undefined -// 409A87: variable 'v9' is possibly undefined //----- (00409AA2) -------------------------------------------------------- _DWORD *__fastcall night::NSASTParse::ast_obj_block(int *a1) @@ -14194,7 +13059,7 @@ _DWORD *__fastcall night::NSASTParse::ast_obj_block(int *a1) _DWORD *v7; // eax int v8; // esi _DWORD **v9; // ebx - unsigned int *v10; // eax + unsigned int **v10; // eax _DWORD *v11; // eax _DWORD **v12; // ebx int v13; // esi @@ -14202,13 +13067,13 @@ _DWORD *__fastcall night::NSASTParse::ast_obj_block(int *a1) _DWORD **v15; // ebx void *v16; // esi void *v17; // esi - unsigned int *v18; // ecx + unsigned int **v18; // ecx _DWORD *v19; // eax int v20; // esi - unsigned int *v21; // eax - _DWORD *v23; // [esp+18h] [ebp-40h] + _DWORD *v21; // eax + unsigned int *v23; // [esp+18h] [ebp-40h] void *v24; // [esp+1Ch] [ebp-3Ch] - unsigned int *v25; // [esp+24h] [ebp-34h] BYREF + unsigned int **v25; // [esp+24h] [ebp-34h] BYREF void *v26[12]; // [esp+28h] [ebp-30h] BYREF v2 = (void *)a1[6]; @@ -14220,7 +13085,7 @@ _DWORD *__fastcall night::NSASTParse::ast_obj_block(int *a1) std::string::_M_dispose(v26); v4 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_PUNC); - v25 = night::NSGod::gen_son(v4, (int)v26); + v25 = (unsigned int **)night::NSGod::gen_son(v4, (int)v26); std::string::_M_dispose(v26); std::string::operator=(v25 + 15, "{"); std::vector::push_back(v3, &v25); @@ -14255,11 +13120,11 @@ LABEL_2: v23 = night::NSASTParse::ast_expression_no_comma(a1); v24 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_K_V); - v25 = night::NSGod::gen_son(v24, (int)v26); + v25 = (unsigned int **)night::NSGod::gen_son(v24, (int)v26); std::string::_M_dispose(v26); v10 = v25; - v25[47] = v8; - v10[48] = (unsigned int)v23; + v25[47] = (unsigned int *)v8; + v10[48] = v23; std::vector::push_back(v3, &v25); v11 = night::NSToken::peek(a1[7]); if ( !v11 ) @@ -14291,23 +13156,23 @@ LABEL_2: std::string::_M_dispose(v26); v16 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_PUNC); - v25 = night::NSGod::gen_son(v16, (int)v26); + v25 = (unsigned int **)night::NSGod::gen_son(v16, (int)v26); std::string::_M_dispose(v26); std::string::operator=(v25 + 15, "}"); std::vector::push_back(v3, &v25); v17 = (void *)a1[6]; std::string::basic_string(v26, (int)&night::NS_TYPE_OBJ_BLOCK); - v25 = night::NSGod::gen_son(v17, (int)v26); + v25 = (unsigned int **)night::NSGod::gen_son(v17, (int)v26); std::string::_M_dispose(v26); v18 = v25; - v25[57] = (unsigned int)v3; + v25[57] = (unsigned int *)v3; std::string::operator=(v18 + 27, (char *)off_51B9E4); v19 = night::NSToken::peek(a1[7]); if ( !v19 ) { LABEL_19: v21 = v25; - return night::NSASTParse::make_call_or_just_expression(a1, (int)v21); + return night::NSASTParse::make_call_or_just_expression(a1, v21); } v20 = (int)(v19 + 15); if ( !std::operator==("[", (int)(v19 + 15)) ) @@ -14315,16 +13180,17 @@ LABEL_19: if ( std::operator==(".", v20) ) { v21 = night::NSASTParse::ast_obj_dot(a1, (int)v25); - return night::NSASTParse::make_call_or_just_expression(a1, (int)v21); + return night::NSASTParse::make_call_or_just_expression(a1, v21); } goto LABEL_19; } v21 = night::NSASTParse::ast_obj_op(a1, (int)v25); - return night::NSASTParse::make_call_or_just_expression(a1, (int)v21); + return night::NSASTParse::make_call_or_just_expression(a1, v21); } +// 586E40: using guessed type void *night::nsv_; //----- (00409ED6) -------------------------------------------------------- -_DWORD *__fastcall night::NSASTParse::ast_var(_DWORD *a1) +unsigned int **__fastcall night::NSASTParse::ast_var(_DWORD *a1) { void *v2; // edi int v3; // ecx @@ -14337,7 +13203,7 @@ _DWORD *__fastcall night::NSASTParse::ast_var(_DWORD *a1) _DWORD *v10; // eax _DWORD *v11; // esi void *v12; // ebx - _DWORD *v13; // ebx + unsigned int **v13; // ebx int v15; // edi char v16; // al _DWORD **v17; // esi @@ -14349,7 +13215,7 @@ _DWORD *__fastcall night::NSASTParse::ast_var(_DWORD *a1) unsigned int v23; // [esp+18h] [ebp-60h] void **v24; // [esp+1Ch] [ebp-5Ch] _DWORD *v25; // [esp+2Ch] [ebp-4Ch] BYREF - _DWORD v26[6]; // [esp+30h] [ebp-48h] BYREF + int v26[6]; // [esp+30h] [ebp-48h] BYREF void *v27[12]; // [esp+48h] [ebp-30h] BYREF night::NSToken::next(a1[7]); @@ -14420,9 +13286,9 @@ _DWORD *__fastcall night::NSASTParse::ast_var(_DWORD *a1) } v12 = (void *)a1[6]; std::string::basic_string(v27, (int)&night::NS_TYPE_PROG); - v13 = night::NSGod::gen_son(v12, (int)v27); + v13 = (unsigned int **)night::NSGod::gen_son(v12, (int)v27); std::string::_M_dispose(v27); - v13[57] = v24; + v13[57] = (unsigned int *)v24; std::string::operator=(v13 + 27, (char *)off_51B9E4); return v13; } @@ -14431,10 +13297,10 @@ _DWORD *__fastcall night::NSASTParse::ast_var(_DWORD *a1) //----- (0040A1B8) -------------------------------------------------------- _DWORD *__fastcall night::NSASTParse::ast_expression_no_binary(int *a1) { - int v1; // eax + _DWORD *v1; // eax bool v3; // [esp+4h] [ebp-24h] - v1 = night::NSASTParse::ast_dispatch(0, v3); + v1 = night::NSASTParse::ast_dispatch(a1, 0, v3); return night::NSASTParse::make_call_or_just_expression(a1, v1); } // 40A1C8: variable 'v3' is possibly undefined @@ -14473,7 +13339,7 @@ _DWORD *__thiscall night::NSCompileJs::compile_var[abi:cxx11](_DWORD *this, int std::string::basic_string(v9, (char *)off_51B9E4); if ( *(_BYTE *)(a3 + 56) ) - std::string::operator=((unsigned int *)v9, "var "); + std::string::operator=((unsigned int **)v9, "var "); *(_DWORD *)(a2 + 48) += v9[1]; std::string::substr(v11, (_DWORD *)(a3 + 60), 0, dword_586E44); if ( (unsigned __int8)std::operator!=((int)v11, (int)&night::nsv_) @@ -14527,6 +13393,7 @@ _DWORD *__thiscall night::NSCompileJs::compile_var[abi:cxx11](_DWORD *this, int return this; } // 534198: using guessed type int *`typeinfo for'std::string; +// 586E40: using guessed type void *night::nsv_; // 586E44: using guessed type int dword_586E44; //----- (0040A47C) -------------------------------------------------------- @@ -14539,24 +13406,24 @@ int __thiscall night::NSCompileJs::compile_function[abi:cxx11](int this, int a2, bool v7; // al _DWORD *v8; // ecx _DWORD *v9; // eax - int v10; // eax + unsigned int v10; // eax _DWORD *v11; // ecx int *v12; // eax - int v13; // eax + unsigned int v13; // eax _DWORD *v14; // eax _DWORD *v15; // eax - int v16; // eax + unsigned int v16; // eax _DWORD *v17; // eax unsigned int v18; // ebx _DWORD *v19; // eax - int v20; // eax + unsigned int v20; // eax int v21; // edi - int v22; // eax + unsigned int v22; // eax void **v23; // ecx _DWORD *v24; // eax - int v25; // eax + unsigned int v25; // eax int v26; // edi - int v27; // eax + unsigned int v27; // eax int v29; // [esp+10h] [ebp-E8h] char v30; // [esp+17h] [ebp-E1h] unsigned int v31; // [esp+18h] [ebp-E0h] @@ -14685,7 +13552,7 @@ int __thiscall night::NSCompileJs::compile_function[abi:cxx11](int this, int a2, std::string::operator+=((_DWORD *)this, (int)v37); *(_DWORD *)(a2 + 48) += v37[1]; v16 = std::vector::at((_DWORD *)a3[61], i); - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(*(_DWORD *)v16 + 184)); + night::NSCompileJs::compile[abi:cxx11]((void **)&v38, a2, *(_DWORD **)(*(_DWORD *)v16 + 184)); std::string::operator+=((_DWORD *)this, (int)&v38); std::operator+((int)&v43, ":", (int)v36); v17 = std::string::append(&v43, ";"); @@ -14702,7 +13569,7 @@ int __thiscall night::NSCompileJs::compile_function[abi:cxx11](int this, int a2, } } v18 = (*(_DWORD *)(a2 + 40) - *(_DWORD *)(a2 + 36)) >> 6; - night::NSCompileJs::compile[abi:cxx11](a2, a3[54]); + night::NSCompileJs::compile[abi:cxx11](v37, a2, (_DWORD *)a3[54]); if ( v30 ) { v38 = &v40; @@ -14767,7 +13634,7 @@ LABEL_31: std::string::_M_dispose(v37); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); +// 586E40: using guessed type void *night::nsv_; //----- (0040AC94) -------------------------------------------------------- void **__thiscall night::NSCompileJs::compile[abi:cxx11](void **this, int a2, _DWORD *a3) @@ -14856,7 +13723,7 @@ LABEL_13: v10 = 0; if ( std::operator==("this", (int)(a3 + 15)) ) { - std::string::operator=((unsigned int *)&v9, "(this.constructor===Window?{}:this)"); + std::string::operator=((unsigned int **)&v9, "(this.constructor===Window?{}:this)"); ++*(_DWORD *)(a2 + 48); } else @@ -14918,7 +13785,7 @@ LABEL_13: } if ( std::operator==((int)&night::NS_TYPE_SWITCH, (int)v8) ) { - night::NSCompileJs::compile_switch[abi:cxx11]((int)this, a2, (int)a3); + night::NSCompileJs::compile_switch[abi:cxx11]((int)this, a2, (_DWORD **)a3); goto LABEL_60; } if ( std::operator==((int)&night::NS_TYPE_OBJ_SELF_OP, (int)v8) ) @@ -14988,26 +13855,26 @@ LABEL_13: //----- (0040B370) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_k_v[abi:cxx11](int this, int a2, int a3) { - int v4; // eax + _DWORD *v4; // eax _DWORD *v5; // eax - int v6; // eax + _DWORD *v6; // eax _DWORD *v7; // eax void *v9[6]; // [esp+10h] [ebp-48h] BYREF void *v10[12]; // [esp+28h] [ebp-30h] BYREF *(_DWORD *)this = this + 8; *(_BYTE *)(this + 8) = 0; - v4 = *(_DWORD *)(a3 + 188); + v4 = *(_DWORD **)(a3 + 188); *(_DWORD *)(this + 4) = 0; - night::NSCompileJs::compile[abi:cxx11](a2, v4); + night::NSCompileJs::compile[abi:cxx11](v9, a2, v4); v5 = std::string::append(v9, ":"); std::string::basic_string(v10, v5); std::string::operator=((_DWORD *)this, v10); std::string::_M_dispose(v10); std::string::_M_dispose(v9); - v6 = *(_DWORD *)(a3 + 192); + v6 = *(_DWORD **)(a3 + 192); ++*(_DWORD *)(a2 + 48); - night::NSCompileJs::compile[abi:cxx11](a2, v6); + night::NSCompileJs::compile[abi:cxx11](v9, a2, v6); v7 = std::string::append(v9, ","); std::string::basic_string(v10, v7); std::string::operator+=((_DWORD *)this, (int)v10); @@ -15016,12 +13883,11 @@ int __thiscall night::NSCompileJs::compile_k_v[abi:cxx11](int this, int a2, int ++*(_DWORD *)(a2 + 48); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040B470) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_if[abi:cxx11](int this, int a2, _DWORD *a3) { - int v4; // eax + _DWORD *v4; // eax void *v6[6]; // [esp+10h] [ebp-48h] BYREF void *v7[12]; // [esp+28h] [ebp-30h] BYREF @@ -15029,12 +13895,12 @@ int __thiscall night::NSCompileJs::compile_if[abi:cxx11](int this, int a2, _DWOR *(_DWORD *)(this + 4) = 0; *(_BYTE *)(this + 8) = 0; std::string::operator+=((_DWORD *)this, "if "); - v4 = a3[51]; + v4 = (_DWORD *)a3[51]; *(_DWORD *)(a2 + 48) += 3; - night::NSCompileJs::compile[abi:cxx11](a2, v4); + night::NSCompileJs::compile[abi:cxx11](v7, a2, v4); std::string::operator+=((_DWORD *)this, (int)v7); std::string::_M_dispose(v7); - night::NSCompileJs::compile[abi:cxx11](a2, a3[52]); + night::NSCompileJs::compile[abi:cxx11](v7, a2, (_DWORD *)a3[52]); std::string::operator+=((_DWORD *)this, (int)v7); std::string::_M_dispose(v7); std::string::operator+=((_DWORD *)this, (int)(a3 + 27)); @@ -15044,26 +13910,25 @@ int __thiscall night::NSCompileJs::compile_if[abi:cxx11](int this, int a2, _DWOR std::string::basic_string(v6, " else "); std::string::operator+=((_DWORD *)this, (int)v6); *(_DWORD *)(a2 + 48) += v6[1]; - night::NSCompileJs::compile[abi:cxx11](a2, a3[53]); + night::NSCompileJs::compile[abi:cxx11](v7, a2, (_DWORD *)a3[53]); std::string::operator+=((_DWORD *)this, (int)v7); std::string::_M_dispose(v7); std::string::_M_dispose(v6); } return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040B5B6) -------------------------------------------------------- _DWORD *__thiscall night::NSCompileJs::compile_for[abi:cxx11](_DWORD *this, int a2, int a3) { _DWORD *v3; // ecx _DWORD *exception; // ebx - _DWORD *v5; // eax + _DWORD **v5; // eax _DWORD *v6; // eax - _DWORD *v7; // eax + _DWORD **v7; // eax _DWORD *v8; // eax - _DWORD *v9; // eax - int v10; // eax + _DWORD **v9; // eax + _DWORD *v10; // eax void *v13[2]; // [esp+20h] [ebp-78h] BYREF char v14; // [esp+28h] [ebp-70h] BYREF void *v15[6]; // [esp+38h] [ebp-60h] BYREF @@ -15087,30 +13952,30 @@ _DWORD *__thiscall night::NSCompileJs::compile_for[abi:cxx11](_DWORD *this, int (struct type_info *)&`typeinfo for'std::string, (void (__cdecl *)(void *))std::string::~string); } - v5 = (_DWORD *)std::vector::at(v3, 0); - night::NSCompileJs::compile[abi:cxx11](a2, *v5); + v5 = (_DWORD **)std::vector::at(v3, 0); + night::NSCompileJs::compile[abi:cxx11](v16, a2, *v5); v6 = std::string::append(v16, ";"); std::string::basic_string(v17, v6); std::string::operator+=(v13, (int)v17); std::string::_M_dispose(v17); std::string::_M_dispose(v16); ++*(_DWORD *)(a2 + 48); - v7 = (_DWORD *)std::vector::at(*(_DWORD **)(a3 + 228), 1u); - night::NSCompileJs::compile[abi:cxx11](a2, *v7); + v7 = (_DWORD **)std::vector::at(*(_DWORD **)(a3 + 228), 1u); + night::NSCompileJs::compile[abi:cxx11](v16, a2, *v7); v8 = std::string::append(v16, ";"); std::string::basic_string(v17, v8); std::string::operator+=(v13, (int)v17); std::string::_M_dispose(v17); std::string::_M_dispose(v16); ++*(_DWORD *)(a2 + 48); - v9 = (_DWORD *)std::vector::at(*(_DWORD **)(a3 + 228), 2u); - night::NSCompileJs::compile[abi:cxx11](a2, *v9); + v9 = (_DWORD **)std::vector::at(*(_DWORD **)(a3 + 228), 2u); + night::NSCompileJs::compile[abi:cxx11](v17, a2, *v9); std::string::operator+=(v13, (int)v17); std::string::_M_dispose(v17); std::string::operator+=(v13, ")"); - v10 = *(_DWORD *)(a3 + 216); + v10 = *(_DWORD **)(a3 + 216); ++*(_DWORD *)(a2 + 48); - night::NSCompileJs::compile[abi:cxx11](a2, v10); + night::NSCompileJs::compile[abi:cxx11](v17, a2, v10); std::string::operator+=(v13, (int)v17); std::string::_M_dispose(v17); std::string::basic_string(this, v13); @@ -15118,13 +13983,12 @@ _DWORD *__thiscall night::NSCompileJs::compile_for[abi:cxx11](_DWORD *this, int std::string::_M_dispose(v13); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); // 534198: using guessed type int *`typeinfo for'std::string; //----- (0040B7FA) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_while[abi:cxx11](int this, int a2, int a3) { - int v4; // eax + _DWORD *v4; // eax void *v6[6]; // [esp+10h] [ebp-48h] BYREF void *v7[12]; // [esp+28h] [ebp-30h] BYREF @@ -15134,19 +13998,18 @@ int __thiscall night::NSCompileJs::compile_while[abi:cxx11](int this, int a2, in std::string::basic_string(v6, "while("); std::string::operator+=((_DWORD *)this, (int)v6); *(_DWORD *)(a2 + 48) += v6[1]; - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 204)); + night::NSCompileJs::compile[abi:cxx11](v7, a2, *(_DWORD **)(a3 + 204)); std::string::operator+=((_DWORD *)this, (int)v7); std::string::_M_dispose(v7); std::string::operator+=((_DWORD *)this, ")"); - v4 = *(_DWORD *)(a3 + 216); + v4 = *(_DWORD **)(a3 + 216); ++*(_DWORD *)(a2 + 48); - night::NSCompileJs::compile[abi:cxx11](a2, v4); + night::NSCompileJs::compile[abi:cxx11](v7, a2, v4); std::string::operator+=((_DWORD *)this, (int)v7); std::string::_M_dispose(v7); std::string::_M_dispose(v6); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040B8EA) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_do_while[abi:cxx11](int this, int a2, int a3) @@ -15161,13 +14024,13 @@ int __thiscall night::NSCompileJs::compile_do_while[abi:cxx11](int this, int a2, std::string::basic_string(v5, "do"); std::string::operator+=((_DWORD *)this, (int)v5); *(_DWORD *)(a2 + 48) += v5[1]; - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 216)); + night::NSCompileJs::compile[abi:cxx11](v7, a2, *(_DWORD **)(a3 + 216)); std::string::operator+=((_DWORD *)this, (int)v7); std::string::_M_dispose(v7); std::string::basic_string(v6, "while("); std::string::operator+=((_DWORD *)this, (int)v6); *(_DWORD *)(a2 + 48) += v6[1]; - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 204)); + night::NSCompileJs::compile[abi:cxx11](v7, a2, *(_DWORD **)(a3 + 204)); std::string::operator+=((_DWORD *)this, (int)v7); std::string::_M_dispose(v7); std::string::basic_string(v7, ");"); @@ -15178,21 +14041,20 @@ int __thiscall night::NSCompileJs::compile_do_while[abi:cxx11](int this, int a2, std::string::_M_dispose(v5); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040BA36) -------------------------------------------------------- -int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, int a3) +int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, _DWORD **a3) { _DWORD *v3; // eax - _DWORD *v4; // eax + _DWORD **v4; // eax _DWORD *v5; // eax unsigned int v6; // esi - int v7; // eax + unsigned int v7; // eax _DWORD **v8; // eax - _DWORD *v9; // eax + _DWORD **v9; // eax _DWORD *v10; // eax unsigned int v11; // esi - _DWORD *v12; // eax + _DWORD **v12; // eax _DWORD *v13; // eax unsigned int i; // [esp+18h] [ebp-80h] void *v17[6]; // [esp+20h] [ebp-78h] BYREF @@ -15206,20 +14068,20 @@ int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, i std::string::basic_string(v17, "switch("); std::string::operator+=((_DWORD *)this, (int)v17); *(_DWORD *)(a2 + 48) += v17[1]; - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 204)); + night::NSCompileJs::compile[abi:cxx11](v19, a2, a3[51]); v3 = std::string::append(v19, "){"); std::string::basic_string(v20, v3); std::string::operator+=((_DWORD *)this, (int)v20); std::string::_M_dispose(v20); std::string::_M_dispose(v19); *(_DWORD *)(a2 + 48) += 2; - for ( i = 0; i < (*(_DWORD *)(*(_DWORD *)(a3 + 232) + 4) - **(_DWORD **)(a3 + 232)) >> 2; ++i ) + for ( i = 0; i < (a3[58][1] - *a3[58]) >> 2; ++i ) { std::string::basic_string(v18, "case "); std::string::operator+=((_DWORD *)this, (int)v18); *(_DWORD *)(a2 + 48) += v18[1]; - v4 = (_DWORD *)std::vector::at(*(_DWORD **)(a3 + 232), i); - night::NSCompileJs::compile[abi:cxx11](a2, *v4); + v4 = (_DWORD **)std::vector::at(a3[58], i); + night::NSCompileJs::compile[abi:cxx11](v19, a2, *v4); v5 = std::string::append(v19, ":"); std::string::basic_string(v20, v5); std::string::operator+=((_DWORD *)this, (int)v20); @@ -15229,14 +14091,12 @@ int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, i ++*(_DWORD *)(a2 + 48); while ( 1 ) { - v7 = std::vector>>::at(*(_DWORD **)(a3 + 236), i); + v7 = std::vector>>::at(a3[59], i); if ( v6 >= (*(_DWORD *)(*(_DWORD *)v7 + 4) - **(_DWORD **)v7) >> 2 ) break; - v8 = (_DWORD **)std::vector>>::at( - *(_DWORD **)(a3 + 236), - i); - v9 = (_DWORD *)std::vector::at(*v8, v6); - night::NSCompileJs::compile[abi:cxx11](a2, *v9); + v8 = (_DWORD **)std::vector>>::at(a3[59], i); + v9 = (_DWORD **)std::vector::at(*v8, v6); + night::NSCompileJs::compile[abi:cxx11](v19, a2, *v9); v10 = std::string::append(v19, ";"); std::string::basic_string(v20, v10); std::string::operator+=((_DWORD *)this, (int)v20); @@ -15248,7 +14108,7 @@ int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, i std::string::_M_dispose(v18); } v11 = 0; - while ( v11 < (*(_DWORD *)(*(_DWORD *)(a3 + 240) + 4) - **(_DWORD **)(a3 + 240)) >> 2 ) + while ( v11 < (a3[60][1] - *a3[60]) >> 2 ) { if ( !v11 ) { @@ -15257,8 +14117,8 @@ int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, i *(_DWORD *)(a2 + 48) += v20[1]; std::string::_M_dispose(v20); } - v12 = (_DWORD *)std::vector::at(*(_DWORD **)(a3 + 240), v11); - night::NSCompileJs::compile[abi:cxx11](a2, *v12); + v12 = (_DWORD **)std::vector::at(a3[60], v11); + night::NSCompileJs::compile[abi:cxx11](v19, a2, *v12); v13 = std::string::append(v19, ";"); std::string::basic_string(v20, v13); std::string::operator+=((_DWORD *)this, (int)v20); @@ -15272,7 +14132,6 @@ int __thiscall night::NSCompileJs::compile_switch[abi:cxx11](int this, int a2, i std::string::_M_dispose(v17); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040BD62) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_obj_self_op[abi:cxx11](int this, int a2, int a3) @@ -15288,7 +14147,7 @@ int __thiscall night::NSCompileJs::compile_obj_self_op[abi:cxx11](int this, int *(_DWORD *)(this + 4) = 0; if ( v4 ) { - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 192)); + night::NSCompileJs::compile[abi:cxx11](v7, a2, *(_DWORD **)(a3 + 192)); v5 = std::string::append(v7, a3 + 156); std::string::basic_string(v8, v5); std::string::operator+=((_DWORD *)this, (int)v8); @@ -15300,27 +14159,26 @@ int __thiscall night::NSCompileJs::compile_obj_self_op[abi:cxx11](int this, int { std::string::operator+=((_DWORD *)this, a3 + 156); *(_DWORD *)(a2 + 48) += *(_DWORD *)(a3 + 160); - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 192)); + night::NSCompileJs::compile[abi:cxx11](v8, a2, *(_DWORD **)(a3 + 192)); std::string::operator+=((_DWORD *)this, (int)v8); std::string::_M_dispose(v8); } return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040BE74) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_obj_property[abi:cxx11](int this, int a2, int a3) { - unsigned int *v3; // eax - int v4; // eax + unsigned int **v3; // eax + _DWORD *v4; // eax int *v5; // eax _DWORD *v6; // eax - _DWORD *v7; // eax + _DWORD **v7; // eax void **v8; // ecx int *v9; // eax - _DWORD *v10; // eax + _DWORD **v10; // eax _DWORD *v11; // eax - _DWORD *v12; // eax + _DWORD **v12; // eax _DWORD *v13; // eax _DWORD *v14; // eax _DWORD *v15; // eax @@ -15349,15 +14207,15 @@ int __thiscall night::NSCompileJs::compile_obj_property[abi:cxx11](int this, int void *v40[12]; // [esp+148h] [ebp-30h] BYREF std::to_string(v40, *(_DWORD *)(a2 + 32)); - v3 = std::string::insert((unsigned int *)v40, 0, (int)&night::nst_); + v3 = std::string::insert((unsigned int **)v40, 0, (int)&night::nst_); std::string::basic_string(v27, v3); std::string::_M_dispose(v40); ++*(_DWORD *)(a2 + 32); *(_DWORD *)this = this + 8; *(_BYTE *)(this + 8) = 0; - v4 = *(_DWORD *)(a3 + 192); + v4 = *(_DWORD **)(a3 + 192); *(_DWORD *)(this + 4) = 0; - night::NSCompileJs::compile[abi:cxx11](a2, v4); + night::NSCompileJs::compile[abi:cxx11](v40, a2, v4); std::string::operator+=((_DWORD *)this, (int)v40); std::string::_M_dispose(v40); for ( i = 0; i < (*(_DWORD *)(*(_DWORD *)(a3 + 196) + 4) - **(_DWORD **)(a3 + 196)) >> 2; ++i ) @@ -15373,8 +14231,8 @@ int __thiscall night::NSCompileJs::compile_obj_property[abi:cxx11](int this, int std::string::_M_dispose(v40); std::string::operator+=((_DWORD *)this, (int)v39); *(_DWORD *)(a2 + 48) += v39[1]; - v7 = (_DWORD *)std::vector::at(*(_DWORD **)(a3 + 196), i); - night::NSCompileJs::compile[abi:cxx11](a2, *v7); + v7 = (_DWORD **)std::vector::at(*(_DWORD **)(a3 + 196), i); + night::NSCompileJs::compile[abi:cxx11](v40, a2, *v7); std::string::operator+=((_DWORD *)this, (int)v40); std::string::_M_dispose(v40); v8 = v39; @@ -15384,8 +14242,8 @@ int __thiscall night::NSCompileJs::compile_obj_property[abi:cxx11](int this, int v9 = (int *)std::vector::at(*(_DWORD **)(a3 + 196), i); if ( std::operator==((int)&night::NS_TYPE_NUM, *v9) ) { - v10 = (_DWORD *)std::vector::at(*(_DWORD **)(a3 + 196), i); - night::NSCompileJs::compile[abi:cxx11](a2, *v10); + v10 = (_DWORD **)std::vector::at(*(_DWORD **)(a3 + 196), i); + night::NSCompileJs::compile[abi:cxx11](v40, a2, *v10); std::string::operator+=((_DWORD *)this, (int)v40); v8 = v40; } @@ -15397,8 +14255,8 @@ int __thiscall night::NSCompileJs::compile_obj_property[abi:cxx11](int this, int std::string::_M_dispose(v40); std::string::operator+=((_DWORD *)this, (int)&v28); *(_DWORD *)(a2 + 48) += v29; - v12 = (_DWORD *)std::vector::at(*(_DWORD **)(a3 + 196), i); - night::NSCompileJs::compile[abi:cxx11](a2, *v12); + v12 = (_DWORD **)std::vector::at(*(_DWORD **)(a3 + 196), i); + night::NSCompileJs::compile[abi:cxx11](v39, a2, *v12); v13 = std::string::append(v39, "),"); std::string::basic_string(v40, v13); std::string::operator+=((_DWORD *)this, (int)v40); @@ -15450,22 +14308,22 @@ int __thiscall night::NSCompileJs::compile_obj_property[abi:cxx11](int this, int std::string::_M_dispose(v27); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); +// 586E40: using guessed type void *night::nsv_; //----- (0040C4A4) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_obj_dot[abi:cxx11](int this, int a2, int a3) { - int v4; // eax + _DWORD *v4; // eax unsigned int v5; // esi _DWORD *v6; // ecx - _DWORD *v7; // eax + _DWORD **v7; // eax void *v9[12]; // [esp+18h] [ebp-30h] BYREF *(_DWORD *)this = this + 8; *(_BYTE *)(this + 8) = 0; - v4 = *(_DWORD *)(a3 + 192); + v4 = *(_DWORD **)(a3 + 192); *(_DWORD *)(this + 4) = 0; - night::NSCompileJs::compile[abi:cxx11](a2, v4); + night::NSCompileJs::compile[abi:cxx11](v9, a2, v4); std::string::operator+=((_DWORD *)this, (int)v9); v5 = 0; std::string::_M_dispose(v9); @@ -15474,15 +14332,14 @@ int __thiscall night::NSCompileJs::compile_obj_dot[abi:cxx11](int this, int a2, std::string::operator+=((_DWORD *)this, "."); v6 = *(_DWORD **)(a3 + 196); ++*(_DWORD *)(a2 + 48); - v7 = (_DWORD *)std::vector::at(v6, v5); - night::NSCompileJs::compile[abi:cxx11](a2, *v7); + v7 = (_DWORD **)std::vector::at(v6, v5); + night::NSCompileJs::compile[abi:cxx11](v9, a2, *v7); std::string::operator+=((_DWORD *)this, (int)v9); ++v5; std::string::_M_dispose(v9); } return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040C58E) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_op_self[abi:cxx11](int this, int a2, int a3) @@ -15494,40 +14351,38 @@ int __thiscall night::NSCompileJs::compile_op_self[abi:cxx11](int this, int a2, *(_BYTE *)(this + 8) = 0; std::string::operator+=((_DWORD *)this, a3 + 156); *(_DWORD *)(a2 + 48) += *(_DWORD *)(a3 + 160); - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 192)); + night::NSCompileJs::compile[abi:cxx11](v5, a2, *(_DWORD **)(a3 + 192)); std::string::operator+=((_DWORD *)this, (int)v5); std::string::_M_dispose(v5); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040C61E) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_ternary[abi:cxx11](int this, int a2, int a3) { - int v4; // eax + _DWORD *v4; // eax _DWORD *v5; // eax - int v6; // eax + _DWORD *v6; // eax void *v8[6]; // [esp+10h] [ebp-48h] BYREF void *v9[12]; // [esp+28h] [ebp-30h] BYREF *(_DWORD *)this = this + 8; *(_BYTE *)(this + 8) = 0; - v4 = *(_DWORD *)(a3 + 180); + v4 = *(_DWORD **)(a3 + 180); *(_DWORD *)(this + 4) = 0; - night::NSCompileJs::compile[abi:cxx11](a2, v4); + night::NSCompileJs::compile[abi:cxx11](v8, a2, v4); v5 = std::string::append(v8, ":"); std::string::basic_string(v9, v5); std::string::operator+=((_DWORD *)this, (int)v9); std::string::_M_dispose(v9); std::string::_M_dispose(v8); - v6 = *(_DWORD *)(a3 + 184); + v6 = *(_DWORD **)(a3 + 184); ++*(_DWORD *)(a2 + 48); - night::NSCompileJs::compile[abi:cxx11](a2, v6); + night::NSCompileJs::compile[abi:cxx11](v9, a2, v6); std::string::operator+=((_DWORD *)this, (int)v9); std::string::_M_dispose(v9); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040C6FA) -------------------------------------------------------- _DWORD *__thiscall night::NSCompileJs::compile_binary[abi:cxx11](_DWORD *this, int a2, int a3) @@ -15539,13 +14394,13 @@ _DWORD *__thiscall night::NSCompileJs::compile_binary[abi:cxx11](_DWORD *this, i void *v9[6]; // [esp+50h] [ebp-48h] BYREF void *v10[12]; // [esp+68h] [ebp-30h] BYREF - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 180)); + night::NSCompileJs::compile[abi:cxx11](v7, a2, *(_DWORD **)(a3 + 180)); std::operator+((int)v10, (char *)asc_51BF80, a3 + 156); v3 = std::string::append(v10, (char *)asc_51BF80); std::string::basic_string(v8, v3); std::string::_M_dispose(v10); *(_DWORD *)(a2 + 48) += v8[1]; - night::NSCompileJs::compile[abi:cxx11](a2, *(_DWORD *)(a3 + 184)); + night::NSCompileJs::compile[abi:cxx11](v9, a2, *(_DWORD **)(a3 + 184)); std::operator+(v10, (int)v7, (int)v8); v4 = std::string::append(v10, (int)v9); std::string::basic_string(this, v4); @@ -15555,7 +14410,6 @@ _DWORD *__thiscall night::NSCompileJs::compile_binary[abi:cxx11](_DWORD *this, i std::string::_M_dispose(v7); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040C818) -------------------------------------------------------- _DWORD *__thiscall night::NSCompileJs::compile_assign[abi:cxx11](_DWORD *this, int a2, int a3) @@ -15567,21 +14421,21 @@ _DWORD *__thiscall night::NSCompileJs::compile_assign[abi:cxx11](_DWORD *this, i //----- (0040C83C) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_call[abi:cxx11](int this, int a2, int a3) { - int v3; // eax + _DWORD *v3; // eax unsigned int v4; // edi _DWORD *v5; // ecx - int v6; // eax - int v7; // eax + unsigned int v6; // eax + unsigned int v7; // eax _DWORD **v8; // eax int *v9; // eax _DWORD **v10; // eax - _DWORD *v11; // eax - int v12; // eax - int v13; // eax - int v14; // eax + _DWORD **v11; // eax + unsigned int v12; // eax + unsigned int v13; // eax + unsigned int v14; // eax _DWORD **v15; // eax - _DWORD *v16; // eax - int v17; // eax + _DWORD **v16; // eax + unsigned int v17; // eax unsigned int v19; // [esp+14h] [ebp-44h] unsigned int v20; // [esp+14h] [ebp-44h] unsigned int v21; // [esp+18h] [ebp-40h] @@ -15590,9 +14444,9 @@ int __thiscall night::NSCompileJs::compile_call[abi:cxx11](int this, int a2, int *(_DWORD *)this = this + 8; *(_BYTE *)(this + 8) = 0; - v3 = *(_DWORD *)(a3 + 220); + v3 = *(_DWORD **)(a3 + 220); *(_DWORD *)(this + 4) = 0; - night::NSCompileJs::compile[abi:cxx11](a2, v3); + night::NSCompileJs::compile[abi:cxx11](v24, a2, v3); std::string::operator=((_DWORD *)this, v24); v4 = 0; std::string::_M_dispose(v24); @@ -15627,8 +14481,8 @@ int __thiscall night::NSCompileJs::compile_call[abi:cxx11](int this, int a2, int v10 = (_DWORD **)std::vector>>::at( *(_DWORD **)(a3 + 224), v4); - v11 = (_DWORD *)std::vector::at(*v10, v21); - night::NSCompileJs::compile[abi:cxx11](a2, *v11); + v11 = (_DWORD **)std::vector::at(*v10, v21); + night::NSCompileJs::compile[abi:cxx11](v24, a2, *v11); std::string::operator+=((_DWORD *)this, (int)v24); std::string::_M_dispose(v24); v19 = v21 + 1; @@ -15665,8 +14519,8 @@ int __thiscall night::NSCompileJs::compile_call[abi:cxx11](int this, int a2, int v15 = (_DWORD **)std::vector>>::at( *(_DWORD **)(a3 + 224), v4); - v16 = (_DWORD *)std::vector::at(*v15, v22); - night::NSCompileJs::compile[abi:cxx11](a2, *v16); + v16 = (_DWORD **)std::vector::at(*v15, v22); + night::NSCompileJs::compile[abi:cxx11](v24, a2, *v16); std::string::operator+=((_DWORD *)this, (int)v24); std::string::_M_dispose(v24); v20 = v22 + 1; @@ -15686,13 +14540,12 @@ int __thiscall night::NSCompileJs::compile_call[abi:cxx11](int this, int a2, int } return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040CB3A) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_prog[abi:cxx11](int this, int a2, int a3) { unsigned int v4; // esi - _DWORD *v5; // eax + _DWORD **v5; // eax _DWORD *v6; // ecx unsigned int v8; // [esp+1Ch] [ebp-4Ch] void *v9; // [esp+20h] [ebp-48h] BYREF @@ -15701,7 +14554,7 @@ int __thiscall night::NSCompileJs::compile_prog[abi:cxx11](int this, int a2, int std::string::basic_string(&v9, a3 + 108); if ( !v10 ) - std::string::operator=((unsigned int *)&v9, ";"); + std::string::operator=((unsigned int **)&v9, ";"); *(_DWORD *)(this + 4) = 0; v4 = 0; *(_DWORD *)this = this + 8; @@ -15711,8 +14564,8 @@ int __thiscall night::NSCompileJs::compile_prog[abi:cxx11](int this, int a2, int v6 = *(_DWORD **)(a3 + 228); if ( v4 >= (v6[1] - *v6) >> 2 ) break; - v5 = (_DWORD *)std::vector::at(v6, v4); - night::NSCompileJs::compile[abi:cxx11](a2, *v5); + v5 = (_DWORD **)std::vector::at(v6, v4); + night::NSCompileJs::compile[abi:cxx11](v11, a2, *v5); std::string::operator+=((_DWORD *)this, (int)v11); std::string::_M_dispose(v11); v8 = v4 + 1; @@ -15727,14 +14580,13 @@ int __thiscall night::NSCompileJs::compile_prog[abi:cxx11](int this, int a2, int std::string::_M_dispose(&v9); return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040CC3E) -------------------------------------------------------- int __thiscall night::NSCompileJs::compile_prog_no_sem[abi:cxx11](int this, int a2, int a3) { unsigned int i; // edi _DWORD *v5; // ecx - _DWORD *v6; // eax + _DWORD **v6; // eax void *v8[12]; // [esp+18h] [ebp-30h] BYREF *(_DWORD *)this = this + 8; @@ -15750,8 +14602,8 @@ int __thiscall night::NSCompileJs::compile_prog_no_sem[abi:cxx11](int this, int v5 = *(_DWORD **)(a3 + 228); if ( i >= (v5[1] - *v5) >> 2 ) break; - v6 = (_DWORD *)std::vector::at(v5, i); - night::NSCompileJs::compile[abi:cxx11](a2, *v6); + v6 = (_DWORD **)std::vector::at(v5, i); + night::NSCompileJs::compile[abi:cxx11](v8, a2, *v6); std::string::operator+=((_DWORD *)this, (int)v8); std::string::_M_dispose(v8); } @@ -15762,20 +14614,19 @@ int __thiscall night::NSCompileJs::compile_prog_no_sem[abi:cxx11](int this, int } return this; } -// 40AC94: using guessed type _DWORD __stdcall night::NSCompileJs::compile[abi:cxx11](_DWORD, _DWORD); //----- (0040CD26) -------------------------------------------------------- -_DWORD *__thiscall night::NSCompileJs::compile_once(_DWORD *this, int a2, unsigned int *a3, int a4, char a5) +_DWORD *__thiscall night::NSCompileJs::compile_once(_DWORD *this, int a2, unsigned int **a3, int a4, char a5) { - const char **v5; // ebx + unsigned int **v5; // ebx void *v8[12]; // [esp+28h] [ebp-30h] BYREF *(_DWORD *)(a2 + 28) = a4; std::string::operator=(a3, (char *)off_51B9E4); - v5 = (const char **)night::NSASTParse::top_down(*(int **)(a2 + 24)); + v5 = night::NSASTParse::top_down(*(int **)(a2 + 24)); if ( a5 ) { - night::ns_node::debug_no_space[abi:cxx11](v8, v5); + night::ns_node::debug_no_space[abi:cxx11](v8, (const char **)v5); printf("ast :%s\n", (const char *)v8[0]); std::string::_M_dispose(v8); } @@ -15787,7 +14638,7 @@ _DWORD *__thiscall night::NSCompileJs::compile_once(_DWORD *this, int a2, unsign } //----- (0040CDD5) -------------------------------------------------------- -int __cdecl night::compile_ns_no_wrapper(int a1, int a2, int a3, unsigned int *a4, char a5) +int __cdecl night::compile_ns_no_wrapper(int a1, int a2, int a3, unsigned int **a4, char a5) { int v5; // esi int v6; // edx @@ -15811,27 +14662,30 @@ int __cdecl night::compile_ns_no_wrapper(int a1, int a2, int a3, unsigned int *a std::string::operator=(a4, (char *)off_51B9E4); memset(v8, 0, sizeof(v8)); night::NSStream::NSStream(v22, a1, a2, a3); - v12[2] = (int)v12; - v12[3] = (int)v12; - v11[1] = (int)v22; + v12[0] = 0; v12[1] = 0; + v12[2] = (int)v12; + v12[3] = (int)v12; v12[4] = 0; + v11[0] = (int)v8; + v11[1] = (int)v22; + memset(&v11[2], 0, 16); std::string::basic_string(v13, a1); night::NSASTParse::NSASTParse((int)v23, (int)v13, (int)v11, (int)v8); std::string::_M_dispose(v13); v13[0] = &v14; - v15 = v23; v13[1] = 0; v14 = 0; - v18 = 0; - v19 = 0; - v20 = 0; - v16 = 0; - v17 = 0; - v21 = 1; + v15 = v23; // 24 + v16 = 0; // 28 + v17 = 0; // 32 + v18 = 0; // 36 + v19 = 0; // 40 + v20 = 0; // 44 + v21 = 1; // 48 memset(v9, 0, sizeof(v9)); night::NSCompileJs::compile_once(v10, (int)v13, a4, (int)v9, a5); night::NSGod::hamlet(v8); @@ -15853,7 +14707,7 @@ int __cdecl night::compile_ns_no_wrapper(int a1, int a2, int a3, unsigned int *a // 40D09F: variable 'v6' is possibly undefined //----- (0040D0D7) -------------------------------------------------------- -int __cdecl night::compile_ns(int a1, int a2, int a3, int a4, unsigned int *a5, char a6) +int __cdecl night::compile_ns(int a1, int a2, int a3, int a4, unsigned int **a5, char a6) { int v6; // ebx _DWORD *v7; // eax @@ -15916,7 +14770,7 @@ int __cdecl night::compile_ns(int a1, int a2, int a3, int a4, unsigned int *a5, v18[1] = 0; v19 = 0; memset(v17, 0, sizeof(v17)); - night::NSCompileJs::compile_once(v20, (int)v28, (unsigned int *)v18, (int)v17, a6); + night::NSCompileJs::compile_once(v20, (int)v28, (unsigned int **)v18, (int)v17, a6); night::NSGod::hamlet(v16); if ( v20[1] ) { @@ -15971,9 +14825,10 @@ int __cdecl night::compile_ns(int a1, int a2, int a3, int a4, unsigned int *a5, return v6; } // 40D64B: variable 'v14' is possibly undefined +// 586E40: using guessed type void *night::nsv_; //----- (0040D683) -------------------------------------------------------- -int __cdecl night::compile_ns_with_sourcemap(int *a1, int a2, int a3, int a4, int a5, unsigned int *a6, int a7) +int __cdecl night::compile_ns_with_sourcemap(int *a1, int a2, int a3, int a4, int a5, unsigned int **a6, int a7) { int v7; // ebx _DWORD *v8; // eax @@ -16078,7 +14933,7 @@ int __cdecl night::compile_ns_with_sourcemap(int *a1, int a2, int a3, int a4, in v41[1] = 0; v42 = 0; memset(v37, 0, sizeof(v37)); - night::NSCompileJs::compile_once(v43, (int)v71, (unsigned int *)v41, (int)v37, 0); + night::NSCompileJs::compile_once(v43, (int)v71, (unsigned int **)v41, (int)v37, 0); night::NSGod::hamlet(v36); if ( v43[1] ) { @@ -16115,7 +14970,7 @@ int __cdecl night::compile_ns_with_sourcemap(int *a1, int a2, int a3, int a4, in std::string::_M_dispose((void **)&v57); std::string::_M_dispose(&v51); std::string::_M_dispose(&v45); - v34 = a6[1]; + v34 = (int)a6[1]; std::operator+(&v63, (int)v41, (int)v44); std::string::operator+=(a6, (int)&v63); std::string::_M_dispose(&v63); @@ -16245,6 +15100,7 @@ int __cdecl night::compile_ns_with_sourcemap(int *a1, int a2, int a3, int a4, in // 40DAF3: variable 'v32' is possibly undefined // 40DD8D: variable 'v29' is possibly undefined // 40DF7D: variable 'v30' is possibly undefined +// 586E40: using guessed type void *night::nsv_; //----- (0040DFB8) -------------------------------------------------------- void __cdecl __tcf_0() @@ -16518,7 +15374,7 @@ int __cdecl night::sourcemap::gen_sourcemap_content(int *a1, _DWORD *a2, _DWORD _DWORD *v11; // ebx _DWORD *v12; // edi _DWORD *v13; // edi - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v15; // edx _DWORD *v16; // esi _DWORD *v17; // edi @@ -16560,13 +15416,13 @@ int __cdecl night::sourcemap::gen_sourcemap_content(int *a1, _DWORD *a2, _DWORD if ( i ) { v35 = i + 1; - v9 = std::map::operator[](a3, (int *)&v35); + v9 = std::map::operator[](a3, &v35); std::operator+((int)v39, ",\"", (int)v9); } else { v35 = 1; - v7 = std::map::operator[](a3, (int *)&v35); + v7 = std::map::operator[](a3, &v35); std::operator+((int)v39, "\"", (int)v7); } v8 = std::string::append(v39, "\""); @@ -16613,7 +15469,7 @@ int __cdecl night::sourcemap::gen_sourcemap_content(int *a1, _DWORD *a2, _DWORD a2, v13, (int)(v11 + 4)); - v16 = (_DWORD *)insert_hint_unique_pos; + v16 = insert_hint_unique_pos; v17 = v15; if ( v15 ) { @@ -16920,7 +15776,7 @@ int __cdecl night::str::path_combine(_DWORD *a1, _DWORD *a2, _DWORD *a3) v5 = &v7; v6 = 0; v7 = 0; - v3 = MMBizWxaAppComm::PathCombine(a1, a2, (unsigned int *)&v5); + v3 = MMBizWxaAppComm::PathCombine(a1, a2, (unsigned int **)&v5); if ( !v3 ) { v3 = 1; @@ -16965,7 +15821,7 @@ int __cdecl night::str::get_token(int a1, _DWORD *a2, unsigned int a3) } //----- (0040E95F) -------------------------------------------------------- -int __cdecl night::readfile(char *FileName, unsigned int *a2) +int __cdecl night::readfile(char *FileName, unsigned int **a2) { void *v2; // esp FILE *v3; // ebx @@ -17293,10 +16149,10 @@ void *__usercall __gnu_cxx::new_allocator::allocate@(unsigned //----- (0040EC59) -------------------------------------------------------- int snprintf_constprop_0_0(char *Buffer, int a2, int a3, ...) { - va_list va; // [esp+2Ch] [ebp+14h] BYREF + va_list ArgList; // [esp+2Ch] [ebp+14h] BYREF - va_start(va, a3); - return vsnprintf_2(Buffer, 0x80u, "np_%d", va); + va_start(ArgList, a3); + return vsnprintf_2(Buffer, 0x80u, "np_%d", ArgList); } //----- (0040EC84) -------------------------------------------------------- @@ -17495,7 +16351,7 @@ int __usercall std::_Rb_tree::~vector(void ***a1, int a2) } //----- (0040F0D6) -------------------------------------------------------- -void __thiscall std::vector::_M_move_assign(void *this, int *a2) +void __thiscall std::vector::_M_move_assign(void ***this, void ***a2) { void **v2; // ebx void **v3; // edx - int v4; // edi + void **v4; // edi int v5; // edi void **v6[9]; // [esp+4h] [ebp-24h] BYREF - v2 = (void **)*((_DWORD *)this + 1); - v3 = (void **)*((_DWORD *)this + 2); + v2 = this[1]; + v3 = this[2]; v4 = *a2; - v6[0] = *(void ***)this; + v6[0] = *this; v6[1] = v2; - *(_DWORD *)this = v4; - v5 = a2[1]; + *this = v4; + v5 = (int)a2[1]; v6[2] = v3; - *((_DWORD *)this + 1) = v5; - *((_DWORD *)this + 2) = a2[2]; + this[1] = (void **)v5; + this[2] = a2[2]; *a2 = 0; a2[1] = 0; a2[2] = 0; @@ -17730,9 +16586,9 @@ int __fastcall WXML::DOMLib::Parser::~Parser(int a1) // 40F2E4: variable 'v5' is possibly undefined //----- (0040F32D) -------------------------------------------------------- -unsigned int __cdecl WXML::Compiler::ParseWxmlSource(int a1, int *a2, unsigned int *a3, _DWORD *a4, _DWORD *a5) +int __cdecl WXML::Compiler::ParseWxmlSource(int a1, int *a2, unsigned int **a3, _DWORD *a4, _DWORD *a5) { - unsigned int v5; // esi + int v5; // esi int v7; // [esp+18h] [ebp-180h] BYREF volatile signed __int32 *v8; // [esp+1Ch] [ebp-17Ch] BYREF char v9[376]; // [esp+20h] [ebp-178h] BYREF @@ -17750,14 +16606,7 @@ unsigned int __cdecl WXML::Compiler::ParseWxmlSource(int a1, int *a2, unsigned i } //----- (0040F3BF) -------------------------------------------------------- -unsigned int __cdecl WXML::Compiler::DealWxsTag( - int a1, - int **a2, - _DWORD *a3, - int a4, - int *a5, - _DWORD *a6, - unsigned int *a7) +int __cdecl WXML::Compiler::DealWxsTag(int a1, int **a2, _DWORD *a3, int a4, int *a5, _DWORD *a6, unsigned int **a7) { char *v7; // ebx int *v8; // ecx @@ -17799,7 +16648,7 @@ unsigned int __cdecl WXML::Compiler::DealWxsTag( _DWORD *v45; // [esp+18h] [ebp-3A0h] BOOL v46; // [esp+18h] [ebp-3A0h] char v47; // [esp+18h] [ebp-3A0h] - unsigned int v48; // [esp+1Ch] [ebp-39Ch] + int v48; // [esp+1Ch] [ebp-39Ch] int v49; // [esp+24h] [ebp-394h] BYREF volatile signed __int32 *v50; // [esp+28h] [ebp-390h] BYREF void *v51[3]; // [esp+2Ch] [ebp-38Ch] BYREF @@ -17819,7 +16668,7 @@ unsigned int __cdecl WXML::Compiler::DealWxsTag( int v65[6]; // [esp+158h] [ebp-260h] BYREF void *v66[2]; // [esp+170h] [ebp-248h] BYREF char v67[4]; // [esp+178h] [ebp-240h] BYREF - _DWORD v68[49]; // [esp+17Ch] [ebp-23Ch] BYREF + int v68[49]; // [esp+17Ch] [ebp-23Ch] BYREF void *v69[94]; // [esp+240h] [ebp-178h] BYREF v7 = std::string::find(*a2, 62, (unsigned int)a2[4]); @@ -17990,7 +16839,7 @@ LABEL_34: //----- (0040FB75) -------------------------------------------------------- int __cdecl WXML::Compiler::RenderDefine( - unsigned int **a1, + unsigned int ***a1, int *a2, _DWORD *a3, int a4, @@ -18011,7 +16860,7 @@ int __cdecl WXML::Compiler::RenderDefine( int a19, int *a20) { - unsigned int *v20; // ebx + unsigned int **v20; // ebx bool v21; // dl int result; // eax char *v23; // eax @@ -18019,9 +16868,9 @@ int __cdecl WXML::Compiler::RenderDefine( _DWORD *v25; // eax unsigned int i; // ebx unsigned int v27; // ecx - unsigned int v28; // eax - unsigned int *v29; // [esp+54h] [ebp-94h] - unsigned int *v30; // [esp+54h] [ebp-94h] + unsigned int **v28; // eax + unsigned int **v29; // [esp+54h] [ebp-94h] + unsigned int **v30; // [esp+54h] [ebp-94h] int v31; // [esp+5Ch] [ebp-8Ch] void *v32[6]; // [esp+6Ch] [ebp-7Ch] BYREF void *v33[6]; // [esp+84h] [ebp-64h] BYREF @@ -18031,9 +16880,9 @@ int __cdecl WXML::Compiler::RenderDefine( { v20 = *a1; std::string::basic_string(v34, "name"); - v29 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - v20 + 12, - (int)v34); + v29 = (unsigned int **)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + v20 + 12, + (int)v34); std::string::_M_dispose(v34); if ( v29 != v20 + 13 ) std::string::operator=(*a1, "wx-define"); @@ -18078,10 +16927,10 @@ int __cdecl WXML::Compiler::RenderDefine( } for ( i = 0; ; ++i ) { - v27 = (*a1)[18]; - if ( (int)((*a1)[19] - v27) >> 3 <= i || result ) + v27 = (unsigned int)(*a1)[18]; + if ( (int)((int)(*a1)[19] - v27) >> 3 <= i || result ) break; - v28 = v27 + 8 * i; + v28 = (unsigned int **)(v27 + 8 * i); result = WXML::Compiler::RenderDefine( v28, a2, @@ -18115,7 +16964,7 @@ int __cdecl WXML::Compiler::ProcessWxsInline( int a4, int *a5, _DWORD *a6, - unsigned int *a7, + unsigned int **a7, _DWORD *a8, _DWORD *a9, int a10, @@ -18227,7 +17076,7 @@ int __cdecl WXML::Compiler::ProcessWxsInline( std::string::_M_dispose((void **)v65); if ( v56 ) { - MMBizWxaAppComm::PathCombine(a1, &v55, (unsigned int *)v60); + MMBizWxaAppComm::PathCombine(a1, &v55, (unsigned int **)v60); if ( *(_BYTE *)v60[0] == 47 ) { std::operator+((int)v64, 46, (int)v60); @@ -18297,7 +17146,7 @@ LABEL_18: std::string::_M_dispose((void **)v69); std::string::_M_dispose((void **)v65); std::string::_M_dispose(v64); - v15 = night::compile_ns((int)a1, (int)v62, (int)v58, v50, (unsigned int *)v51, 0); + v15 = night::compile_ns((int)a1, (int)v62, (int)v58, v50, (unsigned int **)v51, 0); if ( v15 ) { std::string::_M_assign((int)a7, (int)v51); @@ -18376,7 +17225,7 @@ int __cdecl WXML::Compiler::ProcessWxsFile(int *a1, int a2, char a3, int a4, _DW std::operator+((int)v23, "p_", (int)a1); WXML::Compiler::GetFuncId(v19, a6, (int)v23); std::string::_M_dispose(v23); - v16 = night::compile_ns((int)a1, (int)v19, a2, 1, (unsigned int *)v17, 0); + v16 = night::compile_ns((int)a1, (int)v19, a2, 1, (unsigned int **)v17, 0); if ( v16 ) { std::string::_M_assign(a4, (int)v17); @@ -18416,7 +17265,7 @@ int __cdecl WXML::Compiler::ProcessWxsFile(int *a1, int a2, char a3, int a4, _DW //----- (00410A55) -------------------------------------------------------- unsigned int __cdecl WXML::Compiler::Compile( _DWORD *a1, - unsigned int *a2, + unsigned int **a2, _DWORD *a3, _DWORD *a4, _DWORD *a5, @@ -18443,7 +17292,7 @@ unsigned int __cdecl WXML::Compiler::Compile( int *v24; // ebx char *v25; // eax void **v26; // esi - int insert_hint_unique_pos; // eax + std::ostream::sentry *insert_hint_unique_pos; // eax int *v28; // edx char v29; // al std::ostream::sentry *v30; // esi @@ -18743,7 +17592,7 @@ unsigned int __cdecl WXML::Compiler::Compile( int v325[49]; // [esp+3ACh] [ebp-23Ch] BYREF int v326[2]; // [esp+470h] [ebp-178h] BYREF char v327[4]; // [esp+478h] [ebp-170h] BYREF - _DWORD v328[91]; // [esp+47Ch] [ebp-16Ch] BYREF + int v328[91]; // [esp+47Ch] [ebp-16Ch] BYREF std::basic_stringstream,std::allocator>::basic_stringstream((int)v316); std::_Rb_tree_header::_Rb_tree_header(&v284); @@ -18800,10 +17649,10 @@ LABEL_37: std::string::basic_string((_DWORD *)v25 + 4, (int)v21); v24[10] = 0; v24[11] = 0; - insert_hint_unique_pos = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( - &v283, - v262, - (int)v26); + insert_hint_unique_pos = (std::ostream::sentry *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( + &v283, + v262, + (int)v26); if ( v28 ) { v29 = v28 == &v284 || insert_hint_unique_pos != 0; @@ -18818,7 +17667,7 @@ LABEL_37: } else { - v264 = (std::ostream::sentry *)insert_hint_unique_pos; + v264 = insert_hint_unique_pos; std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count((volatile signed __int32 **)v24 + 11); std::string::_M_dispose(v26); operator delete(v24); @@ -18872,7 +17721,7 @@ LABEL_37: std::string::_M_dispose((void **)v315); if ( v301 ) { - MMBizWxaAppComm::PathCombine(v21, &v300, (unsigned int *)v305); + MMBizWxaAppComm::PathCombine(v21, &v300, (unsigned int **)v305); if ( *(_BYTE *)v305[0] == 47 ) { std::operator+((int)v307, 46, (int)v305); @@ -18949,7 +17798,7 @@ LABEL_33: std::string::_M_dispose((void **)&v322); std::string::_M_dispose((void **)v315); std::string::_M_dispose((void **)v313); - v33 = night::compile_ns((int)v21, (int)&v308, (int)v303, v277, (unsigned int *)v296, 0); + v33 = night::compile_ns((int)v21, (int)&v308, (int)v303, v277, (unsigned int **)v296, 0); if ( v33 ) { std::string::_M_assign((int)a2, (int)v296); @@ -19008,7 +17857,7 @@ LABEL_33: std::operator+((int)v326, "p_", (int)v21); WXML::Compiler::GetFuncId((void **)v313, &v291, (int)v326); std::string::_M_dispose((void **)v326); - v273 = night::compile_ns((int)v21, (int)v313, (int)(i + 10), 1, (unsigned int *)&v310, 0); + v273 = night::compile_ns((int)v21, (int)v313, (int)(i + 10), 1, (unsigned int **)&v310, 0); if ( v273 ) { std::string::_M_assign((int)a2, (int)&v310); @@ -19661,7 +18510,7 @@ LABEL_33: v153 = std::operator<<>((std::ostream::sentry *)v317, "function Z(ops){z.push(ops)}"); std::operator<<>(v153, a9); WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord( - *(_DWORD **)(v305[0] + 40), + *(unsigned int ***)(v305[0] + 40), (int *)(v305[0] + 16), a2, (int)v316, @@ -19777,7 +18626,7 @@ LABEL_33: std::string::basic_string((void **)v326, "get_page_z_name"); v183 = std::map::operator[]((_DWORD *)(*(_DWORD *)(v310 + 40) + 272), v326); v273 = WXML::Compiler::RenderDefine( - (unsigned int **)(v310 + 40), + (unsigned int ***)(v310 + 40), (int *)(v310 + 16), &v308, (int)a2, @@ -20105,21 +18954,21 @@ LABEL_130: // 410A55: using guessed type int var_3DC[49]; //----- (00413A7C) -------------------------------------------------------- -unsigned int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies( +int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies( int a1, - unsigned int *a2, + unsigned int **a2, _DWORD *a3, _DWORD *a4, _DWORD *a5) { int v5; // edi bool v6; // si - unsigned int v7; // eax + int v7; // eax _DWORD *v9; // ebx _DWORD *v10; // esi char *v11; // eax void **v12; // esi - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v14; // edx void (__cdecl *v15)(void *); // ecx char v16; // al @@ -20131,14 +18980,14 @@ unsigned int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies( _DWORD *v22; // esi char *v23; // eax void **v24; // esi - int v25; // eax + _DWORD *v25; // eax _DWORD *v26; // edx _DWORD *v27; // edi char v28; // al int v29; // ecx volatile signed __int32 *v30; // edx volatile signed __int32 *v31; // eax - int j; // ebx + _DWORD *j; // ebx unsigned int v33; // esi void *v34; // edi unsigned int v35; // edx @@ -20154,11 +19003,11 @@ unsigned int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies( _DWORD *v45; // [esp+20h] [ebp-58h] _DWORD *v46; // [esp+20h] [ebp-58h] _DWORD *v47; // [esp+28h] [ebp-50h] - int v48; // [esp+28h] [ebp-50h] + _DWORD *v48; // [esp+28h] [ebp-50h] _DWORD *v49; // [esp+28h] [ebp-50h] - int v50; // [esp+28h] [ebp-50h] + _DWORD *v50; // [esp+28h] [ebp-50h] _DWORD *i; // [esp+2Ch] [ebp-4Ch] - unsigned int v52; // [esp+2Ch] [ebp-4Ch] + int v52; // [esp+2Ch] [ebp-4Ch] int v53; // [esp+34h] [ebp-44h] BYREF volatile signed __int32 *v54; // [esp+38h] [ebp-40h] BYREF char *v55; // [esp+3Ch] [ebp-3Ch] BYREF @@ -20237,7 +19086,7 @@ unsigned int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies( std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count((volatile signed __int32 **)v9 + 11); std::string::_M_dispose(v12); operator delete(v9); - v9 = (_DWORD *)v48; + v9 = v48; } } v17 = v9[10]; @@ -20295,7 +19144,7 @@ unsigned int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies( std::vector::~vector((void **)v21 + 10); std::string::_M_dispose(v24); operator delete(v21); - v21 = (_DWORD *)v50; + v21 = v50; } } v29 = v21[10]; @@ -20315,10 +19164,10 @@ unsigned int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies( std::vector::~vector((void **)&v55); } } - for ( j = a3[3]; a3 + 1 != (_DWORD *)j; j = std::_Rb_tree_increment(j) ) + for ( j = (_DWORD *)a3[3]; a3 + 1 != j; j = (_DWORD *)std::_Rb_tree_increment((int)j) ) { std::_Rb_tree_header::_Rb_tree_header(v59); - WXML::DOMLib::recurseDependencies((int *)(j + 40), (int *)(j + 16), &v58); + WXML::DOMLib::recurseDependencies(j + 10, j + 4, &v58); v33 = v60; if ( v60 ) { @@ -20349,7 +19198,7 @@ unsigned int __cdecl WXML::Compiler::ParseAndResolveWxmlDependencies( std::string::_M_assign((int)v39, (int)(k + 4)); v39 += 24; } - v41 = std::map>::operator[](a5, j + 16); + v41 = std::map>::operator[](a5, (int)(j + 4)); std::vector::operator=((int)v41, (int *)&v55); std::vector::~vector((void ***)&v55, v42); } @@ -20373,7 +19222,7 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( _DWORD *a2, int a3, int a4, - unsigned int *a5, + unsigned int **a5, _DWORD *a6, _DWORD *a7, int a8, @@ -20400,7 +19249,7 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( int *a29) { char v29; // dl - int v30; // esi + _DWORD *v30; // esi char v31; // al std::ostream::sentry *v32; // ecx std::ostream::sentry *v33; // edx @@ -20411,33 +19260,33 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( int v38; // eax int *v39; // ebx _DWORD *v40; // eax - _DWORD *v41; // eax + void ***v41; // eax int v42; // edx int v43; // esi _DWORD *v44; // eax _DWORD *v45; // eax _DWORD *v46; // eax int v47; // edi - _DWORD *v48; // eax + void ***v48; // eax int v49; // edx int v50; // esi - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax int *v52; // edx _DWORD *v53; // edi - int i; // ebx + _DWORD *i; // ebx int v55; // esi int *v56; // edx char v57; // al int v58; // eax int *p_k; // esi - _DWORD *v60; // eax + void ***v60; // eax int v61; // edx int v62; // ebx int *v63; // eax _DWORD *v64; // eax std::ostream::sentry *v65; // edi std::ostream::sentry *v66; // ebx - int m; // ebx + _DWORD *m; // ebx int v68; // edi int *v69; // eax _DWORD *v70; // edi @@ -20535,20 +19384,20 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( int StrID; // eax std::ostream::sentry *v163; // eax int *v164; // eax - unsigned int *v165; // eax + unsigned int **v165; // eax int *v166; // ebx std::ostream::sentry *v167; // eax int v168; // eax std::ostream::sentry *v169; // eax std::ostream::sentry *v170; // eax - unsigned int v171; // edx - int v172; // ebx + unsigned int *v171; // edx + unsigned int v172; // ebx _DWORD *v173; // ebx _DWORD *v174; // ecx int v175; // eax int v176; // eax - unsigned int v177; // edx - int v178; // ebx + unsigned int *v177; // edx + unsigned int v178; // ebx _DWORD *v179; // ebx _DWORD *v180; // ecx int v181; // eax @@ -20614,11 +19463,11 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( _DWORD *v242; // [esp+54h] [ebp-184h] int v243; // [esp+58h] [ebp-180h] int *v244; // [esp+5Ch] [ebp-17Ch] - int v245; // [esp+60h] [ebp-178h] + unsigned int v245; // [esp+60h] [ebp-178h] _DWORD *v246; // [esp+60h] [ebp-178h] _DWORD *v247; // [esp+60h] [ebp-178h] int v248; // [esp+64h] [ebp-174h] - int v249; // [esp+64h] [ebp-174h] + unsigned int v249; // [esp+64h] [ebp-174h] int v250; // [esp+68h] [ebp-170h] std::ostream::sentry *v251; // [esp+6Ch] [ebp-16Ch] int *v252; // [esp+6Ch] [ebp-16Ch] @@ -20645,9 +19494,9 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( int *v273; // [esp+98h] [ebp-140h] int v274; // [esp+98h] [ebp-140h] _DWORD *v275; // [esp+98h] [ebp-140h] - _DWORD *v276; // [esp+98h] [ebp-140h] + unsigned int ***v276; // [esp+98h] [ebp-140h] int v277; // [esp+98h] [ebp-140h] - unsigned int **v278; // [esp+98h] [ebp-140h] + unsigned int ***v278; // [esp+98h] [ebp-140h] bool v279; // [esp+9Ch] [ebp-13Ch] std::ostream::sentry *v280; // [esp+9Ch] [ebp-13Ch] bool v281; // [esp+9Ch] [ebp-13Ch] @@ -20658,7 +19507,7 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( std::ostream::sentry *v286; // [esp+9Ch] [ebp-13Ch] std::ostream::sentry *v287; // [esp+9Ch] [ebp-13Ch] std::ostream::sentry *v288; // [esp+9Ch] [ebp-13Ch] - unsigned int *v289; // [esp+9Ch] [ebp-13Ch] + unsigned int **v289; // [esp+9Ch] [ebp-13Ch] std::ostream::sentry *v290; // [esp+9Ch] [ebp-13Ch] int n; // [esp+A8h] [ebp-130h] BYREF int v292[2]; // [esp+ACh] [ebp-12Ch] BYREF @@ -20690,11 +19539,11 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( std::_Rb_tree_header::_Rb_tree_header(v298); std::_Rb_tree_header::_Rb_tree_header(v300); v271 = v29; - v30 = a1[3]; + v30 = (_DWORD *)a1[3]; v253 = v31; - while ( a1 + 1 != (_DWORD *)v30 ) + while ( a1 + 1 != v30 ) { - std::string::substr((void **)&v304, (_DWORD *)(v30 + 16), *(_DWORD *)(v30 + 20) - 5, 0xFFFFFFFF); + std::string::substr((void **)&v304, v30 + 4, v30[5] - 5, 0xFFFFFFFF); v279 = std::operator==((int)&v304, ".wxml"); std::string::_M_dispose((void **)&v304); if ( v279 ) @@ -20707,7 +19556,7 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( { v251 = v32; v261 = v33; - v35 = std::operator<((int)v34 + 16, v30 + 16); + v35 = std::operator<((int)v34 + 16, (int)(v30 + 4)); v33 = v261; v32 = v251; if ( v35 ) @@ -20721,9 +19570,9 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( } } v262 = (int *)v33; - if ( v280 == v32 || (unsigned __int8)std::operator<(v30 + 16, (int)v32 + 16) ) + if ( v280 == v32 || (unsigned __int8)std::operator<((int)(v30 + 4), (int)v32 + 16) ) { - std::operator+((int)&j, "Inner error: wxs source token for '", v30 + 16); + std::operator+((int)&j, "Inner error: wxs source token for '", (int)(v30 + 4)); v236 = std::string::append(&j, "' not found."); std::string::basic_string(&k, v236); std::string::operator=(a5, &k); @@ -20737,7 +19586,7 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( while ( v36 ) { v252 = v36; - if ( (unsigned __int8)std::operator<((int)(v36 + 4), v30 + 16) ) + if ( (unsigned __int8)std::operator<((int)(v36 + 4), (int)(v30 + 4)) ) { v36 = (int *)v252[3]; } @@ -20747,10 +19596,10 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( v36 = (int *)v252[2]; } } - if ( v280 == (std::ostream::sentry *)v37 || (unsigned __int8)std::operator<(v30 + 16, (int)(v37 + 4)) ) + if ( v280 == (std::ostream::sentry *)v37 || (unsigned __int8)std::operator<((int)(v30 + 4), (int)(v37 + 4)) ) std::__throw_out_of_range((std::out_of_range *)"map::at"); v38 = WXML::Compiler::ProcessWxsInline( - (int *)(v30 + 16), + v30 + 4, v37 + 10, v271, a17, @@ -20764,18 +19613,18 @@ int __cdecl WXML::Compiler::CompileLazyWithParsed( } else { - std::string::substr((void **)v306, (_DWORD *)(v30 + 16), *(_DWORD *)(v30 + 20) - 4, 0xFFFFFFFF); + std::string::substr((void **)v306, v30 + 4, v30[5] - 4, 0xFFFFFFFF); v281 = std::operator==((int)v306, ".wxs"); std::string::_M_dispose((void **)v306); if ( !v281 ) goto LABEL_21; - v38 = WXML::Compiler::ProcessWxsFile((int *)(v30 + 16), v30 + 40, v271, (int)a5, &v297, &v299); + v38 = WXML::Compiler::ProcessWxsFile(v30 + 4, (int)(v30 + 10), v271, (int)a5, &v297, &v299); } v282 = v38; if ( v38 ) goto LABEL_184; LABEL_21: - v30 = std::_Rb_tree_increment(v30); + v30 = (_DWORD *)std::_Rb_tree_increment(v30); } v283 = (std::ostream::sentry *)(a8 + 4); if ( !a12 ) @@ -20800,8 +19649,8 @@ LABEL_21: v312 = 0; v313 = 0; std::string::basic_string((void **)&k, "__COMMON__"); - v41 = std::map>::operator[]((_DWORD *)a8, &k); - std::vector::_M_move_assign(v41, &j); + v41 = (void ***)std::map>::operator[]((_DWORD *)a8, &k); + std::vector::_M_move_assign(v41, (void ***)&j); std::string::_M_dispose((void **)&k); std::vector::~vector((void ***)&j, v42); if ( a11 ) @@ -20841,9 +19690,9 @@ LABEL_21: std::string::basic_string(v46, (int)&k); v39 = &v307; v308 = v47; - v48 = std::map>::operator[]((_DWORD *)a8, v43); + v48 = (void ***)std::map>::operator[]((_DWORD *)a8, v43); v43 += 24; - std::vector::_M_move_assign(v48, &v307); + std::vector::_M_move_assign(v48, (void ***)&v307); std::vector::~vector((void ***)&v307, v49); std::string::_M_dispose((void **)&k); std::string::_M_dispose((void **)&j); @@ -20873,9 +19722,9 @@ LABEL_21: } v50 += 24; } - for ( i = a2[3]; a2 + 1 != (_DWORD *)i; i = std::_Rb_tree_increment(i) ) + for ( i = (_DWORD *)a2[3]; a2 + 1 != i; i = (_DWORD *)std::_Rb_tree_increment(i) ) { - std::string::substr((void **)&j, (_DWORD *)(i + 16), 2u, *(_DWORD *)(i + 20) - 7); + std::string::substr((void **)&j, i + 4, 2u, i[5] - 7); v55 = (int)v309; v56 = &v308; while ( v55 ) @@ -20897,7 +19746,7 @@ LABEL_21: { std::string::basic_string((void **)&k, "__COMMON__"); v237 = std::map>::operator[]((_DWORD *)a8, &k); - std::vector::push_back(v237, i + 16); + std::vector::push_back(v237, (int)(i + 4)); std::string::_M_dispose((void **)&k); } std::string::_M_dispose((void **)&j); @@ -20919,8 +19768,8 @@ LABEL_21: v312 = 0; v313 = 0; std::string::basic_string((void **)&k, "__COMMON__"); - v60 = std::map>::operator[]((_DWORD *)a8, &k); - std::vector::_M_move_assign(v60, &j); + v60 = (void ***)std::map>::operator[]((_DWORD *)a8, &k); + std::vector::_M_move_assign(v60, (void ***)&j); std::string::_M_dispose((void **)&k); std::vector::~vector((void ***)&j, v61); } @@ -20994,10 +19843,10 @@ LABEL_21: } } std::_Rb_tree_header::_Rb_tree_header(v302); - for ( m = a2[3]; a2 + 1 != (_DWORD *)m; m = std::_Rb_tree_increment(m) ) + for ( m = (_DWORD *)a2[3]; a2 + 1 != m; m = (_DWORD *)std::_Rb_tree_increment(m) ) { - WXML::DOMLib::WXMLDom::RewriteTree(*(_DWORD *)(m + 40), (const char **)p_k); - v68 = *(_DWORD *)(m + 40); + WXML::DOMLib::WXMLDom::RewriteTree(m[10], (const char **)p_k); + v68 = m[10]; p_k = &k; std::string::basic_string((void **)&k, (unsigned __int8 *)&off_52CB31); v69 = std::map>::operator[](a9, &k); @@ -21005,7 +19854,7 @@ LABEL_21: std::string::_M_dispose((void **)&k); if ( a16 ) { - v70 = *(_DWORD **)(m + 40); + v70 = (_DWORD *)m[10]; std::string::basic_string((void **)&k, (unsigned __int8 *)&off_52CB31); v71 = std::map>::operator[](a9, &k); WXML::DOMLib::WXMLDom::CutDomsForCustomComponent(v70, v71); @@ -21055,7 +19904,7 @@ LABEL_21: (int)"%d", v250); std::operator+(&v307, a17, "_XC_"); - std::operator+(v303, &v307, (unsigned int *)&j); + std::operator+(v303, &v307, (unsigned int **)&j); std::string::_M_dispose((void **)&v307); std::string::_M_dispose((void **)&j); ++v250; @@ -21168,7 +20017,7 @@ LABEL_21: v268 = v118[1]; while ( v119 != v268 ) { - v276 = std::map>::at(a2, (int)v119); + v276 = (unsigned int ***)std::map>::at(a2, (int)v119); std::_Rb_tree_header::_Rb_tree_header(v305); v285 = (std::ostream::sentry *)((char *)v285 + 1); v292[1] = 0; @@ -21180,7 +20029,7 @@ LABEL_21: (int)"%d", v285); std::operator+(&v307, (int)v303, "_"); - std::operator+(v306, &v307, (unsigned int *)&j); + std::operator+(v306, &v307, (unsigned int **)&j); std::string::_M_dispose((void **)&v307); std::string::_M_dispose((void **)&j); std::operator+((int)&v307, "gz", (int)v306); @@ -21206,15 +20055,7 @@ LABEL_21: else v130 = std::operator<<>(v77, "function Z(ops){z.push(ops)}"); std::operator<<>(v130, a19); - WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord( - (_DWORD *)*v276, - v119, - a5, - (int)v266, - &v304, - v292, - (a18 & 4) != 0, - (int)a15); + WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord(*v276, v119, a5, (int)v266, &v304, v292, (a18 & 4) != 0, (int)a15); v131 = std::operator<<>(v77, "})(__WXML_GLOBAL__.ops_cached."); v132 = std::operator<<(v131, v306); std::operator<<>(v132, ");"); @@ -21224,7 +20065,7 @@ LABEL_21: v135 = std::operator<<>(v77, "}"); std::operator<<>(v135, a19); std::string::basic_string((void **)&j, "get_page_z_name"); - v136 = std::map::operator[]((_DWORD *)(*v276 + 272), &j); + v136 = std::map::operator[](*v276 + 68, &j); std::string::_M_assign((int)v136, (int)&v307); v119 += 6; std::string::_M_dispose((void **)&j); @@ -21311,7 +20152,7 @@ LABEL_21: v244 = v160[1]; for ( kk = *v160; v244 != kk; kk += 6 ) { - v278 = (unsigned int **)std::map>::at(a2, (int)kk); + v278 = (unsigned int ***)std::map>::at(a2, (int)kk); v161 = std::operator<<(v77, a24); std::operator<<>(v161, (char *)off_52D00E); v288 = (std::ostream::sentry *)v304; @@ -21354,7 +20195,7 @@ LABEL_21: 16, (int)"%d", v257); - v165 = std::string::insert((unsigned int *)&j, 0, "m"); + v165 = std::string::insert((unsigned int **)&j, 0, "m"); std::string::basic_string(v306, v165); std::string::_M_dispose((void **)&j); v289 = *v278; @@ -21405,11 +20246,11 @@ LABEL_176: while ( 1 ) { v171 = (*v278)[18]; - if ( v259 >= (int)((*v278)[19] - v171) >> 3 ) + if ( v259 >= ((char *)(*v278)[19] - (char *)v171) >> 3 ) break; - if ( std::operator==(*(_DWORD *)(v171 + 8 * v259), "import") ) + if ( std::operator==(v171[2 * v259], "import") ) { - v172 = *(_DWORD *)((*v278)[18] + 8 * v259); + v172 = (*v278)[18][2 * v259]; v241 = (_DWORD *)(v172 + 52); std::string::basic_string((void **)&j, (unsigned __int8 *)&off_523BD1); v173 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( @@ -21422,7 +20263,7 @@ LABEL_176: std::operator<<>(v77, ","); std::operator<<>(v77, "x["); v242 = (_DWORD *)v304; - v245 = *(_DWORD *)((*v278)[18] + 8 * v259); + v245 = (*v278)[18][2 * v259]; std::string::basic_string((void **)&v307, (unsigned __int8 *)&off_523BD1); v174 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( (_DWORD *)(v245 + 48), @@ -21444,11 +20285,11 @@ LABEL_176: for ( mm = 0; ; ++mm ) { v177 = (*v278)[18]; - if ( mm >= (int)((*v278)[19] - v177) >> 3 ) + if ( mm >= ((char *)(*v278)[19] - (char *)v177) >> 3 ) break; - if ( std::operator==(*(_DWORD *)(v177 + 8 * mm), "include") ) + if ( std::operator==(v177[2 * mm], "include") ) { - v178 = *(_DWORD *)((*v278)[18] + 8 * mm); + v178 = (*v278)[18][2 * mm]; v246 = (_DWORD *)(v178 + 52); std::string::basic_string((void **)&j, (unsigned __int8 *)&off_523BD1); v179 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( @@ -21461,7 +20302,7 @@ LABEL_176: std::operator<<>(v77, ","); std::operator<<>(v77, "x["); v247 = (_DWORD *)v304; - v249 = *(_DWORD *)((*v278)[18] + 8 * mm); + v249 = (*v278)[18][2 * mm]; std::string::basic_string((void **)&v307, (unsigned __int8 *)&off_523BD1); v180 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( (_DWORD *)(v249 + 48), @@ -21669,7 +20510,7 @@ LABEL_184: // positive sp value has been detected, the output may be wrong! int __cdecl WXML::Compiler::CompileLazy( std::_Rb_tree_header *a1, - unsigned int *a2, + unsigned int **a2, _DWORD *a3, _DWORD *a4, _DWORD *a5, @@ -21697,7 +20538,7 @@ int __cdecl WXML::Compiler::CompileLazy( { _DWORD *v26; // eax _DWORD *v27; // edx - unsigned int v28; // eax + int v28; // eax int v29; // eax int v30; // ecx int *v31; // edx @@ -21800,10 +20641,10 @@ int __cdecl WXML::Compiler::CompileLazy( //----- (00416ABC) -------------------------------------------------------- void __thiscall WXML::NameAllocator::NameAllocator(_DWORD *this, int a2, int a3) { - int v3; // esi + _DWORD *v3; // esi bool v5; // zf - v3 = (int)(this + 7); + v3 = this + 7; v5 = WXML::NameAllocator::ALPAHBETLEN == 0; this[1] = this + 3; this[2] = 0; @@ -21814,7 +20655,7 @@ void __thiscall WXML::NameAllocator::NameAllocator(_DWORD *this, int a2, int a3) if ( v5 ) WXML::NameAllocator::ALPAHBETLEN = strlen(WXML::NameAllocator::ALPAHBET[0]); std::string::_M_assign((int)(this + 1), a2); - std::string::_M_assign(v3, a3); + std::string::_M_assign((int)v3, a3); *this = 0; } // 51501C: using guessed type char *WXML::NameAllocator::ALPAHBET[13]; @@ -21931,7 +20772,7 @@ void __cdecl MMBizWxaAppComm::SplitBySlash(_DWORD *a1, void ***a2) } //----- (00416D76) -------------------------------------------------------- -int __cdecl MMBizWxaAppComm::PathCombine(_DWORD *a1, _DWORD *a2, unsigned int *a3) +int __cdecl MMBizWxaAppComm::PathCombine(_DWORD *a1, _DWORD *a2, unsigned int **a3) { bool v3; // zf int v4; // eax @@ -21946,7 +20787,7 @@ int __cdecl MMBizWxaAppComm::PathCombine(_DWORD *a1, _DWORD *a2, unsigned int *a int v14; // [esp+30h] [ebp-38h] int v15; // [esp+34h] [ebp-34h] void *v16[2]; // [esp+38h] [ebp-30h] BYREF - _BYTE v17[40]; // [esp+40h] [ebp-28h] BYREF + char v17[40]; // [esp+40h] [ebp-28h] BYREF v10 = 0; v11 = 0; @@ -22024,7 +20865,7 @@ int __cdecl MMBizWxaAppComm::PathCombine(int a1, _DWORD *a2, _DWORD *a3) *(_DWORD *)(a1 + 4) = 0; *(_DWORD *)a1 = a1 + 8; *(_BYTE *)(a1 + 8) = 0; - MMBizWxaAppComm::PathCombine(a2, a3, (unsigned int *)a1); + MMBizWxaAppComm::PathCombine(a2, a3, (unsigned int **)a1); return a1; } @@ -22157,22 +20998,30 @@ int __userpurge WXML::DOMLib::WXMLDom::GenRawId@( { unsigned int i; // esi int v5; // edx - int v6; // eax + _DWORD *v6; // ecx + int v7; // edx + int v8; // eax int result; // eax - unsigned __int64 *v8; // [esp+4h] [ebp-24h] + unsigned __int64 *v10; // [esp+4h] [ebp-24h] - for ( i = 0; (a1[19] - a1[18]) >> 3 > i; ++i ) - WXML::DOMLib::WXMLDom::GenRawId(this, v8); - v5 = *((_DWORD *)this + 1); - v6 = *(_DWORD *)this; - a1[67] = v5; - a1[66] = v6; - *(_DWORD *)this = v6; + for ( i = 0; ; ++i ) + { + v5 = a1[18]; + if ( (a1[19] - v5) >> 3 <= i ) + break; + v6 = *(_DWORD **)(v5 + 8 * i); + WXML::DOMLib::WXMLDom::GenRawId(v6, this, v10); + } + v7 = *((_DWORD *)this + 1); + v8 = *(_DWORD *)this; + a1[67] = v7; + a1[66] = v8; + *(_DWORD *)this = v8; result = 0; - *((_DWORD *)this + 1) = v5 + 1; + *((_DWORD *)this + 1) = v7 + 1; return result; } -// 417150: variable 'v8' is possibly undefined +// 417150: variable 'v10' is possibly undefined //----- (0041717C) -------------------------------------------------------- _DWORD *__thiscall WXML::DOMLib::Parser::GetParsed(_DWORD *ecx0, WXML::DOMLib::Parser *this) @@ -22663,29 +21512,27 @@ LABEL_12: int __fastcall WXML::DOMLib::Parser::ATTR_LIST(WXML::DOMLib::Parser *a1) { WXML::DOMLib::Token *v2; // eax - WXML::DOMLib::Parser *v3; // edx - const WXML::DOMLib::Token *v5; // [esp+4h] [ebp-84h] + const WXML::DOMLib::Token *v4; // [esp+4h] [ebp-84h] + const char *v5; // [esp+4h] [ebp-84h] const char *v6; // [esp+4h] [ebp-84h] - const char *v7; // [esp+4h] [ebp-84h] - char v8[116]; // [esp+10h] [ebp-78h] BYREF + char v7[116]; // [esp+10h] [ebp-78h] BYREF WXML::DOMLib::Parser::ATTR(a1); v2 = (WXML::DOMLib::Token *)WXML::DOMLib::Parser::Peek(a1); - WXML::DOMLib::Token::Token((int)v8, v2, v5); - if ( !WXML::DOMLib::Token::IsMatch((int)v8, (WXML::DOMLib::Token *)">", v6) - && !WXML::DOMLib::Token::IsMatch((int)v8, (WXML::DOMLib::Token *)"/>", v7) ) + WXML::DOMLib::Token::Token((int)v7, v2, v4); + if ( !WXML::DOMLib::Token::IsMatch((int)v7, (WXML::DOMLib::Token *)">", v5) + && !WXML::DOMLib::Token::IsMatch((int)v7, (WXML::DOMLib::Token *)"/>", v6) ) { - WXML::DOMLib::Parser::ATTR_LIST(v3); + WXML::DOMLib::Parser::ATTR_LIST(a1); } - return WXML::DOMLib::Token::~Token((int)v8); + return WXML::DOMLib::Token::~Token((int)v7); } -// 417D16: variable 'v5' is possibly undefined -// 417D26: variable 'v6' is possibly undefined -// 417D3A: variable 'v7' is possibly undefined -// 417D53: variable 'v3' is possibly undefined +// 417D16: variable 'v4' is possibly undefined +// 417D26: variable 'v5' is possibly undefined +// 417D3A: variable 'v6' is possibly undefined //----- (00417D6C) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *a2) +int __thiscall std::string::basic_string(void **this, char *a2) { size_t v3; // eax int v5; // [esp+8h] [ebp-10h] @@ -22820,102 +21667,89 @@ int __usercall WXML::DOMLib::WXMLDom::RewriteTree@(int a1@, const char int v4; // edx int v5; // esi _DWORD *v6; // ecx - const char **v7; // eax - WXML::DOMLib::WXMLDom *v8; // edx - char *v9; // eax - int v10; // edx - int v11; // ebx - _DWORD *v12; // eax - WXML::DOMLib::WXMLDom *v13; // edx - char **v14; // edx - char *v15; // ebx - int v16; // esi - _DWORD *v17; // ecx - const char **v18; // eax - WXML::DOMLib::WXMLDom *v19; // edx - void *v20; // eax - int v21; // edx - char *v22; // eax + char *v7; // eax + int v8; // edx + int v9; // ebx + char **v10; // edx + char *v11; // ebx + int v12; // esi + _DWORD *v13; // ecx + void *v14; // eax + int v15; // edx + char *v16; // eax unsigned int k; // ebx - int v24; // edx - int v25; // esi - const char **v26; // eax + int v18; // edx + int v19; // esi + const char **v20; // eax unsigned int m; // ebx - int v28; // edx - WXML::DOMLib::WXMLDom *v29; // ecx - int v30; // edx - int v31; // ebx - _DWORD *v32; // eax - WXML::DOMLib::WXMLDom *v33; // edx - void *v34; // eax - int v35; // edx - unsigned int *v36; // ebx - char *v37; // eax - _DWORD *v38; // esi - int v39; // ebx - _DWORD *v40; // ebx - unsigned int *v41; // ebx - char *v42; // eax - _DWORD *v43; // esi - int v44; // ebx + int v22; // edx + int v23; // edx + int v24; // ebx + void *v25; // eax + int v26; // edx + unsigned int **v27; // ebx + char *v28; // eax + _DWORD *v29; // esi + int v30; // ebx + _DWORD *v31; // ebx + unsigned int **v32; // ebx + char *v33; // eax + _DWORD *v34; // esi + int v35; // ebx + _DWORD *v36; // ebx + unsigned int **v37; // ebx + char *v38; // eax + _DWORD *v39; // esi + int v40; // ebx + const char **v41; // ebx + unsigned int **v42; // esi + char *v43; // eax + _DWORD *v44; // ecx _DWORD *v45; // ebx - unsigned int *v46; // ebx - char *v47; // eax - _DWORD *v48; // esi - int v49; // ebx - _DWORD *v50; // esi - _DWORD *v51; // ebx - unsigned int *v52; // esi - char *v53; // eax - _DWORD *v54; // ebx - WXML::DOMLib::WXMLDom *v55; // ecx unsigned int ii; // ebx - int v57; // edx - int v58; // esi - _DWORD *v59; // eax - WXML::DOMLib::WXMLDom *v60; // edx - void *v61; // eax - int v62; // edx - char *v63; // eax - WXML::DOMLib::WXMLDom *v64; // ecx + int v47; // edx + void *v48; // eax + int v49; // edx + char *v50; // eax unsigned int jj; // ebx - WXML::DOMLib::WXMLDom *v67; // [esp+0h] [ebp-158h] - const WXML::DOMLib::Token *v68; // [esp+4h] [ebp-154h] - const WXML::DOMLib::Token *v69; // [esp+4h] [ebp-154h] - const WXML::DOMLib::Token *v70; // [esp+4h] [ebp-154h] - const WXML::DOMLib::Token *v71; // [esp+4h] [ebp-154h] - char **v72; // [esp+10h] [ebp-148h] - _DWORD *v73; // [esp+14h] [ebp-144h] - const char **v74; // [esp+14h] [ebp-144h] - char **v75; // [esp+14h] [ebp-144h] - _DWORD *v76; // [esp+14h] [ebp-144h] - _DWORD *v77; // [esp+14h] [ebp-144h] - _DWORD *v78; // [esp+14h] [ebp-144h] - int v79; // [esp+18h] [ebp-140h] - int v80; // [esp+18h] [ebp-140h] + int v52; // edx + int v53; // ecx + const WXML::DOMLib::Token *v55; // [esp+4h] [ebp-154h] + const WXML::DOMLib::Token *v56; // [esp+4h] [ebp-154h] + const WXML::DOMLib::Token *v57; // [esp+4h] [ebp-154h] + const WXML::DOMLib::Token *v58; // [esp+4h] [ebp-154h] + char **v59; // [esp+10h] [ebp-148h] + _DWORD *v60; // [esp+14h] [ebp-144h] + const char **v61; // [esp+14h] [ebp-144h] + char **v62; // [esp+14h] [ebp-144h] + _DWORD *v63; // [esp+14h] [ebp-144h] + _DWORD *v64; // [esp+14h] [ebp-144h] + _DWORD *v65; // [esp+14h] [ebp-144h] + int v66; // [esp+18h] [ebp-140h] + int v67; // [esp+18h] [ebp-140h] unsigned int n; // [esp+18h] [ebp-140h] - _DWORD *v82; // [esp+18h] [ebp-140h] - const char **v83; // [esp+1Ch] [ebp-13Ch] - int v84; // [esp+1Ch] [ebp-13Ch] + _DWORD *v69; // [esp+18h] [ebp-140h] + const char **v70; // [esp+1Ch] [ebp-13Ch] + int v71; // [esp+1Ch] [ebp-13Ch] unsigned int j; // [esp+1Ch] [ebp-13Ch] - int v86; // [esp+1Ch] [ebp-13Ch] - int v87; // [esp+1Ch] [ebp-13Ch] - char **v88; // [esp+1Ch] [ebp-13Ch] - _DWORD *v89; // [esp+1Ch] [ebp-13Ch] - int v90; // [esp+2Ch] [ebp-12Ch] BYREF - volatile signed __int32 *v91; // [esp+30h] [ebp-128h] BYREF - unsigned int *v92; // [esp+34h] [ebp-124h] BYREF - volatile signed __int32 *v93; // [esp+38h] [ebp-120h] BYREF - void *v94[6]; // [esp+3Ch] [ebp-11Ch] BYREF - void *v95[6]; // [esp+54h] [ebp-104h] BYREF - void *v96[6]; // [esp+6Ch] [ebp-ECh] BYREF - _DWORD *v97; // [esp+84h] [ebp-D4h] BYREF - volatile signed __int32 *v98[5]; // [esp+88h] [ebp-D0h] BYREF - char **v99; // [esp+9Ch] [ebp-BCh] BYREF - volatile signed __int32 *v100[5]; // [esp+A0h] [ebp-B8h] BYREF - void *v101[6]; // [esp+B4h] [ebp-A4h] BYREF - const char *v102; // [esp+CCh] [ebp-8Ch] BYREF - char v103[136]; // [esp+D0h] [ebp-88h] BYREF + int v73; // [esp+1Ch] [ebp-13Ch] + int v74; // [esp+1Ch] [ebp-13Ch] + char **v75; // [esp+1Ch] [ebp-13Ch] + _DWORD *v76; // [esp+1Ch] [ebp-13Ch] + int v77; // [esp+2Ch] [ebp-12Ch] BYREF + volatile signed __int32 *v78; // [esp+30h] [ebp-128h] BYREF + unsigned int **v79; // [esp+34h] [ebp-124h] BYREF + volatile signed __int32 *v80; // [esp+38h] [ebp-120h] BYREF + void *v81[6]; // [esp+3Ch] [ebp-11Ch] BYREF + void *v82[6]; // [esp+54h] [ebp-104h] BYREF + void *v83[6]; // [esp+6Ch] [ebp-ECh] BYREF + char *v84; // [esp+84h] [ebp-D4h] BYREF + volatile signed __int32 *v85[5]; // [esp+88h] [ebp-D0h] BYREF + char **v86; // [esp+9Ch] [ebp-BCh] BYREF + volatile signed __int32 *v87[5]; // [esp+A0h] [ebp-B8h] BYREF + void *v88[6]; // [esp+B4h] [ebp-A4h] BYREF + const char *v89; // [esp+CCh] [ebp-8Ch] BYREF + char v90[136]; // [esp+D0h] [ebp-88h] BYREF for ( i = 0; ; ++i ) { @@ -22923,101 +21757,95 @@ int __usercall WXML::DOMLib::WXMLDom::RewriteTree@(int a1@, const char if ( (*(_DWORD *)(a1 + 76) - v4) >> 3 <= i ) break; v5 = *(_DWORD *)(v4 + 8 * i); - std::string::basic_string((void **)&v102, "wx:for"); + std::string::basic_string((void **)&v89, "wx:for"); v6 = (_DWORD *)(v5 + 48); a2 = (const char **)(v5 + 52); - v7 = (const char **)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - v6, - (int)&v102); - v67 = v8; - v83 = v7; - std::string::_M_dispose((void **)&v102); - if ( v83 != a2 ) + v70 = (const char **)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + v6, + (int)&v89); + std::string::_M_dispose((void **)&v89); + if ( v70 != a2 ) { - v84 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * i); - std::string::basic_string(v101, "wx:for"); - v9 = std::map::operator[]( + v71 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * i); + std::string::basic_string(v88, "wx:for"); + v7 = std::map::operator[]( (_DWORD *)(*(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * i) + 48), - v101); - v102 = "wx:for-items"; - WXML::DOMLib::Token::Token((int)v103, (WXML::DOMLib::Token *)v9, v68); + v88); + v89 = "wx:for-items"; + WXML::DOMLib::Token::Token((int)v90, (WXML::DOMLib::Token *)v7, v55); std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>( - (_DWORD *)(v84 + 48), - (char **)&v102); - WXML::DOMLib::Token::~Token((int)v103); - std::string::_M_dispose(v101); + (_DWORD *)(v71 + 48), + (char **)&v89); + WXML::DOMLib::Token::~Token((int)v90); + std::string::_M_dispose(v88); a2 = (const char **)(*(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * i) + 48); - std::string::basic_string((void **)&v102, "wx:for"); - v67 = (WXML::DOMLib::WXMLDom *)std::map::erase(a2, (int)&v102); - std::string::_M_dispose((void **)&v102); + std::string::basic_string((void **)&v89, "wx:for"); + std::map::erase(a2, (int)&v89); + std::string::_M_dispose((void **)&v89); } } for ( j = 0; ; ++j ) { - v10 = *(_DWORD *)(a1 + 72); - if ( (*(_DWORD *)(a1 + 76) - v10) >> 3 <= j ) + v8 = *(_DWORD *)(a1 + 72); + if ( (*(_DWORD *)(a1 + 76) - v8) >> 3 <= j ) break; - a2 = &v102; - v79 = 8 * j; - v11 = *(_DWORD *)(v10 + 8 * j); - std::string::basic_string((void **)&v102, "wx:for-items"); - v12 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - (_DWORD *)(v11 + 48), - (int)&v102); - v67 = v13; - v73 = v12; - std::string::_M_dispose((void **)&v102); - if ( v73 == (_DWORD *)(v11 + 52) && !std::operator==(*(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * j), "block") ) + a2 = &v89; + v66 = 8 * j; + v9 = *(_DWORD *)(v8 + 8 * j); + std::string::basic_string((void **)&v89, "wx:for-items"); + v60 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + (_DWORD *)(v9 + 48), + (int)&v89); + std::string::_M_dispose((void **)&v89); + if ( v60 == (_DWORD *)(v9 + 52) && !std::operator==(*(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * j), "block") ) { - v14 = WXML::DOMLib::szWXIFControlAttrs; + v10 = WXML::DOMLib::szWXIFControlAttrs; while ( 1 ) { - v15 = *v14; - v72 = v14; - if ( !*v14 ) + v11 = *v10; + v59 = v10; + if ( !*v10 ) break; - v16 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * j); - std::string::basic_string((void **)&v102, v15); - v17 = (_DWORD *)(v16 + 48); - a2 = (const char **)(v16 + 52); - v18 = (const char **)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - v17, - (int)&v102); - v67 = v19; - v74 = v18; - std::string::_M_dispose((void **)&v102); - v14 = v72 + 1; - if ( v74 != a2 ) + v12 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * j); + std::string::basic_string((void **)&v89, v11); + v13 = (_DWORD *)(v12 + 48); + a2 = (const char **)(v12 + 52); + v61 = (const char **)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + v13, + (int)&v89); + std::string::_M_dispose((void **)&v89); + v10 = v59 + 1; + if ( v61 != a2 ) { std::__shared_ptr::__shared_ptr( - &v97, - (_DWORD *)(*(_DWORD *)(a1 + 72) + v79)); - v20 = operator new((struct type_info *)0x128, (void (__cdecl *)(void *))v68); - WXML::DOMLib::WXMLDom::WXMLDom((int)v20); - zcc::shared_ptr::shared_ptr(v21); - v75 = v99; - std::string::basic_string(v101, v15); - v22 = std::map::operator[](v97 + 12, v101); - v102 = v15; - WXML::DOMLib::Token::Token((int)v103, (WXML::DOMLib::Token *)v22, v69); + &v84, + (_DWORD *)(*(_DWORD *)(a1 + 72) + v66)); + v14 = operator new((struct type_info *)0x128, (void (__cdecl *)(void *))v55); + WXML::DOMLib::WXMLDom::WXMLDom((int)v14); + zcc::shared_ptr::shared_ptr(v15); + v62 = v86; + std::string::basic_string(v88, v11); + v16 = std::map::operator[]((_DWORD *)v84 + 12, v88); + v89 = v11; + WXML::DOMLib::Token::Token((int)v90, (WXML::DOMLib::Token *)v16, v56); std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>( - v75 + 12, - (char **)&v102); - WXML::DOMLib::Token::~Token((int)v103); - std::string::_M_dispose(v101); - std::string::operator=((unsigned int *)v99, "block"); - WXML::DOMLib::Token::operator=((int)(v99 + 21), (int)(v97 + 21)); - std::string::_M_assign((int)(v99 + 6), (int)(v97 + 6)); - a2 = (const char **)(v97 + 12); - std::string::basic_string((void **)&v102, v15); - std::map::erase(a2, (int)&v102); - std::string::_M_dispose((void **)&v102); - std::vector>::push_back(v99 + 18, &v97); - v67 = (WXML::DOMLib::WXMLDom *)std::__shared_ptr::operator=( - (_DWORD *)(*(_DWORD *)(a1 + 72) + v79), - &v99); - std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v100); - std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v98); + v62 + 12, + (char **)&v89); + WXML::DOMLib::Token::~Token((int)v90); + std::string::_M_dispose(v88); + std::string::operator=((unsigned int **)v86, "block"); + WXML::DOMLib::Token::operator=((int)(v86 + 21), (int)(v84 + 84)); + std::string::_M_assign((int)(v86 + 6), (int)(v84 + 24)); + a2 = (const char **)(v84 + 48); + std::string::basic_string((void **)&v89, v11); + std::map::erase(a2, (int)&v89); + std::string::_M_dispose((void **)&v89); + std::vector>::push_back(v86 + 18, &v84); + std::__shared_ptr::operator=( + (_DWORD *)(*(_DWORD *)(a1 + 72) + v66), + &v86); + std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v87); + std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v85); break; } } @@ -23025,59 +21853,54 @@ int __usercall WXML::DOMLib::WXMLDom::RewriteTree@(int a1@, const char } for ( k = 0; ; ++k ) { - v24 = *(_DWORD *)(a1 + 72); - if ( (*(_DWORD *)(a1 + 76) - v24) >> 3 <= k ) + v18 = *(_DWORD *)(a1 + 72); + if ( (*(_DWORD *)(a1 + 76) - v18) >> 3 <= k ) break; - if ( !std::operator==(*(_DWORD *)(v24 + 8 * k), "template") ) - goto LABEL_22; - v80 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * k); - std::string::basic_string(v101, "is"); + if ( !std::operator==(*(_DWORD *)(v18 + 8 * k), "template") ) + goto LABEL_56; + v67 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * k); + std::string::basic_string(v88, "is"); a2 = 0; - if ( (_DWORD *)(v80 + 52) != std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - (_DWORD *)(v80 + 48), - (int)v101) ) + if ( (_DWORD *)(v67 + 52) != std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + (_DWORD *)(v67 + 48), + (int)v88) ) { - v25 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * k); - std::string::basic_string((void **)&v102, "name"); - v26 = (const char **)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - (_DWORD *)(v25 + 48), - (int)&v102); - LOBYTE(v26) = v25 + 52 == (_DWORD)v26; - a2 = v26; - std::string::_M_dispose((void **)&v102); + v19 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * k); + std::string::basic_string((void **)&v89, "name"); + v20 = (const char **)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + (_DWORD *)(v19 + 48), + (int)&v89); + LOBYTE(v20) = v19 + 52 == (_DWORD)v20; + a2 = v20; + std::string::_M_dispose((void **)&v89); } - std::string::_M_dispose(v101); + std::string::_M_dispose(v88); if ( (_BYTE)a2 ) { - std::string::operator=(*(unsigned int **)(*(_DWORD *)(a1 + 72) + 8 * k), "wx-template"); + std::string::operator=(*(unsigned int ***)(*(_DWORD *)(a1 + 72) + 8 * k), "wx-template"); } else { -LABEL_22: - if ( !std::operator==(*(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * k), "template") ) - continue; - std::string::operator=(*(unsigned int **)(*(_DWORD *)(a1 + 72) + 8 * k), "wx-define"); +LABEL_56: + if ( std::operator==(*(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * k), "template") ) + std::string::operator=(*(unsigned int ***)(*(_DWORD *)(a1 + 72) + 8 * k), "wx-define"); } - v67 = (WXML::DOMLib::WXMLDom *)a2; } for ( m = 0; ; ++m ) { - v28 = *(_DWORD *)(a1 + 72); - if ( (*(_DWORD *)(a1 + 76) - v28) >> 3 <= m ) + v22 = *(_DWORD *)(a1 + 72); + if ( (*(_DWORD *)(a1 + 76) - v22) >> 3 <= m ) break; - if ( std::operator==(*(_DWORD *)(v28 + 8 * m), "block") ) - { - std::string::operator=(*(unsigned int **)(*(_DWORD *)(a1 + 72) + 8 * m), "block"); - v67 = v29; - } + if ( std::operator==(*(_DWORD *)(v22 + 8 * m), "block") ) + std::string::operator=(*(unsigned int ***)(*(_DWORD *)(a1 + 72) + 8 * m), "block"); } for ( n = 0; ; ++n ) { - v30 = *(_DWORD *)(a1 + 72); - if ( (*(_DWORD *)(a1 + 76) - v30) >> 3 <= n ) + v23 = *(_DWORD *)(a1 + 72); + if ( (*(_DWORD *)(a1 + 76) - v23) >> 3 <= n ) break; - v86 = 8 * n; - if ( (unsigned __int8)std::operator!=(*(_DWORD *)(v30 + 8 * n), "wx-repeat") ) + v73 = 8 * n; + if ( (unsigned __int8)std::operator!=(*(_DWORD *)(v23 + 8 * n), "wx-repeat") ) { if ( (unsigned __int8)std::operator!=(*(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * n), "wx-define") ) { @@ -23085,118 +21908,118 @@ LABEL_22: { if ( (unsigned __int8)std::operator!=(*(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * n), "import") ) { - v31 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * n); - std::string::basic_string((void **)&v102, "wx:for-items"); - v32 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - (_DWORD *)(v31 + 48), - (int)&v102); - v67 = v33; - v76 = v32; - std::string::_M_dispose((void **)&v102); - if ( v76 != (_DWORD *)(v31 + 52) ) + a2 = &v89; + v24 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * n); + std::string::basic_string((void **)&v89, "wx:for-items"); + v63 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + (_DWORD *)(v24 + 48), + (int)&v89); + std::string::_M_dispose((void **)&v89); + if ( v63 != (_DWORD *)(v24 + 52) ) { std::__shared_ptr::__shared_ptr( - &v90, - (_DWORD *)(*(_DWORD *)(a1 + 72) + v86)); - v34 = operator new((struct type_info *)0x128, (void (__cdecl *)(void *))v68); - WXML::DOMLib::WXMLDom::WXMLDom((int)v34); - zcc::shared_ptr::shared_ptr(v35); - std::string::operator=(v92, "wx-repeat"); - std::string::_M_assign((int)(v92 + 6), *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * n) + 24); - WXML::DOMLib::Token::operator=((int)(v92 + 21), v90 + 84); - std::vector>::push_back((char **)v92 + 18, &v90); - v36 = v92; - std::string::basic_string(v101, "wx:for-items"); - v37 = std::map::operator[]((_DWORD *)(v90 + 48), v101); - v102 = "wx:for-items"; - WXML::DOMLib::Token::Token((int)v103, (WXML::DOMLib::Token *)v37, v70); + &v77, + (_DWORD *)(*(_DWORD *)(a1 + 72) + v73)); + v25 = operator new((struct type_info *)0x128, (void (__cdecl *)(void *))v55); + WXML::DOMLib::WXMLDom::WXMLDom((int)v25); + zcc::shared_ptr::shared_ptr(v26); + std::string::operator=(v79, "wx-repeat"); + std::string::_M_assign((int)(v79 + 6), *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * n) + 24); + WXML::DOMLib::Token::operator=((int)(v79 + 21), v77 + 84); + std::vector>::push_back((char **)v79 + 18, &v77); + v27 = v79; + std::string::basic_string(v88, "wx:for-items"); + v28 = std::map::operator[]((_DWORD *)(v77 + 48), v88); + v89 = "wx:for-items"; + WXML::DOMLib::Token::Token((int)v90, (WXML::DOMLib::Token *)v28, v57); std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>( - v36 + 12, - (char **)&v102); - WXML::DOMLib::Token::~Token((int)v103); - std::string::_M_dispose(v101); - v38 = (_DWORD *)(v90 + 48); - std::string::basic_string(v94, "wx:for-items"); - std::map::erase(v38, (int)v94); - std::string::_M_dispose(v94); - v39 = v90; - v77 = (_DWORD *)(v90 + 52); - std::string::basic_string(v95, "wx:for-item"); - v40 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - (_DWORD *)(v39 + 48), - (int)v95); - std::string::_M_dispose(v95); - if ( v40 != v77 ) + v27 + 12, + (char **)&v89); + WXML::DOMLib::Token::~Token((int)v90); + std::string::_M_dispose(v88); + v29 = (_DWORD *)(v77 + 48); + std::string::basic_string(v81, "wx:for-items"); + std::map::erase(v29, (int)v81); + std::string::_M_dispose(v81); + v30 = v77; + v64 = (_DWORD *)(v77 + 52); + std::string::basic_string(v82, "wx:for-item"); + v31 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + (_DWORD *)(v30 + 48), + (int)v82); + std::string::_M_dispose(v82); + if ( v31 != v64 ) { - v41 = v92; - std::string::basic_string(v101, "wx:for-item"); - v42 = std::map::operator[]((_DWORD *)(v90 + 48), v101); - v102 = "wx:for-item"; - WXML::DOMLib::Token::Token((int)v103, (WXML::DOMLib::Token *)v42, v68); + v32 = v79; + std::string::basic_string(v88, "wx:for-item"); + v33 = std::map::operator[]((_DWORD *)(v77 + 48), v88); + v89 = "wx:for-item"; + WXML::DOMLib::Token::Token((int)v90, (WXML::DOMLib::Token *)v33, v55); std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>( - v41 + 12, - (char **)&v102); - WXML::DOMLib::Token::~Token((int)v103); - std::string::_M_dispose(v101); - v43 = (_DWORD *)(v90 + 48); - std::string::basic_string(v96, "wx:for-item"); - std::map::erase(v43, (int)v96); - std::string::_M_dispose(v96); + v32 + 12, + (char **)&v89); + WXML::DOMLib::Token::~Token((int)v90); + std::string::_M_dispose(v88); + v34 = (_DWORD *)(v77 + 48); + std::string::basic_string(v83, "wx:for-item"); + std::map::erase(v34, (int)v83); + std::string::_M_dispose(v83); } - v44 = v90; - v78 = (_DWORD *)(v90 + 52); - std::string::basic_string((void **)&v97, "wx:for-index"); - v45 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - (_DWORD *)(v44 + 48), - (int)&v97); - std::string::_M_dispose((void **)&v97); - if ( v45 != v78 ) + v35 = v77; + v65 = (_DWORD *)(v77 + 52); + std::string::basic_string((void **)&v84, "wx:for-index"); + v36 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + (_DWORD *)(v35 + 48), + (int)&v84); + std::string::_M_dispose((void **)&v84); + if ( v36 != v65 ) { - v46 = v92; - std::string::basic_string(v101, "wx:for-index"); - v47 = std::map::operator[]((_DWORD *)(v90 + 48), v101); - v102 = "wx:for-index"; - WXML::DOMLib::Token::Token((int)v103, (WXML::DOMLib::Token *)v47, v68); + v37 = v79; + std::string::basic_string(v88, "wx:for-index"); + v38 = std::map::operator[]((_DWORD *)(v77 + 48), v88); + v89 = "wx:for-index"; + WXML::DOMLib::Token::Token((int)v90, (WXML::DOMLib::Token *)v38, v55); std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>( - v46 + 12, - (char **)&v102); - WXML::DOMLib::Token::~Token((int)v103); - std::string::_M_dispose(v101); - v48 = (_DWORD *)(v90 + 48); - std::string::basic_string((void **)&v99, "wx:for-index"); - std::map::erase(v48, (int)&v99); - std::string::_M_dispose((void **)&v99); + v37 + 12, + (char **)&v89); + WXML::DOMLib::Token::~Token((int)v90); + std::string::_M_dispose(v88); + v39 = (_DWORD *)(v77 + 48); + std::string::basic_string((void **)&v86, "wx:for-index"); + std::map::erase(v39, (int)&v86); + std::string::_M_dispose((void **)&v86); } - v49 = v90; - v50 = (_DWORD *)(v90 + 52); - std::string::basic_string(v101, "wx:key"); - v51 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - (_DWORD *)(v49 + 48), - (int)v101); - std::string::_M_dispose(v101); - if ( v51 != v50 ) + v40 = v77; + a2 = (const char **)(v77 + 52); + std::string::basic_string(v88, "wx:key"); + v41 = (const char **)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + (_DWORD *)(v40 + 48), + (int)v88); + std::string::_M_dispose(v88); + if ( v41 != a2 ) { - v52 = v92; - std::string::basic_string(v101, "wx:key"); - v53 = std::map::operator[]((_DWORD *)(v90 + 48), v101); - v102 = "wx:key"; - WXML::DOMLib::Token::Token((int)v103, (WXML::DOMLib::Token *)v53, v68); + v42 = v79; + std::string::basic_string(v88, "wx:key"); + v43 = std::map::operator[]((_DWORD *)(v77 + 48), v88); + v89 = "wx:key"; + WXML::DOMLib::Token::Token((int)v90, (WXML::DOMLib::Token *)v43, v55); + v44 = v42 + 12; + a2 = &v89; std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>( - v52 + 12, - (char **)&v102); - WXML::DOMLib::Token::~Token((int)v103); - std::string::_M_dispose(v101); - v54 = (_DWORD *)(v90 + 48); - std::string::basic_string((void **)&v102, "wx:key"); - std::map::erase(v54, (int)&v102); - std::string::_M_dispose((void **)&v102); + v44, + (char **)&v89); + WXML::DOMLib::Token::~Token((int)v90); + std::string::_M_dispose(v88); + v45 = (_DWORD *)(v77 + 48); + std::string::basic_string((void **)&v89, "wx:key"); + std::map::erase(v45, (int)&v89); + std::string::_M_dispose((void **)&v89); } std::__shared_ptr::operator=( - (_DWORD *)(*(_DWORD *)(a1 + 72) + v86), - &v92); - v67 = v55; - std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(&v93); - std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(&v91); + (_DWORD *)(*(_DWORD *)(a1 + 72) + v73), + &v79); + std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(&v80); + std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(&v78); } } } @@ -23205,72 +22028,65 @@ LABEL_22: } for ( ii = 0; ; ++ii ) { - v57 = *(_DWORD *)(a1 + 72); - if ( (*(_DWORD *)(a1 + 76) - v57) >> 3 <= ii ) + v47 = *(_DWORD *)(a1 + 72); + if ( (*(_DWORD *)(a1 + 76) - v47) >> 3 <= ii ) break; - v58 = 8 * ii; - v87 = *(_DWORD *)(v57 + 8 * ii); - std::string::basic_string((void **)&v102, "wx:scope-data"); - v59 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( - (_DWORD *)(v87 + 48), - (int)&v102); - v67 = v60; - v82 = v59; - std::string::_M_dispose((void **)&v102); - if ( v82 != (_DWORD *)(v87 + 52) ) + a2 = (const char **)(8 * ii); + v74 = *(_DWORD *)(v47 + 8 * ii); + std::string::basic_string((void **)&v89, "wx:scope-data"); + v69 = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( + (_DWORD *)(v74 + 48), + (int)&v89); + std::string::_M_dispose((void **)&v89); + if ( v69 != (_DWORD *)(v74 + 52) ) { std::__shared_ptr::__shared_ptr( - &v97, - (_DWORD *)(v58 + *(_DWORD *)(a1 + 72))); - v61 = operator new((struct type_info *)0x128, (void (__cdecl *)(void *))v68); - WXML::DOMLib::WXMLDom::WXMLDom((int)v61); - zcc::shared_ptr::shared_ptr(v62); - std::string::operator=((unsigned int *)v99, "wx-scope"); - std::string::_M_assign((int)(v99 + 6), *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * ii) + 24); - WXML::DOMLib::Token::operator=((int)(v99 + 21), (int)(v97 + 21)); - std::vector>::push_back(v99 + 18, &v97); - v88 = v99; - std::string::basic_string(v101, "wx:scope-data"); - v63 = std::map::operator[](v97 + 12, v101); - v102 = "wx:scope-data"; - WXML::DOMLib::Token::Token((int)v103, (WXML::DOMLib::Token *)v63, v71); + &v84, + (const char **)((char *)a2 + *(_DWORD *)(a1 + 72))); + v48 = operator new((struct type_info *)0x128, (void (__cdecl *)(void *))v55); + WXML::DOMLib::WXMLDom::WXMLDom((int)v48); + zcc::shared_ptr::shared_ptr(v49); + std::string::operator=((unsigned int **)v86, "wx-scope"); + std::string::_M_assign((int)(v86 + 6), *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * ii) + 24); + WXML::DOMLib::Token::operator=((int)(v86 + 21), (int)(v84 + 84)); + std::vector>::push_back(v86 + 18, &v84); + v75 = v86; + std::string::basic_string(v88, "wx:scope-data"); + v50 = std::map::operator[]((_DWORD *)v84 + 12, v88); + v89 = "wx:scope-data"; + WXML::DOMLib::Token::Token((int)v90, (WXML::DOMLib::Token *)v50, v58); std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>( - v88 + 12, - (char **)&v102); - WXML::DOMLib::Token::~Token((int)v103); - std::string::_M_dispose(v101); - v89 = v97 + 12; - std::string::basic_string((void **)&v102, "wx:scope-data"); - std::map::erase(v89, (int)&v102); - std::string::_M_dispose((void **)&v102); - std::__shared_ptr::operator=( - (_DWORD *)(*(_DWORD *)(a1 + 72) + v58), - &v99); - v67 = v64; - std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v100); - std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v98); + v75 + 12, + (char **)&v89); + WXML::DOMLib::Token::~Token((int)v90); + std::string::_M_dispose(v88); + v76 = v84 + 48; + std::string::basic_string((void **)&v89, "wx:scope-data"); + std::map::erase(v76, (int)&v89); + std::string::_M_dispose((void **)&v89); + a2 = (const char **)((char *)a2 + *(_DWORD *)(a1 + 72)); + std::__shared_ptr::operator=(a2, &v86); + std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v87); + std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v85); } } - for ( jj = 0; (*(_DWORD *)(a1 + 76) - *(_DWORD *)(a1 + 72)) >> 3 > jj; ++jj ) - WXML::DOMLib::WXMLDom::RewriteTree(v67); + for ( jj = 0; ; ++jj ) + { + v52 = *(_DWORD *)(a1 + 72); + if ( (*(_DWORD *)(a1 + 76) - v52) >> 3 <= jj ) + break; + v53 = *(_DWORD *)(v52 + 8 * jj); + WXML::DOMLib::WXMLDom::RewriteTree(v53, a2); + } return 0; } -// 41825A: variable 'v8' is possibly undefined -// 4182B8: variable 'v68' is possibly undefined -// 41838B: variable 'v13' is possibly undefined -// 418411: variable 'v19' is possibly undefined -// 418464: variable 'v21' is possibly undefined -// 4184A8: variable 'v69' is possibly undefined -// 418722: variable 'v29' is possibly undefined -// 418814: variable 'v33' is possibly undefined -// 418864: variable 'v35' is possibly undefined -// 41890B: variable 'v70' is possibly undefined -// 418C15: variable 'v55' is possibly undefined -// 418C8C: variable 'v60' is possibly undefined -// 418CDF: variable 'v62' is possibly undefined -// 418D90: variable 'v71' is possibly undefined -// 418E19: variable 'v64' is possibly undefined -// 418E4F: variable 'v67' is possibly undefined +// 4182B8: variable 'v55' is possibly undefined +// 418464: variable 'v15' is possibly undefined +// 4184A8: variable 'v56' is possibly undefined +// 418864: variable 'v26' is possibly undefined +// 41890B: variable 'v57' is possibly undefined +// 418CDF: variable 'v49' is possibly undefined +// 418D90: variable 'v58' is possibly undefined // 460640: using guessed type _DWORD __stdcall zcc::shared_ptr::shared_ptr(_DWORD); // 52E434: using guessed type char *WXML::DOMLib::szWXIFControlAttrs[4]; @@ -23321,7 +22137,7 @@ int __fastcall WXML::DOMLib::Parser::DOM(WXML::DOMLib::Parser *a1) int v45; // [esp+88h] [ebp-150h] int v46; // [esp+E0h] [ebp-F8h] BYREF volatile signed __int32 *v47; // [esp+E4h] [ebp-F4h] BYREF - unsigned int *v48; // [esp+150h] [ebp-88h] BYREF + unsigned int **v48; // [esp+150h] [ebp-88h] BYREF volatile signed __int32 *v49[33]; // [esp+154h] [ebp-84h] BYREF v2 = (WXML::DOMLib::Token *)WXML::DOMLib::Parser::Peek(a1); @@ -23380,7 +22196,7 @@ int __fastcall WXML::DOMLib::Parser::DOM(WXML::DOMLib::Parser *a1) if ( WXML::DOMLib::Token::IsMatch((int)v44, (WXML::DOMLib::Token *)">", v36) ) { ++*((_DWORD *)a1 + 25); - WXML::DOMLib::Parser::DOMS((WXML::DOMLib::Parser *)&v48); + WXML::DOMLib::Parser::DOMS(a1); v14 = (WXML::DOMLib::Token *)WXML::DOMLib::Parser::Peek(a1); WXML::DOMLib::Token::Token((int)&v48, v14, v37); if ( v49[5] || !WXML::DOMLib::Token::IsMatch((int)&v48, (WXML::DOMLib::Token *)"::shared_ptr(v11); std::__shared_ptr::operator=(this, &v16); std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(&v17); - std::string::operator=(*(unsigned int **)this, "root"); + std::string::operator=(*(unsigned int ***)this, "root"); std::deque>::push_back((_DWORD *)this + 12, this); WXML::DOMLib::Parser::DOMS(this); } @@ -23634,7 +22445,7 @@ unsigned int __cdecl WXML::DOMLib::recurseDependencies(int *a1, int *a2, _DWORD unsigned int i; // ebx int v11; // edx unsigned int result; // eax - int v13; // eax + int *v13; // eax void (__cdecl *v14)(void *); // [esp+4h] [ebp-64h] _DWORD *v15; // [esp+18h] [ebp-50h] char v16; // [esp+1Fh] [ebp-49h] @@ -23677,7 +22488,7 @@ unsigned int __cdecl WXML::DOMLib::recurseDependencies(int *a1, int *a2, _DWORD result = (*(_DWORD *)(*a1 + 76) - v11) >> 3; if ( i >= result ) break; - v13 = v11 + 8 * i; + v13 = (int *)(v11 + 8 * i); WXML::DOMLib::recurseDependencies(v13, a2, a3); } return result; @@ -23696,7 +22507,7 @@ int __fastcall WXML::DOMLib::WXMLDom::RecordAllPath(int a1) unsigned int i; // esi int v7; // edx int v8; // ecx - volatile signed __int32 **v9; // eax + int v9; // ecx int v11; // [esp+1Ch] [ebp-4Ch] void *v12[6]; // [esp+20h] [ebp-48h] BYREF void *v13[12]; // [esp+38h] [ebp-30h] BYREF @@ -23732,10 +22543,11 @@ int __fastcall WXML::DOMLib::WXMLDom::RecordAllPath(int a1) break; v8 = *(_DWORD *)(v7 + 8 * i); *(_DWORD *)(v8 + 248) = *(_DWORD *)(a1 + 248); - v9 = std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=( - (volatile signed __int32 **)(v8 + 252), - *(volatile signed __int32 **)(a1 + 252)); - WXML::DOMLib::WXMLDom::RecordAllPath((WXML::DOMLib::WXMLDom *)v9); + std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=( + (volatile signed __int32 **)(v8 + 252), + *(volatile signed __int32 **)(a1 + 252)); + v9 = *(_DWORD *)(*(_DWORD *)(a1 + 72) + 8 * i); + WXML::DOMLib::WXMLDom::RecordAllPath(v9); } return 0; } @@ -23873,10 +22685,10 @@ void __fastcall WXML::EXPRLib::Parser::~Parser(int a1) //----- (00419CEA) -------------------------------------------------------- int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( int *a1, - unsigned int *a2, + unsigned int **a2, int a3, _DWORD *a4, - _DWORD *a5, + unsigned int **a5, char a6, int a7, char a8, @@ -23918,7 +22730,7 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( _DWORD *v42; // esi void *v43; // eax int v44; // edi - int v45; // eax + unsigned int *v45; // eax unsigned int v46; // esi std::ostream::sentry *v47; // esi std::ostream::sentry *v48; // eax @@ -23991,7 +22803,7 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( v76 = 0; v77 = 0; v78 = 0; - v68 = WXML::StringTemplating::Deal(v12, (int)a2, &v76, &v74); + v68 = WXML::StringTemplating::Deal(v12, (int)a2, (void **)&v76, &v74); if ( v68 ) { exception = __cxa_allocate_exception(0x18u); @@ -24052,14 +22864,14 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( v85[1] = 0; v86 = 0; v84 = 0; - std::string::operator=((unsigned int *)v85, (char *)&byte_52DD60); + std::string::operator=((unsigned int **)v85, (char *)&byte_52DD60); v19 = v76; if ( v76 != v77 && *(_DWORD *)v76 == 1 ) { if ( v77 == v78 ) { std::vector::_M_realloc_insert( - &v76, + (void **)&v76, v76, &v84); } @@ -24088,7 +22900,7 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( } } if ( v76 != v77 && *((_DWORD *)v77 - 7) == 1 ) - std::vector::push_back(&v76, &v84); + std::vector::push_back((void **)&v76, &v84); for ( j = 1; -1227133513 * ((v77 - v76) >> 2) > j; ++j ) { v27 = 28 * j; @@ -24121,7 +22933,7 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( } if ( v72 != a7 ) { - a5[14] = -3; + a5[14] = (unsigned int *)-3; std::string::operator=(a5 + 15, "the very attr must be an expression (surrouned by `{{..}}`)"); v68 = -1; goto LABEL_109; @@ -24133,9 +22945,9 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( v89 = 0; LOBYTE(v90) = 0; v87 = 0; - std::string::operator=((unsigned int *)&v88, (char *)&byte_52DD60); + std::string::operator=((unsigned int **)&v88, (char *)&byte_52DD60); v87 = 0; - std::vector::push_back(&v76, &v87); + std::vector::push_back((void **)&v76, &v87); std::string::_M_dispose((void **)&v88); } v73 = 1; @@ -24174,7 +22986,7 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( v35 = "s_"; if ( !v34 ) v35 = "e_"; - std::string::operator=((unsigned int *)v82, v35); + std::string::operator=((unsigned int **)v82, v35); std::string::operator+=(v82, v67); std::string::operator+=(v82, (int)(v33 + 4)); std::string::operator+=(v82, v66); @@ -24259,7 +23071,7 @@ int __cdecl WXML::DOMLib::WXMLDom::DealSingleTokenToOps( std::string::_M_dispose((void **)&v84); if ( v44 ) { - a5[14] = -3; + a5[14] = (unsigned int *)-3; std::string::_M_assign((int)(a5 + 15), (int)a2); std::operator<<>(v32, "undefined"); WXML::EXPRLib::Parser::~Parser((int)&v87); @@ -24343,12 +23155,12 @@ LABEL_99: } if ( v73 ) std::operator<<>(v32, "]"); - v45 = *a9; - if ( a5[14] == -1 ) + v45 = (unsigned int *)*a9; + if ( a5[14] == (unsigned int *)-1 ) a5[14] = v45; v46 = 0; a9[1] = 0; - *a9 = v45 + 1; + *a9 = (int)v45 + 1; while ( (v80 - v79) >> 5 > v46 ) std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_emplace_unique>( a4, @@ -24384,9 +23196,9 @@ LABEL_109: //----- (0041AA88) -------------------------------------------------------- int __thiscall WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord( - _DWORD *this, + unsigned int **this, int *a2, - unsigned int *a3, + unsigned int **a3, int a4, _DWORD *a5, int *a6, @@ -24395,6 +23207,8 @@ int __thiscall WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord( { int i; // esi unsigned int j; // esi + unsigned int *v11; // edx + _DWORD *v12; // ecx if ( std::operator==((int)this, "TEXTNODE") ) { @@ -24402,7 +23216,7 @@ int __thiscall WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord( } else { - for ( i = this[15]; (_DWORD *)i != this + 13; i = std::_Rb_tree_increment(i) ) + for ( i = (int)this[15]; (unsigned int **)i != this + 13; i = std::_Rb_tree_increment(i) ) { if ( *(_DWORD *)(i + 60) && !std::operator==((int)this, "import") @@ -24411,16 +23225,22 @@ int __thiscall WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord( if ( std::operator==((int)this, "wx-template") && std::operator==(i + 16, "data") || std::operator==((int)this, "wx-scope") && std::operator==(i + 16, "wx:scope-data") ) { - WXML::DOMLib::WXMLDom::DealSingleTokenToOps(a2, a3, a4, a5, (_DWORD *)(i + 40), 1, 1, 0, a6, a7, a8); + WXML::DOMLib::WXMLDom::DealSingleTokenToOps(a2, a3, a4, a5, (unsigned int **)(i + 40), 1, 1, 0, a6, a7, a8); } else { - WXML::DOMLib::WXMLDom::DealSingleTokenToOps(a2, a3, a4, a5, (_DWORD *)(i + 40), 0, 0, 0, a6, a7, a8); + WXML::DOMLib::WXMLDom::DealSingleTokenToOps(a2, a3, a4, a5, (unsigned int **)(i + 40), 0, 0, 0, a6, a7, a8); } } } - for ( j = 0; j < (this[19] - this[18]) >> 3; ++j ) - WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord(a2, a3, a4, a5, a6, a7, a8); + for ( j = 0; ; ++j ) + { + v11 = this[18]; + if ( j >= ((char *)this[19] - (char *)v11) >> 3 ) + break; + v12 = (_DWORD *)v11[2 * j]; + WXML::DOMLib::WXMLDom::RenderAllOpsAndRecord(v12, a2, (unsigned int *)a3, a4, a5, a6, a7, a8); + } } return 0; } @@ -24770,7 +23590,7 @@ int __thiscall WXML::DOMLib::WXMLDom::RenderNonDefine( int v340[2]; // [esp+240h] [ebp-E8h] BYREF char v341[4]; // [esp+248h] [ebp-E0h] BYREF int v342[3]; // [esp+24Ch] [ebp-DCh] BYREF - _DWORD v343[52]; // [esp+258h] [ebp-D0h] BYREF + int v343[52]; // [esp+258h] [ebp-D0h] BYREF if ( a13 && *(_DWORD *)(this + 28) ) { @@ -24840,17 +23660,17 @@ LABEL_9: if ( (_DWORD *)(this + 52) == std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( (_DWORD *)(this + 48), (int)v305) ) - std::string::operator=((unsigned int *)v305, "wx:for-items"); + std::string::operator=((unsigned int **)v305, "wx:for-items"); std::string::basic_string(v306, "index"); if ( v298 == (std::ostream::sentry *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( (_DWORD *)(this + 48), (int)v306) ) - std::string::operator=((unsigned int *)v306, "wx:for-index"); + std::string::operator=((unsigned int **)v306, "wx:for-index"); std::string::basic_string(v307, "item"); if ( v298 == (std::ostream::sentry *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::find( (_DWORD *)(this + 48), (int)v307) ) - std::string::operator=((unsigned int *)v307, "wx:for-item"); + std::string::operator=((unsigned int **)v307, "wx:for-item"); std::string::basic_string(v308, "wx:key"); v309[1] = 0; v309[0] = &v310; @@ -24878,7 +23698,7 @@ LABEL_9: (_DWORD *)(this + 48), (int)v306) ) { - std::string::operator=((unsigned int *)&v311, "index"); + std::string::operator=((unsigned int **)&v311, "index"); } else { @@ -24890,7 +23710,7 @@ LABEL_9: (_DWORD *)(this + 48), (int)v307) ) { - std::string::operator=((unsigned int *)&v314, "item"); + std::string::operator=((unsigned int **)&v314, "item"); } else { @@ -24929,9 +23749,9 @@ LABEL_9: WXML::DOMLib::RenderException::~RenderException); } if ( !v312 ) - std::string::operator=((unsigned int *)&v311, "index"); + std::string::operator=((unsigned int **)&v311, "index"); if ( !v315 ) - std::string::operator=((unsigned int *)&v314, "item"); + std::string::operator=((unsigned int **)&v314, "item"); v318 = 0; v317 = (int)&v319; LOBYTE(v319) = 0; @@ -24951,13 +23771,14 @@ LABEL_9: std::string::basic_string((void **)v340, (char *)&byte_52DD60); std::string::basic_string((void **)&v337, (char *)&byte_52DD60); WXML::DOMLib::WXMLDom::RenderMeAsFunction( + (_DWORD *)this, a2, a3, a4, &v317, a6, a7, - &v323, + (int *)&v323, &v320, a10, &v326, @@ -25195,7 +24016,7 @@ LABEL_57: } if ( std::operator==(this, "block") ) { - WXML::DOMLib::WXMLDom::RenderChildren(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); + WXML::DOMLib::WXMLDom::RenderChildren((_DWORD *)this, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); goto LABEL_167; } v286 = (std::ostream::sentry *)(this + 48); @@ -25495,7 +24316,7 @@ LABEL_84: std::string::basic_string(v340, (int)(v181 + 4)); WXML::DOMLib::Token::Token((int)v343, (WXML::DOMLib::Token *)(v181 + 10), v283); std::vector>::emplace_back>( - &v317, + (void **)&v317, v340); std::pair::~pair((void **)v340); } @@ -25726,7 +24547,7 @@ LABEL_156: std::string::basic_string((void **)v340, (char *)v337); WXML::DOMLib::Token::Token(v343, (int)&v338); std::vector>::emplace_back>( - &v332, + (void **)&v332, v340); std::pair::~pair((void **)v340); WXML::DOMLib::Token::~Token((int)&v338); @@ -25794,7 +24615,7 @@ LABEL_137: LABEL_162: if ( v321 ) std::operator<<(v203, &v320); - WXML::DOMLib::WXMLDom::RenderChildren(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); + WXML::DOMLib::WXMLDom::RenderChildren((_DWORD *)this, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); if ( (a14 & 1) != 0 ) WXML::DOMLib::WXMLDom::AddTestAttr((_DWORD *)this, a5, a6, 10); std::string::_M_dispose((void **)&v320); @@ -25810,8 +24631,6 @@ LABEL_167: // 41D9E3: positive sp value 4 has been found // 41C88C: variable 'v283' is possibly undefined // 41CF3C: variable 'v284' is possibly undefined -// 41DF58: using guessed type _DWORD __stdcall WXML::DOMLib::WXMLDom::RenderChildren(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, char, char, _DWORD, _DWORD); -// 41F5F4: using guessed type _DWORD __stdcall WXML::DOMLib::WXMLDom::RenderMeAsFunction(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // 4B22B0: using guessed type _DWORD __stdcall std::ostream::operator<<(_DWORD); // 52DF44: using guessed type void *off_52DF44; // 533C6C: using guessed type int *`typeinfo for'WXML::DOMLib::RenderException; @@ -26200,7 +25019,7 @@ int __thiscall WXML::DOMLib::WXMLDom::RenderChildren( ++v115; if ( v114 != (_DWORD *)v112 ) { - std::string::operator=((unsigned int *)v153, v125); + std::string::operator=((unsigned int **)v153, v125); break; } } @@ -26769,7 +25588,7 @@ void WXML::DOMLib::Machine::InitTransitTable() { WXML::DOMLib::Machine::InitTransitTable(void)::bInited = 1; v0 = " \n\t\r"; - memset(&WXML::DOMLib::Machine::TT, 0, 0x101000u); + memset(WXML::DOMLib::Machine::TT, 0, 0x101000u); dword_5A1AEC = 99; dword_588E54 = 131074; dword_588F50 = 15; @@ -26983,7 +25802,7 @@ void WXML::DOMLib::Machine::InitTransitTable() // 587984: using guessed type int dword_587984; // 5879DC: using guessed type int dword_5879DC; // 5879E0: using guessed type int dword_5879E0; -// 588960: using guessed type int WXML::DOMLib::Machine::TT; +// 588960: using guessed type int WXML::DOMLib::Machine::TT[]; // 588D64: using guessed type int dword_588D64; // 588E54: using guessed type int dword_588E54; // 588F50: using guessed type int dword_588F50; @@ -27160,7 +25979,7 @@ int __usercall std::__relocate_a_1> 2; if ( result <= v3 ) break; - v11 = (_DWORD *)(*v5 + 4 * v3); + v11 = (int *)(*v5 + 4 * v3); v7 = (_DWORD *)(**(_DWORD **)(v4 + 4) + 24 * *v11); v8 = v7 + 1; v9 = (_DWORD *)v7[2]; @@ -27699,7 +26518,7 @@ void __cdecl WXML::Compiler::CalculateOutputChunkKeys(_DWORD *a1, int a2, int a3 _DWORD *v47; // edi _DWORD *v48; // edi _DWORD *v49; // edx - int insert_hint_unique_pos; // esi + _DWORD *insert_hint_unique_pos; // esi _DWORD *v51; // edi char v52; // al void **v53; // edi @@ -27834,7 +26653,7 @@ void __cdecl WXML::Compiler::CalculateOutputChunkKeys(_DWORD *a1, int a2, int a3 p_ii = v100; v99 = 0; LOBYTE(v100[0]) = 0; - MMBizWxaAppComm::PathCombine(j + 4, k, (unsigned int *)&p_ii); + MMBizWxaAppComm::PathCombine(j + 4, k, (unsigned int **)&p_ii); if ( v99 && *(_BYTE *)p_ii == 47 ) { std::string::substr((void **)&ii, &p_ii, 1u, 0xFFFFFFFF); @@ -27987,7 +26806,7 @@ LABEL_98: } else { - v41 = std::string::insert(&ii, 0, (int)&p_ii); + v41 = std::string::insert((unsigned int **)&ii, 0, (int)&p_ii); v65 = v42; } std::string::basic_string(v97, v41); @@ -28086,7 +26905,7 @@ LABEL_98: operator delete((void *)v46[10]); std::string::_M_dispose((void **)v46 + 4); v63 = v46; - v46 = (_DWORD *)insert_hint_unique_pos; + v46 = insert_hint_unique_pos; operator delete(v63); } } @@ -28101,7 +26920,7 @@ LABEL_98: std::string::basic_string(&ii, v56); if ( v46[11] == v46[12] ) { - std::vector::_M_realloc_insert(v46 + 10, (char *)v46[11], &ii); + std::vector::_M_realloc_insert((void **)v46 + 10, (char *)v46[11], &ii); } else { @@ -28132,12 +26951,12 @@ void __cdecl __tcf_1_3() } //----- (0042191A) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *a2) +int __thiscall std::string::basic_string(void **this, char *a2) { unsigned int v3; // kr04_4 - unsigned int result; // eax - _BYTE *v5; // edx - unsigned int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF + int result; // eax + int v5; // edx + int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF *this = this + 2; if ( !a2 ) @@ -28146,14 +26965,14 @@ unsigned int __thiscall std::string::basic_string(void **this, char *a2) v6[0] = v3 - 1; if ( v3 - 1 > 0xF ) { - *this = std::string::_M_create(v6, 0); + *this = std::string::_M_create((unsigned int *)v6, 0); this[2] = (void *)v6[0]; } std::string::_S_copy_chars(*this, (unsigned __int8 *)a2, (size_t)&a2[v3 - 1]); result = v6[0]; - v5 = *this; + v5 = (int)*this; this[1] = (void *)v6[0]; - v5[result] = 0; + *(_BYTE *)(v5 + result) = 0; return result; } // 42191A: using guessed type unsigned int var_1C[7]; @@ -28223,37 +27042,47 @@ int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(int *this, int a2, int std::ostream::sentry *v11; // eax std::ostream::sentry *v12; // eax std::ostream::sentry *v13; // eax - std::ostream::sentry *v14; // eax + int **v14; // eax std::ostream::sentry *v15; // eax - unsigned int v16; // edi - std::ostream::sentry *v17; // eax + std::ostream::sentry *v16; // eax + unsigned int v17; // edi std::ostream::sentry *v18; // eax - unsigned int v19; // edi - std::ostream::sentry *v20; // eax - std::ostream::sentry *v21; // eax + std::ostream::sentry *v19; // eax + int *v20; // ecx + unsigned int v21; // edi std::ostream::sentry *v22; // eax std::ostream::sentry *v23; // eax - std::ostream::sentry *v24; // edi - char *v25; // eax + int *v24; // ecx + std::ostream::sentry *v25; // eax std::ostream::sentry *v26; // eax - std::ostream::sentry *v27; // eax - std::ostream::sentry *v28; // eax - unsigned int v29; // edi - std::ostream::sentry *v30; // eax + std::ostream::sentry *v27; // edi + char *v28; // eax + std::ostream::sentry *v29; // eax + int v30; // edx std::ostream::sentry *v31; // eax - unsigned int v32; // edi - std::ostream::sentry *v33; // eax + std::ostream::sentry *v32; // eax + unsigned int v33; // edi std::ostream::sentry *v34; // eax - unsigned int v35; // edi - std::ostream::sentry *v36; // eax - std::ostream::sentry *v37; // eax + std::ostream::sentry *v35; // eax + int *v36; // ecx + unsigned int v37; // edi std::ostream::sentry *v38; // eax std::ostream::sentry *v39; // eax - std::ostream::sentry *v40; // eax - std::ostream::sentry *v41; // eax - char *v43; // [esp+4h] [ebp-54h] - _DWORD *v44; // [esp+1Ch] [ebp-3Ch] - void *v45[12]; // [esp+28h] [ebp-30h] BYREF + int *v40; // ecx + unsigned int v41; // edi + std::ostream::sentry *v42; // eax + std::ostream::sentry *v43; // eax + std::ostream::sentry *v44; // eax + std::ostream::sentry *v45; // eax + std::ostream::sentry *v46; // eax + std::ostream::sentry *v47; // eax + int *v48; // ecx + int v50; // [esp+0h] [ebp-58h] + char *v51; // [esp+4h] [ebp-54h] + int v52; // [esp+4h] [ebp-54h] + _BYTE *v53; // [esp+8h] [ebp-50h] + int *v54; // [esp+1Ch] [ebp-3Ch] + void *v55[12]; // [esp+28h] [ebp-30h] BYREF v5 = (_BYTE *)*this; v6 = (std::ostream::sentry *)(a2 + 8); @@ -28263,19 +27092,19 @@ int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(int *this, int a2, int if ( std::operator==((int)this, "$VAR") ) { Literal = (char *)WXML::EXPRLib::Token::GetLiteral(this + 6); - std::string::basic_string(v45, Literal); - WXML::EXPRLib::OutputAsStringOrKeyWord(a2, (int *)v45, a3, a4); - std::string::_M_dispose(v45); + std::string::basic_string(v55, Literal); + WXML::EXPRLib::OutputAsStringOrKeyWord(a2, (int *)v55, a3, a4); + std::string::_M_dispose(v55); } else { - v44 = this + 6; + v54 = this + 6; if ( std::operator==((int)this, "$STRING") ) { v8 = std::operator<<>(v6, WXML::EXPRLib::OPShort::CONST); std::operator<<>(v8, ",'"); v9 = *(_DWORD *)(this[9] + 4); - v10 = WXML::EXPRLib::Token::GetLiteral(v44); + v10 = WXML::EXPRLib::Token::GetLiteral(v54); WXML::Rewrite::ToStringCode((int)(v10 + 1), v9 - 2, a2); std::operator<<>(v6, (char *)off_52E6CD); } @@ -28283,141 +27112,150 @@ int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(int *this, int a2, int { v11 = std::operator<<>(v6, WXML::EXPRLib::OPShort::CONST); std::operator<<>(v11, ","); - v43 = (char *)WXML::EXPRLib::Token::GetLiteral(v44); - std::operator<<>(v6, v43); + v51 = (char *)WXML::EXPRLib::Token::GetLiteral(v54); + std::operator<<>(v6, v51); } } - goto LABEL_45; + goto LABEL_46; } if ( *v5 == 79 && v5[1] == 80 && v5[2] == 95 ) { if ( std::operator==((int)this, "OP_PATH") ) { - if ( this[14] - this[13] == 8 ) - { - v12 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v13 = std::operator<<>(v12, WXML::EXPRLib::OPShort::GET_FROM_ENV); - std::operator<<>(v13, "],"); - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); - } - goto LABEL_45; + if ( this[14] - this[13] != 8 ) + goto LABEL_46; + v12 = std::operator<<>(v6, (char *)&off_52E6CD[2]); + v13 = std::operator<<>(v12, WXML::EXPRLib::OPShort::GET_FROM_ENV); + std::operator<<>(v13, "],"); + v14 = (int **)this[13]; + v53 = a4; + v52 = a3; + v50 = a2; +LABEL_16: + WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(*v14, v50, v52, v53); + goto LABEL_46; } if ( std::operator==((int)this, "OP_LIST") ) { - v14 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v15 = std::operator<<>(v14, WXML::EXPRLib::OPShort::MAKE_LIST); - std::operator<<>(v15, "]"); + v15 = std::operator<<>(v6, (char *)&off_52E6CD[2]); + v16 = std::operator<<>(v15, WXML::EXPRLib::OPShort::MAKE_LIST); + std::operator<<>(v16, "]"); std::operator<<>(v6, ","); - if ( this[13] == this[14] ) - goto LABEL_45; -LABEL_15: - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); - goto LABEL_45; + v14 = (int **)this[13]; + if ( v14 == (int **)this[14] ) + goto LABEL_46; + goto LABEL_15; } if ( std::operator==((int)this, "OP_LIST_CONCAT") ) { - v16 = 0; - v17 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v18 = std::operator<<>(v17, WXML::EXPRLib::OPShort::CON_LIST); - std::operator<<>(v18, "]"); - while ( (this[14] - this[13]) >> 3 > v16 ) + v17 = 0; + v18 = std::operator<<>(v6, (char *)&off_52E6CD[2]); + v19 = std::operator<<>(v18, WXML::EXPRLib::OPShort::CON_LIST); + std::operator<<>(v19, "]"); + while ( (this[14] - this[13]) >> 3 > v17 ) { std::operator<<>(v6, ","); - ++v16; - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); + v20 = *(int **)(this[13] + 8 * v17++); + WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(v20, a2, a3, a4); } - goto LABEL_45; } - if ( std::operator==((int)this, "OP_DICT_CONCAT") ) - { - v19 = 0; - v20 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v21 = std::operator<<>(v20, WXML::EXPRLib::OPShort::UNION_KV); - std::operator<<>(v21, "]"); - while ( (this[14] - this[13]) >> 3 > v19 ) - { - std::operator<<>(v6, ","); - ++v19; - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); - } - goto LABEL_45; - } - if ( std::operator==((int)this, "OP_MAKE_DICT") ) + else if ( std::operator==((int)this, "OP_DICT_CONCAT") ) { + v21 = 0; v22 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v23 = std::operator<<>(v22, WXML::EXPRLib::OPShort::MAKE_KV); - std::operator<<>(v23, "],"); - v24 = std::operator<<>(v6, (char *)off_52E6CD); - v25 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); - v26 = std::operator<<>(v24, v25); - std::operator<<>(v26, "',"); - if ( (unsigned int)(this[14] - this[13]) <= 0xF ) + v23 = std::operator<<>(v22, WXML::EXPRLib::OPShort::UNION_KV); + std::operator<<>(v23, "]"); + while ( (this[14] - this[13]) >> 3 > v21 ) + { + std::operator<<>(v6, ","); + v24 = *(int **)(this[13] + 8 * v21++); + WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(v24, a2, a3, a4); + } + } + else if ( std::operator==((int)this, "OP_MAKE_DICT") ) + { + v25 = std::operator<<>(v6, (char *)&off_52E6CD[2]); + v26 = std::operator<<>(v25, WXML::EXPRLib::OPShort::MAKE_KV); + std::operator<<>(v26, "],"); + v27 = std::operator<<>(v6, (char *)off_52E6CD); + v28 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); + v29 = std::operator<<>(v27, v28); + std::operator<<>(v29, "',"); + v30 = this[13]; + if ( (unsigned int)(this[14] - v30) <= 0xF ) { std::operator<<>(v6, (char *)&off_52E6CD[2]); std::operator<<>(v6, "[7],"); - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); + WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(*(int **)this[13], a2, a3, a4); std::operator<<>(v6, "]"); } else { - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); - } - goto LABEL_45; - } - if ( std::operator==((int)this, "OP_EXPAND") ) - { - v27 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v28 = std::operator<<>(v27, WXML::EXPRLib::OPShort::EX_DICT); - std::operator<<>(v28, "],"); - goto LABEL_15; - } - if ( std::operator==((int)this, "OP_DICT") ) - { - v29 = 0; - v30 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v31 = std::operator<<>(v30, WXML::EXPRLib::OPShort::GET_NAME); - std::operator<<>(v31, "]"); - while ( (this[14] - this[13]) >> 3 > v29 ) - { - std::operator<<>(v6, ","); - ++v29; - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); + WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(*(int **)(v30 + 8), a2, a3, a4); } } - else if ( std::operator==((int)this, "OP_FUNC") ) + else { - v32 = 0; - v33 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v34 = std::operator<<>(v33, WXML::EXPRLib::OPShort::DO_FUNC); - std::operator<<>(v34, "]"); - while ( (this[14] - this[13]) >> 3 > v32 ) + if ( std::operator==((int)this, "OP_EXPAND") ) { - std::operator<<>(v6, ","); - ++v32; - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); + v31 = std::operator<<>(v6, (char *)&off_52E6CD[2]); + v32 = std::operator<<>(v31, WXML::EXPRLib::OPShort::EX_DICT); + std::operator<<>(v32, "],"); + v14 = (int **)this[13]; +LABEL_15: + v53 = a4; + v52 = a3; + v50 = a2; + goto LABEL_16; + } + if ( std::operator==((int)this, "OP_DICT") ) + { + v33 = 0; + v34 = std::operator<<>(v6, (char *)&off_52E6CD[2]); + v35 = std::operator<<>(v34, WXML::EXPRLib::OPShort::GET_NAME); + std::operator<<>(v35, "]"); + while ( (this[14] - this[13]) >> 3 > v33 ) + { + std::operator<<>(v6, ","); + v36 = *(int **)(this[13] + 8 * v33++); + WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(v36, a2, a3, a4); + } + } + else if ( std::operator==((int)this, "OP_FUNC") ) + { + v37 = 0; + v38 = std::operator<<>(v6, (char *)&off_52E6CD[2]); + v39 = std::operator<<>(v38, WXML::EXPRLib::OPShort::DO_FUNC); + std::operator<<>(v39, "]"); + while ( (this[14] - this[13]) >> 3 > v37 ) + { + std::operator<<>(v6, ","); + v40 = *(int **)(this[13] + 8 * v37++); + WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(v40, a2, a3, a4); + } } } } else { - v35 = 0; - v36 = std::operator<<>(v6, (char *)&off_52E6CD[2]); - v37 = std::operator<<>(v36, WXML::EXPRLib::OPShort::AOP); - v38 = std::operator<<>(v37, ","); - v39 = std::operator<<>(v38, (char *)off_52E6CD); - v40 = std::operator<<(v39, this); - v41 = std::operator<<>(v40, (char *)off_52E6CD); - std::operator<<>(v41, "]"); + v41 = 0; + v42 = std::operator<<>(v6, (char *)&off_52E6CD[2]); + v43 = std::operator<<>(v42, WXML::EXPRLib::OPShort::AOP); + v44 = std::operator<<>(v43, ","); + v45 = std::operator<<>(v44, (char *)off_52E6CD); + v46 = std::operator<<(v45, this); + v47 = std::operator<<>(v46, (char *)off_52E6CD); + std::operator<<>(v47, "]"); std::operator<<>(v6, ","); - while ( (this[14] - this[13]) >> 3 > v35 ) + while ( (this[14] - this[13]) >> 3 > v41 ) { - if ( v35 ) + if ( v41 ) std::operator<<>(v6, ","); - ++v35; - WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(a2, a3, a4); + v48 = *(int **)(this[13] + 8 * v41++); + WXML::EXPRLib::ExprSyntaxTree::RenderAsOps(v48, a2, a3, a4); } } -LABEL_45: +LABEL_46: std::operator<<>(v6, "]"); return 0; } @@ -28523,7 +27361,7 @@ volatile signed __int32 **__thiscall std::__shared_count<(__gnu_cxx::_Lock_polic //----- (0042225E) -------------------------------------------------------- int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderCode( - int *this, + char **this, WXML::EXPRLib::Token *a2, int *a3, int *a4, @@ -28533,7 +27371,7 @@ int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderCode( char a8, int a9) { - _BYTE *v10; // eax + char *v10; // eax char v11; // dl std::ostream::sentry *v12; // esi const char *Literal; // edi @@ -28589,54 +27427,54 @@ int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderCode( std::ostream::sentry *v63; // eax std::ostream::sentry *v64; // eax std::ostream::sentry *v65; // eax + int **v66; // eax unsigned int i; // ebx - int v67; // edx - std::ostream::sentry *v68; // eax + int v68; // edx std::ostream::sentry *v69; // eax std::ostream::sentry *v70; // eax std::ostream::sentry *v71; // eax + std::ostream::sentry *v72; // eax unsigned int j; // ebx - int v73; // edx - std::ostream::sentry *v74; // eax - char *v75; // eax - std::ostream::sentry *v76; // eax + int v74; // edx + std::ostream::sentry *v75; // eax + char *v76; // eax std::ostream::sentry *v77; // eax - char *v78; // eax - std::ostream::sentry *v79; // eax + std::ostream::sentry *v78; // eax + char *v79; // eax std::ostream::sentry *v80; // eax std::ostream::sentry *v81; // eax - char *v82; // eax - std::ostream::sentry *v83; // eax + std::ostream::sentry *v82; // eax + char *v83; // eax std::ostream::sentry *v84; // eax std::ostream::sentry *v85; // eax - char *v86; // eax - std::ostream::sentry *v87; // eax - int v88; // esi - char *v89; // eax - std::ostream::sentry *v90; // eax - std::ostream::sentry *v91; // esi - char *v92; // eax - std::ostream::sentry *v93; // eax - std::ostream::sentry *v94; // eax - int *v95; // esi + std::ostream::sentry *v86; // eax + char *v87; // eax + std::ostream::sentry *v88; // eax + int **v89; // eax + int v90; // esi + char *v91; // eax + std::ostream::sentry *v92; // eax + std::ostream::sentry *v93; // esi + char *v94; // eax + std::ostream::sentry *v95; // eax std::ostream::sentry *v96; // eax - std::ostream::sentry *v97; // eax + int *v97; // esi std::ostream::sentry *v98; // eax std::ostream::sentry *v99; // eax std::ostream::sentry *v100; // eax std::ostream::sentry *v101; // eax std::ostream::sentry *v102; // eax std::ostream::sentry *v103; // eax - int *v104; // ecx + std::ostream::sentry *v104; // eax std::ostream::sentry *v105; // eax - std::ostream::sentry *v106; // eax + int *v106; // ecx std::ostream::sentry *v107; // eax std::ostream::sentry *v108; // eax std::ostream::sentry *v109; // eax std::ostream::sentry *v110; // eax - std::ostream::sentry *v111; // esi + std::ostream::sentry *v111; // eax std::ostream::sentry *v112; // eax - std::ostream::sentry *v113; // eax + std::ostream::sentry *v113; // esi std::ostream::sentry *v114; // eax std::ostream::sentry *v115; // eax std::ostream::sentry *v116; // eax @@ -28685,9 +27523,9 @@ int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderCode( std::ostream::sentry *v159; // eax std::ostream::sentry *v160; // eax std::ostream::sentry *v161; // eax - int v162; // eax + std::ostream::sentry *v162; // eax std::ostream::sentry *v163; // eax - std::ostream::sentry *v164; // eax + int v164; // eax std::ostream::sentry *v165; // eax std::ostream::sentry *v166; // eax std::ostream::sentry *v167; // eax @@ -28697,31 +27535,33 @@ int __thiscall WXML::EXPRLib::ExprSyntaxTree::RenderCode( std::ostream::sentry *v171; // eax std::ostream::sentry *v172; // eax std::ostream::sentry *v173; // eax - char *v175; // [esp+4h] [ebp-94h] - char *v176; // [esp+4h] [ebp-94h] - std::ostream::sentry *v177; // [esp+28h] [ebp-70h] - std::ostream::sentry *v178; // [esp+28h] [ebp-70h] + std::ostream::sentry *v174; // eax + std::ostream::sentry *v175; // eax + char *v177; // [esp+4h] [ebp-94h] + char *v178; // [esp+4h] [ebp-94h] std::ostream::sentry *v179; // [esp+28h] [ebp-70h] std::ostream::sentry *v180; // [esp+28h] [ebp-70h] std::ostream::sentry *v181; // [esp+28h] [ebp-70h] - int v182[2]; // [esp+38h] [ebp-60h] BYREF - char v183; // [esp+40h] [ebp-58h] BYREF - int v184; // [esp+50h] [ebp-48h] BYREF - int v185; // [esp+54h] [ebp-44h] - char v186[16]; // [esp+58h] [ebp-40h] BYREF - int v187; // [esp+68h] [ebp-30h] BYREF - int v188; // [esp+6Ch] [ebp-2Ch] - char v189[40]; // [esp+70h] [ebp-28h] BYREF + std::ostream::sentry *v182; // [esp+28h] [ebp-70h] + std::ostream::sentry *v183; // [esp+28h] [ebp-70h] + int v184[2]; // [esp+38h] [ebp-60h] BYREF + char v185; // [esp+40h] [ebp-58h] BYREF + int v186; // [esp+50h] [ebp-48h] BYREF + int v187; // [esp+54h] [ebp-44h] + char v188[16]; // [esp+58h] [ebp-40h] BYREF + int v189; // [esp+68h] [ebp-30h] BYREF + int v190; // [esp+6Ch] [ebp-2Ch] + char v191[40]; // [esp+70h] [ebp-28h] BYREF - v10 = (_BYTE *)*this; - v11 = *(_BYTE *)*this; + v10 = *this; + v11 = **this; if ( v11 == 36 ) { - v177 = (std::ostream::sentry *)(this + 6); + v179 = (std::ostream::sentry *)(this + 6); v12 = (WXML::EXPRLib::Token *)((char *)a2 + 8); if ( std::operator==((int)this, "$VAR") ) { - Literal = WXML::EXPRLib::Token::GetLiteral(v177); + Literal = WXML::EXPRLib::Token::GetLiteral(v179); if ( !strcmp(Literal, "true") ) { v14 = std::operator<<>(v12, "var "); @@ -28752,14 +27592,14 @@ LABEL_7: v24 = std::operator<<>(v12, "if(typeof("); v25 = std::operator<<(v24, a5); v26 = std::operator<<>(v25, "."); - v27 = (char *)WXML::EXPRLib::Token::GetLiteral(v177); + v27 = (char *)WXML::EXPRLib::Token::GetLiteral(v179); v28 = std::operator<<>(v26, v27); v29 = std::operator<<>(v28, ")!='undefined')"); v30 = std::operator<<(v29, a3); v31 = std::operator<<>(v30, "="); v32 = std::operator<<(v31, a5); v33 = std::operator<<>(v32, "."); - v34 = (char *)WXML::EXPRLib::Token::GetLiteral(v177); + v34 = (char *)WXML::EXPRLib::Token::GetLiteral(v179); v35 = std::operator<<>(v33, v34); std::operator<<>(v35, a8); v36 = std::operator<<>(v12, "else "); @@ -28775,12 +27615,12 @@ LABEL_7: v41 = std::operator<<>(v12, "var "); v42 = std::operator<<(v41, a3); std::operator<<>(v42, "=\""); - v43 = *(_DWORD *)(this[9] + 4); - v44 = WXML::EXPRLib::Token::GetLiteral(v177); + v43 = *((_DWORD *)this[9] + 1); + v44 = WXML::EXPRLib::Token::GetLiteral(v179); WXML::Rewrite::ToStringCode((int)(v44 + 1), v43 - 2, (int)a2); - v175 = "\""; + v177 = "\""; LABEL_13: - v16 = std::operator<<>(v12, v175); + v16 = std::operator<<>(v12, v177); goto LABEL_7; } v45 = std::operator<<>(v12, "var "); @@ -28788,159 +27628,159 @@ LABEL_13: v40 = std::operator<<>(v46, "="); } v12 = v40; - v175 = (char *)WXML::EXPRLib::Token::GetLiteral(v177); + v177 = (char *)WXML::EXPRLib::Token::GetLiteral(v179); goto LABEL_13; } if ( v11 != 79 || v10[1] != 80 || v10[2] != 95 ) { if ( std::operator==((int)this, "?:") ) { - v182[1] = 0; - v182[0] = (int)&v183; - v183 = 0; - WXML::NameAllocator::GetNextName(a7, v182); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)v182, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v122 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); - v123 = std::operator<<(v122, a3); - std::endl>(v123); - v124 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "if("); - v125 = std::operator<<(v124, v182); - v126 = std::operator<<>(v125, "){"); - std::operator<<>(v126, a8); + v184[1] = 0; + v184[0] = (int)&v185; v185 = 0; - v184 = (int)v186; - v186[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v184); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v184, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v127 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); - v128 = std::operator<<>(v127, "="); - v129 = std::operator<<(v128, &v184); - v130 = std::operator<<>(v129, "}"); - std::operator<<>(v130, a8); - v131 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "else{"); - std::operator<<>(v131, a8); - v188 = 0; - v187 = (int)v189; - v189[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v187); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v187, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v132 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); - v133 = std::operator<<>(v132, "="); - v134 = std::operator<<(v133, &v187); - v135 = std::operator<<>(v134, "}"); - std::operator<<>(v135, a8); - std::string::_M_dispose((void **)&v187); - std::string::_M_dispose((void **)&v184); - v104 = v182; + WXML::NameAllocator::GetNextName(a7, v184); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)this[13], a2, v184, a4, a5, a6, a7, a8, a9); + v124 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); + v125 = std::operator<<(v124, a3); + std::endl>(v125); + v126 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "if("); + v127 = std::operator<<(v126, v184); + v128 = std::operator<<>(v127, "){"); + std::operator<<>(v128, a8); + v187 = 0; + v186 = (int)v188; + v188[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v186); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*((int **)this[13] + 2), a2, &v186, a4, a5, a6, a7, a8, a9); + v129 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); + v130 = std::operator<<>(v129, "="); + v131 = std::operator<<(v130, &v186); + v132 = std::operator<<>(v131, "}"); + std::operator<<>(v132, a8); + v133 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "else{"); + std::operator<<>(v133, a8); + v190 = 0; + v189 = (int)v191; + v191[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v189); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*((int **)this[13] + 4), a2, &v189, a4, a5, a6, a7, a8, a9); + v134 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); + v135 = std::operator<<>(v134, "="); + v136 = std::operator<<(v135, &v189); + v137 = std::operator<<>(v136, "}"); + std::operator<<>(v137, a8); + std::string::_M_dispose((void **)&v189); + std::string::_M_dispose((void **)&v186); + v106 = v184; goto LABEL_79; } if ( std::operator==((int)this, "&&") ) { - v185 = 0; - v184 = (int)v186; - v186[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v184); - v187 = (int)v189; - v188 = 0; - v189[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v187); - v136 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); - v137 = std::operator<<(v136, a3); - std::endl>(v137); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v184, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v138 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "if(!"); - v139 = std::operator<<(v138, &v184); - v140 = std::operator<<>(v139, ")"); - v141 = std::operator<<(v140, a3); - v142 = std::operator<<>(v141, "="); - v143 = std::operator<<(v142, &v184); - std::operator<<>(v143, a8); - v144 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "else{"); - std::operator<<>(v144, a8); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v187, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v145 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); - v146 = std::operator<<>(v145, "="); - v147 = std::operator<<(v146, &v187); - v148 = std::operator<<>(v147, "}"); - std::operator<<>(v148, a8); + v187 = 0; + v186 = (int)v188; + v188[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v186); + v189 = (int)v191; + v190 = 0; + v191[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v189); + v138 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); + v139 = std::operator<<(v138, a3); + std::endl>(v139); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)this[13], a2, &v186, a4, a5, a6, a7, a8, a9); + v140 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "if(!"); + v141 = std::operator<<(v140, &v186); + v142 = std::operator<<>(v141, ")"); + v143 = std::operator<<(v142, a3); + v144 = std::operator<<>(v143, "="); + v145 = std::operator<<(v144, &v186); + std::operator<<>(v145, a8); + v146 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "else{"); + std::operator<<>(v146, a8); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*((int **)this[13] + 2), a2, &v189, a4, a5, a6, a7, a8, a9); + v147 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); + v148 = std::operator<<>(v147, "="); + v149 = std::operator<<(v148, &v189); + v150 = std::operator<<>(v149, "}"); + std::operator<<>(v150, a8); } else { if ( !std::operator==((int)this, "||") ) { - v162 = this[14] - this[13]; - if ( v162 == 16 ) + v164 = this[14] - this[13]; + if ( v164 == 16 ) { - v185 = 0; - v184 = (int)v186; - v186[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v184); - v187 = (int)v189; - v188 = 0; - v189[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v187); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v184, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v187, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v163 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); - v164 = std::operator<<(v163, a3); - v165 = std::operator<<>(v164, "="); - v95 = &v184; - v166 = std::operator<<(v165, &v184); - v167 = std::operator<<(v166, this); - v168 = std::operator<<(v167, &v187); - std::operator<<>(v168, a8); - std::string::_M_dispose((void **)&v187); + v187 = 0; + v186 = (int)v188; + v188[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v186); + v189 = (int)v191; + v190 = 0; + v191[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v189); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)this[13], a2, &v186, a4, a5, a6, a7, a8, a9); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*((int **)this[13] + 2), a2, &v189, a4, a5, a6, a7, a8, a9); + v165 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); + v166 = std::operator<<(v165, a3); + v167 = std::operator<<>(v166, "="); + v97 = &v186; + v168 = std::operator<<(v167, &v186); + v169 = std::operator<<(v168, (int *)this); + v170 = std::operator<<(v169, &v189); + std::operator<<>(v170, a8); + std::string::_M_dispose((void **)&v189); } else { - if ( v162 != 8 ) + if ( v164 != 8 ) return 0; - v188 = 0; - v187 = (int)v189; - v189[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v187); - v95 = &v187; - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v187, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v169 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); - v170 = std::operator<<(v169, a3); - v171 = std::operator<<>(v170, "="); - v172 = std::operator<<(v171, this); - v173 = std::operator<<(v172, &v187); - std::operator<<>(v173, a8); + v190 = 0; + v189 = (int)v191; + v191[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v189); + v97 = &v189; + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)this[13], a2, &v189, a4, a5, a6, a7, a8, a9); + v171 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); + v172 = std::operator<<(v171, a3); + v173 = std::operator<<>(v172, "="); + v174 = std::operator<<(v173, (int *)this); + v175 = std::operator<<(v174, &v189); + std::operator<<>(v175, a8); } goto LABEL_78; } - v185 = 0; - v184 = (int)v186; - v186[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v184); - v187 = (int)v189; - v188 = 0; - v189[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v187); - v149 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); - v150 = std::operator<<(v149, a3); - std::endl>(v150); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v184, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v151 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "if("); - v152 = std::operator<<(v151, &v184); - v153 = std::operator<<>(v152, ")"); - v154 = std::operator<<(v153, a3); - v155 = std::operator<<>(v154, "="); - v156 = std::operator<<(v155, &v184); - std::operator<<>(v156, a8); - v157 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "else{"); - std::operator<<>(v157, a8); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v187, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v158 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); - v159 = std::operator<<>(v158, "="); - v160 = std::operator<<(v159, &v187); - v161 = std::operator<<>(v160, "}"); - std::operator<<>(v161, a8); + v187 = 0; + v186 = (int)v188; + v188[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v186); + v189 = (int)v191; + v190 = 0; + v191[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v189); + v151 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); + v152 = std::operator<<(v151, a3); + std::endl>(v152); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)this[13], a2, &v186, a4, a5, a6, a7, a8, a9); + v153 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "if("); + v154 = std::operator<<(v153, &v186); + v155 = std::operator<<>(v154, ")"); + v156 = std::operator<<(v155, a3); + v157 = std::operator<<>(v156, "="); + v158 = std::operator<<(v157, &v186); + std::operator<<>(v158, a8); + v159 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "else{"); + std::operator<<>(v159, a8); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*((int **)this[13] + 2), a2, &v189, a4, a5, a6, a7, a8, a9); + v160 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); + v161 = std::operator<<>(v160, "="); + v162 = std::operator<<(v161, &v189); + v163 = std::operator<<>(v162, "}"); + std::operator<<>(v163, a8); } LABEL_73: - std::string::_M_dispose((void **)&v187); - v104 = &v184; + std::string::_M_dispose((void **)&v189); + v106 = &v186; goto LABEL_79; } if ( v10[3] == 80 && v10[4] == 65 ) @@ -28951,8 +27791,8 @@ LABEL_73: v48 = std::operator<<(v47, a3); std::operator<<>(v48, "="); } - v49 = this[13]; - if ( this[14] - v49 == 8 ) + v49 = (int)this[13]; + if ( &this[14][-v49] == (char *)8 ) { v50 = WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)v49 + 24)); v51 = (WXML::EXPRLib::Token *)((char *)a2 + 8); @@ -28978,16 +27818,16 @@ LABEL_34: if ( a9 ) { v52 = *(_DWORD *)(a9 + 4); - v187 = (int)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); + v189 = (int)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); if ( v52 == std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>( *(_DWORD *)a9, *(_DWORD *)(a9 + 4), - (char **)&v187) ) + (char **)&v189) ) { v53 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); - std::string::basic_string((void **)&v187, v53); - std::vector::emplace_back((void ***)a9, &v187); - std::string::_M_dispose((void **)&v187); + std::string::basic_string((void **)&v189, v53); + std::vector::emplace_back((void ***)a9, &v189); + std::string::_M_dispose((void **)&v189); } } v54 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "_s("); @@ -29008,26 +27848,26 @@ LABEL_34: { for ( i = 0; ; ++i ) { - v67 = this[13]; - if ( i >= (this[14] - v67) >> 3 ) + v68 = (int)this[13]; + if ( i >= (int)&this[14][-v68] >> 3 ) break; - if ( std::operator==(*(_DWORD *)(v67 + 8 * i), "OP_LIST_CONCAT") ) + if ( std::operator==(*(_DWORD *)(v68 + 8 * i), "OP_LIST_CONCAT") ) { - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)a3, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)&this[13][8 * i], a2, a3, a4, a5, a6, a7, a8, a9); } else { - v188 = 0; - v187 = (int)v189; - v189[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v187); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v187, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v68 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); - v69 = std::operator<<>(v68, ".push("); - v70 = std::operator<<(v69, &v187); - v71 = std::operator<<>(v70, ")"); - std::operator<<>(v71, a8); - std::string::_M_dispose((void **)&v187); + v190 = 0; + v189 = (int)v191; + v191[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v189); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)&this[13][8 * i], a2, &v189, a4, a5, a6, a7, a8, a9); + v69 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); + v70 = std::operator<<>(v69, ".push("); + v71 = std::operator<<(v70, &v189); + v72 = std::operator<<>(v71, ")"); + std::operator<<>(v72, a8); + std::string::_M_dispose((void **)&v189); } } return 0; @@ -29036,147 +27876,149 @@ LABEL_34: { for ( j = 0; ; ++j ) { - v73 = this[13]; - if ( j >= (this[14] - v73) >> 3 ) + v74 = (int)this[13]; + if ( j >= (int)&this[14][-v74] >> 3 ) break; - if ( std::operator==(*(_DWORD *)(v73 + 8 * j), "$VAR") ) + if ( std::operator==(*(_DWORD *)(v74 + 8 * j), "$VAR") ) { - v74 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); - v178 = std::operator<<>(v74, "[\""); - v75 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)(this[13] + 8 * j) + 24)); - v76 = std::operator<<>(v178, v75); - std::operator<<>(v76, "\"]="); - v77 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a5); - v179 = std::operator<<>(v77, "."); - v78 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)(this[13] + 8 * j) + 24)); - v79 = std::operator<<>(v179, v78); - v80 = std::operator<<>(v79, "?"); - v81 = std::operator<<(v80, a5); - v180 = std::operator<<>(v81, "."); - v82 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)(this[13] + 8 * j) + 24)); - v83 = std::operator<<>(v180, v82); - v84 = std::operator<<>(v83, ":"); - v85 = std::operator<<(v84, a4); - v181 = std::operator<<>(v85, "."); - v86 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)(this[13] + 8 * j) + 24)); - v87 = std::operator<<>(v181, v86); - std::operator<<>(v87, a8); + v75 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); + v180 = std::operator<<>(v75, "[\""); + v76 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)&this[13][8 * j] + 24)); + v77 = std::operator<<>(v180, v76); + std::operator<<>(v77, "\"]="); + v78 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a5); + v181 = std::operator<<>(v78, "."); + v79 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)&this[13][8 * j] + 24)); + v80 = std::operator<<>(v181, v79); + v81 = std::operator<<>(v80, "?"); + v82 = std::operator<<(v81, a5); + v182 = std::operator<<>(v82, "."); + v83 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)&this[13][8 * j] + 24)); + v84 = std::operator<<>(v182, v83); + v85 = std::operator<<>(v84, ":"); + v86 = std::operator<<(v85, a4); + v183 = std::operator<<>(v86, "."); + v87 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)&this[13][8 * j] + 24)); + v88 = std::operator<<>(v183, v87); + std::operator<<>(v88, a8); } else { - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)a3, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)&this[13][8 * j], a2, a3, a4, a5, a6, a7, a8, a9); } } return 0; } if ( std::operator==((int)this, "OP_MAKE_DICT") ) { - v185 = 0; - v184 = (int)v186; - v186[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v184); - if ( (unsigned int)(this[14] - this[13]) <= 0xF ) + v187 = 0; + v186 = (int)v188; + v188[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v186); + v89 = (int **)this[13]; + if ( (unsigned int)(this[14] - (char *)v89) <= 0xF ) { - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v184, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*v89, a2, &v186, a4, a5, a6, a7, a8, a9); if ( a9 ) { - v88 = *(_DWORD *)(a9 + 4); - v187 = (int)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); - if ( v88 == std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>( + v90 = *(_DWORD *)(a9 + 4); + v189 = (int)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); + if ( v90 == std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>( *(_DWORD *)a9, *(_DWORD *)(a9 + 4), - (char **)&v187) ) + (char **)&v189) ) { - v89 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); - std::string::basic_string((void **)&v187, v89); - std::vector::emplace_back((void ***)a9, &v187); - std::string::_M_dispose((void **)&v187); + v91 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); + std::string::basic_string((void **)&v189, v91); + std::vector::emplace_back((void ***)a9, &v189); + std::string::_M_dispose((void **)&v189); } } } else { - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v184, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(v89[2], a2, &v186, a4, a5, a6, a7, a8, a9); } - v90 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); - v91 = std::operator<<>(v90, "[\""); - v92 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); - v93 = std::operator<<>(v91, v92); - v94 = std::operator<<>(v93, "\"]="); - v95 = &v184; - v96 = std::operator<<(v94, &v184); - std::operator<<>(v96, a8); + v92 = std::operator<<((WXML::EXPRLib::Token *)((char *)a2 + 8), a3); + v93 = std::operator<<>(v92, "[\""); + v94 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)this[13] + 24)); + v95 = std::operator<<>(v93, v94); + v96 = std::operator<<>(v95, "\"]="); + v97 = &v186; + v98 = std::operator<<(v96, &v186); + std::operator<<>(v98, a8); LABEL_78: - v104 = v95; + v106 = v97; goto LABEL_79; } if ( std::operator==((int)this, "OP_EXPAND") ) { - v188 = 0; - v187 = (int)v189; - v189[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v187); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v187, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v97 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "{var ks=Object.keys("); - v98 = std::operator<<(v97, &v187); - std::operator<<>(v98, "||{});"); - v99 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "for(var k in ks){"); - v100 = std::operator<<(v99, a3); - v101 = std::operator<<>(v100, "[ks[k]]="); - v102 = std::operator<<(v101, &v187); - v103 = std::operator<<>(v102, "[ks[k]]}}"); - std::endl>(v103); - v104 = &v187; + v190 = 0; + v189 = (int)v191; + v191[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v189); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)this[13], a2, &v189, a4, a5, a6, a7, a8, a9); + v99 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "{var ks=Object.keys("); + v100 = std::operator<<(v99, &v189); + std::operator<<>(v100, "||{});"); + v101 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "for(var k in ks){"); + v102 = std::operator<<(v101, a3); + v103 = std::operator<<>(v102, "[ks[k]]="); + v104 = std::operator<<(v103, &v189); + v105 = std::operator<<>(v104, "[ks[k]]}}"); + std::endl>(v105); + v106 = &v189; LABEL_79: - std::string::_M_dispose((void **)v104); + std::string::_M_dispose((void **)v106); return 0; } if ( !std::operator==((int)this, "OP_DICT") ) return 0; - v185 = 0; - v184 = (int)v186; - v186[0] = 0; - v187 = (int)v189; - v188 = 0; - v189[0] = 0; - WXML::NameAllocator::GetNextName(a7, &v184); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v184, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - if ( std::operator==(*(_DWORD *)(this[13] + 8), "$VAR") ) + v187 = 0; + v186 = (int)v188; + v188[0] = 0; + v189 = (int)v191; + v190 = 0; + v191[0] = 0; + WXML::NameAllocator::GetNextName(a7, &v186); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*(int **)this[13], a2, &v186, a4, a5, a6, a7, a8, a9); + if ( std::operator==(*((_DWORD *)this[13] + 2), "$VAR") ) { - v105 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); - v106 = std::operator<<(v105, a3); - v107 = std::operator<<>(v106, "="); - v108 = std::operator<<(v107, &v184); - v109 = std::operator<<>(v108, "?"); - v110 = std::operator<<(v109, &v184); - v111 = std::operator<<>(v110, "."); - v176 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*(_DWORD *)(this[13] + 8) + 24)); - v112 = std::operator<<>(v111, v176); + v107 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); + v108 = std::operator<<(v107, a3); + v109 = std::operator<<>(v108, "="); + v110 = std::operator<<(v109, &v186); + v111 = std::operator<<>(v110, "?"); + v112 = std::operator<<(v111, &v186); + v113 = std::operator<<>(v112, "."); + v178 = (char *)WXML::EXPRLib::Token::GetLiteral((_DWORD *)(*((_DWORD *)this[13] + 2) + 24)); + v114 = std::operator<<>(v113, v178); } else { - WXML::NameAllocator::GetNextName(a7, &v187); - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)&v187, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); - v113 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); - v114 = std::operator<<(v113, a3); - v115 = std::operator<<>(v114, "="); - v116 = std::operator<<(v115, &v184); - v117 = std::operator<<>(v116, "?"); - v118 = std::operator<<(v117, &v184); - v119 = std::operator<<>(v118, (char *)&off_52E6CD[2]); - v120 = std::operator<<(v119, &v187); - v112 = std::operator<<>(v120, "]"); + WXML::NameAllocator::GetNextName(a7, &v189); + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*((int **)this[13] + 2), a2, &v189, a4, a5, a6, a7, a8, a9); + v115 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); + v116 = std::operator<<(v115, a3); + v117 = std::operator<<>(v116, "="); + v118 = std::operator<<(v117, &v186); + v119 = std::operator<<>(v118, "?"); + v120 = std::operator<<(v119, &v186); + v121 = std::operator<<>(v120, (char *)&off_52E6CD[2]); + v122 = std::operator<<(v121, &v189); + v114 = std::operator<<>(v122, "]"); } - v121 = std::operator<<>(v112, ":undefined"); - std::operator<<>(v121, a8); + v123 = std::operator<<>(v114, ":undefined"); + std::operator<<>(v123, a8); goto LABEL_73; } v63 = std::operator<<>((WXML::EXPRLib::Token *)((char *)a2 + 8), "var "); v64 = std::operator<<(v63, a3); v65 = std::operator<<>(v64, (char *)off_52E79F); std::operator<<>(v65, a8); - if ( this[13] != this[14] ) - WXML::EXPRLib::ExprSyntaxTree::RenderCode(a2, (int)a3, (int)a4, (int)a5, (int)a6, (int)a7, a8, a9); + v66 = (int **)this[13]; + if ( v66 != (int **)this[14] ) + WXML::EXPRLib::ExprSyntaxTree::RenderCode(*v66, a2, a3, a4, a5, a6, a7, a8, a9); return 0; } @@ -29188,7 +28030,7 @@ int __userpurge WXML::EXPRLib::Parser::Parse@( int a4, int a5, int a6, - unsigned int *a7, + unsigned int **a7, char a8) { void (__cdecl *v8)(void *); // edx @@ -29399,7 +28241,7 @@ int __userpurge WXML::EXPRLib::Parser::Parse@( v24[11] = (char *)v91[1]; v24[12] = (char *)v91[2]; v26 = (char *)WXML::EXPRLib::Token::GetTokenName((const char **)&v88); - std::string::operator=((unsigned int *)v84, v26); + std::string::operator=((unsigned int **)v84, v26); std::deque>::push_back((_DWORD *)(a1 + 40), &v84); v27 = v85; LABEL_37: @@ -29967,7 +28809,7 @@ _DWORD *__usercall std::__relocate_a_1( @@ -30155,10 +28997,10 @@ int __thiscall WXML::EXPRLib::Tokenizer::GetTokens(int *this, int a2, unsigned i v21 = *(_DWORD **)(a2 + 4); if ( v21 == *(_DWORD **)(a2 + 8) ) { - v23 = (void (__cdecl *)(void *))std::vector::_M_realloc_insert( - (char **)a2, - *(char **)(a2 + 4), - (WXML::EXPRLib::Token *)&v38); + v23 = std::vector::_M_realloc_insert( + (char **)a2, + *(char **)(a2 + 4), + (WXML::EXPRLib::Token *)&v38); } else { @@ -30192,26 +29034,26 @@ void __cdecl __tcf_1_4() } //----- (00424DD6) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *a2) +int __thiscall std::string::basic_string(void **this, char *a2) { unsigned int v3; // kr04_4 - unsigned int result; // eax - _BYTE *v5; // edx - unsigned int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF + int result; // eax + int v5; // edx + int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF *this = this + 2; v3 = strlen(a2) + 1; v6[0] = v3 - 1; if ( v3 - 1 > 0xF ) { - *this = std::string::_M_create(v6, 0); + *this = std::string::_M_create((unsigned int *)v6, 0); this[2] = (void *)v6[0]; } std::string::_S_copy_chars(*this, (unsigned __int8 *)a2, (size_t)&a2[v3 - 1]); result = v6[0]; - v5 = *this; + v5 = (int)*this; this[1] = (void *)v6[0]; - v5[result] = 0; + *(_BYTE *)(v5 + result) = 0; return result; } // 424DD6: using guessed type unsigned int var_1C[7]; @@ -30312,24 +29154,24 @@ void __fastcall std::vector::~vector(void ***a1) } //----- (00424F26) -------------------------------------------------------- -void __thiscall std::vector::_M_move_assign(void *this, int *a2) +void __thiscall std::vector::_M_move_assign(void ***this, void ***a2) { void **v2; // ebx void **v3; // edx - int v4; // edi + void **v4; // edi int v5; // edi void **v6[9]; // [esp+4h] [ebp-24h] BYREF - v2 = (void **)*((_DWORD *)this + 1); - v3 = (void **)*((_DWORD *)this + 2); + v2 = this[1]; + v3 = this[2]; v4 = *a2; - v6[0] = *(void ***)this; + v6[0] = *this; v6[1] = v2; - *(_DWORD *)this = v4; - v5 = a2[1]; + *this = v4; + v5 = (int)a2[1]; v6[2] = v3; - *((_DWORD *)this + 1) = v5; - *((_DWORD *)this + 2) = a2[2]; + this[1] = (void **)v5; + this[2] = a2[2]; *a2 = 0; a2[1] = 0; a2[2] = 0; @@ -30397,7 +29239,7 @@ void __cdecl __tcf_0_4() } //----- (00443022) -------------------------------------------------------- -int __cdecl WXML::StringTemplating::Deal(const char *a1, int a2, _DWORD *a3, _BYTE *a4) +int __cdecl WXML::StringTemplating::Deal(const char *a1, int a2, void **a3, _BYTE *a4) { int v4; // esi signed int v5; // ebx @@ -30790,8 +29632,8 @@ LABEL_6: return result; LABEL_12: v3[71] = v5 + 1; - d_count_templates_scopes(a3, v4[2]); - result = (_DWORD *)d_count_templates_scopes(v6, v4[3]); + d_count_templates_scopes(v3, (_DWORD *)v4[2], a3); + result = d_count_templates_scopes(v3, (_DWORD *)v4[3], v6); --v3[71]; return result; case 0x2C: @@ -31341,7 +30183,7 @@ _BYTE *__cdecl d_growable_string_callback_adapter(void *Src, size_t Size, unsign v3 *= 2; while ( (unsigned int)result > v3 ); } - result = __mingw_realloc(*a3, v3); + result = (_BYTE *)__mingw_realloc(*a3, v3); if ( !result ) { result = (_BYTE *)__mingw_free(*a3); @@ -31445,7 +30287,7 @@ _DWORD *__usercall d_find_pack@(int a1@, _DWORD *a2@, int a3@(_DWORD *a1@, char a2@
) +unsigned int *__usercall d_exprlist@(_DWORD *a1@, char a2@
) { char *v3; // eax int v4; // edi char v5; // dl - _DWORD *v6; // eax - _DWORD *v7; // esi - int v8; // eax + unsigned int *v6; // eax + unsigned int *v7; // esi + unsigned int v8; // eax int v9; // eax _BYTE *v11; // eax char v12; // dl - int v13; // eax + _DWORD *v13; // eax _BYTE *v14; // eax int *v15; // esi - int v16; // eax + _DWORD *v16; // eax int v17; // eax int v18; // ecx int v19; // edx - _DWORD *v20; // eax - char **v21; // eax - char *v22; // edx + unsigned int *v20; // eax + unsigned __int8 **v21; // eax + int *v22; // edx int v23; // ecx int v24; // eax unsigned __int8 v25; // al - int v26; // eax + _DWORD *v26; // eax int *v27; // ecx char *v28; // eax char v29; // dl - int v30; // eax + _DWORD *v30; // eax _DWORD *v31; // eax - int *v32; // eax + _DWORD *v32; // eax int *v33; // esi _DWORD *v34; // ecx _BYTE *v35; // eax - _DWORD *v36; // eax + unsigned int *v36; // eax char v37; // al _BYTE *v38; // eax _BYTE *v39; // eax @@ -31506,9 +30348,9 @@ _DWORD *__usercall d_exprlist@(_DWORD *a1@, char a2@
) _DWORD *v43; // eax char *v44; // eax _DWORD *v45; // eax - unsigned __int8 *v46; // edx + int *v46; // edx int v47; // ecx - _DWORD *v48; // ecx + int *v48; // ecx _BYTE *v49; // eax _DWORD *v50; // eax char v51; // al @@ -31522,7 +30364,7 @@ _DWORD *__usercall d_exprlist@(_DWORD *a1@, char a2@
) int v59; // [esp+10h] [ebp-1Ch] int v60; // [esp+14h] [ebp-18h] int v61; // [esp+18h] [ebp-14h] - int v62; // [esp+1Ch] [ebp-10h] + int *v62; // [esp+1Ch] [ebp-10h] int v63; // [esp+20h] [ebp-Ch] int v64; // [esp+24h] [ebp-8h] int v65; // [esp+28h] [ebp-4h] @@ -31552,7 +30394,7 @@ _DWORD *__usercall d_exprlist@(_DWORD *a1@, char a2@
) if ( v12 == 114 ) { a1[3] = v3 + 2; - v33 = d_type((int)a1, v54, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65); + v33 = d_type((int)a1, v54, v56, v57, v58, v59, v60, v61, (int)v62, v63, v64, v65); v34 = d_unqualified_name(a1); v35 = (_BYTE *)a1[3]; if ( *v35 == 73 ) @@ -31573,8 +30415,8 @@ _DWORD *__usercall d_exprlist@(_DWORD *a1@, char a2@
) if ( v12 == 112 ) { a1[3] = v3 + 2; - v13 = d_expression_1(); - v7 = d_make_comp(a1, 75, v13, 0); + v13 = d_expression_1(a1); + v7 = d_make_comp(a1, 75, (int)v13, 0); goto LABEL_27; } break; @@ -31601,7 +30443,7 @@ LABEL_15: a1[12] = v4; return 0; } - v20 = (_DWORD *)(a1[4] + 16 * a1[5]); + v20 = (unsigned int *)(a1[4] + 16 * a1[5]); v20[1] = 0; v7 = v20; a1[5] = v19 + 1; @@ -31649,7 +30491,7 @@ LABEL_32: a1[3] = v14; if ( v5 == 116 ) { - v15 = d_type((int)a1, v54, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65); + v15 = d_type((int)a1, v54, v56, v57, v58, v59, v60, v61, (int)v62, v63, v64, v65); if ( !*(_BYTE *)(a1[3] + 1) ) goto LABEL_15; } @@ -31657,8 +30499,8 @@ LABEL_32: { goto LABEL_15; } - v16 = d_exprlist(); - v7 = d_make_comp(a1, 49, (int)v15, v16); + v16 = d_exprlist(a1, 69); + v7 = d_make_comp(a1, 49, (int)v15, (int)v16); goto LABEL_27; } break; @@ -31676,7 +30518,7 @@ LABEL_32: if ( *v38 != 95 ) goto LABEL_80; a1[3] = v38 + 1; - v32 = (int *)d_exprlist(); + v32 = d_exprlist(a1, 69); } else { @@ -31690,44 +30532,44 @@ LABEL_32: if ( v9 != 1 ) goto LABEL_15; LABEL_80: - v32 = (int *)d_expression_1(); + v32 = d_expression_1(a1); } LABEL_78: v7 = d_make_comp(a1, 55, (int)v7, (int)v32); goto LABEL_27; } - v21 = (char **)v7[2]; - v22 = *v21; + v21 = (unsigned __int8 **)v7[2]; + v22 = (int *)*v21; a1[11] += v21[2] - 2; - v23 = (unsigned __int8)*v22; - if ( v23 == 115 && v22[1] == 116 && !v22[2] ) + v23 = *(unsigned __int8 *)v22; + if ( v23 == 115 && *((_BYTE *)v22 + 1) == 116 && !*((_BYTE *)v22 + 2) ) { - v32 = d_type((int)a1, v54, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65); + v32 = d_type((int)a1, v54, v56, v57, v58, v59, v60, v61, (int)v62, v63, v64, v65); goto LABEL_78; } v24 = (int)v21[3]; v61 = v24; if ( v24 == 1 ) { - v37 = *v22; - if ( (*v22 == 112 || v37 == 109) && v37 == v22[1] ) + v37 = *(_BYTE *)v22; + if ( (*(_BYTE *)v22 == 112 || v37 == 109) && v37 == *((_BYTE *)v22 + 1) ) { v39 = (_BYTE *)a1[3]; if ( *v39 == 95 ) { v61 = 0; a1[3] = v39 + 1; - v23 = (unsigned __int8)*v22; + v23 = *(unsigned __int8 *)v22; } } else { v61 = 0; } - if ( v23 == 115 && v22[1] == 80 && !v22[2] ) + if ( v23 == 115 && *((_BYTE *)v22 + 1) == 80 && !*((_BYTE *)v22 + 2) ) v32 = d_template_args_1(a1); else - v32 = (int *)d_expression_1(); + v32 = d_expression_1(a1); if ( v61 ) v32 = d_make_comp(a1, 57, (int)v32, (int)v32); goto LABEL_78; @@ -31744,31 +30586,31 @@ LABEL_13: { if ( v24 != 3 ) goto LABEL_15; - if ( v23 == 113 && v22[1] == 117 && !v22[2] ) + if ( v23 == 113 && *((_BYTE *)v22 + 1) == 117 && !*((_BYTE *)v22 + 2) ) { - v40 = (_DWORD *)d_expression_1(); + v40 = d_expression_1(a1); LABEL_91: v61 = (int)v40; - v62 = d_expression_1(); - v30 = d_expression_1(); - v27 = (int *)v62; + v62 = d_expression_1(a1); + v30 = d_expression_1(a1); + v27 = v62; if ( !v30 ) goto LABEL_15; } else { - if ( *v22 == 102 ) + if ( *(_BYTE *)v22 == 102 ) { v40 = d_operator_name(a1); goto LABEL_91; } - if ( *v22 != 110 ) + if ( *(_BYTE *)v22 != 110 ) goto LABEL_15; - v25 = v22[1]; + v25 = *((_BYTE *)v22 + 1); if ( v25 != 119 && v25 != 97 ) goto LABEL_15; - v26 = d_exprlist(); - v27 = d_type((int)a1, v54, v56, v57, v58, v59, v60, v26, v62, v63, v64, v65); + v26 = d_exprlist(a1, 95); + v27 = d_type((int)a1, v54, v56, v57, v58, v59, v60, (int)v26, (int)v62, v63, v64, v65); v28 = (char *)a1[3]; v29 = *v28; if ( *v28 == 69 ) @@ -31780,21 +30622,21 @@ LABEL_91: { if ( v28[1] != 105 ) goto LABEL_15; - v62 = (int)v27; + v62 = v27; a1[3] = v28 + 2; - v30 = d_exprlist(); - v27 = (int *)v62; + v30 = d_exprlist(a1, 69); + v27 = v62; } else { if ( v29 != 105 || v28[1] != 108 ) goto LABEL_15; - v62 = (int)v27; - v30 = d_expression_1(); - v27 = (int *)v62; + v62 = v27; + v30 = d_expression_1(a1); + v27 = v62; } } - v41 = d_make_comp(a1, 60, (int)v27, v30); + v41 = d_make_comp(a1, 60, (int)v27, (int)v30); v42 = d_make_comp(a1, 59, v61, (int)v41); v7 = d_make_comp(a1, 58, (int)v7, (int)v42); goto LABEL_27; @@ -31803,39 +30645,40 @@ LABEL_91: if ( v44[1] == 99 && ((v51 = *v44, (unsigned __int8)(v51 - 114) <= 1u) || (unsigned __int8)(v51 - 99) <= 1u) ) { v52 = d_type((int)a1, v54, v56, v57, v58, v59, v60, 2, (int)v22, v63, v64, v65); - v46 = (unsigned __int8 *)v62; + v46 = v62; v61 = (int)v52; } else { - v62 = (int)v22; - if ( *v22 == 102 ) + v62 = v22; + if ( *(_BYTE *)v22 == 102 ) v45 = d_operator_name(a1); else - v45 = (_DWORD *)d_expression_1(); - v46 = (unsigned __int8 *)v62; + v45 = d_expression_1(a1); + v46 = v62; v61 = (int)v45; } - v47 = *v46; - if ( v47 == 99 && v46[1] == 108 && !v46[2] ) + v47 = *(unsigned __int8 *)v46; + if ( v47 == 99 && *((_BYTE *)v46 + 1) == 108 && !*((_BYTE *)v46 + 2) ) { - v48 = (_DWORD *)d_exprlist(); + v48 = d_exprlist(a1, 69); } - else if ( v47 == 100 && v46[1] == 116 && !v46[2] || v47 == 112 && v46[1] == 116 && !v46[2] ) + else if ( v47 == 100 && *((_BYTE *)v46 + 1) == 116 && !*((_BYTE *)v46 + 2) + || v47 == 112 && *((_BYTE *)v46 + 1) == 116 && !*((_BYTE *)v46 + 2) ) { v48 = d_unqualified_name(a1); v49 = (_BYTE *)a1[3]; if ( *v49 == 73 ) { - v62 = (int)v48; + v62 = v48; a1[3] = v49 + 1; v53 = d_template_args_1(a1); - v48 = d_make_comp(a1, 4, v62, (int)v53); + v48 = d_make_comp(a1, 4, (int)v62, (int)v53); } } else { - v48 = (_DWORD *)d_expression_1(); + v48 = d_expression_1(a1); } v50 = d_make_comp(a1, 57, v61, (int)v48); v7 = d_make_comp(a1, 56, (int)v7, (int)v50); @@ -31869,10 +30712,9 @@ LABEL_20: // 4440A4: variable 'v64' is possibly undefined // 4440A4: variable 'v65' is possibly undefined // 44412E: variable 'v61' is possibly undefined -// 4444F0: using guessed type int d_expression_1(void); //----- (004444F0) -------------------------------------------------------- -_DWORD *__usercall d_expression_1@(_DWORD *a1@) +unsigned int *__usercall d_expression_1@(_DWORD *a1@) { char *v2; // edx char v3; // al @@ -31883,7 +30725,7 @@ _DWORD *__usercall d_expression_1@(_DWORD *a1@) int v9; // eax int v10; // eax char v11; // al - int v12; // eax + _DWORD *v12; // eax int v13; // eax int v14; // edx int v15; // ecx @@ -31895,25 +30737,25 @@ _DWORD *__usercall d_expression_1@(_DWORD *a1@) char *v21; // edi int v22; // eax int v23; // ebp - _DWORD *v24; // eax - _DWORD *v25; // edi + unsigned int *v24; // eax + unsigned int *v25; // edi int *v26; // ebp - _DWORD *v27; // eax + unsigned int *v27; // eax _DWORD *v28; // eax _DWORD *v29; // eax _DWORD *v30; // eax int *v31; // esi _DWORD *v32; // edi _BYTE *v33; // eax - _DWORD *v35; // eax - _DWORD *v36; // eax + unsigned int *v35; // eax + void *v36; // eax _DWORD *v37; // eax char v38; // dl _BYTE *v39; // edx char *v40; // eax int *v41; // ebp int v42; // eax - _DWORD *v43; // edi + unsigned int *v43; // edi _DWORD *v44; // eax unsigned __int8 v45; // al char *v46; // eax @@ -31960,8 +30802,8 @@ _DWORD *__usercall d_expression_1@(_DWORD *a1@) if ( v11 == 112 ) { a1[3] = v2 + 2; - v12 = d_expression_1(); - return d_make_comp(a1, 75, v12, 0); + v12 = d_expression_1(a1); + return d_make_comp(a1, 75, (int)v12, 0); } } else if ( v3 == 102 ) @@ -32067,7 +30909,7 @@ LABEL_6: if ( v10 == 1 ) { LABEL_58: - v36 = (_DWORD *)d_expression_1(); + v36 = d_expression_1(a1); return d_make_comp(a1, 55, v8, (int)v36); } } @@ -32104,7 +30946,7 @@ LABEL_58: if ( v22 == 115 && v21[1] == 80 && !v21[2] ) v36 = d_template_args_1(a1); else - v36 = (_DWORD *)d_expression_1(); + v36 = d_expression_1(a1); if ( v23 ) v36 = d_make_comp(a1, 57, (int)v36, (int)v36); return d_make_comp(a1, 55, v8, (int)v36); @@ -32128,7 +30970,7 @@ LABEL_58: } else { - v41 = (int *)d_expression_1(); + v41 = d_expression_1(a1); } v42 = (unsigned __int8)*v21; if ( v42 == 99 && v21[1] == 108 && !v21[2] ) @@ -32148,7 +30990,7 @@ LABEL_58: } else { - v43 = (_DWORD *)d_expression_1(); + v43 = d_expression_1(a1); } v44 = d_make_comp(a1, 57, (int)v41, (int)v43); return d_make_comp(a1, 56, v8, (int)v44); @@ -32157,7 +30999,7 @@ LABEL_58: return 0; if ( v22 == 113 && v21[1] == 117 && !v21[2] ) { - v24 = (_DWORD *)d_expression_1(); + v24 = d_expression_1(a1); } else { @@ -32188,15 +31030,15 @@ LABEL_58: { if ( v47 != 105 || v46[1] != 108 ) return 0; - v27 = (_DWORD *)d_expression_1(); + v27 = d_expression_1(a1); } goto LABEL_47; } v24 = d_operator_name(a1); } v25 = v24; - v26 = (int *)d_expression_1(); - v27 = (_DWORD *)d_expression_1(); + v26 = d_expression_1(a1); + v27 = d_expression_1(a1); if ( !v27 ) return 0; LABEL_47: @@ -32242,7 +31084,7 @@ int *__usercall d_template_arg@( v13 = (char *)a1[3]; v14 = *v13; if ( *v13 == 76 ) - return d_expr_primary(a1); + return (int *)d_expr_primary(a1); if ( v14 <= 76 ) { if ( (unsigned __int8)(v14 - 73) <= 1u ) @@ -32254,7 +31096,7 @@ int *__usercall d_template_arg@( v16 = a1[12]; a1[12] = 1; a1[3] = v13 + 1; - result = d_expression_1(a1); + result = (int *)d_expression_1(a1); v17 = (_BYTE *)a1[3]; a1[12] = v16; if ( *v17 != 69 ) @@ -32271,8 +31113,15 @@ _DWORD *__usercall d_template_args_1@(_DWORD *a1@) int *v4; // esi _DWORD *comp; // eax _BYTE *v6; // eax - int v7; // ecx - int v9; // [esp+1Ch] [ebp-10h] BYREF + int *v7; // ecx + int v9; // [esp+0h] [ebp-2Ch] + int v10; // [esp+4h] [ebp-28h] + int v11; // [esp+8h] [ebp-24h] + int v12; // [esp+Ch] [ebp-20h] + int v13; // [esp+10h] [ebp-1Ch] + int v14; // [esp+14h] [ebp-18h] + int v15; // [esp+18h] [ebp-14h] + int v16[4]; // [esp+1Ch] [ebp-10h] BYREF v2 = a1[10]; v3 = (_BYTE *)a1[3]; @@ -32283,14 +31132,14 @@ _DWORD *__usercall d_template_args_1@(_DWORD *a1@) } else { - v9 = 0; - v4 = &v9; + v16[0] = 0; + v4 = v16; do { - v7 = d_template_arg(); + v7 = d_template_arg(a1, v9, v10, v11, v12, v13, v14, v15, v16[0], v16[1], v16[2], v16[3]); if ( !v7 ) return 0; - comp = d_make_comp(a1, 47, v7, 0); + comp = d_make_comp(a1, 47, (int)v7, 0); *v4 = (int)comp; if ( !comp ) return 0; @@ -32300,10 +31149,17 @@ _DWORD *__usercall d_template_args_1@(_DWORD *a1@) while ( *v6 != 69 ); a1[10] = v2; a1[3] = v6 + 1; - return (_DWORD *)v9; + return (_DWORD *)v16[0]; } } -// 444B60: using guessed type int d_template_arg(void); +// 444C3E: variable 'v9' is possibly undefined +// 444C3E: variable 'v10' is possibly undefined +// 444C3E: variable 'v11' is possibly undefined +// 444C3E: variable 'v12' is possibly undefined +// 444C3E: variable 'v13' is possibly undefined +// 444C3E: variable 'v14' is possibly undefined +// 444C3E: variable 'v15' is possibly undefined +// 444BF0: using guessed type int var_10[4]; //----- (00444CA0) -------------------------------------------------------- _DWORD *__usercall d_template_args@(_DWORD *a1@) @@ -32352,11 +31208,11 @@ unsigned int *__usercall d_encoding@(int a1@, int a2@, int a3@(int a1@, int a2@, int a3@(int a1@, int a2@, int a3@(int a1@, int a2@, int a3@ 84 ) @@ -32607,8 +31463,8 @@ unsigned int *__usercall d_encoding@(int a1@, int a2@, int a3@(_DWORD *a1@, int a2@) char v4; // al int *v5; // esi _DWORD *v6; // eax - _DWORD *v7; // edi - _BYTE *v8; // eax - char v9; // dl - _DWORD *v10; // eax - _DWORD *v11; // esi - int **v12; // ebp - unsigned __int8 *v13; // edx - _DWORD *v14; // eax - int *v15; // edi - int v16; // ebx - _DWORD *v17; // esi - unsigned int v18; // eax - int *v19; // eax - int v20; // edx - int v21; // eax - _DWORD *v23; // eax - int v24; // edx - _DWORD *v25; // ecx + int v7; // ecx + unsigned int *v8; // edi + _BYTE *v9; // eax + char v10; // dl + int *v11; // eax + int *v12; // esi + int **v13; // ebp + unsigned __int8 *v14; // edx + _DWORD *v15; // eax + int *v16; // edi + int v17; // ebx + _DWORD *v18; // esi + unsigned int v19; // eax + int *v20; // eax + int v21; // edx + int v22; // eax + _DWORD *v24; // eax + int v25; // edx + _DWORD *v26; // ecx int *comp; // eax - int v27; // eax - int v28; // ecx - int v29; // ebp - _DWORD *v30; // eax - _DWORD *v31; // ecx - int v32; // edx - _DWORD *v33; // ebx - int *v34; // eax - _BYTE *v35; // eax - _DWORD *v36; // eax - int v37; // eax - int v38; // eax - int *v39; // [esp+1Ch] [ebp-30h] - _DWORD *v40; // [esp+1Ch] [ebp-30h] - int *v41; // [esp+2Ch] [ebp-20h] BYREF + int v28; // eax + int v29; // ecx + int v30; // ecx + int v31; // ebp + int *v32; // eax + int *v33; // ecx + int v34; // edx + _DWORD *v35; // ebx + int *v36; // eax + _BYTE *v37; // eax + _DWORD *v38; // eax + int v39; // eax + int v40; // eax + int v41; // [esp+0h] [ebp-4Ch] + int v42; // [esp+4h] [ebp-48h] + int v43; // [esp+8h] [ebp-44h] + int v44; // [esp+Ch] [ebp-40h] + int v45; // [esp+10h] [ebp-3Ch] + int v46; // [esp+14h] [ebp-38h] + int v47; // [esp+18h] [ebp-34h] + int *v48; // [esp+1Ch] [ebp-30h] + int *v49; // [esp+1Ch] [ebp-30h] + int v50; // [esp+20h] [ebp-2Ch] + int v51; // [esp+24h] [ebp-28h] + int v52; // [esp+28h] [ebp-24h] + int *v53; // [esp+2Ch] [ebp-20h] BYREF v3 = (char *)a1[3]; v4 = *v3; @@ -32828,22 +31696,22 @@ int *__usercall d_name@(_DWORD *a1@, int a2@) goto LABEL_7; } a1[3] = v3 + 2; - v23 = d_unqualified_name(a1); - v24 = a1[5]; - if ( v24 >= a1[6] ) + v24 = d_unqualified_name(a1); + v25 = a1[5]; + if ( v25 >= a1[6] ) { - v25 = 0; + v26 = 0; } else { - v25 = (_DWORD *)(a1[4] + 16 * a1[5]); - a1[5] = v24 + 1; - v25[1] = 0; - *v25 = 0; - v25[2] = &off_5310E3; - v25[3] = 3; + v26 = (_DWORD *)(a1[4] + 16 * a1[5]); + a1[5] = v25 + 1; + v26[1] = 0; + *v26 = 0; + v26[2] = &off_5310E3; + v26[3] = 3; } - comp = d_make_comp(a1, 1, (int)v25, (int)v23); + comp = d_make_comp(a1, 1, (int)v26, (int)v24); a1[11] += 3; v5 = comp; if ( *(_BYTE *)a1[3] == 73 ) @@ -32851,11 +31719,11 @@ int *__usercall d_name@(_DWORD *a1@, int a2@) LABEL_39: if ( !v5 ) return 0; - v27 = a1[8]; - if ( v27 >= a1[9] ) + v28 = a1[8]; + if ( v28 >= a1[9] ) return 0; - *(_DWORD *)(a1[7] + 4 * v27) = v5; - a1[8] = v27 + 1; + *(_DWORD *)(a1[7] + 4 * v28) = v5; + a1[8] = v28 + 1; LABEL_7: v6 = d_template_args(a1); return d_make_comp(a1, 4, (int)v5, (int)v6); @@ -32865,139 +31733,139 @@ LABEL_7: goto LABEL_42; } a1[3] = v3 + 1; - v12 = d_cv_qualifiers(a1, &v41, 1); - if ( !v12 ) + v13 = d_cv_qualifiers(a1, &v53, 1); + if ( !v13 ) return 0; - v39 = d_ref_qualifier(a1, 0); + v48 = d_ref_qualifier(a1, 0); if ( !*(_BYTE *)a1[3] ) { LABEL_33: - *v12 = 0; + *v13 = 0; return 0; } - v13 = (unsigned __int8 *)a1[3]; - v14 = a1; - v15 = 0; - v16 = *v13; - v17 = v14; + v14 = (unsigned __int8 *)a1[3]; + v15 = a1; + v16 = 0; + v17 = *v14; + v18 = v15; while ( 1 ) { - if ( (_BYTE)v16 == 68 ) + if ( (_BYTE)v17 == 68 ) { - if ( (v13[1] & 0xDF) == 84 ) - v19 = (int *)d_type(); + if ( (v14[1] & 0xDF) == 84 ) + v20 = d_type((int)v18, v41, v42, v43, v44, v45, v46, v47, (int)v48, v50, v51, v52); else - v19 = d_unqualified_name(v17); + v20 = d_unqualified_name(v18); LABEL_47: - v20 = 1; - if ( v15 ) + v21 = 1; + if ( v16 ) { LABEL_26: - v15 = d_make_comp(v17, v20, (int)v15, (int)v19); + v16 = d_make_comp(v18, v21, (int)v16, (int)v20); goto LABEL_27; } LABEL_48: - v13 = (unsigned __int8 *)v17[3]; - v15 = v19; + v14 = (unsigned __int8 *)v18[3]; + v16 = v20; goto LABEL_28; } - v18 = v16 - 48; - if ( (unsigned __int8)(v16 - 48) > 0x1Cu ) + v19 = v17 - 48; + if ( (unsigned __int8)(v17 - 48) > 0x1Cu ) break; while ( 1 ) { - v28 = 268960767; - if ( !_bittest(&v28, v18) ) + v29 = 268960767; + if ( !_bittest(&v29, v19) ) break; LABEL_51: - v19 = d_unqualified_name(v17); - if ( v15 ) + v20 = d_unqualified_name(v18); + if ( v16 ) goto LABEL_25; - v15 = v19; + v16 = v20; LABEL_27: - v13 = (unsigned __int8 *)v17[3]; - if ( (_BYTE)v16 == 83 ) + v14 = (unsigned __int8 *)v18[3]; + if ( (_BYTE)v17 == 83 ) goto LABEL_32; LABEL_28: - LOBYTE(v16) = *v13; - if ( *v13 != 69 ) + LOBYTE(v17) = *v14; + if ( *v14 != 69 ) { - if ( !v15 ) + if ( !v16 ) goto LABEL_33; - v21 = v17[8]; - if ( v21 >= v17[9] ) + v22 = v18[8]; + if ( v22 >= v18[9] ) goto LABEL_33; - *(_DWORD *)(v17[7] + 4 * v21) = v15; - v17[8] = v21 + 1; + *(_DWORD *)(v18[7] + 4 * v22) = v16; + v18[8] = v22 + 1; goto LABEL_32; } - v18 = 21; + v19 = 21; } - if ( (_BYTE)v16 == 73 ) + if ( (_BYTE)v17 == 73 ) { - if ( !v15 ) + if ( !v16 ) goto LABEL_33; - v17[3] = v13 + 1; - v19 = d_template_args_1(v17); - v20 = 4; + v18[3] = v14 + 1; + v20 = d_template_args_1(v18); + v21 = 4; goto LABEL_26; } LABEL_60: - if ( (_BYTE)v16 == 84 ) + if ( (_BYTE)v17 == 84 ) { - v19 = d_template_param(v17); + v20 = d_template_param(v18); goto LABEL_47; } - if ( (_BYTE)v16 == 69 ) + if ( (_BYTE)v17 == 69 ) { - *v12 = v15; - v33 = v17; - if ( v15 ) + *v13 = v16; + v35 = v18; + if ( v16 ) { - if ( v39 ) + if ( v48 ) { - v34 = v41; - v41 = v39; - v39[2] = (int)v34; + v36 = v53; + v53 = v48; + v48[2] = (int)v36; } - v35 = (_BYTE *)v17[3]; - if ( *v35 == 69 ) + v37 = (_BYTE *)v18[3]; + if ( *v37 == 69 ) { - v5 = v41; - v33[3] = v35 + 1; + v5 = v53; + v35[3] = v37 + 1; return v5; } } return 0; } - if ( (_BYTE)v16 != 77 || !v15 ) + if ( (_BYTE)v17 != 77 || !v16 ) goto LABEL_33; - v17[3] = ++v13; + v18[3] = ++v14; LABEL_32: - v16 = *v13; - if ( !(_BYTE)v16 ) + v17 = *v14; + if ( !(_BYTE)v17 ) goto LABEL_33; } - if ( (unsigned __int8)(v16 - 97) > 0x19u ) + if ( (unsigned __int8)(v17 - 97) > 0x19u ) { - if ( (_BYTE)v16 == 85 ) + if ( (_BYTE)v17 == 85 ) { - v19 = d_unqualified_name(v17); - if ( v15 ) + v20 = d_unqualified_name(v18); + if ( v16 ) { LABEL_25: - v20 = 1; + v21 = 1; goto LABEL_26; } goto LABEL_48; } - if ( (_BYTE)v16 == 83 ) + if ( (_BYTE)v17 == 83 ) { - v19 = d_substitution(v17, 1); - if ( v15 ) + v20 = d_substitution(v18, 1); + if ( v16 ) goto LABEL_25; - v13 = (unsigned __int8 *)v17[3]; - v15 = v19; + v14 = (unsigned __int8 *)v18[3]; + v16 = v20; goto LABEL_32; } goto LABEL_60; @@ -33007,79 +31875,79 @@ LABEL_25: if ( v4 == 90 ) { a1[3] = v3 + 1; - v7 = (_DWORD *)d_encoding(a2, 0); - if ( !v7 ) + v8 = d_encoding((int)a1, 0, a2); + if ( !v8 ) return 0; - v8 = (_BYTE *)a1[3]; - if ( *v8 != 69 ) + v9 = (_BYTE *)a1[3]; + if ( *v9 != 69 ) return 0; - a1[3] = v8 + 1; - v9 = v8[1]; - if ( v9 == 115 ) + a1[3] = v9 + 1; + v10 = v9[1]; + if ( v10 == 115 ) { - a1[3] = v8 + 2; + a1[3] = v9 + 2; if ( !d_discriminator((int)a1) ) return 0; - v37 = a1[5]; - if ( v37 < a1[6] ) + v39 = a1[5]; + if ( v39 < a1[6] ) { - v11 = (_DWORD *)(a1[4] + 16 * a1[5]); - a1[5] = v37 + 1; - v11[1] = 0; - *v11 = 0; - v11[2] = "string literal"; - v11[3] = 14; + v12 = (int *)(a1[4] + 16 * a1[5]); + a1[5] = v39 + 1; + v12[1] = 0; + *v12 = 0; + v12[2] = (int)"string literal"; + v12[3] = 14; goto LABEL_15; } } else { - if ( v9 != 100 ) + if ( v10 != 100 ) { - v10 = (_DWORD *)d_name(); - v11 = v10; - if ( v10 && ((*v10 - 70) & 0xFFFFFFFD) != 0 && !d_discriminator((int)a1) ) + v11 = d_name(a1, v7); + v12 = v11; + if ( v11 && ((*v11 - 70) & 0xFFFFFFFD) != 0 && !d_discriminator((int)a1) ) return 0; goto LABEL_15; } - a1[3] = v8 + 2; - v29 = d_compact_number((int)a1); - if ( v29 < 0 ) + a1[3] = v9 + 2; + v31 = d_compact_number((int)a1); + if ( v31 < 0 ) return 0; - v30 = (_DWORD *)d_name(); - v31 = v30; - if ( v30 ) + v32 = d_name(a1, v30); + v33 = v32; + if ( v32 ) { - if ( ((*v30 - 70) & 0xFFFFFFFD) != 0 ) + if ( ((*v32 - 70) & 0xFFFFFFFD) != 0 ) { - v40 = v30; - v38 = d_discriminator((int)a1); - v31 = v40; - if ( !v38 ) + v49 = v32; + v40 = d_discriminator((int)a1); + v33 = v49; + if ( !v40 ) return 0; } } - v32 = a1[5]; - if ( v32 < a1[6] ) + v34 = a1[5]; + if ( v34 < a1[6] ) { - v11 = (_DWORD *)(a1[4] + 16 * a1[5]); - v11[1] = 0; - a1[5] = v32 + 1; - *v11 = 71; - v11[3] = v29; - v11[2] = v31; + v12 = (int *)(a1[4] + 16 * a1[5]); + v12[1] = 0; + a1[5] = v34 + 1; + *v12 = 71; + v12[3] = v31; + v12[2] = (int)v33; goto LABEL_15; } } - v11 = 0; + v12 = 0; LABEL_15: - if ( *v7 == 3 ) + if ( *v8 == 3 ) { - v36 = (_DWORD *)v7[3]; - if ( *v36 == 41 ) - v36[2] = 0; + v38 = (_DWORD *)v8[3]; + if ( *v38 == 41 ) + v38[2] = 0; } - return d_make_comp(a1, 2, (int)v7, (int)v11); + return d_make_comp(a1, 2, (int)v8, (int)v12); } LABEL_42: v5 = d_unqualified_name(a1); @@ -33087,8 +31955,19 @@ LABEL_42: goto LABEL_39; return v5; } -// 444CD0: using guessed type int __fastcall d_encoding(_DWORD, _DWORD); -// 4458B0: using guessed type int d_type(void); +// 44547B: variable 'v7' is possibly undefined +// 44565D: variable 'v41' is possibly undefined +// 44565D: variable 'v42' is possibly undefined +// 44565D: variable 'v43' is possibly undefined +// 44565D: variable 'v44' is possibly undefined +// 44565D: variable 'v45' is possibly undefined +// 44565D: variable 'v46' is possibly undefined +// 44565D: variable 'v47' is possibly undefined +// 44565D: variable 'v48' is possibly undefined +// 44565D: variable 'v50' is possibly undefined +// 44565D: variable 'v51' is possibly undefined +// 44565D: variable 'v52' is possibly undefined +// 4456D9: variable 'v30' is possibly undefined // 5310E3: using guessed type void *off_5310E3; //----- (004458B0) -------------------------------------------------------- @@ -33110,7 +31989,7 @@ int *__usercall d_type@( int v14; // ecx int v15; // edx int v16; // esi - int v17; // eax + _DWORD *v17; // eax int *result; // eax _BYTE *v19; // edx int **v20; // esi @@ -33125,15 +32004,15 @@ int *__usercall d_type@( int v29; // edx char v30; // al _BYTE *v31; // edx - int v32; // eax - int v33; // eax - int v34; // eax - int v35; // eax + int *v32; // eax + int *v33; // eax + int *v34; // eax + int *v35; // eax _DWORD *v36; // eax - int v37; // eax + int *v37; // eax int *comp; // esi _BYTE *v39; // eax - int v40; // eax + int *v40; // eax _BYTE *v41; // esi int v42; // ecx _DWORD *v43; // ecx @@ -33145,9 +32024,9 @@ int *__usercall d_type@( int v49; // ebp _DWORD *v50; // edi char v51; // dl - int v52; // eax - int v53; // esi - int v54; // eax + int *v52; // eax + int *v53; // esi + int *v54; // eax int v55; // eax int *v56; // edi unsigned __int8 v57; // al @@ -33161,45 +32040,69 @@ int *__usercall d_type@( int v65; // edx _DWORD *v66; // esi _BYTE *v67; // eax - int v68; // eax + int *v68; // eax int v69; // edx int v70; // edx int v71; // edx - int v72; // eax + int *v72; // eax int v73; // edx _DWORD *v74; // eax int v75; // esi - int v76; // eax + _DWORD *v76; // eax int v77; // ebp int v78; // edi _DWORD *v79; // ecx int *v80; // edx int v81; // eax int v82; // edi - int v83; // eax - _DWORD *v84; // [esp+0h] [ebp-4Ch] - int v85; // [esp+1Ch] [ebp-30h] - int *v86; // [esp+2Ch] [ebp-20h] BYREF + _DWORD *v83; // eax + int v84; // [esp+0h] [ebp-4Ch] + _DWORD *v85; // [esp+0h] [ebp-4Ch] + int v86; // [esp+0h] [ebp-4Ch] + int v87; // [esp+4h] [ebp-48h] + int v88; // [esp+4h] [ebp-48h] + int v89; // [esp+8h] [ebp-44h] + int v90; // [esp+8h] [ebp-44h] + int v91; // [esp+Ch] [ebp-40h] + int v92; // [esp+Ch] [ebp-40h] + int v93; // [esp+10h] [ebp-3Ch] + int v94; // [esp+10h] [ebp-3Ch] + int v95; // [esp+14h] [ebp-38h] + int v96; // [esp+14h] [ebp-38h] + int v97; // [esp+18h] [ebp-34h] + int v98; // [esp+18h] [ebp-34h] + int v99; // [esp+1Ch] [ebp-30h] + int v100; // [esp+1Ch] [ebp-30h] + int v101; // [esp+1Ch] [ebp-30h] + int v102; // [esp+20h] [ebp-2Ch] + int v103; // [esp+20h] [ebp-2Ch] + int v104; // [esp+24h] [ebp-28h] + int v105; // [esp+24h] [ebp-28h] + int v106; // [esp+28h] [ebp-24h] + int v107; // [esp+28h] [ebp-24h] + int *v108; // [esp+2Ch] [ebp-20h] BYREF v13 = *(char **)(a1 + 12); if ( next_is_type_qual_isra_0(v13) ) { - v20 = d_cv_qualifiers((_DWORD *)a1, &v86, 0); + v20 = d_cv_qualifiers((_DWORD *)a1, &v108, 0); if ( v20 ) { - v21 = **(_BYTE **)(a1 + 12) == 70 ? d_function_type(a1) : (int *)d_type(); + v21 = **(_BYTE **)(a1 + 12) == 70 + ? d_function_type(a1) + : d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); *v20 = v21; v22 = v21; if ( v21 ) { - result = v86; + result = v108; if ( (unsigned int)(*v22 - 31) <= 1 ) { v23 = (int *)v22[2]; - v22[2] = (int)v86; - v86 = *v20; + v22[2] = (int)v108; + v108 = *v20; *v20 = v23; - result = v86; + result = v108; } if ( result ) { @@ -33232,7 +32135,7 @@ int *__usercall d_type@( case 'N': case 'Z': result = d_name((_DWORD *)a1, v14); - v86 = result; + v108 = result; goto LABEL_21; case 'A': v44 = v13 + 1; @@ -33243,18 +32146,18 @@ int *__usercall d_type@( v50 = 0; LABEL_57: *(_DWORD *)(a1 + 12) = v44 + 1; - v52 = d_type(); - result = d_make_comp((_DWORD *)a1, 42, (int)v50, v52); - v86 = result; + v52 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 42, (int)v50, (int)v52); + v108 = result; goto LABEL_21; } if ( (unsigned __int8)(v45 - 48) > 9u ) { v75 = *(_DWORD *)(a1 + 48); *(_DWORD *)(a1 + 48) = 1; - v76 = d_expression_1(); + v76 = d_expression_1((_DWORD *)a1); *(_DWORD *)(a1 + 48) = v75; - v50 = (_DWORD *)v76; + v50 = v76; if ( v76 ) { v46 = *(char **)(a1 + 12); @@ -33296,9 +32199,9 @@ LABEL_56: break; case 'C': *(_DWORD *)(a1 + 12) = v13 + 1; - v37 = d_type(); - result = d_make_comp((_DWORD *)a1, 37, v37, 0); - v86 = result; + v37 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 37, (int)v37, 0); + v108 = result; goto LABEL_21; case 'D': *(_DWORD *)(a1 + 12) = v13 + 1; @@ -33316,7 +32219,7 @@ LABEL_56: } v56 = (int *)(*(_DWORD *)(a1 + 16) + 16 * v55); v56[1] = 0; - v86 = v56; + v108 = v56; *(_DWORD *)(a1 + 20) = v55 + 1; *v56 = 44; v57 = v13[2] - 48; @@ -33324,10 +32227,10 @@ LABEL_56: if ( v57 <= 9u ) { d_number_isra_0((char **)(a1 + 12)); - v56 = v86; + v56 = v108; } - v56[2] = d_type(); - if ( !v86[2] ) + v56[2] = (int)d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + if ( !v108[2] ) return 0; d_number_isra_0((char **)(a1 + 12)); v58 = *(char **)(a1 + 12); @@ -33337,17 +32240,17 @@ LABEL_56: *(_DWORD *)(a1 + 12) = v58 + 1; v59 = *v58; } - result = v86; - *((_WORD *)v86 + 7) = v59 == 115; + result = v108; + *((_WORD *)v108 + 7) = v59 == 115; return result; case 'T': case 't': v16 = *(_DWORD *)(a1 + 48); *(_DWORD *)(a1 + 48) = 1; - v17 = d_expression_1(); + v17 = d_expression_1((_DWORD *)a1); *(_DWORD *)(a1 + 48) = v16; - result = d_make_comp((_DWORD *)a1, 67, v17, 0); - v86 = result; + result = d_make_comp((_DWORD *)a1, 67, (int)v17, 0); + v108 = result; if ( !result ) return 0; v19 = *(_BYTE **)(a1 + 12); @@ -33383,7 +32286,7 @@ LABEL_56: v69 = *(_DWORD *)(a1 + 20); if ( v69 >= *(_DWORD *)(a1 + 24) ) { - v86 = 0; + v108 = 0; BUG(); } result = (int *)(*(_DWORD *)(a1 + 16) + 16 * *(_DWORD *)(a1 + 20)); @@ -33397,7 +32300,7 @@ LABEL_56: v65 = *(_DWORD *)(a1 + 20); if ( v65 >= *(_DWORD *)(a1 + 24) ) { - v86 = 0; + v108 = 0; BUG(); } result = (int *)(*(_DWORD *)(a1 + 16) + 16 * *(_DWORD *)(a1 + 20)); @@ -33411,7 +32314,7 @@ LABEL_56: v63 = *(_DWORD *)(a1 + 20); if ( v63 >= *(_DWORD *)(a1 + 24) ) { - v86 = 0; + v108 = 0; BUG(); } result = (int *)(*(_DWORD *)(a1 + 16) + 16 * *(_DWORD *)(a1 + 20)); @@ -33425,7 +32328,7 @@ LABEL_56: v62 = *(_DWORD *)(a1 + 20); if ( v62 >= *(_DWORD *)(a1 + 24) ) { - v86 = 0; + v108 = 0; BUG(); } result = (int *)(*(_DWORD *)(a1 + 16) + 16 * *(_DWORD *)(a1 + 20)); @@ -33439,7 +32342,7 @@ LABEL_56: v73 = *(_DWORD *)(a1 + 20); if ( v73 >= *(_DWORD *)(a1 + 24) ) { - v86 = 0; + v108 = 0; BUG(); } result = (int *)(*(_DWORD *)(a1 + 16) + 16 * *(_DWORD *)(a1 + 20)); @@ -33453,7 +32356,7 @@ LABEL_56: v70 = *(_DWORD *)(a1 + 20); if ( v70 >= *(_DWORD *)(a1 + 24) ) { - v86 = 0; + v108 = 0; BUG(); } result = (int *)(*(_DWORD *)(a1 + 16) + 16 * *(_DWORD *)(a1 + 20)); @@ -33464,15 +32367,15 @@ LABEL_56: *(_DWORD *)(a1 + 44) += 17; return result; case 'p': - v72 = d_type(); - result = d_make_comp((_DWORD *)a1, 75, v72, 0); - v86 = result; + v72 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 75, (int)v72, 0); + v108 = result; goto LABEL_21; case 's': v64 = *(_DWORD *)(a1 + 20); if ( v64 >= *(_DWORD *)(a1 + 24) ) { - v86 = 0; + v108 = 0; BUG(); } result = (int *)(*(_DWORD *)(a1 + 16) + 16 * *(_DWORD *)(a1 + 20)); @@ -33486,7 +32389,7 @@ LABEL_56: v71 = *(_DWORD *)(a1 + 20); if ( v71 >= *(_DWORD *)(a1 + 24) ) { - v86 = 0; + v108 = 0; BUG(); } result = (int *)(*(_DWORD *)(a1 + 16) + 16 * *(_DWORD *)(a1 + 20)); @@ -33502,9 +32405,9 @@ LABEL_56: v82 = *(_DWORD *)(a1 + 48); *(_DWORD *)(a1 + 48) = 1; *(_DWORD *)(a1 + 12) = v13 + 3; - v83 = d_expression_1(); + v83 = d_expression_1((_DWORD *)a1); *(_DWORD *)(a1 + 48) = v82; - v66 = (_DWORD *)v83; + v66 = v83; } else { @@ -33516,9 +32419,9 @@ LABEL_56: if ( *v67 != 95 ) return 0; *(_DWORD *)(a1 + 12) = v67 + 1; - v68 = d_type(); - result = d_make_comp((_DWORD *)a1, 45, (int)v66, v68); - v86 = result; + v68 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 45, (int)v66, (int)v68); + v108 = result; goto LABEL_21; default: return 0; @@ -33527,42 +32430,42 @@ LABEL_56: return 0; case 'F': result = d_function_type(a1); - v86 = result; + v108 = result; goto LABEL_21; case 'G': *(_DWORD *)(a1 + 12) = v13 + 1; - v35 = d_type(); - result = d_make_comp((_DWORD *)a1, 38, v35, 0); - v86 = result; + v35 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 38, (int)v35, 0); + v108 = result; goto LABEL_21; case 'M': *(_DWORD *)(a1 + 12) = v13 + 1; - v53 = d_type(); + v53 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); if ( !v53 ) return 0; - v54 = d_type(); + v54 = d_type(a1, v86, v88, v90, v92, v94, v96, v98, v100, v103, v105, v107); if ( !v54 ) return 0; - result = d_make_comp((_DWORD *)a1, 43, v53, v54); - v86 = result; + result = d_make_comp((_DWORD *)a1, 43, (int)v53, (int)v54); + v108 = result; goto LABEL_21; case 'O': *(_DWORD *)(a1 + 12) = v13 + 1; - v34 = d_type(); - result = d_make_comp((_DWORD *)a1, 36, v34, 0); - v86 = result; + v34 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 36, (int)v34, 0); + v108 = result; goto LABEL_21; case 'P': *(_DWORD *)(a1 + 12) = v13 + 1; - v33 = d_type(); - result = d_make_comp((_DWORD *)a1, 34, v33, 0); - v86 = result; + v33 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 34, (int)v33, 0); + v108 = result; goto LABEL_21; case 'R': *(_DWORD *)(a1 + 12) = v13 + 1; - v32 = d_type(); - result = d_make_comp((_DWORD *)a1, 35, v32, 0); - v86 = result; + v32 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 35, (int)v32, 0); + v108 = result; goto LABEL_21; case 'S': v30 = v13[1]; @@ -33570,16 +32473,16 @@ LABEL_56: { result = d_substitution((_DWORD *)a1, 0); v31 = *(_BYTE **)(a1 + 12); - v86 = result; + v108 = result; if ( *v31 != 73 ) return result; *(_DWORD *)(a1 + 12) = v31 + 1; - v84 = d_template_args_1((_DWORD *)a1); - result = d_make_comp((_DWORD *)a1, 4, (int)v86, (int)v84); + v85 = d_template_args_1((_DWORD *)a1); + result = d_make_comp((_DWORD *)a1, 4, (int)v108, (int)v85); goto LABEL_29; } result = d_name((_DWORD *)a1, v14); - v86 = result; + v108 = result; if ( !result ) return 0; if ( *result == 24 ) @@ -33588,35 +32491,35 @@ LABEL_56: case 'T': result = d_template_param((_DWORD *)a1); v41 = *(_BYTE **)(a1 + 12); - v86 = result; + v108 = result; if ( *v41 != 73 ) goto LABEL_21; if ( *(_DWORD *)(a1 + 52) ) { v77 = *(_DWORD *)(a1 + 20); v78 = *(_DWORD *)(a1 + 32); - v85 = *(_DWORD *)(a1 + 44); + v101 = *(_DWORD *)(a1 + 44); *(_DWORD *)(a1 + 12) = v41 + 1; v79 = d_template_args_1((_DWORD *)a1); if ( **(_BYTE **)(a1 + 12) == 73 ) { - v80 = v86; - if ( !v86 ) + v80 = v108; + if ( !v108 ) return 0; v81 = *(_DWORD *)(a1 + 32); if ( v81 >= *(_DWORD *)(a1 + 36) ) return 0; - *(_DWORD *)(*(_DWORD *)(a1 + 28) + 4 * v81) = v86; + *(_DWORD *)(*(_DWORD *)(a1 + 28) + 4 * v81) = v108; *(_DWORD *)(a1 + 32) = v81 + 1; result = d_make_comp((_DWORD *)a1, 4, (int)v80, (int)v79); - v86 = result; + v108 = result; } else { *(_DWORD *)(a1 + 12) = v41; *(_DWORD *)(a1 + 20) = v77; - *(_DWORD *)(a1 + 44) = v85; - result = v86; + *(_DWORD *)(a1 + 44) = v101; + result = v108; *(_DWORD *)(a1 + 32) = v78; } } @@ -33635,9 +32538,9 @@ LABEL_56: *(_DWORD *)(a1 + 12) = v41 + 1; v43 = d_template_args_1((_DWORD *)a1); } - result = d_make_comp((_DWORD *)a1, 4, (int)v86, (int)v43); + result = d_make_comp((_DWORD *)a1, 4, (int)v108, (int)v43); LABEL_29: - v86 = result; + v108 = result; } LABEL_21: if ( !result ) @@ -33647,25 +32550,25 @@ LABEL_22: if ( v29 < *(_DWORD *)(a1 + 36) ) { *(_DWORD *)(*(_DWORD *)(a1 + 28) + 4 * v29) = result; - result = v86; + result = v108; *(_DWORD *)(a1 + 32) = v29 + 1; return result; } return 0; case 'U': *(_DWORD *)(a1 + 12) = v13 + 1; - v86 = d_source_name(a1); - comp = v86; + v108 = d_source_name(a1); + comp = v108; v39 = *(_BYTE **)(a1 + 12); if ( *v39 == 73 ) { *(_DWORD *)(a1 + 12) = v39 + 1; v74 = d_template_args_1((_DWORD *)a1); - comp = d_make_comp((_DWORD *)a1, 4, (int)v86, (int)v74); + comp = d_make_comp((_DWORD *)a1, 4, (int)v108, (int)v74); } - v40 = d_type(); - result = d_make_comp((_DWORD *)a1, 33, v40, (int)comp); - v86 = result; + v40 = d_type(a1, v84, v87, v89, v91, v93, v95, v97, v99, v102, v104, v106); + result = d_make_comp((_DWORD *)a1, 33, (int)v40, (int)comp); + v108 = result; goto LABEL_21; case 'a': case 'b': @@ -33706,7 +32609,7 @@ LABEL_22: *(_DWORD *)(a1 + 12) = v13 + 1; v36 = d_source_name(a1); result = d_make_comp((_DWORD *)a1, 40, (int)v36, 0); - v86 = result; + v108 = result; goto LABEL_21; default: return 0; @@ -33714,8 +32617,29 @@ LABEL_22: } return 0; } +// 445955: variable 'v84' is possibly undefined +// 445955: variable 'v87' is possibly undefined +// 445955: variable 'v89' is possibly undefined +// 445955: variable 'v91' is possibly undefined +// 445955: variable 'v93' is possibly undefined +// 445955: variable 'v95' is possibly undefined +// 445955: variable 'v97' is possibly undefined +// 445955: variable 'v99' is possibly undefined +// 445955: variable 'v102' is possibly undefined +// 445955: variable 'v104' is possibly undefined +// 445955: variable 'v106' is possibly undefined // 445A0A: variable 'v14' is possibly undefined -// 4444F0: using guessed type int d_expression_1(void); +// 445D58: variable 'v86' is possibly undefined +// 445D58: variable 'v88' is possibly undefined +// 445D58: variable 'v90' is possibly undefined +// 445D58: variable 'v92' is possibly undefined +// 445D58: variable 'v94' is possibly undefined +// 445D58: variable 'v96' is possibly undefined +// 445D58: variable 'v98' is possibly undefined +// 445D58: variable 'v100' is possibly undefined +// 445D58: variable 'v103' is possibly undefined +// 445D58: variable 'v105' is possibly undefined +// 445D58: variable 'v107' is possibly undefined // 532488: using guessed type char *off_532488; // 53249C: using guessed type char *off_53249C; // 5324B0: using guessed type char *off_5324B0; @@ -33742,9 +32666,20 @@ _DWORD *__usercall d_operator_name@(_DWORD *a1@) int v13; // edx _DWORD *v14; // ecx int v15; // ebx - int v16; // ecx - int v17; // [esp+18h] [ebp-24h] - _DWORD *v18; // [esp+1Ch] [ebp-20h] + int *v16; // eax + int v17; // [esp+0h] [ebp-3Ch] + int v18; // [esp+4h] [ebp-38h] + int v19; // [esp+8h] [ebp-34h] + int v20; // [esp+Ch] [ebp-30h] + int v21; // [esp+10h] [ebp-2Ch] + int v22; // [esp+14h] [ebp-28h] + int v23; // [esp+18h] [ebp-24h] + int v24; // [esp+18h] [ebp-24h] + int v25; // [esp+1Ch] [ebp-20h] + _DWORD *v26; // [esp+1Ch] [ebp-20h] + int v27; // [esp+20h] [ebp-1Ch] + int v28; // [esp+24h] [ebp-18h] + int v29; // [esp+28h] [ebp-14h] v2 = (unsigned __int8 *)a1[3]; if ( !*v2 ) @@ -33759,13 +32694,13 @@ _DWORD *__usercall d_operator_name@(_DWORD *a1@) if ( !v4 ) { LABEL_3: - v18 = a1; + v26 = a1; v5 = 0; v6 = v4; - v17 = 67; + v24 = 67; while ( 1 ) { - v7 = &cplus_demangle_operators + 4 * v5 + 4 * ((v17 - v5) / 2); + v7 = &cplus_demangle_operators + 4 * v5 + 4 * ((v24 - v5) / 2); v8 = *v7; v9 = *(_BYTE *)*v7 <= v3; if ( *(_BYTE *)*v7 == v3 ) @@ -33775,18 +32710,18 @@ LABEL_3: break; } if ( v9 ) - v5 += (v17 - v5) / 2 + 1; + v5 += (v24 - v5) / 2 + 1; else - v17 = v5 + (v17 - v5) / 2; - if ( v5 == v17 ) + v24 = v5 + (v24 - v5) / 2; + if ( v5 == v24 ) return 0; } - v11 = v18[5]; - if ( v11 < v18[6] ) + v11 = v26[5]; + if ( v11 < v26[6] ) { - result = (_DWORD *)(v18[4] + 16 * v18[5]); + result = (_DWORD *)(v26[4] + 16 * v26[5]); result[1] = 0; - v18[5] = v11 + 1; + v26[5] = v11 + 1; *result = 50; result[2] = v7; return result; @@ -33820,16 +32755,26 @@ LABEL_3: goto LABEL_3; v15 = a1[13]; a1[13] = a1[12] == 0; - v16 = d_type(); + v16 = d_type((int)a1, v17, v18, v19, v20, v21, v22, v23, v25, v27, v28, v29); if ( a1[13] ) - result = d_make_comp(a1, 53, v16, 0); + result = d_make_comp(a1, 53, (int)v16, 0); else - result = d_make_comp(a1, 52, v16, 0); + result = d_make_comp(a1, 52, (int)v16, 0); a1[13] = v15; } return result; } -// 4458B0: using guessed type int d_type(void); +// 44633D: variable 'v17' is possibly undefined +// 44633D: variable 'v18' is possibly undefined +// 44633D: variable 'v19' is possibly undefined +// 44633D: variable 'v20' is possibly undefined +// 44633D: variable 'v21' is possibly undefined +// 44633D: variable 'v22' is possibly undefined +// 44633D: variable 'v23' is possibly undefined +// 44633D: variable 'v25' is possibly undefined +// 44633D: variable 'v27' is possibly undefined +// 44633D: variable 'v28' is possibly undefined +// 44633D: variable 'v29' is possibly undefined // 531D00: using guessed type void *cplus_demangle_operators; //----- (00446380) -------------------------------------------------------- @@ -33839,28 +32784,35 @@ int __usercall d_parmlist@(_DWORD *a1@) char v3; // al int *v4; // esi _DWORD *comp; // eax - int v6; // ecx + int *v6; // ecx int result; // eax _DWORD *v8; // edx int v9; // edx - int v10; // [esp+1Ch] [ebp-20h] BYREF + int v10; // [esp+0h] [ebp-3Ch] + int v11; // [esp+4h] [ebp-38h] + int v12; // [esp+8h] [ebp-34h] + int v13; // [esp+Ch] [ebp-30h] + int v14; // [esp+10h] [ebp-2Ch] + int v15; // [esp+14h] [ebp-28h] + int v16; // [esp+18h] [ebp-24h] + int v17[8]; // [esp+1Ch] [ebp-20h] BYREF v2 = (char *)a1[3]; - v10 = 0; + v17[0] = 0; v3 = *v2; if ( v3 == 0 || v3 == 69 ) return 0; - v4 = &v10; + v4 = v17; if ( v3 == 46 ) return 0; do { if ( (v3 == 82 || v3 == 79) && v2[1] == 69 ) break; - v6 = d_type(); + v6 = d_type((int)a1, v10, v11, v12, v13, v14, v15, v16, v17[0], v17[1], v17[2], v17[3]); if ( !v6 ) return 0; - comp = d_make_comp(a1, 46, v6, 0); + comp = d_make_comp(a1, 46, (int)v6, 0); *v4 = (int)comp; if ( !comp ) return 0; @@ -33871,12 +32823,12 @@ int __usercall d_parmlist@(_DWORD *a1@) break; } while ( v3 != 46 ); - result = v10; - if ( !v10 ) + result = v17[0]; + if ( !v17[0] ) return 0; - if ( !*(_DWORD *)(v10 + 12) ) + if ( !*(_DWORD *)(v17[0] + 12) ) { - v8 = *(_DWORD **)(v10 + 8); + v8 = *(_DWORD **)(v17[0] + 8); if ( *v8 == 39 ) { v9 = v8[2]; @@ -33889,7 +32841,14 @@ int __usercall d_parmlist@(_DWORD *a1@) } return result; } -// 4458B0: using guessed type int d_type(void); +// 446401: variable 'v10' is possibly undefined +// 446401: variable 'v11' is possibly undefined +// 446401: variable 'v12' is possibly undefined +// 446401: variable 'v13' is possibly undefined +// 446401: variable 'v14' is possibly undefined +// 446401: variable 'v15' is possibly undefined +// 446401: variable 'v16' is possibly undefined +// 446380: using guessed type int var_20[8]; //----- (00446450) -------------------------------------------------------- int **__usercall d_cv_qualifiers@(_DWORD *a1@, int **a2@, int a3@) @@ -33899,7 +32858,7 @@ int **__usercall d_cv_qualifiers@(_DWORD *a1@, int **a2@, int a3@ char i; // di char v7; // al int v8; // edi - int v9; // eax + _DWORD *v9; // eax _BYTE *v10; // edx int v11; // edx _DWORD *comp; // eax @@ -33956,7 +32915,7 @@ int **__usercall d_cv_qualifiers@(_DWORD *a1@, int **a2@, int a3@ { v8 = a1[12]; a1[12] = 1; - v9 = d_expression_1(); + v9 = d_expression_1(a1); a1[12] = v8; if ( !v9 ) return 0; @@ -33977,7 +32936,7 @@ int **__usercall d_cv_qualifiers@(_DWORD *a1@, int **a2@, int a3@ if ( v7 != 119 ) return 0; a1[11] += 6; - v9 = d_parmlist(a1); + v9 = (_DWORD *)d_parmlist(a1); if ( !v9 ) return 0; v16 = (_BYTE *)a1[3]; @@ -33988,7 +32947,7 @@ int **__usercall d_cv_qualifiers@(_DWORD *a1@, int **a2@, int a3@ } break; } - comp = d_make_comp(a1, v11, 0, v9); + comp = d_make_comp(a1, v11, 0, (int)v9); *v3 = comp; if ( !comp ) return 0; @@ -34025,40 +32984,9 @@ LABEL_34: } return v3; } -// 4444F0: using guessed type int d_expression_1(void); //----- (00446670) -------------------------------------------------------- -_DWORD *__usercall d_bare_function_type@(_DWORD *a1@, int a2@) -{ - _BYTE *v3; // eax - int v4; // esi - int v5; // eax - - v3 = (_BYTE *)a1[3]; - if ( *v3 == 74 ) - { - a1[3] = v3 + 1; - goto LABEL_3; - } - if ( a2 ) - { -LABEL_3: - v4 = d_type(); - if ( v4 ) - { - v5 = d_parmlist(a1); - if ( v5 ) - return d_make_comp(a1, 41, v4, v5); - } - return 0; - } - v4 = 0; - v5 = d_parmlist(a1); - if ( v5 ) - return d_make_comp(a1, 41, v4, v5); - return 0; -} -// 4458B0: using guessed type int d_type(void); +#error "446685: call analysis failed (funcsize=40)" //----- (004466E0) -------------------------------------------------------- _DWORD *__usercall d_function_type@(int a1@) @@ -34140,6 +33068,17 @@ _DWORD *__usercall d_unqualified_name@(_DWORD *a1@) int v30; // eax char *v31; // eax int v32; // eax + int v33; // [esp+0h] [ebp-2Ch] + int v34; // [esp+4h] [ebp-28h] + int v35; // [esp+8h] [ebp-24h] + int v36; // [esp+Ch] [ebp-20h] + int v37; // [esp+10h] [ebp-1Ch] + int v38; // [esp+14h] [ebp-18h] + int v39; // [esp+18h] [ebp-14h] + int v40; // [esp+1Ch] [ebp-10h] + int v41; // [esp+20h] [ebp-Ch] + int v42; // [esp+24h] [ebp-8h] + int v43; // [esp+28h] [ebp-4h] v2 = (char *)a1[3]; v3 = *v2; @@ -34250,7 +33189,7 @@ LABEL_7: } v28 = v32 - 48; a1[3] = v2 + 3; - d_type(); + d_type((int)a1, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43); v17 = (_DWORD *)a1[10]; } else @@ -34383,10 +33322,20 @@ LABEL_6: } return 0; } -// 4458B0: using guessed type int d_type(void); +// 446B48: variable 'v33' is possibly undefined +// 446B48: variable 'v34' is possibly undefined +// 446B48: variable 'v35' is possibly undefined +// 446B48: variable 'v36' is possibly undefined +// 446B48: variable 'v37' is possibly undefined +// 446B48: variable 'v38' is possibly undefined +// 446B48: variable 'v39' is possibly undefined +// 446B48: variable 'v40' is possibly undefined +// 446B48: variable 'v41' is possibly undefined +// 446B48: variable 'v42' is possibly undefined +// 446B48: variable 'v43' is possibly undefined //----- (00446B80) -------------------------------------------------------- -_DWORD *__usercall d_expr_primary@(_DWORD *a1@) +unsigned int *__usercall d_expr_primary@(_DWORD *a1@) { _BYTE *v2; // eax _BYTE *v3; // edx @@ -34397,7 +33346,7 @@ _DWORD *__usercall d_expr_primary@(_DWORD *a1@) char v8; // cl char *v9; // edx char *v10; // esi - _DWORD *result; // eax + unsigned int *result; // eax int v12; // esi int v13; // ecx _DWORD *v14; // edx @@ -34432,7 +33381,7 @@ _DWORD *__usercall d_expr_primary@(_DWORD *a1@) } LABEL_13: a1[3] = v3 + 1; - result = (_DWORD *)d_encoding(v4, 0); + result = d_encoding((int)a1, 0, v4); v3 = (_BYTE *)a1[3]; LOBYTE(v4) = *v3; goto LABEL_14; @@ -34507,13 +33456,12 @@ LABEL_14: // 446BAB: variable 'v24' is possibly undefined // 446BAB: variable 'v25' is possibly undefined // 446BAB: variable 'v26' is possibly undefined -// 444CD0: using guessed type int __fastcall d_encoding(_DWORD, _DWORD); //----- (00446CD0) -------------------------------------------------------- int __usercall d_print_comp@(int result@, int a2@, int *a3@) { int v3; // ebx - int v4; // ebp + int *v4; // ebp int v5; // edx int v6; // edi int v7; // edi @@ -34530,27 +33478,27 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v18; // eax int v19; // eax _DWORD *v20; // eax - int v21; // ecx + int *v21; // ecx int v22; // eax int **v23; // esi int **v24; // eax int v25; // edx int v26; // eax int v27; // eax - int *v28; // esi - _DWORD *v29; // ecx + int v28; // esi + int *v29; // ecx unsigned int v30; // esi int v31; // eax int v32; // eax int v33; // eax - int v34; // ecx + int *v34; // ecx unsigned int v35; // esi const char *v36; // edi char i13; // dl unsigned int v38; // eax int v39; // eax int v40; // eax - int v41; // ecx + int *v41; // ecx int v42; // edi int v43; // eax _DWORD *v44; // esi @@ -34562,7 +33510,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) unsigned int v50; // edx char *v51; // ecx char *v52; // esi - _DWORD *v53; // ecx + int *v53; // ecx int v54; // esi int v55; // edi char *v56; // esi @@ -34573,7 +33521,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v61; // eax int **v62; // esi int v63; // edi - int v64; // ecx + int *v64; // ecx int v65; // ecx int v66; // eax int v67; // edx @@ -34597,8 +33545,8 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) char i15; // dl int v86; // ecx int v87; // eax - int v88; // ecx - int v89; // esi + int *v88; // ecx + int *v89; // esi int v90; // eax int v91; // eax int i24; // eax @@ -34767,7 +33715,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) char *v255; // esi int v256; // edx int v257; // edx - _DWORD *v258; // ecx + int *v258; // ecx char *v259; // kr0C_4 char *v260; // esi int v261; // eax @@ -34816,7 +33764,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v304; // ecx char v305; // dl int v306; // eax - int v307; // ecx + int *v307; // ecx const char *v308; // esi int v309; // eax char v310; // dl @@ -34832,7 +33780,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v320; // eax int v321; // eax int v322; // edx - _DWORD *v323; // ecx + int v323; // ecx int v324; // eax const char *v325; // esi int v326; // eax @@ -34853,7 +33801,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v341; // eax int v342; // edi int v343; // eax - _DWORD *v344; // eax + int *v344; // eax _DWORD *v345; // esi int v346; // eax int v347; // edi @@ -34864,7 +33812,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) char v352; // dl int v353; // eax unsigned int v354; // esi - unsigned int v355; // edx + int v355; // edx int v356; // ecx int v357; // edx char v358; // al @@ -34903,7 +33851,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v391; // eax int v392; // eax int v393; // eax - _DWORD *v394; // eax + int *v394; // eax int v395; // eax const char *v396; // esi int v397; // ecx @@ -34933,7 +33881,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v421; // eax bool v422; // zf int v423; // eax - int v424; // ecx + int *v424; // ecx int v425; // eax char v426; // al int v427; // eax @@ -34956,20 +33904,20 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v444; // ecx char v445; // dl int v446; // eax - _DWORD *v447; // eax + int **v447; // eax int v448; // edi int v449; // edx int *v450; // edx int v451; // edi int v452; // edx - _DWORD *v453; // eax + int *v453; // eax int v454; // edx int v455; // eax int v456; // edi int v457; // eax - _DWORD *v458; // esi + int *v458; // esi int v459; // eax - _DWORD *v460; // edi + int *v460; // edi char *v461; // esi unsigned int v462; // kr08_4 int v463; // edx @@ -34987,7 +33935,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v475; // eax int v476; // eax _DWORD *v477; // esi - _DWORD *v478; // eax + int **v478; // eax int *i31; // edi int v480; // eax int v481; // edx @@ -35084,11 +34032,11 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) char *v573; // [esp+1Ch] [ebp-80h] char v574; // [esp+1Ch] [ebp-80h] char v575; // [esp+1Ch] [ebp-80h] - char *v576; // [esp+1Ch] [ebp-80h] + int *v576; // [esp+1Ch] [ebp-80h] char v577; // [esp+1Ch] [ebp-80h] char *v578; // [esp+1Ch] [ebp-80h] - unsigned int v579; // [esp+20h] [ebp-7Ch] - _DWORD *v580; // [esp+20h] [ebp-7Ch] + int v579; // [esp+20h] [ebp-7Ch] + int *v580; // [esp+20h] [ebp-7Ch] int v581; // [esp+20h] [ebp-7Ch] int v582; // [esp+20h] [ebp-7Ch] unsigned int *v583; // [esp+20h] [ebp-7Ch] @@ -35096,7 +34044,7 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) int v585; // [esp+20h] [ebp-7Ch] int v586; // [esp+24h] [ebp-78h] _DWORD *v587; // [esp+24h] [ebp-78h] - int v588; // [esp+24h] [ebp-78h] + int *v588; // [esp+24h] [ebp-78h] int v589; // [esp+24h] [ebp-78h] int v590; // [esp+28h] [ebp-74h] int v591; // [esp+28h] [ebp-74h] @@ -35105,13 +34053,13 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) char *v594; // [esp+34h] [ebp-68h] int v595[2]; // [esp+38h] [ebp-64h] BYREF char Buffer[4]; // [esp+40h] [ebp-5Ch] BYREF - _DWORD *v597; // [esp+44h] [ebp-58h] + int *v597; // [esp+44h] [ebp-58h] int v598; // [esp+48h] [ebp-54h] int v599; // [esp+4Ch] [ebp-50h] char v600; // [esp+50h] [ebp-4Ch] BYREF v3 = result; - if ( !a3 || (result = a3[1], v4 = (int)a3, result > 1) || (v5 = *(_DWORD *)(v3 + 284), v5 > 1024) ) + if ( !a3 || (result = a3[1], v4 = a3, result > 1) || (v5 = *(_DWORD *)(v3 + 284), v5 > 1024) ) { *(_DWORD *)(v3 + 280) = 1; return result; @@ -35127,14 +34075,14 @@ int __usercall d_print_comp@(int result@, int a2@, int *a3@) if ( v7 ) goto LABEL_21; v8 = *a3; - v579 = *(_DWORD *)v4; - switch ( *(_DWORD *)v4 ) + v579 = *v4; + switch ( *v4 ) { case 0: - v215 = *(char **)(v4 + 8); + v215 = (char *)v4[2]; if ( (a2 & 4) != 0 ) { - v354 = (unsigned int)&v215[*(_DWORD *)(v4 + 12)]; + v354 = (unsigned int)&v215[v4[3]]; if ( v354 <= (unsigned int)v215 ) goto LABEL_21; v570 = (char *)v4; @@ -35200,10 +34148,10 @@ LABEL_502: LABEL_505: if ( v354 <= (unsigned int)++v215 ) { - v4 = (int)v570; + v4 = (int *)v570; v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } goto LABEL_506; @@ -35220,10 +34168,10 @@ LABEL_505: goto LABEL_502; } } - v216 = *(_DWORD *)(v4 + 12); + v216 = v4[3]; if ( v216 ) { - v217 = *(char **)(v4 + 8); + v217 = (char *)v4[2]; v218 = *(_DWORD *)(v3 + 256); v219 = &v215[v216]; do @@ -35252,12 +34200,12 @@ LABEL_505: while ( v219 != v217 ); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } goto LABEL_21; case 1: case 2: - d_print_comp(*(_DWORD *)(v4 + 8), a2); + d_print_comp(v3, a2, (int *)v4[2]); if ( (a2 & 4) != 0 ) { if ( *(_DWORD *)(v3 + 256) == 255 ) @@ -35302,8 +34250,8 @@ LABEL_505: } while ( v396 != "" ); } - v28 = *(int **)(v4 + 12); - if ( *v28 == 71 ) + v28 = v4[3]; + if ( *(_DWORD *)v28 == 71 ) { v431 = *(_DWORD *)(v3 + 256); v432 = "{default arg#"; @@ -35331,7 +34279,7 @@ LABEL_505: *(_BYTE *)(v3 + 260) = v434; } while ( v432 != "" ); - sprintf(Buffer, "%d", v28[3] + 1); + sprintf(Buffer, "%d", *(_DWORD *)(v28 + 12) + 1); v436 = strlen(Buffer) + 1; if ( v436 != 1 ) { @@ -35388,14 +34336,14 @@ LABEL_505: *(_BYTE *)(v3 + 260) = v445; } while ( v443 != "" ); - v28 = (int *)v28[2]; + v28 = *(_DWORD *)(v28 + 8); } goto LABEL_604; case 3: v247 = *(_DWORD *)(v3 + 276); *(_DWORD *)(v3 + 276) = 0; v590 = v247; - v583 = *(unsigned int **)(v4 + 8); + v583 = (unsigned int *)v4[2]; if ( !v583 ) goto LABEL_684; v248 = Buffer; @@ -35426,7 +34374,7 @@ LABEL_337: v595[1] = (int)v583; } LABEL_339: - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); if ( *v583 == 4 ) *(_DWORD *)(v3 + 272) = v595[0]; v255 = &Buffer[16 * v589]; @@ -35444,7 +34392,7 @@ LABEL_339: v256 = 0; } *(_DWORD *)(v3 + 256) = v256 + 1; - v258 = (_DWORD *)*((_DWORD *)v255 - 3); + v258 = (int *)*((_DWORD *)v255 - 3); *(_BYTE *)(v3 + v256) = 32; *(_BYTE *)(v3 + 260) = 32; d_print_mod(v3, a2, v258); @@ -35519,20 +34467,20 @@ LABEL_485: LABEL_348: v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; case 4: v238 = *(_DWORD *)(v3 + 328); v239 = *(_DWORD *)(v3 + 276); *(_DWORD *)(v3 + 328) = v4; *(_DWORD *)(v3 + 276) = 0; - v240 = *(char **)(v4 + 8); + v240 = (char *)v4[2]; if ( (a2 & 4) == 0 || *(_DWORD *)v240 || *((_DWORD *)v240 + 3) != 6 - || (v578 = *(char **)(v4 + 8), v482 = strncmp(*((const char **)v240 + 2), "JArray", 6u), v240 = v578, v482) ) + || (v578 = (char *)v4[2], v482 = strncmp(*((const char **)v240 + 2), "JArray", 6u), v240 = v578, v482) ) { - d_print_comp(v240, a2); + d_print_comp(v3, a2, (int *)v240); if ( *(_BYTE *)(v3 + 260) == 60 ) { if ( *(_DWORD *)(v3 + 256) == 255 ) @@ -35560,7 +34508,7 @@ LABEL_348: *(_DWORD *)(v3 + 256) = v241 + 1; *(_BYTE *)(v3 + v241) = 60; *(_BYTE *)(v3 + 260) = 60; - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); if ( *(_BYTE *)(v3 + 260) == 62 ) { if ( *(_DWORD *)(v3 + 256) == 255 ) @@ -35591,7 +34539,7 @@ LABEL_348: } else { - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); d_append_buffer(v3, "[]", 2); } v245 = (int)v594; @@ -35600,7 +34548,7 @@ LABEL_348: *(_DWORD *)(v3 + 328) = v238; v536 = (char *)v245; v5 = v246 - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; case 5: if ( *(_DWORD *)(v3 + 288) ) @@ -35631,7 +34579,7 @@ LABEL_348: if ( v234 == "" ) break; } - sprintf(Buffer, "%d", *(_DWORD *)(v4 + 8) + 1); + sprintf(Buffer, "%d", v4[2] + 1); v348 = &Buffer[strlen(Buffer)]; if ( v348 != Buffer ) { @@ -35664,10 +34612,10 @@ LABEL_348: } v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } - v344 = d_lookup_template_argument_isra_0(v3, (int *)(v4 + 8)); + v344 = d_lookup_template_argument_isra_0(v3, v4 + 2); if ( v344 ) { if ( *v344 != 47 @@ -35676,19 +34624,19 @@ LABEL_348: { v345 = *(_DWORD **)(v3 + 272); *(_DWORD *)(v3 + 272) = *v345; - d_print_comp(v344, a2); + d_print_comp(v3, a2, v344); v346 = (int)v594; v347 = *(_DWORD *)(v3 + 284); *(_DWORD *)(v3 + 272) = v345; v536 = (char *)v346; v5 = v347 - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } } goto LABEL_679; case 6: - v560 = *(char **)(v4 + 8); + v560 = (char *)v4[2]; v208 = *(_DWORD *)(v3 + 256); if ( v560 ) { @@ -35762,7 +34710,7 @@ LABEL_348: *(_BYTE *)(v3 + 260) = 125; v536 = (char *)v374; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } else { @@ -35793,7 +34741,7 @@ LABEL_348: } v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } goto LABEL_21; case 7: @@ -35811,10 +34759,10 @@ LABEL_348: *(_DWORD *)(v3 + 256) = v213 + 1; *(_BYTE *)(v3 + v213) = 126; *(_BYTE *)(v3 + 260) = 126; - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; case 9: v203 = *(_DWORD *)(v3 + 256); @@ -35843,7 +34791,7 @@ LABEL_348: break; } goto LABEL_427; - case 0xA: + case 10: v198 = *(_DWORD *)(v3 + 256); v199 = "TT for "; for ( n = 86; ; n = *v199++ ) @@ -35870,7 +34818,7 @@ LABEL_348: break; } goto LABEL_427; - case 0xB: + case 11: v188 = *(_DWORD *)(v3 + 256); v189 = "onstruction vtable for "; for ( ii = 99; ; ii = *v189++ ) @@ -35897,7 +34845,7 @@ LABEL_348: break; } v325 = "-in-"; - d_print_comp(*(_DWORD *)(v4 + 8), a2); + d_print_comp(v3, a2, (int *)v4[2]); v326 = *(_DWORD *)(v3 + 256); for ( jj = 45; ; jj = *v325 ) { @@ -35924,7 +34872,7 @@ LABEL_348: break; } goto LABEL_47; - case 0xC: + case 12: v193 = *(_DWORD *)(v3 + 256); v194 = "ypeinfo for "; for ( kk = 116; ; kk = *v194++ ) @@ -35951,7 +34899,7 @@ LABEL_348: break; } goto LABEL_427; - case 0xD: + case 13: v183 = *(_DWORD *)(v3 + 256); v184 = "ypeinfo name for "; for ( mm = 116; ; mm = *v184++ ) @@ -35978,7 +34926,7 @@ LABEL_348: break; } goto LABEL_427; - case 0xE: + case 14: v178 = *(_DWORD *)(v3 + 256); v179 = "ypeinfo fn for "; for ( nn = 116; ; nn = *v179++ ) @@ -36005,7 +34953,7 @@ LABEL_348: break; } goto LABEL_427; - case 0xF: + case 15: v168 = *(_DWORD *)(v3 + 256); v169 = "on-virtual thunk to "; for ( i1 = 110; ; i1 = *v169++ ) @@ -36032,7 +34980,7 @@ LABEL_348: break; } goto LABEL_427; - case 0x10: + case 16: v173 = *(_DWORD *)(v3 + 256); v174 = "irtual thunk to "; for ( i2 = 118; ; i2 = *v174++ ) @@ -36059,7 +35007,7 @@ LABEL_348: break; } goto LABEL_427; - case 0x11: + case 17: v163 = *(_DWORD *)(v3 + 256); v164 = "ovariant return thunk to "; for ( i3 = 99; ; i3 = *v164++ ) @@ -36086,7 +35034,7 @@ LABEL_348: break; } goto LABEL_427; - case 0x12: + case 18: v158 = *(_DWORD *)(v3 + 256); v159 = "ava Class for "; for ( i4 = 106; ; i4 = *v159++ ) @@ -36113,7 +35061,7 @@ LABEL_348: break; } goto LABEL_427; - case 0x13: + case 19: v148 = *(_DWORD *)(v3 + 256); v149 = "uard variable for "; for ( i5 = 103; ; i5 = *v149++ ) @@ -36140,7 +35088,7 @@ LABEL_348: break; } goto LABEL_427; - case 0x14: + case 20: v153 = *(_DWORD *)(v3 + 256); v154 = "LS init function for "; for ( i6 = 84; ; i6 = *v154++ ) @@ -36167,7 +35115,7 @@ LABEL_348: break; } goto LABEL_427; - case 0x15: + case 21: v143 = *(_DWORD *)(v3 + 256); v144 = "LS wrapper function for "; for ( i7 = 84; ; i7 = *v144++ ) @@ -36194,7 +35142,7 @@ LABEL_348: break; } goto LABEL_427; - case 0x16: + case 22: v138 = *(_DWORD *)(v3 + 256); v139 = "eference temporary #"; for ( i8 = 114; ; i8 = *v139++ ) @@ -36221,7 +35169,7 @@ LABEL_348: break; } v330 = " for "; - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); v331 = *(_DWORD *)(v3 + 256); for ( i9 = 32; ; i9 = *v330 ) { @@ -36248,7 +35196,7 @@ LABEL_348: break; } goto LABEL_427; - case 0x17: + case 23: v133 = *(_DWORD *)(v3 + 256); v134 = "idden alias for "; for ( i10 = 104; ; i10 = *v134++ ) @@ -36275,9 +35223,9 @@ LABEL_348: break; } goto LABEL_427; - case 0x18: - v126 = *(_DWORD *)(v4 + 12); - v127 = *(char **)(v4 + 8); + case 24: + v126 = v4[3]; + v127 = (char *)v4[2]; if ( v126 ) { v128 = *(_DWORD *)(v3 + 256); @@ -36308,12 +35256,12 @@ LABEL_348: while ( v129 != v127 ); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } goto LABEL_21; - case 0x19: - case 0x1A: - case 0x1B: + case 25: + case 26: + case 27: v23 = *(int ***)(v3 + 276); v24 = v23; if ( !v23 ) @@ -36328,7 +35276,7 @@ LABEL_348: v23 = *(int ***)(v3 + 276); v7 = 0; LABEL_633: - v580 = (_DWORD *)v4; + v580 = v4; goto LABEL_70; } if ( v579 != v25 ) @@ -36337,7 +35285,7 @@ LABEL_33: v24 = (int **)*v24; if ( !v24 ) { - v580 = (_DWORD *)v4; + v580 = v4; v23 = *(int ***)(v3 + 276); goto LABEL_70; } @@ -36346,43 +35294,43 @@ LABEL_33: break; } LABEL_427: - d_print_comp(*(_DWORD *)(v4 + 8), a2); + d_print_comp(v3, a2, (int *)v4[2]); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x20: - case 0x21: - case 0x22: - case 0x25: - case 0x26: - case 0x4D: - case 0x4F: - case 0x50: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 37: + case 38: + case 77: + case 79: + case 80: v21 = 0; goto LABEL_23; - case 0x23: - case 0x24: - v580 = *(_DWORD **)(v4 + 8); + case 35: + case 36: + v580 = (int *)v4[2]; v43 = *v580; if ( *(_DWORD *)(v3 + 288) ) goto LABEL_65; v7 = 0; if ( v43 != 5 ) goto LABEL_65; - v447 = *(_DWORD **)(v3 + 304); + v447 = *(int ***)(v3 + 304); v448 = *(_DWORD *)(v3 + 308); if ( v448 <= 0 ) goto LABEL_706; v592 = v5; v449 = 0; break; - case 0x27: - v54 = *(_DWORD *)(v4 + 8); + case 39: + v54 = v4[2]; if ( (a2 & 4) != 0 ) { v379 = *(_DWORD *)(v54 + 12); @@ -36417,7 +35365,7 @@ LABEL_427: while ( v382 != v380 ); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } } else @@ -36454,34 +35402,34 @@ LABEL_427: while ( v58 != v56 ); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } } goto LABEL_21; - case 0x28: + case 40: goto LABEL_427; - case 0x29: + case 41: v62 = *(int ***)(v3 + 276); v63 = a2 & 0xFFFFFF9F; if ( (a2 & 0x20) == 0 ) { - v64 = *(_DWORD *)(v4 + 8); + v64 = (int *)v4[2]; if ( v64 && (a2 & 0x40) == 0 ) { *(_DWORD *)Buffer = *(_DWORD *)(v3 + 276); *(_DWORD *)(v3 + 276) = Buffer; v428 = *(_DWORD *)(v3 + 272); - v597 = (_DWORD *)v4; + v597 = v4; v599 = v428; v598 = 0; - d_print_comp(v64, a2 & 0xFFFFFF9F); + d_print_comp(v3, a2 & 0xFFFFFF9F, v64); v422 = v598 == 0; *(_DWORD *)(v3 + 276) = *(_DWORD *)Buffer; if ( !v422 ) { v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } if ( *(_DWORD *)(v3 + 256) == 255 ) @@ -36498,23 +35446,23 @@ LABEL_427: v62 = *(int ***)(v3 + 276); *(_BYTE *)(v3 + 260) = 32; } - d_print_function_type_isra_0(v3, v63, (int *)(v4 + 12), v62); + d_print_function_type_isra_0(v3, v63, (int **)v4 + 3, v62); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } - d_print_function_type_isra_0(v3, a2 & 0xFFFFFF9F, (int *)(v4 + 12), *(int ***)(v3 + 276)); - v424 = *(_DWORD *)(v4 + 8); + d_print_function_type_isra_0(v3, a2 & 0xFFFFFF9F, (int **)v4 + 3, *(int ***)(v3 + 276)); + v424 = (int *)v4[2]; if ( v424 ) - d_print_comp(v424, v63); + d_print_comp(v3, v63, v424); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x2A: + case 42: v44 = *(_DWORD **)(v3 + 276); - v597 = (_DWORD *)v4; + v597 = v4; v45 = 1; v46 = v44; v587 = v44; @@ -36537,7 +35485,7 @@ LABEL_427: LABEL_84: v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } v50 = v45++; @@ -36556,7 +35504,7 @@ LABEL_84: if ( !v49 ) break; } - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); *(_DWORD *)(v3 + 276) = v587; if ( v598 ) goto LABEL_84; @@ -36565,7 +35513,7 @@ LABEL_84: v52 = &Buffer[16 * v45]; do { - v53 = (_DWORD *)*((_DWORD *)v52 - 3); + v53 = (int *)*((_DWORD *)v52 - 3); v52 -= 16; d_print_mod(v3, a2, v53); } @@ -36574,34 +35522,34 @@ LABEL_84: } else { - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); v422 = v598 == 0; *(_DWORD *)(v3 + 276) = 0; if ( !v422 ) goto LABEL_84; } - d_print_array_type_isra_0(v3, a2, (int *)(v4 + 8), *(int ***)(v3 + 276)); + d_print_array_type_isra_0(v3, a2, (int **)v4 + 2, *(int ***)(v3 + 276)); goto LABEL_84; - case 0x2B: - case 0x2D: + case 43: + case 45: v40 = *(_DWORD *)(v3 + 276); - v41 = *(_DWORD *)(v4 + 12); - v597 = (_DWORD *)v4; + v41 = (int *)v4[3]; + v597 = v4; v598 = 0; *(_DWORD *)Buffer = v40; *(_DWORD *)(v3 + 276) = Buffer; v599 = *(_DWORD *)(v3 + 272); - d_print_comp(v41, a2); + d_print_comp(v3, a2, v41); if ( !v598 ) - d_print_mod(v3, a2, (_DWORD *)v4); + d_print_mod(v3, a2, v4); v42 = *(_DWORD *)(v3 + 284); *(_DWORD *)(v3 + 276) = *(_DWORD *)Buffer; v5 = v42 - 1; v536 = v594; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x2C: - if ( *(_WORD *)(v4 + 14) ) + case 44: + if ( *((_WORD *)v4 + 7) ) { v400 = *(_DWORD *)(v3 + 256); v401 = "_Sat "; @@ -36630,14 +35578,14 @@ LABEL_84: } while ( v401 != "" ); } - v65 = *(_DWORD *)(v4 + 8); + v65 = v4[2]; if ( *(void ****)(v65 + 8) == &off_532320 ) { v68 = *(_DWORD *)(v3 + 256); } else { - d_print_comp(v65, a2); + d_print_comp(v3, a2, (int *)v65); if ( *(_DWORD *)(v3 + 256) == 255 ) { v66 = *(_DWORD *)(v3 + 268); @@ -36652,7 +35600,7 @@ LABEL_84: *(_BYTE *)(v3 + v67) = 32; *(_BYTE *)(v3 + 260) = 32; } - if ( *(_WORD *)(v4 + 12) ) + if ( *((_WORD *)v4 + 6) ) { v375 = "Accum"; for ( i11 = 95; ; i11 = *v375++ ) @@ -36680,7 +35628,7 @@ LABEL_84: } v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } else { @@ -36710,15 +35658,15 @@ LABEL_84: } v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } goto LABEL_21; - case 0x2E: - case 0x2F: - v34 = *(_DWORD *)(v4 + 8); + case 46: + case 47: + v34 = (int *)v4[2]; if ( v34 ) - d_print_comp(v34, a2); - if ( *(_DWORD *)(v4 + 12) ) + d_print_comp(v3, a2, v34); + if ( v4[3] ) { v35 = *(_DWORD *)(v3 + 256); if ( v35 > 0xFD ) @@ -36756,9 +35704,9 @@ LABEL_84: break; } v342 = *(_DWORD *)(v3 + 296); - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); v536 = v594; - v343 = *(_DWORD *)(v4 + 4); + v343 = v4[1]; if ( v342 == *(_DWORD *)(v3 + 296) ) { result = v343 - 1; @@ -36776,10 +35724,10 @@ LABEL_84: { v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } goto LABEL_21; - case 0x30: + case 48: v94 = *(_DWORD *)(v3 + 256); v95 = "emplate parameter object for "; for ( i14 = 116; ; i14 = *v95++ ) @@ -36806,11 +35754,11 @@ LABEL_84: break; } goto LABEL_427; - case 0x31: - v88 = *(_DWORD *)(v4 + 8); - v89 = *(_DWORD *)(v4 + 12); + case 49: + v88 = (int *)v4[2]; + v89 = (int *)v4[3]; if ( v88 ) - d_print_comp(v88, a2); + d_print_comp(v3, a2, v88); v90 = *(_DWORD *)(v3 + 256); if ( v90 == 255 ) { @@ -36823,7 +35771,7 @@ LABEL_84: *(_DWORD *)(v3 + 256) = v90 + 1; *(_BYTE *)(v3 + v90) = 123; *(_BYTE *)(v3 + 260) = 123; - d_print_comp(v89, a2); + d_print_comp(v3, a2, v89); i24 = *(_DWORD *)(v3 + 256); if ( i24 == 255 ) { @@ -36834,10 +35782,10 @@ LABEL_84: i24 = 0; } goto LABEL_479; - case 0x32: + case 50: v99 = "perator"; v100 = 111; - v541 = *(char **)(v4 + 8); + v541 = (char *)v4[2]; v581 = *((_DWORD *)v541 + 2); v101 = *(_DWORD *)(v3 + 256); while ( 1 ) @@ -36914,16 +35862,16 @@ LABEL_84: while ( v303 != v298 ); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } else { v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } goto LABEL_21; - case 0x33: + case 51: v83 = *(_DWORD *)(v3 + 256); v84 = "perator "; for ( i15 = 111; ; i15 = *v84++ ) @@ -36950,7 +35898,7 @@ LABEL_84: break; } goto LABEL_47; - case 0x35: + case 53: v78 = *(_DWORD *)(v3 + 256); v79 = "perator "; for ( i16 = 111; ; i16 = *v79++ ) @@ -36979,14 +35927,14 @@ LABEL_84: if ( *(_DWORD *)(v3 + 328) ) { v322 = *(_DWORD *)(v3 + 272); - v597 = *(_DWORD **)(v3 + 328); + v597 = *(int **)(v3 + 328); *(_DWORD *)Buffer = v322; *(_DWORD *)(v3 + 272) = Buffer; } - v323 = *(_DWORD **)(v4 + 8); - if ( *v323 == 4 ) + v323 = v4[2]; + if ( *(_DWORD *)v323 == 4 ) { - d_print_comp(v323[2], a2); + d_print_comp(v3, a2, *(int **)(v323 + 8)); if ( *(_DWORD *)(v3 + 328) ) *(_DWORD *)(v3 + 272) = *(_DWORD *)Buffer; if ( *(_BYTE *)(v3 + 260) == 60 ) @@ -37016,7 +35964,7 @@ LABEL_84: *(_DWORD *)(v3 + 256) = v387 + 1; *(_BYTE *)(v3 + v387) = 60; *(_BYTE *)(v3 + 260) = 60; - d_print_comp(*(_DWORD *)(*(_DWORD *)(v4 + 8) + 12), a2); + d_print_comp(v3, a2, *(int **)(v4[2] + 12)); if ( *(_BYTE *)(v3 + 260) == 62 ) { if ( *(_DWORD *)(v3 + 256) == 255 ) @@ -37047,45 +35995,45 @@ LABEL_84: } else { - d_print_comp(v323, a2); + d_print_comp(v3, a2, (int *)v323); if ( *(_DWORD *)(v3 + 328) ) *(_DWORD *)(v3 + 272) = *(_DWORD *)Buffer; } v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x36: - d_print_expr_op(v3, a2, *(_DWORD **)(v4 + 8)); + case 54: + d_print_expr_op(v3, a2, (int *)v4[2]); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x37: - v73 = *(_DWORD *)(v4 + 8); - v28 = *(int **)(v4 + 12); + case 55: + v73 = v4[2]; + v28 = v4[3]; if ( *(_DWORD *)v73 == 50 ) { v573 = **(char ***)(v73 + 8); v405 = strcmp(v573, "ad"); - v406 = *v28; + v406 = *(_DWORD *)v28; if ( !v405 && v406 == 3 ) { - if ( *(_DWORD *)v28[2] == 1 && *(_DWORD *)v28[3] == 41 ) - v28 = (int *)v28[2]; + if ( **(_DWORD **)(v28 + 8) == 1 && **(_DWORD **)(v28 + 12) == 41 ) + v28 = *(_DWORD *)(v28 + 8); } else if ( v406 == 57 ) { - d_print_subexpr(v3, a2, (_DWORD *)v28[2]); - d_print_expr_op(v3, a2, (_DWORD *)v73); + d_print_subexpr(v3, a2, *(int **)(v28 + 8)); + d_print_expr_op(v3, a2, (int *)v73); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } if ( !strcmp(v573, "sZ") ) { - pack = d_find_pack(v3, v28, v407); + pack = d_find_pack(v3, (_DWORD *)v28, v407); for ( i17 = 0; pack; ++i17 ) { if ( *pack != 47 ) @@ -37120,7 +36068,7 @@ LABEL_84: } v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } if ( *v573 == 115 && v573[1] == 80 ) @@ -37131,9 +36079,9 @@ LABEL_84: v409 = 0; do { - if ( *v28 != 47 ) + if ( *(_DWORD *)v28 != 47 ) break; - v410 = v28[2]; + v410 = *(_DWORD *)(v28 + 8); if ( !v410 ) break; if ( *(_DWORD *)v410 == 75 ) @@ -37154,7 +36102,7 @@ LABEL_84: { ++v409; } - v28 = (int *)v28[3]; + v28 = *(_DWORD *)(v28 + 12); } while ( v28 ); v461 = Buffer; @@ -37187,18 +36135,18 @@ LABEL_84: } v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } } - d_print_expr_op(v3, a2, (_DWORD *)v73); + d_print_expr_op(v3, a2, (int *)v73); if ( *v573 == 103 && v573[1] == 115 && !v573[2] ) { LABEL_604: - d_print_comp(v28, a2); + d_print_comp(v3, a2, (int *)v28); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } if ( !strcmp(v573, "st") ) @@ -37215,7 +36163,7 @@ LABEL_604: *(_DWORD *)(v3 + 256) = v414 + 1; *(_BYTE *)(v3 + v414) = 40; *(_BYTE *)(v3 + 260) = 40; - d_print_comp(v28, a2); + d_print_comp(v3, a2, (int *)v28); if ( *(_DWORD *)(v3 + 256) == 255 ) { v415 = *(_DWORD *)(v3 + 268); @@ -37232,7 +36180,7 @@ LABEL_737: *(_BYTE *)(v3 + 260) = 41; v536 = (char *)v493; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } } @@ -37250,7 +36198,7 @@ LABEL_737: *(_DWORD *)(v3 + 256) = v75 + 1; *(_BYTE *)(v3 + v75) = 40; *(_BYTE *)(v3 + 260) = 40; - d_print_comp(*(_DWORD *)(v73 + 8), a2); + d_print_comp(v3, a2, *(int **)(v73 + 8)); if ( *(_DWORD *)(v3 + 256) == 255 ) { v76 = *(_DWORD *)(v3 + 268); @@ -37266,25 +36214,25 @@ LABEL_737: } else { - d_print_expr_op(v3, a2, (_DWORD *)v73); + d_print_expr_op(v3, a2, (int *)v73); } - d_print_subexpr(v3, a2, v28); + d_print_subexpr(v3, a2, (int *)v28); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x38: - if ( **(_DWORD **)(v4 + 12) != 57 ) + case 56: + if ( *(_DWORD *)v4[3] != 57 ) { *(_DWORD *)(v3 + 280) = 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } - v9 = *(_DWORD *)(v4 + 8); + v9 = v4[2]; v10 = **(char ***)(v9 + 8); if ( v10[1] == 99 && ((v467 = *v10, (unsigned __int8)(v467 - 99) <= 1u) || (unsigned __int8)(v467 - 114) <= 1u) ) { - d_print_expr_op(v3, a2, (_DWORD *)v9); + d_print_expr_op(v3, a2, (int *)v9); if ( *(_DWORD *)(v3 + 256) == 255 ) { v468 = *(_DWORD *)(v3 + 268); @@ -37298,7 +36246,7 @@ LABEL_737: *(_DWORD *)(v3 + 256) = v469 + 1; *(_BYTE *)(v3 + v469) = 60; *(_BYTE *)(v3 + 260) = 60; - d_print_comp(*(_DWORD *)(*(_DWORD *)(v4 + 12) + 8), a2); + d_print_comp(v3, a2, *(int **)(v4[3] + 8)); v471 = *(_DWORD *)(v3 + 256); do { @@ -37321,7 +36269,7 @@ LABEL_737: *(_BYTE *)(v3 + 260) = v472; } while ( v470 != "" ); - d_print_comp(*(_DWORD *)(*(_DWORD *)(v4 + 12) + 12), a2); + d_print_comp(v3, a2, *(int **)(v4[3] + 12)); if ( *(_DWORD *)(v3 + 256) == 255 ) { v475 = *(_DWORD *)(v3 + 268); @@ -37333,14 +36281,14 @@ LABEL_737: } else { - if ( d_maybe_print_fold_expression_isra_0(v3, a2, v9, v4 + 12) ) + if ( d_maybe_print_fold_expression_isra_0(v3, a2, v9, (int)(v4 + 3)) ) { v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } - v11 = *(_DWORD *)(v4 + 8); + v11 = v4[2]; if ( *(_DWORD *)v11 == 50 ) { v487 = *(_DWORD *)(v11 + 8); @@ -37358,22 +36306,22 @@ LABEL_737: *(_DWORD *)(v3 + 256) = v489 + 1; *(_BYTE *)(v3 + v489) = 40; *(_BYTE *)(v3 + 260) = 40; - v11 = *(_DWORD *)(v4 + 8); + v11 = v4[2]; } } v12 = strcmp(**(const char ***)(v11 + 8), "cl"); - v13 = *(_DWORD *)(*(_DWORD *)(v4 + 12) + 8); + v13 = *(_DWORD *)(v4[3] + 8); if ( !v12 && *(_DWORD *)v13 == 3 ) { if ( **(_DWORD **)(v13 + 12) != 41 ) *(_DWORD *)(v3 + 280) = 1; - d_print_subexpr(v3, a2, *(_DWORD **)(v13 + 8)); + d_print_subexpr(v3, a2, *(int **)(v13 + 8)); } else { - d_print_subexpr(v3, a2, (_DWORD *)v13); + d_print_subexpr(v3, a2, (int *)v13); } - v14 = *(_DWORD *)(v4 + 8); + v14 = v4[2]; Str1 = **(const char ***)(v14 + 8); if ( !strcmp(Str1, "ix") ) { @@ -37389,7 +36337,7 @@ LABEL_737: *(_DWORD *)(v3 + 256) = v17 + 1; *(_BYTE *)(v3 + v17) = 91; *(_BYTE *)(v3 + 260) = 91; - d_print_comp(*(_DWORD *)(*(_DWORD *)(v4 + 12) + 12), a2); + d_print_comp(v3, a2, *(int **)(v4[3] + 12)); if ( *(_DWORD *)(v3 + 256) == 255 ) { v18 = *(_DWORD *)(v3 + 268); @@ -37406,15 +36354,15 @@ LABEL_737: else { if ( strcmp(Str1, "cl") ) - d_print_expr_op(v3, a2, (_DWORD *)v14); - d_print_subexpr(v3, a2, *(_DWORD **)(*(_DWORD *)(v4 + 12) + 12)); + d_print_expr_op(v3, a2, (int *)v14); + d_print_subexpr(v3, a2, *(int **)(v4[3] + 12)); } - v20 = *(_DWORD **)(v4 + 8); + v20 = (_DWORD *)v4[2]; if ( *v20 != 50 || (v490 = v20[2], *(_DWORD *)(v490 + 8) != 1) || **(_BYTE **)(v490 + 4) != 62 ) { v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } if ( *(_DWORD *)(v3 + 256) == 255 ) @@ -37427,38 +36375,38 @@ LABEL_737: } } goto LABEL_737; - case 0x39: + case 57: *(_DWORD *)(v3 + 280) = 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x3A: - v285 = *(_DWORD *)(v4 + 12); + case 58: + v285 = v4[3]; if ( *(_DWORD *)v285 == 59 && **(_DWORD **)(v285 + 12) == 60 ) { - if ( d_maybe_print_fold_expression_isra_0(v3, a2, *(_DWORD *)(v4 + 8), v4 + 12) ) + if ( d_maybe_print_fold_expression_isra_0(v3, a2, v4[2], (int)(v4 + 3)) ) { v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } else { - v457 = *(_DWORD *)(v4 + 12); - v458 = *(_DWORD **)(v457 + 8); + v457 = v4[3]; + v458 = *(int **)(v457 + 8); v459 = *(_DWORD *)(v457 + 12); - v585 = *(_DWORD *)(v4 + 8); - v576 = *(char **)(v459 + 8); - v460 = *(_DWORD **)(v459 + 12); + v585 = v4[2]; + v576 = *(int **)(v459 + 8); + v460 = *(int **)(v459 + 12); if ( !strcmp(**(const char ***)(v585 + 8), "qu") ) { d_print_subexpr(v3, a2, v458); - d_print_expr_op(v3, a2, (_DWORD *)v585); + d_print_expr_op(v3, a2, (int *)v585); d_print_subexpr(v3, a2, v576); d_append_buffer(v3, " : ", 3); d_print_subexpr(v3, a2, v460); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } else { @@ -37479,29 +36427,29 @@ LABEL_737: *(_BYTE *)(v3 + v495) = 32; *(_BYTE *)(v3 + 260) = 32; } - d_print_comp(v576, a2); + d_print_comp(v3, a2, v576); if ( v460 ) d_print_subexpr(v3, a2, v460); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } } } else { *(_DWORD *)(v3 + 280) = 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } goto LABEL_21; - case 0x3B: - case 0x3C: + case 59: + case 60: *(_DWORD *)(v3 + 280) = 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x3D: - case 0x3E: - v29 = *(_DWORD **)(v4 + 8); + case 61: + case 62: + v29 = (int *)v4[2]; v30 = 0; if ( *v29 != 39 ) goto LABEL_42; @@ -37510,7 +36458,7 @@ LABEL_737: { if ( v30 == 7 ) { - v425 = *(_DWORD *)(v4 + 12); + v425 = v4[3]; if ( !*(_DWORD *)v425 && *(_DWORD *)(v425 + 12) == 1 && v579 == 61 ) { v426 = **(_BYTE **)(v425 + 8); @@ -37519,7 +36467,7 @@ LABEL_737: d_append_buffer(v3, "false", 5); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } if ( v426 == 49 ) @@ -37527,7 +36475,7 @@ LABEL_737: d_append_buffer(v3, "true", 4); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } } @@ -37535,7 +36483,7 @@ LABEL_737: } else if ( v30 ) { - v394 = *(_DWORD **)(v4 + 12); + v394 = (int *)v4[3]; if ( !*v394 ) { if ( v579 == 62 ) @@ -37552,9 +36500,9 @@ LABEL_737: *(_DWORD *)(v3 + 256) = v504 + 1; *(_BYTE *)(v3 + v504) = 45; *(_BYTE *)(v3 + 260) = 45; - v394 = *(_DWORD **)(v4 + 12); + v394 = (int *)v4[3]; } - d_print_comp(v394, a2); + d_print_comp(v3, a2, v394); switch ( v30 ) { case 2u: @@ -37573,7 +36521,7 @@ LABEL_737: *(_BYTE *)(v3 + 260) = 117; v536 = (char *)v510; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; break; case 3u: if ( *(_DWORD *)(v3 + 256) == 255 ) @@ -37591,30 +36539,30 @@ LABEL_737: *(_BYTE *)(v3 + 260) = 108; v536 = (char *)v507; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; break; case 4u: d_append_buffer(v3, "ul", 2); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; break; case 5u: d_append_buffer(v3, "ll", 2); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; break; case 6u: d_append_buffer(v3, (char *)&off_5314FE, 3); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; break; default: v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; break; } goto LABEL_21; @@ -37628,13 +36576,13 @@ LABEL_42: *(_BYTE *)(v3 + 255) = 0; (*(void (__cdecl **)(int, int, int))(v3 + 264))(v3, 255, v32); ++*(_DWORD *)(v3 + 296); - v29 = *(_DWORD **)(v4 + 8); + v29 = (int *)v4[2]; v31 = 0; } *(_DWORD *)(v3 + 256) = v31 + 1; *(_BYTE *)(v3 + v31) = 40; *(_BYTE *)(v3 + 260) = 40; - d_print_comp(v29, a2); + d_print_comp(v3, a2, v29); v33 = *(_DWORD *)(v3 + 256); if ( v33 == 255 ) { @@ -37644,7 +36592,7 @@ LABEL_42: ++*(_DWORD *)(v3 + 296); *(_BYTE *)v3 = 41; *(_BYTE *)(v3 + 260) = 41; - v422 = *(_DWORD *)v4 == 62; + v422 = *v4 == 62; *(_DWORD *)(v3 + 256) = 1; if ( !v422 ) goto LABEL_46; @@ -37654,7 +36602,7 @@ LABEL_42: *(_DWORD *)(v3 + 256) = v33 + 1; *(_BYTE *)(v3 + v33) = 41; *(_BYTE *)(v3 + 260) = 41; - if ( *(_DWORD *)v4 != 62 ) + if ( *v4 != 62 ) goto LABEL_46; if ( v33 == 254 ) { @@ -37684,7 +36632,7 @@ LABEL_46: *(_DWORD *)(v3 + 256) = v417 + 1; *(_BYTE *)(v3 + v417) = 91; *(_BYTE *)(v3 + 260) = 91; - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); if ( *(_DWORD *)(v3 + 256) == 255 ) { v418 = *(_DWORD *)(v3 + 268); @@ -37700,18 +36648,18 @@ LABEL_46: *(_BYTE *)(v3 + 260) = 93; v536 = (char *)v420; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } else { LABEL_47: - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } goto LABEL_21; - case 0x3F: + case 63: v286 = *(_DWORD *)(v3 + 256); v287 = "ava resource "; for ( i19 = 106; ; i19 = *v287++ ) @@ -37738,16 +36686,16 @@ LABEL_47: break; } goto LABEL_427; - case 0x40: - d_print_comp(*(_DWORD *)(v4 + 8), a2); - d_print_comp(*(_DWORD *)(v4 + 12), a2); + case 64: + d_print_comp(v3, a2, (int *)v4[2]); + d_print_comp(v3, a2, (int *)v4[3]); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x41: + case 65: v291 = *(_DWORD *)(v3 + 256); - v292 = *(_DWORD *)(v4 + 8); + v292 = v4[2]; if ( v291 == 255 ) { v293 = *(_DWORD *)(v3 + 268); @@ -37758,14 +36706,14 @@ LABEL_47: v536 = (char *)v294; v5 = *(_DWORD *)(v3 + 284) - 1; v291 = 0; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; } *(_DWORD *)(v3 + 256) = v291 + 1; *(_BYTE *)(v3 + v291) = v292; *(_BYTE *)(v3 + 260) = v292; goto LABEL_21; - case 0x42: - sprintf(Buffer, "%d", *(_DWORD *)(v4 + 8)); + case 66: + sprintf(Buffer, "%d", v4[2]); v259 = &Buffer[strlen(Buffer)]; if ( v259 != Buffer ) { @@ -37798,9 +36746,9 @@ LABEL_47: } v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x43: + case 67: v280 = *(_DWORD *)(v3 + 256); v281 = "ecltype ("; for ( i20 = 100; ; i20 = *v281++ ) @@ -37826,7 +36774,7 @@ LABEL_47: if ( v281 == "" ) break; } - d_print_comp(*(_DWORD *)(v4 + 8), a2); + d_print_comp(v3, a2, (int *)v4[2]); v319 = *(_DWORD *)(v3 + 256); if ( v319 == 255 ) { @@ -37842,9 +36790,9 @@ LABEL_47: *(_BYTE *)(v3 + 260) = 41; v536 = (char *)v321; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x44: + case 68: v270 = *(_DWORD *)(v3 + 256); v271 = "lobal constructors keyed to "; for ( i21 = 103; ; i21 = *v271++ ) @@ -37871,7 +36819,7 @@ LABEL_47: break; } goto LABEL_427; - case 0x45: + case 69: v275 = *(_DWORD *)(v3 + 256); v276 = "lobal destructors keyed to "; for ( i22 = 103; ; i22 = *v276++ ) @@ -37898,7 +36846,7 @@ LABEL_47: break; } goto LABEL_427; - case 0x46: + case 70: v265 = *(_DWORD *)(v3 + 256); v266 = "lambda("; for ( i23 = 123; ; i23 = *v266++ ) @@ -37924,10 +36872,10 @@ LABEL_47: if ( v266 == "" ) break; } - v307 = *(_DWORD *)(v4 + 8); + v307 = (int *)v4[2]; v308 = ")#"; ++*(_DWORD *)(v3 + 288); - d_print_comp(v307, a2); + d_print_comp(v3, a2, v307); v309 = *(_DWORD *)(v3 + 256); v310 = 41; --*(_DWORD *)(v3 + 288); @@ -37956,7 +36904,7 @@ LABEL_47: break; v310 = *v308; } - sprintf(Buffer, "%d", *(_DWORD *)(v4 + 12) + 1); + sprintf(Buffer, "%d", v4[3] + 1); v313 = &Buffer[strlen(Buffer)]; v314 = Buffer; for ( i24 = *(_DWORD *)(v3 + 256); v313 != v314; *(_BYTE *)(v3 + 260) = v316 ) @@ -37990,7 +36938,7 @@ LABEL_47: i24 = 0; } goto LABEL_479; - case 0x48: + case 72: v121 = *(_DWORD *)(v3 + 256); v122 = "unnamed type#"; for ( i25 = 123; ; i25 = *v122++ ) @@ -38016,7 +36964,7 @@ LABEL_47: if ( v122 == "" ) break; } - sprintf(Buffer, "%d", *(_DWORD *)(v4 + 8) + 1); + sprintf(Buffer, "%d", v4[2] + 1); v335 = &Buffer[strlen(Buffer)]; v336 = Buffer; for ( i24 = *(_DWORD *)(v3 + 256); v335 != v336; *(_BYTE *)(v3 + 260) = v338 ) @@ -38056,9 +37004,9 @@ LABEL_479: *(_BYTE *)(v3 + 260) = 125; v536 = (char *)v341; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; - case 0x49: + case 73: v116 = *(_DWORD *)(v3 + 256); v117 = "ransaction clone for "; for ( i26 = 116; ; i26 = *v117++ ) @@ -38085,7 +37033,7 @@ LABEL_479: break; } goto LABEL_427; - case 0x4A: + case 74: v111 = *(_DWORD *)(v3 + 256); v112 = "on-transaction clone for "; for ( i27 = 110; ; i27 = *v112++ ) @@ -38112,16 +37060,16 @@ LABEL_479: break; } goto LABEL_427; - case 0x4B: - v104 = d_find_pack(v3, *(_DWORD **)(v4 + 8), v8); + case 75: + v104 = d_find_pack(v3, (_DWORD *)v4[2], v8); v105 = 0; if ( !v104 ) { - d_print_subexpr(v3, a2, *(_DWORD **)(v4 + 8)); + d_print_subexpr(v3, a2, (int *)v4[2]); d_append_buffer(v3, "...", 3); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } while ( *v104 == 47 && v104[2] ) @@ -38131,12 +37079,12 @@ LABEL_479: if ( !v104 ) { v582 = v105; - v588 = *(_DWORD *)(v4 + 8); + v588 = (int *)v4[2]; do { LABEL_157: *(_DWORD *)(v3 + 292) = v7; - d_print_comp(v588, a2); + d_print_comp(v3, a2, v588); if ( v7 < v582 - 1 ) { v106 = *(_DWORD *)(v3 + 256); @@ -38171,23 +37119,23 @@ LABEL_157: while ( v582 > v7 ); v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } } v582 = v105; - v588 = *(_DWORD *)(v4 + 8); + v588 = (int *)v4[2]; if ( !v105 ) { v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } goto LABEL_157; - case 0x4C: + case 76: v228 = "[abi:"; - d_print_comp(*(_DWORD *)(v4 + 8), a2); + d_print_comp(v3, a2, (int *)v4[2]); v229 = *(_DWORD *)(v3 + 256); for ( i29 = 91; ; i29 = *v228 ) { @@ -38213,7 +37161,7 @@ LABEL_157: if ( v228 == "" ) break; } - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); v295 = *(_DWORD *)(v3 + 256); if ( v295 == 255 ) { @@ -38224,9 +37172,9 @@ LABEL_157: v295 = 0; } goto LABEL_398; - case 0x4E: + case 78: v223 = "[clone "; - d_print_comp(*(_DWORD *)(v4 + 8), a2); + d_print_comp(v3, a2, (int *)v4[2]); v224 = *(_DWORD *)(v3 + 256); for ( i30 = 32; ; i30 = *v223++ ) { @@ -38251,7 +37199,7 @@ LABEL_157: if ( v223 == "" ) break; } - d_print_comp(*(_DWORD *)(v4 + 12), a2); + d_print_comp(v3, a2, (int *)v4[3]); v295 = *(_DWORD *)(v3 + 256); if ( v295 == 255 ) { @@ -38268,19 +37216,19 @@ LABEL_398: *(_BYTE *)(v3 + 260) = 93; v536 = (char *)v297; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; default: *(_DWORD *)(v3 + 280) = 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } do { - if ( v580 == (_DWORD *)*v447 ) + if ( v580 == *v447 ) { v450 = (int *)&v593; - while ( v580 != (_DWORD *)*v450 && (v4 != *v450 || v450 == (int *)&v593) ) + while ( v580 != (int *)*v450 && (v4 != (int *)*v450 || v450 == (int *)&v593) ) { v450 = (int *)v450[1]; if ( !v450 ) @@ -38307,9 +37255,9 @@ LABEL_672: v452 = *(_DWORD *)(v3 + 292); if ( v452 < 0 ) { - if ( *(_DWORD *)v4 != 47 ) + if ( *v4 != 47 ) LABEL_68: - v580 = (_DWORD *)v4; + v580 = v4; LABEL_69: v23 = *(int ***)(v3 + 276); LABEL_70: @@ -38319,9 +37267,9 @@ LABEL_70: v597 = v580; v599 = *(_DWORD *)(v3 + 272); LABEL_71: - v21 = v580[2]; + v21 = (int *)v580[2]; LABEL_24: - d_print_comp(v21, a2); + d_print_comp(v3, a2, v21); if ( !v598 ) d_print_mod(v3, a2, v580); *(_DWORD *)(v3 + 276) = *(_DWORD *)Buffer; @@ -38329,7 +37277,7 @@ LABEL_24: *(_DWORD *)(v3 + 272) = v586; v536 = v594; v5 = *(_DWORD *)(v3 + 284) - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } v453 = d_index_template_argument_part_0(v580, v452); @@ -38345,24 +37293,24 @@ LABEL_679: *(_DWORD *)(v3 + 280) = 1; v536 = (char *)v455; v5 = v456 - 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; goto LABEL_21; } v43 = *v453; } LABEL_65: - if ( v43 != 35 && *(_DWORD *)v4 != v43 ) + if ( v43 != 35 && *v4 != v43 ) { if ( v43 == 36 ) { - v21 = v580[2]; + v21 = (int *)v580[2]; LABEL_23: v22 = *(_DWORD *)(v3 + 276); - v597 = (_DWORD *)v4; + v597 = v4; v598 = 0; *(_DWORD *)Buffer = v22; *(_DWORD *)(v3 + 276) = Buffer; - v580 = (_DWORD *)v4; + v580 = v4; v599 = *(_DWORD *)(v3 + 272); if ( v21 ) goto LABEL_24; @@ -38384,9 +37332,9 @@ LABEL_706: v591 = v5; *(_DWORD *)(v3 + 308) = v448 + 1; v477 = *(_DWORD **)(v3 + 272); - v478 = (_DWORD *)(v476 + 8 * v448); + v478 = (int **)(v476 + 8 * v448); *v478 = v580; - for ( i31 = v478 + 1; ; i31 = (int *)v481 ) + for ( i31 = (int *)(v478 + 1); ; i31 = (int *)v481 ) { if ( !v477 ) { @@ -38405,10 +37353,10 @@ LABEL_706: v5 = v591; } *(_DWORD *)(v3 + 280) = 1; - result = *(_DWORD *)(v4 + 4) - 1; + result = v4[1] - 1; LABEL_21: *(_DWORD *)(v3 + 300) = v536; - *(_DWORD *)(v4 + 4) = result; + v4[1] = result; *(_DWORD *)(v3 + 284) = v5; return result; } @@ -38419,9 +37367,9 @@ LABEL_21: // 532320: using guessed type void **off_532320; //----- (0044B840) -------------------------------------------------------- -int __usercall d_print_mod@(int a1@, int a2@, _DWORD *a3@) +int __usercall d_print_mod@(int a1@, int a2@, int *a3@) { - _DWORD *v4; // esi + int *v4; // esi int result; // eax const char *v7; // esi char i; // dl @@ -38448,7 +37396,7 @@ int __usercall d_print_mod@(int a1@, int a2@, _DWORD *a3@) int v29; // eax int v30; // edx int v31; // eax - int v32; // ecx + int *v32; // ecx const char *v33; // esi char jj; // dl int v35; // ecx @@ -38479,7 +37427,7 @@ int __usercall d_print_mod@(int a1@, int a2@, _DWORD *a3@) char mm; // dl int v61; // ecx int v62; // eax - int v63; // ecx + int *v63; // ecx int v64; // edx int v65; // eax int v66; // edx @@ -38505,10 +37453,10 @@ int __usercall d_print_mod@(int a1@, int a2@, _DWORD *a3@) switch ( *a3 ) { case 3: - a3 = (_DWORD *)a3[2]; - return d_print_comp(a3, a2); - case 0x19: - case 0x1C: + a3 = (int *)a3[2]; + return d_print_comp(a1, a2, a3); + case 25: + case 28: result = *(_DWORD *)(a1 + 256); v7 = "restrict"; for ( i = 32; ; i = *v7++ ) @@ -38535,8 +37483,8 @@ int __usercall d_print_mod@(int a1@, int a2@, _DWORD *a3@) break; } return result; - case 0x1A: - case 0x1D: + case 26: + case 29: result = *(_DWORD *)(a1 + 256); v11 = "volatile"; for ( j = 32; ; j = *v11++ ) @@ -38563,8 +37511,8 @@ int __usercall d_print_mod@(int a1@, int a2@, _DWORD *a3@) break; } return result; - case 0x1B: - case 0x1E: + case 27: + case 30: result = *(_DWORD *)(a1 + 256); v15 = "const"; for ( k = 32; ; k = *v15++ ) @@ -38591,7 +37539,7 @@ int __usercall d_print_mod@(int a1@, int a2@, _DWORD *a3@) break; } return result; - case 0x1F: + case 31: v19 = *(_DWORD *)(a1 + 256); if ( v19 == 255 ) { @@ -38623,7 +37571,7 @@ LABEL_54: *(_BYTE *)(a1 + result) = 38; *(_BYTE *)(a1 + 260) = 38; return result; - case 0x20: + case 32: v20 = *(_DWORD *)(a1 + 256); result = v20 + 1; if ( v20 == 255 ) @@ -38639,7 +37587,7 @@ LABEL_54: *(_BYTE *)(a1 + v20) = 32; *(_BYTE *)(a1 + 260) = 32; goto LABEL_27; - case 0x21: + case 33: v25 = *(_DWORD *)(a1 + 256); v26 = v25 + 1; if ( v25 == 255 ) @@ -38654,9 +37602,9 @@ LABEL_54: *(_DWORD *)(a1 + 256) = v26; *(_BYTE *)(a1 + v25) = 32; *(_BYTE *)(a1 + 260) = 32; - a3 = (_DWORD *)v4[3]; - return d_print_comp(a3, a2); - case 0x22: + a3 = (int *)v4[3]; + return d_print_comp(a1, a2, a3); + case 34: if ( (a2 & 4) == 0 ) { result = *(_DWORD *)(a1 + 256); @@ -38675,10 +37623,10 @@ LABEL_54: *(_BYTE *)(a1 + 260) = 42; } return result; - case 0x23: + case 35: result = *(_DWORD *)(a1 + 256); goto LABEL_52; - case 0x24: + case 36: result = *(_DWORD *)(a1 + 256); LABEL_27: v21 = "&&"; @@ -38707,7 +37655,7 @@ LABEL_27: break; } return result; - case 0x25: + case 37: result = *(_DWORD *)(a1 + 256); v51 = "omplex "; for ( n = 99; ; n = *v51++ ) @@ -38734,7 +37682,7 @@ LABEL_27: break; } return result; - case 0x26: + case 38: result = *(_DWORD *)(a1 + 256); v55 = "maginary "; for ( ii = 105; ; ii = *v55++ ) @@ -38761,7 +37709,7 @@ LABEL_27: break; } return result; - case 0x2B: + case 43: if ( *(_BYTE *)(a1 + 260) != 40 ) { v29 = *(_DWORD *)(a1 + 256); @@ -38779,9 +37727,9 @@ LABEL_27: *(_BYTE *)(a1 + v29) = 32; *(_BYTE *)(a1 + 260) = 32; } - v32 = v4[2]; + v32 = (int *)v4[2]; v33 = "::*"; - d_print_comp(v32, a2); + d_print_comp(a1, a2, v32); result = *(_DWORD *)(a1 + 256); for ( jj = 58; ; jj = *v33 ) { @@ -38808,7 +37756,7 @@ LABEL_27: break; } return result; - case 0x2D: + case 45: v46 = *(_DWORD *)(a1 + 256); v47 = "__vector("; for ( kk = 32; ; kk = *v47++ ) @@ -38834,9 +37782,9 @@ LABEL_27: if ( v47 == "" ) break; } - v63 = v4[2]; + v63 = (int *)v4[2]; goto LABEL_96; - case 0x4D: + case 77: result = *(_DWORD *)(a1 + 256); v59 = "transaction_safe"; for ( mm = 32; ; mm = *v59++ ) @@ -38863,7 +37811,7 @@ LABEL_27: break; } return result; - case 0x4F: + case 79: result = *(_DWORD *)(a1 + 256); v42 = "noexcept"; for ( nn = 32; ; nn = *v42++ ) @@ -38890,7 +37838,7 @@ LABEL_27: break; } goto LABEL_92; - case 0x50: + case 80: result = *(_DWORD *)(a1 + 256); v38 = "throw"; for ( i1 = 32; ; i1 = *v38++ ) @@ -38917,7 +37865,7 @@ LABEL_27: break; } LABEL_92: - v63 = v4[3]; + v63 = (int *)v4[3]; if ( v63 ) { v64 = result + 1; @@ -38926,7 +37874,7 @@ LABEL_92: v65 = *(_DWORD *)(a1 + 268); *(_BYTE *)(a1 + 255) = 0; (*(void (__cdecl **)(int, int, int))(a1 + 264))(a1, 255, v65); - v63 = v4[3]; + v63 = (int *)v4[3]; v64 = 1; result = 0; ++*(_DWORD *)(a1 + 296); @@ -38935,7 +37883,7 @@ LABEL_92: *(_BYTE *)(a1 + result) = 40; *(_BYTE *)(a1 + 260) = 40; LABEL_96: - d_print_comp(v63, a2); + d_print_comp(a1, a2, v63); result = *(_DWORD *)(a1 + 256); v66 = result + 1; if ( result == 255 ) @@ -38953,13 +37901,12 @@ LABEL_96: } return result; default: - return d_print_comp(a3, a2); + return d_print_comp(a1, a2, a3); } } -// 446CD0: using guessed type int __fastcall d_print_comp(_DWORD, _DWORD); //----- (0044C180) -------------------------------------------------------- -int __usercall d_print_function_type_isra_0@(int a1@, int a2@, int *a3@, int **a4) +int __usercall d_print_function_type_isra_0@(int a1@, int a2@, int **a3@, int **a4) { int **v6; // ecx char v7; // cl @@ -38969,7 +37916,7 @@ int __usercall d_print_function_type_isra_0@(int a1@, int a2@, in int v11; // eax int v12; // ecx int v13; // eax - int v14; // ecx + int *v14; // ecx int v15; // ecx int result; // eax int v17; // eax @@ -39101,7 +38048,7 @@ LABEL_20: if ( !*a3 ) goto LABEL_16; LABEL_14: - d_print_comp(v14, a2); + d_print_comp(a1, a2, v14); v13 = *(_DWORD *)(a1 + 256); LABEL_15: if ( v13 == 255 ) @@ -39131,7 +38078,6 @@ LABEL_17: } } } -// 446CD0: using guessed type int __fastcall d_print_comp(_DWORD, _DWORD); //----- (0044C4B0) -------------------------------------------------------- int __usercall d_print_mod_list@(int result@, int a2@, int **a3@, int a4) @@ -39144,7 +38090,7 @@ int __usercall d_print_mod_list@(int result@, int a2@, int **a3@< unsigned int v10; // edx int *v11; // edx int v12; // eax - int v13; // ecx + int *v13; // ecx int v14; // eax int v15; // ecx int v16; // eax @@ -39170,7 +38116,7 @@ int __usercall d_print_mod_list@(int result@, int a2@, int **a3@< int v36; // edx int v37; // eax int v38; // [esp+14h] [ebp-48h] - unsigned int *v39; // [esp+14h] [ebp-48h] + int *v39; // [esp+14h] [ebp-48h] int v40; // [esp+14h] [ebp-48h] int **v41; // [esp+18h] [ebp-44h] char v42; // [esp+18h] [ebp-44h] @@ -39202,19 +38148,19 @@ LABEL_4: switch ( v10 ) { case 0x29u: - result = d_print_function_type_isra_0(*v6); + result = d_print_function_type_isra_0(v5, a2, v9 + 3, (int **)*v6); *(_DWORD *)(v5 + 272) = v8; return result; case 0x2Au: - result = d_print_array_type_isra_0(v5, a2, v9 + 2, (int **)*v6); + result = d_print_array_type_isra_0(v5, a2, (int **)v9 + 2, (int **)*v6); *(_DWORD *)(v5 + 272) = v8; return result; case 2u: v12 = *(_DWORD *)(v5 + 276); - v13 = v9[2]; + v13 = (int *)v9[2]; *(_DWORD *)(v5 + 276) = 0; v38 = v12; - d_print_comp(v13, a2); + d_print_comp(v5, a2, v13); *(_DWORD *)(v5 + 276) = v38; v14 = *(_DWORD *)(v5 + 256); if ( (a2 & 4) != 0 ) @@ -39263,7 +38209,7 @@ LABEL_4: v8 = v40; v6 = v41; } - v39 = (unsigned int *)v6[1][3]; + v39 = (int *)v6[1][3]; v17 = *v39; if ( *v39 == 71 ) { @@ -39362,7 +38308,7 @@ LABEL_4: if ( v17 - 79 > 1 ) { LABEL_24: - result = d_print_comp(v39, a2); + result = d_print_comp(v5, a2, v39); *(_DWORD *)(v5 + 272) = v8; return result; } @@ -39373,7 +38319,7 @@ LABEL_24: } } LABEL_29: - v39 = (unsigned int *)v39[2]; + v39 = (int *)v39[2]; v17 = *v39; } } @@ -39404,18 +38350,16 @@ LABEL_8: } return result; } -// 446CD0: using guessed type int __fastcall d_print_comp(_DWORD, _DWORD); -// 44C180: using guessed type _DWORD __cdecl d_print_function_type_isra_0(_DWORD); // 44C4B0: using guessed type char Str[53]; //----- (0044C8A0) -------------------------------------------------------- -int __usercall d_print_array_type_isra_0@(int a1@, int a2@, int *a3@, int **a4) +int __usercall d_print_array_type_isra_0@(int a1@, int a2@, int **a3@, int **a4) { int **v7; // eax int v8; // eax int v9; // edx int result; // eax - int v11; // ecx + int *v11; // ecx int v12; // edx int v13; // eax int v14; // eax @@ -39441,7 +38385,7 @@ LABEL_5: v7 = (int **)*v7; if ( !v7 ) { - d_print_mod_list(0); + d_print_mod_list(a1, a2, a4, 0); goto LABEL_5; } } @@ -39473,7 +38417,7 @@ LABEL_5: if ( &unk_5318DA == (_UNKNOWN *)v17 ) break; } - d_print_mod_list(0); + d_print_mod_list(a1, a2, a4, 0); v21 = *(_DWORD *)(a1 + 256); if ( v21 == 255 ) { @@ -39512,7 +38456,7 @@ LABEL_6: } goto LABEL_7; } - d_print_mod_list(0); + d_print_mod_list(a1, a2, a4, 0); v9 = *(_DWORD *)(a1 + 256); LABEL_8: if ( v9 == 255 ) @@ -39542,7 +38486,7 @@ LABEL_8: goto LABEL_11; } LABEL_10: - d_print_comp(v11, a2); + d_print_comp(a1, a2, v11); result = *(_DWORD *)(a1 + 256); LABEL_11: if ( result == 255 ) @@ -39563,11 +38507,9 @@ LABEL_13: *(_BYTE *)(a1 + 260) = 93; return result; } -// 446CD0: using guessed type int __fastcall d_print_comp(_DWORD, _DWORD); -// 44C4B0: using guessed type _DWORD __cdecl d_print_mod_list(_DWORD); //----- (0044CB70) -------------------------------------------------------- -int __usercall d_print_expr_op@(int a1@, int a2@, _DWORD *a3@) +int __usercall d_print_expr_op@(int a1@, int a2@, int *a3@) { int result; // eax int v5; // edi @@ -39578,7 +38520,7 @@ int __usercall d_print_expr_op@(int a1@, int a2@, _DWORD *a3@(int a1@, int a2@, _DWORD *a3@(int a1@, int a2@, _DWORD *a3@) +int __usercall d_print_subexpr@(int a1@, int a2@, int *a3@) { int v4; // eax int v5; // eax @@ -39624,11 +38565,11 @@ int __usercall d_print_subexpr@(int a1@, int a2@, _DWORD *a3@(int a1@, int a2@, _DWORD *a3@(int a1@, int a2@, _DWORD *a3@(int a1@, int a2@, int a3@, int a4) { _BYTE *v5; // eax - _DWORD *v7; // edi + int *v7; // edi int v8; // esi char v9; // al int v10; // eax @@ -39680,7 +38620,7 @@ int __usercall d_maybe_print_fold_expression_isra_0@(int a1@, int a2@< char k; // dl int v15; // ecx int v16; // eax - _DWORD *v18; // ecx + int *v18; // ecx int v19; // eax int v20; // edx int v21; // eax @@ -39691,7 +38631,7 @@ int __usercall d_maybe_print_fold_expression_isra_0@(int a1@, int a2@< char j; // dl int v27; // ecx int v28; // eax - _DWORD *v29; // esi + int v29; // esi int v30; // eax const char *v31; // esi char i; // dl @@ -39699,10 +38639,10 @@ int __usercall d_maybe_print_fold_expression_isra_0@(int a1@, int a2@< int v34; // eax int v35; // eax int v36; // eax - _DWORD *v37; // [esp+10h] [ebp-2Ch] + int *v37; // [esp+10h] [ebp-2Ch] char v38; // [esp+10h] [ebp-2Ch] int v39; // [esp+14h] [ebp-28h] - _DWORD *v40; // [esp+18h] [ebp-24h] + int *v40; // [esp+18h] [ebp-24h] char v41; // [esp+18h] [ebp-24h] char v42; // [esp+1Fh] [ebp-1Dh] @@ -39710,13 +38650,13 @@ int __usercall d_maybe_print_fold_expression_isra_0@(int a1@, int a2@< if ( *v5 != 102 ) return 0; v40 = 0; - v37 = *(_DWORD **)(*(_DWORD *)a4 + 8); - v7 = *(_DWORD **)(*(_DWORD *)a4 + 12); + v37 = *(int **)(*(_DWORD *)a4 + 8); + v7 = *(int **)(*(_DWORD *)a4 + 12); if ( *v7 == 60 ) { - v29 = (_DWORD *)v7[3]; - v7 = (_DWORD *)v7[2]; - v40 = v29; + v29 = v7[3]; + v7 = (int *)v7[2]; + v40 = (int *)v29; } v8 = *(_DWORD *)(a1 + 292); *(_DWORD *)(a1 + 292) = -1; @@ -39873,7 +38813,10 @@ LABEL_21: } //----- (0044D0C0) -------------------------------------------------------- -BOOL __usercall d_demangle_callback_constprop_0@(char *a1@, int a2@, int a3@) +BOOL __usercall d_demangle_callback_constprop_0@( + char *a1@, + void (__cdecl *a2)(_DWORD *, int, int)@, + int a3@) { char v4; // al bool v5; // zf @@ -39914,7 +38857,7 @@ BOOL __usercall d_demangle_callback_constprop_0@(char *a1@, int a2@(char *a1@, int a2@(__int32 a1@) __int32 v15; // ebx __int32 v16; // ebx int v26[50]; // [esp+0h] [ebp-208h] BYREF - __int32 v27[79]; // [esp+C8h] [ebp-140h] BYREF + int v27[79]; // [esp+C8h] [ebp-140h] BYREF unsigned int v28; // [esp+204h] [ebp-4h] v1 = __getcallerseflags(); @@ -40817,11 +39763,11 @@ int __cdecl __mingw_TLScallback(int a1, int a2) //----- (0044E0C0) -------------------------------------------------------- void __noreturn sub_44E0C0(char *Format, ...) { - va_list va; // [esp+24h] [ebp+8h] BYREF + va_list ArgList; // [esp+24h] [ebp+8h] BYREF - va_start(va, Format); + va_start(ArgList, Format); fwrite("Mingw runtime failure:\n", 1u, 0x17u, &__iob[2]); - vfprintf(&__iob[2], Format, va); + vfprintf(&__iob[2], Format, ArgList); abort(); } @@ -41049,7 +39995,7 @@ int __usercall sub_44E5C0@(int *a1@, int *a2@, _DWORD *a3@, v29 = 0; if ( !v12 ) goto LABEL_14; - v11 = __lshift_D2A(v11, v10 - v9); + v11 = __lshift_D2A((char *)v11, v10 - v9); goto LABEL_36; } if ( v10 == 53 ) @@ -41213,21 +40159,21 @@ _DWORD *__cdecl __decrement_D2A(int a1) } //----- (0044E9F0) -------------------------------------------------------- -int *__cdecl __set_ones_D2A(unsigned int a1, int a2) +int *__cdecl __set_ones_D2A(int *a1, int a2) { int *result; // eax int v3; // esi int *v4; // esi int v5; // edx int v6; // edx - unsigned int v7; // ecx + int *v7; // ecx int *v8; // edx - result = (int *)a1; + result = a1; v3 = (a2 + 31) >> 5; - if ( *(_DWORD *)(a1 + 4) < v3 ) + if ( a1[1] < v3 ) { - __Bfree_D2A(a1); + __Bfree_D2A((unsigned int)a1); result = __Balloc_D2A(v3); } v4 = result + 5; @@ -41235,23 +40181,23 @@ int *__cdecl __set_ones_D2A(unsigned int a1, int a2) if ( (a2 & 0x1F) != 0 ) { v6 = v5 + 1; - v7 = (unsigned int)&v4[v6]; + v7 = &v4[v6]; result[4] = v6; - if ( v7 <= (unsigned int)v4 ) + if ( v7 <= v4 ) goto LABEL_10; } else { - v7 = (unsigned int)&v4[v5]; + v7 = &v4[v5]; result[4] = v5; - if ( (unsigned int)v4 >= v7 ) + if ( v4 >= v7 ) return result; } v8 = result + 5; do *v8++ = -1; - while ( (unsigned int)v8 < v7 ); - if ( v7 < (unsigned int)result + 21 ) + while ( v8 < v7 ); + if ( v7 < (int *)((char *)result + 21) ) { v4 = result + 6; if ( (a2 & 0x1F) == 0 ) @@ -41260,7 +40206,7 @@ LABEL_10: *(v4 - 1) = (unsigned int)*(v4 - 1) >> (32 - (a2 & 0x1F)); return result; } - v4 += ((v7 - (unsigned int)result - 21) >> 2) + 1; + v4 += ((unsigned int)((char *)v7 - (char *)result - 21) >> 2) + 1; if ( (a2 & 0x1F) != 0 ) goto LABEL_10; return result; @@ -41313,7 +40259,7 @@ int __cdecl __strtodg(unsigned __int8 *a1, unsigned __int8 **a2, int *a3, int *a int v49; // edx int v50; // eax int *v51; // eax - int *v52; // edi + char *v52; // edi int v53; // esi int v54; // ebp int v55; // ebx @@ -41376,13 +40322,13 @@ int __cdecl __strtodg(unsigned __int8 *a1, unsigned __int8 **a2, int *a3, int *a int *v112; // eax int *v113; // esi int v116; // eax - int *v117; // esi + char *v117; // esi int *v118; // eax int v119; // eax int v120; // ecx int v121; // edx int v122; // edi - int *v123; // edx + char *v123; // edx int *v124; // eax int *v125; // ecx int *v127; // eax @@ -41436,7 +40382,7 @@ int __cdecl __strtodg(unsigned __int8 *a1, unsigned __int8 **a2, int *a3, int *a int v175; // [esp+A0h] [ebp-2Ch] BYREF int v176; // [esp+A4h] [ebp-28h] BYREF unsigned __int8 *v177; // [esp+A8h] [ebp-24h] BYREF - int *v178; // [esp+ACh] [ebp-20h] BYREF + char *v178; // [esp+ACh] [ebp-20h] BYREF decimal_point = localeconv()->decimal_point; v174 = 0; @@ -41479,11 +40425,11 @@ LABEL_4: v22 = v8 + 1; if ( (v8[1] & 0xDF) == 88 ) { - v174 = __gethex_D2A(&v177, a3, a4, &v178, v164); + v174 = __gethex_D2A(&v177, a3, a4, (int **)&v178, v164); if ( v174 != 6 ) goto LABEL_78; v177 = a1; - v15 = v178; + v15 = (int *)v178; if ( a2 ) *a2 = a1; goto LABEL_35; @@ -41729,7 +40675,7 @@ LABEL_29: v174 = __hexnan_D2A(&v177, a3, a5); LABEL_227: *a4 = a3[2] + 1; - v15 = v178; + v15 = (int *)v178; goto LABEL_31; } if ( v9 != 73 ) @@ -41739,7 +40685,7 @@ LABEL_227: LABEL_30: v174 = 6; v177 = a1; - v15 = v178; + v15 = (int *)v178; goto LABEL_31; } goto LABEL_29; @@ -41944,7 +40890,7 @@ LABEL_111: v43 = __d2b_D2A(v42, &v176, &v175); v44 = v175; v45 = v176 + v41; - v178 = v43; + v178 = (char *)v43; v46 = v175 - v142; v176 = v45; if ( v175 - v142 > 0 ) @@ -41974,12 +40920,12 @@ LABEL_111: { v101 = __lshift_D2A(v178, v48); v175 += v48; - v178 = v101; + v178 = (char *)v101; } else if ( v45 != v47 ) { v49 = v48 + v44; - v15 = v178; + v15 = (int *)v178; v175 = v49; if ( v49 > 0 ) { @@ -41989,7 +40935,7 @@ LABEL_111: { if ( v49 < -1 ) { - v178[4] = 0; + *((_DWORD *)v178 + 4) = 0; v15[5] = 0; *a4 = v162; if ( !v170 ) @@ -42000,7 +40946,7 @@ LABEL_111: goto LABEL_254; } v175 = 1; - v178[4] = 1; + *((_DWORD *)v178 + 4) = 1; v15[5] = 1; } } @@ -42012,8 +40958,8 @@ LABEL_111: v171 = v162; if ( v50 + 1 < v162 ) { - v15 = v178; - v178[4] = 0; + v15 = (int *)v178; + *((_DWORD *)v178 + 4) = 0; v15[5] = 0; *a4 = v162; goto LABEL_254; @@ -42035,8 +40981,8 @@ LABEL_111: { v137 = __Balloc_D2A(*(_DWORD *)(v167 + 4)); memcpy(v137 + 3, Src, 4 * *(_DWORD *)(v167 + 16) + 8); - v52 = __Balloc_D2A(v178[1]); - memcpy(v52 + 3, v178 + 3, 4 * v178[4] + 8); + v52 = (char *)__Balloc_D2A(*((_DWORD *)v178 + 1)); + memcpy(v52 + 12, v178 + 12, 4 * *((_DWORD *)v178 + 4) + 8); v53 = v175; v54 = v176; v55 = v176 + v141; @@ -42075,11 +41021,11 @@ LABEL_111: v134 = (int *)__pow5mult_D2A(v134, v150); v152 = __mult_D2A((int)v134, (int)v52); __Bfree_D2A((unsigned int)v52); - v52 = v152; + v52 = (char *)v152; } if ( v60 - v141 > 0 ) { - v52 = __lshift_D2A(v52, v60 - v141); + v52 = (char *)__lshift_D2A(v52, v60 - v141); } else if ( v60 != v141 ) { @@ -42088,9 +41034,9 @@ LABEL_111: if ( v166 > 0 ) v137 = (int *)__pow5mult_D2A(v137, v165); if ( v61 > 0 ) - v137 = __lshift_D2A(v137, v61); + v137 = __lshift_D2A((char *)v137, v61); if ( v57 > 0 ) - v134 = __lshift_D2A(v134, v57); + v134 = __lshift_D2A((char *)v134, v57); v64 = __diff_D2A((int)v52, (int)v137); v65 = v64; if ( v64[4] <= 1 && !v64[5] ) @@ -42121,10 +41067,10 @@ LABEL_111: if ( v171 != v162 ) { v69 = v142; - v70 = v178; + v70 = (int *)v178; if ( v142 > 31 ) { - while ( !v178[v66 + 5] ) + while ( !*(_DWORD *)&v178[4 * v66 + 20] ) { v69 -= 32; ++v66; @@ -42138,7 +41084,7 @@ LABEL_111: LABEL_260: if ( v69 <= 1 ) goto LABEL_262; - v113 = &v178[v66 + 5]; + v113 = (int *)&v178[4 * v66 + 20]; _EBX = *v113; __asm { tzcnt ecx, ebx } *v113 = (unsigned int)*v113 >> _ECX; @@ -42147,7 +41093,7 @@ LABEL_260: LABEL_262: v176 = v171 - 1; v175 = v142; - v178 = __set_ones_D2A((unsigned int)v70, v142); + v178 = (char *)__set_ones_D2A(v70, v142); goto LABEL_61; } } @@ -42162,7 +41108,7 @@ LABEL_262: v174 = 33; if ( v147 > 1 || v171 == v162 || (v144 & 1) != 0 ) goto LABEL_61; - v65 = __lshift_D2A(v65, 1); + v65 = __lshift_D2A((char *)v65, 1); if ( __cmp_D2A((int)v65, (int)v134) <= 0 ) goto LABEL_271; v174 = 17; @@ -42176,8 +41122,8 @@ LABEL_262: if ( !v144 ) goto LABEL_340; v117 = v178; - v118 = v178 + 5; - while ( &v178[(v175 >> 5) + 5] > v118 ) + v118 = (int *)(v178 + 20); + while ( &v178[4 * (v175 >> 5) + 20] > (char *)v118 ) { if ( *v118++ != -1 ) goto LABEL_340; @@ -42188,8 +41134,8 @@ LABEL_340: v174 = 17; goto LABEL_326; } - v178[4] = 1; - v117[5] = 1; + *((_DWORD *)v178 + 4) = 1; + *((_DWORD *)v117 + 5) = 1; v175 = 1; v176 = v142 + v162 - 1; v116 = v144; @@ -42201,7 +41147,7 @@ LABEL_272: if ( v142 - v116 <= 0 ) __rshift_D2A((int)v178, v116 - v142); else - v178 = __lshift_D2A(v178, v144); + v178 = (char *)__lshift_D2A(v178, v144); v23 = v176 - v144; v144 = 0; v176 = v23; @@ -42228,11 +41174,11 @@ LABEL_63: case 1: LABEL_258: v174 = 163; - v178[4] = 0; + *((_DWORD *)v178 + 4) = 0; *_errno() = 34; *a4 = a3[2] + 1; LABEL_259: - v15 = v178; + v15 = (int *)v178; LABEL_72: if ( !v144 ) goto LABEL_31; @@ -42250,7 +41196,7 @@ LABEL_77: *_errno() = 34; } LABEL_78: - v15 = v178; + v15 = (int *)v178; LABEL_31: if ( a2 ) *a2 = v177; @@ -42268,7 +41214,7 @@ LABEL_254: v15[4] = 0; v174 = 80; *_errno() = 34; - v15 = v178; + v15 = (int *)v178; goto LABEL_31; default: break; @@ -42298,13 +41244,13 @@ LABEL_326: if ( v142 <= v147 || (v144 & 1) != 0 ) { v123 = v178; - if ( (v178[5] & 1) != 0 ) + if ( (v178[20] & 1) != 0 ) { if ( v66 ) { - v127 = __increment_D2A(v178); + v127 = __increment_D2A((int *)v178); v128 = v127[4]; - v178 = v127; + v178 = (char *)v127; _BitScanReverse((unsigned int *)&v127, v127[v128 + 4]); if ( (-v175 & 0x1F) != ((unsigned int)v127 ^ 0x1F) ) ++v175; @@ -42313,14 +41259,14 @@ LABEL_326: else if ( v147 == 1 ) { LABEL_322: - v123[4] = 0; + *((_DWORD *)v123 + 4) = 0; v174 = 80; v176 = v162; } else { - v124 = v178 + 5; - v125 = &v178[v178[4] + 5]; + v124 = (int *)(v178 + 20); + v125 = (int *)&v178[4 * *((_DWORD *)v178 + 4) + 20]; while ( !*v124 ) { *v124++ = -1; @@ -42344,14 +41290,14 @@ LABEL_271: if ( v171 == v162 ) { v174 = 33; - if ( v178[4] == 1 && v178[5] == 1 ) + if ( *((_DWORD *)v178 + 4) == 1 && *((_DWORD *)v178 + 5) == 1 ) v170 = 1; goto LABEL_61; } LABEL_293: v176 -= v142; v175 = v142; - v178 = __set_ones_D2A((unsigned int)v178, v142); + v178 = (char *)__set_ones_D2A((int *)v178, v142); goto LABEL_61; } v102 = __ratio_D2A((int)v65, (int)v134); @@ -42430,7 +41376,7 @@ LABEL_158: v111 = v142 - v175; v112 = __lshift_D2A(v178, v142 - v175); v176 -= v111; - v178 = v112; + v178 = (char *)v112; v175 = v142; } v71 = __d2b_D2A(v148, &v172, &v173); @@ -42440,13 +41386,13 @@ LABEL_158: } else if ( v172 ) { - v71 = __lshift_D2A(v71, v172); + v71 = __lshift_D2A((char *)v71, v172); } - v72 = v178; + v72 = (int *)v178; if ( v153 ) { v73 = __diff_D2A((int)v178, (int)v71); - v178 = v73; + v178 = (char *)v73; if ( !v144 ) { v74 = v72[4]; @@ -42457,10 +41403,10 @@ LABEL_158: { if ( v171 != v162 ) { - v107 = __lshift_D2A(v73, 1); + v107 = __lshift_D2A((char *)v73, 1); --v176; --v171; - v178 = v107; + v178 = (char *)v107; __Bfree_D2A((unsigned int)v71); __Bfree_D2A((unsigned int)v72); LABEL_245: @@ -42475,9 +41421,9 @@ LABEL_245: } else { - v103 = __sum_D2A(v178, v71); + v103 = __sum_D2A((int *)v178, v71); v104 = v103[4]; - v178 = v103; + v178 = (char *)v103; if ( v72[4] <= v104 - 1 || (_BitScanReverse(&v105, v103[v104 + 4]), _BitScanReverse((unsigned int *)&v104, v72[v104 + 4]), @@ -42590,10 +41536,10 @@ int __cdecl __hexnan_D2A(unsigned __int8 **a1, int *a2, int *a3) int *v20; // edi int *v21; // esi unsigned int v22; // eax - unsigned int v23; // eax + char *v23; // eax int v24; // eax int *v25; // eax - char i; // dl + unsigned __int8 i; // dl int v29; // edx int *v30; // ebx unsigned int v31; // eax @@ -42682,7 +41628,7 @@ int __cdecl __hexnan_D2A(unsigned __int8 **a1, int *a2, int *a3) if ( v34 <= v37 ) { LABEL_52: - for ( i = v8[1]; (unsigned __int8)i <= 0x20u; ++v8 ) + for ( i = v8[1]; i <= 0x20u; ++v8 ) i = v8[2]; if ( i != 48 ) goto LABEL_23; @@ -42794,13 +41740,13 @@ LABEL_25: v22 = 4; if ( (char *)v38 + 1 >= (char *)v9 + 1 ) v22 = 4 * ((unsigned int)((char *)v38 - (char *)v9) >> 2) + 4; - v23 = (unsigned int)a3 + v22; + v23 = (char *)a3 + v22; do { v23 += 4; - *(_DWORD *)(v23 - 4) = 0; + *((_DWORD *)v23 - 1) = 0; } - while ( (unsigned int)v38 >= v23 ); + while ( v38 >= (int *)v23 ); v24 = *(v39 - 1); } if ( v24 ) @@ -42962,27 +41908,24 @@ int *__cdecl __multadd_D2A(int *a1, int a2, int a3) unsigned __int64 v5; // rax int *v6; // ebp int *v8; // eax - __int64 v9; // [esp+10h] [ebp-2Ch] - int v10; // [esp+1Ch] [ebp-20h] + int v9; // [esp+1Ch] [ebp-20h] v3 = 0; HIDWORD(v4) = a3; LODWORD(v4) = a3 >> 31; - v10 = a1[4]; - LODWORD(v9) = a2; + v9 = a1[4]; do { - HIDWORD(v9) = a2 >> 31; - v5 = __PAIR64__(v4, HIDWORD(v4)) + v9 * (unsigned int)a1[v3 + 5]; + v5 = __PAIR64__(v4, HIDWORD(v4)) + a2 * (unsigned __int64)(unsigned int)a1[v3 + 5]; a1[v3++ + 5] = v5; HIDWORD(v4) = HIDWORD(v5); LODWORD(v4) = 0; } - while ( v10 > v3 ); + while ( v9 > v3 ); v6 = a1; if ( v4 ) { - if ( a1[2] <= v10 ) + if ( a1[2] <= v9 ) { v8 = __Balloc_D2A(a1[1] + 1); v6 = v8; @@ -42990,15 +41933,15 @@ int *__cdecl __multadd_D2A(int *a1, int a2, int a3) { memcpy(v8 + 3, a1 + 3, 4 * a1[4] + 8); __Bfree_D2A((unsigned int)a1); - v6[v10 + 5] = HIDWORD(v4); - v6[4] = v10 + 1; + v6[v9 + 5] = HIDWORD(v4); + v6[4] = v9 + 1; } } else { v6 = a1; - a1[v10 + 5] = HIDWORD(v5); - a1[4] = v10 + 1; + a1[v9 + 5] = HIDWORD(v5); + a1[4] = v9 + 1; } } return v6; @@ -43216,32 +42159,32 @@ LABEL_9: // 78AA20: using guessed type int dword_78AA20; //----- (00451150) -------------------------------------------------------- -int *__cdecl __lshift_D2A(_DWORD *a1, int a2) +int *__cdecl __lshift_D2A(char *a1, int a2) { int v2; // edx int v3; // esi int i; // eax int *v5; // eax - int *v6; // edi + _DWORD *v6; // edi int *v7; // edx int *v8; // eax - int *v9; // esi - unsigned int v10; // edx + char *v9; // esi + char *v10; // edx char v11; // cl - int *v12; // ebx - unsigned int v13; // eax + _DWORD *v12; // ebx + int v13; // eax int v14; // edi unsigned int v15; // ecx _DWORD *v17; // edi - _DWORD *v18; // esi + char *v18; // esi int *v19; // [esp+1Ch] [ebp-30h] int v20; // [esp+20h] [ebp-2Ch] - int *v21; // [esp+28h] [ebp-24h] + _DWORD *v21; // [esp+28h] [ebp-24h] - v2 = a1[1]; + v2 = *((_DWORD *)a1 + 1); v3 = a2 >> 5; - v20 = (a2 >> 5) + a1[4]; - for ( i = a1[2]; v20 + 1 > i; ++v2 ) + v20 = (a2 >> 5) + *((_DWORD *)a1 + 4); + for ( i = *((_DWORD *)a1 + 2); v20 + 1 > i; ++v2 ) i *= 2; v5 = __Balloc_D2A(v2); v19 = v5; @@ -43257,8 +42200,8 @@ int *__cdecl __lshift_D2A(_DWORD *a1, int a2) while ( v8 != v7 ); v6 += v3; } - v9 = a1 + 5; - v10 = (unsigned int)&a1[a1[4] + 5]; + v9 = a1 + 20; + v10 = &a1[4 * *((_DWORD *)a1 + 4) + 20]; v11 = a2 & 0x1F; if ( (a2 & 0x1F) != 0 ) { @@ -43267,17 +42210,17 @@ int *__cdecl __lshift_D2A(_DWORD *a1, int a2) v13 = 0; do { - v14 = *v9; + v14 = *(_DWORD *)v9; ++v12; - ++v9; + v9 += 4; *(v12 - 1) = (v14 << v11) | v13; - v13 = (unsigned int)*(v9 - 1) >> (32 - v11); + v13 = *((_DWORD *)v9 - 1) >> (32 - v11); } - while ( v10 > (unsigned int)v9 ); + while ( v10 > v9 ); v15 = 4; - if ( v10 >= (unsigned int)a1 + 21 ) - v15 = 4 * ((v10 - (unsigned int)a1 - 21) >> 2) + 4; - *(int *)((char *)v21 + v15) = v13; + if ( v10 >= a1 + 21 ) + v15 = 4 * ((unsigned int)(v10 - a1 - 21) >> 2) + 4; + *(_DWORD *)((char *)v21 + v15) = v13; if ( v13 ) ++v20; } @@ -43285,16 +42228,16 @@ int *__cdecl __lshift_D2A(_DWORD *a1, int a2) { do { - *v6 = *v9; - v18 = v9 + 1; + *v6 = *(_DWORD *)v9; + v18 = v9 + 4; v17 = v6 + 1; - if ( v10 <= (unsigned int)v18 ) + if ( v10 <= v18 ) break; - *v17 = *v18; - v9 = v18 + 1; + *v17 = *(_DWORD *)v18; + v9 = v18 + 4; v6 = v17 + 1; } - while ( v10 > (unsigned int)v9 ); + while ( v10 > v9 ); } v19[4] = v20; __Bfree_D2A((unsigned int)a1); @@ -43837,9 +42780,9 @@ LABEL_40: //----- (00451BA0) -------------------------------------------------------- wint_t __cdecl btowc(int Ch) { - WCHAR v2[7]; // [esp+1Eh] [ebp-Eh] BYREF + __int16 v2[7]; // [esp+1Eh] [ebp-Eh] BYREF - if ( Ch != -1 && (__mingw_mbrtowc_codeset_init(), __mingw_mbtowc_convert((LPCCH)&Ch, 1, v2, 1) == 1) ) + if ( Ch != -1 && (__mingw_mbrtowc_codeset_init(), __mingw_mbtowc_convert((LPCCH)&Ch, 1, (LPWSTR)v2, 1) == 1) ) return v2[0]; else return -1; @@ -43863,18 +42806,18 @@ int __cdecl vsnprintf_2(char *const Buffer, const size_t BufferCount, const char } //----- (00451C80) -------------------------------------------------------- -void *__cdecl __mingw_realloc(unsigned int a1, size_t a2) +int __cdecl __mingw_realloc(unsigned int a1, size_t a2) { int v2; // ebx int v4[7]; // [esp+10h] [ebp-1Ch] BYREF v2 = a1; if ( !a1 || a1 == __mingw_memalign_base(a1, (unsigned int *)v4) ) - return (void *)___msvcrt_realloc(v2, a2); + return ___msvcrt_realloc(v2, a2); if ( !a2 ) { v2 = v4[0]; - return (void *)___msvcrt_realloc(v2, a2); + return ___msvcrt_realloc(v2, a2); } if ( v4[3] < a2 ) return __mingw_memalign_realloc(a1, v4, a2); @@ -43887,9 +42830,9 @@ void *__cdecl __mingw_realloc(unsigned int a1, size_t a2) int __cdecl __mingw_free(unsigned int a1) { unsigned int v1; // eax - unsigned int v3[7]; // [esp+10h] [ebp-1Ch] BYREF + int v3[7]; // [esp+10h] [ebp-1Ch] BYREF - v1 = __mingw_memalign_base(a1, v3); + v1 = __mingw_memalign_base(a1, (unsigned int *)v3); return ___msvcrt_free(v1); } // 78C404: using guessed type int __cdecl ___msvcrt_free(_DWORD); @@ -44329,7 +43272,7 @@ LABEL_30: v14 = a3 | 0x10000; do { - v15 = sub_452060(v14, v9); + v15 = sub_452060(v8, v9, v14); if ( !v15 ) break; ++v9; @@ -44397,7 +43340,7 @@ LABEL_6: //----- (00452330) -------------------------------------------------------- int __usercall sub_452330@(int a1@, _DWORD *a2@) { - _DWORD *v4; // eax + int v4; // eax int v5; // ecx int v6; // edx @@ -44408,23 +43351,27 @@ int __usercall sub_452330@(int a1@, _DWORD *a2@) v6 = a2[3]; a2[2] = v4; a2[1] = v5 + 1; - v4[v6 + v5] = a1; - v4[v5 + 1 + v6] = 0; + *(_DWORD *)(v4 + 4 * (v6 + v5)) = a1; + *(_DWORD *)(v4 + 4 * (v5 + 1 + v6)) = 0; return 0; } //----- (00452390) -------------------------------------------------------- int __usercall sub_452390@(_DWORD *a1@, _DWORD *a2@, int a3@) { - int v5; // eax + _DWORD *v5; // eax + int v6; // eax + _DWORD *v7; // eax - if ( *a1 ) - ((void (*)(void))sub_452390)(); - v5 = a1[2]; - if ( v5 && a2 ) - sub_452330(v5, a2); - if ( a1[1] ) - sub_452390(a3, a2); + v5 = (_DWORD *)*a1; + if ( v5 ) + sub_452390(v5, a2, a3); + v6 = a1[2]; + if ( v6 && a2 ) + sub_452330(v6, a2); + v7 = (_DWORD *)a1[1]; + if ( v7 ) + sub_452390(v7, a2, a3); return __mingw_free((unsigned int)a1); } // 4523B8: variable 'a3' is possibly undefined @@ -44451,7 +43398,11 @@ int __usercall sub_4523E0@(_DWORD *a1@) } //----- (00452430) -------------------------------------------------------- -int __usercall sub_452430@(char *a1@, unsigned int a2@, int a3@, _DWORD *a4) +int __usercall sub_452430@( + char *a1@, + unsigned int a2@, + int (__cdecl *a3)(_DWORD, int)@, + _DWORD *a4) { size_t v4; // eax size_t v5; // edx @@ -44497,83 +43448,85 @@ int __usercall sub_452430@(char *a1@, unsigned int a2@, int a3@> 4); @@ -44581,22 +43534,24 @@ LABEL_2: v8 = alloca(v6); v9 = (char *)memcpy(String, Str, v5); v10 = __mingw_dirname(v9); - v118 = 0; - v110 = v10; + v120 = 0; + v112 = v10; v11 = v10; - v115 = sub_4523E0(v116); - if ( !v115 ) + v117 = sub_4523E0(v118); + if ( !v117 ) { - if ( v11 && sub_452290(v11, v114) ) + if ( v11 && sub_452290(v11, v116) ) { - v115 = sub_452430(v116); + v76 = v116; + BYTE1(v76) = BYTE1(v116) | 0x80; + v117 = sub_452430(v112, v76, (int)v114, v118); } else { - v12 = 16 * ((strlen(v110) + 16) >> 4); + v12 = 16 * ((strlen(v112) + 16) >> 4); v13 = alloca(v12); v14 = alloca(v12); - v15 = v110; + v15 = v112; v16 = String; do { @@ -44619,35 +43574,35 @@ LABEL_2: while ( v18 ); LABEL_9: v19 = strdup(String); - v115 = 1; + v117 = 1; if ( !v19 ) - return v115; - v115 = sub_452330((int)v19, v116); + return v117; + v117 = sub_452330((int)v19, v118); } - if ( !v115 ) + if ( !v117 ) { v20 = Str; v21 = Str[1]; - if ( v21 == 47 || v21 == 92 || *v110 != 46 || v110[1] ) + if ( v21 == 47 || v21 == 92 || *v112 != 46 || v112[1] ) { - v20 = &Str[strlen(v110)]; - v50 = *v20; + v20 = &Str[strlen(v112)]; + v51 = *v20; if ( Str >= v20 ) { LABEL_87: - if ( v50 != 47 && v50 != 92 ) + if ( v51 != 47 && v51 != 92 ) { - v101 = 92; + v103 = 92; goto LABEL_93; } } else { - while ( v50 != 47 ) + while ( v51 != 47 ) { - if ( v50 != 92 ) + if ( v51 != 92 ) { - v50 = *--v20; + v51 = *--v20; if ( Str != v20 ) continue; } @@ -44659,248 +43614,248 @@ LABEL_87: do { ++v20; - v51 = v50; - v50 = *v20; + v52 = v51; + v51 = *v20; } while ( *v20 == 47 ); } - while ( v50 == 92 ); - v101 = v51; + while ( v51 == 92 ); + v103 = v52; } else { - if ( (v114 & 0x10) != 0 ) + if ( (v116 & 0x10) != 0 ) { - v88 = Str; - v115 = sub_452290(Str, v114); - if ( !v115 ) + v90 = Str; + v117 = sub_452290(Str, v116); + if ( !v117 ) { - v89 = 16 * ((strlen(v88) + 16) >> 4); - v90 = alloca(v89); - v91 = alloca(v89); - v92 = v88; - v93 = String; + v91 = 16 * ((strlen(v90) + 16) >> 4); + v92 = alloca(v91); + v93 = alloca(v91); + v94 = v90; + v95 = String; do { - v94 = *v92; - if ( *v92 == 127 ) + v96 = *v94; + if ( *v94 == 127 ) { - v94 = v92[1]; - v92 += 2; + v96 = v94[1]; + v94 += 2; } else { - ++v92; + ++v94; } - *v93++ = v94; + *v95++ = v96; } - while ( v94 ); - v76 = strdup(String); - if ( v76 && a4 ) + while ( v96 ); + v78 = strdup(String); + if ( v78 && a4 ) { - sub_452330((int)v76, a4); - v52 = (unsigned int)v117; + sub_452330((int)v78, a4); + v53 = (unsigned int)v119; } else { LABEL_126: - v52 = (unsigned int)v117; + v53 = (unsigned int)v119; } goto LABEL_125; } v20 = Str; } - v101 = 92; - v110 = 0; + v103 = 92; + v112 = 0; } LABEL_93: - v52 = (unsigned int)v117; - v115 = 2; - v53 = *v117; - if ( *v117 ) + v53 = (unsigned int)v119; + v117 = 2; + v54 = *v119; + if ( *v119 ) { - v108 = v20; - v54 = (char *)v117; - Str = (char *)(v114 & 0x8000); + v110 = v20; + v55 = (char *)v119; + Str = (char *)(v116 & 0x8000); while ( 1 ) { - if ( v115 == 1 ) + if ( v117 == 1 ) goto LABEL_98; - v113 = __mingw_opendir(v53); - if ( v113 ) + v115 = __mingw_opendir(v54); + if ( v115 ) { Size = 0; - if ( v110 ) - Size = strlen(*(const char **)v54); - v106 = 0; - v102 = Size + 2; + if ( v112 ) + Size = strlen(*(const char **)v55); + v108 = 0; + v104 = Size + 2; while ( 1 ) { - v58 = __mingw_readdir(v113); - v59 = v58; - if ( !v58 ) + v59 = __mingw_readdir(v115); + v60 = v59; + if ( !v59 ) break; - if ( !Str || *(_DWORD *)(v58 + 8) == 16 ) + if ( !Str || *(_DWORD *)(v59 + 8) == 16 ) { - v60 = (const void *)(v58 + 12); - if ( !sub_452060(v108, (_BYTE *)(v58 + 12), v114) ) + v61 = (const void *)(v59 + 12); + if ( !sub_452060(v110, (_BYTE *)(v59 + 12), v116) ) { - v61 = *(unsigned __int16 *)(v59 + 6); - v105 = (const char **)&v96; - v62 = 16 * ((v61 + v102 + 15) >> 4); - v63 = alloca(v62); - v64 = alloca(v62); - v65 = String; - v104 = String; + v62 = *(unsigned __int16 *)(v60 + 6); + v107 = (const char **)&v98; + v63 = 16 * ((v62 + v104 + 15) >> 4); + v64 = alloca(v63); + v65 = alloca(v63); v66 = String; + v106 = String; + v67 = String; if ( Size ) { - v77 = Size; - v78 = *(const char **)v54; - v100 = v61; - v103 = String; - memcpy(String, v78, Size); - v79 = String[v77 - 1]; - v65 = v103; - v61 = v100; - if ( v79 == 47 || v79 == 92 ) + v79 = Size; + v80 = *(const char **)v55; + v102 = v62; + v105 = String; + memcpy(String, v80, Size); + v81 = String[v79 - 1]; + v66 = v105; + v62 = v102; + if ( v81 == 47 || v81 == 92 ) { - v66 = &v103[Size]; + v67 = &v105[Size]; } else { - v80 = Size; - v103[Size] = v101; - v66 = &v65[v80 + 1]; + v82 = Size; + v105[Size] = v103; + v67 = &v66[v82 + 1]; } } - v103 = v65; - memcpy(v66, v60, v61 + 1); - v67 = 16 * ((strlen(v103) + 16) >> 4); - v68 = alloca(v67); - v69 = v104; - v70 = alloca(v67); - v103 = String; - v71 = String; + v105 = v66; + memcpy(v67, v61, v62 + 1); + v68 = 16 * ((strlen(v105) + 16) >> 4); + v69 = alloca(v68); + v70 = v106; + v71 = alloca(v68); + v105 = String; + v72 = String; do { while ( 1 ) { - v72 = *v69; - if ( *v69 == 127 ) + v73 = *v70; + if ( *v70 == 127 ) break; - ++v71; - ++v69; - *(v71 - 1) = v72; - if ( !v72 ) + ++v72; + ++v70; + *(v72 - 1) = v73; + if ( !v73 ) goto LABEL_114; } - v73 = v69[1]; - ++v71; - v69 += 2; - *(v71 - 1) = v73; + v74 = v70[1]; + ++v72; + v70 += 2; + *(v72 - 1) = v74; } - while ( v73 ); + while ( v74 ); LABEL_114: - v74 = strdup(v103); - if ( v74 ) + v75 = strdup(v105); + if ( v75 ) { - v115 = v115 == 2 ? 0 : v115; - if ( (v114 & 0x40) != 0 ) + v117 = v117 == 2 ? 0 : v117; + if ( (v116 & 0x40) != 0 ) { if ( a4 ) - sub_452330((int)v74, a4); + sub_452330((int)v75, a4); } else { - v81 = v106; - if ( v106 ) + v83 = v108; + if ( v108 ) { - v104 = v54; - v82 = v114 & 0x4000; + v106 = v55; + v84 = v116 & 0x4000; while ( 1 ) { - v85 = (const char *)v81[2]; - v96 = v74; - v97 = v85; - if ( v82 ) - v83 = (char *)strcoll(v96, v97); + v87 = (const char *)v83[2]; + v98 = v75; + v99 = v87; + if ( v84 ) + v85 = (char *)strcoll(v98, v99); else - v83 = (char *)stricoll(v96, v97); - v84 = (_DWORD *)v81[1]; - if ( (int)v83 <= 0 ) - v84 = (_DWORD *)*v81; - if ( !v84 ) + v85 = (char *)stricoll(v98, v99); + v86 = (_DWORD *)v83[1]; + if ( (int)v85 <= 0 ) + v86 = (_DWORD *)*v83; + if ( !v86 ) break; - v81 = v84; + v83 = v86; } - v54 = v104; - v104 = v83; - v86 = malloc(0xCu); - v87 = v104; - if ( v86 ) + v55 = v106; + v106 = v85; + v88 = malloc(0xCu); + v89 = v106; + if ( v88 ) { - v86[2] = v74; - v86[1] = 0; - *v86 = 0; - if ( (int)v87 <= 0 ) - *v81 = v86; + v88[2] = v75; + v88[1] = 0; + *v88 = 0; + if ( (int)v89 <= 0 ) + *v83 = v88; else - v81[1] = v86; + v83[1] = v88; } } else { - v106 = malloc(0xCu); - if ( v106 ) + v108 = malloc(0xCu); + if ( v108 ) { - v95 = v106; - v106[2] = v74; - v95[1] = 0; - *v95 = 0; + v97 = v108; + v108[2] = v75; + v97[1] = 0; + *v97 = 0; } } } } else { - v115 = 3; + v117 = 3; } } } } - __mingw_closedir(v113); - if ( v106 ) - sub_452390(v106, a4, v75); + __mingw_closedir(v115); + if ( v108 ) + sub_452390(v108, a4, v77); goto LABEL_99; } - if ( (v114 & 4) != 0 || (v55 = v112) != 0 && (v56 = _errno(), v55(*(_DWORD *)v54, *v56)) ) + if ( (v116 & 4) != 0 || (v56 = v114) != 0 && (v57 = _errno(), v56(*(_DWORD *)v55, *v57)) ) LABEL_98: - v115 = 1; + v117 = 1; LABEL_99: - v57 = *(const char **)v54; - v54 += 4; - __mingw_free((unsigned int)v57); - v53 = *(char **)v54; - if ( !*(_DWORD *)v54 ) + v58 = *(const char **)v55; + v55 += 4; + __mingw_free((unsigned int)v58); + v54 = *(char **)v55; + if ( !*(_DWORD *)v55 ) goto LABEL_126; } } LABEL_125: - __mingw_free(v52); - return v115; + __mingw_free(v53); + return v117; } } - return v115; + return v117; } - v108 = (char *)&v96; + v110 = (char *)&v98; v22 = a1; v23 = 16 * ((strlen(a1) + 16) >> 4); v24 = alloca(v23); v25 = *v22; v26 = alloca(v23); v27 = String; - v109 = String; + v111 = String; while ( 1 ) { LABEL_19: @@ -44939,12 +43894,12 @@ LABEL_23: } v25 = v22[1]; v30 = v22; - v110 = v22; - v115 = v28; + v112 = v22; + v117 = v28; v31 = v22 + 1; v32 = 1; v33 = v25; - v113 = 44; + v115 = 44; for ( i = v25 <= 123; v33 == 123; i = v33 <= 123 ) { v33 = v30[2]; @@ -44966,11 +43921,11 @@ LABEL_32: goto LABEL_33; } v33 = v30[2]; - v113 = 123; + v115 = 123; v30 = v31; goto LABEL_33; } - v36 = v115; + v36 = v117; LABEL_57: *v27 = 123; v22 = (char *)v36; @@ -44989,15 +43944,15 @@ LABEL_57: } if ( --v32 ) goto LABEL_31; - v35 = v110; - v36 = v115; - if ( v113 != 123 ) + v35 = v112; + v36 = v117; + if ( v115 != 123 ) goto LABEL_57; - v115 = (int)v27; - v37 = v114; + v117 = (int)v27; + v37 = v116; while ( 2 ) { - v38 = (char *)v115; + v38 = (char *)v117; v39 = 1; if ( v25 != 127 ) { @@ -45099,24 +44054,25 @@ LABEL_72: *(v40 - 1) = v48; } while ( v48 ); + v49 = v37; v37 |= 1u; - v49 = sub_452430(a4); - if ( v49 == 1 ) + v50 = sub_452430(v111, v49, (int)v114, a4); + if ( v50 == 1 ) return 1; if ( *v35 == 44 ) { v25 = v35[1]; continue; } - return v49; + return v50; } } -// 452AF1: variable 'v75' is possibly undefined +// 452AF1: variable 'v77' is possibly undefined // 452430: using guessed type _DWORD var_28[2]; // 452430: using guessed type char String[4]; //----- (00452CD0) -------------------------------------------------------- -int *__cdecl __mingw_glob(char *Str, int a2, int a3, char **a4) +int *__cdecl __mingw_glob(char *Str, int a2, int (__cdecl *a3)(_DWORD, int), char **a4) { char *v4; // ebx int v5; // ecx @@ -45329,7 +44285,7 @@ LABEL_24: *(_WORD *)MaxCount = 46; *(_WORD *)(MaxCount + 2) = 0; MaxCount = wcstombs(0, &Dest, 0) + 1; - dword_78B3C0 = (int)__mingw_realloc(dword_78B3C0, MaxCount); + dword_78B3C0 = __mingw_realloc(dword_78B3C0, MaxCount); v4 = (char *)dword_78B3C0; wcstombs((char *)dword_78B3C0, &Dest, MaxCount); goto LABEL_29; @@ -45428,7 +44384,7 @@ LABEL_29: { LABEL_5: v3 = wcstombs(0, L".", 0) + 1; - dword_78B3C0 = (int)__mingw_realloc(dword_78B3C0, v3); + dword_78B3C0 = __mingw_realloc(dword_78B3C0, v3); wcstombs((char *)dword_78B3C0, L".", v3); setlocale(2, v2); __mingw_free((unsigned int)v2); @@ -45816,7 +44772,7 @@ int __cdecl __mingw_mbtowc_convert(LPCCH lpMultiByteStr, int a2, LPWSTR lpWideCh // 515090: using guessed type size_t dword_515090[4]; //----- (004538B0) -------------------------------------------------------- -int __cdecl __mingw_mbrscan_begin(_WORD **a1, int *a2, int *a3, unsigned int *a4) +int __cdecl __mingw_mbrscan_begin(_WORD **a1, int *a2, unsigned int *a3, unsigned int *a4) { unsigned int v4; // eax unsigned int v5; // esi @@ -45834,7 +44790,7 @@ int __cdecl __mingw_mbrscan_begin(_WORD **a1, int *a2, int *a3, unsigned int *a4 int v18; // [esp+14h] [ebp-38h] int v19; // [esp+18h] [ebp-34h] int v20; // [esp+1Ch] [ebp-30h] - int v21; // [esp+1Ch] [ebp-30h] + unsigned int v21; // [esp+1Ch] [ebp-30h] WCHAR v22[2]; // [esp+24h] [ebp-28h] BYREF CHAR v23[4]; // [esp+28h] [ebp-24h] BYREF int v24; // [esp+2Ch] [ebp-20h] @@ -45913,7 +44869,7 @@ LABEL_13: *a1 = v13 + 1; *v13 = v22[0]; v21 = *a3; - if ( *a3 < (unsigned int)v12 ) + if ( *a3 < v12 ) { if ( v12 > 1 ) { @@ -46116,12 +45072,12 @@ size_t __cdecl wcrtomb(char *Dest, wchar_t Source, mbstate_t *State) //----- (00453DD0) -------------------------------------------------------- int __cdecl wctob(wint_t WCh) { - WCHAR v2[9]; // [esp+1Ch] [ebp-20h] BYREF - CHAR v3[13]; // [esp+2Fh] [ebp-Dh] BYREF + __int16 v2[9]; // [esp+1Ch] [ebp-20h] BYREF + char v3[13]; // [esp+2Fh] [ebp-Dh] BYREF v2[0] = WCh; __mingw_wctomb_codeset_init(); - if ( __mingw_wctomb_convert(v3, 1, v2, 1) == 1 ) + if ( __mingw_wctomb_convert(v3, 1, (WCHAR *)v2, 1) == 1 ) return (unsigned __int8)v3[0]; else return -1; @@ -46280,7 +45236,7 @@ wchar_t *__cdecl wmemset(wchar_t *S, wchar_t C, size_t N) int __cdecl __gethex_D2A(unsigned __int8 **a1, int *a2, int *a3, int **a4, int a5) { char *decimal_point; // ebp - unsigned __int8 *v6; // ebx + int v6; // ebx unsigned __int8 v7; // dl unsigned __int8 *v8; // eax int v9; // ecx @@ -46316,7 +45272,7 @@ int __cdecl __gethex_D2A(unsigned __int8 **a1, int *a2, int *a3, int **a4, int a unsigned int v39; // eax int *v40; // edx int v41; // eax - _BYTE *v42; // edx + unsigned __int8 *v42; // edx int v43; // eax int v44; // eax int v45; // ecx @@ -46326,7 +45282,7 @@ int __cdecl __gethex_D2A(unsigned __int8 **a1, int *a2, int *a3, int **a4, int a unsigned int v50; // eax unsigned int v51; // eax int v52; // esi - signed int v53; // esi + int v53; // esi int v54; // edi int v55; // ebx int v56; // eax @@ -46367,12 +45323,12 @@ int __cdecl __gethex_D2A(unsigned __int8 **a1, int *a2, int *a3, int **a4, int a if ( !byte_78B450 ) hexdig_init_D2A(); *a4 = 0; - v6 = *a1; + v6 = (int)*a1; v7 = (*a1)[2]; if ( v7 == 48 ) { - v8 = v6 + 3; - v9 = -2 - (_DWORD)v6; + v8 = (unsigned __int8 *)(v6 + 3); + v9 = -2 - v6; do { v10 = (int)&v8[v9]; @@ -46383,7 +45339,7 @@ int __cdecl __gethex_D2A(unsigned __int8 **a1, int *a2, int *a3, int **a4, int a } else { - v11 = v6 + 2; + v11 = (unsigned __int8 *)(v6 + 2); v10 = 0; } v12 = *decimal_point; @@ -46558,8 +45514,8 @@ LABEL_15: } v15 = v42 + 1; v44 = v43 - 16; - v45 = (unsigned __int8)__hexdig_D2A[(unsigned __int8)v42[1]]; - if ( (unsigned __int8)(__hexdig_D2A[(unsigned __int8)v42[1]] - 1) <= 0x18u ) + v45 = (unsigned __int8)__hexdig_D2A[v42[1]]; + if ( (unsigned __int8)(__hexdig_D2A[v42[1]] - 1) <= 0x18u ) { v87 = v11; v46 = 0; @@ -46694,7 +45650,7 @@ LABEL_71: { v62 = v54 - v53; v83 -= v62; - v85 = __lshift_D2A(v85, v62); + v85 = __lshift_D2A((char *)v85, v62); v86 = v85 + 5; } } @@ -47116,13 +46072,13 @@ _DWORD *__cdecl __copybits_D2A(_DWORD *a1, int a2, int a3) { _DWORD *result; // eax _DWORD *v4; // esi - unsigned int v5; // ecx + _DWORD *v5; // ecx unsigned int v6; // edx _DWORD *v7; // edi result = a1; v4 = (_DWORD *)(a3 + 20); - v5 = (unsigned int)&a1[((a2 - 1) >> 5) + 1]; + v5 = &a1[((a2 - 1) >> 5) + 1]; v6 = a3 + 20 + 4 * *(_DWORD *)(a3 + 16); if ( a3 + 20 >= v6 ) goto LABEL_6; @@ -47131,7 +46087,7 @@ _DWORD *__cdecl __copybits_D2A(_DWORD *a1, int a2, int a3) *v7++ = *v4++; while ( v6 > (unsigned int)v4 ); result = &a1[((v6 - a3 - 21) >> 2) + 1]; - while ( v5 > (unsigned int)result ) + while ( v5 > result ) { *result++ = 0; LABEL_6: @@ -47311,16 +46267,16 @@ int hexdig_init_D2A() } //----- (00455040) -------------------------------------------------------- -int __usercall sub_455040@(int *a1@) +int __usercall sub_455040@(char **a1@) { - _BYTE *v1; // edx + char *v1; // edx char v2; // bl int v3; // esi int v4; // edx - v1 = (_BYTE *)*a1; - v2 = *(_BYTE *)*a1; - v3 = *a1 + 1; + v1 = *a1; + v2 = **a1; + v3 = (int)(*a1 + 1); switch ( v2 ) { case 'I': @@ -47336,7 +46292,7 @@ int __usercall sub_455040@(int *a1@) if ( v1[1] != 54 || v1[2] != 52 ) { LABEL_3: - v1 = (_BYTE *)(*a1 + 1); + v1 = *a1 + 1; goto LABEL_4; } v3 = (int)(v1 + 3); @@ -47345,7 +46301,7 @@ LABEL_14: } break; case 'L': - *a1 = v3; + *a1 = (char *)v3; return 76; case 'h': case 'l': @@ -47375,7 +46331,7 @@ LABEL_5: v4 = 0; break; } - *a1 = v3; + *a1 = (char *)v3; return v4; } // 4550A9: conditional instruction was optimized away because ecx.4==49 @@ -47392,7 +46348,7 @@ int *__usercall sub_455100@(int a1@, __int64 a2, int a3, int a4, int a long double v17; // [esp+20h] [ebp-2Ch] BYREF int v18; // [esp+2Ch] [ebp-20h] int v19; // [esp+38h] [ebp-14h] BYREF - int *v20; // [esp+3Ch] [ebp-10h] BYREF + char *v20; // [esp+3Ch] [ebp-10h] BYREF *(_QWORD *)&v17 = a2; HIDWORD(v17) = a3; @@ -47907,7 +46863,7 @@ int __usercall sub_455840@(int a1@, int a2@) } //----- (00455880) -------------------------------------------------------- -int __usercall sub_455880@(unsigned int a1@, unsigned int a2@, int a3@) +int __usercall sub_455880@(unsigned int a1@, unsigned int a2@, _DWORD *a3@) { unsigned __int64 v3; // rdi _DWORD *v4; // ebx @@ -47952,9 +46908,9 @@ int __usercall sub_455880@(unsigned int a1@, unsigned int a2@, in int v44; // [esp+2Ch] [ebp-1Ch] v3 = __PAIR64__(a1, a2); - v4 = (_DWORD *)a3; - v44 = (*(_DWORD *)(a3 + 12) & ~(*(int *)(a3 + 12) >> 31)) + 23; - v5 = sub_455580(a3); + v4 = a3; + v44 = (a3[3] & ~((int)a3[3] >> 31)) + 23; + v5 = sub_455580((int)a3); v6 = v44; if ( v5 ) v6 = 2 * v44; @@ -48167,7 +47123,7 @@ LABEL_42: } //----- (00455C50) -------------------------------------------------------- -int __usercall sub_455C50@(int a1@, _BYTE *a2@, int a3@, int a4) +int __usercall sub_455C50@(int a1@, char *a2@, int a3@, int a4) { int v5; // esi int v6; // ebx @@ -48195,7 +47151,7 @@ int __usercall sub_455C50@(int a1@, _BYTE *a2@, int a3@, int char *v28; // edx int v29; // ecx int v30; // eax - _BYTE *v32; // [esp+8h] [ebp-24h] + char *v32; // [esp+8h] [ebp-24h] int v33; // [esp+Ch] [ebp-20h] int v34; // [esp+Ch] [ebp-20h] @@ -48347,7 +47303,7 @@ LABEL_23: { v16 = 48; if ( *v32 ) - v16 = (char)*v32++; + v16 = *v32++; sub_455200(v16, a4); if ( !--v8 ) { @@ -48417,7 +47373,7 @@ LABEL_47: } //----- (00455FC0) -------------------------------------------------------- -int __usercall sub_455FC0@(int a1@, _BYTE *a2@, int a3@, _DWORD *a4) +int __usercall sub_455FC0@(int a1@, char *a2@, int a3@, _DWORD *a4) { int v4; // ecx int i; // ebx @@ -48446,7 +47402,7 @@ int __usercall sub_455FC0@(int a1@, _BYTE *a2@, int a3@, _DW a4[1] = v9 | 0x1C0; sub_455200(v9 & 0x20 | 0x45, (int)a4); a4[2] += v6 + 1; - return sub_455880(v12, HIDWORD(v12), (int)a4); + return sub_455880(v12, HIDWORD(v12), a4); } //----- (00456090) -------------------------------------------------------- @@ -48477,7 +47433,7 @@ void __usercall sub_456090(_DWORD *a1@, long double a2) if ( v8 == -32768 ) sub_455460(v7, (int)v5, (int)a1); else - sub_455FC0(v7, v5, v8, a1); + sub_455FC0(v7, (char *)v5, v8, a1); __freedtoa(v6); } @@ -48509,7 +47465,7 @@ void __usercall sub_456140(int a1@, long double a2) } else { - sub_455C50(v7, v4, v8, a1); + sub_455C50(v7, (char *)v4, v8, a1); while ( 1 ) { v6 = *(_DWORD *)(a1 + 8); @@ -48570,7 +47526,7 @@ void __usercall sub_456210(_DWORD *a1@, long double a2) else v10 = strlen((const char *)Str) - 1; a1[3] = v10; - sub_455FC0(v13, Str, v5, a1); + sub_455FC0(v13, (char *)Str, v5, a1); __freedtoa(Str); } else @@ -48590,7 +47546,7 @@ void __usercall sub_456210(_DWORD *a1@, long double a2) a1[2] = v12 + v11; } } - sub_455C50(v13, Str, v5, (int)a1); + sub_455C50(v13, (char *)Str, v5, (int)a1); while ( 1 ) { v9 = a1[2]; @@ -48898,13 +47854,13 @@ LABEL_40: sub_455200(a1[1] & 0x20 | 0x50, (int)a1); a1[2] += v19; a1[1] |= 0x1C0u; - return sub_455880(v38, v38 >> 31, (int)a1); + return sub_455880(v38, v38 >> 31, a1); } // 532BD9: using guessed type void *off_532BD9; // 532BDD: using guessed type void *off_532BDD; //----- (00456950) -------------------------------------------------------- -int __usercall sub_456950@(int a1@, int a2@, int a3@, int a4) +int *__usercall sub_456950@(int a1@, unsigned int a2@, unsigned int a3@, int a4) { unsigned __int64 v4; // rdi signed int v5; // ebx @@ -48918,7 +47874,7 @@ int __usercall sub_456950@(int a1@, int a2@, int a3@, int a4 int v13; // edx int v14; // eax int v15; // edi - int result; // eax + int *result; // eax bool v17; // zf int v18; // edi int v19; // esi @@ -48936,11 +47892,11 @@ int __usercall sub_456950@(int a1@, int a2@, int a3@, int a4 char v31; // al int *v32; // ecx int v33; // [esp+0h] [ebp-38h] BYREF - int v34; // [esp+4h] [ebp-34h] + unsigned int v34; // [esp+4h] [ebp-34h] int v35; // [esp+8h] [ebp-30h] int v36; // [esp+Ch] [ebp-2Ch] int v37; // [esp+10h] [ebp-28h] - int v38; // [esp+14h] [ebp-24h] + unsigned int v38; // [esp+14h] [ebp-24h] int *v39; // [esp+18h] [ebp-20h] int v40; // [esp+1Ch] [ebp-1Ch] @@ -49103,7 +48059,7 @@ LABEL_42: if ( v18 <= 0 ) { LABEL_22: - result = (int)v39; + result = v39; if ( v39 >= v12 ) return result; v19 = v18 - 1; @@ -49112,7 +48068,7 @@ LABEL_24: v20 = v12; v21 = a4; v40 = v18; - v22 = result; + v22 = (unsigned int)result; goto LABEL_25; } v24 = v18 - 1; @@ -49125,7 +48081,7 @@ LABEL_44: v28 = v24--; } while ( v28 > 0 ); - result = (int)v39; + result = v39; v19 = -2; v18 = -1; if ( v39 >= v12 ) @@ -49156,9 +48112,9 @@ LABEL_44: { LABEL_27: sub_455200(32, a4); - result = v24--; + result = (int *)v24--; } - while ( result > 0 ); + while ( (int)result > 0 ); return result; } LABEL_18: @@ -49166,7 +48122,7 @@ LABEL_18: if ( v35 > v14 ) goto LABEL_37; LABEL_19: - result = a4; + result = (int *)a4; v17 = v37 == 111; *(_DWORD *)(a4 + 8) = -1; if ( !v17 ) @@ -49196,7 +48152,7 @@ LABEL_60: LABEL_25: v23 = *((char *)v20 - 1); v20 = (int *)((char *)v20 - 1); - result = sub_455200(v23, v21); + result = (int *)sub_455200(v23, v21); } while ( v22 < (unsigned int)v20 ); v24 = (int)v39; @@ -49309,8 +48265,8 @@ int __cdecl __mingw_pformat(__int16 a1, int a2, int a3, char *a4, double *a5) char *v104; // ebx bool v105; // zf int v106; // eax - int *v107; // eax - int v108; // eax + unsigned int *v107; // eax + unsigned int v108; // eax long double v109; // fst7 double *v110; // edx int v111; // eax @@ -49420,7 +48376,7 @@ int __cdecl __mingw_pformat(__int16 a1, int a2, int a3, char *a4, double *a5) { LABEL_16: LODWORD(v141) = v11; - sub_455040((int *)&v141); + sub_455040((char **)&v141); v17 = (_BYTE *)LODWORD(v141); LOBYTE(v139) = *(_BYTE *)LODWORD(v141); v18 = strchr("aAeEfFgGcCdiouxXnpsS", (char)v139); @@ -49510,7 +48466,7 @@ LABEL_206: } } } - sub_455040((int *)&v141); + sub_455040((char **)&v141); v17 = (_BYTE *)LODWORD(v141); LOBYTE(v137) = *(_BYTE *)LODWORD(v141); v52 = strchr("aAeEfFgGcCdiouxXnpsS", (char)v137); @@ -49681,7 +48637,7 @@ LABEL_28: } } LODWORD(v141) = v77; - sub_455040((int *)&v141); + sub_455040((char **)&v141); v30 = (char *)LODWORD(v141); if ( *(_BYTE *)LODWORD(v141) != 37 ) goto LABEL_25; @@ -49749,14 +48705,14 @@ LABEL_37: v128 = sub_455660(&v141); if ( !v128 ) { - sub_455040((int *)&v141); + sub_455040((char **)&v141); v37 = LODWORD(v141); LOBYTE(v135) = *(_BYTE *)LODWORD(v141); goto LABEL_97; } ++LODWORD(v141); LABEL_38: - v35 = sub_455040((int *)&v141); + v35 = sub_455040((char **)&v141); if ( v35 == 1 ) v36 = 0; else @@ -50013,7 +48969,7 @@ LABEL_88: case 't': case 'z': a4 = v64; - v83 = sub_455040((int *)&a4); + v83 = sub_455040(&a4); v64 = a4; v137 = v83; if ( v65 != 108 || (byte_78B3CD & 1) == 0 || v83 != 2 ) @@ -50060,7 +49016,7 @@ LABEL_139: LABEL_140: if ( v65 != 117 ) { - sub_456950(v65, SLODWORD(v141), SHIDWORD(v141), (int)&v142); + sub_456950(v65, LODWORD(v141), HIDWORD(v141), (int)&v142); v63 = a4; goto LABEL_80; } @@ -50134,7 +49090,7 @@ LABEL_226: *(_QWORD *)&v141 = (__int16)v85; } LABEL_147: - sub_455880(LODWORD(v141), HIDWORD(v141), (int)&v142); + sub_455880(LODWORD(v141), HIDWORD(v141), &v142); v63 = a4; goto LABEL_80; case 'e': @@ -50238,10 +49194,10 @@ LABEL_201: v143 = v106; } } - v107 = (int *)v62; + v107 = (unsigned int *)v62; v62 = (double *)((char *)v62 + 4); v108 = *v107; - *(_QWORD *)&v141 = (unsigned int)v108; + *(_QWORD *)&v141 = v108; sub_456950(120, v108, 0, (int)&v142); v63 = a4; goto LABEL_80; @@ -50297,8 +49253,8 @@ unsigned int __cdecl __mingw_memalign_base(unsigned int a1, unsigned int *a2) unsigned int v3; // esi int v4; // edx int v5; // ebx - int *v6; // ecx - int v7; // edi + unsigned int *v6; // ecx + unsigned int v7; // edi int v8; // esi int v9; // edx int v10; // [esp+0h] [ebp-18h] @@ -50314,7 +49270,7 @@ unsigned int __cdecl __mingw_memalign_base(unsigned int a1, unsigned int *a2) { v4 = *(_DWORD *)((a1 - 4) & 0xFFFFFFFC); v5 = v4 & 3; - v6 = (int *)(v4 & 0xFFFFFFFC); + v6 = (unsigned int *)(v4 & 0xFFFFFFFC); a2[1] = v5; *a2 = v4 & 0xFFFFFFFC; if ( v3 <= (v4 & 0xFFFFFFFC) && (unsigned int)v6 <= a1 - 8 ) @@ -50337,7 +49293,7 @@ unsigned int __cdecl __mingw_memalign_base(unsigned int a1, unsigned int *a2) if ( v9 ) { v9 = v6[(unsigned int)(v5 + 1) >> 2]; - v6 = (int *)((char *)v6 + v9); + v6 = (unsigned int *)((char *)v6 + v9); } a2[3] = v9; if ( v5 == 3 ) @@ -50353,7 +49309,7 @@ unsigned int __cdecl __mingw_memalign_base(unsigned int a1, unsigned int *a2) // 78B3D0: using guessed type int __mingw_memalign_lwm; //----- (00457D40) -------------------------------------------------------- -void *__cdecl __mingw_memalign_realloc(int a1, int *a2, size_t a3) +int __cdecl __mingw_memalign_realloc(int a1, int *a2, size_t a3) { size_t v3; // eax int v4; // edx @@ -50377,7 +49333,7 @@ void *__cdecl __mingw_memalign_realloc(int a1, int *a2, size_t a3) v7 = ___msvcrt_realloc(*a2, v6 + a3); v8 = *a2; if ( *a2 == v7 ) - return (void *)a1; + return a1; v9 = 0; if ( v7 ) { @@ -50398,7 +49354,7 @@ void *__cdecl __mingw_memalign_realloc(int a1, int *a2, size_t a3) } *(_DWORD *)(((int)v13 - 4) & 0xFFFFFFFC) = *a2; } - return v9; + return (int)v9; } // 78B3D0: using guessed type int __mingw_memalign_lwm; // 78C408: using guessed type int __cdecl ___msvcrt_realloc(_DWORD, _DWORD); @@ -50478,7 +49434,7 @@ UINT __cdecl __mb_cur_max_for_codeset(UINT CodePage) } //----- (00457F80) -------------------------------------------------------- -int __cdecl __mingw_mbrtowc_handler(_WORD *a1, int a2, unsigned int a3, _DWORD *a4) +unsigned int __cdecl __mingw_mbrtowc_handler(_WORD *a1, int a2, unsigned int a3, _DWORD *a4) { int v4; // eax unsigned int v5; // eax @@ -50609,7 +49565,7 @@ UINT __cdecl __mingw_wctomb_convert(LPSTR lpMultiByteStr, int cbMultiByte, WCHAR WCHAR i; // dx WCHAR v8; // dx int v9; // ecx - LPCWCH v10; // ebp + WCHAR *v10; // ebp WCHAR v11; // dx __int16 v12; // dx int v13; // eax @@ -50745,7 +49701,7 @@ LABEL_32: // 5150C4: using guessed type size_t dword_5150C4[4]; //----- (00458410) -------------------------------------------------------- -int *__cdecl __gdtoa(int *a1, int a2, int *a3, int *a4, int a5, int a6, int *a7, int **a8) +int *__cdecl __gdtoa(int *a1, int a2, int *a3, int *a4, int a5, int a6, int *a7, char **a8) { int v8; // ebp int v9; // eax @@ -50762,7 +49718,7 @@ int *__cdecl __gdtoa(int *a1, int a2, int *a3, int *a4, int a5, int a6, int *a7, int v20; // ebx int v21; // eax unsigned int v22; // edx - unsigned int v23; // eax + int v23; // eax double v24; // rax int v25; // ecx int v26; // edx @@ -50794,13 +49750,13 @@ int *__cdecl __gdtoa(int *a1, int a2, int *a3, int *a4, int a5, int a6, int *a7, long double v53; // fst6 int v54; // edx int v55; // ebp - signed int v56; // eax + int v56; // eax int v57; // eax int *v58; // eax bool v59; // bl char v60; // bl int v61; // ebx - signed int v62; // eax + int v62; // eax int v63; // eax bool v64; // dl unsigned int v65; // ebx @@ -50839,7 +49795,7 @@ int *__cdecl __gdtoa(int *a1, int a2, int *a3, int *a4, int a5, int a6, int *a7, bool v98; // cc int *v99; // edi int *v100; // eax - int *v101; // ebx + char *v101; // ebx long double v102; // fst6 int v103; // eax int v104; // [esp+18h] [ebp-84h] @@ -50876,11 +49832,11 @@ int *__cdecl __gdtoa(int *a1, int a2, int *a3, int *a4, int a5, int a6, int *a7, int v135; // [esp+50h] [ebp-4Ch] int v136; // [esp+54h] [ebp-48h] char v137; // [esp+58h] [ebp-44h] - signed int v138; // [esp+58h] [ebp-44h] + int v138; // [esp+58h] [ebp-44h] int v139; // [esp+5Ch] [ebp-40h] int v140; // [esp+60h] [ebp-3Ch] int v141; // [esp+64h] [ebp-38h] - unsigned int v142[8]; // [esp+7Ch] [ebp-20h] BYREF + int v142[8]; // [esp+7Ch] [ebp-20h] BYREF v8 = *a4; *a4 &= 0xFFFFFFCF; @@ -51287,12 +50243,12 @@ LABEL_122: v62 = v61; if ( v61 + v131 > 0 ) { - v13 = __lshift_D2A(v13, v61 + v131); + v13 = __lshift_D2A((char *)v13, v61 + v131); v62 = v142[0]; } v63 = v122 + v62; if ( v63 > 0 ) - v106 = __lshift_D2A(v106, v63); + v106 = __lshift_D2A((char *)v106, v63); v64 = a5 > 2; if ( v136 && (v121 = a5 > 2, v77 = __cmp_D2A((int)v13, (int)v106), v64 = a5 > 2, v77 < 0) ) { @@ -51310,7 +50266,7 @@ LABEL_176: v34 = (int *)((char *)v34 + 1); v79 = __quorem_D2A((int)v13, (int)v106) + 48; *((_BYTE *)v34 - 1) = v79; - if ( (int)v142[0] >= v111 ) + if ( v142[0] >= v111 ) break; v78 = __multadd_D2A(v13, 10, 0); ++v142[0]; @@ -51333,7 +50289,7 @@ LABEL_180: else { v114 = v76; - v13 = __lshift_D2A(v13, 1); + v13 = __lshift_D2A((char *)v13, 1); v96 = __cmp_D2A((int)v13, (int)v106); v76 = v114; v97 = v96 == 0; @@ -51424,12 +50380,12 @@ LABEL_106: } v69 = v55 + v61; if ( v69 > 0 ) - v128 = __lshift_D2A(v128, v69); + v128 = __lshift_D2A((char *)v128, v69); v70 = v128; if ( v117 ) { - v101 = __Balloc_D2A(v128[1]); - memcpy(v101 + 3, v128 + 3, 4 * v128[4] + 8); + v101 = (char *)__Balloc_D2A(v128[1]); + memcpy(v101 + 12, v128 + 3, 4 * v128[4] + 8); v70 = __lshift_D2A(v101, 1); } v118 = v32; @@ -51533,7 +50489,7 @@ LABEL_106: goto LABEL_257; } LABEL_252: - v13 = __lshift_D2A(v13, 1); + v13 = __lshift_D2A((char *)v13, 1); v103 = __cmp_D2A((int)v13, (int)v106); if ( v103 <= 0 && (v103 || (v120 & 1) == 0) ) { @@ -51754,7 +50710,7 @@ LABEL_241: v126 = v140 + 1; goto LABEL_87; } - if ( (int)++v142[0] >= v138 ) + if ( ++v142[0] >= v138 ) goto LABEL_96; v34 = (int *)((char *)v34 + 1); v45 = v44 * 10.0; @@ -51776,7 +50732,7 @@ LABEL_57: *(_BYTE *)v34 = 0; *a7 = v126; if ( a8 ) - *a8 = v34; + *a8 = (char *)v34; *a4 |= v109; return v32; } @@ -51809,7 +50765,7 @@ int *__cdecl __rv_alloc_D2A(unsigned int a1) } //----- (00459AC0) -------------------------------------------------------- -int *__cdecl __nrv_alloc_D2A(char *a1, _DWORD *a2, unsigned int a3) +int *__cdecl __nrv_alloc_D2A(char *a1, char **a2, unsigned int a3) { int v3; // eax int v4; // edi @@ -51817,7 +50773,7 @@ int *__cdecl __nrv_alloc_D2A(char *a1, _DWORD *a2, unsigned int a3) char *v6; // edx char v7; // cl int *v8; // edi - _BYTE *v9; // eax + char *v9; // eax char v10; // cl if ( a3 <= 0x13 ) @@ -51841,7 +50797,7 @@ int *__cdecl __nrv_alloc_D2A(char *a1, _DWORD *a2, unsigned int a3) v7 = *a1; v8 = v5 + 1; *((_BYTE *)v5 + 4) = *a1; - v9 = v5 + 1; + v9 = (char *)(v5 + 1); if ( v7 ) { do @@ -52164,11 +51120,11 @@ int __cdecl __gthr_win32_recursive_mutex_destroy(__gthread_recursive_mutex_t *mu } //----- (0045A420) -------------------------------------------------------- -char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, int *a3@, int *a4) +char *__usercall read_encoded_value_with_base@(char a1@, char *a2@, char *a3@, int *a4) { int v6; // edx char *result; // eax - _DWORD *v8; // eax + unsigned int v8; // eax int v9; // edx int v10; // ecx int v11; // ebp @@ -52182,9 +51138,9 @@ char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, if ( a1 == 80 ) { - v8 = (_DWORD *)(((unsigned int)a3 + 3) & 0xFFFFFFFC); - v9 = *v8; - result = (char *)(v8 + 1); + v8 = (unsigned int)(a3 + 3) & 0xFFFFFFFC; + v9 = *(_DWORD *)v8; + result = (char *)(v8 + 4); *a4 = v9; } else @@ -52194,11 +51150,11 @@ char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, case 0: case 3: case 0xB: - v6 = *a3; - result = (char *)(a3 + 1); + v6 = *(_DWORD *)a3; + result = a3 + 4; goto LABEL_4; case 1: - result = (char *)a3; + result = a3; v10 = 0; v11 = 0; do @@ -52213,15 +51169,15 @@ char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, goto LABEL_4; case 2: v6 = *(unsigned __int16 *)a3; - result = (char *)a3 + 2; + result = a3 + 2; goto LABEL_4; case 4: case 0xC: - v6 = *a3; - result = (char *)(a3 + 2); + v6 = *(_DWORD *)a3; + result = a3 + 8; goto LABEL_4; case 9: - result = (char *)a3; + result = a3; v14 = 0; v15 = 0; do @@ -52240,7 +51196,7 @@ char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, goto LABEL_5; case 0xA: v6 = *(__int16 *)a3; - result = (char *)a3 + 2; + result = a3 + 2; LABEL_4: if ( !v6 ) goto LABEL_8; @@ -52299,7 +51255,7 @@ unsigned int __usercall execute_cfa_program@( { unsigned int result; // eax unsigned int v6; // edx - int *encoded_value_with_base; // ebx + char *encoded_value_with_base; // ebx char v8; // cl unsigned int v9; // eax int v10; // ecx @@ -52318,7 +51274,7 @@ unsigned int __usercall execute_cfa_program@( int v23; // ecx char v24; // si int v25; // edx - int **v26; // eax + char **v26; // eax int v27; // esi int v28; // ecx char v29; // dl @@ -52374,7 +51330,7 @@ unsigned int __usercall execute_cfa_program@( int v79; // ecx char v80; // si int v81; // edx - int **v82; // eax + char **v82; // eax int v83; // esi int v84; // ecx char v85; // dl @@ -52421,7 +51377,7 @@ unsigned int __usercall execute_cfa_program@( int v126; // edx int v127; // esi int v128; // ecx - int v129; // edi + unsigned int v129; // edi char v130; // dl int v131; // eax int v132; // esi @@ -52429,8 +51385,8 @@ unsigned int __usercall execute_cfa_program@( int v134; // ecx char v135; // dl char v136; // si - int *v137; // eax - int v138; // edi + char *v137; // eax + unsigned int v138; // edi void *v139; // esp void *v140; // esp int v141; // [esp-A0h] [ebp-E8h] BYREF @@ -52438,7 +51394,7 @@ unsigned int __usercall execute_cfa_program@( unsigned int v143; // [esp+14h] [ebp-34h] _DWORD *v144; // [esp+18h] [ebp-30h] unsigned int v145; // [esp+1Ch] [ebp-2Ch] - unsigned int v146[7]; // [esp+2Ch] [ebp-1Ch] BYREF + int v146[7]; // [esp+2Ch] [ebp-1Ch] BYREF result = a4; v143 = a2; @@ -52455,7 +51411,7 @@ unsigned int __usercall execute_cfa_program@( if ( v6 >= result ) break; result = *(unsigned __int8 *)a1; - encoded_value_with_base = (int *)((char *)a1 + 1); + encoded_value_with_base = (char *)a1 + 1; v8 = *(_BYTE *)a1 & 0xC0; switch ( v8 ) { @@ -52470,8 +51426,7 @@ unsigned int __usercall execute_cfa_program@( LOBYTE(v145) = result & 0x3F; do { - v130 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v130 = *encoded_value_with_base++; v131 = (v130 & 0x7F) << v128; v128 += 7; v127 |= v131; @@ -52500,27 +51455,23 @@ LABEL_108: goto LABEL_13; case 1: v136 = *(_BYTE *)(a4 + 184); - v137 = (int *)base_of_encoded_value(v136, v144); - encoded_value_with_base = (int *)read_encoded_value_with_base( - v136, - v137, - encoded_value_with_base, - (int *)v146); + v137 = (char *)base_of_encoded_value(v136, v144); + encoded_value_with_base = read_encoded_value_with_base(v136, v137, encoded_value_with_base, v146); result = v146[0]; *(_DWORD *)(a4 + 164) = v146[0]; goto LABEL_13; case 2: - encoded_value_with_base = (int *)((char *)a1 + 2); + encoded_value_with_base = (char *)a1 + 2; result = *(_DWORD *)(a4 + 176) * *((unsigned __int8 *)a1 + 1); *(_DWORD *)(a4 + 164) = result + v6; goto LABEL_13; case 3: - encoded_value_with_base = (int *)((char *)a1 + 3); + encoded_value_with_base = (char *)a1 + 3; result = *(_DWORD *)(a4 + 176) * *(unsigned __int16 *)((char *)a1 + 1); *(_DWORD *)(a4 + 164) = result + v6; goto LABEL_13; case 4: - encoded_value_with_base = (int *)((char *)a1 + 5); + encoded_value_with_base = (char *)a1 + 5; result = a4; *(_DWORD *)(a4 + 164) = *(int *)((char *)a1 + 1) * *(_DWORD *)(a4 + 176) + v6; goto LABEL_13; @@ -52529,8 +51480,7 @@ LABEL_108: v119 = 0; do { - v120 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v120 = *encoded_value_with_base++; v121 = (v120 & 0x7F) << v119; v119 += 7; v118 |= v121; @@ -52541,8 +51491,7 @@ LABEL_108: v124 = v118; do { - v125 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v125 = *encoded_value_with_base++; v126 = (v125 & 0x7F) << v123; v123 += 7; v122 |= v126; @@ -52559,8 +51508,7 @@ LABEL_108: v115 = 0; do { - v116 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v116 = *encoded_value_with_base++; v117 = (v116 & 0x7F) << v115; v115 += 7; result |= v117; @@ -52574,8 +51522,7 @@ LABEL_108: v112 = 0; do { - v113 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v113 = *encoded_value_with_base++; v114 = (v113 & 0x7F) << v112; v112 += 7; result |= v114; @@ -52589,8 +51536,7 @@ LABEL_108: v109 = 0; do { - v110 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v110 = *encoded_value_with_base++; v111 = (v110 & 0x7F) << v109; v109 += 7; result |= v111; @@ -52604,8 +51550,7 @@ LABEL_108: v101 = 0; do { - v102 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v102 = *encoded_value_with_base++; v103 = (v102 & 0x7F) << v101; v101 += 7; v100 |= v103; @@ -52616,8 +51561,7 @@ LABEL_108: v106 = v100; do { - v107 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v107 = *encoded_value_with_base++; v108 = (v107 & 0x7F) << v105; v105 += 7; v104 |= v108; @@ -52658,8 +51602,7 @@ LABEL_108: v93 = 0; do { - v94 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v94 = *encoded_value_with_base++; v95 = (v94 & 0x7F) << v93; v93 += 7; v92 |= v95; @@ -52670,8 +51613,7 @@ LABEL_108: *(_DWORD *)(a4 + 152) = v92; do { - v98 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v98 = *encoded_value_with_base++; v99 = (v98 & 0x7F) << v97; v97 += 7; v96 |= v99; @@ -52686,8 +51628,7 @@ LABEL_108: v89 = 0; do { - v90 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v90 = *encoded_value_with_base++; v91 = (v90 & 0x7F) << v89; v89 += 7; result |= v91; @@ -52701,8 +51642,7 @@ LABEL_108: v86 = 0; do { - v87 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v87 = *encoded_value_with_base++; v88 = (v87 & 0x7F) << v86; v86 += 7; result |= v88; @@ -52717,22 +51657,20 @@ LABEL_108: *(_DWORD *)(a4 + 160) = 2; do { - v135 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v135 = *encoded_value_with_base++; result = (v135 & 0x7F) << v134; v134 += 7; v133 |= result; } while ( v135 < 0 ); - encoded_value_with_base = (int *)((char *)encoded_value_with_base + v133); + encoded_value_with_base += v133; goto LABEL_13; case 16: v78 = 0; v79 = 0; do { - v80 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v80 = *encoded_value_with_base++; v81 = (v80 & 0x7F) << v79; v79 += 7; v78 |= v81; @@ -52740,30 +51678,28 @@ LABEL_108: while ( v80 < 0 ); if ( v78 <= 0x11 ) { - v82 = (int **)(a4 + 8 * v78); - v82[1] = (int *)3; + v82 = (char **)(a4 + 8 * v78); + v82[1] = (char *)3; *v82 = encoded_value_with_base; } v83 = 0; v84 = 0; do { - v85 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v85 = *encoded_value_with_base++; result = (v85 & 0x7F) << v84; v84 += 7; v83 |= result; } while ( v85 < 0 ); - encoded_value_with_base = (int *)((char *)encoded_value_with_base + v83); + encoded_value_with_base += v83; goto LABEL_13; case 17: v65 = 0; v66 = 0; do { - v67 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v67 = *encoded_value_with_base++; v68 = (v67 & 0x7F) << v66; v66 += 7; v65 |= v68; @@ -52774,8 +51710,7 @@ LABEL_108: v71 = v65; do { - v72 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v72 = *encoded_value_with_base++; v73 = (v72 & 0x7F) << v70; v70 += 7; v69 |= v73; @@ -52800,8 +51735,7 @@ LABEL_105: v57 = 0; do { - v58 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v58 = *encoded_value_with_base++; v59 = (v58 & 0x7F) << v57; v57 += 7; v56 |= v59; @@ -52812,8 +51746,7 @@ LABEL_105: *(_DWORD *)(a4 + 152) = v56; do { - v62 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v62 = *encoded_value_with_base++; v63 = (v62 & 0x7F) << v61; v61 += 7; v60 |= v63; @@ -52831,8 +51764,7 @@ LABEL_105: v53 = 0; do { - v54 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v54 = *encoded_value_with_base++; v55 = (v54 & 0x7F) << v53; v53 += 7; v52 |= v55; @@ -52848,8 +51780,7 @@ LABEL_105: v44 = 0; do { - v45 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v45 = *encoded_value_with_base++; v46 = (v45 & 0x7F) << v44; v44 += 7; v43 |= v46; @@ -52860,8 +51791,7 @@ LABEL_105: v49 = v43; do { - v50 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v50 = *encoded_value_with_base++; v51 = (v50 & 0x7F) << v48; v48 += 7; v47 |= v51; @@ -52878,8 +51808,7 @@ LABEL_105: v31 = 0; do { - v32 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v32 = *encoded_value_with_base++; v33 = (v32 & 0x7F) << v31; v31 += 7; v30 |= v33; @@ -52890,8 +51819,7 @@ LABEL_105: v36 = v30; do { - v37 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v37 = *encoded_value_with_base++; v38 = (v37 & 0x7F) << v35; v35 += 7; v34 |= v38; @@ -52916,8 +51844,7 @@ LABEL_40: v23 = 0; do { - v24 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v24 = *encoded_value_with_base++; v25 = (v24 & 0x7F) << v23; v23 += 7; v22 |= v25; @@ -52925,30 +51852,28 @@ LABEL_40: while ( v24 < 0 ); if ( v22 <= 0x11 ) { - v26 = (int **)(a4 + 8 * v22); - v26[1] = (int *)5; + v26 = (char **)(a4 + 8 * v22); + v26[1] = (char *)5; *v26 = encoded_value_with_base; } v27 = 0; v28 = 0; do { - v29 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v29 = *encoded_value_with_base++; result = (v29 & 0x7F) << v28; v28 += 7; v27 |= result; } while ( v29 < 0 ); - encoded_value_with_base = (int *)((char *)encoded_value_with_base + v27); + encoded_value_with_base += v27; goto LABEL_13; case 46: result = 0; v19 = 0; do { - v20 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v20 = *encoded_value_with_base++; v21 = (v20 & 0x7F) << v19; v19 += 7; result |= v21; @@ -52963,8 +51888,7 @@ LABEL_40: v10 = 0; do { - v11 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v11 = *encoded_value_with_base++; v12 = (v11 & 0x7F) << v10; v10 += 7; v9 |= v12; @@ -52975,8 +51899,7 @@ LABEL_40: v15 = v9; do { - v16 = *(_BYTE *)encoded_value_with_base; - encoded_value_with_base = (int *)((char *)encoded_value_with_base + 1); + v16 = *encoded_value_with_base++; v17 = (v16 & 0x7F) << v14; v14 += 7; v13 |= v17; @@ -52999,7 +51922,7 @@ LABEL_13: if ( v143 <= (unsigned int)encoded_value_with_base ) break; LABEL_14: - a1 = encoded_value_with_base; + a1 = (int *)encoded_value_with_base; } } return result; @@ -53052,7 +51975,7 @@ int __usercall uw_frame_state_for@(dwarf_eh_bases *a1@, _DWORD *a2@(dwarf_eh_bases *a1@, _DWORD *a2@(dwarf_eh_bases *a1@, _DWORD *a2@CIE_delta + FDE->length, a1, v57); + execute_cfa_program(v31, (unsigned int)&FDE->CIE_delta + FDE->length, a1, (unsigned int)v57); return 0; } @@ -53468,7 +52390,7 @@ int __usercall execute_stack_op@(char *a1@, unsigned int a2@, int int result; // eax int v6; // ebp int v7; // eax - char v8; // dl + unsigned __int8 v8; // dl char *v9; // esi int v10; // edi unsigned int v11; // ecx @@ -53486,13 +52408,13 @@ int __usercall execute_stack_op@(char *a1@, unsigned int a2@, int int v23; // ecx int v24; // edx char v25; // si - int *v26; // eax + char *v26; // eax char *v27; // eax int v28; // ebx int v29; // esi int v30; // ecx int v31; // ecx - unsigned __int8 v32; // al + char v32; // al int v33; // edi int v34; // ecx char v35; // dl @@ -53551,23 +52473,23 @@ int __usercall execute_stack_op@(char *a1@, unsigned int a2@, int { switch ( v8 ) { - case 6: + case 6u: v16 = *(_DWORD *)v21; ++a1; goto LABEL_16; - case 25: + case 0x19u: ++a1; v16 = abs32(v21); goto LABEL_16; - case 31: + case 0x1Fu: ++a1; v16 = -v21; goto LABEL_16; - case 32: + case 0x20u: ++a1; v16 = ~v21; goto LABEL_16; - case 35: + case 0x23u: v22 = 0; v23 = 0; do @@ -53589,7 +52511,7 @@ int __usercall execute_stack_op@(char *a1@, unsigned int a2@, int v32 = a1[1]; if ( v32 == 4 ) goto LABEL_116; - if ( v32 > 4u ) + if ( (unsigned __int8)v32 > 4u ) { if ( v32 != 8 ) _execute_stack_op_cold: @@ -53749,71 +52671,71 @@ LABEL_121: v20 = v58[v6 - 2]; switch ( v8 ) { - case 26: + case 0x1Au: ++a1; v16 = v19 & v20; goto LABEL_16; - case 27: + case 0x1Bu: ++a1; v16 = v20 / v19; goto LABEL_16; - case 28: + case 0x1Cu: ++a1; v16 = v20 - v19; goto LABEL_16; - case 29: + case 0x1Du: ++a1; v16 = v20 % (unsigned int)v19; goto LABEL_16; - case 30: + case 0x1Eu: v16 = v19 * v20; ++a1; goto LABEL_16; - case 33: + case 0x21u: ++a1; v16 = v19 | v20; goto LABEL_16; - case 34: + case 0x22u: ++a1; v16 = v19 + v20; goto LABEL_16; - case 36: + case 0x24u: ++a1; v16 = v20 << v19; goto LABEL_16; - case 37: + case 0x25u: ++a1; v16 = (unsigned int)v20 >> v19; goto LABEL_16; - case 38: + case 0x26u: ++a1; v16 = v20 >> v19; goto LABEL_16; - case 39: + case 0x27u: ++a1; v16 = v19 ^ v20; goto LABEL_16; - case 41: + case 0x29u: ++a1; v16 = v20 == v19; goto LABEL_16; - case 42: + case 0x2Au: ++a1; v16 = v20 >= v19; goto LABEL_16; - case 43: + case 0x2Bu: ++a1; v16 = v20 > v19; goto LABEL_16; - case 44: + case 0x2Cu: ++a1; v16 = v20 <= v19; goto LABEL_16; - case 45: + case 0x2Du: ++a1; v16 = v20 < v19; goto LABEL_16; - case 46: + case 0x2Eu: ++a1; v16 = v20 != v19; goto LABEL_16; @@ -54039,8 +52961,8 @@ LABEL_81: case -15: v25 = a1[1]; v17 = v6; - v26 = (int *)base_of_encoded_value(v25, (_DWORD *)a3); - v27 = read_encoded_value_with_base(v25, v26, (int *)(a1 + 2), &v57); + v26 = (char *)base_of_encoded_value(v25, (_DWORD *)a3); + v27 = read_encoded_value_with_base(v25, v26, a1 + 2, &v57); v16 = v57; a1 = v27; goto LABEL_16; @@ -54338,7 +53260,7 @@ int __usercall _Unwind_RaiseException_Phase2@(_DWORD *a1@, dwarf_eh_ba int result; // eax int v7; // edx int v8; // ebp - _DWORD v10[42]; // [esp+30h] [ebp-DCh] BYREF + int v10[42]; // [esp+30h] [ebp-DCh] BYREF int (__cdecl *v11)(int, int, _DWORD, _DWORD, _DWORD *, dwarf_eh_bases *); // [esp+D8h] [ebp-34h] for ( i = 1; ; ++i ) @@ -54964,11 +53886,11 @@ LABEL_13: } //----- (0045CC50) -------------------------------------------------------- -char *__usercall read_encoded_value_with_base_0@(char a1@, int *a2@, int *a3@, int *a4) +char *__usercall read_encoded_value_with_base_0@(char a1@, char *a2@, char *a3@, int *a4) { int v6; // edx char *result; // eax - _DWORD *v8; // eax + unsigned int v8; // eax int v9; // edx int v10; // ecx int v11; // ebp @@ -54982,9 +53904,9 @@ char *__usercall read_encoded_value_with_base_0@(char a1@, int *a2@(char a1@, int *a2@(char a1@, int *a2@(char a1@, int *a2@s.b >> 3; - v4 = (int *)base_from_object(v3, (int)ob); - read_encoded_value_with_base_0(v3, v4, (int *)x->pc_begin, (int *)&x_ptr); - read_encoded_value_with_base_0(*(_WORD *)&ob->s.b >> 3, v4, (int *)y->pc_begin, (int *)y_ptr); + v4 = (char *)base_from_object(v3, (int)ob); + read_encoded_value_with_base_0(v3, v4, (char *)x->pc_begin, (int *)&x_ptr); + read_encoded_value_with_base_0(*(_WORD *)&ob->s.b >> 3, v4, (char *)y->pc_begin, y_ptr); result = 1; if ( x_ptr <= y_ptr[0] ) return -(x_ptr < y_ptr[0]); @@ -55092,7 +54014,7 @@ int __usercall get_cie_encoding@(const dwarf_cie *cie@) char *v8; // edx ubyte *v9; // ebx ubyte i; // dl - _Unwind_Ptr dummy[4]; // [esp+1Ch] [ebp-10h] BYREF + int dummy[4]; // [esp+1Ch] [ebp-10h] BYREF v2 = &cie->version + 1; v3 = strlen((const char *)&cie->version + 1); @@ -55135,8 +54057,8 @@ int __usercall get_cie_encoding@(const dwarf_cie *cie@) encoded_value_with_base_0 = read_encoded_value_with_base_0( *encoded_value_with_base_0 & 0x7F, 0, - (int *)(encoded_value_with_base_0 + 1), - (int *)dummy); + encoded_value_with_base_0 + 1, + dummy); i = *v9; if ( *v9 == 82 ) return (unsigned __int8)*encoded_value_with_base_0; @@ -55161,9 +54083,9 @@ size_t __usercall classify_object_over_fdes@(object *ob@, const fde *t unsigned int v9; // eax int v10; // edx int encoding; // [esp+14h] [ebp-38h] - int *base; // [esp+18h] [ebp-34h] + char *base; // [esp+18h] [ebp-34h] uword count; // [esp+1Ch] [ebp-30h] - _Unwind_Ptr pc_begin[8]; // [esp+2Ch] [ebp-20h] BYREF + int pc_begin[8]; // [esp+2Ch] [ebp-20h] BYREF count = this_fde->length; if ( !this_fde->length ) @@ -55188,7 +54110,7 @@ LABEL_15: { v7 = encoding; LABEL_9: - read_encoded_value_with_base_0(v7, base, (int *)v3->pc_begin, (int *)pc_begin); + read_encoded_value_with_base_0(v7, base, (char *)v3->pc_begin, pc_begin); v9 = size_of_encoded_value(v7); v10 = -1; if ( v9 <= 3 ) @@ -55207,7 +54129,7 @@ LABEL_9: if ( encoding != 255 ) { v7 = encoding; - base = (int *)base_from_object(encoding, (int)ob); + base = (char *)base_from_object(encoding, (int)ob); i = ob->s.i; if ( (i & 0x7F8) == 2040 ) { @@ -55229,7 +54151,7 @@ void __usercall add_fdes(object *ob@, fde_accumulator *accu@, const fd __int16 v5; // ax int cie_encoding; // esi int v7; // eax - int *v8; // edx + char *v8; // edx fde_vector *linear; // eax size_t count; // ecx sword CIE_delta; // eax @@ -55238,7 +54160,7 @@ void __usercall add_fdes(object *ob@, fde_accumulator *accu@, const fd unsigned int v14; // eax const dwarf_cie *last_cie; // [esp+14h] [ebp-38h] _Unwind_Ptr base; // [esp+1Ch] [ebp-30h] - _Unwind_Ptr pc_begin[8]; // [esp+2Ch] [ebp-20h] BYREF + int pc_begin[8]; // [esp+2Ch] [ebp-20h] BYREF v5 = *(_WORD *)&ob->s.b >> 3; cie_encoding = (unsigned __int8)v5; @@ -55246,7 +54168,7 @@ void __usercall add_fdes(object *ob@, fde_accumulator *accu@, const fd if ( this_fde->length ) { last_cie = 0; - v8 = (int *)v7; + v8 = (char *)v7; while ( 1 ) { CIE_delta = this_fde->CIE_delta; @@ -55259,16 +54181,16 @@ void __usercall add_fdes(object *ob@, fde_accumulator *accu@, const fd { cie_encoding = get_cie_encoding((const dwarf_cie *)((char *)&this_fde->CIE_delta - CIE_delta)); last_cie = v12; - v8 = (int *)base_from_object(cie_encoding, (int)ob); + v8 = (char *)base_from_object(cie_encoding, (int)ob); } } if ( cie_encoding ) { base = (_Unwind_Ptr)v8; - read_encoded_value_with_base_0(cie_encoding, v8, (int *)this_fde->pc_begin, (int *)pc_begin); + read_encoded_value_with_base_0(cie_encoding, v8, (char *)this_fde->pc_begin, pc_begin); v13 = -1; v14 = size_of_encoded_value(cie_encoding); - v8 = (int *)base; + v8 = (char *)base; if ( v14 <= 3 ) v13 = (1 << (8 * v14)) - 1; if ( (v13 & pc_begin[0]) != 0 ) @@ -55307,21 +54229,21 @@ const fde *__usercall linear_search_fdes@(object *ob@, const fde *this __int16 v6; // ax int cie_encoding; // esi _Unwind_Ptr v8; // eax - char *v9; // edx + unsigned int v9; // edx sword CIE_delta; // eax const dwarf_cie *v11; // ebp - int *encoded_value_with_base_0; // eax + char *encoded_value_with_base_0; // eax unsigned int v13; // eax int v14; // edx const dwarf_cie *last_cie; // [esp+14h] [ebp-38h] - int *base; // [esp+1Ch] [ebp-30h] + char *base; // [esp+1Ch] [ebp-30h] _Unwind_Ptr pc_begin; // [esp+28h] [ebp-24h] BYREF - _Unwind_Ptr pc_range[8]; // [esp+2Ch] [ebp-20h] BYREF + int pc_range[8]; // [esp+2Ch] [ebp-20h] BYREF v6 = *(_WORD *)&ob->s.b >> 3; cie_encoding = (unsigned __int8)v6; last_cie = 0; - for ( base = (int *)base_from_object(v6, (int)ob); + for ( base = (char *)base_from_object(v6, (int)ob); this_fde->length; this_fde = (const fde *)((char *)this_fde + this_fde->length + 4) ) { @@ -55335,17 +54257,17 @@ const fde *__usercall linear_search_fdes@(object *ob@, const fde *this { cie_encoding = get_cie_encoding((const dwarf_cie *)((char *)&this_fde->CIE_delta - CIE_delta)); last_cie = v11; - base = (int *)base_from_object(cie_encoding, (int)ob); + base = (char *)base_from_object(cie_encoding, (int)ob); } } if ( cie_encoding ) { - encoded_value_with_base_0 = (int *)read_encoded_value_with_base_0( - cie_encoding, - base, - (int *)this_fde->pc_begin, - (int *)&pc_begin); - read_encoded_value_with_base_0(cie_encoding & 0xF, 0, encoded_value_with_base_0, (int *)pc_range); + encoded_value_with_base_0 = read_encoded_value_with_base_0( + cie_encoding, + base, + (char *)this_fde->pc_begin, + (int *)&pc_begin); + read_encoded_value_with_base_0(cie_encoding & 0xF, 0, encoded_value_with_base_0, pc_range); v13 = size_of_encoded_value(cie_encoding); v14 = -1; if ( v13 <= 3 ) @@ -55356,10 +54278,10 @@ const fde *__usercall linear_search_fdes@(object *ob@, const fde *this else { v8 = *(_DWORD *)this_fde->pc_begin; - v9 = *(char **)&this_fde->pc_begin[4]; + v9 = *(_DWORD *)&this_fde->pc_begin[4]; pc_begin = v8; - pc_range[0] = (_Unwind_Ptr)v9; - if ( v8 && &pc[-v8] < v9 ) + pc_range[0] = v9; + if ( v8 && (unsigned int)&pc[-v8] < v9 ) return this_fde; } } @@ -55372,19 +54294,19 @@ const fde *__usercall linear_search_fdes@(object *ob@, const fde *this int __cdecl fde_mixed_encoding_compare(object *ob, const fde *x, const fde *y) { char cie_encoding; // di - int *v4; // eax + char *v4; // eax char v5; // si - int *v6; // eax + char *v6; // eax int result; // eax _Unwind_Ptr x_ptr; // [esp+18h] [ebp-24h] BYREF - _Unwind_Ptr y_ptr[8]; // [esp+1Ch] [ebp-20h] BYREF + int y_ptr[8]; // [esp+1Ch] [ebp-20h] BYREF cie_encoding = get_cie_encoding((const dwarf_cie *)((char *)&x->CIE_delta - x->CIE_delta)); - v4 = (int *)base_from_object(cie_encoding, (int)ob); - read_encoded_value_with_base_0(cie_encoding, v4, (int *)x->pc_begin, (int *)&x_ptr); + v4 = (char *)base_from_object(cie_encoding, (int)ob); + read_encoded_value_with_base_0(cie_encoding, v4, (char *)x->pc_begin, (int *)&x_ptr); v5 = get_cie_encoding((const dwarf_cie *)((char *)&y->CIE_delta - y->CIE_delta)); - v6 = (int *)base_from_object(v5, (int)ob); - read_encoded_value_with_base_0(v5, v6, (int *)y->pc_begin, (int *)y_ptr); + v6 = (char *)base_from_object(v5, (int)ob); + read_encoded_value_with_base_0(v5, v6, (char *)y->pc_begin, y_ptr); result = 1; if ( x_ptr <= y_ptr[0] ) return -(x_ptr < y_ptr[0]); @@ -55412,8 +54334,8 @@ const fde *__usercall search_object@(int a1@, char *a2@) unsigned int v16; // esi int v17; // edi char cie_encoding; // bl - int *v19; // eax - int *v20; // eax + char *v19; // eax + char *v20; // eax const fde **v21; // esi const fde *i; // edx char v23; // bl @@ -55421,7 +54343,7 @@ const fde *__usercall search_object@(int a1@, char *a2@) unsigned int CIE_delta; // edi unsigned int v26; // ebp unsigned int v27; // esi - int *encoded_value_with_base_0; // eax + char *encoded_value_with_base_0; // eax fde_vector *v29; // eax fde_vector *v30; // eax const fde **v31; // ebx @@ -55454,7 +54376,7 @@ const fde *__usercall search_object@(int a1@, char *a2@) char fde_comparea; // [esp+10h] [ebp-4Ch] int (*fde_compareb)(object *, const fde *, const fde *); // [esp+10h] [ebp-4Ch] unsigned int v61; // [esp+18h] [ebp-44h] - int *v62; // [esp+18h] [ebp-44h] + char *v62; // [esp+18h] [ebp-44h] fde_vector *erratic; // [esp+18h] [ebp-44h] const dwarf_fde *v64; // [esp+18h] [ebp-44h] const dwarf_fde **ob; // [esp+1Ch] [ebp-40h] @@ -55713,7 +54635,7 @@ LABEL_2: fde_comparea = v23; v24 = base_from_object(v23, (int)v2); CIE_delta = v4.single->CIE_delta; - v62 = (int *)v24; + v62 = (char *)v24; if ( CIE_delta ) { v73.single = v4.single; @@ -55723,11 +54645,7 @@ LABEL_2: { v27 = (CIE_delta + v26) >> 1; v9 = *(_DWORD *)&v73.single->pc_begin[4 * v27]; - encoded_value_with_base_0 = (int *)read_encoded_value_with_base_0( - fde_comparea, - v62, - (int *)(v9 + 8), - (int *)&v76); + encoded_value_with_base_0 = read_encoded_value_with_base_0(fde_comparea, v62, (char *)(v9 + 8), (int *)&v76); read_encoded_value_with_base_0(v69, 0, encoded_value_with_base_0, (int *)&accu); if ( v76 <= (unsigned int)a2 ) { @@ -55776,8 +54694,8 @@ LABEL_2: v16 = ((unsigned int)fde_compare + v61) >> 1; v17 = *(_DWORD *)&v4.single->pc_begin[4 * v16]; cie_encoding = get_cie_encoding((const dwarf_cie *)(v17 + 4 - *(_DWORD *)(v17 + 4))); - v19 = (int *)base_from_object(cie_encoding, v72); - v20 = (int *)read_encoded_value_with_base_0(cie_encoding, v19, (int *)(v17 + 8), (int *)&v76); + v19 = (char *)base_from_object(cie_encoding, v72); + v20 = read_encoded_value_with_base_0(cie_encoding, v19, (char *)(v17 + 8), (int *)&v76); read_encoded_value_with_base_0(cie_encoding & 0xF, 0, v20, (int *)&accu); if ( v76 > (unsigned int)a2 ) { @@ -56075,10 +54993,10 @@ const fde *__cdecl _Unwind_Find_FDE(void *pc, dwarf_eh_bases *bases) object *v2; // ebx const fde *v3; // esi char cie_encoding; // bp - int *v5; // eax + char *v5; // eax object **p_next; // edx object *v8; // eax - _Unwind_Ptr func[8]; // [esp+1Ch] [ebp-20h] BYREF + int func[8]; // [esp+1Ch] [ebp-20h] BYREF if ( _CRT_MT ) { @@ -56124,8 +55042,8 @@ LABEL_9: cie_encoding = get_cie_encoding((const dwarf_cie *)((char *)&v3->CIE_delta - v3->CIE_delta)); else cie_encoding = *(_WORD *)&v2->s.b >> 3; - v5 = (int *)base_from_object(cie_encoding, (int)v2); - read_encoded_value_with_base_0(cie_encoding, v5, (int *)v3->pc_begin, (int *)func); + v5 = (char *)base_from_object(cie_encoding, (int)v2); + read_encoded_value_with_base_0(cie_encoding, v5, (char *)v3->pc_begin, func); bases->func = (void *)func[0]; return v3; } @@ -56200,8 +55118,8 @@ void __cdecl emutls_destroy(void *ptr) //----- (0045E290) -------------------------------------------------------- _DWORD *__usercall emutls_alloc@(size_t *a1@) { - unsigned int v2; // ebp - size_t v3; // edi + size_t v2; // ebp + int v3; // edi _DWORD *v4; // eax _DWORD *v5; // ebx const void *Src; // eax @@ -56279,7 +55197,7 @@ _DWORD *__cdecl __emutls_get_address(size_t *a1) pointer *v7; // ebx pointer *v8; // eax int v9; // edx - pointer *v10; // eax + int *v10; // eax int v11; // [esp+1Ch] [ebp-20h] if ( !_CRT_MT ) @@ -56356,8 +55274,8 @@ LABEL_35: if ( v2 > 2 * v6 ) v9 = v2 + 32; v11 = v9; - v10 = (pointer *)__mingw_realloc((unsigned int)Value, 4 * v9 + 4); - Value = v10; + v10 = (int *)__mingw_realloc((unsigned int)Value, 4 * v9 + 4); + Value = (pointer *)v10; if ( v10 ) { *v10 = v11; @@ -56558,7 +55476,7 @@ int __cdecl GetJsonString(int *a1, int *a2, _DWORD *a3) std::ostringstream::basic_ostringstream((int)v17); v3 = *a2; - if ( *(_BYTE *)(*a1 + *a2) != 34 ) + if ( *(_BYTE *)(*a1 + *a2) != 34/*"*/ ) { LABEL_41: v9 = ~v3; @@ -56584,26 +55502,26 @@ LABEL_31: goto LABEL_42; } v7 = *(_BYTE *)(v4 + v3 + 1); - if ( v7 == 110 ) + if ( v7 == 110/*n*/ ) { v12 = 10; goto LABEL_26; } - if ( v7 <= 110 ) + if ( v7 <= 110/*n*/ ) { - if ( v7 == 98 ) + if ( v7 == 98/*b*/ ) { v12 = 8; goto LABEL_26; } - if ( v7 <= 98 ) + if ( v7 <= 98/*b*/ ) { - if ( v7 != 47 && v7 != 92 && v7 != 34 ) + if ( v7 != 47/*/*/ && v7 != 92/*\*/ && v7 != 34/*"*/ ) goto LABEL_41; std::operator<<>((std::ostream::sentry *)v17, *(_BYTE *)(v4 + v3 + 1)); goto LABEL_27; } - if ( v7 != 102 ) + if ( v7 != 102/*f*/ ) goto LABEL_41; v12 = 12; LABEL_26: @@ -56612,14 +55530,14 @@ LABEL_27: ++*a2; continue; } - if ( v7 == 116 ) + if ( v7 == 116/*t*/ ) { v12 = 9; goto LABEL_26; } - if ( v7 != 117 ) + if ( v7 != 117/*u*/ ) { - if ( v7 != 114 ) + if ( v7 != 114/*r*/ ) goto LABEL_41; v12 = 13; goto LABEL_26; @@ -56637,7 +55555,7 @@ LABEL_27: v6 = -7; goto LABEL_31; } - if ( *(_BYTE *)(v13 + v3 + 7) != 117 ) + if ( *(_BYTE *)(v13 + v3 + 7) != 117/*u*/ ) { v6 = -8; goto LABEL_31; @@ -56791,24 +55709,24 @@ char *__cdecl _txnal_logic_error_get_msg(char *a1) } //----- (0045F170) -------------------------------------------------------- -void __cdecl _txnal_cow_string_D1_commit(volatile signed __int32 *a1) +void __cdecl _txnal_cow_string_D1_commit(unsigned int *a1) { int v1; // eax int v2[3]; // [esp+1Fh] [ebp-Dh] BYREF - if ( a1 != (volatile signed __int32 *)&std::string::_Rep::_S_empty_rep_storage ) + if ( a1 != &std::string::_Rep::_S_empty_rep_storage ) { if ( _CRT_MT ) { - v1 = _InterlockedExchangeAdd(a1 + 2, 0xFFFFFFFF); + v1 = _InterlockedExchangeAdd((volatile signed __int32 *)a1 + 2, 0xFFFFFFFF); } else { - v1 = *((_DWORD *)a1 + 2); - *((_DWORD *)a1 + 2) = v1 - 1; + v1 = a1[2]; + a1[2] = v1 - 1; } if ( v1 <= 0 ) - std::string::_Rep::_M_destroy((void *)a1, (int)v2); + std::string::_Rep::_M_destroy(a1, (int)v2); } } // 78A9D4: using guessed type int _CRT_MT; @@ -56886,7 +55804,7 @@ void __cdecl __noreturn _ZGTtNKSt13runtime_error4whatEv(int a1) void __cdecl _ZGTtNSt11logic_errorC2EPKc(_DWORD *a1) { char *v1; // [esp+4h] [ebp-28h] - _DWORD v2[5]; // [esp+18h] [ebp-14h] BYREF + int v2[5]; // [esp+18h] [ebp-14h] BYREF std::logic_error::logic_error((int)v2, (std::logic_error *)&unk_530AF4, v1); MEMORY[0](8); @@ -56900,7 +55818,7 @@ void __cdecl _ZGTtNSt11logic_errorC2EPKc(_DWORD *a1) void __cdecl _ZGTtNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1) { char *v1; // [esp+4h] [ebp-28h] - _DWORD v2[5]; // [esp+18h] [ebp-14h] BYREF + int v2[5]; // [esp+18h] [ebp-14h] BYREF std::logic_error::logic_error((int)v2, (std::logic_error *)&unk_530AF4, v1); MEMORY[0](8); @@ -57109,7 +56027,7 @@ int _ZGTtNSt12out_of_rangeD2Ev() void __cdecl _ZGTtNSt13runtime_errorC2EPKc(_DWORD *a1) { char *v1; // [esp+4h] [ebp-28h] - _DWORD v2[5]; // [esp+18h] [ebp-14h] BYREF + int v2[5]; // [esp+18h] [ebp-14h] BYREF std::runtime_error::runtime_error((int)v2, (std::runtime_error *)&unk_530AF4, v1); MEMORY[0](8); @@ -57123,7 +56041,7 @@ void __cdecl _ZGTtNSt13runtime_errorC2EPKc(_DWORD *a1) void __cdecl _ZGTtNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(_DWORD *a1) { char *v1; // [esp+4h] [ebp-28h] - _DWORD v2[5]; // [esp+18h] [ebp-14h] BYREF + int v2[5]; // [esp+18h] [ebp-14h] BYREF std::runtime_error::runtime_error((int)v2, (std::runtime_error *)&unk_530AF4, v1); MEMORY[0](8); @@ -57337,7 +56255,7 @@ LABEL_12: get_ttype_entry(); v4 = -8 * a2; LABEL_7: - read_encoded_value_with_base(v2, *(int **)(a1 + 8), (int *)(*(_DWORD *)(a1 + 12) + v4), v6); + read_encoded_value_with_base(v2, *(char **)(a1 + 8), (char *)(*(_DWORD *)(a1 + 12) + v4), v6); return v6[0]; } // 45FC60: using guessed type int var_10[4]; @@ -57362,7 +56280,7 @@ char *__usercall parse_lsda_header@(_Unwind_Context *a1@, char *a2@(_Unwind_Context *a1@, char *a2@(_Unwind_Context *a1@, char *a2@(char a1@, int *a2@, int *a3@, int *a4) +char *__usercall read_encoded_value_with_base@(char a1@, char *a2@, char *a3@, int *a4) { int v6; // edx char *result; // eax - _DWORD *v8; // eax + unsigned int v8; // eax int v9; // edx int v10; // ecx int v11; // ebp @@ -57535,9 +56453,9 @@ char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, if ( a1 == 80 ) { - v8 = (_DWORD *)(((unsigned int)a3 + 3) & 0xFFFFFFFC); - v9 = *v8; - result = (char *)(v8 + 1); + v8 = (unsigned int)(a3 + 3) & 0xFFFFFFFC; + v9 = *(_DWORD *)v8; + result = (char *)(v8 + 4); *a4 = v9; } else @@ -57547,11 +56465,11 @@ char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, case 0: case 3: case 0xB: - v6 = *a3; - result = (char *)(a3 + 1); + v6 = *(_DWORD *)a3; + result = a3 + 4; goto LABEL_4; case 1: - result = (char *)a3; + result = a3; v10 = 0; v11 = 0; do @@ -57566,15 +56484,15 @@ char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, goto LABEL_4; case 2: v6 = *(unsigned __int16 *)a3; - result = (char *)a3 + 2; + result = a3 + 2; goto LABEL_4; case 4: case 0xC: - v6 = *a3; - result = (char *)(a3 + 2); + v6 = *(_DWORD *)a3; + result = a3 + 8; goto LABEL_4; case 9: - result = (char *)a3; + result = a3; v14 = 0; v15 = 0; do @@ -57593,7 +56511,7 @@ char *__usercall read_encoded_value_with_base@(char a1@, int *a2@, goto LABEL_5; case 0xA: v6 = *(__int16 *)a3; - result = (char *)a3 + 2; + result = a3 + 2; LABEL_4: if ( !v6 ) goto LABEL_8; @@ -58046,13 +56964,13 @@ int __fastcall WXML::DOMLib::Token::ToAttrContent[abi:cxx11](int a1) char v4; // al char v5; // cl int v6; // eax - unsigned __int8 v7; // dl + char v7; // dl int v9; // [esp+8h] [ebp-70h] int v10; // [esp+1Ch] [ebp-5Ch] void *v11[2]; // [esp+28h] [ebp-50h] BYREF char v12[16]; // [esp+30h] [ebp-48h] BYREF - unsigned __int8 v13[30]; // [esp+40h] [ebp-38h] BYREF - size_t Size[6]; // [esp+5Eh] [ebp-1Ah] BYREF + char v13[30]; // [esp+40h] [ebp-38h] BYREF + int Size[6]; // [esp+5Eh] [ebp-1Ah] BYREF if ( !*(_DWORD *)a1 || *(_BYTE *)(a1 + 84) ) return a1 + 88; @@ -58102,7 +57020,7 @@ LABEL_20: { LOBYTE(v9) = 0; v11[0] = v12; - std::string::_M_construct(v11, v13, (size_t)Size, v9); + std::string::_M_construct(v11, (unsigned __int8 *)v13, (size_t)Size, v9); std::string::operator+=((_DWORD *)(a1 + 88), (int)v11); std::string::_M_dispose(v11); v13[0] = 0; @@ -58116,7 +57034,7 @@ LABEL_22: { LOBYTE(v9) = 0; v11[0] = v12; - std::string::_M_construct(v11, v13, (size_t)&v13[v6], v9); + std::string::_M_construct(v11, (unsigned __int8 *)v13, (size_t)&v13[v6], v9); std::string::operator+=((_DWORD *)(a1 + 88), (int)v11); std::string::_M_dispose(v11); } @@ -58510,7 +57428,7 @@ int __fastcall WXML::DOMLib::Parser::Parser(int a1) // 4610A4: variable 'v14' is possibly undefined //----- (004612EC) -------------------------------------------------------- -char __thiscall WXML::DOMLib::WXMLDom::IfHasItsElse(_DWORD *this, signed int a2, int *a3) +bool __thiscall WXML::DOMLib::WXMLDom::IfHasItsElse(_DWORD *this, signed int a2, int *a3) { _DWORD *v4; // edi int v5; // edi @@ -58694,7 +57612,7 @@ int __thiscall WXML::DOMLib::WXMLDom::MarkIfHasDescendant(int this, int *a2) v4 = (*(_DWORD *)(this + 76) - *(_DWORD *)(this + 72)) >> 3; while ( --v4 >= 0 ) { - WXML::DOMLib::WXMLDom::MarkIfHasDescendant(a2); + WXML::DOMLib::WXMLDom::MarkIfHasDescendant(*(_DWORD *)(*(_DWORD *)(this + 72) + 8 * v4), a2); v5 = *a2; v6 = *(_DWORD *)(*(_DWORD *)(this + 72) + 8 * v4); *(_BYTE *)(this + 256) |= *(_BYTE *)(v6 + 256); @@ -58720,7 +57638,7 @@ void __thiscall WXML::DOMLib::WXMLDom::CutDomsForCustomComponent(_DWORD *this, i v3 = (this[19] - this[18]) >> 3; while ( --v3 >= 0 ) { - WXML::DOMLib::WXMLDom::CutDomsForCustomComponent(a2); + WXML::DOMLib::WXMLDom::CutDomsForCustomComponent(*(_DWORD **)(this[18] + 8 * v3), a2); if ( !std::operator==(*(_DWORD *)(this[18] + 8 * v3), "include") && !std::operator==(*(_DWORD *)(this[18] + 8 * v3), "import") && !std::operator==(*(_DWORD *)(this[18] + 8 * v3), "wx-template") @@ -58756,17 +57674,20 @@ void __thiscall WXML::DOMLib::WXMLDom::CutDomsForCustomComponent(_DWORD *this, i unsigned int __thiscall WXML::DOMLib::WXMLDom::Print(_DWORD *this, int a2, char *a3, char *a4) { unsigned int v4; // esi + int v6; // ecx unsigned int result; // eax + _DWORD *v8; // ecx v4 = 0; WXML::DOMLib::WXMLDom::PrintMe((int)this, a2, a3, a4); while ( 1 ) { - result = (this[19] - this[18]) >> 3; + v6 = this[18]; + result = (this[19] - v6) >> 3; if ( result <= v4 ) break; - ++v4; - WXML::DOMLib::WXMLDom::Print(a2 + 1, a3, a4); + v8 = *(_DWORD **)(v6 + 8 * v4++); + WXML::DOMLib::WXMLDom::Print(v8, a2 + 1, a3, a4); } return result; } @@ -59210,11 +58131,11 @@ void __thiscall WXML::EXPRLib::Terminal::~Terminal(void **ecx0, WXML::EXPRLib::T // 537860: using guessed type void (__cdecl *off_537860)(WXML::EXPRLib::Terminal *__hidden this); //----- (004622A0) -------------------------------------------------------- -unsigned int *__thiscall night::NSASTParse::NSASTParse(int this, int a2, int a3, int a4) +unsigned int **__thiscall night::NSASTParse::NSASTParse(int this, int a2, int a3, int a4) { - unsigned int *v5; // edi + unsigned int **v5; // edi - v5 = (unsigned int *)(this + 44); + v5 = (unsigned int **)(this + 44); std::string::basic_string((_DWORD *)this, a2); *(_BYTE *)(this + 52) = 0; *(_DWORD *)(this + 44) = this + 52; @@ -59262,7 +58183,7 @@ bool __cdecl night::NSToken::rw_cb_number(night::NSToken *this, _BYTE *a2) char __cdecl night::NSToken::tk_is_comment2(night::NSToken *this, night::NSStream *a2) { int v3[3]; // [esp+18h] [ebp-20h] BYREF - _DWORD v4[4]; // [esp+24h] [ebp-14h] BYREF + int v4[4]; // [esp+24h] [ebp-14h] BYREF night::NSStream::peek(v3, a2); if ( LOBYTE(v3[0]) != 42 ) @@ -59277,7 +58198,7 @@ char __cdecl night::NSToken::tk_is_comment2(night::NSToken *this, night::NSStrea // 4623A0: using guessed type _DWORD var_14[4]; //----- (004623E8) -------------------------------------------------------- -int __cdecl night::NSToken::tk_is_var_start(unsigned int this) +unsigned int __cdecl night::NSToken::tk_is_var_start(unsigned int this) { unsigned int v1; // edx unsigned int v2; // eax @@ -59292,7 +58213,7 @@ int __cdecl night::NSToken::tk_is_var_start(unsigned int this) //----- (00462408) -------------------------------------------------------- bool __cdecl night::NSToken::tk_is_whitespace(night::NSToken *this) { - int v1; // ebx + unsigned int v1; // ebx void *v3[2]; // [esp+18h] [ebp-20h] BYREF char v4; // [esp+20h] [ebp-18h] BYREF @@ -59351,7 +58272,7 @@ bool __cdecl night::NSToken::tk_is_not_line_break(night::NSToken *this) //----- (00462574) -------------------------------------------------------- _DWORD *__thiscall night::NSToken::get_tokens_for_sourcemap(_DWORD *this, _DWORD *a2, _DWORD *a3) { - int i; // esi + _DWORD *i; // esi _DWORD *result; // eax _DWORD *v5; // ebx _DWORD *v6; // eax @@ -59361,21 +58282,21 @@ _DWORD *__thiscall night::NSToken::get_tokens_for_sourcemap(_DWORD *this, _DWORD bool v10; // al void (__cdecl *v11)(void *); // [esp+4h] [ebp-44h] _DWORD *v12; // [esp+24h] [ebp-24h] - int insert_hint_unique_pos; // [esp+24h] [ebp-24h] + _DWORD *insert_hint_unique_pos; // [esp+24h] [ebp-24h] _DWORD *v15; // [esp+2Ch] [ebp-1Ch] - for ( i = this[9]; ; i = std::_Rb_tree_increment(i) ) + for ( i = (_DWORD *)this[9]; ; i = (_DWORD *)std::_Rb_tree_increment((int)i) ) { result = this + 7; - if ( (_DWORD *)i == this + 7 ) + if ( i == this + 7 ) break; v5 = a3 + 1; - *std::map::operator[](a2, i + 16) = *(_DWORD *)(i + 40); + *std::map::operator[](a2, (int)(i + 4)) = i[10]; v15 = a3 + 1; v6 = (_DWORD *)a3[2]; while ( v6 ) { - if ( v6[4] < *(_DWORD *)(i + 40) ) + if ( v6[4] < i[10] ) { v6 = (_DWORD *)v6[3]; } @@ -59385,11 +58306,11 @@ _DWORD *__thiscall night::NSToken::get_tokens_for_sourcemap(_DWORD *this, _DWORD v6 = (_DWORD *)v6[2]; } } - if ( v15 == v5 || *(_DWORD *)(i + 40) < v5[4] ) + if ( v15 == v5 || i[10] < v5[4] ) { v12 = v5; v5 = operator new((struct type_info *)0x2C, v11); - v7 = *(_DWORD *)(i + 40); + v7 = i[10]; v5[6] = 0; v5[4] = v7; v5[5] = v5 + 7; @@ -59411,10 +58332,10 @@ _DWORD *__thiscall night::NSToken::get_tokens_for_sourcemap(_DWORD *this, _DWORD { std::string::_M_dispose((void **)v5 + 5); operator delete(v5); - v5 = (_DWORD *)insert_hint_unique_pos; + v5 = insert_hint_unique_pos; } } - std::string::_M_assign((int)(v5 + 5), i + 16); + std::string::_M_assign((int)(v5 + 5), (int)(i + 4)); } return result; } @@ -59466,7 +58387,7 @@ void **__thiscall night::ns_node::debug_no_space[abi:cxx11](void **this, const c _DWORD *v21; // eax unsigned int v22; // edi char *v23; // ecx - _DWORD *v24; // eax + const char ***v24; // eax _DWORD *v25; // eax int *v26; // ebx const char *v27; // edx @@ -59482,7 +58403,7 @@ void **__thiscall night::ns_node::debug_no_space[abi:cxx11](void **this, const c int v37; // eax unsigned int i; // edi char *v39; // ecx - _DWORD *v40; // eax + const char ***v40; // eax _DWORD *v41; // eax const char *v42; // ecx __int64 v43; // rax @@ -59496,18 +58417,18 @@ void **__thiscall night::ns_node::debug_no_space[abi:cxx11](void **this, const c _DWORD *v51; // eax unsigned int j; // edi char *v53; // ecx - _DWORD *v54; // eax + const char ***v54; // eax _DWORD *v55; // eax _DWORD *v56; // eax - int v57; // eax + unsigned int v57; // eax _DWORD *v58; // eax _DWORD *v59; // eax _DWORD **v60; // eax - _DWORD *v61; // eax + const char ***v61; // eax _DWORD *v62; // eax unsigned int k; // edi char *v64; // ecx - _DWORD *v65; // eax + const char ***v65; // eax const char *v66; // ecx __int64 v67; // rax const char *v68; // edi @@ -59517,18 +58438,18 @@ void **__thiscall night::ns_node::debug_no_space[abi:cxx11](void **this, const c int v72; // eax unsigned int m; // edi char *v74; // ecx - _DWORD *v75; // eax + const char ***v75; // eax __int64 v76; // rcx const char *v77; // edx const char *v78; // edi int v79; // eax _DWORD *v80; // eax unsigned int v81; // edi - int v82; // eax + unsigned int v82; // eax _DWORD *v83; // eax _DWORD *v84; // eax _DWORD **v85; // eax - _DWORD *v86; // eax + const char ***v86; // eax _DWORD *v87; // eax const char *v88; // edi const char *v89; // edx @@ -59539,7 +58460,7 @@ void **__thiscall night::ns_node::debug_no_space[abi:cxx11](void **this, const c int v94; // eax unsigned int v95; // edi char *v96; // ecx - _DWORD *v97; // eax + const char ***v97; // eax _DWORD *v98; // eax _DWORD *v99; // eax const char *ArgList; // [esp+38h] [ebp-4D0h] @@ -59614,9 +58535,9 @@ void **__thiscall night::ns_node::debug_no_space[abi:cxx11](void **this, const c snprintf_constprop_0(Buffer, 1024, "(%d,%d)type[%s] op[%s]", a2[12], v7, v9, v8); else snprintf_constprop_0(Buffer, 1024, "type[%s] op[%s]", v9, v8); - std::string::operator=((unsigned int *)&v115, Buffer); - night::ns_node::debug_no_space[abi:cxx11](a2[48]); - std::operator+(v120, "\nobj=>", (unsigned int *)v118); + std::string::operator=((unsigned int **)&v115, Buffer); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[48]); + std::operator+(v120, "\nobj=>", (unsigned int **)v118); v10 = std::string::append(v120, "\nobj<="); std::string::basic_string(v122, v10); std::string::operator+=(&v115, (int)v122); @@ -59645,7 +58566,7 @@ LABEL_131: { if ( a2[12] || a2[13] ) { - night::ns_node::debug_no_space[abi:cxx11](a2[48]); + night::ns_node::debug_no_space[abi:cxx11]((void **)v122, (const char **)a2[48]); snprintf_constprop_0( Buffer, 1024, @@ -59659,7 +58580,7 @@ LABEL_131: } else { - night::ns_node::debug_no_space[abi:cxx11](a2[48]); + night::ns_node::debug_no_space[abi:cxx11]((void **)v122, (const char **)a2[48]); snprintf_constprop_0( Buffer, 1024, @@ -59691,9 +58612,9 @@ LABEL_131: (v20 - *(_DWORD *)v18) >> 2); else snprintf_constprop_0(Buffer, 1024, "type[%s] propertys[%zu]", v19, (v20 - *(_DWORD *)v18) >> 2); - std::string::operator=((unsigned int *)v111, Buffer); - night::ns_node::debug_no_space[abi:cxx11](a2[48]); - std::operator+(v120, "\nobj =>", (unsigned int *)v118); + std::string::operator=((unsigned int **)v111, Buffer); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[48]); + std::operator+(v120, "\nobj =>", (unsigned int **)v118); v21 = std::string::append(v120, "\nobj<="); std::string::basic_string(v122, v21); std::string::operator+=(v111, (int)v122); @@ -59707,14 +58628,14 @@ LABEL_131: v23 = (char *)a2[49]; if ( v22 >= (*((_DWORD *)v23 + 1) - *(_DWORD *)v23) >> 2 ) break; - v24 = (_DWORD *)std::vector::at(v23, v22); - night::ns_node::debug_no_space[abi:cxx11](*v24); + v24 = (const char ***)std::vector::at(v23, v22); + night::ns_node::debug_no_space[abi:cxx11]((void **)v120, *v24); v113[0] = (int)&v114; std::string::_M_construct(v113, 1u, v22 + 48); - std::operator+(&v115, "\n[", (unsigned int *)v113); + std::operator+(&v115, "\n[", (unsigned int **)v113); v25 = std::string::append(&v115, "] "); std::string::basic_string(v118, v25); - std::operator+(v122, v118, (unsigned int *)v120); + std::operator+(v122, v118, (unsigned int **)v120); std::string::operator+=(v111, (int)v122); ++v22; std::string::_M_dispose((void **)v122); @@ -59740,17 +58661,17 @@ LABEL_131: else snprintf_constprop_0(Buffer, 1024, "type[%s] punc[%s]", v29, v28); v26 = &v115; - std::string::operator=((unsigned int *)&v115, Buffer); - night::ns_node::debug_no_space[abi:cxx11](a2[51]); - std::operator+(v120, "\ncond =>", (unsigned int *)v118); + std::string::operator=((unsigned int **)&v115, Buffer); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[51]); + std::operator+(v120, "\ncond =>", (unsigned int **)v118); v30 = std::string::append(v120, "\ncond<="); std::string::basic_string(v122, v30); std::string::operator+=(&v115, (int)v122); std::string::_M_dispose((void **)v122); std::string::_M_dispose((void **)v120); std::string::_M_dispose((void **)v118); - night::ns_node::debug_no_space[abi:cxx11](a2[52]); - std::operator+(v120, "\nifd =>", (unsigned int *)v118); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[52]); + std::operator+(v120, "\nifd =>", (unsigned int **)v118); v31 = std::string::append(v120, "\nifd<="); std::string::basic_string(v122, v31); std::string::operator+=(&v115, (int)v122); @@ -59759,8 +58680,8 @@ LABEL_131: std::string::_M_dispose((void **)v118); if ( !a2[53] ) goto LABEL_122; - night::ns_node::debug_no_space[abi:cxx11](a2[53]); - std::operator+(v120, "\nelsed =>", (unsigned int *)v118); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[53]); + std::operator+(v120, "\nelsed =>", (unsigned int **)v118); v32 = std::string::append(v120, "\nelsed<="); std::string::basic_string(v122, v32); std::string::operator+=(&v115, (int)v122); @@ -59790,23 +58711,23 @@ LABEL_131: (v37 - *(_DWORD *)v35) >> 2); else snprintf_constprop_0(Buffer, 1024, "type[%s] progs[%zu]", v36, (v37 - *(_DWORD *)v35) >> 2); - std::string::operator=((unsigned int *)&v115, Buffer); + std::string::operator=((unsigned int **)&v115, Buffer); std::string::operator+=(&v115, "\nprogs =>"); for ( i = 0; ; ++i ) { v39 = (char *)a2[57]; if ( i >= (*((_DWORD *)v39 + 1) - *(_DWORD *)v39) >> 2 ) break; - v40 = (_DWORD *)std::vector::at(v39, i); - night::ns_node::debug_no_space[abi:cxx11](*v40); - std::operator+(v122, "\n", (unsigned int *)v120); + v40 = (const char ***)std::vector::at(v39, i); + night::ns_node::debug_no_space[abi:cxx11]((void **)v120, *v40); + std::operator+(v122, "\n", (unsigned int **)v120); std::string::operator+=(&v115, (int)v122); std::string::_M_dispose((void **)v122); std::string::_M_dispose((void **)v120); } std::string::operator+=(&v115, "\nprogs<="); - night::ns_node::debug_no_space[abi:cxx11](a2[54]); - std::operator+(v120, "\nbody =>", (unsigned int *)v118); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[54]); + std::operator+(v120, "\nbody =>", (unsigned int **)v118); v41 = std::string::append(v120, "\nbody<="); std::string::basic_string(v122, v41); std::string::operator+=(&v115, (int)v122); @@ -59826,17 +58747,17 @@ LABEL_131: snprintf_constprop_0(Buffer, 1024, "(%d,%d)type[%s]", (_DWORD)v43, HIDWORD(v43), v42); else snprintf_constprop_0(Buffer, 1024, "type[%s]", v42); - std::string::operator=((unsigned int *)&v115, Buffer); - night::ns_node::debug_no_space[abi:cxx11](a2[51]); - std::operator+(v120, "\ncond =>", (unsigned int *)v118); + std::string::operator=((unsigned int **)&v115, Buffer); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[51]); + std::operator+(v120, "\ncond =>", (unsigned int **)v118); v44 = std::string::append(v120, "\ncond<="); std::string::basic_string(v122, v44); std::string::operator+=(&v115, (int)v122); std::string::_M_dispose((void **)v122); std::string::_M_dispose((void **)v120); std::string::_M_dispose((void **)v118); - night::ns_node::debug_no_space[abi:cxx11](a2[54]); - std::operator+(v120, "\nbody =>", (unsigned int *)v118); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[54]); + std::operator+(v120, "\nbody =>", (unsigned int **)v118); v45 = std::string::append(v120, "\nbody<="); std::string::basic_string(v122, v45); std::string::operator+=(&v115, (int)v122); @@ -59862,9 +58783,9 @@ LABEL_131: (v50 - *(_DWORD *)v48) >> 2); else snprintf_constprop_0(Buffer, 1024, "type[%s] cases[%zu]", v49, (v50 - *(_DWORD *)v48) >> 2); - std::string::operator=((unsigned int *)&v108, Buffer); - night::ns_node::debug_no_space[abi:cxx11](a2[51]); - std::operator+(v120, "\ncond =>", (unsigned int *)v118); + std::string::operator=((unsigned int **)&v108, Buffer); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[51]); + std::operator+(v120, "\ncond =>", (unsigned int **)v118); v51 = std::string::append(v120, "\ncond<="); std::string::basic_string(v122, v51); std::string::operator+=(&v108, (int)v122); @@ -59877,14 +58798,14 @@ LABEL_131: v53 = (char *)a2[58]; if ( j >= (*((_DWORD *)v53 + 1) - *(_DWORD *)v53) >> 2 ) break; - v54 = (_DWORD *)std::vector::at(v53, j); - night::ns_node::debug_no_space[abi:cxx11](*v54); + v54 = (const char ***)std::vector::at(v53, j); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, *v54); v111[0] = (int)v112; std::string::_M_construct(v111, 1u, j + 48); - std::operator+(v113, "cases[", (unsigned int *)v111); + std::operator+(v113, "cases[", (unsigned int **)v111); v55 = std::string::append(v113, "]=>"); std::string::basic_string(&v115, v55); - std::operator+(v120, &v115, (unsigned int *)v118); + std::operator+(v120, &v115, (unsigned int **)v118); v56 = std::string::append(v120, "<=cases"); std::string::basic_string(v122, v56); std::string::operator+=(&v108, (int)v122); @@ -59903,10 +58824,10 @@ LABEL_131: std::string::_M_construct(v118, 1u, ArgListb + 48); v111[0] = (int)v112; std::string::_M_construct(v111, 1u, j + 48); - std::operator+(v113, "\ncase_progs[", (unsigned int *)v111); + std::operator+(v113, "\ncase_progs[", (unsigned int **)v111); v58 = std::string::append(v113, ","); std::string::basic_string(&v115, v58); - std::operator+(v120, &v115, (unsigned int *)v118); + std::operator+(v120, &v115, (unsigned int **)v118); v59 = std::string::append(v120, "]=>"); std::string::basic_string(v122, v59); std::string::operator+=(&v108, (int)v122); @@ -59917,8 +58838,8 @@ LABEL_131: std::string::_M_dispose((void **)v111); std::string::_M_dispose((void **)v118); v60 = (_DWORD **)std::vector>>::at(a2[59], j); - v61 = (_DWORD *)std::vector::at(*v60, ArgListb); - night::ns_node::debug_no_space[abi:cxx11](*v61); + v61 = (const char ***)std::vector::at(*v60, ArgListb); + night::ns_node::debug_no_space[abi:cxx11]((void **)v120, *v61); v62 = std::string::append(v120, "<=case_progs\n"); std::string::basic_string(v122, v62); std::string::operator+=(&v108, (int)v122); @@ -59933,9 +58854,9 @@ LABEL_131: v64 = (char *)a2[60]; if ( k >= (*((_DWORD *)v64 + 1) - *(_DWORD *)v64) >> 2 ) break; - v65 = (_DWORD *)std::vector::at(v64, k); - night::ns_node::debug_no_space[abi:cxx11](*v65); - std::operator+(v122, "\n", (unsigned int *)v120); + v65 = (const char ***)std::vector::at(v64, k); + night::ns_node::debug_no_space[abi:cxx11]((void **)v120, *v65); + std::operator+(v122, "\n", (unsigned int **)v120); std::string::operator+=(&v108, (int)v122); std::string::_M_dispose((void **)v122); std::string::_M_dispose((void **)v120); @@ -59977,15 +58898,15 @@ LABEL_131: (v72 - *(_DWORD *)v69) >> 2); else snprintf_constprop_0(Buffer, 1024, "type[%s] punc[%s] progs[%zu] =>", v70, v71, (v72 - *(_DWORD *)v69) >> 2); - std::string::operator=((unsigned int *)v118, Buffer); + std::string::operator=((unsigned int **)v118, Buffer); for ( m = 0; ; ++m ) { v74 = (char *)a2[57]; if ( m >= (*((_DWORD *)v74 + 1) - *(_DWORD *)v74) >> 2 ) break; - v75 = (_DWORD *)std::vector::at(v74, m); - night::ns_node::debug_no_space[abi:cxx11](*v75); - std::operator+(v122, "\n", (unsigned int *)v120); + v75 = (const char ***)std::vector::at(v74, m); + night::ns_node::debug_no_space[abi:cxx11]((void **)v120, *v75); + std::operator+(v122, "\n", (unsigned int **)v120); std::string::operator+=(v118, (int)v122); std::string::_M_dispose((void **)v122); std::string::_M_dispose((void **)v120); @@ -60031,16 +58952,16 @@ LABEL_131: v90, v92, (v94 - *(_DWORD *)v89) >> 2); - std::string::operator=((unsigned int *)&v115, Buffer); + std::string::operator=((unsigned int **)&v115, Buffer); v95 = 0; while ( 1 ) { v96 = (char *)a2[61]; if ( v95 >= (*((_DWORD *)v96 + 1) - *(_DWORD *)v96) >> 2 ) break; - v97 = (_DWORD *)std::vector::at(v96, v95); - night::ns_node::debug_no_space[abi:cxx11](*v97); - std::operator+(v120, "\nfargs[]=>", (unsigned int *)v118); + v97 = (const char ***)std::vector::at(v96, v95); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, *v97); + std::operator+(v120, "\nfargs[]=>", (unsigned int **)v118); v98 = std::string::append(v120, "<=[]fargs"); std::string::basic_string(v122, v98); std::string::operator+=(&v115, (int)v122); @@ -60050,8 +58971,8 @@ LABEL_131: std::string::_M_dispose((void **)v118); } std::string::operator+=(&v115, "\nfargs<="); - night::ns_node::debug_no_space[abi:cxx11](a2[54]); - std::operator+(v120, "\nbody=>", (unsigned int *)v118); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[54]); + std::operator+(v120, "\nbody=>", (unsigned int **)v118); v99 = std::string::append(v120, "\nbody<="); std::string::basic_string(v122, v99); std::string::operator+=(&v115, (int)v122); @@ -60079,9 +59000,9 @@ LABEL_131: (v79 - *(_DWORD *)v77) >> 2); else snprintf_constprop_0(Buffer, 1024, "call type[%s] argss[%zu] =>", v78, (v79 - *(_DWORD *)v77) >> 2); - std::string::operator=((unsigned int *)&v108, Buffer); - night::ns_node::debug_no_space[abi:cxx11](a2[55]); - std::operator+(v120, "\nfunc=>", (unsigned int *)v118); + std::string::operator=((unsigned int **)&v108, Buffer); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[55]); + std::operator+(v120, "\nfunc=>", (unsigned int **)v118); v80 = std::string::append(v120, "\nfunc<="); std::string::basic_string(v122, v80); std::string::operator+=(&v108, (int)v122); @@ -60100,10 +59021,10 @@ LABEL_131: std::string::_M_construct(v118, 1u, ArgListd + 48); v111[0] = (int)v112; std::string::_M_construct(v111, 1u, v81 + 48); - std::operator+(v113, "\nargss[", (unsigned int *)v111); + std::operator+(v113, "\nargss[", (unsigned int **)v111); v83 = std::string::append(v113, ","); std::string::basic_string(&v115, v83); - std::operator+(v120, &v115, (unsigned int *)v118); + std::operator+(v120, &v115, (unsigned int **)v118); v84 = std::string::append(v120, "]=>"); std::string::basic_string(v122, v84); std::string::operator+=(&v108, (int)v122); @@ -60114,8 +59035,8 @@ LABEL_131: std::string::_M_dispose((void **)v111); std::string::_M_dispose((void **)v118); v85 = (_DWORD **)std::vector>>::at(a2[56], v81); - v86 = (_DWORD *)std::vector::at(*v85, ArgListd); - night::ns_node::debug_no_space[abi:cxx11](*v86); + v86 = (const char ***)std::vector::at(*v85, ArgListd); + night::ns_node::debug_no_space[abi:cxx11]((void **)v120, *v86); v87 = std::string::append(v120, "<="); std::string::basic_string(v122, v87); std::string::operator+=(&v108, (int)v122); @@ -60139,13 +59060,13 @@ LABEL_131: else snprintf_constprop_0(Buffer, 1024, "type[%s] op[%s]", v66, a2[39]); v26 = v120; - std::string::operator=((unsigned int *)v120, Buffer); + std::string::operator=((unsigned int **)v120, Buffer); std::string::operator+=(v120, "\nleft <="); - night::ns_node::debug_no_space[abi:cxx11](a2[45]); + night::ns_node::debug_no_space[abi:cxx11]((void **)v122, (const char **)a2[45]); std::string::operator+=(v120, (int)v122); std::string::_M_dispose((void **)v122); std::string::operator+=(v120, "\nright <="); - night::ns_node::debug_no_space[abi:cxx11](a2[46]); + night::ns_node::debug_no_space[abi:cxx11]((void **)v122, (const char **)a2[46]); std::string::operator+=(v120, (int)v122); v33 = v122; } @@ -60165,17 +59086,17 @@ LABEL_122: snprintf_constprop_0(Buffer, 1024, "(%d,%d)type[%s]", (_DWORD)v14, HIDWORD(v14), v13); else snprintf_constprop_0(Buffer, 1024, "type[%s]", v13); - std::string::operator=((unsigned int *)&v115, Buffer); - night::ns_node::debug_no_space[abi:cxx11](a2[47]); - std::operator+(v120, " key[", (unsigned int *)v118); + std::string::operator=((unsigned int **)&v115, Buffer); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[47]); + std::operator+(v120, " key[", (unsigned int **)v118); v15 = std::string::append(v120, "]"); std::string::basic_string(v122, v15); std::string::operator+=(&v115, (int)v122); std::string::_M_dispose((void **)v122); std::string::_M_dispose((void **)v120); std::string::_M_dispose((void **)v118); - night::ns_node::debug_no_space[abi:cxx11](a2[48]); - std::operator+(v120, " value[", (unsigned int *)v118); + night::ns_node::debug_no_space[abi:cxx11]((void **)v118, (const char **)a2[48]); + std::operator+(v120, " value[", (unsigned int **)v118); v16 = std::string::append(v120, "]"); std::string::basic_string(v122, v16); std::string::operator+=(&v115, (int)v122); @@ -60203,10 +59124,10 @@ void **__gnu_cxx::__to_xstring( void *v6; // esp unsigned int v7; // eax unsigned __int8 *v8; // edi - unsigned int v9; // eax - _BYTE *v10; // edx + int v9; // eax + int v10; // edx unsigned __int8 v12[12]; // [esp+10h] [ebp-28h] BYREF - unsigned int v13[7]; // [esp+1Ch] [ebp-1Ch] BYREF + int v13[7]; // [esp+1Ch] [ebp-1Ch] BYREF va_list va; // [esp+50h] [ebp+18h] BYREF va_start(va, a4); @@ -60219,14 +59140,14 @@ void **__gnu_cxx::__to_xstring( v13[0] = v7; if ( v7 > 0xF ) { - *a1 = std::string::_M_create(v13, 0); + *a1 = std::string::_M_create((unsigned int *)v13, 0); a1[2] = (void *)v13[0]; } std::string::_S_copy_chars(*a1, v12, (size_t)v8); v9 = v13[0]; - v10 = *a1; + v10 = (int)*a1; a1[1] = (void *)v13[0]; - v10[v9] = 0; + *(_BYTE *)(v10 + v9) = 0; return a1; } // 464774: using guessed type unsigned int var_1C[7]; @@ -60268,7 +59189,7 @@ int __fastcall __gnu_cxx::stdio_filebuf::file(int a1) //----- (004648B0) -------------------------------------------------------- char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FILE *a2, int a3, int a4) { - _BYTE *v5; // esi + char *v5; // esi int v6; // eax v5 = this + 40; @@ -60297,7 +59218,7 @@ char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FILE * //----- (00464950) -------------------------------------------------------- char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, int a2, int a3, int a4) { - _BYTE *v5; // esi + char *v5; // esi int v6; // eax v5 = this + 40; @@ -60337,7 +59258,7 @@ void *__fastcall __gnu_cxx::stdio_filebuf::stdio_filebuf(_DWORD *a1) //----- (00464A10) -------------------------------------------------------- char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FILE *a2, int a3, int a4) { - _BYTE *v5; // esi + char *v5; // esi int v6; // eax v5 = this + 40; @@ -60366,7 +59287,7 @@ char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FILE * //----- (00464AB0) -------------------------------------------------------- char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, int a2, int a3, int a4) { - _BYTE *v5; // esi + char *v5; // esi int v6; // eax v5 = this + 40; @@ -60458,7 +59379,7 @@ int __fastcall __gnu_cxx::stdio_filebuf::file(int a1) //----- (00464C70) -------------------------------------------------------- char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FILE *a2, int a3, int a4) { - _BYTE *v5; // esi + char *v5; // esi int v6; // eax v5 = this + 40; @@ -60487,7 +59408,7 @@ char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FIL //----- (00464D10) -------------------------------------------------------- char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, int a2, int a3, int a4) { - _BYTE *v5; // esi + char *v5; // esi int v6; // eax v5 = this + 40; @@ -60527,7 +59448,7 @@ void *__fastcall __gnu_cxx::stdio_filebuf::stdio_filebuf(_DWORD *a1) //----- (00464DD0) -------------------------------------------------------- char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FILE *a2, int a3, int a4) { - _BYTE *v5; // esi + char *v5; // esi int v6; // eax v5 = this + 40; @@ -60556,7 +59477,7 @@ char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, FIL //----- (00464E70) -------------------------------------------------------- char __thiscall __gnu_cxx::stdio_filebuf::stdio_filebuf(char *this, int a2, int a3, int a4) { - _BYTE *v5; // esi + char *v5; // esi int v6; // eax v5 = this + 40; @@ -61084,11 +60005,11 @@ int __thiscall __gnu_cxx::stdio_sync_filebuf::stdio_sync_filebuf(_DWORD *t //----- (004656F0) -------------------------------------------------------- void __fastcall __gnu_cxx::stdio_sync_filebuf::~stdio_sync_filebuf(char *a1) { - _DWORD **v2; // ecx + char *v2; // ecx - v2 = (_DWORD **)(a1 + 28); - *(v2 - 7) = &off_538A48; - std::locale::~locale(v2); + v2 = a1 + 28; + *((_DWORD *)v2 - 7) = &off_538A48; + std::locale::~locale((_DWORD **)v2); operator delete(a1); } // 538A48: using guessed type int (*off_538A48)(); @@ -61441,11 +60362,11 @@ int __thiscall __gnu_cxx::stdio_sync_filebuf::stdio_sync_filebuf(_DWORD //----- (00465CF0) -------------------------------------------------------- void __fastcall __gnu_cxx::stdio_sync_filebuf::~stdio_sync_filebuf(char *a1) { - _DWORD **v2; // ecx + char *v2; // ecx - v2 = (_DWORD **)(a1 + 28); - *(v2 - 7) = &off_538A88; - std::locale::~locale(v2); + v2 = a1 + 28; + *((_DWORD *)v2 - 7) = &off_538A88; + std::locale::~locale((_DWORD **)v2); operator delete(a1); } // 538A88: using guessed type int (*off_538A88)(); @@ -62032,9 +60953,9 @@ int __thiscall __cxxabiv1::__vmi_class_type_info::__do_dyncast( int a2, int a3, int a4, - _DWORD *a5, + char *a5, int a6, - _DWORD *a7, + char *a7, int *a8) { int v8; // eax @@ -62059,7 +60980,7 @@ int __thiscall __cxxabiv1::__vmi_class_type_info::__do_dyncast( int v29; // [esp+44h] [ebp-54h] int v30; // [esp+48h] [ebp-50h] char v31; // [esp+48h] [ebp-50h] - unsigned int v32; // [esp+4Ch] [ebp-4Ch] + char *v32; // [esp+4Ch] [ebp-4Ch] int v33; // [esp+54h] [ebp-44h] unsigned __int8 v34; // [esp+59h] [ebp-3Fh] char i; // [esp+5Ah] [ebp-3Eh] @@ -62081,7 +61002,7 @@ int __thiscall __cxxabiv1::__vmi_class_type_info::__do_dyncast( { v32 = 0; if ( a2 >= 0 ) - v32 = (unsigned int)a7 - a2; + v32 = &a7[-a2]; v34 = 0; v36 = 0; for ( i = 1; ; i = 0 ) @@ -62112,9 +61033,9 @@ LABEL_57: if ( (v18 & 1) != 0 ) { v17 = a3 | 1; - v19 = *(_DWORD *)(*a5 + v19); + v19 = *(_DWORD *)(*(_DWORD *)a5 + v19); } - if ( v32 && i == v32 < (unsigned int)a5 + v19 ) + if ( v32 && i == v32 < &a5[v19] ) { v36 = 1; goto LABEL_30; @@ -62122,12 +61043,12 @@ LABEL_57: if ( (v18 & 2) == 0 ) break; LABEL_38: - v20 = (*(int (__thiscall **)(_DWORD, int, int, int, int, int, _DWORD *, int *))(*(_DWORD *)this[2 * v9 + 4] + 28))( + v20 = (*(int (__thiscall **)(_DWORD, int, int, int, char *, int, char *, int *))(*(_DWORD *)this[2 * v9 + 4] + 28))( this[2 * v9 + 4], a2, v17, a4, - (int)a5 + v19, + &a5[v19], a6, a7, &v37); @@ -62212,11 +61133,11 @@ LABEL_43: } if ( a2 >= 0 ) { - if ( a7 != (_DWORD *)(a2 + v28) ) + if ( a7 != (char *)(a2 + v28) ) { if ( v11 > 0 ) goto LABEL_96; - if ( a7 == (_DWORD *)(v37 + a2) ) + if ( a7 == (char *)(v37 + a2) ) goto LABEL_101; LABEL_75: v12 = 1; @@ -62268,7 +61189,7 @@ LABEL_29: } goto LABEL_75; } - v10 = (*(int (__thiscall **)(int, int, int, int, _DWORD *))(*(_DWORD *)a4 + 32))(a4, a2, v28, a6, a7); + v10 = (*(int (__thiscall **)(int, int, int, int, char *))(*(_DWORD *)a4 + 32))(a4, a2, v28, a6, a7); v12 = v10; } if ( v11 > 0 ) @@ -62285,7 +61206,7 @@ LABEL_77: v13 = v37; if ( a2 >= 0 ) { - if ( a7 != (_DWORD *)(v37 + a2) ) + if ( a7 != (char *)(v37 + a2) ) { LABEL_91: v11 = v10; @@ -62310,7 +61231,7 @@ LABEL_25: if ( a2 == -2 ) goto LABEL_91; v29 = v12; - v11 = (*(int (__thiscall **)(int, int, int, int, _DWORD *))(*(_DWORD *)a4 + 32))(a4, a2, v37, a6, a7); + v11 = (*(int (__thiscall **)(int, int, int, int, char *))(*(_DWORD *)a4 + 32))(a4, a2, v37, a6, a7); v12 = v29; v33 = v11; if ( (v11 ^ v29) > 3 ) @@ -62355,7 +61276,7 @@ LABEL_30: } else { - a8[3] = 5 * (a7 == (_DWORD *)((char *)a5 + a2)) + 1; + a8[3] = 5 * (a7 == &a5[a2]) + 1; return 0; } } @@ -62396,10 +61317,10 @@ int __userpurge __cxxabiv1::__vmi_class_type_info::__do_find_public_src@( goto LABEL_8; v10 = *(_DWORD *)(*(_DWORD *)a3 + v10); } - result = (*(int (__thiscall **)(_DWORD, __cxxabiv1::__vmi_class_type_info *, int, const void *, const __cxxabiv1::__class_type_info *))(*(_DWORD *)a1[2 * v8 + 4] + 32))( + result = (*(int (__thiscall **)(_DWORD, __cxxabiv1::__vmi_class_type_info *, char *, const void *, const __cxxabiv1::__class_type_info *))(*(_DWORD *)a1[2 * v8 + 4] + 32))( a1[2 * v8 + 4], this, - (int)a3 + v10, + (char *)a3 + v10, a4, a5); if ( result > 3 ) @@ -62430,9 +61351,9 @@ int __thiscall `anonymous namespace'::io_error_category::message[abi:cxx11](int *(_DWORD *)(this + 4) = 0; *(_BYTE *)(this + 8) = 0; if ( a3 == 1 ) - std::string::_M_replace((unsigned int *)this, 0, 0, "iostream error", 0xEu); + std::string::_M_replace((unsigned int **)this, 0, 0, "iostream error", 0xEu); else - std::string::_M_replace((unsigned int *)this, 0, 0, "Unknown error", 0xDu); + std::string::_M_replace((unsigned int **)this, 0, 0, "Unknown error", 0xDu); return this; } @@ -62516,7 +61437,7 @@ const char *__gnu_cxx::__concurrence_unlock_error::what() //----- (00466F90) -------------------------------------------------------- int __thiscall std::wstring::_M_disjunct(unsigned int *this, unsigned int a2) { - unsigned int v2; // eax + int v2; // eax int v3; // edx v2 = *this; @@ -62568,9 +61489,9 @@ unsigned int __thiscall std::wstring::find_last_of(int *this, wchar_t **a2, int } //----- (004670B0) -------------------------------------------------------- -int __thiscall std::wstring::find_last_of(_DWORD *this, __int16 a2, unsigned int a3) +unsigned int __thiscall std::wstring::find_last_of(_DWORD *this, __int16 a2, unsigned int a3) { - int result; // eax + unsigned int result; // eax int v4; // ebx unsigned int v5; // ebx @@ -63436,7 +62357,7 @@ int __userpurge std::string::_M_disjunct@(_DWORD *a1@, std::string *th } //----- (00467E30) -------------------------------------------------------- -int __userpurge std::string::find_last_of@(int *a1@, std::string *this, char *a3, unsigned int a4) +const char *__userpurge std::string::find_last_of@(int *a1@, std::string *this, char *a3, unsigned int a4) { size_t v5; // eax unsigned int v7; // [esp+Ch] [ebp-10h] @@ -63447,7 +62368,7 @@ int __userpurge std::string::find_last_of@(int *a1@, std::string *this // 467E54: variable 'v7' is possibly undefined //----- (00467E70) -------------------------------------------------------- -int __userpurge std::string::find_last_of@( +const char *__userpurge std::string::find_last_of@( int *a1@, std::string *this, const char *a3, @@ -63461,7 +62382,7 @@ int __userpurge std::string::find_last_of@( v5 = *a1; v6 = *(_DWORD *)(*a1 - 12); if ( !v6 || !MaxCount ) - return -1; + return (const char *)-1; v7 = (const char *)(v6 - 1); if ( v7 > a3 ) v7 = a3; @@ -63472,11 +62393,11 @@ int __userpurge std::string::find_last_of@( --v7; } while ( v7 != (const char *)-1 ); - return (int)v7; + return v7; } //----- (00467EF0) -------------------------------------------------------- -int __userpurge std::string::find_last_of@( +const char *__userpurge std::string::find_last_of@( int *a1@, std::string **this, const std::string *a3, @@ -63489,9 +62410,13 @@ int __userpurge std::string::find_last_of@( // 467F0B: variable 'v5' is possibly undefined //----- (00467F20) -------------------------------------------------------- -int __userpurge std::string::find_last_of@(_DWORD *a1@, std::string *this, unsigned int a3, unsigned int a4) +unsigned int __userpurge std::string::find_last_of@( + _DWORD *a1@, + std::string *this, + unsigned int a3, + unsigned int a4) { - int result; // eax + unsigned int result; // eax int v5; // ebx unsigned int v6; // ebx @@ -63802,7 +62727,7 @@ int __fastcall std::string::cend(_DWORD *a1) } //----- (00468360) -------------------------------------------------------- -int __userpurge std::string::copy@( +char *__userpurge std::string::copy@( _DWORD *a1@, std::string *this, char *a3, @@ -63825,20 +62750,20 @@ int __userpurge std::string::copy@( { Size = a3; if ( !a3 ) - return (int)Size; + return Size; } else if ( !Size ) { - return (int)Size; + return Size; } Src = (_BYTE *)(*a1 + a4); if ( Size != (char *)1 ) { memcpy(this, Src, (size_t)Size); - return (int)Size; + return Size; } *(_BYTE *)this = *Src; - return 1; + return (char *)1; } //----- (004683E0) -------------------------------------------------------- @@ -63848,7 +62773,7 @@ int __fastcall std::string::data(int a1) } //----- (004683F0) -------------------------------------------------------- -unsigned int __userpurge std::string::find@(int *a1@, std::string *this, char *a3, unsigned int a4) +int __userpurge std::string::find@(int *a1@, std::string *this, char *a3, unsigned int a4) { size_t Size; // eax unsigned int v7; // [esp+Ch] [ebp-10h] @@ -63859,12 +62784,7 @@ unsigned int __userpurge std::string::find@(int *a1@, std::string *thi // 468414: variable 'v7' is possibly undefined //----- (00468430) -------------------------------------------------------- -unsigned int __userpurge std::string::find@( - int *a1@, - std::string *this, - const char *a3, - size_t Size, - unsigned int a5) +int __userpurge std::string::find@(int *a1@, std::string *this, const char *a3, size_t Size, unsigned int a5) { int v5; // edi unsigned int v6; // esi @@ -63908,7 +62828,7 @@ unsigned int __userpurge std::string::find@( } return -1; } - return (unsigned int)&v11[-v14]; + return (int)&v11[-v14]; } } } @@ -63916,11 +62836,7 @@ unsigned int __userpurge std::string::find@( } //----- (00468500) -------------------------------------------------------- -unsigned int __userpurge std::string::find@( - int *a1@, - std::string **this, - const std::string *a3, - unsigned int a4) +int __userpurge std::string::find@(int *a1@, std::string **this, const std::string *a3, unsigned int a4) { unsigned int v5; // [esp+Ch] [ebp-10h] @@ -64135,7 +63051,7 @@ int __fastcall std::string::_M_iend(_DWORD *a1) //----- (004687E0) -------------------------------------------------------- int __userpurge std::string::compare@(const void **a1@, std::string *this, const char *a3) { - const void *v3; // ebp + _DWORD *v3; // ebp size_t v4; // esi size_t Size; // eax size_t v6; // ebx @@ -64225,7 +63141,7 @@ int __userpurge std::string::compare@( { int v6; // eax unsigned int v7; // ebx - unsigned int v8; // ebx + const char *v8; // ebx const char *Size; // ecx int result; // eax @@ -64237,25 +63153,25 @@ int __userpurge std::string::compare@( "basic_string::compare", (size_t)this, *(_DWORD *)(*a1 - 12)); - v8 = v7 - (_DWORD)this; - if ( v8 > (unsigned int)a3 ) + v8 = (const char *)(v7 - (_DWORD)this); + if ( v8 > a3 ) { - v8 = (unsigned int)a3; + v8 = a3; Size = a3; if ( a3 <= a5 ) goto LABEL_4; goto LABEL_8; } - Size = (const char *)v8; - if ( v8 > (unsigned int)a5 ) + Size = v8; + if ( v8 > a5 ) LABEL_8: Size = a5; LABEL_4: if ( !Size ) - return v8 - (_DWORD)a5; + return v8 - a5; result = memcmp((char *)this + v6, Buf2, (size_t)Size); if ( !result ) - return v8 - (_DWORD)a5; + return v8 - a5; return result; } @@ -64270,7 +63186,7 @@ int __userpurge std::string::compare@( int v5; // eax unsigned int v6; // ebx unsigned int v7; // ebx - const void *Buf2; // edi + _DWORD *Buf2; // edi unsigned int v9; // esi size_t Size; // ecx int result; // eax @@ -64323,7 +63239,7 @@ int __userpurge std::string::compare@( unsigned int v8; // esi unsigned int v9; // ebx unsigned int v10; // esi - unsigned int v11; // ebx + size_t v11; // ebx size_t Size; // ebp int result; // eax @@ -66410,7 +65326,7 @@ int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim:: std::string *a3, int a4, int a5, - unsigned __int8 a6, + char a6, int a7, int *a8, int a9) @@ -66581,7 +65497,7 @@ int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim:: int v10; // [esp+0h] [ebp-5Ch] int *v11; // [esp+4h] [ebp-58h] int v12; // [esp+3Ch] [ebp-20h] BYREF - long double v13[2]; // [esp+40h] [ebp-1Ch] BYREF + LONG_DOUBLE_12 v13[2]; // [esp+40h] [ebp-1Ch] BYREF LOBYTE(v10) = 0; v11 = (int *)this[2]; @@ -66590,7 +65506,7 @@ int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim:: if ( v12 ) *a8 = v12; else - *a9 = v13[0]; + *a9 = *(long double *)v13; return result; } // 46B2F1: variable 'v10' is possibly undefined @@ -66603,7 +65519,7 @@ int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim:: std::string *a3, int a4, int a5, - unsigned __int8 a6, + char a6, int a7, int *a8, long double *a9) @@ -66612,7 +65528,7 @@ int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim:: int v10; // [esp+0h] [ebp-5Ch] int *v11; // [esp+4h] [ebp-58h] int v12; // [esp+3Ch] [ebp-20h] BYREF - long double v13[2]; // [esp+40h] [ebp-1Ch] BYREF + LONG_DOUBLE_12 v13[2]; // [esp+40h] [ebp-1Ch] BYREF LOBYTE(v10) = 0; v11 = (int *)this[2]; @@ -66621,7 +65537,7 @@ int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim:: if ( v12 ) *a8 = v12; else - *a9 = v13[0]; + *a9 = *(long double *)v13; return result; } // 46B381: variable 'v10' is possibly undefined @@ -66809,7 +65725,7 @@ int __thiscall std::__facet_shims::`anonymous namespace'::money_get_shim::do_out( int __thiscall std::__codecvt_utf8_base::do_length( unsigned int *this, int a2, - int a3, + unsigned __int8 *a3, unsigned __int8 *a4, int a5) { - std::`anonymous namespace'::ucs2_span(a5, a4, this[2], this[3]); - return 0; + int v5; // eax + + std::`anonymous namespace'::ucs2_span(a5, a4, a3, this[2], this[3]); + return v5 - (_DWORD)a3; } +// 46C1A7: variable 'v5' is possibly undefined //----- (0046C1B0) -------------------------------------------------------- int __fastcall std::__codecvt_utf8_base::do_max_length(int a1) @@ -67521,13 +66440,16 @@ int __thiscall std::__codecvt_utf8_base::do_out( int __thiscall std::__codecvt_utf8_base::do_length( unsigned int *this, int a2, - int a3, + unsigned __int8 *a3, unsigned __int8 *a4, int a5) { - std::`anonymous namespace'::ucs2_span(a5, a4, this[3], this[4]); - return 0; + int v5; // eax + + std::`anonymous namespace'::ucs2_span(a5, a4, a3, this[3], this[4]); + return v5 - (_DWORD)a3; } +// 46C2D7: variable 'v5' is possibly undefined //----- (0046C2E0) -------------------------------------------------------- char __userpurge std::__iosfail_type_info::__do_upcast@( @@ -67780,7 +66702,7 @@ int __thiscall std::__codecvt_utf16_base::do_out( unsigned int *a3, unsigned int *a4, unsigned int **a5, - int a6, + _WORD *a6, int a7, _DWORD *a8) { @@ -67804,7 +66726,7 @@ int __thiscall std::__codecvt_utf16_base::do_out( v8 = this[3]; v9 = this[2]; v10 = a3; - v23 = (_WORD *)a6; + v23 = a6; v24 = a7; v11 = (unsigned __int8)std::`anonymous namespace'::write_utf16_bom((int)&v23, v8) == 0; v12 = v23; @@ -68086,9 +67008,9 @@ int __thiscall std::__codecvt_utf8_utf16_base::do_in( unsigned __int8 *a3, unsigned __int8 *a4, unsigned __int8 **a5, - unsigned int *a6, - unsigned int *a7, - unsigned int **a8) + char *a6, + char *a7, + char **a8) { unsigned int v8; // edi unsigned __int8 *v9; // ebp @@ -68135,23 +67057,23 @@ LABEL_14: break; if ( v12 <= 0xFFFF ) { - *a6 = v12; + *(_DWORD *)a6 = v12; v9 = v14; - ++a6; + a6 += 4; if ( v14 == v15 ) goto LABEL_14; } else { - if ( (char *)a7 - (char *)a6 == 4 ) + if ( a7 - a6 == 4 ) { result = 1; goto LABEL_12; } v9 = v14; - a6 += 2; - *(a6 - 1) = (unsigned __int16)((v12 & 0x3FF) - 9216); - *(a6 - 2) = (unsigned __int16)((v12 >> 10) - 10304); + a6 += 8; + *((_DWORD *)a6 - 1) = (unsigned __int16)((v12 & 0x3FF) - 9216); + *((_DWORD *)a6 - 2) = (unsigned __int16)((v12 >> 10) - 10304); if ( v9 == v15 ) goto LABEL_14; } @@ -68243,13 +67165,16 @@ LABEL_15: int __thiscall std::__codecvt_utf8_utf16_base::do_length( unsigned int *this, int a2, - int a3, + unsigned __int8 *a3, unsigned __int8 *a4, unsigned int a5) { - std::`anonymous namespace'::utf16_span(a5, a4, this[2], this[3]); - return 0; + int v5; // eax + + std::`anonymous namespace'::utf16_span(a5, a4, a3, this[2], this[3]); + return v5 - (_DWORD)a3; } +// 46CCC7: variable 'v5' is possibly undefined //----- (0046CCD0) -------------------------------------------------------- int __fastcall std::__codecvt_utf8_utf16_base::do_max_length(int a1) @@ -68313,13 +67238,16 @@ int __thiscall std::__codecvt_utf8_utf16_base::do_out( int __thiscall std::__codecvt_utf8_utf16_base::do_length( unsigned int *this, int a2, - int a3, + unsigned __int8 *a3, unsigned __int8 *a4, unsigned int a5) { - std::`anonymous namespace'::utf16_span(a5, a4, this[2], this[3]); - return 0; + int v5; // eax + + std::`anonymous namespace'::utf16_span(a5, a4, a3, this[2], this[3]); + return v5 - (_DWORD)a3; } +// 46CDE7: variable 'v5' is possibly undefined //----- (0046CDF0) -------------------------------------------------------- int __fastcall std::__codecvt_utf8_utf16_base::do_max_length(int a1) @@ -68491,13 +67419,16 @@ LABEL_15: int __thiscall std::__codecvt_utf8_utf16_base::do_length( unsigned int *this, int a2, - int a3, + unsigned __int8 *a3, unsigned __int8 *a4, unsigned int a5) { - std::`anonymous namespace'::utf16_span(a5, a4, this[3], this[4]); - return 0; + int v5; // eax + + std::`anonymous namespace'::utf16_span(a5, a4, a3, this[3], this[4]); + return v5 - (_DWORD)a3; } +// 46D057: variable 'v5' is possibly undefined //----- (0046D060) -------------------------------------------------------- _DWORD *__thiscall std::_V2::error_category::_M_message[abi:cxx11](_DWORD *this, int a2, int a3) @@ -69033,18 +67964,18 @@ wctype_t __stdcall std::ctype::_M_convert_to_wmask(unsigned __int16 a1) unsigned int __thiscall std::ctype::do_is(char *this, wint_t *a2, unsigned int a3, _WORD *a4) { wint_t *v4; // ebx - _WORD *v5; // edi - _WORD *v6; // ebp + char *v5; // edi + char *v6; // ebp __int16 v7; // si _WORD *v8; // eax - unsigned int v10; // [esp+18h] [ebp-24h] - _WORD *v11; // [esp+1Ch] [ebp-20h] + _WORD *v10; // [esp+18h] [ebp-24h] + char *v11; // [esp+1Ch] [ebp-20h] v4 = a2; if ( (unsigned int)a2 < a3 ) { v5 = this + 686; - v10 = (unsigned int)&a4[((a3 - 1 - (unsigned int)a2) >> 1) + 1]; + v10 = &a4[((a3 - 1 - (unsigned int)a2) >> 1) + 1]; v11 = this + 654; do { @@ -69052,9 +67983,9 @@ unsigned int __thiscall std::ctype::do_is(char *this, wint_t *a2, unsig v7 = 0; do { - if ( iswctype(*v4, v6[16]) ) - v7 |= *v6; - ++v6; + if ( iswctype(*v4, *((_WORD *)v6 + 16)) ) + v7 |= *(_WORD *)v6; + v6 += 2; } while ( v6 != v5 ); v8 = a4; @@ -69062,7 +67993,7 @@ unsigned int __thiscall std::ctype::do_is(char *this, wint_t *a2, unsig ++a4; *v8 = v7; } - while ( a4 != (_WORD *)v10 ); + while ( a4 != v10 ); } return a3; } @@ -69120,7 +68051,7 @@ unsigned int __thiscall std::ctype::do_narrow(_BYTE *this, wint_t *a2, { wint_t *v5; // ebx char *v6; // esi - unsigned int v8; // ebp + wint_t *v8; // ebp int v9; // ecx int v10; // eax char v11; // cl @@ -69133,7 +68064,7 @@ unsigned int __thiscall std::ctype::do_narrow(_BYTE *this, wint_t *a2, { if ( (unsigned int)a2 < a3 ) { - v8 = (unsigned int)&a2[((a3 - 1 - (unsigned int)a2) >> 1) + 1]; + v8 = &a2[((a3 - 1 - (unsigned int)a2) >> 1) + 1]; do { while ( 1 ) @@ -69143,7 +68074,7 @@ unsigned int __thiscall std::ctype::do_narrow(_BYTE *this, wint_t *a2, break; ++v5; *v6++ = this[v9 + 13]; - if ( (wint_t *)v8 == v5 ) + if ( v8 == v5 ) return a3; } v10 = wctob(*v5); @@ -69153,7 +68084,7 @@ unsigned int __thiscall std::ctype::do_narrow(_BYTE *this, wint_t *a2, ++v5; *v6++ = v11; } - while ( (wint_t *)v8 != v5 ); + while ( v8 != v5 ); } return a3; } @@ -69207,7 +68138,7 @@ int __fastcall std::locale::id::_M_id(int *a1) // 78A9D4: using guessed type int _CRT_MT; //----- (0046DC60) -------------------------------------------------------- -int __thiscall std::locale::name[abi:cxx11](int this, int *a2) +_DWORD *__thiscall std::locale::name[abi:cxx11](_DWORD *this, int *a2) { int v3; // eax int v4; // edi @@ -69232,26 +68163,26 @@ int __thiscall std::locale::name[abi:cxx11](int this, int *a2) size_t v24; // eax const char *v25; // [esp+0h] [ebp-38h] char *Str; // [esp+14h] [ebp-24h] - int v27; // [esp+18h] [ebp-20h] + _DWORD *v27; // [esp+18h] [ebp-20h] char *Str1; // [esp+1Ch] [ebp-1Ch] - *(_DWORD *)this = this + 8; - v27 = this + 8; - *(_BYTE *)(this + 8) = 0; + *this = this + 2; + v27 = this + 2; + *((_BYTE *)this + 8) = 0; v3 = *a2; - *(_DWORD *)(this + 4) = 0; + this[1] = 0; v4 = *(_DWORD *)(v3 + 16); Str = *(char **)v4; if ( !*(_DWORD *)v4 ) { - std::string::_M_replace_aux((_DWORD *)this, 0, 0, 1u, 42); + std::string::_M_replace_aux(this, 0, 0, 1u, 42); return this; } if ( !*(_DWORD *)(v4 + 4) ) { LABEL_26: v24 = strlen(Str); - std::string::_M_replace((unsigned int *)this, 0, 0, Str, v24); + std::string::_M_replace((unsigned int **)this, 0, 0, Str, v24); return this; } v5 = 0; @@ -69270,69 +68201,69 @@ LABEL_26: if ( !v6 ) goto LABEL_26; LABEL_6: - std::string::reserve((_DWORD *)this, 0x80u); + std::string::reserve(this, 0x80u); v7 = strlen(*std::locale::_S_categories); - if ( v7 > 0x3FFFFFFF - *(_DWORD *)(this + 4) ) + if ( v7 > 0x3FFFFFFF - this[1] ) std::__throw_length_error((std::length_error *)"basic_string::append"); - std::string::_M_append((_DWORD *)this, *std::locale::_S_categories, v7); - v8 = *(_DWORD *)(this + 4); - v9 = *(_DWORD *)this; + std::string::_M_append(this, *std::locale::_S_categories, v7); + v8 = this[1]; + v9 = *this; v10 = v8 + 1; - if ( v27 == *(_DWORD *)this ) + if ( v27 == (_DWORD *)*this ) v11 = 15; else - v11 = *(_DWORD *)(this + 8); + v11 = this[2]; if ( v10 > v11 ) { - std::string::_M_mutate(this, v8, 0, 0, 1u); - v9 = *(_DWORD *)this; + std::string::_M_mutate((int)this, v8, 0, 0, 1u); + v9 = *this; } *(_BYTE *)(v9 + v8) = 61; - v12 = *(_DWORD *)this; - *(_DWORD *)(this + 4) = v10; + v12 = *this; + this[1] = v10; *(_BYTE *)(v12 + v8 + 1) = 0; v13 = strlen(**(const char ***)(*a2 + 16)); - if ( v13 > 0x3FFFFFFF - *(_DWORD *)(this + 4) ) + if ( v13 > 0x3FFFFFFF - this[1] ) std::__throw_length_error((std::length_error *)"basic_string::append"); - std::string::_M_append((_DWORD *)this, **(_BYTE ***)(*a2 + 16), v13); + std::string::_M_append(this, **(_BYTE ***)(*a2 + 16), v13); for ( i = 1; i != 6; ++i ) { - v15 = *(_DWORD *)(this + 4); - v16 = *(_DWORD *)this; - if ( v27 == *(_DWORD *)this ) + v15 = this[1]; + v16 = *this; + if ( v27 == (_DWORD *)*this ) v17 = 15; else - v17 = *(_DWORD *)(this + 8); + v17 = this[2]; if ( v15 + 1 > v17 ) { - std::string::_M_mutate(this, v15, 0, 0, 1u); - v16 = *(_DWORD *)this; + std::string::_M_mutate((int)this, v15, 0, 0, 1u); + v16 = *this; } *(_BYTE *)(v16 + v15) = 59; - *(_DWORD *)(this + 4) = v15 + 1; - *(_BYTE *)(*(_DWORD *)this + v15 + 1) = 0; + this[1] = v15 + 1; + *(_BYTE *)(*this + v15 + 1) = 0; v18 = strlen(std::locale::_S_categories[i]); - if ( v18 > 0x3FFFFFFF - *(_DWORD *)(this + 4) ) + if ( v18 > 0x3FFFFFFF - this[1] ) std::__throw_length_error((std::length_error *)"basic_string::append"); - std::string::_M_append((_DWORD *)this, std::locale::_S_categories[i], v18); - v19 = *(_DWORD *)(this + 4); - v20 = *(_DWORD *)this; - if ( v27 == *(_DWORD *)this ) + std::string::_M_append(this, std::locale::_S_categories[i], v18); + v19 = this[1]; + v20 = *this; + if ( v27 == (_DWORD *)*this ) v21 = 15; else - v21 = *(_DWORD *)(this + 8); + v21 = this[2]; if ( v19 + 1 > v21 ) { - std::string::_M_mutate(this, v19, 0, 0, 1u); - v20 = *(_DWORD *)this; + std::string::_M_mutate((int)this, v19, 0, 0, 1u); + v20 = *this; } *(_BYTE *)(v20 + v19) = 61; - *(_DWORD *)(this + 4) = v19 + 1; - *(_BYTE *)(*(_DWORD *)this + v19 + 1) = 0; + this[1] = v19 + 1; + *(_BYTE *)(*this + v19 + 1) = 0; v22 = strlen(*(const char **)(*(_DWORD *)(*a2 + 16) + i * 4)); - if ( v22 > 0x3FFFFFFF - *(_DWORD *)(this + 4) ) + if ( v22 > 0x3FFFFFFF - this[1] ) std::__throw_length_error((std::length_error *)"basic_string::append"); - std::string::_M_append((_DWORD *)this, *(_BYTE **)(*(_DWORD *)(*a2 + 16) + i * 4), v22); + std::string::_M_append(this, *(_BYTE **)(*(_DWORD *)(*a2 + 16) + i * 4), v22); } return this; } @@ -69352,12 +68283,12 @@ unsigned int **__thiscall std::locale::name(unsigned int **ecx0, std::locale *th char *v11; // edx unsigned int v12; // edi unsigned int *v13; // eax - int v14; // edx + unsigned int *v14; // edx size_t v15; // eax char *v16; // edx unsigned int v17; // edi unsigned int *v18; // eax - int v19; // edx + unsigned int *v19; // edx size_t v20; // eax size_t v22; // eax const char *v23; // [esp+0h] [ebp-48h] @@ -69423,12 +68354,12 @@ LABEL_6: std::string::reserve(ecx0, (std::string *)(v11 + 1), v26); *((_BYTE *)*ecx0 + *(*ecx0 - 3)) = 59; v13 = *ecx0; - v14 = (int)(*ecx0 - 3); + v14 = *ecx0 - 3; if ( *ecx0 != (unsigned int *)&unk_51641C ) { *(v13 - 1) = 0; *(v13 - 3) = v12; - Str1a[v14 + 13] = 0; + Str1a[(_DWORD)v14 + 13] = 0; } v15 = strlen(std::locale::_S_categories[i]); std::string::append(ecx0, (std::string *)std::locale::_S_categories[i], v15, v30); @@ -69439,12 +68370,12 @@ LABEL_6: std::string::reserve(ecx0, (std::string *)(v16 + 1), v27); *((_BYTE *)*ecx0 + *(*ecx0 - 3)) = 61; v18 = *ecx0; - v19 = (int)(*ecx0 - 3); + v19 = *ecx0 - 3; if ( *ecx0 != (unsigned int *)&unk_51641C ) { *(v18 - 1) = 0; *(v18 - 3) = v17; - Str1b[v19 + 13] = 0; + Str1b[(_DWORD)v19 + 13] = 0; } v20 = strlen(*(const char **)(*(_DWORD *)(*(_DWORD *)this + 16) + i * 4)); std::string::append(ecx0, *(std::string **)(*(_DWORD *)(*(_DWORD *)this + 16) + i * 4), v20, v31); @@ -70398,6 +69329,22 @@ _DWORD *__userpurge std::locale::facet::_M_sso_shim@( // 46F41C: variable 'v49' is possibly undefined // 46F4AE: variable 'v57' is possibly undefined // 46F504: variable 'v50' is possibly undefined +// 5165A8: using guessed type int std::moneypunct::id; +// 5165AC: using guessed type int std::moneypunct::id; +// 5165B0: using guessed type int std::moneypunct::id; +// 5165B4: using guessed type int std::moneypunct::id; +// 5165B8: using guessed type int std::collate::id; +// 5165BC: using guessed type int std::collate::id; +// 5165C0: using guessed type int std::messages::id; +// 5165C4: using guessed type int std::messages::id; +// 5165C8: using guessed type int std::numpunct::id; +// 5165CC: using guessed type int std::numpunct::id; +// 5165D0: using guessed type int std::time_get>::id; +// 5165D4: using guessed type int std::time_get>::id; +// 5165D8: using guessed type int std::money_get>::id; +// 5165DC: using guessed type int std::money_get>::id; +// 5165E0: using guessed type int std::money_put>::id; +// 5165E4: using guessed type int std::money_put>::id; // 534108: using guessed type int *`typeinfo for'std::locale::facet::__shim; // 534110: using guessed type int *`typeinfo for'std::locale::facet; // 5379CC: using guessed type int (*off_5379CC)(); @@ -70485,8 +69432,8 @@ bool __thiscall std::locale::operator==(int *this, int *a2) return 0; if ( !*(_DWORD *)(v2 + 4) && !v7[1] ) return 1; - std::locale::name[abi:cxx11]((int)Buf2, a2); - std::locale::name[abi:cxx11]((int)&Buf1, this); + std::locale::name[abi:cxx11](Buf2, a2); + std::locale::name[abi:cxx11](&Buf1, this); v5 = (char *)Buf1; result = 0; if ( (void *)Size == Buf2[1] ) @@ -71717,10 +70664,10 @@ unsigned int __thiscall std::string::find_last_of(int *this, int a2, int a3) } //----- (004709C0) -------------------------------------------------------- -int __thiscall std::string::find_last_of(int *this, char a2, unsigned int a3) +unsigned int __thiscall std::string::find_last_of(int *this, char a2, unsigned int a3) { int v3; // ebx - int result; // eax + unsigned int result; // eax unsigned int v5; // ebx int v6; // ecx @@ -72007,7 +70954,7 @@ int __fastcall std::string::data(int a1) } //----- (00470E70) -------------------------------------------------------- -int __thiscall std::string::find(int *this, char *Str, int a3) +unsigned int __thiscall std::string::find(int *this, char *Str, int a3) { size_t Size; // eax @@ -72016,7 +70963,7 @@ int __thiscall std::string::find(int *this, char *Str, int a3) } //----- (00470EB0) -------------------------------------------------------- -int __thiscall std::string::find(int *this, char *Buf2, unsigned int a3, size_t Size) +unsigned int __thiscall std::string::find(int *this, char *Buf2, unsigned int a3, size_t Size) { unsigned int v4; // esi int v5; // ebp @@ -72060,7 +71007,7 @@ int __thiscall std::string::find(int *this, char *Buf2, unsigned int a3, size_t } return -1; } - return (int)&v10[-v13]; + return (unsigned int)&v10[-v13]; } } } @@ -72068,7 +71015,7 @@ int __thiscall std::string::find(int *this, char *Buf2, unsigned int a3, size_t } //----- (00470F70) -------------------------------------------------------- -int __thiscall std::string::find(int *this, int a2, int a3) +unsigned int __thiscall std::string::find(int *this, int a2, int a3) { return std::string::find(this, *(char **)a2, a3, *(_DWORD *)(a2 + 4)); } @@ -72156,7 +71103,7 @@ unsigned int __thiscall std::string::rfind(int *this, char *Str, int a3) unsigned int __thiscall std::string::rfind(int *this, void *Buf2, unsigned int a3, size_t Size) { unsigned int v4; // ebx - size_t v5; // eax + unsigned int v5; // eax int v6; // ebp v4 = -1; @@ -72578,10 +71525,10 @@ unsigned int __thiscall std::wstring::find_last_of(_DWORD *this, int a2, int a3) } //----- (00471700) -------------------------------------------------------- -int __thiscall std::wstring::find_last_of(int *this, __int16 a2, unsigned int a3) +unsigned int __thiscall std::wstring::find_last_of(int *this, __int16 a2, unsigned int a3) { int v3; // ebx - int result; // eax + unsigned int result; // eax unsigned int v5; // ebx int v6; // ecx @@ -72732,7 +71679,7 @@ int __thiscall std::wstring::find_last_not_of(int *this, __int16 a2, unsigned in } //----- (004719B0) -------------------------------------------------------- -int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *String, int a3) +unsigned int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *String, int a3) { size_t v4; // eax @@ -72741,10 +71688,10 @@ int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *String, in } //----- (004719F0) -------------------------------------------------------- -int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *S, unsigned int a3, size_t N) +unsigned int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *S, unsigned int a3, size_t N) { unsigned int v4; // ebx - int result; // eax + unsigned int result; // eax wchar_t *i; // eax v4 = a3; @@ -72764,7 +71711,7 @@ int __thiscall std::wstring::find_first_not_of(_DWORD *this, wchar_t *S, unsigne } //----- (00471A60) -------------------------------------------------------- -int __thiscall std::wstring::find_first_not_of(_DWORD *this, int a2, int a3) +unsigned int __thiscall std::wstring::find_first_not_of(_DWORD *this, int a2, int a3) { return std::wstring::find_first_not_of(this, *(wchar_t **)a2, a3, *(_DWORD *)(a2 + 4)); } @@ -72790,7 +71737,7 @@ int __thiscall std::wstring::find_first_not_of(int *this, __int16 a2, unsigned i } //----- (00471AD0) -------------------------------------------------------- -int __thiscall std::wstring::at(_DWORD *this, unsigned int a2) +unsigned int __thiscall std::wstring::at(_DWORD *this, unsigned int a2) { if ( a2 >= this[1] ) std::__throw_out_of_range_fmt("basic_string::at: __n (which is %zu) >= this->size() (which is %zu)", a2, this[1]); @@ -72999,7 +71946,7 @@ unsigned int __thiscall std::wstring::rfind(int *this, wchar_t *String, int a3) //----- (00471E00) -------------------------------------------------------- unsigned int __thiscall std::wstring::rfind(int *this, wchar_t *S2, unsigned int a3, size_t N) { - size_t v4; // ebx + unsigned int v4; // ebx unsigned int v5; // ebx int v6; // edi @@ -73404,9 +72351,9 @@ int __thiscall std::stringbuf::str(int this, _DWORD *a2) v4 = a2[3]; v5 = (char *)a2[4]; if ( v3 > v4 ) - std::string::_M_replace((unsigned int *)this, 0, 0, v5, v3 - (_DWORD)v5); + std::string::_M_replace((unsigned int **)this, 0, 0, v5, v3 - (_DWORD)v5); else - std::string::_M_replace((unsigned int *)this, 0, 0, v5, v4 - (_DWORD)v5); + std::string::_M_replace((unsigned int **)this, 0, 0, v5, v4 - (_DWORD)v5); return this; } else @@ -73460,9 +72407,9 @@ int __thiscall std::basic_stringstream,std::allocato v4 = a2[6]; v5 = (char *)a2[7]; if ( v3 > v4 ) - std::string::_M_replace((unsigned int *)this, 0, 0, v5, v3 - (_DWORD)v5); + std::string::_M_replace((unsigned int **)this, 0, 0, v5, v3 - (_DWORD)v5); else - std::string::_M_replace((unsigned int *)this, 0, 0, v5, v4 - (_DWORD)v5); + std::string::_M_replace((unsigned int **)this, 0, 0, v5, v4 - (_DWORD)v5); return this; } else @@ -73530,9 +72477,9 @@ int __thiscall std::istringstream::str(int this, _DWORD *a2) v4 = a2[5]; v5 = (char *)a2[6]; if ( v3 > v4 ) - std::string::_M_replace((unsigned int *)this, 0, 0, v5, v3 - (_DWORD)v5); + std::string::_M_replace((unsigned int **)this, 0, 0, v5, v3 - (_DWORD)v5); else - std::string::_M_replace((unsigned int *)this, 0, 0, v5, v4 - (_DWORD)v5); + std::string::_M_replace((unsigned int **)this, 0, 0, v5, v4 - (_DWORD)v5); return this; } else @@ -73598,9 +72545,9 @@ int __thiscall std::ostringstream::str(int this, _DWORD *a2) v4 = a2[4]; v5 = (char *)a2[5]; if ( v3 > v4 ) - std::string::_M_replace((unsigned int *)this, 0, 0, v5, v3 - (_DWORD)v5); + std::string::_M_replace((unsigned int **)this, 0, 0, v5, v3 - (_DWORD)v5); else - std::string::_M_replace((unsigned int *)this, 0, 0, v5, v4 - (_DWORD)v5); + std::string::_M_replace((unsigned int **)this, 0, 0, v5, v4 - (_DWORD)v5); return this; } else @@ -73724,7 +72671,7 @@ size_t __stdcall std::collate::_M_transform(char *Destination, char *Sourc } //----- (00472B20) -------------------------------------------------------- -int __thiscall std::collate::do_transform(int this, int a2, unsigned __int8 *a3, size_t Size) +_DWORD *__thiscall std::collate::do_transform(_DWORD *this, int a2, unsigned __int8 *a3, size_t Size) { unsigned int v5; // edi char *v6; // esi @@ -73733,7 +72680,7 @@ int __thiscall std::collate::do_transform(int this, int a2, unsigned __int int v9; // eax unsigned int v10; // edx int v12; // [esp+8h] [ebp-60h] - int v13; // [esp+1Ch] [ebp-4Ch] + _DWORD *v13; // [esp+1Ch] [ebp-4Ch] char *v14; // [esp+20h] [ebp-48h] size_t v15; // [esp+24h] [ebp-44h] unsigned int v16; // [esp+28h] [ebp-40h] @@ -73741,11 +72688,11 @@ int __thiscall std::collate::do_transform(int this, int a2, unsigned __int void *v18[2]; // [esp+38h] [ebp-30h] BYREF char v19[40]; // [esp+40h] [ebp-28h] BYREF - *(_DWORD *)this = this + 8; - *(_DWORD *)(this + 4) = 0; - *(_BYTE *)(this + 8) = 0; + *this = this + 2; + this[1] = 0; + *((_BYTE *)this + 8) = 0; LOBYTE(v12) = 0; - v13 = this + 8; + v13 = this + 2; v18[0] = v19; std::string::_M_construct(v18, a3, Size, v12); v5 = 2 * (Size - (_DWORD)a3); @@ -73762,28 +72709,28 @@ int __thiscall std::collate::do_transform(int this, int a2, unsigned __int v6 = (char *)operator new[](v5); v7 = std::collate::_M_transform(v6, Str, v5); } - if ( v7 > 0x3FFFFFFF - *(_DWORD *)(this + 4) ) + if ( v7 > 0x3FFFFFFF - this[1] ) std::__throw_length_error((std::length_error *)"basic_string::append"); - std::string::_M_append((_DWORD *)this, v6, v7); + std::string::_M_append(this, v6, v7); v8 = &Str[strlen(Str)]; if ( v14 == v8 ) break; Str = v8 + 1; - v15 = *(_DWORD *)(this + 4); + v15 = this[1]; v16 = v15 + 1; - v9 = *(_DWORD *)this; - if ( v13 == *(_DWORD *)this ) + v9 = *this; + if ( v13 == (_DWORD *)*this ) v10 = 15; else - v10 = *(_DWORD *)(this + 8); + v10 = this[2]; if ( v16 > v10 ) { - std::string::_M_mutate(this, v15, 0, 0, 1u); - v9 = *(_DWORD *)this; + std::string::_M_mutate((int)this, v15, 0, 0, 1u); + v9 = *this; } *(_BYTE *)(v9 + v15) = 0; - *(_DWORD *)(this + 4) = v16; - *(_BYTE *)(*(_DWORD *)this + v15 + 1) = 0; + this[1] = v16; + *(_BYTE *)(*this + v15 + 1) = 0; } operator delete[](v6); if ( v18[0] != v19 ) @@ -75845,26 +74792,26 @@ LABEL_121: else v68(v10, "%H:%M:%S", &unk_52F882, v108); LABEL_103: - v57 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - a2, - (int)a3, - a4, - a5, - (int)&v106, - (int)a7, - (char *)v108); + v57 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + a5, + &v106, + a7, + (char *)v108); goto LABEL_97; case 23: - v57 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - a2, - (int)a3, - a4, - a5, - (int)&v106, - (int)a7, - *(char **)(v103[2] + 16)); + v57 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + a5, + &v106, + a7, + *(char **)(v103[2] + 16)); goto LABEL_97; case 25: if ( a1 && a2 == -1 ) @@ -76050,15 +74997,15 @@ LABEL_59: a7[4] = v107; break; case 34: - v57 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - a2, - (int)a3, - a4, - a5, - (int)&v106, - (int)a7, - *(char **)(v103[2] + 24)); + v57 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + a5, + &v106, + a7, + *(char **)(v103[2] + 24)); goto LABEL_97; case 35: v90 = a5; @@ -76236,15 +75183,15 @@ LABEL_73: a2 = -1; break; case 55: - v57 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - a2, - (int)a3, - a4, - a5, - (int)&v106, - (int)a7, - *(char **)(v103[2] + 8)); + v57 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + a5, + &v106, + a7, + *(char **)(v103[2] + 8)); LABEL_97: a1 = v57; a2 = v58; @@ -76348,7 +75295,7 @@ _DWORD *__stdcall std::time_get>::_M_extract char v12; // dl bool v13; // bl char v14; // bl - int v15; // edi + unsigned int v15; // edi unsigned int v16; // esi char v17; // dl bool v18; // bl @@ -76668,9 +75615,9 @@ LABEL_39: } //----- (00476010) -------------------------------------------------------- -int __thiscall std::time_get>::get( +_DWORD *__thiscall std::time_get>::get( void *this, - int a2, + _DWORD *a2, int a3, _DWORD *a4, int a5, @@ -76692,12 +75639,12 @@ int __thiscall std::time_get>::get( char v20; // bl int v21; // edx char v22; // bl - char v23; // al + unsigned __int8 v23; // al int (__stdcall *v24)(unsigned __int8, int); // ebx unsigned __int8 v25; // dl int (__stdcall *v26)(unsigned __int8, int); // eax int v27; // ecx - __int64 (__thiscall *v28)(void *, int, int, _DWORD *, int, int, _DWORD *, _DWORD *, int, int); // eax + __int64 (__thiscall *v28)(void *, _DWORD *, int, _DWORD *, int, int, _DWORD *, _DWORD *, int, int); // eax _BYTE *v29; // eax char v30; // dl _BYTE *v31; // esi @@ -76756,9 +75703,9 @@ int __thiscall std::time_get>::get( v62 = a3 == -1; if ( v62 && a2 != 0 ) { - if ( *(_DWORD *)(a2 + 8) >= *(_DWORD *)(a2 + 12) ) + if ( a2[2] >= a2[3] ) { - v55 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v55 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); v19 = v55 == -1 && v62 && a2 != 0; a2 = v55 == -1 ? 0 : a2; } @@ -76872,7 +75819,7 @@ LABEL_22: } LABEL_37: v72 = v25; - v28 = *(__int64 (__thiscall **)(void *, int, int, _DWORD *, int, int, _DWORD *, _DWORD *, int, int))(*(_DWORD *)this + 32); + v28 = *(__int64 (__thiscall **)(void *, _DWORD *, int, _DWORD *, int, int, _DWORD *, _DWORD *, int, int))(*(_DWORD *)this + 32); if ( (char *)v28 == (char *)std::time_get>::do_get ) { v29 = std::use_facet>(a6 + 108); @@ -76907,7 +75854,7 @@ LABEL_37: v76 = 0; } v32 = std::time_get>::_M_extract_via_format( - (_DWORD *)a2, + a2, a3, a4, a5, @@ -76915,7 +75862,7 @@ LABEL_37: a7, a8, &v74); - a2 = (int)v32; + a2 = v32; v34 = v33 == -1; a3 = v33; v35 = v34 & (v32 != 0); @@ -76947,7 +75894,7 @@ LABEL_37: { v50 = v28(this, a2, a3, a4, a5, a6, a7, a8, v27, v73); a3 = HIDWORD(v50); - a2 = v50; + a2 = (_DWORD *)v50; } v10 = v67 + 1; if ( a10 == v67 + 1 ) @@ -76970,9 +75917,9 @@ LABEL_3: v40 = j == -1; if ( v40 && a2 != 0 ) { - if ( *(_DWORD *)(a2 + 8) >= *(_DWORD *)(a2 + 12) ) + if ( a2[2] >= a2[3] ) { - v52 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v52 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); v41 = v52 == -1 && v40 && a2 != 0; a2 = v52 == -1 ? 0 : a2; } @@ -77008,8 +75955,8 @@ LABEL_72: LABEL_60: if ( a2 && j == -1 ) { - v44 = *(unsigned __int8 **)(a2 + 8); - if ( (unsigned int)v44 < *(_DWORD *)(a2 + 12) ) + v44 = (unsigned __int8 *)a2[2]; + if ( (unsigned int)v44 < a2[3] ) { if ( (*(_BYTE *)(v64[6] + 2 * *v44) & 0x20) == 0 ) { @@ -77019,10 +75966,10 @@ LABEL_60: goto LABEL_15; } LABEL_65: - *(_DWORD *)(a2 + 8) = v44 + 1; + a2[2] = v44 + 1; continue; } - v43 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v43 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); a2 = v43 == -1 ? 0 : a2; } else @@ -77031,20 +75978,20 @@ LABEL_65: } if ( (*(_BYTE *)(v64[6] + 2 * (unsigned __int8)v43) & 0x20) == 0 ) goto LABEL_72; - v44 = *(unsigned __int8 **)(a2 + 8); - if ( (unsigned int)v44 < *(_DWORD *)(a2 + 12) ) + v44 = (unsigned __int8 *)a2[2]; + if ( (unsigned int)v44 < a2[3] ) goto LABEL_65; - (*(void (__fastcall **)(int))(*(_DWORD *)a2 + 40))(a2); + (*(void (__fastcall **)(_DWORD *))(*a2 + 40))(a2); } v42 = a5 == -1; goto LABEL_59; } if ( a2 && a3 == -1 ) { - v49 = *(char **)(a2 + 8); - if ( (unsigned int)v49 >= *(_DWORD *)(a2 + 12) ) + v49 = (char *)a2[2]; + if ( (unsigned int)v49 >= a2[3] ) { - v58 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v58 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); v14 = v58 != -1 ? v58 : -1; a2 = v58 == -1 ? 0 : a2; } @@ -77062,10 +76009,10 @@ LABEL_65: { if ( a2 && a3 == -1 ) { - v54 = *(char **)(a2 + 8); - if ( (unsigned int)v54 >= *(_DWORD *)(a2 + 12) ) + v54 = (char *)a2[2]; + if ( (unsigned int)v54 >= a2[3] ) { - v59 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v59 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); v16 = v59 != -1 ? v59 : -1; a2 = v59 == -1 ? 0 : a2; } @@ -77082,11 +76029,11 @@ LABEL_65: if ( (*(unsigned __int8 (__thiscall **)(_DWORD *, _DWORD))(*v12 + 8))(v12, (char)*v10) != v17 ) break; } - v18 = *(_DWORD *)(a2 + 8); - if ( v18 >= *(_DWORD *)(a2 + 12) ) - (*(void (__fastcall **)(int))(*(_DWORD *)a2 + 40))(a2); + v18 = a2[2]; + if ( v18 >= a2[3] ) + (*(void (__fastcall **)(_DWORD *))(*a2 + 40))(a2); else - *(_DWORD *)(a2 + 8) = v18 + 1; + a2[2] = v18 + 1; a3 = -1; ++v10; LABEL_15: @@ -77102,7 +76049,7 @@ LABEL_16: // 476300: variable 'v33' is possibly undefined //----- (00476890) -------------------------------------------------------- -int __thiscall std::time_get>::get( +_DWORD *__thiscall std::time_get>::get( void *this, _DWORD *a2, int a3, @@ -77134,17 +76081,17 @@ int __thiscall std::time_get>::get( v10 = *(_DWORD *(__stdcall **)(_DWORD *, int, _DWORD *, int, int, _DWORD *, _DWORD *, char, char))(*(_DWORD *)this + 32); if ( v10 != std::time_get>::do_get ) - return ((int (__thiscall *)(void *, _DWORD *, int, _DWORD *, int, int, _DWORD *, _DWORD *, _DWORD, _DWORD))v10)( - this, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10); + return (_DWORD *)((int (__thiscall *)(void *, _DWORD *, int, _DWORD *, int, int, _DWORD *, _DWORD *, _DWORD, _DWORD))v10)( + this, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10); v11 = std::use_facet>(a6 + 108); *a7 = 0; if ( v11[28] ) @@ -77202,7 +76149,7 @@ int __thiscall std::time_get>::get( } if ( v15 == v17 ) *a7 |= 2u; - return (int)v13; + return v13; } // 47696A: variable 'v14' is possibly undefined @@ -77463,7 +76410,7 @@ _DWORD *__stdcall std::time_get>::do_g //----- (00476F70) -------------------------------------------------------- _DWORD *__stdcall std::time_get>::do_get_year( _DWORD *a1, - __int16 a2, + unsigned __int16 a2, _DWORD *a3, __int16 a4, int a5, @@ -77567,7 +76514,7 @@ int __fastcall std::time_get>::get_mon //----- (00477120) -------------------------------------------------------- _DWORD *__stdcall std::time_get>::_M_extract_num( _DWORD *a1, - __int16 a2, + unsigned __int16 a2, _DWORD *a3, __int16 a4, int *a5, @@ -77603,10 +76550,10 @@ _DWORD *__stdcall std::time_get>::_M_e v12 = 0; for ( i = 0; ; ++i ) { - v25 = a2 == -1 && a1 != 0; + v25 = a2 == 0xFFFF && a1 != 0; if ( v25 ) break; - v24 = a2 == -1; + v24 = a2 == 0xFFFF; v14 = v29 & (a3 != 0); if ( v14 ) goto LABEL_20; @@ -77616,7 +76563,7 @@ LABEL_5: LABEL_6: if ( i >= a8 ) goto LABEL_23; - if ( a1 && a2 == -1 ) + if ( a1 && a2 == 0xFFFF ) { v23 = (unsigned __int16 *)a1[2]; if ( (unsigned int)v23 >= a1[3] ) @@ -78298,7 +77245,7 @@ _DWORD *__stdcall std::time_get>::_M_e unsigned __int16 v40; // dx int v41; // edx _DWORD *v42; // eax - __int16 v43; // dx + unsigned __int16 v43; // dx unsigned __int16 v44; // di char v45; // dl char v46; // bl @@ -78306,7 +77253,7 @@ _DWORD *__stdcall std::time_get>::_M_e unsigned __int16 v48; // bx unsigned __int16 v49; // bx _DWORD *v50; // eax - __int16 v51; // dx + unsigned __int16 v51; // dx unsigned __int16 v52; // dx _DWORD *v53; // eax unsigned __int16 v54; // dx @@ -78342,7 +77289,7 @@ _DWORD *__stdcall std::time_get>::_M_e size_t v85; // [esp+6Ch] [ebp-120h] bool v86; // [esp+70h] [ebp-11Ch] _DWORD *v87; // [esp+7Ch] [ebp-110h] - __int16 v88; // [esp+80h] [ebp-10Ch] + unsigned __int16 v88; // [esp+80h] [ebp-10Ch] unsigned __int16 v89; // [esp+84h] [ebp-108h] char v90; // [esp+86h] [ebp-106h] char v91; // [esp+87h] [ebp-105h] @@ -78521,15 +77468,15 @@ LABEL_29: "%H:%M", v94); LOWORD(v84) = v89; - a1 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - v84, - (int)a3, - (int)a4, - a5, - (int)&v92, - (int)a7, - v94); + a1 = std::time_get>::_M_extract_via_format( + a1, + v84, + a3, + a4, + a5, + &v92, + a7, + v94); v89 = v57; break; case 7u: @@ -78586,15 +77533,15 @@ LABEL_71: "%H:%M:%S", v94); LOWORD(v84) = v89; - a1 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - v84, - (int)a3, - (int)a4, - a5, - (int)&v92, - (int)a7, - v94); + a1 = std::time_get>::_M_extract_via_format( + a1, + v84, + a3, + a4, + a5, + &v92, + a7, + v94); v89 = v67; break; case 0x12u: @@ -78620,28 +77567,28 @@ LABEL_71: &unk_52FB3E, v94); LOWORD(v84) = v89; - a1 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - v84, - (int)a3, - (int)a4, - a5, - (int)&v92, - (int)a7, - v94); + a1 = std::time_get>::_M_extract_via_format( + a1, + v84, + a3, + a4, + a5, + &v92, + a7, + v94); v89 = v39; break; case 0x17u: LOWORD(v84) = v89; - a1 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - v84, - (int)a3, - (int)a4, - a5, - (int)&v92, - (int)a7, - *(wchar_t **)(v87[2] + 16)); + a1 = std::time_get>::_M_extract_via_format( + a1, + v84, + a3, + a4, + a5, + &v92, + a7, + *(wchar_t **)(v87[2] + 16)); v89 = v40; break; case 0x19u: @@ -78673,7 +77620,7 @@ LABEL_71: &v92); v44 = v43; a1 = v42; - v80 = v43 == -1; + v80 = v43 == 0xFFFF; v88 = v43; v45 = v80; v89 = v44; @@ -78818,15 +77765,15 @@ LABEL_42: break; case 0x22u: LOWORD(v84) = v89; - a1 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - v84, - (int)a3, - (int)a4, - a5, - (int)&v92, - (int)a7, - *(wchar_t **)(v87[2] + 24)); + a1 = std::time_get>::_M_extract_via_format( + a1, + v84, + a3, + a4, + a5, + &v92, + a7, + *(wchar_t **)(v87[2] + 24)); v89 = v36; break; case 0x23u: @@ -78868,7 +77815,7 @@ LABEL_42: a1[2] = v59 + 2; a1 = std::time_get>::_M_extract_num( a1, - 0xFFFF, + 0xFFFFu, a3, (__int16)a4, &v93, @@ -78957,15 +77904,15 @@ LABEL_91: break; case 0x37u: LOWORD(v84) = v89; - a1 = (_DWORD *)std::time_get>::_M_extract_via_format( - (int)a1, - v84, - (int)a3, - (int)a4, - a5, - (int)&v92, - (int)a7, - *(wchar_t **)(v87[2] + 8)); + a1 = std::time_get>::_M_extract_via_format( + a1, + v84, + a3, + a4, + a5, + &v92, + a7, + *(wchar_t **)(v87[2] + 8)); v89 = v64; break; default: @@ -79355,9 +78302,9 @@ LABEL_31: } //----- (00479770) -------------------------------------------------------- -int __thiscall std::time_get>::get( +_DWORD *__thiscall std::time_get>::get( void *this, - int a2, + _DWORD *a2, int a3, _DWORD *a4, int a5, @@ -79379,7 +78326,7 @@ int __thiscall std::time_get>::get( unsigned __int8 v20; // si char v21; // si int v22; // eax - int (__thiscall *v23)(void *, int, int, _DWORD *, int *, int, _DWORD *, _DWORD *, _DWORD, int); // edx + _DWORD *(__stdcall *v23)(_DWORD *, int, _DWORD *, int *, int, _DWORD *, _DWORD *, char, char); // edx int *v24; // eax int v25; // edx _DWORD *v26; // esi @@ -79442,10 +78389,10 @@ int __thiscall std::time_get>::get( v18 = v58 && a2 != 0; if ( v18 ) { - v46 = *(__int16 **)(a2 + 8); - if ( (unsigned int)v46 >= *(_DWORD *)(a2 + 12) ) + v46 = (__int16 *)a2[2]; + if ( (unsigned int)v46 >= a2[3] ) { - v47 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v47 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); v18 = v58 && a2 != 0; } else @@ -79501,8 +78448,8 @@ LABEL_65: v22 = v21; v21 = v48; } - v23 = *(int (__thiscall **)(void *, int, int, _DWORD *, int *, int, _DWORD *, _DWORD *, _DWORD, int))(*(_DWORD *)this + 32); - if ( (char *)v23 == (char *)std::time_get>::do_get ) + v23 = *(_DWORD *(__stdcall **)(_DWORD *, int, _DWORD *, int *, int, _DWORD *, _DWORD *, char, char))(*(_DWORD *)this + 32); + if ( v23 == std::time_get>::do_get ) { LOWORD(v61) = v56; LOWORD(v63) = a5; @@ -79522,7 +78469,7 @@ LABEL_65: v70 = 0; } v26 = std::time_get>::_M_extract_via_format( - (_DWORD *)a2, + a2, v61, a4, v63, @@ -79530,7 +78477,7 @@ LABEL_65: a7, a8, &v68); - a2 = (int)v26; + a2 = v26; v56 = v27; v28 = v27 == 0xFFFF; v29 = v28 & (v26 != 0); @@ -79542,7 +78489,7 @@ LABEL_65: else v54 = *v53; v28 = v54 != -1 ? 0 : v29; - a2 = v54 == -1 ? 0 : (unsigned int)v26; + a2 = v54 == -1 ? 0 : v26; } if ( a4 && (_WORD)a5 == 0xFFFF ) { @@ -79570,7 +78517,17 @@ LABEL_65: { LOWORD(v61) = v56; LOWORD(v63) = a5; - a2 = v23(this, a2, v61, a4, v63, a6, a7, a8, v21, v22); + a2 = (_DWORD *)((int (__thiscall *)(void *, _DWORD *, int, _DWORD *, int *, int, _DWORD *, _DWORD *, _DWORD, int))v23)( + this, + a2, + v61, + a4, + v63, + a6, + a7, + a8, + v21, + v22); v56 = v50; } v12 = v59 + 1; @@ -79593,10 +78550,10 @@ LABEL_65: v38 = v37 && a2 != 0; if ( v38 ) { - v39 = *(__int16 **)(a2 + 8); - if ( (unsigned int)v39 >= *(_DWORD *)(a2 + 12) ) + v39 = (__int16 *)a2[2]; + if ( (unsigned int)v39 >= a2[3] ) { - v40 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v40 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); v38 = v37 && a2 != 0; } else @@ -79634,10 +78591,8 @@ LABEL_65: } if ( a2 && v56 == 0xFFFF ) { - v43 = *(_WORD **)(a2 + 8); - v35 = (unsigned int)v43 >= *(_DWORD *)(a2 + 12) - ? (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2) - : *v43; + v43 = (_WORD *)a2[2]; + v35 = (unsigned int)v43 >= a2[3] ? (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2) : *v43; a2 = v35 == 0xFFFF ? 0 : a2; } else @@ -79646,11 +78601,11 @@ LABEL_65: } if ( !(*(unsigned __int8 (__thiscall **)(void *, int, _DWORD))(*(_DWORD *)v11 + 8))(v11, 32, v35) ) break; - v36 = *(_DWORD *)(a2 + 8); - if ( v36 >= *(_DWORD *)(a2 + 12) ) - (*(void (__fastcall **)(int))(*(_DWORD *)a2 + 40))(a2); + v36 = a2[2]; + if ( v36 >= a2[3] ) + (*(void (__fastcall **)(_DWORD *))(*a2 + 40))(a2); else - *(_DWORD *)(a2 + 8) = v36 + 2; + a2[2] = v36 + 2; v56 = -1; } v12 = v72; @@ -79659,9 +78614,9 @@ LABEL_65: { if ( a2 && v56 == 0xFFFF ) { - v49 = *(unsigned __int16 **)(a2 + 8); - if ( (unsigned int)v49 >= *(_DWORD *)(a2 + 12) ) - v13 = (*(unsigned __int16 (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v49 = (unsigned __int16 *)a2[2]; + if ( (unsigned int)v49 >= a2[3] ) + v13 = (*(unsigned __int16 (__fastcall **)(_DWORD *))(*a2 + 36))(a2); else v13 = *v49; a2 = (_WORD)v13 == 0xFFFF ? 0 : a2; @@ -79675,9 +78630,9 @@ LABEL_65: { if ( a2 && v56 == 0xFFFF ) { - v55 = *(_WORD **)(a2 + 8); - v15 = (unsigned int)v55 >= *(_DWORD *)(a2 + 12) - ? (*(unsigned __int16 (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2) + v55 = (_WORD *)a2[2]; + v15 = (unsigned int)v55 >= a2[3] + ? (*(unsigned __int16 (__fastcall **)(_DWORD *))(*a2 + 36))(a2) : (unsigned __int16)*v55; a2 = (_WORD)v15 == 0xFFFF ? 0 : a2; } @@ -79693,11 +78648,11 @@ LABEL_92: return a2; } } - v17 = *(_DWORD *)(a2 + 8); - if ( v17 >= *(_DWORD *)(a2 + 12) ) - (*(void (__fastcall **)(int))(*(_DWORD *)a2 + 40))(a2); + v17 = a2[2]; + if ( v17 >= a2[3] ) + (*(void (__fastcall **)(_DWORD *))(*a2 + 40))(a2); else - *(_DWORD *)(a2 + 8) = v17 + 2; + a2[2] = v17 + 2; ++v12; v56 = -1; } @@ -79713,7 +78668,7 @@ LABEL_92: // 479DE8: variable 'v50' is possibly undefined //----- (00479F50) -------------------------------------------------------- -int __thiscall std::time_get>::get( +_DWORD *__thiscall std::time_get>::get( void *this, _DWORD *a2, int a3, @@ -79747,17 +78702,17 @@ int __thiscall std::time_get>::get( v10 = *(_DWORD *(__stdcall **)(_DWORD *, int, _DWORD *, int *, int, _DWORD *, _DWORD *, char, char))(*(_DWORD *)this + 32); if ( v10 != std::time_get>::do_get ) - return ((int (__thiscall *)(void *, _DWORD *, int, _DWORD *, int *, int, _DWORD *, _DWORD *, _DWORD, _DWORD))v10)( - this, - a2, - a3, - a4, - a5, - a6, - a7, - a8, - a9, - a10); + return (_DWORD *)((int (__thiscall *)(void *, _DWORD *, int, _DWORD *, int *, int, _DWORD *, _DWORD *, _DWORD, _DWORD))v10)( + this, + a2, + a3, + a4, + a5, + a6, + a7, + a8, + a9, + a10); v11 = (int *)std::use_facet>(a6 + 108); v12 = *v11; *a7 = 0; @@ -79819,7 +78774,7 @@ int __thiscall std::time_get>::get( } if ( v18 == v15 ) *a7 |= 2u; - return (int)v16; + return v16; } // 47A02D: variable 'v14' is possibly undefined @@ -83854,10 +82809,10 @@ unsigned int __stdcall std::money_get> { unsigned int v8; // eax unsigned int v9; // esi - unsigned int v10; // edi + size_t v10; // edi void *v12; // [esp+20h] [ebp-48h] void *v13; // [esp+38h] [ebp-30h] BYREF - unsigned int v14; // [esp+3Ch] [ebp-2Ch] + size_t v14; // [esp+3Ch] [ebp-2Ch] char v15[40]; // [esp+40h] [ebp-28h] BYREF v15[0] = 0; @@ -83873,7 +82828,7 @@ unsigned int __stdcall std::money_get> if ( v14 ) { std::wstring::resize(a8, v14, 0); - (*(void (__thiscall **)(void *, void *, char *, int))(*(_DWORD *)v12 + 44))(v12, v13, (char *)v13 + v10, *a8); + (*(void (__thiscall **)(void *, void *, char *, _DWORD))(*(_DWORD *)v12 + 44))(v12, v13, (char *)v13 + v10, *a8); } if ( v13 != v15 ) operator delete(v13); @@ -84201,7 +83156,7 @@ int __stdcall std::money_put>::_M_insert>::_M_insert::do_in( int a1, unsigned __int8 *a2, - int a3, + unsigned __int8 *a3, unsigned __int8 **a4, int a5, int a6, @@ -85434,10 +84389,10 @@ int __stdcall std::codecvt::do_in( unsigned __int8 *v11; // [esp+8h] [ebp-Ch] BYREF unsigned __int8 *v12; // [esp+Ch] [ebp-8h] - v7 = (unsigned __int8 *)a3; + v7 = a3; v11 = a2; - v12 = (unsigned __int8 *)a3; - if ( a2 == (unsigned __int8 *)a3 ) + v12 = a3; + if ( a2 == a3 ) { LABEL_9: result = 0; @@ -85658,8 +84613,8 @@ int __stdcall std::codecvt::do_in( unsigned __int8 *a2, unsigned __int8 *a3, unsigned __int8 **a4, - int a5, - int a6, + _WORD *a5, + _WORD *a6, int *a7) { unsigned __int8 *v7; // ebx @@ -85678,12 +84633,12 @@ int __stdcall std::codecvt::do_in( v7 = a2; v8 = a3; - v9 = a5; - v10 = a6; + v9 = (int)a5; + v10 = (int)a6; v17 = a2; v18 = a3; - v19 = (_WORD *)a5; - v20 = (_WORD *)a6; + v19 = a5; + v20 = a6; if ( a2 == a3 ) { LABEL_13: @@ -85929,11 +84884,18 @@ int __stdcall std::codecvt::do_out( } //----- (00481C80) -------------------------------------------------------- -int __stdcall std::codecvt::do_length(int a1, int a2, unsigned __int8 *a3, unsigned int a4) +int __stdcall std::codecvt::do_length( + int a1, + unsigned __int8 *a2, + unsigned __int8 *a3, + unsigned int a4) { - std::`anonymous namespace'::utf16_span(a4, a3, 0x10FFFFu, 0); - return 0; + int v4; // eax + + std::`anonymous namespace'::utf16_span(a4, a3, a2, 0x10FFFFu, 0); + return v4 - (_DWORD)a2; } +// 481CA9: variable 'v4' is possibly undefined //----- (00481CB0) -------------------------------------------------------- int __stdcall std::codecvt::do_unshift(int a1, int a2, int a3, _DWORD *a4) @@ -86076,7 +85038,7 @@ int __stdcall std::codecvt::do_out( { wchar_t *v7; // edi char *v8; // ebx - unsigned int Size; // eax + size_t Size; // eax int result; // eax size_t v11; // eax char *Dest; // [esp+0h] [ebp-4Ch] @@ -86184,7 +85146,7 @@ int __stdcall std::collate::_M_compare(char *String1, char *String2) //----- (00482040) -------------------------------------------------------- // positive sp value has been detected, the output may be wrong! -int __stdcall std::collate::do_compare(int a1, _BYTE *a2, int a3, int a4) +int __stdcall std::collate::do_compare(_BYTE *a1, _BYTE *a2, _BYTE *a3, int a4) { char *v4; // ebx char *v5; // esi @@ -86277,13 +85239,13 @@ size_t __stdcall std::collate::_M_transform(char *Destination, char *Sourc //----- (00482230) -------------------------------------------------------- // positive sp value has been detected, the output may be wrong! -unsigned int **__thiscall std::collate::do_transform(unsigned int **this, int a2, _BYTE *a3, int a4) +unsigned int **__thiscall std::collate::do_transform(unsigned int **this, int a2, _BYTE *a3, _BYTE *a4) { unsigned int v5; // edi char *v6; // esi size_t i; // eax unsigned int *v8; // eax - int v9; // edx + unsigned int *v9; // edx char *v10; // esi int v12; // eax unsigned int v13; // [esp+0h] [ebp-58h] @@ -86297,7 +85259,7 @@ unsigned int **__thiscall std::collate::do_transform(unsigned int **this, *this = (unsigned int *)&unk_51641C; Str = (char *)std::string::_S_construct(a3, a4); - v5 = 2 * (a4 - (_DWORD)a3); + v5 = 2 * (a4 - a3); v17 = &Str[*((_DWORD *)Str - 3)]; v19 = (char *)operator new[](v5); v6 = Str; @@ -86321,12 +85283,12 @@ unsigned int **__thiscall std::collate::do_transform(unsigned int **this, std::string::reserve(this, v18, v13); *((_BYTE *)*this + *(*this - 3)) = 0; v8 = *this; - v9 = (int)(*this - 3); + v9 = *this - 3; if ( *this != (unsigned int *)&unk_51641C ) { *(v8 - 1) = 0; *(v8 - 3) = (unsigned int)v18; - *(_BYTE *)(v9 + v16 + 13) = 0; + *((_BYTE *)v9 + v16 + 13) = 0; } } operator delete[](v19); @@ -86409,7 +85371,7 @@ int __stdcall std::collate::_M_compare(wchar_t *String1, wchar_t *Strin //----- (004824F0) -------------------------------------------------------- // positive sp value has been detected, the output may be wrong! -int __stdcall std::collate::do_compare(int a1, const wchar_t *a2, int a3, int a4) +int __stdcall std::collate::do_compare(const wchar_t *a1, const wchar_t *a2, const wchar_t *a3, int a4) { wchar_t *v4; // ebx wchar_t *v5; // esi @@ -86501,7 +85463,7 @@ size_t __stdcall std::collate::_M_transform(wchar_t *Destination, wchar } //----- (004826D0) -------------------------------------------------------- -void **__thiscall std::collate::do_transform(void **this, int a2, const wchar_t *a3, int a4) +void **__thiscall std::collate::do_transform(void **this, int a2, const wchar_t *a3, const wchar_t *a4) { size_t v4; // edi wchar_t *v5; // ebx @@ -86516,10 +85478,10 @@ void **__thiscall std::collate::do_transform(void **this, int a2, const int v16[6]; // [esp+2Fh] [ebp-19h] BYREF *this = &unk_51640C; - v4 = a4 - (_DWORD)a3; + v4 = (char *)a4 - (char *)a3; String = (wchar_t *)std::wstring::_S_construct(a3, a4); v13 = &String[*((_DWORD *)String - 3)]; - if ( (unsigned int)(a4 - (_DWORD)a3) > 0x3FFFFFFE ) + if ( (unsigned int)((char *)a4 - (char *)a3) > 0x3FFFFFFE ) __cxa_throw_bad_array_new_length(); v5 = String; v6 = (wchar_t *)operator new[](2 * v4); @@ -89626,7 +88588,7 @@ unsigned int __stdcall std::num_get>::_M_ext char *v43; // eax unsigned int v44; // eax int v45; // eax - unsigned int v46; // edx + int v46; // edx _BYTE *v47; // eax int v48; // eax int v49; // ecx @@ -91535,7 +90497,7 @@ LABEL_117: v45 = *(_BYTE **)(a1 + 8); if ( (unsigned int)v45 >= *(_DWORD *)(a1 + 12) ) { - v56 = (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1 + 36))(a1); + v56 = (*(int (**)(void))(*(_DWORD *)a1 + 36))(); LOBYTE(v14) = v56; if ( v56 == -1 ) { @@ -92827,7 +91789,7 @@ LABEL_117: v45 = *(_BYTE **)(a1 + 8); if ( (unsigned int)v45 >= *(_DWORD *)(a1 + 12) ) { - v56 = (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1 + 36))(a1); + v56 = (*(int (**)(void))(*(_DWORD *)a1 + 36))(); LOBYTE(v14) = v56; if ( v56 == -1 ) { @@ -93079,7 +92041,7 @@ unsigned __int64 __stdcall std::num_get>::_M _DWORD *v17; // ecx unsigned int v18; // eax char v19; // dl - unsigned int v20; // edx + int v20; // edx int v21; // eax _DWORD *v22; // ecx unsigned int v23; // eax @@ -93091,53 +92053,54 @@ unsigned __int64 __stdcall std::num_get>::_M bool v30; // al int v31; // eax _BYTE *v32; // eax - _BYTE *v33; // eax + int v33; // edx _BYTE *v34; // eax - int v35; // eax - _DWORD *v36; // ecx - unsigned int v37; // eax - char v38; // al - char v39; // bl - _BYTE *v40; // eax - int v41; // edx - char v42; // cl - unsigned int *v43; // eax - int v44; // eax + _BYTE *v35; // eax + int v36; // eax + _DWORD *v37; // ecx + unsigned int v38; // eax + char v39; // al + char v40; // bl + _BYTE *v41; // eax + int v42; // edx + char v43; // cl + unsigned int *v44; // eax int v45; // eax - _BYTE *v46; // eax - char v47; // al + int v46; // eax + _BYTE *v47; // eax char v48; // al - int v49; // eax - char v50; // al - unsigned int v51; // [esp+4h] [ebp-54h] + char v49; // al + int v50; // eax + char v51; // al + unsigned int v52; // [esp+4h] [ebp-54h] size_t MaxCount; // [esp+10h] [ebp-48h] - char v53; // [esp+14h] [ebp-44h] - std::string *v54; // [esp+14h] [ebp-44h] + char v54; // [esp+14h] [ebp-44h] + std::string *v55; // [esp+14h] [ebp-44h] int Buf; // [esp+18h] [ebp-40h] void *Bufa; // [esp+18h] [ebp-40h] - int v57; // [esp+1Ch] [ebp-3Ch] - char v58; // [esp+20h] [ebp-38h] - int v59; // [esp+20h] [ebp-38h] - int v60; // [esp+24h] [ebp-34h] - char v61; // [esp+24h] [ebp-34h] - unsigned __int16 v62; // [esp+24h] [ebp-34h] - int v63; // [esp+28h] [ebp-30h] - char v64; // [esp+28h] [ebp-30h] - bool v65; // [esp+2Ch] [ebp-2Ch] - char v66; // [esp+2Dh] [ebp-2Bh] - char v67; // [esp+2Eh] [ebp-2Ah] + int v58; // [esp+1Ch] [ebp-3Ch] + char v59; // [esp+20h] [ebp-38h] + int v60; // [esp+20h] [ebp-38h] + int v61; // [esp+24h] [ebp-34h] + char v62; // [esp+24h] [ebp-34h] + unsigned __int16 v63; // [esp+24h] [ebp-34h] + int v64; // [esp+28h] [ebp-30h] + char v65; // [esp+28h] [ebp-30h] + bool v66; // [esp+2Ch] [ebp-2Ch] + char v67; // [esp+2Dh] [ebp-2Bh] char v68; // [esp+2Eh] [ebp-2Ah] char v69; // [esp+2Eh] [ebp-2Ah] - char v70; // [esp+2Fh] [ebp-29h] - bool v71; // [esp+2Fh] [ebp-29h] - char v72; // [esp+3Bh] [ebp-1Dh] BYREF - unsigned int *v73[7]; // [esp+3Ch] [ebp-1Ch] BYREF + char v70; // [esp+2Eh] [ebp-2Ah] + char v71; // [esp+2Fh] [ebp-29h] + bool v72; // [esp+2Fh] [ebp-29h] + char v73; // [esp+3Bh] [ebp-1Dh] BYREF + unsigned int *v74[7]; // [esp+3Ch] [ebp-1Ch] BYREF v6 = 8; v7 = a4; v8 = std::__use_cache>::operator()((int *)(a4 + 108)); v9 = *(_DWORD *)(v7 + 12) & 0x4A; - v60 = v9; + v61 = v9; if ( v9 != 64 ) v6 = v9 == 8 ? 16 : 10; v10 = HIDWORD(a1) == -1; @@ -93147,9 +92110,9 @@ unsigned __int64 __stdcall std::num_get>::_M v10 = 0; if ( *(_DWORD *)(a1 + 8) >= *(_DWORD *)(a1 + 12) ) { - v45 = (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1 + 36))(a1); + v46 = (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1 + 36))(a1); v10 = 0; - if ( v45 == -1 ) + if ( v46 == -1 ) { LODWORD(a1) = 0; v10 = v11; @@ -93157,37 +92120,37 @@ unsigned __int64 __stdcall std::num_get>::_M } } v12 = a3 == -1; - v70 = v12 & (a2 != 0); - if ( v70 ) + v71 = v12 & (a2 != 0); + if ( v71 ) { v12 = 0; if ( a2[2] >= a2[3] ) { - v64 = v10; - v44 = (*(int (**)(void))(*a2 + 36))(); - v10 = v64; - if ( v44 == -1 ) + v65 = v10; + v45 = (*(int (**)(void))(*a2 + 36))(); + v10 = v65; + if ( v45 == -1 ) { a2 = 0; - v12 = v70; + v12 = v71; } } } if ( v10 == v12 ) { - v65 = 0; + v66 = 0; v15 = *(_BYTE *)(v8 + 16); LOBYTE(v13) = 0; - v58 = 1; - v63 = 0; - v71 = 0; + v59 = 1; + v64 = 0; + v72 = 0; LABEL_34: if ( v6 == 16 ) { LABEL_15: MaxCount = 22; Buf = 22; - v73[0] = (unsigned int *)&unk_51641C; + v74[0] = (unsigned int *)&unk_51641C; if ( !v15 ) goto LABEL_37; goto LABEL_16; @@ -93203,24 +92166,24 @@ LABEL_35: LABEL_7: v14 = *(_BYTE *)(v8 + 74); v15 = *(_BYTE *)(v8 + 16); - v65 = v14 == (char)v13; + v66 = v14 == (char)v13; if ( v14 == (_BYTE)v13 ) goto LABEL_9; goto LABEL_8; } - v46 = *(_BYTE **)(a1 + 8); - if ( (unsigned int)v46 >= *(_DWORD *)(a1 + 12) ) + v47 = *(_BYTE **)(a1 + 8); + if ( (unsigned int)v47 >= *(_DWORD *)(a1 + 12) ) { v13 = (*(int (**)(void))(*(_DWORD *)a1 + 36))(); if ( v13 == -1 ) LODWORD(a1) = 0; goto LABEL_7; } - LOBYTE(v13) = *v46; - v47 = *(_BYTE *)(v8 + 74); + LOBYTE(v13) = *v47; + v48 = *(_BYTE *)(v8 + 74); v15 = *(_BYTE *)(v8 + 16); - v65 = v47 == (char)v13; - if ( v47 == (_BYTE)v13 ) + v66 = v48 == (char)v13; + if ( v48 == (_BYTE)v13 ) { LABEL_9: if ( (!v15 || *(_BYTE *)(v8 + 37) != (_BYTE)v13) && *(_BYTE *)(v8 + 36) != (_BYTE)v13 ) @@ -93231,48 +92194,48 @@ LABEL_9: else *(_DWORD *)(a1 + 8) = v16 + 1; HIDWORD(a1) = -1; - v58 = std::istreambuf_iterator::equal(&a1, (int)&a2); - if ( v58 ) + v59 = std::istreambuf_iterator::equal(&a1, (int)&a2); + if ( v59 ) { - v63 = 0; + v64 = 0; v15 = *(_BYTE *)(v8 + 16); - v71 = 0; + v72 = 0; if ( v6 == 16 ) goto LABEL_15; goto LABEL_35; } - v48 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, SHIDWORD(a1)); + v49 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, SHIDWORD(a1)); v15 = *(_BYTE *)(v8 + 16); - LOBYTE(v13) = v48; + LOBYTE(v13) = v49; } goto LABEL_18; } LABEL_8: if ( *(_BYTE *)(v8 + 75) == (_BYTE)v13 ) goto LABEL_9; - v65 = 0; + v66 = 0; LABEL_18: - v63 = 0; - v71 = 0; - v59 = v60; + v64 = 0; + v72 = 0; + v60 = v61; while ( 1 ) { if ( v15 && *(_BYTE *)(v8 + 37) == (_BYTE)v13 || *(_BYTE *)(v8 + 36) == (_BYTE)v13 ) { LABEL_66: - v58 = 0; + v59 = 0; goto LABEL_34; } if ( *(_BYTE *)(v8 + 78) != (_BYTE)v13 ) break; - v30 = !v71 || v6 == 10; + v30 = !v72 || v6 == 10; if ( !v30 ) goto LABEL_24; - v71 = v59 == 0 || v6 == 8; - if ( !v71 ) + v72 = v60 == 0 || v6 == 8; + if ( !v72 ) { - ++v63; - v71 = v30; + ++v64; + v72 = v30; LABEL_28: v17 = (_DWORD *)a1; v18 = *(_DWORD *)(a1 + 8); @@ -93281,7 +92244,7 @@ LABEL_28: goto LABEL_62; } v17 = (_DWORD *)a1; - v63 = 0; + v64 = 0; v6 = 8; v18 = *(_DWORD *)(a1 + 8); if ( v18 < *(_DWORD *)(a1 + 12) ) @@ -93290,11 +92253,11 @@ LABEL_29: HIDWORD(a1) = -1; v17[2] = v18 + 1; LABEL_30: - v61 = 0; + v62 = 0; if ( v17[2] >= v17[3] && (*(int (__fastcall **)(_DWORD *))(*v17 + 36))(v17) == -1 ) { LODWORD(a1) = 0; - v61 = 1; + v62 = 1; } goto LABEL_31; } @@ -93304,11 +92267,11 @@ LABEL_62: HIDWORD(a1) = -1; if ( (_DWORD)a1 ) goto LABEL_30; - v61 = 1; + v62 = 1; LABEL_31: v19 = a3 == -1; - v67 = v19 & (a2 != 0); - if ( v67 ) + v68 = v19 & (a2 != 0); + if ( v68 ) { v19 = 0; if ( a2[2] >= a2[3] ) @@ -93318,21 +92281,21 @@ LABEL_31: if ( v31 == -1 ) { a2 = 0; - v19 = v67; + v19 = v68; } } } - if ( v61 == v19 ) + if ( v62 == v19 ) { - v58 = 1; + v59 = 1; v15 = *(_BYTE *)(v8 + 16); goto LABEL_34; } LOBYTE(v13) = BYTE4(a1); if ( a1 > 0xFFFFFFFF00000000LL ) { - v33 = *(_BYTE **)(a1 + 8); - if ( (unsigned int)v33 >= *(_DWORD *)(a1 + 12) ) + v34 = *(_BYTE **)(a1 + 8); + if ( (unsigned int)v34 >= *(_DWORD *)(a1 + 12) ) { v13 = (*(int (**)(void))(*(_DWORD *)a1 + 36))(); if ( v13 == -1 ) @@ -93340,127 +92303,127 @@ LABEL_31: } else { - LOBYTE(v13) = *v33; + LOBYTE(v13) = *v34; } } v15 = *(_BYTE *)(v8 + 16); - if ( !v71 ) + if ( !v72 ) goto LABEL_66; } - if ( !v71 ) + if ( !v72 ) goto LABEL_66; LABEL_24: if ( *(_BYTE *)(v8 + 76) != (_BYTE)v13 && *(_BYTE *)(v8 + 77) != (_BYTE)v13 ) { - v58 = 0; - v71 = 1; + v59 = 0; + v72 = 1; goto LABEL_34; } - if ( v59 == 0 || v6 == 16 ) + if ( v60 == 0 || v6 == 16 ) { - v63 = 0; + v64 = 0; v6 = 16; - v71 = 0; + v72 = 0; goto LABEL_28; } - v58 = 0; + v59 = 0; MaxCount = v6; Buf = v6; - v71 = 1; + v72 = 1; LABEL_36: - v73[0] = (unsigned int *)&unk_51641C; + v74[0] = (unsigned int *)&unk_51641C; if ( v15 ) LABEL_16: - std::string::reserve(v73, (std::string *)0x20, v51); + std::string::reserve(v74, (std::string *)0x20, v52); LABEL_37: - v57 = 0xFFFF / v6; - v68 = *(_BYTE *)(v8 + 100); - if ( v68 ) + v58 = 0xFFFF / v6; + v69 = *(_BYTE *)(v8 + 100); + if ( v69 ) { - if ( v58 ) + if ( v59 ) goto LABEL_163; - v66 = 0; + v67 = 0; Bufa = (void *)(v8 + 78); - v62 = 0; + v63 = 0; while ( !*(_BYTE *)(v8 + 16) || *(_BYTE *)(v8 + 37) != (_BYTE)v13 ) { if ( (_BYTE)v13 == *(_BYTE *)(v8 + 36) ) goto LABEL_98; - v34 = memchr(Bufa, (char)v13, MaxCount); - if ( !v34 ) + v35 = memchr(Bufa, (char)v13, MaxCount); + if ( !v35 ) goto LABEL_98; - v35 = v34 - (_BYTE *)Bufa; - if ( v35 > 15 ) - v35 -= 6; - if ( (unsigned __int16)v57 >= v62 ) + v36 = v35 - (_BYTE *)Bufa; + if ( v36 > 15 ) + v36 -= 6; + if ( (unsigned __int16)v58 >= v63 ) { - v66 |= (unsigned __int16)(v6 * v62) > 0xFFFF - v35; - ++v63; - v62 = v6 * v62 + v35; + v67 |= (unsigned __int16)(v6 * v63) > 0xFFFF - v36; + ++v64; + v63 = v6 * v63 + v36; goto LABEL_109; } - v36 = (_DWORD *)a1; - v66 = v68; - v37 = *(_DWORD *)(a1 + 8); - if ( v37 < *(_DWORD *)(a1 + 12) ) + v37 = (_DWORD *)a1; + v67 = v69; + v38 = *(_DWORD *)(a1 + 8); + if ( v38 < *(_DWORD *)(a1 + 12) ) { LABEL_110: HIDWORD(a1) = -1; - v36[2] = v37 + 1; + v37[2] = v38 + 1; goto LABEL_111; } LABEL_116: - (*(void (__fastcall **)(_DWORD *))(*v36 + 40))(v36); - v36 = (_DWORD *)a1; + (*(void (__fastcall **)(_DWORD *))(*v37 + 40))(v37); + v37 = (_DWORD *)a1; HIDWORD(a1) = -1; if ( !(_DWORD)a1 ) { - v53 = v68; + v54 = v69; goto LABEL_112; } LABEL_111: - v53 = 0; - if ( v36[2] >= v36[3] ) + v54 = 0; + if ( v37[2] >= v37[3] ) { - v53 = 0; - if ( (*(int (__fastcall **)(_DWORD *))(*v36 + 36))(v36) == -1 ) + v54 = 0; + if ( (*(int (__fastcall **)(_DWORD *))(*v37 + 36))(v37) == -1 ) { LODWORD(a1) = 0; - v53 = v68; + v54 = v69; } } LABEL_112: - v38 = a3 == -1; - v39 = v38 & (a2 != 0); - if ( v39 ) + v39 = a3 == -1; + v40 = v39 & (a2 != 0); + if ( v40 ) { - v38 = 0; + v39 = 0; if ( a2[2] >= a2[3] ) { - v41 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); - v38 = 0; - if ( v41 == -1 ) + v42 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); + v39 = 0; + if ( v42 == -1 ) { a2 = 0; - v38 = v39; + v39 = v40; } } } - if ( v53 == v38 ) + if ( v54 == v39 ) { - v26 = v73[0]; - v27 = *(v73[0] - 3); + v26 = v74[0]; + v27 = *(v74[0] - 3); goto LABEL_51; } LOBYTE(v13) = BYTE4(a1); if ( (_DWORD)a1 && HIDWORD(a1) == -1 ) { - v40 = *(_BYTE **)(a1 + 8); - if ( (unsigned int)v40 >= *(_DWORD *)(a1 + 12) ) + v41 = *(_BYTE **)(a1 + 8); + if ( (unsigned int)v41 >= *(_DWORD *)(a1 + 12) ) { - v49 = (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1 + 36))(a1); - LOBYTE(v13) = v49; - if ( v49 == -1 ) + v50 = (*(int (**)(void))(*(_DWORD *)a1 + 36))(); + LOBYTE(v13) = v50; + if ( v50 == -1 ) { LODWORD(a1) = 0; LOBYTE(v13) = -1; @@ -93468,52 +92431,52 @@ LABEL_112: } else { - LOBYTE(v13) = *v40; + LOBYTE(v13) = *v41; } } } - v26 = v73[0]; - v27 = *(v73[0] - 3); - if ( !v63 ) + v26 = v74[0]; + v27 = *(v74[0] - 3); + if ( !v64 ) { - v68 = 0; - v58 = *(_BYTE *)(v8 + 16); + v69 = 0; + v59 = *(_BYTE *)(v8 + 16); goto LABEL_51; } - v54 = (std::string *)(v27 + 1); - if ( v27 + 1 > *(v73[0] - 2) || *((int *)v73[0] - 1) > 0 ) - std::string::reserve(v73, v54, v51); - v42 = v63; - v63 = 0; - *((_BYTE *)v73[0] + *(v73[0] - 3)) = v42; - v43 = v73[0]; - if ( (_UNKNOWN *)v73[0] != &unk_51641C ) + v55 = (std::string *)(v27 + 1); + if ( v27 + 1 > *(v74[0] - 2) || *((int *)v74[0] - 1) > 0 ) + std::string::reserve(v74, v55, v52); + v43 = v64; + v64 = 0; + *((_BYTE *)v74[0] + *(v74[0] - 3)) = v43; + v44 = v74[0]; + if ( (_UNKNOWN *)v74[0] != &unk_51641C ) { - *(v73[0] - 1) = 0; - *(v43 - 3) = (unsigned int)v54; - *((_BYTE *)v43 + v27 + 1) = 0; + *(v74[0] - 1) = 0; + *(v44 - 3) = (unsigned int)v55; + *((_BYTE *)v44 + v27 + 1) = 0; } LABEL_109: - v36 = (_DWORD *)a1; - v37 = *(_DWORD *)(a1 + 8); - if ( v37 < *(_DWORD *)(a1 + 12) ) + v37 = (_DWORD *)a1; + v38 = *(_DWORD *)(a1 + 8); + if ( v38 < *(_DWORD *)(a1 + 12) ) goto LABEL_110; goto LABEL_116; } - if ( v58 ) + if ( v59 ) { LABEL_163: - v50 = v58; - v26 = v73[0]; - v66 = 0; - v58 = 0; - v68 = v50; - v27 = *(v73[0] - 3); - v62 = 0; + v51 = v59; + v26 = v74[0]; + v67 = 0; + v59 = 0; + v69 = v51; + v27 = *(v74[0] - 3); + v63 = 0; goto LABEL_51; } - v66 = 0; - v62 = 0; + v67 = 0; + v63 = 0; LABEL_40: v20 = (char)v13; if ( Buf > 10 ) @@ -93523,47 +92486,46 @@ LABEL_40: while ( (unsigned __int8)(v13 - 97) <= 5u ) { v21 = v20 - 87; - if ( (unsigned __int16)v57 < v62 ) + if ( (unsigned __int16)v58 < v63 ) goto LABEL_45; LABEL_70: - v20 = v6 * v62; - v66 |= (unsigned __int16)v20 > 0xFFFF - v21; + v20 = v6 * v63; + v67 |= (unsigned __int16)v20 > 0xFFFF - v21; v22 = (_DWORD *)a1; - v62 = v20 + v21; - ++v63; + v63 = v20 + v21; + ++v64; v23 = *(_DWORD *)(a1 + 8); if ( v23 < *(_DWORD *)(a1 + 12) ) goto LABEL_46; LABEL_71: - (*(void (__fastcall **)(_DWORD *, unsigned int))(*v22 + 40))(v22, v20); + (*(void (__fastcall **)(_DWORD *, int))(*v22 + 40))(v22, v20); v22 = (_DWORD *)a1; HIDWORD(a1) = -1; if ( (_DWORD)a1 ) goto LABEL_47; - v69 = 1; + v70 = 1; LABEL_48: v24 = a3 == -1; v25 = v24 & (a2 != 0); if ( v25 ) { - v20 = a2[3]; v24 = 0; - if ( a2[2] >= v20 ) + if ( a2[2] >= a2[3] ) { - v20 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); + v33 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); v24 = 0; - if ( v20 == -1 ) + if ( v33 == -1 ) { a2 = 0; v24 = v25; } } } - if ( v69 == v24 ) + if ( v70 == v24 ) { - v26 = v73[0]; - v68 = 1; - v27 = *(v73[0] - 3); + v26 = v74[0]; + v69 = 1; + v27 = *(v74[0] - 3); goto LABEL_51; } LOBYTE(v13) = BYTE4(a1); @@ -93575,7 +92537,7 @@ LABEL_48: LOBYTE(v13) = *v32; goto LABEL_40; } - v20 = (*(int (__fastcall **)(_DWORD, unsigned int))(*(_DWORD *)a1 + 36))(a1, v20); + v20 = (*(int (**)(void))(*(_DWORD *)a1 + 36))(); LOBYTE(v13) = v20; if ( v20 != -1 ) goto LABEL_40; @@ -93595,11 +92557,11 @@ LABEL_48: LABEL_43: v21 = (char)v13 - 48; LABEL_44: - if ( (unsigned __int16)v57 >= v62 ) + if ( (unsigned __int16)v58 >= v63 ) goto LABEL_70; LABEL_45: v22 = (_DWORD *)a1; - v66 = 1; + v67 = 1; v23 = *(_DWORD *)(a1 + 8); if ( v23 >= *(_DWORD *)(a1 + 12) ) goto LABEL_71; @@ -93607,30 +92569,30 @@ LABEL_46: HIDWORD(a1) = -1; v22[2] = v23 + 1; LABEL_47: - v69 = 0; + v70 = 0; if ( v22[2] >= v22[3] ) { - v69 = 0; - if ( (*(int (__fastcall **)(_DWORD *, unsigned int))(*v22 + 36))(v22, v20) == -1 ) + v70 = 0; + if ( (*(int (__fastcall **)(_DWORD *, int))(*v22 + 36))(v22, v20) == -1 ) { LODWORD(a1) = 0; - v69 = 1; + v70 = 1; } } goto LABEL_48; } LABEL_98: - v26 = v73[0]; - v27 = *(v73[0] - 3); - v68 = 0; + v26 = v74[0]; + v27 = *(v74[0] - 3); + v69 = 0; LABEL_51: if ( v27 ) { - std::string::push_back(v73, (std::string *)(char)v63, v51); - if ( !(unsigned __int8)std::__verify_grouping(*(char **)(v8 + 8), *(_DWORD *)(v8 + 12), (const char **)v73) ) + std::string::push_back(v74, (std::string *)(char)v64, v52); + if ( !(unsigned __int8)std::__verify_grouping(*(char **)(v8 + 8), *(_DWORD *)(v8 + 12), (const char **)v74) ) *a5 = 4; - v26 = v73[0]; - if ( v63 || v71 || *(v73[0] - 3) ) + v26 = v74[0]; + if ( v64 || v72 || *(v74[0] - 3) ) goto LABEL_92; LABEL_54: *a6 = 0; @@ -93638,32 +92600,32 @@ LABEL_54: } else { - if ( !v63 && !v71 ) + if ( !v64 && !v72 ) goto LABEL_54; LABEL_92: - if ( v58 ) + if ( v59 ) goto LABEL_54; - if ( v66 ) + if ( v67 ) { *a6 = -1; *a5 = 4; } else { - if ( v65 ) - v62 = -v62; - *a6 = v62; + if ( v66 ) + v63 = -v63; + *a6 = v63; } } - if ( v68 ) + if ( v69 ) *a5 |= 2u; v28 = a1; if ( v26 == (unsigned int *)&unk_51641C ) return a1; - std::string::_Rep::_M_dispose((volatile signed __int32 *)v26 - 3, (int)&v72); + std::string::_Rep::_M_dispose((volatile signed __int32 *)v26 - 3, (int)&v73); return v28; } -// 489DA3: variable 'v51' is possibly undefined +// 489DA3: variable 'v52' is possibly undefined // 48A552: variable 'v20' is possibly undefined //----- (0048A6E0) -------------------------------------------------------- @@ -95946,11 +94908,17 @@ unsigned __int64 __stdcall std::num_get>::do { int v6; // esi unsigned __int64 result; // rax - unsigned int v8[8]; // [esp+2Ch] [ebp-20h] BYREF + int v8[8]; // [esp+2Ch] [ebp-20h] BYREF v6 = *(_DWORD *)(a4 + 12); *(_DWORD *)(a4 + 12) = v6 & 0xFFFFFFB5 | 8; - result = std::num_get>::_M_extract_int(a1, a2, a3, a4, a5, v8); + result = std::num_get>::_M_extract_int( + a1, + a2, + a3, + a4, + a5, + (unsigned int *)v8); *(_DWORD *)(a4 + 12) = v6; *a6 = v8[0]; return result; @@ -95999,13 +94967,13 @@ unsigned __int64 __stdcall std::num_get>::do bool v37; // [esp+2Dh] [ebp-2Fh] bool v38; // [esp+2Eh] [ebp-2Eh] bool v39; // [esp+2Fh] [ebp-2Dh] - unsigned int v40[8]; // [esp+3Ch] [ebp-20h] BYREF + int v40[8]; // [esp+3Ch] [ebp-20h] BYREF if ( (*(_BYTE *)(a4 + 12) & 1) == 0 ) { v40[0] = -1; - a1 = std::num_get>::_M_extract_int(a1, a2, a3, a4, a5, (int *)v40); - if ( v40[0] > 1 ) + a1 = std::num_get>::_M_extract_int(a1, a2, a3, a4, a5, v40); + if ( v40[0] > 1u ) { *a6 = 1; *a5 = 4; @@ -99315,7 +98283,7 @@ _DWORD *__stdcall std::num_get>::_M_ex unsigned int v54; // edi unsigned int v55; // eax int v56; // eax - unsigned int v57; // edx + int v57; // edx wchar_t *v58; // eax __int16 *v59; // eax __int16 v60; // ax @@ -103269,7 +102237,7 @@ __int64 __stdcall std::num_get>::_M_ex { int v6; // esi int v7; // ebx - std::locale::_Impl **v8; // edi + int *v8; // edi int v9; // eax int v10; // esi int v11; // edi @@ -103372,7 +102340,7 @@ __int64 __stdcall std::num_get>::_M_ex bool v108; // [esp+47h] [ebp-31h] char v109; // [esp+47h] [ebp-31h] char v110; // [esp+47h] [ebp-31h] - std::locale::_Impl *v111; // [esp+48h] [ebp-30h] + int v111; // [esp+48h] [ebp-30h] std::locale::_Impl *v112; // [esp+48h] [ebp-30h] __int64 v113; // [esp+48h] [ebp-30h] char v114; // [esp+5Bh] [ebp-1Dh] BYREF @@ -103380,7 +102348,7 @@ __int64 __stdcall std::num_get>::_M_ex v6 = a4; v7 = std::locale::id::_M_id(&std::numpunct::id); - v8 = (std::locale::_Impl **)(*(_DWORD *)(*(_DWORD *)(v6 + 108) + 12) + 4 * v7); + v8 = (int *)(*(_DWORD *)(*(_DWORD *)(v6 + 108) + 12) + 4 * v7); v111 = *v8; if ( !*v8 ) { @@ -103457,7 +102425,7 @@ __int64 __stdcall std::num_get>::_M_ex v16 = 0; v106 = 1; v102 = 0; - v18 = *((_BYTE *)v111 + 16); + v18 = *(_BYTE *)(v111 + 16); v108 = 0; LABEL_40: if ( v10 == 16 ) @@ -103483,12 +102451,12 @@ LABEL_41: if ( v16 == 0xFFFF ) LODWORD(a1) = 0; } - v17 = *((_WORD *)v111 + 56); - v18 = *((_BYTE *)v111 + 16); + v17 = *(_WORD *)(v111 + 112); + v18 = *(_BYTE *)(v111 + 16); v92 = v17 == (__int16)v16; - if ( v17 == v16 || *((_WORD *)v111 + 57) == v16 ) + if ( v17 == v16 || *(_WORD *)(v111 + 114) == v16 ) { - if ( (!v18 || *((_WORD *)v111 + 19) != v16) && *((_WORD *)v111 + 18) != v16 ) + if ( (!v18 || *(_WORD *)(v111 + 38) != v16) && *(_WORD *)(v111 + 36) != v16 ) { v19 = *(_DWORD *)(a1 + 8); if ( v19 >= *(_DWORD *)(a1 + 12) ) @@ -103501,13 +102469,13 @@ LABEL_41: { v102 = 0; v108 = 0; - v18 = *((_BYTE *)v111 + 16); + v18 = *(_BYTE *)(v111 + 16); if ( v10 == 16 ) goto LABEL_18; goto LABEL_41; } v16 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); - v18 = *((_BYTE *)v111 + 16); + v18 = *(_BYTE *)(v111 + 16); } } else @@ -103518,13 +102486,13 @@ LABEL_41: v108 = 0; while ( 1 ) { - if ( v18 && *((_WORD *)v111 + 19) == v16 || *((_WORD *)v111 + 18) == v16 ) + if ( v18 && *(_WORD *)(v111 + 38) == v16 || *(_WORD *)(v111 + 36) == v16 ) { LABEL_78: v106 = 0; goto LABEL_40; } - if ( *((_WORD *)v111 + 60) != v16 ) + if ( *(_WORD *)(v111 + 120) != v16 ) break; v42 = !v108 || v10 == 10; if ( !v42 ) @@ -103598,7 +102566,7 @@ LABEL_37: if ( v24 == v107 ) { v106 = 1; - v18 = *((_BYTE *)v111 + 16); + v18 = *(_BYTE *)(v111 + 16); goto LABEL_40; } v16 = WORD2(a1); @@ -103609,14 +102577,14 @@ LABEL_37: if ( v16 == 0xFFFF ) LODWORD(a1) = 0; } - v18 = *((_BYTE *)v111 + 16); + v18 = *(_BYTE *)(v111 + 16); if ( !v108 ) goto LABEL_78; } if ( !v108 ) goto LABEL_78; LABEL_27: - if ( *((_WORD *)v111 + 58) != v16 && *((_WORD *)v111 + 59) != v16 ) + if ( *(_WORD *)(v111 + 116) != v16 && *(_WORD *)(v111 + 118) != v16 ) { v106 = 0; v108 = 1; @@ -103644,7 +102612,7 @@ LABEL_43: n = 0x7FFFFFFFFFFFFFFFLL; v99 = v10; v26 = n / v10; - v104 = *((_BYTE *)v111 + 164); + v104 = *(_BYTE *)(v111 + 164); if ( v104 ) { if ( v106 ) @@ -103660,10 +102628,10 @@ LABEL_43: v103 = 0; v27 = 0; v28 = 0; - S = (wchar_t *)((char *)v111 + 120); - while ( !*((_BYTE *)v111 + 16) || *((_WORD *)v111 + 19) != v16 ) + S = (wchar_t *)(v111 + 120); + while ( !*(_BYTE *)(v111 + 16) || *(_WORD *)(v111 + 38) != v16 ) { - if ( v16 == *((_WORD *)v111 + 18) ) + if ( v16 == *(_WORD *)(v111 + 36) ) goto LABEL_96; v61 = wmemchr(S, v16, N); if ( !v61 ) @@ -103743,7 +102711,7 @@ LABEL_136: if ( !v102 ) { v104 = 0; - v106 = *((_BYTE *)v111 + 16); + v106 = *(_BYTE *)(v111 + 16); goto LABEL_62; } std::string::push_back(v115, (std::string *)(char)v102, v89); @@ -103897,7 +102865,7 @@ LABEL_97: } v98 = (std::string *)v51; v100 = v52; - v53 = std::__verify_grouping(*((char **)v111 + 2), *((_DWORD *)v111 + 3), (const char **)v115); + v53 = std::__verify_grouping(*(char **)(v111 + 8), *(_DWORD *)(v111 + 12), (const char **)v115); v39 = (volatile signed __int32 *)v100; if ( !v53 ) *a5 = 4; @@ -105593,7 +104561,7 @@ int __stdcall std::num_get>::do_get( { int v6; // edi int result; // eax - unsigned int v8[8]; // [esp+3Ch] [ebp-20h] BYREF + int v8[8]; // [esp+3Ch] [ebp-20h] BYREF v6 = *(_DWORD *)(a4 + 12); *(_DWORD *)(a4 + 12) = v6 & 0xFFFFFFB5 | 8; @@ -105603,7 +104571,7 @@ int __stdcall std::num_get>::do_get( a3, a4, a5, - v8); + (unsigned int *)v8); *(_DWORD *)(a4 + 12) = v6; *a6 = v8[0]; return result; @@ -105662,16 +104630,16 @@ int __stdcall std::num_get>::do_get( bool v47; // [esp+34h] [ebp-34h] bool v48; // [esp+34h] [ebp-34h] __int64 v49; // [esp+38h] [ebp-30h] - unsigned int v50[7]; // [esp+4Ch] [ebp-1Ch] BYREF + int v50[7]; // [esp+4Ch] [ebp-1Ch] BYREF v6 = a4; if ( (*(_BYTE *)(a4 + 12) & 1) == 0 ) { v50[0] = -1; - v49 = std::num_get>::_M_extract_int(a1, a2, a3, a4, a5, (int *)v50); + v49 = std::num_get>::_M_extract_int(a1, a2, a3, a4, a5, v50); LODWORD(a1) = v49; WORD2(a1) = WORD2(v49); - if ( v50[0] > 1 ) + if ( v50[0] > 1u ) { *a6 = 1; *a5 = 4; @@ -106269,7 +105237,7 @@ int __stdcall std::num_put>::_M_insert_int(v35, v11, v7 + 38, v8, v41); + v12 = (int)std::__int_to_char(v35, v11, v7 + 38, v8, v41); v13 = v12; v14 = &v38[-v12 + 20]; if ( !*(_BYTE *)(v7 + 16) ) @@ -106423,7 +105391,7 @@ int __stdcall std::num_put>::_M_insert_int(v34, a5, v7 + 38, v8, v40); + v11 = (int)std::__int_to_char(v34, a5, v7 + 38, v8, v40); v12 = v11; v13 = &v38[-v11 + 20]; if ( *(_BYTE *)(v7 + 16) ) @@ -106518,7 +105486,7 @@ int __stdcall std::num_put>::_M_insert_int>::_M_insert_int> 32)) & 0x80000000) != 0LL && (_BYTE)v38 ) v10 = -(__int64)n; - v11 = std::__int_to_char(v32, v10, v7 + 38, v36, v38); + v11 = (int)std::__int_to_char(v32, v10, v7 + 38, v36, v38); v12 = &v29[-v11]; v13 = v11; v14 = &v29[-v11 + 40]; @@ -106679,7 +105647,7 @@ int __stdcall std::num_put>::_M_insert_int>::_M_insert_int(v34, __PAIR64__(v41, HIDWORD(v41)), v8 + 38, v9, v40); + v12 = (int)std::__int_to_char(v34, __PAIR64__(v41, HIDWORD(v41)), v8 + 38, v9, v40); v13 = v12; v14 = &v38[-v12 + 40]; if ( *(_BYTE *)(v8 + 16) ) @@ -106793,7 +105761,7 @@ _BYTE *__stdcall std::num_put>::_M_group_flo _BYTE *a6, _DWORD *a7) { - char *v7; // ebp + int v7; // ebp _BYTE *v8; // edx _BYTE *v9; // edi int v10; // eax @@ -106801,14 +105769,14 @@ _BYTE *__stdcall std::num_put>::_M_group_flo if ( Src ) { - v7 = (char *)(Src - a6); + v7 = Src - a6; v8 = std::__add_grouping((_BYTE *)a5, a3, a1, a2, a6, Src); v9 = &v8[-a5]; v10 = 0; if ( *a7 != Src - a6 ) { - memcpy(v8, Src, *a7 - (_DWORD)v7); - v10 = *a7 - (_DWORD)v7; + memcpy(v8, Src, *a7 - v7); + v10 = *a7 - v7; } result = &v9[v10]; *a7 = result; @@ -107059,7 +106027,7 @@ LABEL_25: v38 = alloca(v36); v47 = v14; v14 = v25; - std::__pad>::_S_pad(a4, (void *)(char)v53, &v48, (_BYTE *)v60[0], v25, v47); + std::__pad>::_S_pad(a4, (void *)(char)v53, &v48, (char *)v60[0], v25, v47); MaxCount = v25; v60[0] = (int)&v48; LABEL_17: @@ -107310,7 +106278,7 @@ LABEL_25: v38 = alloca(v36); v51 = v14; v14 = v25; - std::__pad>::_S_pad(a4, (void *)(char)v57, &v52, (_BYTE *)v64, v25, v51); + std::__pad>::_S_pad(a4, (void *)(char)v57, &v52, (char *)v64, v25, v51); MaxCount = v25; v64 = (int)&v52; LABEL_17: @@ -107433,7 +106401,7 @@ int __stdcall std::num_put>::_M_pad( int a2, _DWORD *a3, char *a4, - _BYTE *a5, + char *a5, int *a6) { int result; // eax @@ -107459,7 +106427,7 @@ int __stdcall std::num_put>::do_put(int a1, //----- (0049A650) -------------------------------------------------------- int *__stdcall std::num_put>::do_put(int *a1, int a2, _DWORD *a3, int a4, int a5) { - int v5; // eax + int *v5; // eax _DWORD *v7; // eax int v8; // edx int v9; // eax @@ -107467,23 +106435,23 @@ int *__stdcall std::num_put>::do_put(int *a1 int v11; // eax void *v12; // esp void *v13; // esp - int v14; // edx + int *v14; // edx int v15; // eax int v16; // eax int v17; // eax int v18; // eax _BYTE v19[8]; // [esp+20h] [ebp-48h] BYREF _BYTE *v20; // [esp+28h] [ebp-40h] - int v21; // [esp+2Ch] [ebp-3Ch] + int *v21; // [esp+2Ch] [ebp-3Ch] int v22; // [esp+30h] [ebp-38h] int v23; // [esp+34h] [ebp-34h] - int v24; // [esp+38h] [ebp-30h] + int *v24; // [esp+38h] [ebp-30h] int *v25; // [esp+3Ch] [ebp-2Ch] - v5 = a3[3]; + v5 = (int *)a3[3]; v23 = a4; v24 = v5; - if ( (v5 & 1) == 0 ) + if ( ((unsigned __int8)v5 & 1) == 0 ) return (int *)std::num_put>::_M_insert_int( (int)a1, a2, @@ -107515,7 +106483,7 @@ LABEL_6: if ( v8 >= v9 ) goto LABEL_6; } - v21 = v8; + v21 = (int *)v8; v25 = (int *)(v9 - v8); v10 = v9 - v8; v11 = 16 * ((unsigned int)(v9 - v8 + 27) >> 4); @@ -107525,14 +106493,14 @@ LABEL_6: memset(v19, (char)v23, v10); v14 = v21; a3[2] = 0; - if ( (v24 & 0xB0) == 32 ) + if ( ((unsigned __int8)v24 & 0xB0) == 32 ) { if ( !(_BYTE)a2 ) { v17 = *a1; v24 = v14; - v18 = (*(int (__thiscall **)(int *, int, int))(v17 + 48))(a1, v22, v14); - if ( v24 == v18 ) + v18 = (*(int (__thiscall **)(int *, int, int *))(v17 + 48))(a1, v22, v14); + if ( v24 == (int *)v18 ) (*(void (__thiscall **)(int *, _BYTE *, int *))(*a1 + 48))(a1, v20, v25); } } @@ -107545,8 +106513,8 @@ LABEL_6: if ( v25 == (int *)v15 ) { v16 = *a1; - v25 = (int *)v24; - (*(void (__thiscall **)(int *, int, int))(v16 + 48))(a1, v22, v24); + v25 = v24; + (*(void (__thiscall **)(int *, int, int *))(v16 + 48))(a1, v22, v24); } } } @@ -107664,7 +106632,7 @@ int __stdcall std::num_put>::_M_insert wchar_t v30; // [esp-20h] [ebp-78h] BYREF _WORD v31[16]; // [esp-1Ch] [ebp-74h] BYREF void (__cdecl *v32)(void *); // [esp+4h] [ebp-54h] - unsigned int v33[8]; // [esp+8h] [ebp-50h] BYREF + int v33[8]; // [esp+8h] [ebp-50h] BYREF unsigned int v34; // [esp+28h] [ebp-30h] int v35; // [esp+2Ch] [ebp-2Ch] wchar_t *v36; // [esp+30h] [ebp-28h] @@ -107817,7 +106785,7 @@ int __stdcall std::num_put>::_M_insert wchar_t v29; // [esp-20h] [ebp-78h] BYREF _WORD v30[16]; // [esp-1Ch] [ebp-74h] BYREF void (__cdecl *v31)(void *); // [esp+4h] [ebp-54h] - unsigned int v32[7]; // [esp+8h] [ebp-50h] BYREF + int v32[7]; // [esp+8h] [ebp-50h] BYREF int v33; // [esp+24h] [ebp-34h] unsigned int v34; // [esp+28h] [ebp-30h] int v35; // [esp+2Ch] [ebp-2Ch] @@ -108871,7 +107839,7 @@ int __thiscall std::num_put>::put( //----- (0049C150) -------------------------------------------------------- int __stdcall std::num_put>::_M_pad( - unsigned __int16 a1, + __int16 a1, int a2, wchar_t *S1, wchar_t *a4, @@ -108880,7 +107848,7 @@ int __stdcall std::num_put>::_M_pad( { int result; // eax - result = std::__pad>::_S_pad(S1, (wchar_t *)a1, a4, a5, a2, *a6); + result = std::__pad>::_S_pad(S1, (wchar_t *)(unsigned __int16)a1, a4, a5, a2, *a6); *a6 = a2; return result; } @@ -108890,7 +107858,7 @@ int __stdcall std::num_put>::do_put( int a1, int a2, wchar_t *S1, - unsigned __int16 a4, + __int16 a4, int a5) { int v5; // edi @@ -108898,7 +107866,12 @@ int __stdcall std::num_put>::do_put( v5 = *((_DWORD *)S1 + 3); *((_DWORD *)S1 + 3) = v5 & 0xFFFFBDB5 | 0x208; - result = std::num_put>::_M_insert_int(a1, a2, S1, a4, a5); + result = std::num_put>::_M_insert_int( + a1, + a2, + S1, + (unsigned __int16)a4, + a5); *((_DWORD *)S1 + 3) = v5; return result; } @@ -108911,7 +107884,7 @@ int *__stdcall std::num_put>::do_put( int a4, int a5) { - int v5; // eax + int *v5; // eax _DWORD *v7; // eax int v8; // edx int v9; // eax @@ -108919,23 +107892,23 @@ int *__stdcall std::num_put>::do_put( int v11; // eax void *v12; // esp void *v13; // esp - int v14; // edx + int *v14; // edx int v15; // eax int v16; // eax int v17; // eax int v18; // eax wchar_t v19[4]; // [esp+20h] [ebp-48h] BYREF wchar_t *v20; // [esp+28h] [ebp-40h] - int v21; // [esp+2Ch] [ebp-3Ch] + int *v21; // [esp+2Ch] [ebp-3Ch] int v22; // [esp+30h] [ebp-38h] int v23; // [esp+34h] [ebp-34h] - int v24; // [esp+38h] [ebp-30h] + int *v24; // [esp+38h] [ebp-30h] int *v25; // [esp+3Ch] [ebp-2Ch] - v5 = *((_DWORD *)S1 + 3); + v5 = (int *)*((_DWORD *)S1 + 3); v23 = a4; v24 = v5; - if ( (v5 & 1) == 0 ) + if ( ((unsigned __int8)v5 & 1) == 0 ) return (int *)std::num_put>::_M_insert_int( (int)a1, a2, @@ -108967,7 +107940,7 @@ LABEL_6: if ( v8 >= v9 ) goto LABEL_6; } - v21 = v8; + v21 = (int *)v8; v25 = (int *)(v9 - v8); v10 = v9 - v8; v11 = 16 * ((unsigned int)(2 * (v9 - v8) + 27) >> 4); @@ -108977,14 +107950,14 @@ LABEL_6: wmemset(v19, v23, v10); v14 = v21; *((_DWORD *)S1 + 2) = 0; - if ( (v24 & 0xB0) == 32 ) + if ( ((unsigned __int8)v24 & 0xB0) == 32 ) { if ( !(_BYTE)a2 ) { v17 = *a1; v24 = v14; - v18 = (*(int (__thiscall **)(int *, int, int))(v17 + 48))(a1, v22, v14); - if ( v24 == v18 ) + v18 = (*(int (__thiscall **)(int *, int, int *))(v17 + 48))(a1, v22, v14); + if ( v24 == (int *)v18 ) (*(void (__thiscall **)(int *, wchar_t *, int *))(*a1 + 48))(a1, v20, v25); } } @@ -108997,8 +107970,8 @@ LABEL_6: if ( v25 == (int *)v15 ) { v16 = *a1; - v25 = (int *)v24; - (*(void (__thiscall **)(int *, int, int))(v16 + 48))(a1, v22, v24); + v25 = v24; + (*(void (__thiscall **)(int *, int, int *))(v16 + 48))(a1, v22, v24); } } } @@ -109011,10 +107984,17 @@ int __thiscall std::num_put>::do_put( int a2, int a3, wchar_t *S1, - unsigned __int16 a5, + __int16 a5, double a6) { - return std::num_put>::_M_insert_float(this, a2, a3, S1, a5, 0, a6); + return std::num_put>::_M_insert_float( + this, + a2, + a3, + S1, + (unsigned __int16)a5, + 0, + a6); } //----- (0049C460) -------------------------------------------------------- @@ -109023,7 +108003,7 @@ int __thiscall std::num_put>::do_put( int a2, int a3, wchar_t *S1, - unsigned __int16 a5, + __int16 a5, long double a6) { return std::num_put>::_M_insert_float( @@ -109032,7 +108012,7 @@ int __thiscall std::num_put>::do_put( a2, a3, S1, - a5, + (unsigned __int16)a5, 76, a6); } @@ -109153,11 +108133,11 @@ const char *std::bad_cast::what() } //----- (0049C5C0) -------------------------------------------------------- -int __thiscall std::function::operator()(int this, char a2, char a3) +int __thiscall std::function::operator()(int this, int a2, char a3) { if ( !*(_DWORD *)(this + 8) ) std::__throw_bad_function_call(); - return (*(int (__cdecl **)(int, char *, char *))(this + 12))(this, &a2, &a3); + return (*(int (__cdecl **)(int, int *, char *))(this + 12))(this, &a2, &a3); } //----- (0049C5F0) -------------------------------------------------------- @@ -110481,7 +109461,7 @@ unsigned __int64 __stdcall std::time_get>::_ _DWORD *a6, char *a7) { - char *v7; // ebx + int v7; // ebx _DWORD *v8; // eax unsigned int v9; // ebx _BYTE *v10; // esi @@ -110541,9 +109521,9 @@ unsigned __int64 __stdcall std::time_get>::_ int v65; // eax unsigned __int64 v66; // rax _DWORD *v67; // eax - char *v68; // edx - char *Stra; // [esp+0h] [ebp-9Ch] - char *Str; // [esp+0h] [ebp-9Ch] + int v68; // edx + int Stra; // [esp+0h] [ebp-9Ch] + int Str; // [esp+0h] [ebp-9Ch] unsigned int v71; // [esp+30h] [ebp-6Ch] _DWORD *v72; // [esp+38h] [ebp-64h] char v73; // [esp+3Ch] [ebp-60h] @@ -110563,12 +109543,12 @@ unsigned __int64 __stdcall std::time_get>::_ int v87; // [esp+78h] [ebp-24h] int v88; // [esp+7Ch] [ebp-20h] - v7 = (char *)(a4 + 108); + v7 = a4 + 108; v8 = std::use_facet>(a4 + 108); Stra = v7; v9 = 0; v72 = v8; - v10 = std::use_facet>((int)Stra); + v10 = std::use_facet>(Stra); v11 = __PAIR64__(HIDWORD(a1), strlen(a7)); v75 = 0; v71 = v11; @@ -110582,7 +109562,7 @@ unsigned __int64 __stdcall std::time_get>::_ v13 = 0; if ( v12[2] >= v12[3] ) { - v29 = (*(int (__thiscall **)(_DWORD *, char *))(*v12 + 36))(v12, Str); + v29 = (*(int (__thiscall **)(_DWORD *, int))(*v12 + 36))(v12, Str); v13 = 0; if ( v29 == -1 ) { @@ -110830,7 +109810,7 @@ LABEL_76: ? (std::ctype::_M_widen_init((int)v10), v44 = (*(int (__thiscall **)(_BYTE *, int))(*(_DWORD *)v10 + 24))(v10, 43), Str = v68) - : (char *)(v44 = v10[72]), + : (v44 = v10[72]), v43 == v44) ) { LODWORD(v45) = std::time_get>::_M_extract_num( @@ -111064,15 +110044,7 @@ LABEL_107: case 55: v47 = *(char **)(v72[2] + 8); LABEL_72: - LODWORD(v11) = std::time_get>::_M_extract_via_format( - a1, - SHIDWORD(a1), - (int)a2, - a3, - a4, - (int)&v75, - (int)a6, - v47); + v11 = std::time_get>::_M_extract_via_format(a1, a2, a3, a4, &v75, a6, v47); a1 = v11; v12 = (_DWORD *)v11; break; @@ -111187,7 +110159,7 @@ _DWORD *__stdcall std::time_get>::_M_extract char v12; // dl bool v13; // bl char v14; // bl - int v15; // edi + unsigned int v15; // edi unsigned int v16; // esi char v17; // dl bool v18; // bl @@ -111507,9 +110479,9 @@ LABEL_39: } //----- (0049F190) -------------------------------------------------------- -int __stdcall std::time_get>::get( - int a1, - int a2, +_DWORD *__stdcall std::time_get>::get( + _DWORD *a1, + unsigned int a2, _DWORD *a3, int a4, int a5, @@ -111530,7 +110502,7 @@ int __stdcall std::time_get>::get( char v19; // dl int v20; // edx char v21; // bl - char v22; // al + unsigned __int8 v22; // al int (__stdcall *v23)(unsigned __int8, int); // ebx unsigned __int8 v24; // dl int (__stdcall *v25)(unsigned __int8, int); // eax @@ -111585,9 +110557,9 @@ int __stdcall std::time_get>::get( v54 = a2 == -1; if ( v54 && a1 != 0 ) { - if ( *(_DWORD *)(a1 + 8) >= *(_DWORD *)(a1 + 12) ) + if ( a1[2] >= a1[3] ) { - v48 = (*(int (__fastcall **)(int))(*(_DWORD *)a1 + 36))(a1); + v48 = (*(int (__fastcall **)(_DWORD *))(*a1 + 36))(a1); v18 = v48 == -1 && v54 && a1 != 0; a1 = v48 == -1 ? 0 : a1; } @@ -111710,14 +110682,14 @@ LABEL_42: v65 = 0; } v32 = std::time_get>::_M_extract_via_format( - __PAIR64__(a2, a1), + __PAIR64__(a2, (unsigned int)a1), a3, a4, a5, a6, a7, &v63); - a1 = v32; + a1 = (_DWORD *)v32; v31 = HIDWORD(v32) == -1; a2 = HIDWORD(v32); BYTE4(v32) = v31 & ((_DWORD)v32 != 0); @@ -111770,9 +110742,9 @@ LABEL_3: v37 = j == -1; if ( v37 && a1 != 0 ) { - if ( *(_DWORD *)(a1 + 8) >= *(_DWORD *)(a1 + 12) ) + if ( a1[2] >= a1[3] ) { - v45 = (*(int (__fastcall **)(int))(*(_DWORD *)a1 + 36))(a1); + v45 = (*(int (__fastcall **)(_DWORD *))(*a1 + 36))(a1); v38 = v45 == -1 && v37 && a1 != 0; a1 = v45 == -1 ? 0 : a1; } @@ -111808,8 +110780,8 @@ LABEL_76: LABEL_64: if ( a1 && j == -1 ) { - v41 = *(unsigned __int8 **)(a1 + 8); - if ( (unsigned int)v41 < *(_DWORD *)(a1 + 12) ) + v41 = (unsigned __int8 *)a1[2]; + if ( (unsigned int)v41 < a1[3] ) { if ( (*(_BYTE *)(v56[6] + 2 * *v41) & 0x20) == 0 ) { @@ -111819,10 +110791,10 @@ LABEL_64: goto LABEL_15; } LABEL_69: - *(_DWORD *)(a1 + 8) = v41 + 1; + a1[2] = v41 + 1; continue; } - v40 = (*(int (__fastcall **)(int))(*(_DWORD *)a1 + 36))(a1); + v40 = (*(int (__fastcall **)(_DWORD *))(*a1 + 36))(a1); a1 = v40 == -1 ? 0 : a1; } else @@ -111831,20 +110803,20 @@ LABEL_69: } if ( (*(_BYTE *)(v56[6] + 2 * (unsigned __int8)v40) & 0x20) == 0 ) goto LABEL_76; - v41 = *(unsigned __int8 **)(a1 + 8); - if ( (unsigned int)v41 < *(_DWORD *)(a1 + 12) ) + v41 = (unsigned __int8 *)a1[2]; + if ( (unsigned int)v41 < a1[3] ) goto LABEL_69; - (*(void (__fastcall **)(int))(*(_DWORD *)a1 + 40))(a1); + (*(void (__fastcall **)(_DWORD *))(*a1 + 40))(a1); } v39 = a4 == -1; goto LABEL_63; } if ( a1 && a2 == -1 ) { - v43 = *(char **)(a1 + 8); - if ( (unsigned int)v43 >= *(_DWORD *)(a1 + 12) ) + v43 = (char *)a1[2]; + if ( (unsigned int)v43 >= a1[3] ) { - v50 = (*(int (__fastcall **)(int))(*(_DWORD *)a1 + 36))(a1); + v50 = (*(int (__fastcall **)(_DWORD *))(*a1 + 36))(a1); v13 = v50 != -1 ? v50 : -1; a1 = v50 == -1 ? 0 : a1; } @@ -111862,10 +110834,10 @@ LABEL_69: { if ( a1 && a2 == -1 ) { - v47 = *(char **)(a1 + 8); - if ( (unsigned int)v47 >= *(_DWORD *)(a1 + 12) ) + v47 = (char *)a1[2]; + if ( (unsigned int)v47 >= a1[3] ) { - v51 = (*(int (__fastcall **)(int))(*(_DWORD *)a1 + 36))(a1); + v51 = (*(int (__fastcall **)(_DWORD *))(*a1 + 36))(a1); v15 = v51 != -1 ? v51 : -1; a1 = v51 == -1 ? 0 : a1; } @@ -111882,11 +110854,11 @@ LABEL_69: if ( (*(unsigned __int8 (__thiscall **)(_DWORD *, _DWORD))(*v11 + 8))(v11, (char)*v9) != v16 ) break; } - v17 = *(_DWORD *)(a1 + 8); - if ( v17 >= *(_DWORD *)(a1 + 12) ) - (*(void (__fastcall **)(int))(*(_DWORD *)a1 + 40))(a1); + v17 = a1[2]; + if ( v17 >= a1[3] ) + (*(void (__fastcall **)(_DWORD *))(*a1 + 40))(a1); else - *(_DWORD *)(a1 + 8) = v17 + 1; + a1[2] = v17 + 1; a2 = -1; ++v9; LABEL_15: @@ -112231,7 +111203,7 @@ _DWORD *__stdcall std::time_get>::do_g //----- (0049FFB0) -------------------------------------------------------- _DWORD *__stdcall std::time_get>::do_get_year( _DWORD *a1, - __int16 a2, + unsigned __int16 a2, _DWORD *a3, __int16 a4, int a5, @@ -112335,7 +111307,7 @@ int __fastcall std::time_get>::get_mon //----- (004A0160) -------------------------------------------------------- _DWORD *__stdcall std::time_get>::_M_extract_num( _DWORD *a1, - __int16 a2, + unsigned __int16 a2, _DWORD *a3, __int16 a4, int *a5, @@ -112371,10 +111343,10 @@ _DWORD *__stdcall std::time_get>::_M_e v12 = 0; for ( i = 0; ; ++i ) { - v25 = a2 == -1 && a1 != 0; + v25 = a2 == 0xFFFF && a1 != 0; if ( v25 ) break; - v24 = a2 == -1; + v24 = a2 == 0xFFFF; v14 = v29 & (a3 != 0); if ( v14 ) goto LABEL_20; @@ -112384,7 +111356,7 @@ LABEL_5: LABEL_6: if ( i >= a8 ) goto LABEL_23; - if ( a1 && a2 == -1 ) + if ( a1 && a2 == 0xFFFF ) { v23 = (unsigned __int16 *)a1[2]; if ( (unsigned int)v23 >= a1[3] ) @@ -113032,213 +112004,206 @@ __int64 __stdcall std::time_get>::_M_e _DWORD *a6, wchar_t *a7) { - wchar_t *v7; // ebx + int v7; // ebx _DWORD *v8; // eax - size_t v9; // ebx + unsigned int v9; // ebx void *v10; // esi - size_t v11; // eax - __int16 v12; // dx - _DWORD *v13; // ecx - char v14; // dl - char v15; // di - char v16; // al - char v17; // di - int v18; // ecx - size_t v19; // edi - size_t v20; // ebp - char v21; // al - int v22; // eax - __int16 v23; // ax - wchar_t v24; // bx - __int16 *v25; // eax - __int16 v26; // cx - _WORD *v28; // eax - __int16 v29; // ax - unsigned int v30; // eax - __int16 *v31; // eax - int v32; // edx - _DWORD *v33; // eax - _DWORD *v34; // eax - unsigned __int16 v35; // ax - __int16 v36; // dx - bool v37; // al - __int16 v38; // di - __int16 v39; // di - __int16 v40; // dx - _DWORD *v41; // eax - _DWORD *v42; // eax - unsigned __int16 v43; // ax - unsigned int v44; // eax - __int16 v45; // dx - unsigned __int16 v46; // ax - unsigned int v47; // eax - unsigned __int16 v48; // ax - __int16 v49; // ax - __int16 v50; // dx - wchar_t *String; // [esp+20h] [ebp-15Ch] - size_t v52; // [esp+5Ch] [ebp-120h] - wchar_t *v53; // [esp+60h] [ebp-11Ch] - char v54; // [esp+60h] [ebp-11Ch] - _DWORD *v55; // [esp+6Ch] [ebp-110h] - int v56; // [esp+128h] [ebp-54h] BYREF - int v57; // [esp+12Ch] [ebp-50h] BYREF - wchar_t v58[2]; // [esp+130h] [ebp-4Ch] BYREF - int v59; // [esp+134h] [ebp-48h] - int v60; // [esp+138h] [ebp-44h] - int v61; // [esp+13Ch] [ebp-40h] - int v62; // [esp+140h] [ebp-3Ch] - int v63; // [esp+144h] [ebp-38h] - int v64; // [esp+148h] [ebp-34h] - int v65; // [esp+14Ch] [ebp-30h] - int v66; // [esp+150h] [ebp-2Ch] - int v67; // [esp+154h] [ebp-28h] - int v68; // [esp+158h] [ebp-24h] - int v69; // [esp+15Ch] [ebp-20h] + __int64 v11; // rax + _DWORD *v12; // ecx + char v13; // di + char v14; // di + int v15; // ecx + unsigned int v16; // edi + unsigned int v17; // ebp + char v18; // al + int v19; // eax + __int16 v20; // ax + wchar_t v21; // bx + __int16 *v22; // eax + __int16 v23; // cx + unsigned int v25; // eax + __int16 *v26; // eax + int v27; // edx + _DWORD *v28; // eax + _DWORD *v29; // eax + unsigned __int16 v30; // ax + __int16 v31; // dx + __int16 v32; // di + __int16 v33; // di + unsigned __int16 v34; // dx + _DWORD *v35; // eax + _DWORD *v36; // eax + unsigned __int16 v37; // ax + unsigned int v38; // eax + __int16 v39; // dx + unsigned __int16 v40; // ax + unsigned int v41; // eax + unsigned __int16 v42; // ax + __int16 v43; // dx + int String; // [esp+20h] [ebp-15Ch] + unsigned int v45; // [esp+5Ch] [ebp-120h] + wchar_t *v46; // [esp+60h] [ebp-11Ch] + char v47; // [esp+60h] [ebp-11Ch] + _DWORD *v48; // [esp+6Ch] [ebp-110h] + int v49; // [esp+128h] [ebp-54h] BYREF + int v50; // [esp+12Ch] [ebp-50h] BYREF + wchar_t v51[2]; // [esp+130h] [ebp-4Ch] BYREF + int v52; // [esp+134h] [ebp-48h] + int v53; // [esp+138h] [ebp-44h] + int v54; // [esp+13Ch] [ebp-40h] + int v55; // [esp+140h] [ebp-3Ch] + int v56; // [esp+144h] [ebp-38h] + int v57; // [esp+148h] [ebp-34h] + int v58; // [esp+14Ch] [ebp-30h] + int v59; // [esp+150h] [ebp-2Ch] + int v60; // [esp+154h] [ebp-28h] + int v61; // [esp+158h] [ebp-24h] + int v62; // [esp+15Ch] [ebp-20h] - v7 = (wchar_t *)(a4 + 108); + v7 = a4 + 108; v8 = std::use_facet>(a4 + 108); String = v7; v9 = 0; - v55 = v8; - v10 = std::use_facet>((int)String); - v11 = wcslen(a7); - v12 = WORD2(a1); - v56 = 0; - v52 = v11; - v13 = (_DWORD *)a1; + v48 = v8; + v10 = std::use_facet>(String); + LODWORD(v11) = wcslen(a7); + WORD2(v11) = WORD2(a1); + v49 = 0; + v45 = v11; + v12 = (_DWORD *)a1; while ( 1 ) { - v14 = v12 == -1; - v15 = v14 & (v13 != 0); - if ( v15 ) + BYTE4(v11) = WORD2(v11) == 0xFFFF; + v13 = BYTE4(v11) & (v12 != 0); + if ( v13 ) { - v28 = (_WORD *)v13[2]; - v29 = (unsigned int)v28 >= v13[3] ? (*(int (__fastcall **)(_DWORD *))(*v13 + 36))(v13) : *v28; - v14 = 0; - if ( v29 == -1 ) + LODWORD(v11) = v12[2]; + LOWORD(v11) = (unsigned int)v11 >= v12[3] ? (*(int (__fastcall **)(_DWORD *))(*v12 + 36))(v12) : *(_WORD *)v11; + BYTE4(v11) = 0; + if ( (_WORD)v11 == 0xFFFF ) { LODWORD(a1) = 0; - v14 = v15; + BYTE4(v11) = v13; } } - v16 = (_WORD)a3 == 0xFFFF; - v17 = v16 & (a2 != 0); - if ( v17 ) + LOBYTE(v11) = (_WORD)a3 == 0xFFFF; + v14 = v11 & (a2 != 0); + if ( v14 ) { - v25 = (__int16 *)a2[2]; - if ( (unsigned int)v25 >= a2[3] ) + v22 = (__int16 *)a2[2]; + if ( (unsigned int)v22 >= a2[3] ) { - v54 = v14; - v49 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); - v14 = v54; - v26 = v49; + v47 = BYTE4(v11); + LOWORD(v11) = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); + BYTE4(v11) = v47; + v23 = v11; } else { - v26 = *v25; + v23 = *v22; } - v16 = 0; - if ( v26 == -1 ) + LOBYTE(v11) = 0; + if ( v23 == -1 ) break; } - v18 = v56; - if ( v14 == v16 ) + v15 = v49; + if ( BYTE4(v11) == (_BYTE)v11 ) goto LABEL_20; LABEL_5: - if ( v9 >= v52 ) + if ( v9 >= v45 ) goto LABEL_20; - if ( v18 ) + if ( v15 ) goto LABEL_22; - v19 = v9; - v20 = v9 + 1; - v53 = &a7[v9]; - if ( (*(unsigned __int8 (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, *v53, 0) == 37 ) + v16 = v9; + v17 = v9 + 1; + v46 = &a7[v9]; + if ( (*(unsigned __int8 (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, *v46, 0) == 37 ) { - v21 = (*(int (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, a7[v19 + 1], 0); - v57 = 0; - if ( v21 != 69 && v21 != 79 ) + v18 = (*(int (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, a7[v16 + 1], 0); + v50 = 0; + if ( v18 != 69 && v18 != 79 ) { - LOBYTE(v22) = v21 - 65; + LOBYTE(v19) = v18 - 65; LABEL_11: - switch ( (char)v22 ) + switch ( (char)v19 ) { case 0: - v41 = (_DWORD *)v55[2]; - *(_DWORD *)v58 = v41[11]; - v59 = v41[12]; - v60 = v41[13]; - v61 = v41[14]; - v62 = v41[15]; - v63 = v41[16]; - v64 = v41[17]; - v13 = std::time_get>::_M_extract_name( + v35 = (_DWORD *)v48[2]; + *(_DWORD *)v51 = v35[11]; + v52 = v35[12]; + v53 = v35[13]; + v54 = v35[14]; + v55 = v35[15]; + v56 = v35[16]; + v57 = v35[17]; + v12 = std::time_get>::_M_extract_name( (_DWORD *)a1, SHIDWORD(a1), a2, a3, - &v57, - (int)v58, + &v50, + (int)v51, 7, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) goto LABEL_54; goto LABEL_32; case 1: - v42 = (_DWORD *)v55[2]; - *(_DWORD *)v58 = v42[25]; - v59 = v42[26]; - v60 = v42[27]; - v61 = v42[28]; - v62 = v42[29]; - v63 = v42[30]; - v64 = v42[31]; - v65 = v42[32]; - v66 = v42[33]; - v67 = v42[34]; - v68 = v42[35]; - v69 = v42[36]; - v13 = std::time_get>::_M_extract_name( + v36 = (_DWORD *)v48[2]; + *(_DWORD *)v51 = v36[25]; + v52 = v36[26]; + v53 = v36[27]; + v54 = v36[28]; + v55 = v36[29]; + v56 = v36[30]; + v57 = v36[31]; + v58 = v36[32]; + v59 = v36[33]; + v60 = v36[34]; + v61 = v36[35]; + v62 = v36[36]; + v12 = std::time_get>::_M_extract_name( (_DWORD *)a1, SHIDWORD(a1), a2, a3, - &v57, - (int)v58, + &v50, + (int)v51, 12, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) goto LABEL_45; goto LABEL_32; case 2: case 24: case 56: - v13 = std::time_get>::_M_extract_num( + v12 = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - &v57, + &v50, 0, 9999, 4u, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) { - v32 = v57 - 1900; - if ( v57 < 0 ) - v32 = v57 + 100; - v13 = (_DWORD *)a1; - a6[5] = v32; - v12 = WORD2(a1); + v27 = v50 - 1900; + if ( v50 < 0 ) + v27 = v50 + 100; + v12 = (_DWORD *)a1; + a6[5] = v27; + WORD2(v11) = WORD2(a1); } goto LABEL_32; case 3: @@ -113246,450 +112211,450 @@ LABEL_11: v10, "%m/%d/%y", "%H:%M", - v58); - v13 = (_DWORD *)std::time_get>::_M_extract_via_format( - a1, - SHIDWORD(a1), - (int)a2, - (int)a3, - a4, - (int)&v56, - (int)a6, - v58); - LODWORD(a1) = v13; - WORD2(a1) = v12; + v51); + v11 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + &v49, + a6, + v51); + v12 = (_DWORD *)v11; + LODWORD(a1) = v11; + WORD2(a1) = WORD2(v11); goto LABEL_32; case 7: - v13 = std::time_get>::_M_extract_num( + v12 = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - &v57, + &v50, 0, 23, 2u, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) goto LABEL_47; goto LABEL_32; case 8: - v13 = std::time_get>::_M_extract_num( + v12 = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - &v57, + &v50, 1, 12, 2u, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) LABEL_47: - a6[2] = v57; + a6[2] = v50; goto LABEL_32; case 12: - v13 = std::time_get>::_M_extract_num( + v12 = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - &v57, + &v50, 0, 59, 2u, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) - a6[1] = v57; + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) + a6[1] = v50; goto LABEL_32; case 17: (*(void (__thiscall **)(void *, const char *, const char *, wchar_t *))(*(_DWORD *)v10 + 44))( v10, "%H:%M", "%H:%M:%S", - v58); - v13 = (_DWORD *)std::time_get>::_M_extract_via_format( - a1, - SHIDWORD(a1), - (int)a2, - (int)a3, - a4, - (int)&v56, - (int)a6, - v58); - LODWORD(a1) = v13; - WORD2(a1) = v12; + v51); + v11 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + &v49, + a6, + v51); + v12 = (_DWORD *)v11; + LODWORD(a1) = v11; + WORD2(a1) = WORD2(v11); goto LABEL_32; case 18: - v13 = std::time_get>::_M_extract_num( + v12 = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - &v57, + &v50, 0, 61, 2u, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) - *a6 = v57; + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) + *a6 = v50; goto LABEL_32; case 19: (*(void (__thiscall **)(void *, const char *, void *, wchar_t *))(*(_DWORD *)v10 + 44))( v10, "%H:%M:%S", &unk_530262, - v58); - v13 = (_DWORD *)std::time_get>::_M_extract_via_format( - a1, - SHIDWORD(a1), - (int)a2, - (int)a3, - a4, - (int)&v56, - (int)a6, - v58); - LODWORD(a1) = v13; - WORD2(a1) = v12; + v51); + v11 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + &v49, + a6, + v51); + v12 = (_DWORD *)v11; + LODWORD(a1) = v11; + WORD2(a1) = WORD2(v11); goto LABEL_32; case 23: - v13 = (_DWORD *)std::time_get>::_M_extract_via_format( - a1, - SHIDWORD(a1), - (int)a2, - (int)a3, - a4, - (int)&v56, - (int)a6, - *(wchar_t **)(v55[2] + 16)); - LODWORD(a1) = v13; - WORD2(a1) = v12; + v11 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + &v49, + a6, + (wchar_t *)*(_DWORD *)(v48[2] + 16)); + v12 = (_DWORD *)v11; + LODWORD(a1) = v11; + WORD2(a1) = WORD2(v11); goto LABEL_32; case 25: - v35 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); - if ( !(*(unsigned __int8 (__thiscall **)(void *, int, _DWORD))(*(_DWORD *)v10 + 8))(v10, 1, v35) ) + v30 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); + if ( !(*(unsigned __int8 (__thiscall **)(void *, int, _DWORD))(*(_DWORD *)v10 + 8))(v10, 1, v30) ) goto LABEL_29; LODWORD(a1) = std::time_get>::_M_extract_name( (_DWORD *)a1, SHIDWORD(a1), a2, a3, - v58, + v51, (int)std::__timepunct_cache::_S_timezones, 14, a4, - &v56); - WORD2(a1) = v36; - v37 = std::istreambuf_iterator::equal(&a1, (int)&a2); - v12 = WORD2(a1); - if ( v37 || *(_DWORD *)v58 | v56 ) + &v49); + WORD2(a1) = v31; + LOBYTE(v11) = std::istreambuf_iterator::equal(&a1, (int)&a2); + WORD2(v11) = WORD2(a1); + if ( (_BYTE)v11 || *(_DWORD *)v51 | v49 ) goto LABEL_31; - v38 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); - if ( v38 != (*(unsigned __int16 (__thiscall **)(void *, int))(*(_DWORD *)v10 + 40))(v10, 45) ) + v32 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); + if ( v32 != (*(unsigned __int16 (__thiscall **)(void *, int))(*(_DWORD *)v10 + 40))(v10, 45) ) { - v39 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); - if ( v39 != (*(unsigned __int16 (__thiscall **)(void *, int))(*(_DWORD *)v10 + 40))(v10, 43) ) + v33 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); + if ( v33 != (*(unsigned __int16 (__thiscall **)(void *, int))(*(_DWORD *)v10 + 40))(v10, 43) ) goto LABEL_30; } LODWORD(a1) = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - (int *)v58, + (int *)v51, 0, 23, 2u, a4, - &v56); - WORD2(a1) = v40; + &v49); + WORD2(a1) = v34; LODWORD(a1) = std::time_get>::_M_extract_num( (_DWORD *)a1, - v40, + v34, a2, (__int16)a3, - (int *)v58, + (int *)v51, 0, 59, 2u, a4, - &v56); - WORD2(a1) = v12; + &v49); + WORD2(a1) = WORD2(v11); goto LABEL_31; case 32: - v34 = (_DWORD *)v55[2]; - *(_DWORD *)v58 = v34[18]; - v59 = v34[19]; - v60 = v34[20]; - v61 = v34[21]; - v62 = v34[22]; - v63 = v34[23]; - v64 = v34[24]; - v13 = std::time_get>::_M_extract_name( + v29 = (_DWORD *)v48[2]; + *(_DWORD *)v51 = v29[18]; + v52 = v29[19]; + v53 = v29[20]; + v54 = v29[21]; + v55 = v29[22]; + v56 = v29[23]; + v57 = v29[24]; + v12 = std::time_get>::_M_extract_name( (_DWORD *)a1, SHIDWORD(a1), a2, a3, - &v57, - (int)v58, + &v50, + (int)v51, 7, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) LABEL_54: - a6[6] = v57; + a6[6] = v50; goto LABEL_32; case 33: case 39: - v33 = (_DWORD *)v55[2]; - *(_DWORD *)v58 = v33[37]; - v59 = v33[38]; - v60 = v33[39]; - v61 = v33[40]; - v62 = v33[41]; - v63 = v33[42]; - v64 = v33[43]; - v65 = v33[44]; - v66 = v33[45]; - v67 = v33[46]; - v68 = v33[47]; - v69 = v33[48]; - v13 = std::time_get>::_M_extract_name( + v28 = (_DWORD *)v48[2]; + *(_DWORD *)v51 = v28[37]; + v52 = v28[38]; + v53 = v28[39]; + v54 = v28[40]; + v55 = v28[41]; + v56 = v28[42]; + v57 = v28[43]; + v58 = v28[44]; + v59 = v28[45]; + v60 = v28[46]; + v61 = v28[47]; + v62 = v28[48]; + v12 = std::time_get>::_M_extract_name( (_DWORD *)a1, SHIDWORD(a1), a2, a3, - &v57, - (int)v58, + &v50, + (int)v51, 12, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) LABEL_45: - a6[4] = v57; + a6[4] = v50; goto LABEL_32; case 34: - v13 = (_DWORD *)std::time_get>::_M_extract_via_format( - a1, - SHIDWORD(a1), - (int)a2, - (int)a3, - a4, - (int)&v56, - (int)a6, - *(wchar_t **)(v55[2] + 24)); - LODWORD(a1) = v13; - WORD2(a1) = v12; + v11 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + &v49, + a6, + (wchar_t *)*(_DWORD *)(v48[2] + 24)); + v12 = (_DWORD *)v11; + LODWORD(a1) = v11; + WORD2(a1) = WORD2(v11); goto LABEL_32; case 35: - v13 = std::time_get>::_M_extract_num( + v12 = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - &v57, + &v50, 1, 31, 2u, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) goto LABEL_57; goto LABEL_32; case 36: - v43 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); - if ( (*(unsigned __int8 (__thiscall **)(void *, int, _DWORD))(*(_DWORD *)v10 + 8))(v10, 32, v43) ) + v37 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); + if ( (*(unsigned __int8 (__thiscall **)(void *, int, _DWORD))(*(_DWORD *)v10 + 8))(v10, 32, v37) ) { - v44 = *(_DWORD *)(a1 + 8); - if ( v44 >= *(_DWORD *)(a1 + 12) ) + v38 = *(_DWORD *)(a1 + 8); + if ( v38 >= *(_DWORD *)(a1 + 12) ) std::wstreambuf::sbumpc(a1); else - *(_DWORD *)(a1 + 8) = v44 + 2; + *(_DWORD *)(a1 + 8) = v38 + 2; WORD2(a1) = -1; LODWORD(a1) = std::time_get>::_M_extract_num( (_DWORD *)a1, - -1, + 0xFFFFu, a2, (__int16)a3, - &v57, + &v50, 1, 9, 1u, a4, - &v56); - WORD2(a1) = v45; + &v49); + WORD2(a1) = v39; } else { LODWORD(a1) = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - &v57, + &v50, 10, 31, 2u, a4, - &v56); - WORD2(a1) = v50; + &v49); + WORD2(a1) = v43; } - v12 = WORD2(a1); - v13 = (_DWORD *)a1; - if ( !v56 ) + WORD2(v11) = WORD2(a1); + v12 = (_DWORD *)a1; + if ( !v49 ) LABEL_57: - a6[3] = v57; + a6[3] = v50; goto LABEL_32; case 44: - v13 = std::time_get>::_M_extract_num( + v12 = std::time_get>::_M_extract_num( (_DWORD *)a1, - SWORD2(a1), + WORD2(a1), a2, (__int16)a3, - &v57, + &v50, 1, 12, 2u, a4, - &v56); - LODWORD(a1) = v13; - WORD2(a1) = v12; - if ( !v56 ) - a6[4] = v57 - 1; + &v49); + LODWORD(a1) = v12; + WORD2(a1) = WORD2(v11); + if ( !v49 ) + a6[4] = v50 - 1; goto LABEL_32; case 45: - v46 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); - if ( (*(unsigned __int8 (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, v46, 0) != 10 ) + v40 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); + if ( (*(unsigned __int8 (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, v40, 0) != 10 ) goto LABEL_29; goto LABEL_82; case 51: - v48 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); - if ( (*(unsigned __int8 (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, v48, 0) != 9 ) + v42 = std::istreambuf_iterator::_M_get((_DWORD **)&a1, WORD2(a1)); + if ( (*(unsigned __int8 (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, v42, 0) != 9 ) goto LABEL_29; LABEL_82: - v13 = (_DWORD *)a1; - v47 = *(_DWORD *)(a1 + 8); - if ( v47 >= *(_DWORD *)(a1 + 12) ) + v12 = (_DWORD *)a1; + v41 = *(_DWORD *)(a1 + 8); + if ( v41 >= *(_DWORD *)(a1 + 12) ) { std::wstreambuf::sbumpc(a1); - v13 = (_DWORD *)a1; + v12 = (_DWORD *)a1; } else { - *(_DWORD *)(a1 + 8) = v47 + 2; + *(_DWORD *)(a1 + 8) = v41 + 2; } - v12 = -1; + WORD2(v11) = -1; WORD2(a1) = -1; goto LABEL_32; case 55: - v13 = (_DWORD *)std::time_get>::_M_extract_via_format( - a1, - SHIDWORD(a1), - (int)a2, - (int)a3, - a4, - (int)&v56, - (int)a6, - *(wchar_t **)(v55[2] + 8)); - LODWORD(a1) = v13; - WORD2(a1) = v12; + v11 = std::time_get>::_M_extract_via_format( + a1, + a2, + a3, + a4, + &v49, + a6, + (wchar_t *)*(_DWORD *)(v48[2] + 8)); + v12 = (_DWORD *)v11; + LODWORD(a1) = v11; + WORD2(a1) = WORD2(v11); goto LABEL_32; default: goto LABEL_29; } } - v20 = v9 + 2; - v22 = (*(int (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, a7[v19 + 2], 0) - 65; - if ( (unsigned __int8)v22 <= 0x38u ) + v17 = v9 + 2; + v19 = (*(int (__thiscall **)(void *, _DWORD, _DWORD))(*(_DWORD *)v10 + 48))(v10, a7[v16 + 2], 0) - 65; + if ( (unsigned __int8)v19 <= 0x38u ) goto LABEL_11; LABEL_29: - v56 |= 4u; + v49 |= 4u; LABEL_30: - v12 = WORD2(a1); + WORD2(v11) = WORD2(a1); LABEL_31: - v13 = (_DWORD *)a1; + v12 = (_DWORD *)a1; LABEL_32: - v9 = v20 + 1; + v9 = v17 + 1; } else { - v23 = WORD2(a1); - v13 = (_DWORD *)a1; - v24 = *v53; + v20 = WORD2(a1); + v12 = (_DWORD *)a1; + v21 = *v46; if ( WORD2(a1) == 0xFFFF && (_DWORD)a1 ) { - v31 = *(__int16 **)(a1 + 8); - if ( (unsigned int)v31 >= *(_DWORD *)(a1 + 12) ) - v23 = (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1 + 36))(a1); + v26 = *(__int16 **)(a1 + 8); + if ( (unsigned int)v26 >= *(_DWORD *)(a1 + 12) ) + v20 = (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1 + 36))(a1); else - v23 = *v31; - if ( v23 == -1 ) + v20 = *v26; + if ( v20 == -1 ) { LODWORD(a1) = 0; - v13 = 0; + v12 = 0; } else { - v13 = (_DWORD *)a1; + v12 = (_DWORD *)a1; } } - if ( v24 == v23 ) + if ( v21 == v20 ) { - v30 = v13[2]; - if ( v30 >= v13[3] ) + v25 = v12[2]; + if ( v25 >= v12[3] ) { - std::wstreambuf::sbumpc((int)v13); - v13 = (_DWORD *)a1; + std::wstreambuf::sbumpc((int)v12); + v12 = (_DWORD *)a1; } else { - v13[2] = v30 + 2; + v12[2] = v25 + 2; } - v9 = v20; - v12 = -1; + v9 = v17; + WORD2(v11) = -1; WORD2(a1) = -1; } else { - v56 |= 4u; - v12 = WORD2(a1); - v9 = v20; + v49 |= 4u; + WORD2(v11) = WORD2(a1); + v9 = v17; } } } - v18 = v56; + v15 = v49; a2 = 0; - if ( v14 != v17 ) + if ( BYTE4(v11) != v14 ) goto LABEL_5; LABEL_20: - if ( v18 || v9 != v52 ) + if ( v15 || v9 != v45 ) LABEL_22: *a5 |= 4u; return a1; } -// 4A0E2D: variable 'v12' is possibly undefined -// 4A1AC4: variable 'v36' is possibly undefined -// 4A1BEE: variable 'v40' is possibly undefined -// 4A2038: variable 'v45' is possibly undefined -// 4A2340: variable 'v50' is possibly undefined +// 4A0E2D: variable 'v11' is possibly undefined +// 4A1AC4: variable 'v31' is possibly undefined +// 4A1BEE: variable 'v34' is possibly undefined +// 4A2038: variable 'v39' is possibly undefined +// 4A2340: variable 'v43' is possibly undefined // 516540: using guessed type void *std::__timepunct_cache::_S_timezones[2]; //----- (004A2370) -------------------------------------------------------- @@ -114014,9 +112979,9 @@ LABEL_31: } //----- (004A2850) -------------------------------------------------------- -int __thiscall std::time_get>::get( +_DWORD *__thiscall std::time_get>::get( void *this, - int a2, + _DWORD *a2, int a3, _DWORD *a4, int a5, @@ -114091,10 +113056,10 @@ int __thiscall std::time_get>::get( v18 = v50 && a2 != 0; if ( v18 ) { - v40 = *(__int16 **)(a2 + 8); - if ( (unsigned int)v40 >= *(_DWORD *)(a2 + 12) ) + v40 = (__int16 *)a2[2]; + if ( (unsigned int)v40 >= a2[3] ) { - v41 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v41 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); v18 = v50 && a2 != 0; } else @@ -114177,7 +113142,7 @@ LABEL_27: a8, &v59); v24 = (_DWORD *)v25; - a2 = v25; + a2 = (_DWORD *)v25; v48 = WORD2(v25); BYTE4(v25) = WORD2(v25) == 0xFFFF; v26 = BYTE4(v25) & ((_DWORD)v25 != 0); @@ -114189,7 +113154,7 @@ LABEL_27: else LOWORD(v25) = *(_WORD *)v25; BYTE4(v25) = (_WORD)v25 != 0xFFFF ? 0 : v26; - a2 = (_WORD)v25 == 0xFFFF ? 0 : (unsigned int)v24; + a2 = (_WORD)v25 == 0xFFFF ? 0 : v24; } v10 = (int)a4; if ( a4 && v54 ) @@ -114237,9 +113202,9 @@ LABEL_27: break; if ( a2 && v48 == 0xFFFF ) { - v43 = *(unsigned __int16 **)(a2 + 8); - if ( (unsigned int)v43 >= *(_DWORD *)(a2 + 12) ) - v15 = (*(unsigned __int16 (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v43 = (unsigned __int16 *)a2[2]; + if ( (unsigned int)v43 >= a2[3] ) + v15 = (*(unsigned __int16 (__fastcall **)(_DWORD *))(*a2 + 36))(a2); else v15 = *v43; a2 = (_WORD)v15 == 0xFFFF ? 0 : a2; @@ -114253,9 +113218,9 @@ LABEL_27: { if ( a2 && v48 == 0xFFFF ) { - v44 = *(_WORD **)(a2 + 8); - v16 = (unsigned int)v44 >= *(_DWORD *)(a2 + 12) - ? (*(unsigned __int16 (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2) + v44 = (_WORD *)a2[2]; + v16 = (unsigned int)v44 >= a2[3] + ? (*(unsigned __int16 (__fastcall **)(_DWORD *))(*a2 + 36))(a2) : (unsigned __int16)*v44; a2 = (_WORD)v16 == 0xFFFF ? 0 : a2; } @@ -114271,11 +113236,11 @@ LABEL_90: return a2; } } - v17 = *(_DWORD *)(a2 + 8); - if ( v17 >= *(_DWORD *)(a2 + 12) ) - (*(void (__fastcall **)(int))(*(_DWORD *)a2 + 40))(a2); + v17 = a2[2]; + if ( v17 >= a2[3] ) + (*(void (__fastcall **)(_DWORD *))(*a2 + 40))(a2); else - *(_DWORD *)(a2 + 8) = v17 + 2; + a2[2] = v17 + 2; ++v11; v48 = -1; LABEL_15: @@ -114306,9 +113271,9 @@ LABEL_16: LOBYTE(v10) = v14 & (a2 != 0); if ( (_BYTE)v10 ) { - v33 = *(unsigned __int16 **)(a2 + 8); - if ( (unsigned int)v33 >= *(_DWORD *)(a2 + 12) ) - v34 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v33 = (unsigned __int16 *)a2[2]; + if ( (unsigned int)v33 >= a2[3] ) + v34 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); else v34 = *v33; a2 = (_WORD)v34 == 0xFFFF ? 0 : a2; @@ -114347,9 +113312,9 @@ LABEL_41: LABEL_42: if ( a2 && v32 ) { - v37 = *(unsigned __int16 **)(a2 + 8); - if ( (unsigned int)v37 >= *(_DWORD *)(a2 + 12) ) - v30 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 36))(a2); + v37 = (unsigned __int16 *)a2[2]; + if ( (unsigned int)v37 >= a2[3] ) + v30 = (*(int (__fastcall **)(_DWORD *))(*a2 + 36))(a2); else v30 = *v37; a2 = v30 == 0xFFFF ? 0 : a2; @@ -114364,15 +113329,15 @@ LABEL_56: v11 = v63; goto LABEL_15; } - v31 = *(_DWORD *)(a2 + 8); - if ( v31 >= *(_DWORD *)(a2 + 12) ) + v31 = a2[2]; + if ( v31 >= a2[3] ) { - v14 = (*(int (__fastcall **)(int))(*(_DWORD *)a2 + 40))(a2); + v14 = (*(int (__fastcall **)(_DWORD *))(*a2 + 40))(a2); } else { v14 = v31 + 2; - *(_DWORD *)(a2 + 8) = v14; + a2[2] = v14; } v48 = -1; } @@ -115504,8 +114469,8 @@ LABEL_11: } if ( Buf >= v74 || !v14 ) break; - v13 = (_DWORD *)a1; LOBYTE(v80) = BYTE4(a1); + v13 = (_DWORD *)a1; v15 = (_DWORD)a1 != 0 && HIDWORD(a1) == -1; if ( v15 ) { @@ -116249,8 +115214,8 @@ LABEL_11: } if ( Buf >= v74 || !v14 ) break; - v13 = (_DWORD *)a1; LOBYTE(v80) = BYTE4(a1); + v13 = (_DWORD *)a1; v15 = (_DWORD)a1 != 0 && HIDWORD(a1) == -1; if ( v15 ) { @@ -118447,23 +117412,36 @@ _DWORD *__stdcall std::money_get>::do_ void *v15; // ecx int v16; // edx size_t v17; // [esp+24h] [ebp-34h] - int v18; // [esp+3Bh] [ebp-1Dh] BYREF - int v19[7]; // [esp+3Ch] [ebp-1Ch] BYREF + int v18[7]; // [esp+3Bh] [ebp-1Dh] BYREF v8 = std::use_facet>(a6 + 108); - v19[0] = (int)&unk_51641C; + *(int *)((char *)v18 + 1) = (int)&unk_51641C; if ( a5 ) - v9 = std::money_get>::_M_extract(a1, a2, a3, a4, a6, a7, v19); + v9 = std::money_get>::_M_extract( + a1, + a2, + a3, + a4, + a6, + a7, + (int *)((char *)v18 + 1)); else - v9 = std::money_get>::_M_extract(a1, a2, a3, a4, a6, a7, v19); + v9 = std::money_get>::_M_extract( + a1, + a2, + a3, + a4, + a6, + a7, + (int *)((char *)v18 + 1)); v10 = v9; - v11 = v19[0]; - v12 = *(_DWORD *)(v19[0] - 12); + v11 = *(int *)((char *)v18 + 1); + v12 = *(_DWORD *)(*(int *)((char *)v18 + 1) - 12); v17 = v12; if ( !v12 ) { - v13 = (void *)(v19[0] - 12); - if ( (_UNKNOWN *)v19[0] == &unk_51641C ) + v13 = (void *)(*(int *)((char *)v18 + 1) - 12); + if ( *(_UNKNOWN **)((char *)v18 + 1) == &unk_51641C ) return v10; goto LABEL_10; } @@ -118474,10 +117452,14 @@ _DWORD *__stdcall std::money_get>::do_ std::wstring::_M_leak_hard((const wchar_t **)a8); v15 = *a8; } - (*(void (__thiscall **)(void *, int, size_t, void *))(*(_DWORD *)v8 + 44))(v8, v19[0], v19[0] + v17, v15); - v11 = v19[0]; - v13 = (void *)(v19[0] - 12); - if ( (_UNKNOWN *)v19[0] != &unk_51641C ) + (*(void (__thiscall **)(void *, _DWORD, size_t, void *))(*(_DWORD *)v8 + 44))( + v8, + *(int *)((char *)v18 + 1), + *(int *)((char *)v18 + 1) + v17, + v15); + v11 = *(int *)((char *)v18 + 1); + v13 = (void *)(*(int *)((char *)v18 + 1) - 12); + if ( *(_UNKNOWN **)((char *)v18 + 1) != &unk_51641C ) { LABEL_10: if ( _CRT_MT ) @@ -118490,7 +117472,7 @@ LABEL_10: *(_DWORD *)(v11 - 4) = v16 - 1; } if ( v16 <= 0 ) - std::string::_Rep::_M_destroy(v13, (int)&v18); + std::string::_Rep::_M_destroy(v13, (int)v18); } return v10; } @@ -120102,8 +119084,8 @@ _DWORD *__cdecl std::wstring::_S_construct(unsigned int a1, wchar_t a2) //----- (004AA060) -------------------------------------------------------- _DWORD *__usercall std::wstring::_S_construct@(unsigned int a1@, wchar_t a2@) { - unsigned int *v4; // eax - unsigned int *v5; // esi + _DWORD *v4; // eax + _DWORD *v5; // esi _DWORD *v6; // ebp v4 = std::wstring::_Rep::_S_create(a1, 0); @@ -120112,13 +119094,13 @@ _DWORD *__usercall std::wstring::_S_construct@(unsigned int a1@, wchar if ( a1 == 1 ) { *((_WORD *)v4 + 6) = a2; - if ( v4 == (unsigned int *)&std::wstring::_Rep::_S_empty_rep_storage ) + if ( v4 == (_DWORD *)&std::wstring::_Rep::_S_empty_rep_storage ) return v6; } else { wmemset((wchar_t *)v4 + 6, a2, a1); - if ( v5 == (unsigned int *)&std::wstring::_Rep::_S_empty_rep_storage ) + if ( v5 == (_DWORD *)&std::wstring::_Rep::_S_empty_rep_storage ) return v6; } v5[2] = 0; @@ -120134,7 +119116,7 @@ wchar_t *__cdecl std::wstring::_S_construct<__gnu_cxx::__normal_iterator(const wchar_t *a1, int a2) +_DWORD *__cdecl std::wstring::_S_construct(const wchar_t *a1, const wchar_t *a2) { - if ( a1 == (const wchar_t *)a2 ) + if ( a1 == a2 ) return &unk_51640C; if ( !a1 ) std::__throw_logic_error((std::logic_error *)"basic_string::_S_construct null not valid"); - return std::wstring::_S_construct(a1, a2); + return std::wstring::_S_construct(a1, (int)a2); } //----- (004AA1B0) -------------------------------------------------------- -_DWORD *__cdecl std::wstring::_S_construct(const wchar_t *a1, int a2) +_DWORD *__cdecl std::wstring::_S_construct(const wchar_t *a1, const wchar_t *a2) { - if ( a1 == (const wchar_t *)a2 ) + if ( a1 == a2 ) return &unk_51640C; if ( !a1 ) std::__throw_logic_error((std::logic_error *)"basic_string::_S_construct null not valid"); - return std::wstring::_S_construct(a1, a2); + return std::wstring::_S_construct(a1, (int)a2); } //----- (004AA1F0) -------------------------------------------------------- @@ -120375,12 +119357,12 @@ const wchar_t *__thiscall std::wstring::at(const wchar_t **this, unsigned int a2 } //----- (004AA550) -------------------------------------------------------- -int __fastcall std::wstring::end(const wchar_t **a1) +const wchar_t *__fastcall std::wstring::end(const wchar_t **a1) { if ( *((int *)*a1 - 1) < 0 ) - return (int)&(*a1)[*((_DWORD *)*a1 - 3)]; + return &(*a1)[*((_DWORD *)*a1 - 3)]; std::wstring::_M_leak_hard(a1); - return (int)&(*a1)[*((_DWORD *)*a1 - 3)]; + return &(*a1)[*((_DWORD *)*a1 - 3)]; } //----- (004AA580) -------------------------------------------------------- @@ -120654,21 +119636,21 @@ const wchar_t *__fastcall std::wstring::begin(const wchar_t **a1) //----- (004AA940) -------------------------------------------------------- void __fastcall std::wstring::clear(void **a1) { - _DWORD *v1; // eax + int *v1; // eax int v2; // ebx void **v3; // [esp+1Ch] [ebp-10h] - v1 = *a1; + v1 = (int *)*a1; if ( *((int *)*a1 - 1) <= 0 ) { - if ( v1 != (_DWORD *)&unk_51640C ) + if ( v1 != (int *)&unk_51640C ) { *(v1 - 1) = 0; *(v1 - 3) = 0; *(_WORD *)v1 = 0; } } - else if ( v1 == (_DWORD *)&unk_51640C ) + else if ( v1 == (int *)&unk_51640C ) { *a1 = &unk_51640C; } @@ -120773,7 +119755,7 @@ void **__thiscall std::wstring::append(void **this, wchar_t *String) void **__thiscall std::wstring::append(void **this, wchar_t *a2, size_t N) { const wchar_t *S2; // ebp - wchar_t *v5; // eax + char *v5; // eax int v6; // edi char *v7; // edi wchar_t *S1; // edx @@ -120783,18 +119765,18 @@ void **__thiscall std::wstring::append(void **this, wchar_t *a2, size_t N) S2 = a2; if ( !N ) return this; - v5 = (wchar_t *)*this; + v5 = (char *)*this; v6 = *((_DWORD *)*this - 3); if ( N > 536870910 - v6 ) std::__throw_length_error((std::length_error *)"basic_string::append"); v7 = (char *)(N + v6); - if ( (unsigned int)v7 > *((_DWORD *)v5 - 2) || (v11 = *((_DWORD *)v5 - 1) <= 0, v5 = (wchar_t *)*this, !v11) ) + if ( (unsigned int)v7 > *((_DWORD *)v5 - 2) || (v11 = *((_DWORD *)v5 - 1) <= 0, v5 = (char *)*this, !v11) ) { - if ( v5 <= a2 && a2 <= &v5[*((_DWORD *)v5 - 3)] ) + if ( v5 <= (char *)a2 && a2 <= (wchar_t *)&v5[2 * *((_DWORD *)v5 - 3)] ) { - v10 = (char *)((char *)a2 - (char *)v5); + v10 = (char *)((char *)a2 - v5); std::wstring::reserve(this, v7); - v5 = (wchar_t *)*this; + v5 = (char *)*this; S2 = (const wchar_t *)&v10[(_DWORD)*this]; S1 = (wchar_t *)((char *)*this + 2 * *((_DWORD *)*this - 3)); if ( N != 1 ) @@ -120802,24 +119784,24 @@ void **__thiscall std::wstring::append(void **this, wchar_t *a2, size_t N) goto LABEL_13; } std::wstring::reserve(this, v7); - v5 = (wchar_t *)*this; + v5 = (char *)*this; } - S1 = &v5[*((_DWORD *)v5 - 3)]; + S1 = (wchar_t *)&v5[2 * *((_DWORD *)v5 - 3)]; if ( N != 1 ) { LABEL_8: wmemcpy(S1, S2, N); - v5 = (wchar_t *)*this; + v5 = (char *)*this; goto LABEL_9; } LABEL_13: *S1 = *S2; LABEL_9: - if ( v5 != (wchar_t *)&unk_51640C ) + if ( v5 != (char *)&unk_51640C ) { *((_DWORD *)v5 - 1) = 0; *((_DWORD *)v5 - 3) = v7; - v5[(_DWORD)v7] = 0; + *(_WORD *)&v5[2 * (_DWORD)v7] = 0; } return this; } @@ -120992,9 +119974,9 @@ const wchar_t **__thiscall std::wstring::assign(const wchar_t **this, wchar_t *S int v4; // ebx const wchar_t **result; // eax wchar_t *v6; // ebx - unsigned int v7; // eax - wchar_t **v8; // [esp+1Ch] [ebp-10h] - wchar_t **v9; // [esp+1Ch] [ebp-10h] + size_t v7; // eax + const wchar_t **v8; // [esp+1Ch] [ebp-10h] + const wchar_t **v9; // [esp+1Ch] [ebp-10h] v3 = *this; v4 = *((_DWORD *)*this - 3); @@ -121015,10 +119997,10 @@ const wchar_t **__thiscall std::wstring::assign(const wchar_t **this, wchar_t *S { if ( N ) { - v9 = (wchar_t **)this; + v9 = this; wmemcpy((wchar_t *)*this, S2, N); - this = (const wchar_t **)v9; - v6 = *v9; + this = v9; + v6 = (wchar_t *)*v9; } goto LABEL_13; } @@ -121031,10 +120013,10 @@ const wchar_t **__thiscall std::wstring::assign(const wchar_t **this, wchar_t *S { if ( N ) { - v8 = (wchar_t **)this; + v8 = this; wmemmove((wchar_t *)*this, S2, N); - this = (const wchar_t **)v8; - v6 = *v8; + this = v8; + v6 = (wchar_t *)*v8; } goto LABEL_13; } @@ -121159,22 +120141,22 @@ const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, unsigned i { const wchar_t *v4; // edx unsigned int v5; // esi - char *v7; // ebp - _DWORD *v8; // ecx + int v7; // ebp + const wchar_t **v8; // ecx const wchar_t *S2; // eax wchar_t *S1; // esi const wchar_t *v11; // edx - int v12; // edx + unsigned int v12; // edx int v13; // ebp size_t v14; // ebx const wchar_t *v15; // edi wchar_t *v16; // edx - int v18; // [esp+18h] [ebp-24h] - _DWORD *v19; // [esp+18h] [ebp-24h] - _DWORD *v20; // [esp+18h] [ebp-24h] - int v21; // [esp+18h] [ebp-24h] - _DWORD *v22; // [esp+18h] [ebp-24h] - _DWORD *v23; // [esp+1Ch] [ebp-20h] + unsigned int v18; // [esp+18h] [ebp-24h] + const wchar_t **v19; // [esp+18h] [ebp-24h] + const wchar_t **v20; // [esp+18h] [ebp-24h] + unsigned int v21; // [esp+18h] [ebp-24h] + const wchar_t **v22; // [esp+18h] [ebp-24h] + const wchar_t **v23; // [esp+1Ch] [ebp-20h] v4 = *this; v5 = *((_DWORD *)*this - 3); @@ -121188,19 +120170,19 @@ const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, unsigned i std::__throw_length_error((std::length_error *)"basic_string::insert"); if ( v4 > a3 || a3 > &v4[v5] || *((int *)v4 - 1) > 0 ) return std::wstring::_M_replace_safe(this, a2, 0, a3, N); - v7 = (char *)((char *)a3 - (char *)*this); + v7 = (char *)a3 - (char *)*this; std::wstring::_M_mutate(this, a2, 0, N); v8 = this; v18 = 2 * a2; - S2 = (const wchar_t *)&v7[*v8]; - S1 = (wchar_t *)(2 * a2 + *v8); + S2 = (const wchar_t *)((char *)*v8 + v7); + S1 = (wchar_t *)&(*v8)[a2]; v11 = &S2[N]; if ( v11 > S1 ) { if ( S2 < S1 ) { - v12 = v18 - (_DWORD)v7; - v13 = (v18 - (int)v7) >> 1; + v12 = v18 - v7; + v13 = (int)(v18 - v7) >> 1; if ( v13 == 1 ) { *S1 = *S2; @@ -121222,12 +120204,12 @@ const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, unsigned i { v22 = v8; wmemcpy(v16, v15, v14); - return (const wchar_t **)v22; + return v22; } - return (const wchar_t **)v8; + return v8; } *v16 = *v15; - return (const wchar_t **)v8; + return v8; } else { @@ -121237,12 +120219,12 @@ const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, unsigned i { v20 = v8; wmemcpy(S1, &S2[N], N); - return (const wchar_t **)v20; + return v20; } - return (const wchar_t **)v8; + return v8; } *S1 = *v11; - return (const wchar_t **)v8; + return v8; } } else @@ -121253,12 +120235,12 @@ const wchar_t **__thiscall std::wstring::insert(const wchar_t **this, unsigned i { v19 = v8; wmemcpy(S1, S2, N); - return (const wchar_t **)v19; + return v19; } - return (const wchar_t **)v8; + return v8; } *S1 = *S2; - return (const wchar_t **)v8; + return v8; } } @@ -121474,7 +120456,7 @@ const wchar_t **__thiscall std::wstring::replace( unsigned int v6; // eax int v7; // ebx const wchar_t **v8; // ecx - unsigned int v10; // edx + const wchar_t *v10; // edx const wchar_t *v11; // eax int v12; // edi wchar_t *v13; // esi @@ -121497,9 +120479,9 @@ const wchar_t **__thiscall std::wstring::replace( std::__throw_length_error((std::length_error *)"basic_string::replace"); if ( v5 > a4 || a4 > &v5[v6] || *((int *)v5 - 1) > 0 ) return std::wstring::_M_replace_safe(this, a2, v7, a4, N); - v10 = (unsigned int)&a4[N]; + v10 = &a4[N]; v11 = *this; - if ( v10 <= (unsigned int)&(*this)[a2] ) + if ( v10 <= &(*this)[a2] ) { v12 = a4 - v11; LABEL_13: @@ -121604,7 +120586,7 @@ char *__thiscall std::wstring::reserve(void **this, char *a2) char *result; // eax char *v5; // edx int v6; // ecx - int *v7; // edx + volatile signed __int32 *v7; // edx char *v8; // ecx int v9; // esi char *v10; // [esp+1Ch] [ebp-20h] @@ -121623,7 +120605,7 @@ char *__thiscall std::wstring::reserve(void **this, char *a2) if ( a2 < v5 ) result = v5; result = (char *)std::wstring::_Rep::_M_clone(v6, (int)v11, result - v5); - v7 = (int *)*this; + v7 = (volatile signed __int32 *)*this; v8 = (char *)*this - 12; if ( *this != &unk_51640C ) { @@ -121633,8 +120615,8 @@ char *__thiscall std::wstring::reserve(void **this, char *a2) } else { - v9 = *(v7 - 1); - *(v7 - 1) = v9 - 1; + v9 = *((_DWORD *)v7 - 1); + *((_DWORD *)v7 - 1) = v9 - 1; } if ( v9 <= 0 ) { @@ -121835,12 +120817,12 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, int a3) //----- (004ABF60) -------------------------------------------------------- _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, wchar_t *String, int a3) { - int v3; // eax + const wchar_t *v3; // eax _DWORD *result; // eax - v3 = -2; + v3 = (const wchar_t *)-2; if ( String ) - v3 = (int)&String[wcslen(String)]; + v3 = &String[wcslen(String)]; result = std::wstring::_S_construct(String, v3); *this = result; return result; @@ -121851,7 +120833,7 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, i { _DWORD *result; // eax - result = std::wstring::_S_construct(a2, (int)&a2[a3]); + result = std::wstring::_S_construct(a2, &a2[a3]); *this = result; return result; } @@ -121933,7 +120915,7 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, unsigned "basic_string::basic_string", a3, *(_DWORD *)(*a2 - 12)); - result = std::wstring::_S_construct((const wchar_t *)(*a2 + 2 * a3), *a2 + 2 * v5); + result = std::wstring::_S_construct((const wchar_t *)(*a2 + 2 * a3), (const wchar_t *)(*a2 + 2 * v5)); *this = result; return result; } @@ -121943,14 +120925,14 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, int *a2, unsigned in { int v5; // ecx unsigned int v6; // eax - int v7; // eax + const wchar_t *v7; // eax _DWORD *result; // eax v5 = *a2; v6 = *(_DWORD *)(*a2 - 12) - a3; if ( v6 > a4 ) v6 = a4; - v7 = v5 + 2 * (a3 + v6); + v7 = (const wchar_t *)(v5 + 2 * (a3 + v6)); if ( a3 > *(_DWORD *)(*a2 - 12) ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", @@ -121967,14 +120949,14 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, int *a2, unsigned in { int v6; // ecx unsigned int v7; // eax - int v8; // eax + const wchar_t *v8; // eax _DWORD *result; // eax v6 = *a2; v7 = *(_DWORD *)(*a2 - 12) - a3; if ( v7 > a4 ) v7 = a4; - v8 = v6 + 2 * (a3 + v7); + v8 = (const wchar_t *)(v6 + 2 * (a3 + v7)); if ( a3 > *(_DWORD *)(*a2 - 12) ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", @@ -121991,7 +120973,7 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, i { _DWORD *result; // eax - result = std::wstring::_S_construct(a2, (int)&a2[a3]); + result = std::wstring::_S_construct(a2, &a2[a3]); *this = result; return result; } @@ -122035,7 +121017,11 @@ wchar_t *__thiscall std::wstring::basic_string<__gnu_cxx::__normal_iterator(_DWORD *this, const wchar_t *a2, int a3, int a4) +_DWORD *__thiscall std::wstring::basic_string( + _DWORD *this, + const wchar_t *a2, + const wchar_t *a3, + int a4) { _DWORD *result; // eax @@ -122045,7 +121031,7 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, cons } //----- (004AC330) -------------------------------------------------------- -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4) +_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, const wchar_t *a3, int a4) { _DWORD *result; // eax @@ -122079,12 +121065,12 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, int a3) //----- (004AC3A0) -------------------------------------------------------- _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, wchar_t *String, int a3) { - int v3; // eax + const wchar_t *v3; // eax _DWORD *result; // eax - v3 = -2; + v3 = (const wchar_t *)-2; if ( String ) - v3 = (int)&String[wcslen(String)]; + v3 = &String[wcslen(String)]; result = std::wstring::_S_construct(String, v3); *this = result; return result; @@ -122095,7 +121081,7 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, i { _DWORD *result; // eax - result = std::wstring::_S_construct(a2, (int)&a2[a3]); + result = std::wstring::_S_construct(a2, &a2[a3]); *this = result; return result; } @@ -122177,7 +121163,7 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, _DWORD *a2, unsigned "basic_string::basic_string", a3, *(_DWORD *)(*a2 - 12)); - result = std::wstring::_S_construct((const wchar_t *)(*a2 + 2 * a3), *a2 + 2 * v5); + result = std::wstring::_S_construct((const wchar_t *)(*a2 + 2 * a3), (const wchar_t *)(*a2 + 2 * v5)); *this = result; return result; } @@ -122187,14 +121173,14 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, int *a2, unsigned in { int v5; // ecx unsigned int v6; // eax - int v7; // eax + const wchar_t *v7; // eax _DWORD *result; // eax v5 = *a2; v6 = *(_DWORD *)(*a2 - 12) - a3; if ( v6 > a4 ) v6 = a4; - v7 = v5 + 2 * (a3 + v6); + v7 = (const wchar_t *)(v5 + 2 * (a3 + v6)); if ( a3 > *(_DWORD *)(*a2 - 12) ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", @@ -122211,14 +121197,14 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, int *a2, unsigned in { int v6; // ecx unsigned int v7; // eax - int v8; // eax + const wchar_t *v8; // eax _DWORD *result; // eax v6 = *a2; v7 = *(_DWORD *)(*a2 - 12) - a3; if ( v7 > a4 ) v7 = a4; - v8 = v6 + 2 * (a3 + v7); + v8 = (const wchar_t *)(v6 + 2 * (a3 + v7)); if ( a3 > *(_DWORD *)(*a2 - 12) ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", @@ -122235,7 +121221,7 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, i { _DWORD *result; // eax - result = std::wstring::_S_construct(a2, (int)&a2[a3]); + result = std::wstring::_S_construct(a2, &a2[a3]); *this = result; return result; } @@ -122279,7 +121265,11 @@ wchar_t *__thiscall std::wstring::basic_string<__gnu_cxx::__normal_iterator(_DWORD *this, const wchar_t *a2, int a3, int a4) +_DWORD *__thiscall std::wstring::basic_string( + _DWORD *this, + const wchar_t *a2, + const wchar_t *a3, + int a4) { _DWORD *result; // eax @@ -122289,7 +121279,7 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, cons } //----- (004AC770) -------------------------------------------------------- -_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, int a3, int a4) +_DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wchar_t *a2, const wchar_t *a3, int a4) { _DWORD *result; // eax @@ -122301,23 +121291,23 @@ _DWORD *__thiscall std::wstring::basic_string(_DWORD *this, const wch //----- (004AC7A0) -------------------------------------------------------- void __fastcall std::wstring::~wstring(volatile signed __int32 **a1) { - volatile signed __int32 *v1; // eax + int v1; // eax int v2; // ecx - v1 = *a1; + v1 = (int)*a1; if ( *a1 != (volatile signed __int32 *)&unk_51640C ) { if ( _CRT_MT ) { - v2 = _InterlockedExchangeAdd(v1 - 1, 0xFFFFFFFF); + v2 = _InterlockedExchangeAdd((volatile signed __int32 *)(v1 - 4), 0xFFFFFFFF); } else { - v2 = *((_DWORD *)v1 - 1); - *((_DWORD *)v1 - 1) = v2 - 1; + v2 = *(_DWORD *)(v1 - 4); + *(_DWORD *)(v1 - 4) = v2 - 1; } if ( v2 <= 0 ) - operator delete((void *)(v1 - 3)); + operator delete((void *)(v1 - 12)); } } // 78A9D4: using guessed type int _CRT_MT; @@ -122325,23 +121315,23 @@ void __fastcall std::wstring::~wstring(volatile signed __int32 **a1) //----- (004AC800) -------------------------------------------------------- void __fastcall std::wstring::~wstring(volatile signed __int32 **a1) { - volatile signed __int32 *v1; // eax + int v1; // eax int v2; // ecx - v1 = *a1; + v1 = (int)*a1; if ( *a1 != (volatile signed __int32 *)&unk_51640C ) { if ( _CRT_MT ) { - v2 = _InterlockedExchangeAdd(v1 - 1, 0xFFFFFFFF); + v2 = _InterlockedExchangeAdd((volatile signed __int32 *)(v1 - 4), 0xFFFFFFFF); } else { - v2 = *((_DWORD *)v1 - 1); - *((_DWORD *)v1 - 1) = v2 - 1; + v2 = *(_DWORD *)(v1 - 4); + *(_DWORD *)(v1 - 4) = v2 - 1; } if ( v2 <= 0 ) - operator delete((void *)(v1 - 3)); + operator delete((void *)(v1 - 12)); } } // 78A9D4: using guessed type int _CRT_MT; @@ -122427,7 +121417,7 @@ void **__thiscall std::wstring::operator+=(void **this, __int16 a2) //----- (004ACA20) -------------------------------------------------------- int __userpurge std::iostream::swap@(_DWORD *a1@, std::iostream *this, std::iostream *a3) { - int v4; // esi + char *v4; // esi std::ios_base *v5; // ebx int v6; // eax char v7; // dl @@ -122435,20 +121425,20 @@ int __userpurge std::iostream::swap@(_DWORD *a1@, std::iostream *this, int result; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v4 = (int)a1 + *(_DWORD *)(*a1 - 12); + v4 = (char *)a1 + *(_DWORD *)(*a1 - 12); v5 = (std::iostream *)((char *)this + *(_DWORD *)(*(_DWORD *)this - 12)); - std::ios_base::_M_swap(v4, v5, v10); - std::ios::_M_cache_locale((_DWORD *)v4, v4 + 108); + std::ios_base::_M_swap((int)v4, v5, v10); + std::ios::_M_cache_locale(v4, (int)(v4 + 108)); std::ios::_M_cache_locale(v5, (int)v5 + 108); - v6 = *(_DWORD *)(v4 + 112); - *(_DWORD *)(v4 + 112) = *((_DWORD *)v5 + 28); + v6 = *((_DWORD *)v4 + 28); + *((_DWORD *)v4 + 28) = *((_DWORD *)v5 + 28); *((_DWORD *)v5 + 28) = v6; - v7 = *(_BYTE *)(v4 + 116); - *(_BYTE *)(v4 + 116) = *((_BYTE *)v5 + 116); + v7 = v4[116]; + v4[116] = *((_BYTE *)v5 + 116); LOBYTE(v6) = *((_BYTE *)v5 + 117); *((_BYTE *)v5 + 116) = v7; - v8 = *(_BYTE *)(v4 + 117); - *(_BYTE *)(v4 + 117) = v6; + v8 = v4[117]; + v4[117] = v6; result = a1[1]; *((_BYTE *)v5 + 117) = v8; a1[1] = *((_DWORD *)this + 1); @@ -122506,10 +121496,10 @@ int __thiscall std::iostream::iostream(_DWORD *this, int *a2) //----- (004ACBA0) -------------------------------------------------------- BOOL __thiscall std::iostream::iostream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi BOOL result; // eax - v2 = (int)(this + 3); + v2 = this + 3; std::ios_base::ios_base(this + 3); this[31] = 0; *((_WORD *)this + 64) = 0; @@ -122520,10 +121510,10 @@ BOOL __thiscall std::iostream::iostream(_DWORD *this, int a2) *this = &unk_5339C0; this[3] = &unk_5339D4; this[1] = 0; - std::ios::init(v2, a2); + std::ios::init((int)v2, a2); this[2] = &unk_5339E8; this[3] = &unk_5339FC; - result = std::ios::init(v2, a2); + result = std::ios::init((int)v2, a2); *this = &off_538444; this[3] = off_53846C; this[2] = off_538458; @@ -122567,7 +121557,7 @@ BOOL __fastcall std::iostream::iostream(int a1) int __thiscall std::iostream::iostream(int *this, int *a2, _DWORD *a3) { int v4; // eax - int v5; // edi + char *v5; // edi int v6; // edx __int16 v7; // ax int v8; // eax @@ -122582,16 +121572,16 @@ int __thiscall std::iostream::iostream(int *this, int *a2, _DWORD *a3) *this = v4; *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; this[1] = a3[1]; - v5 = (int)this + *(_DWORD *)(v4 - 12); + v5 = (char *)this + *(_DWORD *)(v4 - 12); v14 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v5, v14, v13); - std::ios::_M_cache_locale((_DWORD *)v5, v5 + 108); - *(_DWORD *)(v5 + 120) = 0; + std::ios_base::_M_move((int)v5, v14, v13); + std::ios::_M_cache_locale(v5, (int)(v5 + 108)); + *((_DWORD *)v5 + 30) = 0; v6 = *((_DWORD *)v14 + 28); *((_DWORD *)v14 + 28) = 0; v7 = *((_WORD *)v14 + 58); - *(_DWORD *)(v5 + 112) = v6; - *(_WORD *)(v5 + 116) = v7; + *((_DWORD *)v5 + 28) = v6; + *((_WORD *)v5 + 58) = v7; v8 = a2[3]; a3[1] = 0; v9 = a2[4]; @@ -122717,7 +121707,7 @@ void __thiscall std::iostream::~iostream(_DWORD *ecx0, std::iostream *this) //----- (004ACFF0) -------------------------------------------------------- _DWORD *__thiscall std::iostream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax char v6; // dl @@ -122725,20 +121715,20 @@ _DWORD *__thiscall std::iostream::operator=(_DWORD *this, _DWORD *a2) int v8; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v10); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v10); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; v8 = this[1]; *((_BYTE *)v4 + 117) = v7; this[1] = a2[1]; @@ -123610,7 +122600,7 @@ std::istream::sentry *__userpurge std::istream::read@( //----- (004AE690) -------------------------------------------------------- int __userpurge std::istream::swap@(_DWORD *a1@, std::istream *this, std::istream *a3) { - int v4; // esi + char *v4; // esi std::ios_base *v5; // ebx int v6; // eax char v7; // dl @@ -123618,20 +122608,20 @@ int __userpurge std::istream::swap@(_DWORD *a1@, std::istream *this, s int result; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v4 = (int)a1 + *(_DWORD *)(*a1 - 12); + v4 = (char *)a1 + *(_DWORD *)(*a1 - 12); v5 = (std::istream *)((char *)this + *(_DWORD *)(*(_DWORD *)this - 12)); - std::ios_base::_M_swap(v4, v5, v10); - std::ios::_M_cache_locale((_DWORD *)v4, v4 + 108); + std::ios_base::_M_swap((int)v4, v5, v10); + std::ios::_M_cache_locale(v4, (int)(v4 + 108)); std::ios::_M_cache_locale(v5, (int)v5 + 108); - v6 = *(_DWORD *)(v4 + 112); - *(_DWORD *)(v4 + 112) = *((_DWORD *)v5 + 28); + v6 = *((_DWORD *)v4 + 28); + *((_DWORD *)v4 + 28) = *((_DWORD *)v5 + 28); *((_DWORD *)v5 + 28) = v6; - v7 = *(_BYTE *)(v4 + 116); - *(_BYTE *)(v4 + 116) = *((_BYTE *)v5 + 116); + v7 = v4[116]; + v4[116] = *((_BYTE *)v5 + 116); LOBYTE(v6) = *((_BYTE *)v5 + 117); *((_BYTE *)v5 + 116) = v7; - v8 = *(_BYTE *)(v4 + 117); - *(_BYTE *)(v4 + 117) = v6; + v8 = v4[117]; + v4[117] = v6; result = a1[1]; *((_BYTE *)v5 + 117) = v8; a1[1] = *((_DWORD *)this + 1); @@ -124330,7 +123320,7 @@ std::istream::sentry *__userpurge std::istream::getline@( { int v4; // eax _BYTE *v5; // esi - unsigned __int8 v7; // al + char v7; // al int (__stdcall *v9)(unsigned __int8); // edx char v10; // [esp+Ch] [ebp-10h] @@ -124359,7 +123349,7 @@ std::istream::sentry *__userpurge std::istream::getline@( std::istream::sentry *a1@, std::istream *this, char *a3, - unsigned __int8 a4, + char a4, char a5) { int v6; // eax @@ -124429,7 +123419,7 @@ LABEL_50: Buf = (unsigned __int8 *)v9[2]; v11 = v9[3]; LABEL_11: - if ( a4 == v13 ) + if ( (unsigned __int8)a4 == v13 ) { LABEL_40: *((_DWORD *)a1 + 1) = v23; @@ -124469,7 +123459,7 @@ LABEL_7: if ( v16 > 1 ) { v24 = v11; - v14 = (unsigned __int8 *)memchr(Buf, (char)a4, v16); + v14 = (unsigned __int8 *)memchr(Buf, a4, v16); if ( !v14 || (v15 = v24, v16 = v14 - Buf, v14 != Buf) ) { memcpy(this, Buf, v16); @@ -124543,7 +123533,7 @@ LABEL_37: LABEL_17: Buf = (unsigned __int8 *)v9[2]; v11 = v9[3]; - if ( a4 == v13 ) + if ( (unsigned __int8)a4 == v13 ) goto LABEL_40; } } @@ -124566,7 +123556,7 @@ LABEL_17: if ( (int)a3 > v12 + 1 ) goto LABEL_11; LABEL_25: - if ( a4 == v13 ) + if ( (unsigned __int8)a4 == v13 ) { Buf = (unsigned __int8 *)v9[2]; v11 = v9[3]; @@ -124716,9 +123706,9 @@ int __thiscall std::istream::istream(_DWORD *this, int *a2) //----- (004AFC70) -------------------------------------------------------- BOOL __thiscall std::istream::istream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 2); + v2 = this + 2; std::ios_base::ios_base(this + 2); this[30] = 0; *((_WORD *)this + 62) = 0; @@ -124729,7 +123719,7 @@ BOOL __thiscall std::istream::istream(_DWORD *this, int a2) *this = &off_538480; this[2] = off_538494; this[1] = 0; - return std::ios::init(v2, a2); + return std::ios::init((int)v2, a2); } // 538480: using guessed type void (__cdecl *off_538480)(std::istream *__hidden this); // 538494: using guessed type void (__cdecl *off_538494[2])(std::istream *__hidden this); @@ -124761,7 +123751,7 @@ int __thiscall std::istream::istream(int *this, int *a2, _DWORD *a3) int v3; // eax int v4; // ebx int v5; // edx - int v6; // ebx + char *v6; // ebx std::ios_base *v7; // esi int v8; // eax int result; // eax @@ -124773,17 +123763,17 @@ int __thiscall std::istream::istream(int *this, int *a2, _DWORD *a3) *this = *a2; *(int *)((char *)this + v5) = v4; this[1] = a3[1]; - v6 = (int)this + *(_DWORD *)(v3 - 12); + v6 = (char *)this + *(_DWORD *)(v3 - 12); v7 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v6, v7, v10); - std::ios::_M_cache_locale((_DWORD *)v6, v6 + 108); + std::ios_base::_M_move((int)v6, v7, v10); + std::ios::_M_cache_locale(v6, (int)(v6 + 108)); v8 = *((_DWORD *)v7 + 28); *((_DWORD *)v7 + 28) = 0; - *(_DWORD *)(v6 + 112) = v8; - *(_BYTE *)(v6 + 116) = *((_BYTE *)v7 + 116); + *((_DWORD *)v6 + 28) = v8; + v6[116] = *((_BYTE *)v7 + 116); result = *((unsigned __int8 *)v7 + 117); - *(_DWORD *)(v6 + 120) = 0; - *(_BYTE *)(v6 + 117) = result; + *((_DWORD *)v6 + 30) = 0; + v6[117] = result; a3[1] = 0; return result; } @@ -124864,7 +123854,7 @@ void __thiscall std::istream::~istream(_DWORD *ecx0, std::istream *this) //----- (004AFEF0) -------------------------------------------------------- _DWORD *__thiscall std::istream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax char v6; // dl @@ -124872,20 +123862,20 @@ _DWORD *__thiscall std::istream::operator=(_DWORD *this, _DWORD *a2) int v8; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v10); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v10); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; v8 = this[1]; *((_BYTE *)v4 + 117) = v7; this[1] = a2[1]; @@ -125104,7 +124094,7 @@ std::ostream::sentry *__userpurge std::ostream::put@(std::ostream::sentry * //----- (004B0580) -------------------------------------------------------- int __userpurge std::ostream::swap@(_DWORD *a1@, std::ostream *this, std::ostream *a3) { - int v3; // ebx + char *v3; // ebx std::ios_base *v4; // esi int v5; // eax char v6; // dl @@ -125112,21 +124102,21 @@ int __userpurge std::ostream::swap@(_DWORD *a1@, std::ostream *this, s int result; // eax std::ios_base *v9; // [esp+4h] [ebp-18h] - v3 = (int)a1 + *(_DWORD *)(*a1 - 12); + v3 = (char *)a1 + *(_DWORD *)(*a1 - 12); v4 = (std::ostream *)((char *)this + *(_DWORD *)(*(_DWORD *)this - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_BYTE *)v4 + 116); *((_DWORD *)v4 + 28) = v5; - LOBYTE(v5) = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = v6; + LOBYTE(v5) = v3[116]; + v3[116] = v6; v7 = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v5; - result = *(unsigned __int8 *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v7; + result = (unsigned __int8)v3[117]; + v3[117] = v7; *((_BYTE *)v4 + 117) = result; return result; } @@ -126127,9 +125117,9 @@ int __thiscall std::ostream::ostream(_DWORD *this, int *a2) //----- (004B1D60) -------------------------------------------------------- BOOL __thiscall std::ostream::ostream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 1); + v2 = this + 1; std::ios_base::ios_base(this + 1); this[29] = 0; *((_WORD *)this + 60) = 0; @@ -126139,7 +125129,7 @@ BOOL __thiscall std::ostream::ostream(_DWORD *this, int a2) this[34] = 0; *this = &off_5384A8; this[1] = off_5384BC; - return std::ios::init(v2, a2); + return std::ios::init((int)v2, a2); } // 5384A8: using guessed type void (__cdecl *off_5384A8)(std::ostream *__hidden this); // 5384BC: using guessed type void (__cdecl *off_5384BC[2])(std::ostream *__hidden this); @@ -126189,8 +125179,8 @@ int __thiscall std::ostream::ostream(int *this, int *a2, _DWORD *a3) { int v3; // edx int v4; // eax - _DWORD *v5; // ecx - _DWORD *v6; // ebx + int *v5; // ecx + int *v6; // ebx std::ios_base *v7; // esi int v8; // eax int result; // eax @@ -126221,7 +125211,7 @@ BOOL __thiscall std::ostream::ostream(int *this, int *a2, int a3) { int v3; // edx int v4; // eax - _DWORD *v5; // ecx + int *v5; // ecx v3 = *a2; v4 = a2[1]; @@ -126301,7 +125291,7 @@ void __thiscall std::ostream::~ostream(_DWORD *ecx0, std::ostream *this) //----- (004B2030) -------------------------------------------------------- _DWORD *__thiscall std::ostream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax char v6; // dl @@ -126309,20 +125299,20 @@ _DWORD *__thiscall std::ostream::operator=(_DWORD *this, _DWORD *a2) _DWORD *result; // eax std::ios_base *v9; // [esp+4h] [ebp-18h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; result = this; *((_BYTE *)v4 + 117) = v7; return result; @@ -126547,23 +125537,23 @@ void *__cdecl std::string::_S_construct<__gnu_cxx::__normal_iterator(_BYTE *a1, int a2) +_DWORD *__cdecl std::string::_S_construct(_BYTE *a1, _BYTE *a2) { - if ( a1 == (_BYTE *)a2 ) + if ( a1 == a2 ) return &unk_51641C; if ( !a1 ) std::__throw_logic_error((std::logic_error *)"basic_string::_S_construct null not valid"); - return std::string::_S_construct(a1, a2); + return std::string::_S_construct(a1, (int)a2); } //----- (004B2560) -------------------------------------------------------- -_DWORD *__cdecl std::string::_S_construct(_BYTE *a1, int a2) +_DWORD *__cdecl std::string::_S_construct(_BYTE *a1, _BYTE *a2) { - if ( a1 == (_BYTE *)a2 ) + if ( a1 == a2 ) return &unk_51641C; if ( !a1 ) std::__throw_logic_error((std::logic_error *)"basic_string::_S_construct null not valid"); - return std::string::_S_construct(a1, a2); + return std::string::_S_construct(a1, (int)a2); } //----- (004B25A0) -------------------------------------------------------- @@ -126788,23 +125778,23 @@ void __thiscall std::string::_Rep::_M_destroy(void *this, int a2) } //----- (004B2930) -------------------------------------------------------- -void __thiscall std::string::_Rep::_M_dispose(volatile signed __int32 *this, int a2) +void __thiscall std::string::_Rep::_M_dispose(unsigned int *this, int a2) { int v2; // eax - if ( this != (volatile signed __int32 *)&std::string::_Rep::_S_empty_rep_storage ) + if ( this != &std::string::_Rep::_S_empty_rep_storage ) { if ( _CRT_MT ) { - v2 = _InterlockedExchangeAdd(this + 2, 0xFFFFFFFF); + v2 = _InterlockedExchangeAdd((volatile signed __int32 *)this + 2, 0xFFFFFFFF); } else { - v2 = *((_DWORD *)this + 2); - *((_DWORD *)this + 2) = v2 - 1; + v2 = this[2]; + this[2] = v2 - 1; } if ( v2 <= 0 ) - operator delete((void *)this); + operator delete(this); } } // 78A9D4: using guessed type int _CRT_MT; @@ -127074,21 +126064,21 @@ volatile signed __int32 *__fastcall std::string::begin(volatile signed __int32 * //----- (004B2D00) -------------------------------------------------------- void __fastcall std::string::clear(void **a1) { - _DWORD *v1; // eax + int *v1; // eax int v2; // ebx void **v3; // [esp+1Ch] [ebp-10h] - v1 = *a1; + v1 = (int *)*a1; if ( *((int *)*a1 - 1) <= 0 ) { - if ( v1 != (_DWORD *)&unk_51641C ) + if ( v1 != (int *)&unk_51641C ) { *(v1 - 1) = 0; *(v1 - 3) = 0; *(_BYTE *)v1 = 0; } } - else if ( v1 == (_DWORD *)&unk_51641C ) + else if ( v1 == (int *)&unk_51641C ) { *a1 = &unk_51641C; } @@ -127266,7 +126256,7 @@ LABEL_9: unsigned int **__userpurge std::string::append@(unsigned int **a1@, std::string *this, const std::string *a3) { size_t Size; // esi - size_t v5; // edi + unsigned int v5; // edi _BYTE *v6; // edx _BYTE *v7; // eax unsigned int *v8; // eax @@ -127316,7 +126306,7 @@ unsigned int **__userpurge std::string::append@( std::string *v6; // eax unsigned int v7; // ebx size_t Size; // ebx - size_t v9; // ebp + unsigned int v9; // ebp _BYTE *v10; // edi _BYTE *v11; // edx unsigned int *v12; // eax @@ -127442,7 +126432,7 @@ volatile signed __int32 **__userpurge std::string::assign@( unsigned int v5; // ebx volatile signed __int32 **result; // eax volatile signed __int32 *v7; // ebx - char *v8; // eax + size_t v8; // eax unsigned int v9; // [esp+10h] [ebp-1Ch] volatile signed __int32 **v10; // [esp+1Ch] [ebp-10h] volatile signed __int32 **v11; // [esp+1Ch] [ebp-10h] @@ -127459,8 +126449,8 @@ volatile signed __int32 **__userpurge std::string::assign@( return std::string::_M_replace_safe(a1, 0, v5, this, Size, v9); } v7 = *a1; - v8 = (char *)(this - (std::string *)*a1); - if ( Size <= (unsigned int)v8 ) + v8 = this - (std::string *)*a1; + if ( Size <= v8 ) { if ( Size != 1 ) { @@ -127509,7 +126499,7 @@ unsigned int **__userpurge std::string::assign@( { unsigned int *v4; // esi unsigned int *v5; // ecx - volatile signed __int32 *v6; // eax + int v6; // eax unsigned int *v7; // edx int v9; // ecx char v10[13]; // [esp+1Fh] [ebp-Dh] BYREF @@ -127529,12 +126519,12 @@ unsigned int **__userpurge std::string::assign@( else ++*(v4 - 1); } - v6 = (volatile signed __int32 *)*a1; + v6 = (int)*a1; v7 = *a1 - 3; if ( *a1 == (unsigned int *)&unk_51641C || (_CRT_MT - ? (v9 = _InterlockedExchangeAdd(v6 - 1, 0xFFFFFFFF)) - : (v9 = *((_DWORD *)v6 - 1), *((_DWORD *)v6 - 1) = v9 - 1), + ? (v9 = _InterlockedExchangeAdd((volatile signed __int32 *)(v6 - 4), 0xFFFFFFFF)) + : (v9 = *(_DWORD *)(v6 - 4), *(_DWORD *)(v6 - 4) = v9 - 1), v9 > 0) ) { *a1 = v4; @@ -127633,7 +126623,7 @@ volatile signed __int32 **__userpurge std::string::insert@( unsigned int v7; // [esp+Ch] [ebp-10h] v5 = strlen(Str); - return std::string::insert(a1, this, (volatile signed __int32 *)Str, v5, v7); + return std::string::insert(a1, this, Str, v5, v7); } // 4B35C4: variable 'v7' is possibly undefined @@ -127641,19 +126631,19 @@ volatile signed __int32 **__userpurge std::string::insert@( volatile signed __int32 **__userpurge std::string::insert@( volatile signed __int32 **a1@, std::string *this, - volatile signed __int32 *a3, + char *a3, size_t Size, unsigned int a5) { volatile signed __int32 *v5; // edx unsigned int v6; // eax - std::string *v8; // edi + int v8; // edi volatile signed __int32 **v9; // ecx - char *Src; // eax - char *v11; // ebp + _BYTE *Src; // eax + _BYTE *v11; // ebp size_t v12; // esi - char *v13; // ebx - char *v14; // ebp + _BYTE *v13; // ebx + _BYTE *v14; // ebp size_t v15; // eax unsigned int v16; // [esp+Ch] [ebp-30h] unsigned int v17; // [esp+10h] [ebp-2Ch] @@ -127669,19 +126659,19 @@ volatile signed __int32 **__userpurge std::string::insert@( *((_DWORD *)*a1 - 3)); if ( Size > 1073741820 - v6 ) std::__throw_length_error((std::length_error *)"basic_string::insert"); - if ( v5 > a3 || a3 > (volatile signed __int32 *)((char *)v5 + v6) || *((int *)v5 - 1) > 0 ) + if ( v5 > (volatile signed __int32 *)a3 || a3 > (char *)v5 + v6 || *((int *)v5 - 1) > 0 ) return std::string::_M_replace_safe(a1, this, 0, a3, Size, v17); - v8 = (std::string *)((char *)a3 - (char *)*a1); + v8 = a3 - (char *)*a1; std::string::_M_mutate(a1, (size_t)this, 0, Size, v16); v9 = a1; - Src = (char *)v8 + (_DWORD)*a1; + Src = (char *)*a1 + v8; v11 = (char *)*a1 + (_DWORD)this; if ( &Src[Size] > v11 ) { if ( Src < v11 ) { - v12 = this - v8; - if ( this - v8 == 1 ) + v12 = (size_t)this - v8; + if ( (std::string *)((char *)this - v8) == (std::string *)1 ) { *v11 = *Src; } @@ -127743,7 +126733,7 @@ volatile signed __int32 **__userpurge std::string::insert@( volatile signed __int32 **__userpurge std::string::insert@( volatile signed __int32 **a1@, std::string *this, - volatile signed __int32 **a3, + char **a3, const std::string *a4) { unsigned int v5; // [esp+Ch] [ebp-10h] @@ -127773,7 +126763,7 @@ volatile signed __int32 **__userpurge std::string::insert@( "basic_string::insert", (size_t)a4, *(_DWORD *)(*a3 - 12)); - return std::string::insert(a1, this, (volatile signed __int32 *)((char *)a4 + *a3), v6, v8); + return std::string::insert(a1, this, (char *)a4 + *a3, v6, v8); } // 4B37F6: variable 'v8' is possibly undefined @@ -127920,13 +126910,7 @@ volatile signed __int32 **__thiscall std::string::replace(volatile signed __int3 unsigned int v7; // [esp+10h] [ebp-Ch] Size = strlen(Str); - return std::string::replace( - this, - (std::string *)(a2 - (_DWORD)*this), - a3 - a2, - (volatile signed __int32 *)Str, - Size, - v7); + return std::string::replace(this, (std::string *)(a2 - (_DWORD)*this), a3 - a2, Str, Size, v7); } // 4B3A31: variable 'v7' is possibly undefined @@ -127955,11 +126939,7 @@ volatile signed __int32 **__userpurge std::string::replace@( } //----- (004B3A90) -------------------------------------------------------- -volatile signed __int32 **__thiscall std::string::replace( - volatile signed __int32 **this, - int a2, - int a3, - volatile signed __int32 **a4) +volatile signed __int32 **__thiscall std::string::replace(volatile signed __int32 **this, int a2, int a3, char **a4) { unsigned int v5; // [esp+10h] [ebp-Ch] @@ -128027,7 +127007,7 @@ volatile signed __int32 **__userpurge std::string::replace@( unsigned int v8; // [esp+10h] [ebp-Ch] Size = strlen(Str); - return std::string::replace(a1, this, a3, (volatile signed __int32 *)Str, Size, v8); + return std::string::replace(a1, this, a3, Str, Size, v8); } // 4B3B7C: variable 'v8' is possibly undefined @@ -128036,7 +127016,7 @@ volatile signed __int32 **__userpurge std::string::replace@( volatile signed __int32 **a1@, std::string *this, unsigned int a3, - volatile signed __int32 *a4, + char *a4, size_t Size, unsigned int a6) { @@ -128045,7 +127025,7 @@ volatile signed __int32 **__userpurge std::string::replace@( unsigned int v8; // ebx volatile signed __int32 **v9; // ecx volatile signed __int32 *v11; // eax - size_t v12; // edi + char *v12; // edi _BYTE *v13; // esi volatile signed __int32 *v14; // edi int v15; // edx @@ -128066,33 +127046,33 @@ volatile signed __int32 **__userpurge std::string::replace@( v8 = a3; if ( Size > v8 - v7 + 1073741820 ) std::__throw_length_error((std::length_error *)"basic_string::replace"); - if ( v6 > a4 || a4 > (volatile signed __int32 *)((char *)v6 + v7) || *((int *)v6 - 1) > 0 ) + if ( v6 > (volatile signed __int32 *)a4 || a4 > (char *)v6 + v7 || *((int *)v6 - 1) > 0 ) return std::string::_M_replace_safe(a1, this, v8, a4, Size, v17); v11 = *a1; - if ( (std::string *)((unsigned int)a4 + Size) <= (std::string *)((char *)this + (int)*a1) ) + if ( &a4[Size] <= (char *)this + (int)*a1 ) { - v12 = (char *)a4 - (char *)v11; + v12 = (char *)(a4 - (char *)v11); LABEL_13: std::string::_M_mutate(a1, (size_t)this, v8, Size, v16); v9 = a1; v13 = (char *)this + (_DWORD)*a1; if ( Size == 1 ) { - *v13 = *((_BYTE *)*a1 + v12); + *v13 = v12[(_DWORD)*a1]; } else if ( Size ) { - memcpy(v13, (char *)*a1 + v12, Size); + memcpy(v13, &v12[(_DWORD)*a1], Size); return a1; } return v9; } - if ( a4 >= (volatile signed __int32 *)((char *)v11 + (int)this + v8) ) + if ( a4 >= (char *)v11 + (int)this + v8 ) { - v12 = Size + (char *)a4 - (char *)v11 - v8; + v12 = (char *)(Size + a4 - (char *)v11 - v8); goto LABEL_13; } - v14 = std::string::_S_construct(a4, (int)a4 + Size); + v14 = std::string::_S_construct(a4, &a4[Size]); v9 = std::string::_M_replace_safe(a1, this, v8, v14, Size, v17); if ( v14 != (volatile signed __int32 *)&unk_51641C ) { @@ -128123,7 +127103,7 @@ volatile signed __int32 **__userpurge std::string::replace@( volatile signed __int32 **a1@, std::string *this, unsigned int a3, - volatile signed __int32 **a4, + char **a4, const std::string *a5) { unsigned int v6; // [esp+10h] [ebp-Ch] @@ -128154,7 +127134,7 @@ volatile signed __int32 **__userpurge std::string::replace@( "basic_string::replace", (size_t)a5, *(_DWORD *)(*a4 - 12)); - return std::string::replace(a1, this, a3, (volatile signed __int32 *)((char *)a5 + *a4), Size, v9); + return std::string::replace(a1, this, a3, (char *)a5 + *a4, Size, v9); } // 4B3DFE: variable 'v9' is possibly undefined @@ -128184,41 +127164,41 @@ volatile signed __int32 **__userpurge std::string::replace@( //----- (004B3EA0) -------------------------------------------------------- unsigned int *__userpurge std::string::reserve@(unsigned int **a1@, std::string *this, unsigned int a3) { - int *v4; // ecx + int v4; // ecx unsigned int *result; // eax - unsigned int v6; // edx + unsigned int *v6; // edx int v7; // ecx - int *v8; // edx + int v8; // edx unsigned int *v9; // ecx int v10; // esi unsigned int *v11; // [esp+1Ch] [ebp-20h] char v12[13]; // [esp+2Fh] [ebp-Dh] BYREF - v4 = (int *)*a1; + v4 = (int)*a1; result = (unsigned int *)this; - if ( this == (std::string *)*(v4 - 2) ) + if ( this == *(std::string **)(v4 - 8) ) { - if ( *(v4 - 1) <= 0 ) + if ( *(int *)(v4 - 4) <= 0 ) return result; - v4 = (int *)*a1; + v4 = (int)*a1; } - v6 = *(v4 - 3); - v7 = (int)(v4 - 3); - if ( (unsigned int)this < v6 ) - result = (unsigned int *)v6; - result = std::string::_Rep::_M_clone(v7, (int)v12, (int)result - v6); - v8 = (int *)*a1; + v6 = *(unsigned int **)(v4 - 12); + v7 = v4 - 12; + if ( this < (std::string *)v6 ) + result = v6; + result = std::string::_Rep::_M_clone(v7, (int)v12, (char *)result - (char *)v6); + v8 = (int)*a1; v9 = *a1 - 3; if ( *a1 != (unsigned int *)&unk_51641C ) { if ( _CRT_MT ) { - v10 = _InterlockedExchangeAdd(v8 - 1, 0xFFFFFFFF); + v10 = _InterlockedExchangeAdd((volatile signed __int32 *)(v8 - 4), 0xFFFFFFFF); } else { - v10 = *(v8 - 1); - *(v8 - 1) = v10 - 1; + v10 = *(_DWORD *)(v8 - 4); + *(_DWORD *)(v8 - 4) = v10 - 1; } if ( v10 <= 0 ) { @@ -128279,12 +127259,12 @@ void __userpurge std::string::_M_mutate( unsigned int v7; // edx unsigned int v8; // edi size_t Size; // esi - unsigned int *v10; // eax + _DWORD *v10; // eax int v11; // ecx unsigned int *v12; // ebp volatile signed __int32 *v13; // edx - volatile signed __int32 *Src; // eax - volatile signed __int32 *v15; // eax + _DWORD *Src; // eax + _DWORD *v15; // eax _BYTE *v16; // eax _BYTE *v17; // ecx _BYTE *v18; // edx @@ -128303,7 +127283,7 @@ LABEL_4: v10 = std::string::_Rep::_S_create(v8, v7); v11 = a3 + this; v12 = v10; - v13 = (volatile signed __int32 *)(v10 + 3); + v13 = v10 + 3; if ( this ) { Src = *a1; @@ -128316,7 +127296,7 @@ LABEL_4: goto LABEL_10; goto LABEL_8; } - memcpy(v12 + 3, (const void *)Src, this); + memcpy(v12 + 3, Src, this); v11 = a3 + this; v13 = (volatile signed __int32 *)(v12 + 3); } @@ -128340,7 +127320,7 @@ LABEL_8: v13 = v21; LABEL_10: v20 = v15 - 3; - if ( v15 == (volatile signed __int32 *)&unk_51641C ) + if ( v15 == (_DWORD *)&unk_51641C ) { LABEL_11: *a1 = v13; @@ -128353,8 +127333,8 @@ LABEL_20: } else { - v19 = *((_DWORD *)v15 - 1); - *((_DWORD *)v15 - 1) = v19 - 1; + v19 = *(v15 - 1); + *(v15 - 1) = v19 - 1; } if ( v19 <= 0 ) { @@ -128449,7 +127429,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, char *Str, int a3) v3 = -1; if ( Str ) v3 = (int)&Str[strlen(Str)]; - result = std::string::_S_construct(Str, v3); + result = std::string::_S_construct(Str, (_BYTE *)v3); *this = result; return result; } @@ -128459,7 +127439,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4) { _DWORD *result; // eax - result = std::string::_S_construct(a2, (int)&a2[a3]); + result = std::string::_S_construct(a2, &a2[a3]); *this = result; return result; } @@ -128544,7 +127524,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2, unsigned int a3 "basic_string::basic_string", a3, *(_DWORD *)(*a2 - 12)); - result = std::string::_S_construct((_BYTE *)(a3 + *a2), *a2 + v5); + result = std::string::_S_construct((_BYTE *)(a3 + *a2), (_BYTE *)(*a2 + v5)); *this = result; return result; } @@ -128559,7 +127539,7 @@ _DWORD *__userpurge std::string::string@( { int v6; // edx unsigned int v7; // eax - char *v8; // eax + _BYTE *v8; // eax _DWORD *result; // eax v6 = *(_DWORD *)this; @@ -128573,7 +127553,7 @@ _DWORD *__userpurge std::string::string@( "basic_string::basic_string", (size_t)a3, *(_DWORD *)(*(_DWORD *)this - 12)); - result = std::string::_S_construct((_BYTE *)a3 + v6, (int)v8); + result = std::string::_S_construct((_BYTE *)a3 + v6, v8); *a1 = result; return result; } @@ -128583,14 +127563,14 @@ _DWORD *__thiscall std::string::string(_DWORD *this, int *a2, unsigned int a3, u { int v6; // edx unsigned int v7; // eax - int v8; // eax + _BYTE *v8; // eax _DWORD *result; // eax v6 = *a2; v7 = *(_DWORD *)(*a2 - 12) - a3; if ( v7 > a4 ) v7 = a4; - v8 = v6 + a3 + v7; + v8 = (_BYTE *)(v6 + a3 + v7); if ( a3 > *(_DWORD *)(*a2 - 12) ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", @@ -128607,7 +127587,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4) { _DWORD *result; // eax - result = std::string::_S_construct(a2, (int)&a2[a3]); + result = std::string::_S_construct(a2, &a2[a3]); *this = result; return result; } @@ -128651,7 +127631,7 @@ void *__thiscall std::string::string<__gnu_cxx::__normal_iterator(_DWORD *this, _BYTE *a2, int a3, int a4) +_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4) { _DWORD *result; // eax @@ -128661,7 +127641,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int } //----- (004B4660) -------------------------------------------------------- -_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4) +_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4) { _DWORD *result; // eax @@ -128701,7 +127681,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, char *Str, int a3) v3 = -1; if ( Str ) v3 = (int)&Str[strlen(Str)]; - result = std::string::_S_construct(Str, v3); + result = std::string::_S_construct(Str, (_BYTE *)v3); *this = result; return result; } @@ -128711,7 +127691,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4) { _DWORD *result; // eax - result = std::string::_S_construct(a2, (int)&a2[a3]); + result = std::string::_S_construct(a2, &a2[a3]); *this = result; return result; } @@ -128796,7 +127776,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _DWORD *a2, unsigned int a3 "basic_string::basic_string", a3, *(_DWORD *)(*a2 - 12)); - result = std::string::_S_construct((_BYTE *)(a3 + *a2), *a2 + v5); + result = std::string::_S_construct((_BYTE *)(a3 + *a2), (_BYTE *)(*a2 + v5)); *this = result; return result; } @@ -128811,7 +127791,7 @@ _DWORD *__userpurge std::string::string@( { int v6; // edx unsigned int v7; // eax - char *v8; // eax + _BYTE *v8; // eax _DWORD *result; // eax v6 = *(_DWORD *)this; @@ -128825,7 +127805,7 @@ _DWORD *__userpurge std::string::string@( "basic_string::basic_string", (size_t)a3, *(_DWORD *)(*(_DWORD *)this - 12)); - result = std::string::_S_construct((_BYTE *)a3 + v6, (int)v8); + result = std::string::_S_construct((_BYTE *)a3 + v6, v8); *a1 = result; return result; } @@ -128835,14 +127815,14 @@ _DWORD *__thiscall std::string::string(_DWORD *this, int *a2, unsigned int a3, u { int v6; // edx unsigned int v7; // eax - int v8; // eax + _BYTE *v8; // eax _DWORD *result; // eax v6 = *a2; v7 = *(_DWORD *)(*a2 - 12) - a3; if ( v7 > a4 ) v7 = a4; - v8 = v6 + a3 + v7; + v8 = (_BYTE *)(v6 + a3 + v7); if ( a3 > *(_DWORD *)(*a2 - 12) ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", @@ -128859,7 +127839,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4) { _DWORD *result; // eax - result = std::string::_S_construct(a2, (int)&a2[a3]); + result = std::string::_S_construct(a2, &a2[a3]); *this = result; return result; } @@ -128903,7 +127883,7 @@ void *__thiscall std::string::string<__gnu_cxx::__normal_iterator(_DWORD *this, _BYTE *a2, int a3, int a4) +_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4) { _DWORD *result; // eax @@ -128913,7 +127893,7 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int } //----- (004B4AA0) -------------------------------------------------------- -_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, int a4) +_DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, _BYTE *a3, int a4) { _DWORD *result; // eax @@ -128925,23 +127905,23 @@ _DWORD *__thiscall std::string::string(_DWORD *this, _BYTE *a2, int a3, //----- (004B4AD0) -------------------------------------------------------- void __fastcall std::string::~string(volatile signed __int32 **a1) { - volatile signed __int32 *v1; // eax + int v1; // eax int v2; // ecx - v1 = *a1; + v1 = (int)*a1; if ( *a1 != (volatile signed __int32 *)&unk_51641C ) { if ( _CRT_MT ) { - v2 = _InterlockedExchangeAdd(v1 - 1, 0xFFFFFFFF); + v2 = _InterlockedExchangeAdd((volatile signed __int32 *)(v1 - 4), 0xFFFFFFFF); } else { - v2 = *((_DWORD *)v1 - 1); - *((_DWORD *)v1 - 1) = v2 - 1; + v2 = *(_DWORD *)(v1 - 4); + *(_DWORD *)(v1 - 4) = v2 - 1; } if ( v2 <= 0 ) - operator delete((void *)(v1 - 3)); + operator delete((void *)(v1 - 12)); } } // 78A9D4: using guessed type int _CRT_MT; @@ -128949,23 +127929,23 @@ void __fastcall std::string::~string(volatile signed __int32 **a1) //----- (004B4B30) -------------------------------------------------------- void __fastcall std::string::~string(volatile signed __int32 **a1) { - volatile signed __int32 *v1; // eax + int v1; // eax int v2; // ecx - v1 = *a1; + v1 = (int)*a1; if ( *a1 != (volatile signed __int32 *)&unk_51641C ) { if ( _CRT_MT ) { - v2 = _InterlockedExchangeAdd(v1 - 1, 0xFFFFFFFF); + v2 = _InterlockedExchangeAdd((volatile signed __int32 *)(v1 - 4), 0xFFFFFFFF); } else { - v2 = *((_DWORD *)v1 - 1); - *((_DWORD *)v1 - 1) = v2 - 1; + v2 = *(_DWORD *)(v1 - 4); + *(_DWORD *)(v1 - 4) = v2 - 1; } if ( v2 <= 0 ) - operator delete((void *)(v1 - 3)); + operator delete((void *)(v1 - 12)); } } // 78A9D4: using guessed type int _CRT_MT; @@ -130461,47 +129441,49 @@ int __usercall std::_Destroy_aux::__destroy@(int a1@< } //----- (004B6F70) -------------------------------------------------------- -void __fastcall __spoils std::`anonymous namespace'::utf16_span( - unsigned int a1, - unsigned __int8 *a2, - unsigned int a3, - char a4) +void __usercall std::`anonymous namespace'::utf16_span( + unsigned int a1@, + unsigned __int8 *a2@, + unsigned __int8 *a3@, + unsigned int a4, + char a5) { - unsigned int v4; // edi - unsigned int v5; // esi - unsigned int v6; // ebx + unsigned int v5; // edi + unsigned int v6; // esi + unsigned int v7; // ebx unsigned int utf8_code; // eax - unsigned __int8 *v9[6]; // [esp+Ch] [ebp-18h] BYREF + unsigned __int8 *v10[6]; // [esp+Ch] [ebp-18h] BYREF - v4 = a3; - v9[1] = a2; - if ( (a4 & 4) != 0 ) - std::`anonymous namespace'::read_bom((int *)v9); + v5 = a4; + v10[0] = a3; + v10[1] = a2; + if ( (a5 & 4) != 0 ) + std::`anonymous namespace'::read_bom((int *)v10); if ( a1 <= 1 ) { - v6 = 1; + v7 = 1; LABEL_11: - if ( a1 == v6 ) + if ( a1 == v7 ) { - if ( a3 > 0xFFFE ) - v4 = 0xFFFF; - std::`anonymous namespace'::read_utf8_code_point(v9, v4); + if ( a4 > 0xFFFE ) + v5 = 0xFFFF; + std::`anonymous namespace'::read_utf8_code_point(v10, v5); } } else { - v5 = 0; - v6 = 1; + v6 = 0; + v7 = 1; while ( 1 ) { - utf8_code = std::`anonymous namespace'::read_utf8_code_point(v9, a3); - if ( a3 < utf8_code ) + utf8_code = std::`anonymous namespace'::read_utf8_code_point(v10, a4); + if ( a4 < utf8_code ) break; if ( utf8_code <= 0xFFFF ) - v6 = v5; - v5 = v6 + 1; - v6 += 2; - if ( v6 >= a1 ) + v7 = v6; + v6 = v7 + 1; + v7 += 2; + if ( v7 >= a1 ) goto LABEL_11; } } @@ -131223,33 +130205,35 @@ int __usercall std::`anonymous namespace'::ucs2_span@( } //----- (004B7B20) -------------------------------------------------------- -void __fastcall __spoils std::`anonymous namespace'::ucs2_span( - int a1, - unsigned __int8 *a2, - unsigned int a3, - char a4) +void __usercall std::`anonymous namespace'::ucs2_span( + int a1@, + unsigned __int8 *a2@, + unsigned __int8 *a3@, + unsigned int a4, + char a5) { - unsigned int v5; // esi - int v6; // ebx - bool v7; // dl - bool v8; // al - unsigned __int8 *v9[6]; // [esp+8h] [ebp-18h] BYREF + unsigned int v6; // esi + int v7; // ebx + bool v8; // dl + bool v9; // al + unsigned __int8 *v10[6]; // [esp+8h] [ebp-18h] BYREF - v5 = a3; - v9[1] = a2; - if ( (a4 & 4) != 0 ) - std::`anonymous namespace'::read_bom((int *)v9); - if ( a3 > 0xFFFE ) - v5 = 0xFFFF; - v6 = a1 - 1; + v10[0] = a3; + v6 = a4; + v10[1] = a2; + if ( (a5 & 4) != 0 ) + std::`anonymous namespace'::read_bom((int *)v10); + if ( a4 > 0xFFFE ) + v6 = 0xFFFF; + v7 = a1 - 1; if ( a1 ) { do { - v7 = v5 >= std::`anonymous namespace'::read_utf8_code_point(v9, v5); - v8 = v6-- != 0; + v8 = v6 >= std::`anonymous namespace'::read_utf8_code_point(v10, v6); + v9 = v7-- != 0; } - while ( v8 && v7 ); + while ( v9 && v8 ); } } @@ -131669,24 +130653,24 @@ void __fastcall std::__cow_string::__cow_string(_DWORD *a1) //----- (004B8290) -------------------------------------------------------- void __fastcall std::__cow_string::~__cow_string(volatile signed __int32 **a1) { - volatile signed __int32 *v1; // eax + int v1; // eax int v2; // edx int v3[3]; // [esp+1Fh] [ebp-Dh] BYREF - v1 = *a1; + v1 = (int)*a1; if ( *a1 != (volatile signed __int32 *)&unk_51641C ) { if ( _CRT_MT ) { - v2 = _InterlockedExchangeAdd(v1 - 1, 0xFFFFFFFF); + v2 = _InterlockedExchangeAdd((volatile signed __int32 *)(v1 - 4), 0xFFFFFFFF); } else { - v2 = *((_DWORD *)v1 - 1); - *((_DWORD *)v1 - 1) = v2 - 1; + v2 = *(_DWORD *)(v1 - 4); + *(_DWORD *)(v1 - 4) = v2 - 1; } if ( v2 <= 0 ) - std::string::_Rep::_M_destroy((void *)(v1 - 3), (int)v3); + std::string::_Rep::_M_destroy((void *)(v1 - 12), (int)v3); } } // 78A9D4: using guessed type int _CRT_MT; @@ -131823,7 +130807,7 @@ _DWORD *__thiscall std::__sso_string::__sso_string(_DWORD *this, _DWORD *a2) } //----- (004B8480) -------------------------------------------------------- -unsigned int __userpurge std::__sso_string::__sso_string@( +int __userpurge std::__sso_string::__sso_string@( void **a1@, std::__sso_string *this, const char *a3, @@ -131863,10 +130847,7 @@ _BYTE *__userpurge std::__sso_string::__sso_string@( // 4B8500: variable 'v4' is possibly undefined //----- (004B8510) -------------------------------------------------------- -unsigned int __userpurge std::__sso_string::__sso_string@( - void **a1@, - std::__sso_string **this, - const std::string *a3) +int __userpurge std::__sso_string::__sso_string@(void **a1@, std::__sso_string **this, const std::string *a3) { unsigned int v4; // [esp+8h] [ebp-14h] @@ -131896,17 +130877,17 @@ void __fastcall std::__sso_string::~__sso_string(void **a1) //----- (004B8590) -------------------------------------------------------- _DWORD *__thiscall std::__sso_string::operator=(_DWORD *this, int a2) { - _BYTE *v3; // eax - _BYTE *Src; // ecx + _DWORD *v3; // eax + _DWORD *Src; // ecx int v5; // edx int v6; // ebp - v3 = (_BYTE *)*this; - Src = *(_BYTE **)a2; + v3 = (_DWORD *)*this; + Src = *(_DWORD **)a2; v5 = *(_DWORD *)(a2 + 4); if ( *(_DWORD *)a2 != a2 + 8 ) { - if ( v3 == (_BYTE *)(this + 2) ) + if ( v3 == this + 2 ) { *this = Src; this[1] = v5; @@ -131926,24 +130907,24 @@ _DWORD *__thiscall std::__sso_string::operator=(_DWORD *this, int a2) } } *(_DWORD *)a2 = a2 + 8; - v3 = (_BYTE *)(a2 + 8); + v3 = (_DWORD *)(a2 + 8); goto LABEL_5; } if ( v5 ) { if ( v5 == 1 ) - *v3 = *(_BYTE *)(a2 + 8); + *(_BYTE *)v3 = *(_BYTE *)(a2 + 8); else memcpy(v3, Src, *(_DWORD *)(a2 + 4)); v5 = *(_DWORD *)(a2 + 4); - v3 = (_BYTE *)*this; + v3 = (_DWORD *)*this; } this[1] = v5; - v3[v5] = 0; - v3 = *(_BYTE **)a2; + *((_BYTE *)v3 + v5) = 0; + v3 = *(_DWORD **)a2; LABEL_5: *(_DWORD *)(a2 + 4) = 0; - *v3 = 0; + *(_BYTE *)v3 = 0; return this; } @@ -132664,7 +131645,7 @@ int __cdecl std::__facet_shims::__money_get( std::string *a4, int a5, int a6, - unsigned __int8 a7, + char a7, int a8, _DWORD *a9, int a10, @@ -132689,7 +131670,7 @@ int __cdecl std::__facet_shims::__money_get( a4, a5, a6, - a7, + (unsigned __int8)a7, a8, a9, a10); @@ -132699,7 +131680,7 @@ int __cdecl std::__facet_shims::__money_get( a4, a5, a6, - a7, + (unsigned __int8)a7, a8, a9, v21); @@ -135215,24 +134196,24 @@ void __cdecl std::__facet_shims::`anonymous namespace'::moneypunct_shim(volatile signed __int32 **a1) { - volatile signed __int32 *v1; // eax + int v1; // eax int v2; // edx int v3[3]; // [esp+1Fh] [ebp-Dh] BYREF - v1 = *a1; + v1 = (int)*a1; if ( *a1 != (volatile signed __int32 *)&unk_51641C ) { if ( _CRT_MT ) { - v2 = _InterlockedExchangeAdd(v1 - 1, 0xFFFFFFFF); + v2 = _InterlockedExchangeAdd((volatile signed __int32 *)(v1 - 4), 0xFFFFFFFF); } else { - v2 = *((_DWORD *)v1 - 1); - *((_DWORD *)v1 - 1) = v2 - 1; + v2 = *(_DWORD *)(v1 - 4); + *(_DWORD *)(v1 - 4) = v2 - 1; } if ( v2 <= 0 ) - std::string::_Rep::_M_destroy((void *)(v1 - 3), (int)v3); + std::string::_Rep::_M_destroy((void *)(v1 - 12), (int)v3); } } // 78A9D4: using guessed type int _CRT_MT; @@ -135248,24 +134229,24 @@ void __cdecl std::__facet_shims::`anonymous namespace'::__destroy_string(v //----- (004BB360) -------------------------------------------------------- void __cdecl std::__facet_shims::`anonymous namespace'::__destroy_string(volatile signed __int32 **a1) { - volatile signed __int32 *v1; // eax + int v1; // eax int v2; // edx int v3[3]; // [esp+1Fh] [ebp-Dh] BYREF - v1 = *a1; + v1 = (int)*a1; if ( *a1 != (volatile signed __int32 *)&unk_51640C ) { if ( _CRT_MT ) { - v2 = _InterlockedExchangeAdd(v1 - 1, 0xFFFFFFFF); + v2 = _InterlockedExchangeAdd((volatile signed __int32 *)(v1 - 4), 0xFFFFFFFF); } else { - v2 = *((_DWORD *)v1 - 1); - *((_DWORD *)v1 - 1) = v2 - 1; + v2 = *(_DWORD *)(v1 - 4); + *(_DWORD *)(v1 - 4) = v2 - 1; } if ( v2 <= 0 ) - std::wstring::_Rep::_M_destroy((void *)(v1 - 3), (int)v3); + std::wstring::_Rep::_M_destroy((void *)(v1 - 12), (int)v3); } } // 78A9D4: using guessed type int _CRT_MT; @@ -137041,11 +136022,11 @@ void __userpurge std::__ios_failure::__ios_failure(_DWORD *a1@, std::__ios_ { void (__cdecl ***v4)(_anonymous_namespace_::io_error_category *__hidden); // esi int (__thiscall *v5)(int, int, int); // eax - unsigned int *v6; // eax - void *v7; // ecx + unsigned int **v6; // eax + unsigned int *v7; // ecx size_t v8; // eax - unsigned int *v9; // eax - void *v10; // ecx + unsigned int **v9; // eax + unsigned int *v10; // ecx char *v11; // eax std::runtime_error *v12[2]; // [esp+28h] [ebp-60h] BYREF char v13[16]; // [esp+30h] [ebp-58h] BYREF @@ -137061,50 +136042,50 @@ void __userpurge std::__ios_failure::__ios_failure(_DWORD *a1@, std::__ios_ v12[0] = (std::runtime_error *)v13; v12[1] = 0; v13[0] = 0; - std::string::_M_replace((unsigned int *)v12, 0, 0, "iostream error", 0xEu); + std::string::_M_replace((unsigned int **)v12, 0, 0, "iostream error", 0xEu); } else { v5((int)v12, (int)v4, 1); } - v6 = std::string::_M_replace((unsigned int *)v12, 0, 0, ": ", 2u); + v6 = std::string::_M_replace((unsigned int **)v12, 0, 0, ": ", 2u); v14[0] = v15; - if ( (unsigned int *)*v6 == v6 + 2 ) + if ( *v6 == (unsigned int *)(v6 + 2) ) { - v15[0] = v6[2]; - v15[1] = v6[3]; - v15[2] = v6[4]; - v15[3] = v6[5]; + v15[0] = (int)v6[2]; + v15[1] = (int)v6[3]; + v15[2] = (int)v6[4]; + v15[3] = (int)v6[5]; } else { - v14[0] = (void *)*v6; - v15[0] = v6[2]; + v14[0] = *v6; + v15[0] = (int)v6[2]; } - v7 = (void *)v6[1]; + v7 = v6[1]; *((_BYTE *)v6 + 8) = 0; v14[1] = v7; - *v6 = (unsigned int)(v6 + 2); + *v6 = (unsigned int *)(v6 + 2); v6[1] = 0; v8 = strlen((const char *)this); - v9 = std::string::_M_replace((unsigned int *)v14, 0, 0, (char *)this, v8); + v9 = std::string::_M_replace((unsigned int **)v14, 0, 0, (char *)this, v8); v16[0] = v17; - if ( (unsigned int *)*v9 == v9 + 2 ) + if ( *v9 == (unsigned int *)(v9 + 2) ) { - v17[0] = v9[2]; - v17[1] = v9[3]; - v17[2] = v9[4]; - v17[3] = v9[5]; + v17[0] = (int)v9[2]; + v17[1] = (int)v9[3]; + v17[2] = (int)v9[4]; + v17[3] = (int)v9[5]; } else { - v16[0] = (void *)*v9; - v17[0] = v9[2]; + v16[0] = *v9; + v17[0] = (int)v9[2]; } - v10 = (void *)v9[1]; + v10 = v9[1]; *((_BYTE *)v9 + 8) = 0; v16[1] = v10; - *v9 = (unsigned int)(v9 + 2); + *v9 = (unsigned int *)(v9 + 2); v9[1] = 0; std::runtime_error::runtime_error(a1, (int)v16); if ( v16[0] != v17 ) @@ -137126,11 +136107,11 @@ void __userpurge std::__ios_failure::__ios_failure(_DWORD *a1@, std::__ios_ { void (__cdecl ***v5)(_anonymous_namespace_::system_error_category *__hidden); // esi int (__thiscall *v6)(int, int, int); // eax - unsigned int *v7; // eax - void *v8; // ecx + unsigned int **v7; // eax + unsigned int *v8; // ecx size_t v9; // eax - unsigned int *v10; // eax - void *v11; // ecx + unsigned int **v10; // eax + unsigned int *v11; // ecx char *v12; // eax std::runtime_error *v13; // [esp+28h] [ebp-60h] BYREF int v14; // [esp+2Ch] [ebp-5Ch] @@ -137151,7 +136132,7 @@ void __userpurge std::__ios_failure::__ios_failure(_DWORD *a1@, std::__ios_ v14 = 0; if ( a3 != 1 ) { - std::string::_M_replace((unsigned int *)&v13, 0, 0, "Unknown error", 0xDu); + std::string::_M_replace((unsigned int **)&v13, 0, 0, "Unknown error", 0xDu); goto LABEL_5; } goto LABEL_18; @@ -137167,7 +136148,7 @@ void __userpurge std::__ios_failure::__ios_failure(_DWORD *a1@, std::__ios_ v13 = (std::runtime_error *)v15; v15[0] = 0; LABEL_18: - std::string::_M_replace((unsigned int *)&v13, 0, 0, "iostream error", 0xEu); + std::string::_M_replace((unsigned int **)&v13, 0, 0, "iostream error", 0xEu); a3 = 1; goto LABEL_5; } @@ -137175,44 +136156,44 @@ LABEL_18: } v6((int)&v13, (int)v5, a3); LABEL_5: - v7 = std::string::_M_replace((unsigned int *)&v13, 0, 0, ": ", 2u); + v7 = std::string::_M_replace((unsigned int **)&v13, 0, 0, ": ", 2u); v16[0] = v17; - if ( (unsigned int *)*v7 == v7 + 2 ) + if ( *v7 == (unsigned int *)(v7 + 2) ) { - v17[0] = v7[2]; - v17[1] = v7[3]; - v17[2] = v7[4]; - v17[3] = v7[5]; + v17[0] = (int)v7[2]; + v17[1] = (int)v7[3]; + v17[2] = (int)v7[4]; + v17[3] = (int)v7[5]; } else { - v16[0] = (void *)*v7; - v17[0] = v7[2]; + v16[0] = *v7; + v17[0] = (int)v7[2]; } - v8 = (void *)v7[1]; + v8 = v7[1]; *((_BYTE *)v7 + 8) = 0; v16[1] = v8; - *v7 = (unsigned int)(v7 + 2); + *v7 = (unsigned int *)(v7 + 2); v7[1] = 0; v9 = strlen((const char *)this); - v10 = std::string::_M_replace((unsigned int *)v16, 0, 0, (char *)this, v9); + v10 = std::string::_M_replace((unsigned int **)v16, 0, 0, (char *)this, v9); v18[0] = v19; - if ( (unsigned int *)*v10 == v10 + 2 ) + if ( *v10 == (unsigned int *)(v10 + 2) ) { - v19[0] = v10[2]; - v19[1] = v10[3]; - v19[2] = v10[4]; - v19[3] = v10[5]; + v19[0] = (int)v10[2]; + v19[1] = (int)v10[3]; + v19[2] = (int)v10[4]; + v19[3] = (int)v10[5]; } else { - v18[0] = (void *)*v10; - v19[0] = v10[2]; + v18[0] = *v10; + v19[0] = (int)v10[2]; } - v11 = (void *)v10[1]; + v11 = v10[1]; *((_BYTE *)v10 + 8) = 0; v18[1] = v11; - *v10 = (unsigned int)(v10 + 2); + *v10 = (unsigned int *)(v10 + 2); v10[1] = 0; std::runtime_error::runtime_error(a1, (int)v18); if ( v18[0] != v19 ) @@ -137363,13 +136344,13 @@ int __fastcall std::filebuf::_M_terminate_output(_DWORD *a1) int v1; // esi int v3; // eax int v4; // ecx - _DWORD **v5; // eax + _DWORD *v5; // eax _DWORD *v6; // ebx _DWORD **v7; // ebp unsigned int v8; // eax unsigned int v9; // esi unsigned __int8 v11; // [esp+2Bh] [ebp-B5h] - void *v12; // [esp+2Ch] [ebp-B4h] + _DWORD *v12; // [esp+2Ch] [ebp-B4h] int v13; // [esp+30h] [ebp-B0h] int v14; // [esp+40h] [ebp-A0h] BYREF char v15[128]; // [esp+44h] [ebp-9Ch] BYREF @@ -137393,9 +136374,9 @@ int __fastcall std::filebuf::_M_terminate_output(_DWORD *a1) if ( (_BYTE)v1 ) { v12 = a1 + 10; - v5 = (_DWORD **)a1; + v5 = a1; v6 = a1 + 14; - v7 = v5; + v7 = (_DWORD **)v5; while ( 1 ) { v8 = (*(int (__thiscall **)(_DWORD *, _DWORD *, char *, char *, int *))(*v7[22] + 12))( @@ -137516,7 +136497,7 @@ void __fastcall std::filebuf::_M_allocate_internal_buffer(int a1) //----- (004BE8C0) -------------------------------------------------------- char *__thiscall std::filebuf::open(char *this, char *a2, int a3) { - _BYTE *v3; // esi + char *v3; // esi v3 = this + 40; if ( std::__basic_file::is_open((_DWORD *)this + 10) ) @@ -137565,7 +136546,7 @@ char *__thiscall std::filebuf::open(char *this, int a2) //----- (004BEA00) -------------------------------------------------------- char *__thiscall std::filebuf::open(char *this, wchar_t *a2, int a3) { - _BYTE *v3; // esi + char *v3; // esi v3 = this + 40; if ( std::__basic_file::is_open((_DWORD *)this + 10) ) @@ -138398,7 +137379,7 @@ int __thiscall std::filebuf::pbackfail(char *this, int a2) char v4; // di int v5; // edx int result; // eax - _BYTE *v7; // eax + char *v7; // eax int v8; // eax int v9; // eax int v10[7]; // [esp+24h] [ebp-1Ch] BYREF @@ -138445,7 +137426,7 @@ LABEL_5: return result; if ( v4 ) return -1; - v7 = (_BYTE *)*((_DWORD *)this + 2); + v7 = (char *)*((_DWORD *)this + 2); if ( !this[84] ) { *((_DWORD *)this + 19) = v7; @@ -138466,7 +137447,7 @@ LABEL_5: int __fastcall std::filebuf::showmanyc(_DWORD *a1) { int v1; // esi - int v2; // ebp + _DWORD *v2; // ebp int v4; // ecx int v5; // esi int v6; // edi @@ -138475,7 +137456,7 @@ int __fastcall std::filebuf::showmanyc(_DWORD *a1) v1 = a1[12]; if ( (v1 & 8) == 0 ) return -1; - v2 = (int)(a1 + 10); + v2 = a1 + 10; if ( !std::__basic_file::is_open(a1 + 10) ) return -1; v4 = a1[22]; @@ -138485,7 +137466,7 @@ int __fastcall std::filebuf::showmanyc(_DWORD *a1) std::__throw_bad_cast(); if ( (*(int (__fastcall **)(int))(*(_DWORD *)v4 + 20))(v4) < 0 || !v5 ) return v6; - v8 = std::__basic_file::showmanyc(v2); + v8 = std::__basic_file::showmanyc((int)v2); return v8 / (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1[22] + 32))(a1[22]) + v6; } @@ -139323,13 +138304,13 @@ int __fastcall std::wfilebuf::_M_terminate_output(_DWORD *a1) int v1; // esi int v3; // eax int v4; // ecx - _DWORD **v5; // eax + _DWORD *v5; // eax _DWORD *v6; // ebx _DWORD **v7; // ebp unsigned int v8; // eax unsigned int v9; // esi unsigned __int8 v11; // [esp+2Bh] [ebp-B5h] - void *v12; // [esp+2Ch] [ebp-B4h] + _DWORD *v12; // [esp+2Ch] [ebp-B4h] int v13; // [esp+30h] [ebp-B0h] int v14; // [esp+40h] [ebp-A0h] BYREF char v15[128]; // [esp+44h] [ebp-9Ch] BYREF @@ -139353,9 +138334,9 @@ int __fastcall std::wfilebuf::_M_terminate_output(_DWORD *a1) if ( (_BYTE)v1 ) { v12 = a1 + 10; - v5 = (_DWORD **)a1; + v5 = a1; v6 = a1 + 14; - v7 = v5; + v7 = (_DWORD **)v5; while ( 1 ) { v8 = (*(int (__thiscall **)(_DWORD *, _DWORD *, char *, char *, int *))(*v7[23] + 12))( @@ -140369,7 +139350,7 @@ int __thiscall std::wfilebuf::pbackfail(char *this, int a2) char v4; // di int v5; // edx int result; // eax - _WORD *v7; // eax + char *v7; // eax int v8; // eax int v9; // eax int v10[7]; // [esp+24h] [ebp-1Ch] BYREF @@ -140416,7 +139397,7 @@ LABEL_5: return result; if ( v4 ) return -1; - v7 = (_WORD *)*((_DWORD *)this + 2); + v7 = (char *)*((_DWORD *)this + 2); if ( !this[88] ) { *((_DWORD *)this + 20) = v7; @@ -140429,7 +139410,7 @@ LABEL_5: this[88] = 1; } this[73] = 1; - *v7 = a2; + *(_WORD *)v7 = a2; return a2; } @@ -140437,7 +139418,7 @@ LABEL_5: int __fastcall std::wfilebuf::showmanyc(_DWORD *a1) { int v1; // edi - int v2; // ebp + _DWORD *v2; // ebp int v4; // ecx int v5; // edi int v6; // esi @@ -140446,7 +139427,7 @@ int __fastcall std::wfilebuf::showmanyc(_DWORD *a1) v1 = a1[12]; if ( (v1 & 8) == 0 ) return -1; - v2 = (int)(a1 + 10); + v2 = a1 + 10; if ( !std::__basic_file::is_open(a1 + 10) ) return -1; v4 = a1[23]; @@ -140456,7 +139437,7 @@ int __fastcall std::wfilebuf::showmanyc(_DWORD *a1) std::__throw_bad_cast(); if ( (*(int (__fastcall **)(int))(*(_DWORD *)v4 + 20))(v4) < 0 || !v5 ) return v6; - v8 = std::__basic_file::showmanyc(v2); + v8 = std::__basic_file::showmanyc((int)v2); return v8 / (*(int (__fastcall **)(_DWORD))(*(_DWORD *)a1[23] + 32))(a1[23]) + v6; } @@ -141241,7 +140222,7 @@ int __thiscall std::fstream::open(char *this, char **a2, int a3) //----- (004C2840) -------------------------------------------------------- int __thiscall std::fstream::swap(_DWORD *this, _DWORD *a2) { - int v3; // edi + char *v3; // edi std::ios_base *v4; // esi int v5; // eax char v6; // dl @@ -141249,20 +140230,20 @@ int __thiscall std::fstream::swap(_DWORD *this, _DWORD *a2) int v8; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v10); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v10); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; v8 = this[1]; *((_BYTE *)v4 + 117) = v7; this[1] = a2[1]; @@ -141340,11 +140321,11 @@ int __thiscall std::fstream::basic_fstream(_DWORD *this, int *a2) //----- (004C2A60) -------------------------------------------------------- int __thiscall std::fstream::basic_fstream(char *this, char *a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 120); + v3 = this + 120; std::ios_base::ios_base((_DWORD *)this + 30); *(_DWORD *)this = &unk_533A4C; *((_DWORD *)this + 58) = 0; @@ -141355,15 +140336,15 @@ int __thiscall std::fstream::basic_fstream(char *this, char *a2, int a3) *((_DWORD *)this + 63) = 0; *((_DWORD *)this + 30) = &unk_533A60; *((_DWORD *)this + 1) = 0; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *((_DWORD *)this + 2) = &unk_533A74; *((_DWORD *)this + 30) = &unk_533A88; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_538764; *((_DWORD *)this + 30) = off_53878C; *((_DWORD *)this + 2) = off_538778; std::filebuf::basic_filebuf((int)(this + 12)); - std::ios::init(v3, (int)(this + 12)); + std::ios::init((int)v3, (int)(this + 12)); v5 = std::filebuf::open(this + 12, a2, a3); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -141378,11 +140359,11 @@ int __thiscall std::fstream::basic_fstream(char *this, char *a2, int a3) //----- (004C2BD0) -------------------------------------------------------- int __thiscall std::fstream::basic_fstream(char *this, wchar_t *a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 120); + v3 = this + 120; std::ios_base::ios_base((_DWORD *)this + 30); *(_DWORD *)this = &unk_533A4C; *((_DWORD *)this + 58) = 0; @@ -141393,15 +140374,15 @@ int __thiscall std::fstream::basic_fstream(char *this, wchar_t *a2, int a3) *((_DWORD *)this + 63) = 0; *((_DWORD *)this + 30) = &unk_533A60; *((_DWORD *)this + 1) = 0; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *((_DWORD *)this + 2) = &unk_533A74; *((_DWORD *)this + 30) = &unk_533A88; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_538764; *((_DWORD *)this + 30) = off_53878C; *((_DWORD *)this + 2) = off_538778; std::filebuf::basic_filebuf((int)(this + 12)); - std::ios::init(v3, (int)(this + 12)); + std::ios::init((int)v3, (int)(this + 12)); v5 = std::filebuf::open(this + 12, a2, a3); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -141416,11 +140397,11 @@ int __thiscall std::fstream::basic_fstream(char *this, wchar_t *a2, int a3) //----- (004C2D40) -------------------------------------------------------- int __thiscall std::fstream::basic_fstream(char *this, char **a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 120); + v3 = this + 120; std::ios_base::ios_base((_DWORD *)this + 30); *(_DWORD *)this = &unk_533A4C; *((_DWORD *)this + 58) = 0; @@ -141431,15 +140412,15 @@ int __thiscall std::fstream::basic_fstream(char *this, char **a2, int a3) *((_DWORD *)this + 63) = 0; *((_DWORD *)this + 30) = &unk_533A60; *((_DWORD *)this + 1) = 0; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *((_DWORD *)this + 2) = &unk_533A74; *((_DWORD *)this + 30) = &unk_533A88; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_538764; *((_DWORD *)this + 30) = off_53878C; *((_DWORD *)this + 2) = off_538778; std::filebuf::basic_filebuf((int)(this + 12)); - std::ios::init(v3, (int)(this + 12)); + std::ios::init((int)v3, (int)(this + 12)); v5 = std::filebuf::open(this + 12, *a2, a3); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -141496,22 +140477,22 @@ int __thiscall std::fstream::basic_fstream(int *this, int *a2, _DWORD *a3) int result; // eax std::ios_base *v14; // [esp+4h] [ebp-34h] std::ios_base *v15; // [esp+18h] [ebp-20h] - int v16; // [esp+1Ch] [ebp-1Ch] + char *v16; // [esp+1Ch] [ebp-1Ch] v4 = a2[2]; *this = v4; *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[3]; this[1] = a3[1]; - v16 = (int)this + *(_DWORD *)(v4 - 12); + v16 = (char *)this + *(_DWORD *)(v4 - 12); v15 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v16, v15, v14); - std::ios::_M_cache_locale((_DWORD *)v16, v16 + 108); + std::ios_base::_M_move((int)v16, v15, v14); + std::ios::_M_cache_locale(v16, (int)(v16 + 108)); v5 = *((_DWORD *)v15 + 28); *((_DWORD *)v15 + 28) = 0; v6 = *((_WORD *)v15 + 58); - *(_DWORD *)(v16 + 120) = 0; - *(_DWORD *)(v16 + 112) = v5; - *(_WORD *)(v16 + 116) = v6; + *((_DWORD *)v16 + 30) = 0; + *((_DWORD *)v16 + 28) = v5; + *((_WORD *)v16 + 58) = v6; v7 = a2[4]; a3[1] = 0; v8 = a2[5]; @@ -141756,7 +140737,7 @@ void __fastcall std::fstream::~fstream(int a1) // 539474: using guessed type int (*off_539474)(); //----- (004C36D0) -------------------------------------------------------- -int __thiscall std::fstream::~fstream(_DWORD *this, int *a2) +int __thiscall std::fstream::~fstream(int *this, int *a2) { _DWORD *v3; // ecx int v4; // eax @@ -141775,19 +140756,19 @@ int __thiscall std::fstream::~fstream(_DWORD *this, int *a2) *(v3 - 1) = v5; std::filebuf::close((int)v3); std::__basic_file::~__basic_file(this + 13); - this[3] = &off_538A48; + this[3] = (int)&off_538A48; std::locale::~locale((_DWORD **)this + 10); v6 = a2[1]; *this = v6; - *(_DWORD *)((char *)this + *(_DWORD *)(v6 - 12)) = a2[6]; + *(int *)((char *)this + *(_DWORD *)(v6 - 12)) = a2[6]; this[2] = a2[7]; v7 = a2[4]; this[2] = v7; - *(_DWORD *)((char *)this + *(_DWORD *)(v7 - 12) + 8) = a2[5]; + *(int *)((char *)this + *(_DWORD *)(v7 - 12) + 8) = a2[5]; v8 = a2[2]; *this = v8; result = *(_DWORD *)(v8 - 12); - *(_DWORD *)((char *)this + result) = a2[3]; + *(int *)((char *)this + result) = a2[3]; this[1] = 0; return result; } @@ -141798,7 +140779,7 @@ int __thiscall std::fstream::~fstream(_DWORD *this, int *a2) //----- (004C3770) -------------------------------------------------------- _DWORD *__thiscall std::fstream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax char v6; // dl @@ -141806,20 +140787,20 @@ _DWORD *__thiscall std::fstream::operator=(_DWORD *this, _DWORD *a2) int v8; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v10); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v10); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; v8 = this[1]; *((_BYTE *)v4 + 117) = v7; this[1] = a2[1]; @@ -141880,27 +140861,27 @@ int __thiscall std::wfstream::open(int *this, char **a2, int a3) //----- (004C3960) -------------------------------------------------------- int __thiscall std::wfstream::swap(_DWORD *this, _DWORD *a2) { - int v3; // edi + char *v3; // edi std::ios_base *v4; // esi int v5; // eax __int16 v6; // dx int v7; // eax std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); v7 = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; @@ -141980,11 +140961,11 @@ int __thiscall std::wfstream::basic_fstream(_DWORD *this, int *a2) //----- (004C3B90) -------------------------------------------------------- int __thiscall std::wfstream::basic_fstream(_DWORD *this, char *a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 31); + v3 = this + 31; std::ios_base::ios_base(this + 31); *((_BYTE *)this + 242) = 0; this[59] = 0; @@ -141996,15 +140977,15 @@ int __thiscall std::wfstream::basic_fstream(_DWORD *this, char *a2, int a3) *this = &unk_533A9C; this[31] = &unk_533AB0; this[1] = 0; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); this[2] = &unk_533B00; this[31] = &unk_533B14; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_5387A0; this[31] = off_5387C8; this[2] = off_5387B4; std::wfilebuf::basic_filebuf((int)(this + 3)); - std::wios::init(v3, (int)(this + 3)); + std::wios::init((int)v3, (int)(this + 3)); v5 = std::wfilebuf::open((int)(this + 3), a2, a3); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -142019,11 +141000,11 @@ int __thiscall std::wfstream::basic_fstream(_DWORD *this, char *a2, int a3) //----- (004C3D00) -------------------------------------------------------- int __thiscall std::wfstream::basic_fstream(_DWORD *this, wchar_t *a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 31); + v3 = this + 31; std::ios_base::ios_base(this + 31); *((_BYTE *)this + 242) = 0; this[59] = 0; @@ -142035,15 +141016,15 @@ int __thiscall std::wfstream::basic_fstream(_DWORD *this, wchar_t *a2, int a3) *this = &unk_533A9C; this[31] = &unk_533AB0; this[1] = 0; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); this[2] = &unk_533B00; this[31] = &unk_533B14; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_5387A0; this[31] = off_5387C8; this[2] = off_5387B4; std::wfilebuf::basic_filebuf((int)(this + 3)); - std::wios::init(v3, (int)(this + 3)); + std::wios::init((int)v3, (int)(this + 3)); v5 = std::wfilebuf::open((int)(this + 3), a2, a3); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -142058,11 +141039,11 @@ int __thiscall std::wfstream::basic_fstream(_DWORD *this, wchar_t *a2, int a3) //----- (004C3E70) -------------------------------------------------------- int __thiscall std::wfstream::basic_fstream(_DWORD *this, char **a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 31); + v3 = this + 31; std::ios_base::ios_base(this + 31); *((_BYTE *)this + 242) = 0; this[59] = 0; @@ -142074,15 +141055,15 @@ int __thiscall std::wfstream::basic_fstream(_DWORD *this, char **a2, int a3) *this = &unk_533A9C; this[31] = &unk_533AB0; this[1] = 0; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); this[2] = &unk_533B00; this[31] = &unk_533B14; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_5387A0; this[31] = off_5387C8; this[2] = off_5387B4; std::wfilebuf::basic_filebuf((int)(this + 3)); - std::wios::init(v3, (int)(this + 3)); + std::wios::init((int)v3, (int)(this + 3)); v5 = std::wfilebuf::open((int)(this + 3), *a2, a3); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -142140,24 +141121,24 @@ int __thiscall std::wfstream::basic_fstream(int *this, int *a2, _DWORD *a3) int result; // eax std::ios_base *v14; // [esp+4h] [ebp-34h] std::ios_base *v15; // [esp+18h] [ebp-20h] - int v16; // [esp+1Ch] [ebp-1Ch] + char *v16; // [esp+1Ch] [ebp-1Ch] v4 = a2[2]; *this = v4; *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[3]; this[1] = a3[1]; - v16 = (int)this + *(_DWORD *)(v4 - 12); + v16 = (char *)this + *(_DWORD *)(v4 - 12); v15 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v16, v15, v14); - std::wios::_M_cache_locale((_DWORD *)v16, v16 + 108); + std::ios_base::_M_move((int)v16, v15, v14); + std::wios::_M_cache_locale(v16, (int)(v16 + 108)); v5 = *((_DWORD *)v15 + 28); *((_DWORD *)v15 + 28) = 0; - *(_DWORD *)(v16 + 120) = 0; - *(_DWORD *)(v16 + 112) = v5; + *((_DWORD *)v16 + 30) = 0; + *((_DWORD *)v16 + 28) = v5; v6 = *((_BYTE *)v15 + 118); - *(_WORD *)(v16 + 116) = *((_WORD *)v15 + 58); + *((_WORD *)v16 + 58) = *((_WORD *)v15 + 58); v7 = a2[5]; - *(_BYTE *)(v16 + 118) = v6; + v16[118] = v6; v8 = a2[4]; a3[1] = 0; this[2] = v8; @@ -142401,7 +141382,7 @@ void __fastcall std::wfstream::~wfstream(int a1) // 539484: using guessed type int (*off_539484)(); //----- (004C4810) -------------------------------------------------------- -int __thiscall std::wfstream::~wfstream(_DWORD *this, int *a2) +int __thiscall std::wfstream::~wfstream(int *this, int *a2) { _DWORD *v3; // ecx int v4; // eax @@ -142420,19 +141401,19 @@ int __thiscall std::wfstream::~wfstream(_DWORD *this, int *a2) *(v3 - 1) = v5; std::wfilebuf::close((int)v3); std::__basic_file::~__basic_file(this + 13); - this[3] = &off_538A88; + this[3] = (int)&off_538A88; std::locale::~locale((_DWORD **)this + 10); v6 = a2[1]; *this = v6; - *(_DWORD *)((char *)this + *(_DWORD *)(v6 - 12)) = a2[6]; + *(int *)((char *)this + *(_DWORD *)(v6 - 12)) = a2[6]; this[2] = a2[7]; v7 = a2[4]; this[2] = v7; - *(_DWORD *)((char *)this + *(_DWORD *)(v7 - 12) + 8) = a2[5]; + *(int *)((char *)this + *(_DWORD *)(v7 - 12) + 8) = a2[5]; v8 = a2[2]; *this = v8; result = *(_DWORD *)(v8 - 12); - *(_DWORD *)((char *)this + result) = a2[3]; + *(int *)((char *)this + result) = a2[3]; this[1] = 0; return result; } @@ -142443,27 +141424,27 @@ int __thiscall std::wfstream::~wfstream(_DWORD *this, int *a2) //----- (004C48B0) -------------------------------------------------------- _DWORD *__thiscall std::wfstream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx int v7; // eax std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); v7 = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; @@ -143237,27 +142218,27 @@ _DWORD *__thiscall std::wistream::read(_DWORD *this, int a2, int a3) //----- (004C5F70) -------------------------------------------------------- int __thiscall std::wistream::swap(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx int result; // eax std::ios_base *v8; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v8); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v8); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); result = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; @@ -144253,9 +143234,9 @@ int __thiscall std::wistream::basic_istream(_DWORD *this, int *a2) //----- (004C7590) -------------------------------------------------------- BOOL __thiscall std::wistream::basic_istream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 2); + v2 = this + 2; std::ios_base::ios_base(this + 2); this[30] = 0; *((_WORD *)this + 62) = 0; @@ -144267,7 +143248,7 @@ BOOL __thiscall std::wistream::basic_istream(_DWORD *this, int a2) *this = &off_5387DC; this[2] = off_5387F0; this[1] = 0; - return std::wios::init(v2, a2); + return std::wios::init((int)v2, a2); } // 5387DC: using guessed type int (*off_5387DC)(); // 5387F0: using guessed type int (*off_5387F0[2])(); @@ -144300,7 +143281,7 @@ int __thiscall std::wistream::basic_istream(int *this, int *a2, _DWORD *a3) int v3; // eax int v4; // ebx int v5; // edx - int v6; // ebx + char *v6; // ebx std::ios_base *v7; // esi int v8; // eax int result; // eax @@ -144312,17 +143293,17 @@ int __thiscall std::wistream::basic_istream(int *this, int *a2, _DWORD *a3) *this = *a2; *(int *)((char *)this + v5) = v4; this[1] = a3[1]; - v6 = (int)this + *(_DWORD *)(v3 - 12); + v6 = (char *)this + *(_DWORD *)(v3 - 12); v7 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v6, v7, v10); - std::wios::_M_cache_locale((_DWORD *)v6, v6 + 108); + std::ios_base::_M_move((int)v6, v7, v10); + std::wios::_M_cache_locale(v6, (int)(v6 + 108)); v8 = *((_DWORD *)v7 + 28); *((_DWORD *)v7 + 28) = 0; - *(_DWORD *)(v6 + 112) = v8; - *(_WORD *)(v6 + 116) = *((_WORD *)v7 + 58); + *((_DWORD *)v6 + 28) = v8; + *((_WORD *)v6 + 58) = *((_WORD *)v7 + 58); result = *((unsigned __int8 *)v7 + 118); - *(_DWORD *)(v6 + 120) = 0; - *(_BYTE *)(v6 + 118) = result; + *((_DWORD *)v6 + 30) = 0; + v6[118] = result; a3[1] = 0; return result; } @@ -144363,12 +143344,12 @@ BOOL __thiscall std::wistream::basic_istream(int *this, int *a2) //----- (004C77C0) -------------------------------------------------------- void __fastcall std::wistream::~wistream(char *a1) { - _DWORD *v2; // ecx + char *v2; // ecx v2 = a1 + 8; - *(v2 - 2) = &off_5387DC; - *(v2 - 1) = 0; - *v2 = &off_539484; + *((_DWORD *)v2 - 2) = &off_5387DC; + *((_DWORD *)v2 - 1) = 0; + *(_DWORD *)v2 = &off_539484; std::ios_base::~ios_base((int)v2); operator delete(a1); } @@ -144406,27 +143387,27 @@ int __thiscall std::wistream::~wistream(int *this, int *a2) //----- (004C7830) -------------------------------------------------------- _DWORD *__thiscall std::wistream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx int v7; // eax std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); v7 = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; @@ -144594,7 +143575,7 @@ LABEL_9: int *__thiscall std::wostream::put(int *this, unsigned __int16 a2) { _DWORD *v3; // ecx - unsigned __int16 *v4; // eax + _WORD *v4; // eax unsigned __int16 v5; // si char *v6; // esi int v7; // ecx @@ -144605,7 +143586,7 @@ int *__thiscall std::wostream::put(int *this, unsigned __int16 a2) if ( (_BYTE)v9 ) { v3 = *(_DWORD **)((char *)this + *(_DWORD *)(*this - 12) + 120); - v4 = (unsigned __int16 *)v3[5]; + v4 = (_WORD *)v3[5]; if ( (unsigned int)v4 >= v3[6] ) { v5 = (*(int (__stdcall **)(_DWORD))(*v3 + 52))(a2); @@ -144639,28 +143620,28 @@ int *__thiscall std::wostream::put(int *this, unsigned __int16 a2) //----- (004C7EE0) -------------------------------------------------------- int __thiscall std::wostream::swap(_DWORD *this, _DWORD *a2) { - int v2; // ebx + char *v2; // ebx std::ios_base *v3; // esi int v4; // eax __int16 v5; // dx int result; // eax std::ios_base *v7; // [esp+4h] [ebp-18h] - v2 = (int)this + *(_DWORD *)(*this - 12); + v2 = (char *)this + *(_DWORD *)(*this - 12); v3 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v2, v3, v7); - std::wios::_M_cache_locale((_DWORD *)v2, v2 + 108); + std::ios_base::_M_swap((int)v2, v3, v7); + std::wios::_M_cache_locale(v2, (int)(v2 + 108)); std::wios::_M_cache_locale(v3, (int)v3 + 108); - v4 = *(_DWORD *)(v2 + 112); - *(_DWORD *)(v2 + 112) = *((_DWORD *)v3 + 28); + v4 = *((_DWORD *)v2 + 28); + *((_DWORD *)v2 + 28) = *((_DWORD *)v3 + 28); v5 = *((_WORD *)v3 + 58); *((_DWORD *)v3 + 28) = v4; - LOWORD(v4) = *(_WORD *)(v2 + 116); - *(_WORD *)(v2 + 116) = v5; + LOWORD(v4) = *((_WORD *)v2 + 58); + *((_WORD *)v2 + 58) = v5; LOBYTE(v5) = *((_BYTE *)v3 + 118); *((_WORD *)v3 + 58) = v4; - result = *(unsigned __int8 *)(v2 + 118); - *(_BYTE *)(v2 + 118) = v5; + result = (unsigned __int8)v2[118]; + v2[118] = v5; *((_BYTE *)v3 + 118) = result; return result; } @@ -145484,9 +144465,9 @@ int __thiscall std::wostream::basic_ostream(_DWORD *this, int *a2) //----- (004C9450) -------------------------------------------------------- BOOL __thiscall std::wostream::basic_ostream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 1); + v2 = this + 1; std::ios_base::ios_base(this + 1); this[29] = 0; *((_WORD *)this + 60) = 0; @@ -145497,7 +144478,7 @@ BOOL __thiscall std::wostream::basic_ostream(_DWORD *this, int a2) this[34] = 0; *this = &off_538804; this[1] = off_538818; - return std::wios::init(v2, a2); + return std::wios::init((int)v2, a2); } // 538804: using guessed type int (*off_538804)(); // 538818: using guessed type int (*off_538818[2])(); @@ -145549,8 +144530,8 @@ int __thiscall std::wostream::basic_ostream(int *this, int *a2, _DWORD *a3) { int v3; // edx int v4; // eax - _DWORD *v5; // ecx - _DWORD *v6; // ebx + int *v5; // ecx + int *v6; // ebx std::ios_base *v7; // esi int v8; // eax int result; // eax @@ -145581,7 +144562,7 @@ BOOL __thiscall std::wostream::basic_ostream(int *this, int *a2, int a3) { int v3; // edx int v4; // eax - _DWORD *v5; // ecx + int *v5; // ecx v3 = *a2; v4 = a2[1]; @@ -145624,11 +144605,11 @@ BOOL __thiscall std::wostream::basic_ostream(int *this, int *a2) //----- (004C96B0) -------------------------------------------------------- void __fastcall std::wostream::~wostream(char *a1) { - _DWORD *v2; // ecx + char *v2; // ecx v2 = a1 + 4; - *(v2 - 1) = &off_538804; - *v2 = &off_539484; + *((_DWORD *)v2 - 1) = &off_538804; + *(_DWORD *)v2 = &off_539484; std::ios_base::~ios_base((int)v2); operator delete(a1); } @@ -145664,27 +144645,27 @@ int __thiscall std::wostream::~wostream(int *this, int *a2) //----- (004C9720) -------------------------------------------------------- _DWORD *__thiscall std::wostream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx _DWORD *result; // eax std::ios_base *v8; // [esp+4h] [ebp-18h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v8); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v8); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); result = this; *((_BYTE *)v4 + 118) = v6; return result; @@ -145827,7 +144808,7 @@ unsigned int __userpurge std::random_device::_M_init_pretr1@( // 4C9A62: variable 'EndPtr' is possibly undefined //----- (004C9AF0) -------------------------------------------------------- -FILE *__userpurge std::random_device::_M_init@(FILE **a1@, const void **this, const std::string *a3) +FILE *__userpurge std::random_device::_M_init@(FILE **a1@, const char **this, const std::string *a3) { unsigned int v4; // kr00_4 unsigned int v5; // kr04_4 @@ -145839,7 +144820,7 @@ FILE *__userpurge std::random_device::_M_init@(FILE **a1@, const void char *Modea; // [esp+4h] [ebp-28h] char *Modeb; // [esp+4h] [ebp-28h] - if ( !std::string::compare(this, (std::string *)"default", Mode) ) + if ( !std::string::compare((const void **)this, (std::string *)"default", Mode) ) { v4 = __readeflags(); v18 = v4; @@ -145872,9 +144853,9 @@ LABEL_11: } else { - FileName = (const char *)*this; - if ( std::string::compare(this, (std::string *)"/dev/urandom", Modea) - && std::string::compare(this, (std::string *)"/dev/random", Modeb) ) + FileName = *this; + if ( std::string::compare((const void **)this, (std::string *)"/dev/urandom", Modea) + && std::string::compare((const void **)this, (std::string *)"/dev/random", Modeb) ) { LABEL_10: std::__throw_runtime_error((std::runtime_error *)"random_device::random_device(const std::string&)"); @@ -146061,7 +145042,7 @@ int __thiscall std::ifstream::open(char *this, char **a2, int a3) //----- (004C9F30) -------------------------------------------------------- int __thiscall std::ifstream::swap(_DWORD *this, _DWORD *a2) { - int v3; // edi + char *v3; // edi std::ios_base *v4; // esi int v5; // eax char v6; // dl @@ -146069,20 +145050,20 @@ int __thiscall std::ifstream::swap(_DWORD *this, _DWORD *a2) int v8; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v10); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v10); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; v8 = this[1]; *((_BYTE *)v4 + 117) = v7; this[1] = a2[1]; @@ -146158,11 +145139,11 @@ int __thiscall std::ifstream::basic_ifstream(_DWORD *this, int *a2) //----- (004CA140) -------------------------------------------------------- int __thiscall std::ifstream::basic_ifstream(char *this, char *a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 116); + v3 = this + 116; std::ios_base::ios_base((_DWORD *)this + 29); *(_DWORD *)this = &unk_533B28; *((_DWORD *)this + 57) = 0; @@ -146173,11 +145154,11 @@ int __thiscall std::ifstream::basic_ifstream(char *this, char *a2, int a3) *((_DWORD *)this + 62) = 0; *((_DWORD *)this + 29) = &unk_533B3C; *((_DWORD *)this + 1) = 0; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_538840; *((_DWORD *)this + 29) = off_538854; std::filebuf::basic_filebuf((int)(this + 8)); - std::ios::init(v3, (int)(this + 8)); + std::ios::init((int)v3, (int)(this + 8)); v5 = std::filebuf::open(this + 8, a2, a3 | 8); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -146191,11 +145172,11 @@ int __thiscall std::ifstream::basic_ifstream(char *this, char *a2, int a3) //----- (004CA280) -------------------------------------------------------- int __thiscall std::ifstream::basic_ifstream(char *this, wchar_t *a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 116); + v3 = this + 116; std::ios_base::ios_base((_DWORD *)this + 29); *(_DWORD *)this = &unk_533B28; *((_DWORD *)this + 57) = 0; @@ -146206,11 +145187,11 @@ int __thiscall std::ifstream::basic_ifstream(char *this, wchar_t *a2, int a3) *((_DWORD *)this + 62) = 0; *((_DWORD *)this + 29) = &unk_533B3C; *((_DWORD *)this + 1) = 0; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_538840; *((_DWORD *)this + 29) = off_538854; std::filebuf::basic_filebuf((int)(this + 8)); - std::ios::init(v3, (int)(this + 8)); + std::ios::init((int)v3, (int)(this + 8)); v5 = std::filebuf::open(this + 8, a2, a3 | 8); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -146224,11 +145205,11 @@ int __thiscall std::ifstream::basic_ifstream(char *this, wchar_t *a2, int a3) //----- (004CA3C0) -------------------------------------------------------- int __thiscall std::ifstream::basic_ifstream(char *this, char **a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 116); + v3 = this + 116; std::ios_base::ios_base((_DWORD *)this + 29); *(_DWORD *)this = &unk_533B28; *((_DWORD *)this + 57) = 0; @@ -146239,11 +145220,11 @@ int __thiscall std::ifstream::basic_ifstream(char *this, char **a2, int a3) *((_DWORD *)this + 62) = 0; *((_DWORD *)this + 29) = &unk_533B3C; *((_DWORD *)this + 1) = 0; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_538840; *((_DWORD *)this + 29) = off_538854; std::filebuf::basic_filebuf((int)(this + 8)); - std::ios::init(v3, (int)(this + 8)); + std::ios::init((int)v3, (int)(this + 8)); v5 = std::filebuf::open(this + 8, *a2, a3 | 8); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -146280,7 +145261,7 @@ BOOL __fastcall std::ifstream::basic_ifstream(int a1) // 538854: using guessed type int (*off_538854[2])(); //----- (004CA5E0) -------------------------------------------------------- -int __thiscall std::ifstream::basic_ifstream(_DWORD *this, int *a2, _DWORD *a3) +int __thiscall std::ifstream::basic_ifstream(int *this, int *a2, _DWORD *a3) { int v4; // eax int v5; // edx @@ -146290,30 +145271,30 @@ int __thiscall std::ifstream::basic_ifstream(_DWORD *this, int *a2, _DWORD *a3) int result; // eax std::ios_base *v10; // [esp+4h] [ebp-34h] std::ios_base *v11; // [esp+18h] [ebp-20h] - int v12; // [esp+1Ch] [ebp-1Ch] + char *v12; // [esp+1Ch] [ebp-1Ch] v4 = a2[1]; *this = v4; - *(_DWORD *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; + *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; this[1] = a3[1]; - v12 = (int)this + *(_DWORD *)(v4 - 12); + v12 = (char *)this + *(_DWORD *)(v4 - 12); v11 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v12, v11, v10); - std::ios::_M_cache_locale((_DWORD *)v12, v12 + 108); + std::ios_base::_M_move((int)v12, v11, v10); + std::ios::_M_cache_locale(v12, (int)(v12 + 108)); v5 = *((_DWORD *)v11 + 28); *((_DWORD *)v11 + 28) = 0; v6 = *((_WORD *)v11 + 58); - *(_DWORD *)(v12 + 120) = 0; - *(_DWORD *)(v12 + 112) = v5; + *((_DWORD *)v12 + 30) = 0; + *((_DWORD *)v12 + 28) = v5; v7 = a2[3]; - *(_WORD *)(v12 + 116) = v6; + *((_WORD *)v12 + 58) = v6; v8 = *a2; a3[1] = 0; *this = v8; - *(_DWORD *)((char *)this + *(_DWORD *)(v8 - 12)) = v7; + *(int *)((char *)this + *(_DWORD *)(v8 - 12)) = v7; std::filebuf::basic_filebuf((int)(this + 2), (int)(a3 + 2)); result = *(_DWORD *)(*this - 12); - *(_DWORD *)((char *)this + result + 120) = this + 2; + *(int *)((char *)this + result + 120) = (int)(this + 2); return result; } // 4CA61D: variable 'v10' is possibly undefined @@ -146411,12 +145392,12 @@ int __thiscall std::ifstream::basic_ifstream(char *this, int *a2, char **a3, int //----- (004CA980) -------------------------------------------------------- BOOL __thiscall std::ifstream::basic_ifstream(int *this, int *a2) { - int v3; // edi + int *v3; // edi int v4; // eax int v5; // eax int v6; // edx - v3 = (int)(this + 2); + v3 = this + 2; v4 = a2[1]; *this = v4; *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; @@ -146426,8 +145407,8 @@ BOOL __thiscall std::ifstream::basic_ifstream(int *this, int *a2) v6 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v5 - 12)) = v6; - std::filebuf::basic_filebuf(v3); - return std::ios::init((int)this + *(_DWORD *)(*this - 12), v3); + std::filebuf::basic_filebuf((int)v3); + return std::ios::init((int)this + *(_DWORD *)(*this - 12), (int)v3); } //----- (004CAA20) -------------------------------------------------------- @@ -146482,7 +145463,7 @@ void __fastcall std::ifstream::~ifstream(int a1) // 539474: using guessed type int (*off_539474)(); //----- (004CAB10) -------------------------------------------------------- -int __thiscall std::ifstream::~ifstream(_DWORD *this, int *a2) +int __thiscall std::ifstream::~ifstream(int *this, int *a2) { _DWORD *v3; // ecx int v4; // eax @@ -146496,12 +145477,12 @@ int __thiscall std::ifstream::~ifstream(_DWORD *this, int *a2) *v3 = &off_5386E0; std::filebuf::close((int)v3); std::__basic_file::~__basic_file(this + 12); - this[2] = &off_538A48; + this[2] = (int)&off_538A48; std::locale::~locale((_DWORD **)this + 9); v5 = a2[1]; *this = v5; result = *(_DWORD *)(v5 - 12); - *(_DWORD *)((char *)this + result) = a2[2]; + *(int *)((char *)this + result) = a2[2]; this[1] = 0; return result; } @@ -146512,7 +145493,7 @@ int __thiscall std::ifstream::~ifstream(_DWORD *this, int *a2) //----- (004CAB80) -------------------------------------------------------- _DWORD *__thiscall std::ifstream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax char v6; // dl @@ -146520,20 +145501,20 @@ _DWORD *__thiscall std::ifstream::operator=(_DWORD *this, _DWORD *a2) int v8; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v10); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v10); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; v8 = this[1]; *((_BYTE *)v4 + 117) = v7; this[1] = a2[1]; @@ -146594,27 +145575,27 @@ int __thiscall std::wifstream::open(int *this, char **a2, int a3) //----- (004CAD70) -------------------------------------------------------- int __thiscall std::wifstream::swap(_DWORD *this, _DWORD *a2) { - int v3; // edi + char *v3; // edi std::ios_base *v4; // esi int v5; // eax __int16 v6; // dx int v7; // eax std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); v7 = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; @@ -146692,11 +145673,11 @@ int __thiscall std::wifstream::basic_ifstream(_DWORD *this, int *a2) //----- (004CAF90) -------------------------------------------------------- int __thiscall std::wifstream::basic_ifstream(_DWORD *this, char *a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 30); + v3 = this + 30; std::ios_base::ios_base(this + 30); *((_BYTE *)this + 238) = 0; this[58] = 0; @@ -146708,11 +145689,11 @@ int __thiscall std::wifstream::basic_ifstream(_DWORD *this, char *a2, int a3) *this = &unk_533B50; this[30] = &unk_533B64; this[1] = 0; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_538868; this[30] = off_53887C; std::wfilebuf::basic_filebuf((int)(this + 2)); - std::wios::init(v3, (int)(this + 2)); + std::wios::init((int)v3, (int)(this + 2)); v5 = std::wfilebuf::open((int)(this + 2), a2, a3 | 8); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -146726,11 +145707,11 @@ int __thiscall std::wifstream::basic_ifstream(_DWORD *this, char *a2, int a3) //----- (004CB0D0) -------------------------------------------------------- int __thiscall std::wifstream::basic_ifstream(_DWORD *this, wchar_t *a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 30); + v3 = this + 30; std::ios_base::ios_base(this + 30); *((_BYTE *)this + 238) = 0; this[58] = 0; @@ -146742,11 +145723,11 @@ int __thiscall std::wifstream::basic_ifstream(_DWORD *this, wchar_t *a2, int a3) *this = &unk_533B50; this[30] = &unk_533B64; this[1] = 0; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_538868; this[30] = off_53887C; std::wfilebuf::basic_filebuf((int)(this + 2)); - std::wios::init(v3, (int)(this + 2)); + std::wios::init((int)v3, (int)(this + 2)); v5 = std::wfilebuf::open((int)(this + 2), a2, a3 | 8); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -146760,11 +145741,11 @@ int __thiscall std::wifstream::basic_ifstream(_DWORD *this, wchar_t *a2, int a3) //----- (004CB210) -------------------------------------------------------- int __thiscall std::wifstream::basic_ifstream(_DWORD *this, char **a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 30); + v3 = this + 30; std::ios_base::ios_base(this + 30); *((_BYTE *)this + 238) = 0; this[58] = 0; @@ -146776,11 +145757,11 @@ int __thiscall std::wifstream::basic_ifstream(_DWORD *this, char **a2, int a3) *this = &unk_533B50; this[30] = &unk_533B64; this[1] = 0; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_538868; this[30] = off_53887C; std::wfilebuf::basic_filebuf((int)(this + 2)); - std::wios::init(v3, (int)(this + 2)); + std::wios::init((int)v3, (int)(this + 2)); v5 = std::wfilebuf::open((int)(this + 2), *a2, a3 | 8); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -146818,7 +145799,7 @@ BOOL __fastcall std::wifstream::basic_ifstream(int a1) // 53887C: using guessed type int (*off_53887C[2])(); //----- (004CB440) -------------------------------------------------------- -int __thiscall std::wifstream::basic_ifstream(_DWORD *this, int *a2, _DWORD *a3) +int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, _DWORD *a3) { int v4; // eax int v5; // edx @@ -146828,31 +145809,31 @@ int __thiscall std::wifstream::basic_ifstream(_DWORD *this, int *a2, _DWORD *a3) int result; // eax std::ios_base *v10; // [esp+4h] [ebp-34h] std::ios_base *v11; // [esp+18h] [ebp-20h] - int v12; // [esp+1Ch] [ebp-1Ch] + char *v12; // [esp+1Ch] [ebp-1Ch] v4 = a2[1]; *this = v4; - *(_DWORD *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; + *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; this[1] = a3[1]; - v12 = (int)this + *(_DWORD *)(v4 - 12); + v12 = (char *)this + *(_DWORD *)(v4 - 12); v11 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v12, v11, v10); - std::wios::_M_cache_locale((_DWORD *)v12, v12 + 108); + std::ios_base::_M_move((int)v12, v11, v10); + std::wios::_M_cache_locale(v12, (int)(v12 + 108)); v5 = *((_DWORD *)v11 + 28); *((_DWORD *)v11 + 28) = 0; - *(_DWORD *)(v12 + 120) = 0; - *(_DWORD *)(v12 + 112) = v5; + *((_DWORD *)v12 + 30) = 0; + *((_DWORD *)v12 + 28) = v5; v6 = *((_BYTE *)v11 + 118); - *(_WORD *)(v12 + 116) = *((_WORD *)v11 + 58); + *((_WORD *)v12 + 58) = *((_WORD *)v11 + 58); v7 = a2[3]; - *(_BYTE *)(v12 + 118) = v6; + v12[118] = v6; v8 = *a2; a3[1] = 0; *this = v8; - *(_DWORD *)((char *)this + *(_DWORD *)(v8 - 12)) = v7; + *(int *)((char *)this + *(_DWORD *)(v8 - 12)) = v7; std::wfilebuf::basic_filebuf((int)(this + 2), (int)(a3 + 2)); result = *(_DWORD *)(*this - 12); - *(_DWORD *)((char *)this + result + 120) = this + 2; + *(int *)((char *)this + result + 120) = (int)(this + 2); return result; } // 4CB47D: variable 'v10' is possibly undefined @@ -146860,14 +145841,14 @@ int __thiscall std::wifstream::basic_ifstream(_DWORD *this, int *a2, _DWORD *a3) //----- (004CB520) -------------------------------------------------------- int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, char *a3, int a4) { - int v5; // edi + int *v5; // edi int v6; // eax int v7; // eax int v8; // edx char *v9; // eax _DWORD *v10; // ecx - v5 = (int)(this + 2); + v5 = this + 2; v6 = a2[1]; *this = v6; *(int *)((char *)this + *(_DWORD *)(v6 - 12)) = a2[2]; @@ -146877,9 +145858,9 @@ int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, char *a3, int v8 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v7 - 12)) = v8; - std::wfilebuf::basic_filebuf(v5); - std::wios::init((int)this + *(_DWORD *)(*this - 12), v5); - v9 = std::wfilebuf::open(v5, a3, a4 | 8); + std::wfilebuf::basic_filebuf((int)v5); + std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v5); + v9 = std::wfilebuf::open((int)v5, a3, a4 | 8); v10 = (int *)((char *)this + *(_DWORD *)(*this - 12)); if ( v9 ) return std::wios::clear(v10, 0); @@ -146890,14 +145871,14 @@ int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, char *a3, int //----- (004CB610) -------------------------------------------------------- int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, wchar_t *a3, int a4) { - int v5; // edi + int *v5; // edi int v6; // eax int v7; // eax int v8; // edx char *v9; // eax _DWORD *v10; // ecx - v5 = (int)(this + 2); + v5 = this + 2; v6 = a2[1]; *this = v6; *(int *)((char *)this + *(_DWORD *)(v6 - 12)) = a2[2]; @@ -146907,9 +145888,9 @@ int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, wchar_t *a3, i v8 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v7 - 12)) = v8; - std::wfilebuf::basic_filebuf(v5); - std::wios::init((int)this + *(_DWORD *)(*this - 12), v5); - v9 = std::wfilebuf::open(v5, a3, a4 | 8); + std::wfilebuf::basic_filebuf((int)v5); + std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v5); + v9 = std::wfilebuf::open((int)v5, a3, a4 | 8); v10 = (int *)((char *)this + *(_DWORD *)(*this - 12)); if ( v9 ) return std::wios::clear(v10, 0); @@ -146920,14 +145901,14 @@ int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, wchar_t *a3, i //----- (004CB700) -------------------------------------------------------- int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, char **a3, int a4) { - int v5; // edi + int *v5; // edi int v6; // eax int v7; // eax int v8; // edx char *v9; // eax _DWORD *v10; // ecx - v5 = (int)(this + 2); + v5 = this + 2; v6 = a2[1]; *this = v6; *(int *)((char *)this + *(_DWORD *)(v6 - 12)) = a2[2]; @@ -146937,9 +145918,9 @@ int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, char **a3, int v8 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v7 - 12)) = v8; - std::wfilebuf::basic_filebuf(v5); - std::wios::init((int)this + *(_DWORD *)(*this - 12), v5); - v9 = std::wfilebuf::open(v5, *a3, a4 | 8); + std::wfilebuf::basic_filebuf((int)v5); + std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v5); + v9 = std::wfilebuf::open((int)v5, *a3, a4 | 8); v10 = (int *)((char *)this + *(_DWORD *)(*this - 12)); if ( v9 ) return std::wios::clear(v10, 0); @@ -146950,12 +145931,12 @@ int __thiscall std::wifstream::basic_ifstream(int *this, int *a2, char **a3, int //----- (004CB7F0) -------------------------------------------------------- BOOL __thiscall std::wifstream::basic_ifstream(int *this, int *a2) { - int v3; // edi + int *v3; // edi int v4; // eax int v5; // eax int v6; // edx - v3 = (int)(this + 2); + v3 = this + 2; v4 = a2[1]; *this = v4; *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; @@ -146965,8 +145946,8 @@ BOOL __thiscall std::wifstream::basic_ifstream(int *this, int *a2) v6 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v5 - 12)) = v6; - std::wfilebuf::basic_filebuf(v3); - return std::wios::init((int)this + *(_DWORD *)(*this - 12), v3); + std::wfilebuf::basic_filebuf((int)v3); + return std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v3); } //----- (004CB890) -------------------------------------------------------- @@ -147021,7 +146002,7 @@ void __fastcall std::wifstream::~wifstream(int a1) // 539484: using guessed type int (*off_539484)(); //----- (004CB980) -------------------------------------------------------- -int __thiscall std::wifstream::~wifstream(_DWORD *this, int *a2) +int __thiscall std::wifstream::~wifstream(int *this, int *a2) { _DWORD *v3; // ecx int v4; // eax @@ -147035,12 +146016,12 @@ int __thiscall std::wifstream::~wifstream(_DWORD *this, int *a2) *v3 = &off_538720; std::wfilebuf::close((int)v3); std::__basic_file::~__basic_file(this + 12); - this[2] = &off_538A88; + this[2] = (int)&off_538A88; std::locale::~locale((_DWORD **)this + 9); v5 = a2[1]; *this = v5; result = *(_DWORD *)(v5 - 12); - *(_DWORD *)((char *)this + result) = a2[2]; + *(int *)((char *)this + result) = a2[2]; this[1] = 0; return result; } @@ -147051,27 +146032,27 @@ int __thiscall std::wifstream::~wifstream(_DWORD *this, int *a2) //----- (004CB9F0) -------------------------------------------------------- _DWORD *__thiscall std::wifstream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx int v7; // eax std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); v7 = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; @@ -147084,27 +146065,27 @@ _DWORD *__thiscall std::wifstream::operator=(_DWORD *this, _DWORD *a2) //----- (004CBA90) -------------------------------------------------------- int __thiscall std::wiostream::swap(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx int result; // eax std::ios_base *v8; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v8); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v8); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); result = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; @@ -147164,10 +146145,10 @@ int __thiscall std::wiostream::basic_iostream(_DWORD *this, int *a2) //----- (004CBC20) -------------------------------------------------------- BOOL __thiscall std::wiostream::basic_iostream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi BOOL result; // eax - v2 = (int)(this + 3); + v2 = this + 3; std::ios_base::ios_base(this + 3); this[31] = 0; *((_WORD *)this + 64) = 0; @@ -147179,10 +146160,10 @@ BOOL __thiscall std::wiostream::basic_iostream(_DWORD *this, int a2) *this = &unk_533B78; this[3] = &unk_533B8C; this[1] = 0; - std::wios::init(v2, a2); + std::wios::init((int)v2, a2); this[2] = &unk_533BA0; this[3] = &unk_533BB4; - result = std::wios::init(v2, a2); + result = std::wios::init((int)v2, a2); *this = &off_538890; this[3] = off_5388B8; this[2] = off_5388A4; @@ -147228,7 +146209,7 @@ int __thiscall std::wiostream::basic_iostream(int *this, int *a2, _DWORD *a3) { int v4; // eax int v5; // edi - int v6; // edi + char *v6; // edi std::ios_base *v7; // ebp int v8; // eax int v9; // eax @@ -147243,16 +146224,16 @@ int __thiscall std::wiostream::basic_iostream(int *this, int *a2, _DWORD *a3) *this = v4; *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = v5; this[1] = a3[1]; - v6 = (int)this + *(_DWORD *)(v4 - 12); + v6 = (char *)this + *(_DWORD *)(v4 - 12); v7 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v6, v7, v14); - std::wios::_M_cache_locale((_DWORD *)v6, v6 + 108); + std::ios_base::_M_move((int)v6, v7, v14); + std::wios::_M_cache_locale(v6, (int)(v6 + 108)); v8 = *((_DWORD *)v7 + 28); - *(_DWORD *)(v6 + 120) = 0; + *((_DWORD *)v6 + 30) = 0; *((_DWORD *)v7 + 28) = 0; - *(_DWORD *)(v6 + 112) = v8; - *(_WORD *)(v6 + 116) = *((_WORD *)v7 + 58); - *(_BYTE *)(v6 + 118) = *((_BYTE *)v7 + 118); + *((_DWORD *)v6 + 28) = v8; + *((_WORD *)v6 + 58) = *((_WORD *)v7 + 58); + v6[118] = *((_BYTE *)v7 + 118); v9 = a2[3]; a3[1] = 0; v10 = a2[4]; @@ -147329,13 +146310,13 @@ int __thiscall std::wiostream::basic_iostream(int *this, int *a2) //----- (004CBFB0) -------------------------------------------------------- void __fastcall std::wiostream::~basic_iostream(char *a1) { - _DWORD *v2; // ecx + char *v2; // ecx v2 = a1 + 12; - *(v2 - 1) = &unk_533BA0; - *(v2 - 3) = &unk_533B78; - *(v2 - 2) = 0; - *v2 = &off_539484; + *((_DWORD *)v2 - 1) = &unk_533BA0; + *((_DWORD *)v2 - 3) = &unk_533B78; + *((_DWORD *)v2 - 2) = 0; + *(_DWORD *)v2 = &off_539484; std::ios_base::~ios_base((int)v2); operator delete(a1); } @@ -147381,27 +146362,27 @@ int __thiscall std::wiostream::~basic_iostream(int *this, int *a2) //----- (004CC070) -------------------------------------------------------- _DWORD *__thiscall std::wiostream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx int v7; // eax std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); v7 = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; @@ -147455,27 +146436,27 @@ int __thiscall std::ofstream::open(char *this, char **a2, int a3) //----- (004CC250) -------------------------------------------------------- int __thiscall std::ofstream::swap(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax char v6; // dl char v7; // dl std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; *((_BYTE *)v4 + 117) = v7; return std::filebuf::swap((int)(this + 1), (int)(a2 + 1)); } @@ -147544,11 +146525,11 @@ int __thiscall std::ofstream::basic_ofstream(_DWORD *this, int *a2) //----- (004CC440) -------------------------------------------------------- int __thiscall std::ofstream::basic_ofstream(char *this, char *a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 112); + v3 = this + 112; std::ios_base::ios_base((_DWORD *)this + 28); *(_DWORD *)this = &unk_533BC8; *((_DWORD *)this + 56) = 0; @@ -147558,11 +146539,11 @@ int __thiscall std::ofstream::basic_ofstream(char *this, char *a2, int a3) *((_DWORD *)this + 60) = 0; *((_DWORD *)this + 61) = 0; *((_DWORD *)this + 28) = &unk_533BDC; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_5388CC; *((_DWORD *)this + 28) = off_5388E0; std::filebuf::basic_filebuf((int)(this + 4)); - std::ios::init(v3, (int)(this + 4)); + std::ios::init((int)v3, (int)(this + 4)); v5 = std::filebuf::open(this + 4, a2, a3 | 0x10); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -147576,11 +146557,11 @@ int __thiscall std::ofstream::basic_ofstream(char *this, char *a2, int a3) //----- (004CC560) -------------------------------------------------------- int __thiscall std::ofstream::basic_ofstream(char *this, wchar_t *a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 112); + v3 = this + 112; std::ios_base::ios_base((_DWORD *)this + 28); *(_DWORD *)this = &unk_533BC8; *((_DWORD *)this + 56) = 0; @@ -147590,11 +146571,11 @@ int __thiscall std::ofstream::basic_ofstream(char *this, wchar_t *a2, int a3) *((_DWORD *)this + 60) = 0; *((_DWORD *)this + 61) = 0; *((_DWORD *)this + 28) = &unk_533BDC; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_5388CC; *((_DWORD *)this + 28) = off_5388E0; std::filebuf::basic_filebuf((int)(this + 4)); - std::ios::init(v3, (int)(this + 4)); + std::ios::init((int)v3, (int)(this + 4)); v5 = std::filebuf::open(this + 4, a2, a3 | 0x10); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -147608,11 +146589,11 @@ int __thiscall std::ofstream::basic_ofstream(char *this, wchar_t *a2, int a3) //----- (004CC680) -------------------------------------------------------- int __thiscall std::ofstream::basic_ofstream(char *this, char **a2, int a3) { - int v3; // esi + char *v3; // esi char *v5; // eax char *v6; // ecx - v3 = (int)(this + 112); + v3 = this + 112; std::ios_base::ios_base((_DWORD *)this + 28); *(_DWORD *)this = &unk_533BC8; *((_DWORD *)this + 56) = 0; @@ -147622,11 +146603,11 @@ int __thiscall std::ofstream::basic_ofstream(char *this, char **a2, int a3) *((_DWORD *)this + 60) = 0; *((_DWORD *)this + 61) = 0; *((_DWORD *)this + 28) = &unk_533BDC; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_5388CC; *((_DWORD *)this + 28) = off_5388E0; std::filebuf::basic_filebuf((int)(this + 4)); - std::ios::init(v3, (int)(this + 4)); + std::ios::init((int)v3, (int)(this + 4)); v5 = std::filebuf::open(this + 4, *a2, a3 | 0x10); v6 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; if ( v5 ) @@ -147665,7 +146646,7 @@ BOOL __fastcall std::ofstream::basic_ofstream(int a1) int __thiscall std::ofstream::basic_ofstream(int *this, int *a2, _DWORD *a3) { int v4; // eax - int v5; // esi + char *v5; // esi int v6; // edx __int16 v7; // ax int v8; // edx @@ -147676,17 +146657,17 @@ int __thiscall std::ofstream::basic_ofstream(int *this, int *a2, _DWORD *a3) v4 = a2[1]; *this = v4; - v5 = (int)this + *(_DWORD *)(v4 - 12); + v5 = (char *)this + *(_DWORD *)(v4 - 12); *(_DWORD *)v5 = a2[2]; v12 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v5, v12, v11); - std::ios::_M_cache_locale((_DWORD *)v5, v5 + 108); - *(_DWORD *)(v5 + 120) = 0; + std::ios_base::_M_move((int)v5, v12, v11); + std::ios::_M_cache_locale(v5, (int)(v5 + 108)); + *((_DWORD *)v5 + 30) = 0; v6 = *((_DWORD *)v12 + 28); *((_DWORD *)v12 + 28) = 0; v7 = *((_WORD *)v12 + 58); - *(_DWORD *)(v5 + 112) = v6; - *(_WORD *)(v5 + 116) = v7; + *((_DWORD *)v5 + 28) = v6; + *((_WORD *)v5 + 58) = v7; v8 = a2[3]; v9 = *a2; *this = *a2; @@ -147794,13 +146775,13 @@ int __thiscall std::ofstream::basic_ofstream(char *this, int *a2, char **a3, int //----- (004CCBE0) -------------------------------------------------------- BOOL __thiscall std::ofstream::basic_ofstream(int *this, int *a2) { - int v3; // edi + int *v3; // edi int v4; // eax _DWORD *v5; // ecx int v6; // eax int v7; // edx - v3 = (int)(this + 1); + v3 = this + 1; v4 = a2[1]; *this = v4; v5 = (int *)((char *)this + *(_DWORD *)(v4 - 12)); @@ -147810,8 +146791,8 @@ BOOL __thiscall std::ofstream::basic_ofstream(int *this, int *a2) v7 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v6 - 12)) = v7; - std::filebuf::basic_filebuf(v3); - return std::ios::init((int)this + *(_DWORD *)(*this - 12), v3); + std::filebuf::basic_filebuf((int)v3); + return std::ios::init((int)this + *(_DWORD *)(*this - 12), (int)v3); } //----- (004CCC70) -------------------------------------------------------- @@ -147864,7 +146845,7 @@ void __fastcall std::ofstream::~ofstream(int a1) // 539474: using guessed type int (*off_539474)(); //----- (004CCD50) -------------------------------------------------------- -int __thiscall std::ofstream::~ofstream(_DWORD *this, int *a2) +int __thiscall std::ofstream::~ofstream(int *this, int *a2) { _DWORD *v3; // ecx int v4; // eax @@ -147878,12 +146859,12 @@ int __thiscall std::ofstream::~ofstream(_DWORD *this, int *a2) *v3 = &off_5386E0; std::filebuf::close((int)v3); std::__basic_file::~__basic_file(this + 11); - this[1] = &off_538A48; + this[1] = (int)&off_538A48; std::locale::~locale((_DWORD **)this + 8); v5 = a2[1]; *this = v5; result = *(_DWORD *)(v5 - 12); - *(_DWORD *)((char *)this + result) = a2[2]; + *(int *)((char *)this + result) = a2[2]; return result; } // 4B81C0: using guessed type int __fastcall std::__basic_file::~__basic_file(_DWORD); @@ -147893,27 +146874,27 @@ int __thiscall std::ofstream::~ofstream(_DWORD *this, int *a2) //----- (004CCDC0) -------------------------------------------------------- _DWORD *__thiscall std::ofstream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax char v6; // dl char v7; // dl std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; *((_BYTE *)v4 + 117) = v7; std::filebuf::operator=((int)(this + 1), (int)(a2 + 1)); return this; @@ -147971,26 +146952,26 @@ int __thiscall std::wofstream::open(int *this, char **a2, int a3) //----- (004CCFA0) -------------------------------------------------------- int __thiscall std::wofstream::swap(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx std::ios_base *v8; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v8); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v8); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); *((_BYTE *)v4 + 118) = v6; return std::wfilebuf::swap((int)(this + 1), (int)(a2 + 1)); } @@ -148061,11 +147042,11 @@ int __thiscall std::wofstream::basic_ofstream(_DWORD *this, int *a2) //----- (004CD1A0) -------------------------------------------------------- int __thiscall std::wofstream::basic_ofstream(_DWORD *this, char *a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 29); + v3 = this + 29; std::ios_base::ios_base(this + 29); *((_BYTE *)this + 234) = 0; this[57] = 0; @@ -148076,11 +147057,11 @@ int __thiscall std::wofstream::basic_ofstream(_DWORD *this, char *a2, int a3) this[62] = 0; *this = &unk_533BF0; this[29] = &unk_533C04; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_5388F4; this[29] = off_538908; std::wfilebuf::basic_filebuf((int)(this + 1)); - std::wios::init(v3, (int)(this + 1)); + std::wios::init((int)v3, (int)(this + 1)); v5 = std::wfilebuf::open((int)(this + 1), a2, a3 | 0x10); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -148094,11 +147075,11 @@ int __thiscall std::wofstream::basic_ofstream(_DWORD *this, char *a2, int a3) //----- (004CD2D0) -------------------------------------------------------- int __thiscall std::wofstream::basic_ofstream(_DWORD *this, wchar_t *a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 29); + v3 = this + 29; std::ios_base::ios_base(this + 29); *((_BYTE *)this + 234) = 0; this[57] = 0; @@ -148109,11 +147090,11 @@ int __thiscall std::wofstream::basic_ofstream(_DWORD *this, wchar_t *a2, int a3) this[62] = 0; *this = &unk_533BF0; this[29] = &unk_533C04; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_5388F4; this[29] = off_538908; std::wfilebuf::basic_filebuf((int)(this + 1)); - std::wios::init(v3, (int)(this + 1)); + std::wios::init((int)v3, (int)(this + 1)); v5 = std::wfilebuf::open((int)(this + 1), a2, a3 | 0x10); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -148127,11 +147108,11 @@ int __thiscall std::wofstream::basic_ofstream(_DWORD *this, wchar_t *a2, int a3) //----- (004CD400) -------------------------------------------------------- int __thiscall std::wofstream::basic_ofstream(_DWORD *this, char **a2, int a3) { - int v3; // esi + _DWORD *v3; // esi char *v5; // eax _DWORD *v6; // ecx - v3 = (int)(this + 29); + v3 = this + 29; std::ios_base::ios_base(this + 29); *((_BYTE *)this + 234) = 0; this[57] = 0; @@ -148142,11 +147123,11 @@ int __thiscall std::wofstream::basic_ofstream(_DWORD *this, char **a2, int a3) this[62] = 0; *this = &unk_533BF0; this[29] = &unk_533C04; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *this = &off_5388F4; this[29] = off_538908; std::wfilebuf::basic_filebuf((int)(this + 1)); - std::wios::init(v3, (int)(this + 1)); + std::wios::init((int)v3, (int)(this + 1)); v5 = std::wfilebuf::open((int)(this + 1), *a2, a3 | 0x10); v6 = (_DWORD *)((char *)this + *(_DWORD *)(*this - 12)); if ( v5 ) @@ -148186,7 +147167,7 @@ BOOL __fastcall std::wofstream::basic_ofstream(int a1) int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, _DWORD *a3) { int v4; // eax - int v5; // esi + char *v5; // esi int v6; // edx char v7; // al int v8; // edx @@ -148197,18 +147178,18 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, _DWORD *a3) v4 = a2[1]; *this = v4; - v5 = (int)this + *(_DWORD *)(v4 - 12); + v5 = (char *)this + *(_DWORD *)(v4 - 12); *(_DWORD *)v5 = a2[2]; v12 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v5, v12, v11); - std::wios::_M_cache_locale((_DWORD *)v5, v5 + 108); - *(_DWORD *)(v5 + 120) = 0; + std::ios_base::_M_move((int)v5, v12, v11); + std::wios::_M_cache_locale(v5, (int)(v5 + 108)); + *((_DWORD *)v5 + 30) = 0; v6 = *((_DWORD *)v12 + 28); *((_DWORD *)v12 + 28) = 0; - *(_DWORD *)(v5 + 112) = v6; + *((_DWORD *)v5 + 28) = v6; v7 = *((_BYTE *)v12 + 118); - *(_WORD *)(v5 + 116) = *((_WORD *)v12 + 58); - *(_BYTE *)(v5 + 118) = v7; + *((_WORD *)v5 + 58) = *((_WORD *)v12 + 58); + v5[118] = v7; v8 = a2[3]; v9 = *a2; *this = *a2; @@ -148223,7 +147204,7 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, _DWORD *a3) //----- (004CD6E0) -------------------------------------------------------- int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char *a3, int a4) { - int v5; // edi + int *v5; // edi int v6; // eax _DWORD *v7; // ecx int v8; // eax @@ -148231,7 +147212,7 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char *a3, int char *v10; // eax _DWORD *v11; // ecx - v5 = (int)(this + 1); + v5 = this + 1; v6 = a2[1]; *this = v6; v7 = (int *)((char *)this + *(_DWORD *)(v6 - 12)); @@ -148241,9 +147222,9 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char *a3, int v9 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v8 - 12)) = v9; - std::wfilebuf::basic_filebuf(v5); - std::wios::init((int)this + *(_DWORD *)(*this - 12), v5); - v10 = std::wfilebuf::open(v5, a3, a4 | 0x10); + std::wfilebuf::basic_filebuf((int)v5); + std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v5); + v10 = std::wfilebuf::open((int)v5, a3, a4 | 0x10); v11 = (int *)((char *)this + *(_DWORD *)(*this - 12)); if ( v10 ) return std::wios::clear(v11, 0); @@ -148254,7 +147235,7 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char *a3, int //----- (004CD7C0) -------------------------------------------------------- int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, wchar_t *a3, int a4) { - int v5; // edi + int *v5; // edi int v6; // eax _DWORD *v7; // ecx int v8; // eax @@ -148262,7 +147243,7 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, wchar_t *a3, i char *v10; // eax _DWORD *v11; // ecx - v5 = (int)(this + 1); + v5 = this + 1; v6 = a2[1]; *this = v6; v7 = (int *)((char *)this + *(_DWORD *)(v6 - 12)); @@ -148272,9 +147253,9 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, wchar_t *a3, i v9 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v8 - 12)) = v9; - std::wfilebuf::basic_filebuf(v5); - std::wios::init((int)this + *(_DWORD *)(*this - 12), v5); - v10 = std::wfilebuf::open(v5, a3, a4 | 0x10); + std::wfilebuf::basic_filebuf((int)v5); + std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v5); + v10 = std::wfilebuf::open((int)v5, a3, a4 | 0x10); v11 = (int *)((char *)this + *(_DWORD *)(*this - 12)); if ( v10 ) return std::wios::clear(v11, 0); @@ -148285,7 +147266,7 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, wchar_t *a3, i //----- (004CD8A0) -------------------------------------------------------- int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char **a3, int a4) { - int v5; // edi + int *v5; // edi int v6; // eax _DWORD *v7; // ecx int v8; // eax @@ -148293,7 +147274,7 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char **a3, int char *v10; // eax _DWORD *v11; // ecx - v5 = (int)(this + 1); + v5 = this + 1; v6 = a2[1]; *this = v6; v7 = (int *)((char *)this + *(_DWORD *)(v6 - 12)); @@ -148303,9 +147284,9 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char **a3, int v9 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v8 - 12)) = v9; - std::wfilebuf::basic_filebuf(v5); - std::wios::init((int)this + *(_DWORD *)(*this - 12), v5); - v10 = std::wfilebuf::open(v5, *a3, a4 | 0x10); + std::wfilebuf::basic_filebuf((int)v5); + std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v5); + v10 = std::wfilebuf::open((int)v5, *a3, a4 | 0x10); v11 = (int *)((char *)this + *(_DWORD *)(*this - 12)); if ( v10 ) return std::wios::clear(v11, 0); @@ -148316,13 +147297,13 @@ int __thiscall std::wofstream::basic_ofstream(int *this, int *a2, char **a3, int //----- (004CD980) -------------------------------------------------------- BOOL __thiscall std::wofstream::basic_ofstream(int *this, int *a2) { - int v3; // edi + int *v3; // edi int v4; // eax _DWORD *v5; // ecx int v6; // eax int v7; // edx - v3 = (int)(this + 1); + v3 = this + 1; v4 = a2[1]; *this = v4; v5 = (int *)((char *)this + *(_DWORD *)(v4 - 12)); @@ -148332,8 +147313,8 @@ BOOL __thiscall std::wofstream::basic_ofstream(int *this, int *a2) v7 = a2[3]; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v6 - 12)) = v7; - std::wfilebuf::basic_filebuf(v3); - return std::wios::init((int)this + *(_DWORD *)(*this - 12), v3); + std::wfilebuf::basic_filebuf((int)v3); + return std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v3); } //----- (004CDA10) -------------------------------------------------------- @@ -148386,7 +147367,7 @@ void __fastcall std::wofstream::~wofstream(int a1) // 539484: using guessed type int (*off_539484)(); //----- (004CDAF0) -------------------------------------------------------- -int __thiscall std::wofstream::~wofstream(_DWORD *this, int *a2) +int __thiscall std::wofstream::~wofstream(int *this, int *a2) { _DWORD *v3; // ecx int v4; // eax @@ -148400,12 +147381,12 @@ int __thiscall std::wofstream::~wofstream(_DWORD *this, int *a2) *v3 = &off_538720; std::wfilebuf::close((int)v3); std::__basic_file::~__basic_file(this + 11); - this[1] = &off_538A88; + this[1] = (int)&off_538A88; std::locale::~locale((_DWORD **)this + 8); v5 = a2[1]; *this = v5; result = *(_DWORD *)(v5 - 12); - *(_DWORD *)((char *)this + result) = a2[2]; + *(int *)((char *)this + result) = a2[2]; return result; } // 4B81C0: using guessed type int __fastcall std::__basic_file::~__basic_file(_DWORD); @@ -148415,26 +147396,26 @@ int __thiscall std::wofstream::~wofstream(_DWORD *this, int *a2) //----- (004CDB60) -------------------------------------------------------- _DWORD *__thiscall std::wofstream::operator=(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx std::ios_base *v8; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v8); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v8); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); *((_BYTE *)v4 + 118) = v6; std::wfilebuf::operator=((int)(this + 1), (int)(a2 + 1)); return this; @@ -149524,11 +148505,11 @@ int __fastcall std::streambuf::sgetn(int a1) //----- (004CF0A0) -------------------------------------------------------- int __thiscall std::streambuf::sputc(_DWORD *this, unsigned __int8 a2) { - unsigned __int8 *v2; // eax + _BYTE *v2; // eax int v3; // ebx int (__stdcall *v5)(int); // eax - v2 = (unsigned __int8 *)this[5]; + v2 = (_BYTE *)this[5]; v3 = a2; if ( this[6] > (unsigned int)v2 ) { @@ -150035,11 +149016,11 @@ int __fastcall std::streambuf::basic_streambuf(_DWORD *a1) //----- (004CF760) -------------------------------------------------------- void __fastcall std::streambuf::~streambuf(char *a1) { - _DWORD **v2; // ecx + char *v2; // ecx - v2 = (_DWORD **)(a1 + 28); - *(v2 - 7) = &off_538A48; - std::locale::~locale(v2); + v2 = a1 + 28; + *((_DWORD *)v2 - 7) = &off_538A48; + std::locale::~locale((_DWORD **)v2); operator delete(a1); } // 538A48: using guessed type int (*off_538A48)(); @@ -150800,11 +149781,11 @@ int __fastcall std::wstreambuf::basic_streambuf(_DWORD *a1) //----- (004D0160) -------------------------------------------------------- void __fastcall std::wstreambuf::~wstreambuf(char *a1) { - _DWORD **v2; // ecx + char *v2; // ecx - v2 = (_DWORD **)(a1 + 28); - *(v2 - 7) = &off_538A88; - std::locale::~locale(v2); + v2 = a1 + 28; + *((_DWORD *)v2 - 7) = &off_538A88; + std::locale::~locale((_DWORD **)v2); operator delete(a1); } // 538A88: using guessed type int (*off_538A88)(); @@ -154953,7 +153934,7 @@ void (__cdecl ***std::_V2::generic_category())(_anonymous_namespace_::generic_er //----- (004D5AB0) -------------------------------------------------------- int __thiscall std::map::erase(_DWORD *this, int a2) { - int v3; // eax + int *v3; // eax int *v4; // edx int v5; // esi int *v6; // edi @@ -154967,8 +153948,8 @@ int __thiscall std::map::erase(_DWORD *this, in a2); v5 = this[5]; v6 = v4; - v7 = (int *)v3; - if ( v3 == this[3] && v4 == this + 1 ) + v7 = v3; + if ( v3 == (int *)this[3] && v4 == this + 1 ) { std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(this[2]); this[2] = 0; @@ -154998,7 +153979,7 @@ char *__thiscall std::map::operator[](_DWORD *t { _DWORD *v3; // ebx _DWORD *v4; // edx - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v6; // edx _DWORD *v7; // edi char v8; // al @@ -155062,7 +154043,7 @@ char *__thiscall std::map::operator[](_DWORD *t } else { - v14 = (_DWORD *)insert_hint_unique_pos; + v14 = insert_hint_unique_pos; WXML::DOMLib::Token::~Token((int)(v3 + 10)); std::string::_M_dispose((void **)v3 + 4); operator delete(v3); @@ -155081,7 +154062,7 @@ _DWORD *__thiscall std::map::operator[](_DWORD int v4; // eax _DWORD *inserted; // esi _DWORD *v6; // ebx - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v8; // edx void (__cdecl *v10)(void *); // [esp+4h] [ebp-34h] @@ -155117,11 +154098,11 @@ _DWORD *__thiscall std::map::operator[](_DWORD this, inserted, (int)(v6 + 4)); - inserted = (_DWORD *)insert_hint_unique_pos; + inserted = insert_hint_unique_pos; if ( v8 ) inserted = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_insert_node( this, - insert_hint_unique_pos, + (int)insert_hint_unique_pos, v8, v6); else @@ -155139,7 +154120,7 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, _ int v4; // eax _DWORD *inserted; // edi char *v6; // ebx - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v8; // edx void (__cdecl *v10)(void *); // [esp+4h] [ebp-34h] @@ -155160,12 +154141,12 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, _ this, inserted, (int)(v6 + 16)); - inserted = (_DWORD *)insert_hint_unique_pos; + inserted = insert_hint_unique_pos; if ( v8 ) { inserted = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_insert_node( this, - insert_hint_unique_pos, + (int)insert_hint_unique_pos, v8, v6); } @@ -155187,7 +154168,7 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, i int v4; // eax _DWORD *inserted; // ebx char *v6; // esi - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v8; // edx void (__cdecl *v10)(void *); // [esp+4h] [ebp-34h] @@ -155208,12 +154189,12 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, i this, inserted, (int)(v6 + 16)); - inserted = (_DWORD *)insert_hint_unique_pos; + inserted = insert_hint_unique_pos; if ( v8 ) { inserted = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_insert_node( this, - insert_hint_unique_pos, + (int)insert_hint_unique_pos, v8, v6); } @@ -155237,7 +154218,7 @@ _DWORD *__thiscall std::map,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_insert_node( this, - insert_hint_unique_pos, + (int)insert_hint_unique_pos, v8, v6); } @@ -155287,7 +154268,7 @@ _DWORD *__thiscall std::map,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_insert_node( this, - insert_hint_unique_pos, + (int)insert_hint_unique_pos, v8, v6); } @@ -155333,7 +154314,7 @@ char *__thiscall std::map>::operator { _DWORD *v3; // ebx _DWORD *v4; // edx - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v6; // edx _DWORD *v7; // edi char v8; // al @@ -155372,7 +154353,7 @@ char *__thiscall std::map>::operator this, v13, (int)(v3 + 4)); - v7 = (_DWORD *)insert_hint_unique_pos; + v7 = insert_hint_unique_pos; if ( v6 ) { v8 = insert_hint_unique_pos != 0 || v15 == v6; @@ -155409,7 +154390,7 @@ _DWORD *__thiscall std::map>::operator[](_D _DWORD *v5; // ebx char v6; // al _DWORD *v7; // ebx - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v9; // edx void (__cdecl *v11)(void *); // [esp+4h] [ebp-34h] _DWORD *v12; // [esp+1Ch] [ebp-1Ch] @@ -155443,12 +154424,12 @@ _DWORD *__thiscall std::map>::operator[](_D this, inserted, (int)(v7 + 4)); - inserted = (_DWORD *)insert_hint_unique_pos; + inserted = insert_hint_unique_pos; if ( v9 ) { inserted = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_insert_node( this, - insert_hint_unique_pos, + (int)insert_hint_unique_pos, v9, v7); } @@ -155471,7 +154452,7 @@ _DWORD *__thiscall std::map>::operator[](_D int v4; // eax _DWORD *inserted; // ebx _DWORD *v6; // esi - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v8; // edx void (__cdecl *v10)(void *); // [esp+4h] [ebp-34h] @@ -155492,12 +154473,12 @@ _DWORD *__thiscall std::map>::operator[](_D this, inserted, (int)(v6 + 4)); - inserted = (_DWORD *)insert_hint_unique_pos; + inserted = insert_hint_unique_pos; if ( v8 ) { inserted = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_insert_node( this, - insert_hint_unique_pos, + (int)insert_hint_unique_pos, v8, v6); } @@ -155521,7 +154502,7 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, int a2) _DWORD *v5; // esi char v6; // al void **v7; // esi - int insert_hint_unique_pos; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v9; // edx void (__cdecl *v11)(void *); // [esp+4h] [ebp-34h] _DWORD *v12; // [esp+1Ch] [ebp-1Ch] @@ -155553,12 +154534,12 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, int a2) this, inserted, (int)(v7 + 4)); - inserted = (_DWORD *)insert_hint_unique_pos; + inserted = insert_hint_unique_pos; if ( v9 ) { inserted = std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_insert_node( this, - insert_hint_unique_pos, + (int)insert_hint_unique_pos, v9, v7); } @@ -155580,7 +154561,7 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, _DWORD *v3; // ebx _DWORD *v4; // edi _DWORD *v5; // edx - int insert_hint_unique_pos; // edi + _DWORD *insert_hint_unique_pos; // edi _DWORD *v7; // esi char v8; // al void *v10; // [esp+0h] [ebp-38h] @@ -155625,7 +154606,7 @@ _DWORD *__thiscall std::map::operator[](_DWORD *this, { std::string::_M_dispose((void **)v3 + 4); v10 = v3; - v3 = (_DWORD *)insert_hint_unique_pos; + v3 = insert_hint_unique_pos; operator delete(v10); } } @@ -155646,7 +154627,7 @@ _DWORD *__thiscall std::map>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)(v4 + 5)); operator delete(v4); - v4 = (_DWORD *)insert_hint_unique_pos; + v4 = insert_hint_unique_pos; } } return v4 + 5; @@ -155700,7 +154681,7 @@ char *__thiscall std::map>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase((void *)v4[7]); operator delete(v4); v4 = v13; @@ -155759,13 +154740,13 @@ char *__thiscall std::map::operator[](_DWORD *this, int *a2) +char *__thiscall std::map::operator[](_DWORD *this, unsigned int *a2) { _DWORD *v3; // edi _DWORD *v4; // ebx _DWORD *v5; // eax - int v6; // eax - int insert_hint_unique_pos; // eax + unsigned int v6; // eax + _DWORD *insert_hint_unique_pos; // eax _DWORD *v8; // edx bool v9; // cl void (__cdecl *v11)(void *); // [esp+4h] [ebp-34h] @@ -155777,7 +154758,7 @@ char *__thiscall std::map::operator[](_DWORD *this, in v5 = (_DWORD *)this[2]; while ( v5 ) { - if ( v5[4] < (unsigned int)*a2 ) + if ( v5[4] < *a2 ) { v5 = (_DWORD *)v5[3]; } @@ -155787,7 +154768,7 @@ char *__thiscall std::map::operator[](_DWORD *this, in v5 = (_DWORD *)v5[2]; } } - if ( v3 == v4 || (unsigned int)*a2 < v4[4] ) + if ( v3 == v4 || *a2 < v4[4] ) { v12 = v4; v4 = operator new((struct type_info *)0x2C, v11); @@ -155810,7 +154791,7 @@ char *__thiscall std::map::operator[](_DWORD *this, in } else { - v13 = (_DWORD *)insert_hint_unique_pos; + v13 = insert_hint_unique_pos; std::string::_M_dispose((void **)v4 + 5); operator delete(v4); v4 = v13; @@ -155852,13 +154833,13 @@ _DWORD *__thiscall std::set::insert(_DWORD *this, int a2) //----- (004D69F8) -------------------------------------------------------- int __thiscall std::pair::swap(_DWORD *this, _DWORD *a2) { - int v2; // ebx - _DWORD v4[34]; // [esp+10h] [ebp-88h] BYREF + _DWORD *v2; // ebx + int v4[34]; // [esp+10h] [ebp-88h] BYREF - v2 = (int)(this + 6); + v2 = this + 6; std::string::swap(this, a2); - WXML::DOMLib::Token::Token(v4, v2); - WXML::DOMLib::Token::operator=(v2, (int)(a2 + 6)); + WXML::DOMLib::Token::Token(v4, (int)v2); + WXML::DOMLib::Token::operator=((int)v2, (int)(a2 + 6)); WXML::DOMLib::Token::operator=((int)(a2 + 6), (int)v4); return WXML::DOMLib::Token::~Token((int)v4); } @@ -155880,7 +154861,7 @@ _DWORD *__thiscall std::pair::operator=(_DWORD } //----- (004D6AB0) -------------------------------------------------------- -int __cdecl std::__pad>::_S_pad(_DWORD *a1, void *Src, char *a3, _BYTE *a4, int a5, int a6) +int __cdecl std::__pad>::_S_pad(_DWORD *a1, void *Src, char *a3, char *a4, int a5, int a6) { char *v6; // edi size_t Size; // ebx @@ -155898,7 +154879,7 @@ int __cdecl std::__pad>::_S_pad(_DWORD *a1, void *Sr char v19; // dl int (__stdcall *v20)(unsigned __int8); // eax int (__stdcall *v21)(unsigned __int8); // eax - void *v22; // [esp+14h] [ebp-28h] + char *v22; // [esp+14h] [ebp-28h] _BYTE *v23; // [esp+1Ch] [ebp-20h] _BYTE *v24; // [esp+1Ch] [ebp-20h] _BYTE *v25; // [esp+1Ch] [ebp-20h] @@ -157496,8 +156477,8 @@ void __userpurge std::locale::_Impl::_M_install_cache( (struct type_info *)&`typeinfo for'__gnu_cxx::__concurrence_lock_error, (void (__cdecl *)(void *))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error); } - v6 = std::locale::_S_twinned_facets; - if ( std::locale::_S_twinned_facets ) + v6 = (int *)std::locale::_S_twinned_facets[0]; + if ( std::locale::_S_twinned_facets[0] ) { while ( 1 ) { @@ -157581,7 +156562,7 @@ LABEL_13: } // 4D8AED: variable 'v7' is possibly undefined // 4D8AFC: variable 'v9' is possibly undefined -// 533580: using guessed type int *std::locale::_S_twinned_facets; +// 533580: using guessed type int std::locale::_S_twinned_facets[24]; // 533CE8: using guessed type int *`typeinfo for'__gnu_cxx::__concurrence_lock_error; // 537988: using guessed type void (__cdecl *off_537988)(__gnu_cxx::__concurrence_lock_error *__hidden this); // 78A9D4: using guessed type int _CRT_MT; @@ -157719,8 +156700,8 @@ const std::locale::id *__userpurge std::locale::_Impl::_M_install_facet@( v24 = *v23; if ( !*v23 ) goto LABEL_39; - v25 = std::locale::_S_twinned_facets; - if ( !std::locale::_S_twinned_facets ) + v25 = (int *)std::locale::_S_twinned_facets[0]; + if ( !std::locale::_S_twinned_facets[0] ) { LABEL_37: if ( _CRT_MT ) @@ -157872,7 +156853,7 @@ LABEL_39: // 4D8E5A: variable 'v45' is possibly undefined // 4D8FCE: variable 'v42' is possibly undefined // 504CD0: using guessed type void __stdcall __noreturn std::locale::_Impl::_M_install_facet(_DWORD, _DWORD); -// 533580: using guessed type int *std::locale::_S_twinned_facets; +// 533580: using guessed type int std::locale::_S_twinned_facets[24]; // 78A9D4: using guessed type int _CRT_MT; //----- (004D90B0) -------------------------------------------------------- @@ -158822,12 +157803,32 @@ int __userpurge std::locale::_Impl::_Impl@(_DWORD *a1@, std::locale::_ // 515F5C: using guessed type int dword_515F5C; // 51643C: using guessed type int std::__timepunct::id; // 516440: using guessed type int std::__timepunct::id; +// 516580: using guessed type int std::ctype::id; +// 516584: using guessed type int std::ctype::id; // 5165A8: using guessed type int std::moneypunct::id; // 5165AC: using guessed type int std::moneypunct::id; // 5165B0: using guessed type int std::moneypunct::id; // 5165B4: using guessed type int std::moneypunct::id; +// 5165B8: using guessed type int std::collate::id; +// 5165BC: using guessed type int std::collate::id; +// 5165C0: using guessed type int std::messages::id; +// 5165C4: using guessed type int std::messages::id; // 5165C8: using guessed type int std::numpunct::id; // 5165CC: using guessed type int std::numpunct::id; +// 5165D0: using guessed type int std::time_get>::id; +// 5165D4: using guessed type int std::time_get>::id; +// 5165D8: using guessed type int std::money_get>::id; +// 5165DC: using guessed type int std::money_get>::id; +// 5165E0: using guessed type int std::money_put>::id; +// 5165E4: using guessed type int std::money_put>::id; +// 5165F8: using guessed type int std::codecvt::id; +// 5165FC: using guessed type int std::codecvt::id; +// 516608: using guessed type int std::num_get>::id; +// 51660C: using guessed type int std::num_get>::id; +// 516610: using guessed type int std::num_put>::id; +// 516614: using guessed type int std::num_put>::id; +// 516638: using guessed type int std::time_put>::id; +// 51663C: using guessed type int std::time_put>::id; // 537E60: using guessed type int (*off_537E60)(); // 537E94: using guessed type int (*off_537E94)(); // 537EC8: using guessed type int (*off_537EC8)(); @@ -159093,7 +158094,7 @@ LABEL_3: } LABEL_4: std::locale::_S_global = (int)v4; - std::locale::name[abi:cxx11]((int)Locale, (int *)a2); + std::locale::name[abi:cxx11](Locale, (int *)a2); if ( std::string::compare((int)Locale, "*") ) setlocale(0, Locale[0]); if ( Locale[0] != &v9 ) @@ -159240,21 +158241,21 @@ volatile signed __int32 **__thiscall std::locale::operator=( volatile signed __int32 **a2) { volatile signed __int32 **result; // eax - int v3; // ecx + volatile signed __int32 *v3; // ecx volatile signed __int32 *v4; // edx volatile signed __int32 *v5; // ebx volatile signed __int32 v6; // edx volatile signed __int32 **v7; // [esp+1Ch] [ebp-10h] result = this; - v3 = std::locale::_S_classic; + v3 = (volatile signed __int32 *)std::locale::_S_classic; v4 = *a2; if ( *a2 != (volatile signed __int32 *)std::locale::_S_classic ) { if ( _CRT_MT ) { _InterlockedAdd(v4, 1u); - v3 = std::locale::_S_classic; + v3 = (volatile signed __int32 *)std::locale::_S_classic; } else { @@ -159262,7 +158263,7 @@ volatile signed __int32 **__thiscall std::locale::operator=( } } v5 = *result; - if ( *result == (volatile signed __int32 *)v3 ) + if ( *result == v3 ) goto LABEL_7; if ( _CRT_MT ) { @@ -159300,18 +158301,18 @@ char *__thiscall std::vector>::_M_realloc bool v5; // cf unsigned int v6; // ebx char *v7; // edi - _DWORD *v8; // esi + char *v8; // esi char *i; // eax char *v10; // esi char *v11; // edx - _DWORD *v12; // ecx + char *v12; // ecx volatile signed __int32 **v13; // ecx char *v14; // esi char *result; // eax void (__cdecl *v16)(void *); // [esp+4h] [ebp-44h] char *v17; // [esp+18h] [ebp-30h] char *v18; // [esp+1Ch] [ebp-2Ch] - _DWORD *v19; // [esp+20h] [ebp-28h] + char *v19; // [esp+20h] [ebp-28h] char *v20; // [esp+20h] [ebp-28h] char *v21; // [esp+24h] [ebp-24h] char *v23; // [esp+2Ch] [ebp-1Ch] @@ -159347,7 +158348,7 @@ LABEL_10: for ( i = v23; a2 != i; i = v20 + 8 ) { v12 = v8; - v8 += 2; + v8 += 8; v20 = i; std::__shared_ptr::__shared_ptr(v12, i); std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count((volatile signed __int32 **)v20 + 1); @@ -159366,7 +158367,7 @@ LABEL_10: i = v17; v11 = v18 + 8; } - v14 = (char *)v19 + v10 - i; + v14 = &v19[v10 - i]; if ( v23 ) operator delete(v23); *this = v7; @@ -159430,22 +158431,22 @@ char *__thiscall std::vector>::_M int v4; // eax bool v5; // cf unsigned int v6; // ebx - _DWORD *v7; // esi + char *v7; // esi char *v8; // edi int v9; // eax volatile signed __int32 **v10; // ecx - char *v11; // esi - _DWORD *v12; // edx + _DWORD *v11; // esi + char *v12; // edx int v13; // eax volatile signed __int32 **v14; // ecx char *v15; // esi char *result; // eax void (__cdecl *v17)(void *); // [esp+4h] [ebp-44h] - _DWORD *v18; // [esp+18h] [ebp-30h] - _DWORD *v19; // [esp+18h] [ebp-30h] + char *v18; // [esp+18h] [ebp-30h] + char *v19; // [esp+18h] [ebp-30h] char *v20; // [esp+1Ch] [ebp-2Ch] char *v22; // [esp+28h] [ebp-20h] - _DWORD *v23; // [esp+2Ch] [ebp-1Ch] + char *v23; // [esp+2Ch] [ebp-1Ch] v20 = this[1]; v22 = *this; @@ -159465,50 +158466,48 @@ char *__thiscall std::vector>::_M if ( v6 > 0xFFFFFFF ) LABEL_8: v6 = 0xFFFFFFF; - v23 = operator new((struct type_info *)(8 * v6), v17); + v23 = (char *)operator new((struct type_info *)(8 * v6), v17); LABEL_10: v7 = v23; v8 = v22; - std::__shared_ptr::__shared_ptr( - (_DWORD *)((char *)v23 + a2 - v22), - a3); + std::__shared_ptr::__shared_ptr(&v23[a2 - v22], a3); while ( a2 != v8 ) { - *v7 = *(_DWORD *)v8; + *(_DWORD *)v7 = *(_DWORD *)v8; v9 = *((_DWORD *)v8 + 1); - v7[1] = v9; + *((_DWORD *)v7 + 1) = v9; if ( v9 ) __gnu_cxx::__atomic_add_dispatch((volatile signed __int32 *)(v9 + 4)); v10 = (volatile signed __int32 **)(v8 + 4); - v7 += 2; + v7 += 8; v8 += 8; std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v10); } v11 = v8; - v12 = (_DWORD *)((char *)v23 + v8 - v22 + 8); - while ( v11 != v20 ) + v12 = &v23[v8 - v22 + 8]; + while ( v11 != (_DWORD *)v20 ) { - *v12 = *(_DWORD *)v11; - v13 = *((_DWORD *)v11 + 1); - v12[1] = v13; + *(_DWORD *)v12 = *v11; + v13 = v11[1]; + *((_DWORD *)v12 + 1) = v13; if ( v13 ) { v18 = v12; __gnu_cxx::__atomic_add_dispatch((volatile signed __int32 *)(v13 + 4)); v12 = v18; } - v14 = (volatile signed __int32 **)(v11 + 4); + v14 = (volatile signed __int32 **)(v11 + 1); v19 = v12; - v11 += 8; + v11 += 2; std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v14); - v12 = v19 + 2; + v12 = v19 + 8; } - v15 = &v11[(char *)v23 - v22 + 8]; + v15 = (char *)v11 + v23 - v22 + 8; if ( v22 ) operator delete(v22); this[1] = v15; - *this = (char *)v23; - result = (char *)&v23[2 * v6]; + *this = v23; + result = &v23[8 * v6]; this[2] = result; return result; } @@ -159542,24 +158541,24 @@ char *__thiscall std::vector>::_M_realloc_i bool v5; // cf unsigned int v6; // eax int v7; // edi - _DWORD *v8; // ebx + char *v8; // ebx int v9; // eax - _DWORD *v10; // ebx + char *v10; // ebx char *i; // esi int v12; // eax volatile signed __int32 **v13; // ecx - char *v14; // ebx - _DWORD *v15; // edx + _DWORD *v14; // ebx + char *v15; // edx int v16; // eax volatile signed __int32 **v17; // ecx char *v18; // ebx char *result; // eax void (__cdecl *v20)(void *); // [esp+4h] [ebp-44h] - _DWORD *v21; // [esp+18h] [ebp-30h] - _DWORD *v22; // [esp+18h] [ebp-30h] + char *v21; // [esp+18h] [ebp-30h] + char *v22; // [esp+18h] [ebp-30h] char *v23; // [esp+1Ch] [ebp-2Ch] char *v25; // [esp+28h] [ebp-20h] - _DWORD *v26; // [esp+2Ch] [ebp-1Ch] + char *v26; // [esp+2Ch] [ebp-1Ch] v23 = this[1]; v25 = *this; @@ -159580,51 +158579,51 @@ char *__thiscall std::vector>::_M_realloc_i if ( v6 > 0xFFFFFFF ) LABEL_8: v7 = 0xFFFFFFF; - v26 = operator new((struct type_info *)(8 * v7), v20); + v26 = (char *)operator new((struct type_info *)(8 * v7), v20); LABEL_10: - v8 = (_DWORD *)((char *)v26 + a2 - v25); - *v8 = *a3; + v8 = &v26[a2 - v25]; + *(_DWORD *)v8 = *a3; v9 = a3[1]; - v8[1] = v9; + *((_DWORD *)v8 + 1) = v9; if ( v9 ) __gnu_cxx::__atomic_add_dispatch((volatile signed __int32 *)(v9 + 4)); v10 = v26; for ( i = v25; a2 != i; i += 8 ) { - *v10 = *(_DWORD *)i; + *(_DWORD *)v10 = *(_DWORD *)i; v12 = *((_DWORD *)i + 1); - v10[1] = v12; + *((_DWORD *)v10 + 1) = v12; if ( v12 ) __gnu_cxx::__atomic_add_dispatch((volatile signed __int32 *)(v12 + 4)); v13 = (volatile signed __int32 **)(i + 4); - v10 += 2; + v10 += 8; std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v13); } v14 = i; - v15 = (_DWORD *)((char *)v26 + i - v25 + 8); - while ( v14 != v23 ) + v15 = &v26[i - v25 + 8]; + while ( v14 != (_DWORD *)v23 ) { - *v15 = *(_DWORD *)v14; - v16 = *((_DWORD *)v14 + 1); - v15[1] = v16; + *(_DWORD *)v15 = *v14; + v16 = v14[1]; + *((_DWORD *)v15 + 1) = v16; if ( v16 ) { v21 = v15; __gnu_cxx::__atomic_add_dispatch((volatile signed __int32 *)(v16 + 4)); v15 = v21; } - v17 = (volatile signed __int32 **)(v14 + 4); + v17 = (volatile signed __int32 **)(v14 + 1); v22 = v15; - v14 += 8; + v14 += 2; std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(v17); - v15 = v22 + 2; + v15 = v22 + 8; } - v18 = &v14[(char *)v26 - v25 + 8]; + v18 = (char *)v14 + v26 - v25 + 8; if ( v25 ) operator delete(v25); this[1] = v18; - *this = (char *)v26; - result = (char *)&v26[2 * v7]; + *this = v26; + result = &v26[8 * v7]; this[2] = result; return result; } @@ -159655,7 +158654,7 @@ char *__thiscall std::vector>::push_back(in //----- (004DAD34) -------------------------------------------------------- volatile signed __int32 *__thiscall std::vector>::vector( volatile signed __int32 **this, - volatile signed __int32 **a2) + char **a2) { int v3; // esi volatile signed __int32 *v4; // edx @@ -159666,7 +158665,7 @@ volatile signed __int32 *__thiscall std::vector::_M_realloc_insert( - _DWORD *this, +unsigned int __thiscall std::vector::_M_realloc_insert( + void **this, char *a2, _DWORD *a3) { @@ -159723,7 +158722,7 @@ int __thiscall std::vector::_M_realloc_insert::_M_realloc_insert> 2); + v3 = -1227133513 * ((v24 - (_BYTE *)*this) >> 2); if ( v3 == 76695844 ) std::__throw_length_error((std::length_error *)"vector::_M_realloc_insert"); - v5 = -1227133513 * ((int)&v24[-*this] >> 2); + v5 = -1227133513 * ((v24 - (_BYTE *)*this) >> 2); if ( !v3 ) v5 = 1; - v25 = v5 - 1227133513 * ((int)&v24[-*this] >> 2); + v25 = v5 - 1227133513 * ((v24 - (_BYTE *)*this) >> 2); if ( __CFADD__(v5, v3) ) goto LABEL_8; v6 = 0; @@ -159804,14 +158803,14 @@ LABEL_10: // 4DAE3F: variable 'v17' is possibly undefined //----- (004DAF78) -------------------------------------------------------- -_BYTE *__thiscall std::vector::push_back(_DWORD *this, _DWORD *a2) +_BYTE *__thiscall std::vector::push_back(void **this, _DWORD *a2) { char *v3; // ecx _DWORD *v4; // ecx _BYTE *result; // eax v3 = (char *)this[1]; - if ( v3 == (char *)this[2] ) + if ( v3 == this[2] ) return (_BYTE *)std::vector::_M_realloc_insert( this, v3, @@ -159819,7 +158818,7 @@ _BYTE *__thiscall std::vector::push_back(_DWORD * v4 = v3 + 4; *(v4 - 1) = *a2; result = std::string::basic_string(v4, (int)(a2 + 1)); - this[1] += 28; + this[1] = (char *)this[1] + 28; return result; } @@ -159837,20 +158836,20 @@ void *__thiscall std::vector::_M_realloc_insert> 4); + v3 = -1227133513 * ((v12 - (_BYTE *)*this) >> 4); if ( v3 == 19173961 ) std::__throw_length_error((std::length_error *)"vector::_M_realloc_insert"); - v5 = -1227133513 * ((v12 - (int)*this) >> 4); + v5 = -1227133513 * ((v12 - (_BYTE *)*this) >> 4); if ( !v3 ) v5 = 1; v6 = __CFADD__(v5, v3); - v7 = v5 - 1227133513 * ((v12 - (int)*this) >> 4); + v7 = v5 - 1227133513 * ((v12 - (_BYTE *)*this) >> 4); if ( v6 ) goto LABEL_8; v8 = 0; @@ -159868,13 +158867,13 @@ LABEL_10: (int)v8); result = (void *)std::__relocate_a_1>( a2, - v12, + (int)v12, v9 + 112); if ( v14 ) { - v13 = (int)result; + v13 = result; operator delete(v14); - result = (void *)v13; + result = v13; } *this = v8; this[1] = result; @@ -159900,41 +158899,41 @@ _BYTE *__thiscall std::vector::push_back(int this, WXML::DO // 4DB0E3: variable 'v5' is possibly undefined //----- (004DB108) -------------------------------------------------------- -int __thiscall std::vector::_M_realloc_insert( +unsigned int __thiscall std::vector::_M_realloc_insert( void ***this, char *a2, - volatile signed __int32 **a3) + char **a3) { int v3; // esi int v5; // eax - char *v6; // esi - void **v7; // ebx - char *i; // eax - char *v9; // eax + void **v6; // esi + char *v7; // ebx + void **i; // eax + void **v9; // eax unsigned int v10; // ebx - char *v11; // ebx + void **v11; // ebx char *j; // eax void *v13; // edx void **v14; // ecx - int result; // eax + unsigned int result; // eax void (__cdecl *v16)(void *); // [esp+4h] [ebp-44h] char *v17; // [esp+18h] [ebp-30h] - void **v18; // [esp+1Ch] [ebp-2Ch] - char *v19; // [esp+20h] [ebp-28h] - char *v20; // [esp+20h] [ebp-28h] - char *v21; // [esp+24h] [ebp-24h] + char *v18; // [esp+1Ch] [ebp-2Ch] + void **v19; // [esp+20h] [ebp-28h] + void **v20; // [esp+20h] [ebp-28h] + void **v21; // [esp+24h] [ebp-24h] unsigned int v22; // [esp+28h] [ebp-20h] - void **v23; // [esp+2Ch] [ebp-1Ch] + char *v23; // [esp+2Ch] [ebp-1Ch] - v21 = (char *)this[1]; - v23 = *this; - v3 = -1431655765 * ((v21 - (char *)*this) >> 2); + v21 = this[1]; + v23 = (char *)*this; + v3 = -1431655765 * (v21 - *this); if ( v3 == 178956970 ) std::__throw_length_error((std::length_error *)"vector::_M_realloc_insert"); - v5 = -1431655765 * ((v21 - (char *)*this) >> 2); + v5 = -1431655765 * (v21 - *this); if ( !v3 ) v5 = 1; - v22 = v5 - 1431655765 * ((v21 - (char *)*this) >> 2); + v22 = v5 - 1431655765 * (v21 - *this); if ( __CFADD__(v5, v3) ) goto LABEL_8; v6 = 0; @@ -159943,7 +158942,7 @@ int __thiscall std::vector::_M_realloc_insert>::vector((volatile signed __int32 **)&v6[a2 - (char *)v23], a3); + std::vector>::vector((volatile signed __int32 **)((char *)v6 + a2 - v23), a3); for ( i = v6; ; i = v20 ) { - v9 = i + 12; - if ( a2 == (char *)v7 ) + v9 = i + 3; + if ( a2 == v7 ) break; - v13 = *v7; - v14 = v7; + v13 = *(void **)v7; + v14 = (void **)v7; v20 = v9; - v7 += 3; - *((_DWORD *)v9 - 3) = v13; - *((_DWORD *)v9 - 2) = *(v7 - 2); - *((_DWORD *)v9 - 1) = *(v7 - 1); - *(v7 - 1) = 0; - *(v7 - 2) = 0; - *(v7 - 3) = 0; + v7 += 12; + *(v9 - 3) = v13; + *(v9 - 2) = (void *)*((_DWORD *)v7 - 2); + *(v9 - 1) = (void *)*((_DWORD *)v7 - 1); + *((_DWORD *)v7 - 1) = 0; + *((_DWORD *)v7 - 2) = 0; + *((_DWORD *)v7 - 3) = 0; std::vector>::~vector(v14); } - v10 = (715827883 * ((unsigned int)(a2 - (char *)v23) >> 2)) & 0x3FFFFFFF; - v18 = &v23[3 * v10]; - v19 = &v6[12 * v10 + 12]; + v10 = (715827883 * ((unsigned int)(a2 - v23) >> 2)) & 0x3FFFFFFF; + v18 = &v23[12 * v10]; + v19 = &v6[3 * v10 + 3]; v11 = v19; - for ( j = (char *)v18; v21 != j; j = v17 + 12 ) + for ( j = v18; v21 != (void **)j; j = v17 + 12 ) { v17 = j; - v11 += 12; - *((_DWORD *)v11 - 3) = *(_DWORD *)j; - *((_DWORD *)v11 - 2) = *((_DWORD *)j + 1); - *((_DWORD *)v11 - 1) = *((_DWORD *)j + 2); + v11 += 3; + *(v11 - 3) = *(void **)j; + *(v11 - 2) = (void *)*((_DWORD *)j + 1); + *(v11 - 1) = (void *)*((_DWORD *)j + 2); *((_DWORD *)j + 2) = 0; *((_DWORD *)j + 1) = 0; *(_DWORD *)j = 0; @@ -159989,15 +158988,15 @@ LABEL_10: if ( v23 ) operator delete(v23); result = 12 * v22; - *this = (void **)v6; - this[1] = (void **)&v19[12 * ((715827883 * ((unsigned int)(v21 - (char *)v18) >> 2)) & 0x3FFFFFFF)]; - this[2] = (void **)&v6[12 * v22]; + *this = v6; + this[1] = &v19[3 * ((715827883 * ((unsigned int)((char *)v21 - v18) >> 2)) & 0x3FFFFFFF)]; + this[2] = &v6[3 * v22]; return result; } // 4DB17F: variable 'v16' is possibly undefined //----- (004DB2C0) -------------------------------------------------------- -volatile signed __int32 *__thiscall std::vector::push_back(int this, volatile signed __int32 **a2) +volatile signed __int32 *__thiscall std::vector::push_back(int this, char **a2) { char *v3; // ecx volatile signed __int32 *result; // eax @@ -160014,7 +159013,7 @@ volatile signed __int32 *__thiscall std::vector::push_back(i } //----- (004DB2FC) -------------------------------------------------------- -_DWORD *__thiscall std::vector::_M_realloc_insert( +char *__thiscall std::vector::_M_realloc_insert( char **this, char *a2, WXML::EXPRLib::Token *a3) @@ -160023,13 +159022,13 @@ _DWORD *__thiscall std::vector::_M_realloc_insert::_M_realloc_insert> 2); - v8 = a2 - v15; + v8 = (char *)(a2 - v15); if ( v6 ) goto LABEL_8; v9 = 0; @@ -160053,15 +159052,15 @@ LABEL_8: v7 = 76695844; v9 = (char *)operator new((struct type_info *)(28 * v7), v12); LABEL_10: - WXML::EXPRLib::Token::Token(v8, &v9[a2 - v15], a3, (const WXML::EXPRLib::Token *)v12); + WXML::EXPRLib::Token::Token((int)v8, &v9[a2 - v15], a3, (const WXML::EXPRLib::Token *)v12); v10 = std::__relocate_a_1>( v15, a2, v9); - result = std::__relocate_a_1>( - a2, - v13, - v10 + 7); + result = (char *)std::__relocate_a_1>( + a2, + v13, + v10 + 7); if ( v15 ) { v14 = result; @@ -160069,7 +159068,7 @@ LABEL_10: result = v14; } *this = v9; - this[1] = (char *)result; + this[1] = result; this[2] = &v9[28 * v7]; return result; } @@ -160090,16 +159089,16 @@ unsigned int __thiscall std::vector::_M_realloc_insert> 6; + v3 = (v12 - *this) >> 6; if ( v3 == 0x1FFFFFF ) std::__throw_length_error((std::length_error *)"vector::_M_realloc_insert"); - v5 = ((char *)v12 - *this) >> 6; + v5 = (v12 - *this) >> 6; if ( !v3 ) v5 = 1; v14 = v5 + v3; @@ -160126,7 +159125,7 @@ LABEL_10: a2, v12, v11); - std::_Destroy_aux::__destroy(v8, (void **)v13, v12); + std::_Destroy_aux::__destroy(v8, (void **)v13, (void **)v12); std::_Vector_base::_M_deallocate(v13); *this = v6; this[1] = v7; @@ -160138,7 +159137,7 @@ LABEL_10: // 4DB4A3: variable 'v8' is possibly undefined //----- (004DB50C) -------------------------------------------------------- -int __thiscall std::vector::at(_DWORD *this, unsigned int a2) +unsigned int __thiscall std::vector::at(_DWORD *this, unsigned int a2) { if ( a2 >= (this[1] - *this) >> 6 ) std::__throw_out_of_range_fmt( @@ -160168,7 +159167,7 @@ void __thiscall std::vector::emplace_back(void ***this void **v3; // esi int v4; // edi _DWORD *v5; // eax - char *v6; // [esp+10h] [ebp-28h] + int v6; // [esp+10h] [ebp-28h] void **v7; // [esp+14h] [ebp-24h] void **v8; // [esp+18h] [ebp-20h] void **v9; // [esp+1Ch] [ebp-1Ch] @@ -160181,10 +159180,10 @@ void __thiscall std::vector::emplace_back(void ***this v4 = std::vector::_M_check_len(this, 1u, (std::length_error *)"vector::_M_realloc_insert"); v8 = *this; v7 = this[1]; - v6 = (char *)((char *)v9 - (char *)*this); + v6 = (char *)v9 - (char *)*this; if ( v4 ) v3 = (void **)__gnu_cxx::new_allocator::allocate(v4); - std::string::basic_string(&v6[(_DWORD)v3], a2); + std::string::basic_string((void **)((char *)v3 + v6), a2); v5 = std::__relocate_a_1>(v8, v9, v3); v10 = (void **)std::__relocate_a_1>(v9, v7, v5 + 6); std::_Vector_base::_M_deallocate(v8); @@ -160203,14 +159202,14 @@ void __thiscall std::vector::emplace_back(void ***this #error "4DB6E0: call analysis failed (funcsize=70)" //----- (004DB71C) -------------------------------------------------------- -char *__thiscall std::vector::_M_realloc_insert(_DWORD *this, char *a2, _DWORD *a3) +char *__thiscall std::vector::_M_realloc_insert(void **this, char *a2, _DWORD *a3) { char *v3; // esi int v4; // eax int v6; // edx bool v7; // cf unsigned int v8; // eax - void **v9; // ebx + char *v9; // ebx _DWORD *i; // ecx unsigned int v11; // ebx _DWORD *v12; // edx @@ -160230,7 +159229,7 @@ char *__thiscall std::vector::_M_realloc_insert(_DWORD v3 = (char *)*this; v21 = (char *)this[1]; - v4 = -1431655765 * ((int)&v21[-*this] >> 3); + v4 = -1431655765 * ((v21 - (_BYTE *)*this) >> 3); if ( v4 == 89478485 ) std::__throw_length_error((std::length_error *)"vector::_M_realloc_insert"); v6 = -1431655765 * ((v21 - v3) >> 3); @@ -160255,16 +159254,16 @@ LABEL_8: goto LABEL_9; } LABEL_10: - v9 = (void **)v3; + v9 = v3; std::string::basic_string((_DWORD *)((char *)v25 + a2 - v3), a3); for ( i = v25; ; i = v22 ) { v22 = i + 6; - if ( a2 == (char *)v9 ) + if ( a2 == v9 ) break; std::string::basic_string(i, v9); - v14 = v9; - v9 += 6; + v14 = (void **)v9; + v9 += 24; std::string::_M_dispose(v14); } v11 = (178956971 * ((unsigned int)(a2 - v3) >> 3)) & 0x1FFFFFFF; @@ -160420,8 +159419,8 @@ char *__thiscall std::vector::_M_realloc_insert::_M_realloc_insert::_M_realloc_insert 0x1FFFFFFF ) LABEL_8: v17 = 0x1FFFFFFF; - v9 = (char *)operator new((struct type_info *)(4 * v17), v14); + v9 = operator new((struct type_info *)(4 * v17), v14); LABEL_10: - *(_DWORD *)&v9[v8] = *a3; - if ( v8 > 0 ) - memmove(v9, Src, v8); + *(_DWORD *)&v8[(_DWORD)v9] = *a3; + if ( (int)v8 > 0 ) + memmove(v9, Src, (size_t)v8); v10 = v3 - a2; - v11 = &v9[v8 + 4]; + v11 = &v8[(_DWORD)v9 + 4]; if ( v3 - a2 > 0 ) qmemcpy(v11, a2, v10); v12 = &v11[v10]; @@ -160464,7 +159463,7 @@ LABEL_10: operator delete(Src); *this = v9; this[1] = v12; - result = &v9[4 * v17]; + result = (char *)v9 + 4 * v17; this[2] = result; return result; } @@ -160494,12 +159493,12 @@ char *__thiscall std::vector::emplace_back(v char *v3; // edi char *result; // eax void (__cdecl *v5)(void *); // edx - void *v6; // esi + char *v6; // esi int v7; // eax - int v8; // edi - char *v9; // [esp+10h] [ebp-28h] - int v10; // [esp+14h] [ebp-24h] - void *v11; // [esp+18h] [ebp-20h] + void *v8; // edi + int v9; // [esp+10h] [ebp-28h] + void *v10; // [esp+14h] [ebp-24h] + _BYTE *v11; // [esp+18h] [ebp-20h] unsigned int v12; // [esp+1Ch] [ebp-1Ch] v3 = (char *)this[1]; @@ -160507,25 +159506,25 @@ char *__thiscall std::vector::emplace_back(v { v12 = std::vector::_M_check_len(this, 1u, (std::length_error *)"vector::_M_realloc_insert"); v11 = *this; - v10 = (int)this[1]; - v9 = (char *)(v3 - (_BYTE *)*this); + v10 = this[1]; + v9 = v3 - (_BYTE *)*this; if ( v12 ) { if ( v12 > 0x1FFFFFFF ) std::__throw_bad_alloc(); - v6 = operator new((struct type_info *)(4 * v12), v5); + v6 = (char *)operator new((struct type_info *)(4 * v12), v5); } else { v6 = 0; } - *(_DWORD *)&v9[(_DWORD)v6] = *a2; + *(_DWORD *)&v6[v9] = *a2; v7 = std::__relocate_a_1(v6, v11, (int)v3); - v8 = std::__relocate_a_1((void *)(v7 + 4), v3, v10); + v8 = (void *)std::__relocate_a_1((void *)(v7 + 4), v3, (int)v10); std::_Vector_base::_M_deallocate(v11); *this = v6; - this[1] = (void *)v8; - result = (char *)v6 + 4 * v12; + this[1] = v8; + result = &v6[4 * v12]; this[2] = result; } else @@ -160539,7 +159538,7 @@ char *__thiscall std::vector::emplace_back(v // 4DBBBE: variable 'v5' is possibly undefined //----- (004DBC10) -------------------------------------------------------- -int __thiscall std::vector::at(_DWORD *this, unsigned int a2) +unsigned int __thiscall std::vector::at(_DWORD *this, unsigned int a2) { if ( a2 >= (this[1] - *this) >> 2 ) std::__throw_out_of_range_fmt( @@ -160555,12 +159554,12 @@ char *__thiscall std::vector::push_back(void **this, _DWORD *a char *v3; // edi char *result; // eax void (__cdecl *v5)(void *); // edx - void *v6; // esi + char *v6; // esi int v7; // eax - int v8; // edi - char *v9; // [esp+10h] [ebp-28h] - int v10; // [esp+14h] [ebp-24h] - void *v11; // [esp+18h] [ebp-20h] + void *v8; // edi + int v9; // [esp+10h] [ebp-28h] + void *v10; // [esp+14h] [ebp-24h] + _BYTE *v11; // [esp+18h] [ebp-20h] unsigned int v12; // [esp+1Ch] [ebp-1Ch] v3 = (char *)this[1]; @@ -160568,25 +159567,25 @@ char *__thiscall std::vector::push_back(void **this, _DWORD *a { v12 = std::vector::_M_check_len(this, 1u, (std::length_error *)"vector::_M_realloc_insert"); v11 = *this; - v10 = (int)this[1]; - v9 = (char *)(v3 - (_BYTE *)*this); + v10 = this[1]; + v9 = v3 - (_BYTE *)*this; if ( v12 ) { if ( v12 > 0x1FFFFFFF ) std::__throw_bad_alloc(); - v6 = operator new((struct type_info *)(4 * v12), v5); + v6 = (char *)operator new((struct type_info *)(4 * v12), v5); } else { v6 = 0; } - *(_DWORD *)&v9[(_DWORD)v6] = *a2; + *(_DWORD *)&v6[v9] = *a2; v7 = std::__relocate_a_1(v6, v11, (int)v3); - v8 = std::__relocate_a_1((void *)(v7 + 4), v3, v10); + v8 = (void *)std::__relocate_a_1((void *)(v7 + 4), v3, (int)v10); std::_Vector_base::_M_deallocate(v11); *this = v6; - this[1] = (void *)v8; - result = (char *)v6 + 4 * v12; + this[1] = v8; + result = &v6[4 * v12]; this[2] = result; } else @@ -160610,8 +159609,8 @@ char *__thiscall std::vector 0x1FFFFFFF ) LABEL_8: v17 = 0x1FFFFFFF; - v9 = (char *)operator new((struct type_info *)(4 * v17), v14); + v9 = operator new((struct type_info *)(4 * v17), v14); LABEL_10: - *(_DWORD *)&v9[v8] = *a3; - if ( v8 > 0 ) - memmove(v9, Src, v8); + *(_DWORD *)&v8[(_DWORD)v9] = *a3; + if ( (int)v8 > 0 ) + memmove(v9, Src, (size_t)v8); v10 = v3 - a2; - v11 = &v9[v8 + 4]; + v11 = &v8[(_DWORD)v9 + 4]; if ( v3 - a2 > 0 ) qmemcpy(v11, a2, v10); v12 = &v11[v10]; @@ -160654,14 +159653,14 @@ LABEL_10: operator delete(Src); *this = v9; this[1] = v12; - result = &v9[4 * v17]; + result = (char *)v9 + 4 * v17; this[2] = result; return result; } // 4DBD73: variable 'v14' is possibly undefined //----- (004DBDE4) -------------------------------------------------------- -int __thiscall std::vector>>::at( +unsigned int __thiscall std::vector>>::at( _DWORD *this, unsigned int a2) { @@ -160705,31 +159704,31 @@ char **__thiscall std::vector> 5; + v3 = (v24 - *this) >> 5; if ( v3 == 0x3FFFFFF ) std::__throw_length_error((std::length_error *)"vector::_M_realloc_insert"); - v4 = ((char *)v24 - *this) >> 5; + v4 = (v24 - *this) >> 5; if ( !v3 ) v4 = 1; v5 = __CFADD__(v4, v3); @@ -160756,40 +159755,40 @@ LABEL_10: v9 = v27; *((_DWORD *)v7 + 6) = a3[6]; *((_DWORD *)v7 + 7) = v8; - v10 = (void **)v26; - while ( a2 != (char *)v10 ) + v10 = v26; + while ( a2 != v10 ) { v14 = v9; - v9 += 8; + v9 += 32; std::string::basic_string(v14, v10); - v15 = v10; - v10 += 8; - v16 = (int)*(v10 - 1); - *(v9 - 2) = *(v10 - 2); - *(v9 - 1) = v16; + v15 = (void **)v10; + v10 += 32; + v16 = *((_DWORD *)v10 - 1); + *((_DWORD *)v9 - 2) = *((_DWORD *)v10 - 2); + *((_DWORD *)v9 - 1) = v16; std::string::_M_dispose(v15); } v11 = v10; - v12 = (int)&v27[(char *)v10 - v26 + 32]; + v12 = (int)&v27[v10 - v26 + 32]; v13 = (_DWORD *)v12; while ( v11 != v24 ) { v23 = v13; v22 = v12; std::string::basic_string(v13, v11); - v17 = v11[7]; - v23[6] = v11[6]; + v17 = *((_DWORD *)v11 + 7); + v23[6] = *((_DWORD *)v11 + 6); v23[7] = v17; - v18 = v11; - v11 += 8; + v18 = (void **)v11; + v11 += 32; std::string::_M_dispose(v18); v12 = v22; v13 = v23 + 8; } - v19 = v12 + (char *)v11 - (char *)v10; + v19 = (char *)(v12 + v11 - v10); if ( v26 ) operator delete(v26); - this[1] = (char *)v19; + this[1] = v19; *this = v27; result = this; this[2] = &v27[32 * v6]; @@ -160799,26 +159798,26 @@ LABEL_10: //----- (004DBF98) -------------------------------------------------------- char *__thiscall std::vector>::emplace_back>( - _DWORD *this, + void **this, _DWORD *a2) { char *v3; // ecx char *result; // eax v3 = (char *)this[1]; - if ( v3 == (char *)this[2] ) + if ( v3 == this[2] ) return std::vector>::_M_realloc_insert>( this, v3, a2); result = (char *)std::pair::pair(v3, a2); - this[1] += 136; + this[1] = (char *)this[1] + 136; return result; } //----- (004DBFD8) -------------------------------------------------------- char *__thiscall std::vector>::_M_realloc_insert>( - _DWORD *this, + void **this, char *a2, _DWORD *a3) { @@ -160827,7 +159826,7 @@ char *__thiscall std::vector>::_M_rea int v6; // edx bool v7; // cf unsigned int v8; // eax - void **v9; // ebx + char *v9; // ebx _DWORD *i; // ecx unsigned int v11; // ebx _DWORD *v12; // edx @@ -160847,7 +159846,7 @@ char *__thiscall std::vector>::_M_rea v3 = (char *)*this; v21 = (char *)this[1]; - v4 = -252645135 * ((int)&v21[-*this] >> 3); + v4 = -252645135 * ((v21 - (_BYTE *)*this) >> 3); if ( v4 == 15790320 ) std::__throw_length_error((std::length_error *)"vector::_M_realloc_insert"); v6 = -252645135 * ((v21 - v3) >> 3); @@ -160872,16 +159871,16 @@ LABEL_8: goto LABEL_9; } LABEL_10: - v9 = (void **)v3; + v9 = v3; std::pair::pair((_DWORD *)((char *)v25 + a2 - v3), a3); for ( i = v25; ; i = v22 ) { v22 = i + 34; - if ( a2 == (char *)v9 ) + if ( a2 == v9 ) break; std::pair::pair(i, v9); - v14 = v9; - v9 += 34; + v14 = (void **)v9; + v9 += 136; std::pair::~pair(v14); } v11 = (284225777 * ((unsigned int)(a2 - v3) >> 3)) & 0x1FFFFFFF; @@ -160908,16 +159907,18 @@ LABEL_10: // 4DC04B: variable 'v18' is possibly undefined //----- (004DC13C) -------------------------------------------------------- -int __thiscall std::vector>::emplace_back>(int this, _DWORD *a2) +unsigned int __thiscall std::vector>::emplace_back>( + int this, + _DWORD *a2) { int v3; // esi - int result; // eax + unsigned int result; // eax v3 = *(_DWORD *)(this + 4); if ( v3 == *(_DWORD *)(this + 8) ) return std::vector>::_M_realloc_insert>( (char **)this, - (char *)v3, + (void **)v3, a2); std::string::basic_string((_DWORD *)v3, a2); result = a2[6]; @@ -160927,9 +159928,9 @@ int __thiscall std::vector>::emplace_back>::_M_realloc_insert>( +unsigned int __thiscall std::vector>::_M_realloc_insert>( char **this, - char *a2, + void **a2, _DWORD *a3) { int v3; // eax @@ -160937,34 +159938,34 @@ int __thiscall std::vector>::_M_realloc_insert> 2); + v23 = this[1]; + v25 = (void **)*this; + v3 = -1227133513 * ((v23 - *this) >> 2); if ( v3 == 76695844 ) std::__throw_length_error((std::length_error *)"vector::_M_realloc_insert"); - v5 = -1227133513 * (((char *)v23 - v25) >> 2); + v5 = -1227133513 * ((v23 - (char *)v25) >> 2); if ( !v3 ) v5 = 1; v6 = __CFADD__(v5, v3); - v7 = v5 - 1227133513 * (((char *)v23 - v25) >> 2); + v7 = v5 - 1227133513 * ((v23 - (char *)v25) >> 2); if ( v6 ) goto LABEL_8; v24 = 0; @@ -160973,7 +159974,7 @@ int __thiscall std::vector>::_M_realloc_insert> 2)) & 0x3FFFFFFF; - v19 = (void **)&v25[28 * v10]; - v21 = &v24[7 * v10 + 7]; + v10 = (920350135 * ((unsigned int)((char *)a2 - (char *)v25) >> 2)) & 0x3FFFFFFF; + v19 = (char *)&v25[7 * v10]; + v21 = &v24[28 * v10 + 28]; v11 = v21; - for ( i = v19; i != v23; i += 7 ) + for ( i = v19; i != v23; i += 28 ) { v18 = v11; std::string::basic_string(v11, i); - v18[6] = i[6]; - v14 = i; + *((_DWORD *)v18 + 6) = *((_DWORD *)i + 6); + v14 = (void **)i; std::string::_M_dispose(v14); - v11 = v18 + 7; + v11 = v18 + 28; } - v15 = (char *)&v21[7 * ((920350135 * ((unsigned int)((char *)i - (char *)v19) >> 2)) & 0x3FFFFFFF)]; + v15 = &v21[28 * ((920350135 * ((unsigned int)(i - v19) >> 2)) & 0x3FFFFFFF)]; if ( v25 ) operator delete(v25); this[1] = v15; - *this = (char *)v24; + *this = v24; result = 28 * v7; - this[2] = (char *)&v24[7 * v7]; + this[2] = &v24[28 * v7]; return result; } // 4DC1FE: variable 'v17' is possibly undefined @@ -161134,8 +160135,8 @@ char *__thiscall std::vector::_M_realloc_insert::_M_realloc_insert::_M_realloc_insert 0x1FFFFFFF ) LABEL_8: v17 = 0x1FFFFFFF; - v9 = (char *)operator new((struct type_info *)(4 * v17), v14); + v9 = operator new((struct type_info *)(4 * v17), v14); LABEL_10: - *(_DWORD *)&v9[v8] = *a3; - if ( v8 > 0 ) - memmove(v9, Src, v8); + *(_DWORD *)&v8[(_DWORD)v9] = *a3; + if ( (int)v8 > 0 ) + memmove(v9, Src, (size_t)v8); v10 = v3 - a2; - v11 = &v9[v8 + 4]; + v11 = &v8[(_DWORD)v9 + 4]; if ( v3 - a2 > 0 ) qmemcpy(v11, a2, v10); v12 = &v11[v10]; @@ -161178,7 +160179,7 @@ LABEL_10: operator delete(Src); *this = v9; this[1] = v12; - result = &v9[4 * v17]; + result = (char *)v9 + 4 * v17; this[2] = result; return result; } @@ -161771,43 +160772,43 @@ void __fastcall std::string::_M_dispose(void **a1) } //----- (004DD4E0) -------------------------------------------------------- -unsigned int *__thiscall std::string::_M_replace(unsigned int *this, size_t a2, size_t a3, char *Src, size_t a5) +unsigned int **__thiscall std::string::_M_replace(unsigned int **this, size_t a2, size_t a3, char *Src, size_t a5) { unsigned int v5; // eax unsigned int v7; // edi unsigned int v8; // ecx bool v9; // cl - unsigned int v10; // eax + unsigned int *v10; // eax unsigned int v12; // eax size_t v13; // eax size_t v14; // ebp size_t v15; // edx _BYTE *v16; // esi - unsigned int v17; // [esp+1Ch] [ebp-30h] + unsigned int *v17; // [esp+1Ch] [ebp-30h] bool v18; // [esp+1Ch] [ebp-30h] _BYTE *v19; // [esp+20h] [ebp-2Ch] size_t Size; // [esp+28h] [ebp-24h] size_t v21; // [esp+2Ch] [ebp-20h] - v5 = this[1]; + v5 = (unsigned int)this[1]; if ( a5 > a3 + 0x3FFFFFFF - v5 ) std::__throw_length_error((std::length_error *)"basic_string::_M_replace"); v21 = a5 - a3; v7 = v5 + a5 - a3; v17 = *this; - if ( (unsigned int *)*this == this + 2 ) + if ( *this == (unsigned int *)(this + 2) ) v8 = 15; else - v8 = this[2]; + v8 = (unsigned int)this[2]; if ( v8 < v7 ) { std::string::_M_mutate((int)this, a2, a3, Src, a5); goto LABEL_12; } - v19 = (_BYTE *)(a2 + v17); + v19 = (char *)v17 + a2; Size = v5 - (a3 + a2); v9 = a3 != a5 && v5 != a3 + a2; - if ( v17 <= (unsigned int)Src && (unsigned int)Src <= v17 + v5 ) + if ( v17 <= (unsigned int *)Src && Src <= (char *)v17 + v5 ) { if ( a5 && a3 >= a5 ) { @@ -161896,8 +160897,8 @@ LABEL_18: } LABEL_12: v10 = *this; - this[1] = v7; - *(_BYTE *)(v10 + v7) = 0; + this[1] = (unsigned int *)v7; + *((_BYTE *)v10 + v7) = 0; return this; } @@ -162007,15 +161008,15 @@ _BYTE *__thiscall std::string::_M_construct<__gnu_cxx::__normal_iterator 0xF ) { - result = std::string::_M_create(v9, 0); + result = std::string::_M_create((unsigned int *)v9, 0); *this = result; this[2] = v9[0]; } @@ -162056,15 +161057,15 @@ _BYTE *__thiscall std::string::_M_construct<__gnu_cxx::__normal_iterator 0xF ) { - result = std::string::_M_create(v9, 0); + result = std::string::_M_create((unsigned int *)v9, 0); *this = result; this[2] = v9[0]; } @@ -162097,25 +161098,25 @@ _BYTE *__thiscall std::string::_M_construct<__gnu_cxx::__normal_iterator(void **this, unsigned __int8 *a2, size_t Size, int a4) +int __thiscall std::string::_M_construct(void **this, unsigned __int8 *a2, size_t Size, int a4) { - unsigned int result; // eax - _BYTE *v6; // edx - unsigned int v7[7]; // [esp+1Ch] [ebp-1Ch] BYREF + int result; // eax + int v6; // edx + int v7[7]; // [esp+1Ch] [ebp-1Ch] BYREF if ( !a2 && Size ) std::__throw_logic_error((std::logic_error *)"basic_string::_M_construct null not valid"); v7[0] = Size - (_DWORD)a2; if ( Size - (unsigned int)a2 > 0xF ) { - *this = std::string::_M_create(v7, 0); + *this = std::string::_M_create((unsigned int *)v7, 0); this[2] = (void *)v7[0]; } std::string::_S_copy_chars(*this, a2, Size); result = v7[0]; - v6 = *this; + v6 = (int)*this; this[1] = (void *)v7[0]; - v6[result] = 0; + *(_BYTE *)(v6 + result) = 0; return result; } // 4DDA20: using guessed type unsigned int var_1C[7]; @@ -162125,9 +161126,9 @@ _BYTE *__thiscall std::string::_M_construct(_DWORD *this, _BYTE *Src, in { size_t Size; // ebx _BYTE *result; // eax - unsigned int v7; // ebx - unsigned int v8; // ebx - unsigned int v9[4]; // [esp+1Ch] [ebp-10h] BYREF + int v7; // ebx + int v8; // ebx + int v9[4]; // [esp+1Ch] [ebp-10h] BYREF if ( a3 ) { @@ -162138,7 +161139,7 @@ _BYTE *__thiscall std::string::_M_construct(_DWORD *this, _BYTE *Src, in v9[0] = a3 - (_DWORD)Src; if ( (unsigned int)(a3 - (_DWORD)Src) > 0xF ) { - result = std::string::_M_create(v9, 0); + result = std::string::_M_create((unsigned int *)v9, 0); *this = result; this[2] = v9[0]; } @@ -162388,8 +161389,8 @@ _BYTE *__thiscall std::string::swap(_DWORD *this, _DWORD *a2) { _BYTE *result; // eax _BYTE *v3; // edi - _BYTE *v4; // esi - _BYTE *v5; // edx + _DWORD *v4; // esi + _DWORD *v5; // edx int v6; // ebp int v7; // edx int v8; // esi @@ -162404,7 +161405,7 @@ _BYTE *__thiscall std::string::swap(_DWORD *this, _DWORD *a2) if ( this != a2 ) { v3 = (_BYTE *)*this; - v4 = (_BYTE *)*a2; + v4 = (_DWORD *)*a2; v5 = a2 + 2; if ( this + 2 == (_DWORD *)*this ) { @@ -162528,21 +161529,21 @@ int __thiscall std::string::erase(int *this, int a2) } //----- (004DE030) -------------------------------------------------------- -int __thiscall std::string::erase(int *this, _BYTE *a2, int a3) +_BYTE *__thiscall std::string::erase(int *this, _BYTE *a2, int a3) { - int v4; // esi + _BYTE *v4; // esi - v4 = (int)&a2[-*this]; + v4 = &a2[-*this]; if ( a3 == this[1] + *this ) { - this[1] = v4; + this[1] = (int)v4; *a2 = 0; } else { - std::string::_M_erase(this, v4, a3 - (_DWORD)a2); + std::string::_M_erase(this, (int)v4, a3 - (_DWORD)a2); } - return v4 + *this; + return &v4[*this]; } //----- (004DE090) -------------------------------------------------------- @@ -162556,21 +161557,21 @@ int __thiscall std::string::erase(int *this, int a2) } //----- (004DE0C0) -------------------------------------------------------- -int __thiscall std::string::erase(int *this, _BYTE *a2, int a3) +_BYTE *__thiscall std::string::erase(int *this, _BYTE *a2, int a3) { - int v4; // esi + _BYTE *v4; // esi - v4 = (int)&a2[-*this]; + v4 = &a2[-*this]; if ( a3 == this[1] + *this ) { - this[1] = v4; + this[1] = (int)v4; *a2 = 0; } else { - std::string::_M_erase(this, v4, a3 - (_DWORD)a2); + std::string::_M_erase(this, (int)v4, a3 - (_DWORD)a2); } - return v4 + *this; + return &v4[*this]; } //----- (004DE120) -------------------------------------------------------- @@ -162671,17 +161672,17 @@ _DWORD *__thiscall std::string::append(_DWORD *this, size_t a2, char a3) //----- (004DE320) -------------------------------------------------------- _DWORD *__thiscall std::string::assign(_DWORD *this, int a2) { - _BYTE *v3; // eax - _BYTE *Src; // ecx + _DWORD *v3; // eax + _DWORD *Src; // ecx int v5; // edx int v6; // ebp - v3 = (_BYTE *)*this; - Src = *(_BYTE **)a2; + v3 = (_DWORD *)*this; + Src = *(_DWORD **)a2; v5 = *(_DWORD *)(a2 + 4); if ( *(_DWORD *)a2 != a2 + 8 ) { - if ( v3 == (_BYTE *)(this + 2) ) + if ( v3 == this + 2 ) { *this = Src; this[1] = v5; @@ -162701,40 +161702,40 @@ _DWORD *__thiscall std::string::assign(_DWORD *this, int a2) } } *(_DWORD *)a2 = a2 + 8; - v3 = (_BYTE *)(a2 + 8); + v3 = (_DWORD *)(a2 + 8); goto LABEL_5; } if ( v5 ) { if ( v5 == 1 ) - *v3 = *(_BYTE *)(a2 + 8); + *(_BYTE *)v3 = *(_BYTE *)(a2 + 8); else memcpy(v3, Src, *(_DWORD *)(a2 + 4)); v5 = *(_DWORD *)(a2 + 4); - v3 = (_BYTE *)*this; + v3 = (_DWORD *)*this; } this[1] = v5; - v3[v5] = 0; - v3 = *(_BYTE **)a2; + *((_BYTE *)v3 + v5) = 0; + v3 = *(_DWORD **)a2; LABEL_5: *(_DWORD *)(a2 + 4) = 0; - *v3 = 0; + *(_BYTE *)v3 = 0; return this; } //----- (004DE3D0) -------------------------------------------------------- -unsigned int *__thiscall std::string::assign(unsigned int *this, char *Str) +unsigned int **__thiscall std::string::assign(unsigned int **this, char *Str) { size_t v3; // eax v3 = strlen(Str); - return std::string::_M_replace(this, 0, this[1], Str, v3); + return std::string::_M_replace(this, 0, (size_t)this[1], Str, v3); } //----- (004DE410) -------------------------------------------------------- -unsigned int *__thiscall std::string::assign(unsigned int *this, char *a2, size_t a3) +unsigned int **__thiscall std::string::assign(unsigned int **this, char *a2, size_t a3) { - return std::string::_M_replace(this, 0, this[1], a2, a3); + return std::string::_M_replace(this, 0, (size_t)this[1], a2, a3); } //----- (004DE440) -------------------------------------------------------- @@ -162745,7 +161746,7 @@ void *__thiscall std::string::assign(void *this, int a2) } //----- (004DE460) -------------------------------------------------------- -unsigned int *__thiscall std::string::assign(unsigned int *this, _DWORD *a2, unsigned int a3, size_t a4) +unsigned int **__thiscall std::string::assign(unsigned int **this, _DWORD *a2, unsigned int a3, size_t a4) { size_t v4; // ebx @@ -162758,13 +161759,13 @@ unsigned int *__thiscall std::string::assign(unsigned int *this, _DWORD *a2, uns "basic_string::assign", a3, a2[1]); - return std::string::_M_replace(this, 0, this[1], (char *)(*a2 + a3), v4); + return std::string::_M_replace(this, 0, (size_t)this[1], (char *)(*a2 + a3), v4); } //----- (004DE4D0) -------------------------------------------------------- -unsigned int *__thiscall std::string::assign(unsigned int *this, char *a2, size_t a3) +unsigned int **__thiscall std::string::assign(unsigned int **this, char *a2, size_t a3) { - return std::string::_M_replace(this, 0, this[1], a2, a3); + return std::string::_M_replace(this, 0, (size_t)this[1], a2, a3); } //----- (004DE500) -------------------------------------------------------- @@ -162774,13 +161775,13 @@ _DWORD *__thiscall std::string::assign(_DWORD *this, size_t a2, char a3) } //----- (004DE530) -------------------------------------------------------- -size_t __thiscall std::string::insert(unsigned int *this, int a2, char *a3, size_t a4) +size_t __thiscall std::string::insert(unsigned int **this, int a2, char *a3, size_t a4) { - size_t v5; // eax + unsigned int v5; // eax size_t v6; // ebx - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; if ( v6 > v5 ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", @@ -162788,7 +161789,7 @@ size_t __thiscall std::string::insert(unsigned int *this, int a2, char *a3, size v6, v5); std::string::_M_replace(this, v6, 0, a3, a4); - return v6 + *this; + return (size_t)*this + v6; } //----- (004DE5A0) -------------------------------------------------------- @@ -162812,17 +161813,17 @@ size_t __thiscall std::string::insert(_DWORD *this, int a2, size_t a3, char a4) } //----- (004DE620) -------------------------------------------------------- -unsigned int *__thiscall std::string::insert(unsigned int *this, int a2, char *a3, size_t a4) +unsigned int **__thiscall std::string::insert(unsigned int **this, int a2, char *a3, size_t a4) { size_t v4; // eax - v4 = a2 - *this; - if ( v4 > this[1] ) + v4 = a2 - (_DWORD)*this; + if ( v4 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", v4, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, v4, 0, a3, a4); } @@ -162843,46 +161844,46 @@ _DWORD *__thiscall std::string::insert(_DWORD *this, int a2, size_t a3, char a4) } //----- (004DE700) -------------------------------------------------------- -unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2, char *Str) +unsigned int **__thiscall std::string::insert(unsigned int **this, unsigned int a2, char *Str) { size_t v4; // eax v4 = strlen(Str); - if ( a2 > this[1] ) + if ( a2 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", a2, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, a2, 0, Str, v4); } //----- (004DE770) -------------------------------------------------------- -unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2, char *a3, size_t a4) +unsigned int **__thiscall std::string::insert(unsigned int **this, unsigned int a2, char *a3, size_t a4) { - if ( a2 > this[1] ) + if ( a2 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", a2, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, a2, 0, a3, a4); } //----- (004DE7D0) -------------------------------------------------------- -unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2, int a3) +unsigned int **__thiscall std::string::insert(unsigned int **this, unsigned int a2, int a3) { - if ( a2 > this[1] ) + if ( a2 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", a2, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, a2, 0, *(char **)a3, *(_DWORD *)(a3 + 4)); } //----- (004DE830) -------------------------------------------------------- -unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2, _DWORD *a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::insert(unsigned int **this, unsigned int a2, _DWORD *a3, char *a4, size_t a5) { size_t v5; // ebx @@ -162895,12 +161896,12 @@ unsigned int *__thiscall std::string::insert(unsigned int *this, unsigned int a2 "basic_string::insert", (size_t)a4, a3[1]); - if ( a2 > this[1] ) + if ( a2 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", a2, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, a2, 0, &a4[*a3], v5); } @@ -162917,21 +161918,21 @@ _DWORD *__thiscall std::string::insert(_DWORD *this, unsigned int a2, size_t a3, } //----- (004DE920) -------------------------------------------------------- -unsigned int *__thiscall std::string::insert<__gnu_cxx::__normal_iterator>( - unsigned int *this, +unsigned int **__thiscall std::string::insert<__gnu_cxx::__normal_iterator>( + unsigned int **this, int a2, char *a3, int a4) { size_t v4; // eax - v4 = a2 - *this; - if ( v4 > this[1] ) + v4 = a2 - (_DWORD)*this; + if ( v4 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", v4, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, v4, 0, a3, a4 - (_DWORD)a3); } @@ -163018,14 +162019,14 @@ size_t __cdecl std::string::_S_move(void *a1, const void *Src, size_t Size) } //----- (004DEA70) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // esi + unsigned int v5; // esi size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163039,14 +162040,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DEAF0) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // esi + unsigned int v5; // esi size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163060,14 +162061,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DEB70) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, int a4) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, int a4) { - size_t v4; // ebx + unsigned int v4; // ebx size_t v5; // edx size_t v6; // eax - v4 = this[1]; - v5 = a2 - *this; + v4 = (unsigned int)this[1]; + v5 = a2 - (_DWORD)*this; v6 = v4 - v5; if ( a3 - a2 <= v4 - v5 ) v6 = a3 - a2; @@ -163081,16 +162082,16 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DEBF0) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *Str) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *Str) { size_t v5; // eax - size_t v6; // ecx + unsigned int v6; // ecx size_t v7; // edx size_t v8; // esi v5 = strlen(Str); - v6 = this[1]; - v7 = a2 - *this; + v6 = (unsigned int)this[1]; + v7 = a2 - (_DWORD)*this; v8 = v6 - v7; if ( a3 - a2 <= v6 - v7 ) v8 = a3 - a2; @@ -163104,14 +162105,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DEC70) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // esi + unsigned int v5; // esi size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163125,14 +162126,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DECF0) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // ebx + unsigned int v5; // ebx size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163146,14 +162147,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DED60) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // esi + unsigned int v5; // esi size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163167,14 +162168,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DEDE0) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // ebx + unsigned int v5; // ebx size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163194,14 +162195,14 @@ _DWORD *__thiscall std::string::replace(_DWORD *this, int a2, int a3, size_t a4, } //----- (004DEE70) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // esi + unsigned int v5; // esi size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163215,16 +162216,16 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DEEF0) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *Str) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *Str) { size_t v5; // eax - size_t v6; // ecx + unsigned int v6; // ecx size_t v7; // edx size_t v8; // esi v5 = strlen(Str); - v6 = this[1]; - v7 = a2 - *this; + v6 = (unsigned int)this[1]; + v7 = a2 - (_DWORD)*this; v8 = v6 - v7; if ( a3 - a2 <= v6 - v7 ) v8 = a3 - a2; @@ -163238,14 +162239,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DEF70) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // esi + unsigned int v5; // esi size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163259,14 +162260,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DEFF0) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // ebx + unsigned int v5; // ebx size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163280,14 +162281,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DF060) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, int a4) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, int a4) { - size_t v4; // ebx + unsigned int v4; // ebx size_t v5; // edx size_t v6; // eax - v4 = this[1]; - v5 = a2 - *this; + v4 = (unsigned int)this[1]; + v5 = a2 - (_DWORD)*this; v6 = v4 - v5; if ( a3 - a2 <= v4 - v5 ) v6 = a3 - a2; @@ -163301,14 +162302,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DF0E0) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // esi + unsigned int v5; // esi size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163322,14 +162323,14 @@ unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3 } //----- (004DF160) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, int a2, int a3, char *a4, size_t a5) +unsigned int **__thiscall std::string::replace(unsigned int **this, int a2, int a3, char *a4, size_t a5) { - size_t v5; // esi + unsigned int v5; // esi size_t v6; // edx size_t v7; // eax - v5 = this[1]; - v6 = a2 - *this; + v5 = (unsigned int)this[1]; + v6 = a2 - (_DWORD)*this; v7 = v5 - v6; if ( a3 - a2 <= v5 - v6 ) v7 = a3 - a2; @@ -163349,27 +162350,27 @@ _DWORD *__thiscall std::string::replace(_DWORD *this, int a2, int a3, size_t a4, } //----- (004DF200) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, unsigned int a2, unsigned int a3, char *Str) +unsigned int **__thiscall std::string::replace(unsigned int **this, unsigned int a2, unsigned int a3, char *Str) { size_t v5; // eax size_t v6; // edx v5 = strlen(Str); - v6 = this[1] - a2; + v6 = (size_t)this[1] - a2; if ( v6 > a3 ) v6 = a3; - if ( a2 > this[1] ) + if ( a2 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", a2, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, a2, v6, Str, v5); } //----- (004DF270) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace( - unsigned int *this, +unsigned int **__thiscall std::string::replace( + unsigned int **this, unsigned int a2, unsigned int a3, char *a4, @@ -163377,38 +162378,38 @@ unsigned int *__thiscall std::string::replace( { size_t v5; // edx - v5 = this[1] - a2; + v5 = (size_t)this[1] - a2; if ( v5 > a3 ) v5 = a3; - if ( a2 > this[1] ) + if ( a2 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", a2, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, a2, v5, a4, a5); } //----- (004DF2D0) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace(unsigned int *this, unsigned int a2, size_t a3, int a4) +unsigned int **__thiscall std::string::replace(unsigned int **this, unsigned int a2, size_t a3, int a4) { size_t v4; // eax - v4 = this[1] - a2; + v4 = (size_t)this[1] - a2; if ( v4 > a3 ) v4 = a3; - if ( a2 > this[1] ) + if ( a2 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", a2, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, a2, v4, *(char **)a4, *(_DWORD *)(a4 + 4)); } //----- (004DF340) -------------------------------------------------------- -unsigned int *__thiscall std::string::replace( - unsigned int *this, +unsigned int **__thiscall std::string::replace( + unsigned int **this, unsigned int a2, size_t a3, _DWORD *a4, @@ -163427,15 +162428,15 @@ unsigned int *__thiscall std::string::replace( "basic_string::replace", a5, a4[1]); - v7 = this[1] - a2; + v7 = (size_t)this[1] - a2; if ( v7 > a3 ) v7 = a3; - if ( a2 > this[1] ) + if ( a2 > (unsigned int)this[1] ) std::__throw_out_of_range_fmt( "%s: __pos (which is %zu) > this->size() (which is %zu)", "basic_string::replace", a2, - this[1]); + (size_t)this[1]); return std::string::_M_replace(this, a2, v7, (char *)(*a4 + a5), v6); } @@ -163462,7 +162463,7 @@ void __thiscall std::string::reserve(_DWORD *this, unsigned int a2) unsigned int v3; // ecx unsigned int v4; // eax _BYTE *v5; // edi - _BYTE *v6; // esi + _DWORD *v6; // esi unsigned int v7; // edx _BYTE *v8; // eax _BYTE *Src; // ebp @@ -163506,14 +162507,14 @@ LABEL_8: { *v10 = *Src; } - if ( Src != v6 ) + if ( Src != (_BYTE *)v6 ) operator delete(Src); v12 = a2; *this = v10; this[2] = v12; return; } - if ( v6 != v5 ) + if ( v6 != (_DWORD *)v5 ) { if ( v3 ) { @@ -163608,9 +162609,9 @@ void __thiscall std::string::_M_assign(int this, int a2) size_t Size; // edi unsigned int v5; // eax _BYTE *Src; // eax - unsigned int v7; // eax + int v7; // eax int v8; // [esp+1Ch] [ebp-30h] - unsigned int v9[8]; // [esp+2Ch] [ebp-20h] BYREF + int v9[8]; // [esp+2Ch] [ebp-20h] BYREF if ( this != a2 ) { @@ -163624,7 +162625,7 @@ void __thiscall std::string::_M_assign(int this, int a2) { v8 = this + 8; v9[0] = *(_DWORD *)(a2 + 4); - v2 = std::string::_M_create(v9, v5); + v2 = std::string::_M_create((unsigned int *)v9, v5); if ( v8 != *(_DWORD *)this ) operator delete(*(void **)this); v7 = v9[0]; @@ -163690,7 +162691,7 @@ int __thiscall std::string::_M_length(_DWORD *this, int a2) } //----- (004DF7D0) -------------------------------------------------------- -size_t __thiscall std::string::_M_mutate(int this, size_t Size, int a3, _BYTE *a4, size_t a5) +int __thiscall std::string::_M_mutate(int this, size_t Size, int a3, _BYTE *a4, size_t a5) { _BYTE *v6; // edi unsigned int v7; // eax @@ -163698,14 +162699,14 @@ size_t __thiscall std::string::_M_mutate(int this, size_t Size, int a3, _BYTE *a _BYTE *v9; // ecx _BYTE *v10; // ebp _BYTE *v11; // esi - size_t result; // eax + int result; // eax _BYTE *Src; // [esp+4h] [ebp-48h] size_t v14; // [esp+14h] [ebp-38h] size_t v15; // [esp+18h] [ebp-34h] _BYTE *v16; // [esp+18h] [ebp-34h] _BYTE *v17; // [esp+1Ch] [ebp-30h] _BYTE *v18; // [esp+1Ch] [ebp-30h] - size_t v19[8]; // [esp+2Ch] [ebp-20h] BYREF + int v19[8]; // [esp+2Ch] [ebp-20h] BYREF v15 = Size + a3; v14 = *(_DWORD *)(this + 4) - (Size + a3); @@ -163715,7 +162716,7 @@ size_t __thiscall std::string::_M_mutate(int this, size_t Size, int a3, _BYTE *a v7 = 15; else v7 = *(_DWORD *)(this + 8); - v8 = std::string::_M_create(v19, v7); + v8 = std::string::_M_create((unsigned int *)v19, v7); v9 = *(_BYTE **)this; v10 = v8; if ( Size ) @@ -163878,7 +162879,7 @@ _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2, int a3) } //----- (004DFAB0) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *Str, int a3) +int __thiscall std::string::basic_string(void **this, char *Str, int a3) { size_t Size; // eax int v6; // [esp+8h] [ebp-14h] @@ -163939,7 +162940,7 @@ _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2, int a3) // 4DFB90: variable 'v4' is possibly undefined //----- (004DFBA0) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4) +int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4) { size_t v4; // eax @@ -163956,7 +162957,7 @@ unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_ } //----- (004DFBF0) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4) +int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4) { unsigned int v4; // esi size_t v5; // eax @@ -163979,7 +162980,7 @@ unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_ } //----- (004DFC50) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5) +int __thiscall std::string::basic_string(void **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5) { unsigned int v5; // eax unsigned int v6; // eax @@ -164121,7 +163122,7 @@ _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2, int a3) } //----- (004DFE30) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *Str, int a3) +int __thiscall std::string::basic_string(void **this, char *Str, int a3) { size_t Size; // eax int v6; // [esp+8h] [ebp-14h] @@ -164182,7 +163183,7 @@ _BYTE *__thiscall std::string::basic_string(_DWORD *this, int a2, int a3) // 4DFF10: variable 'v4' is possibly undefined //----- (004DFF20) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4) +int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4) { size_t v4; // eax @@ -164199,7 +163200,7 @@ unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_ } //----- (004DFF70) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4) +int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_t Size, int a4) { unsigned int v4; // esi size_t v5; // eax @@ -164222,7 +163223,7 @@ unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, size_ } //----- (004DFFD0) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5) +int __thiscall std::string::basic_string(void **this, _DWORD *a2, unsigned int a3, unsigned int a4, int a5) { unsigned int v5; // eax unsigned int v6; // eax @@ -164316,17 +163317,17 @@ void __fastcall std::string::~string(void **a1) //----- (004E0140) -------------------------------------------------------- _DWORD *__thiscall std::string::operator=(_DWORD *this, _DWORD *a2) { - _BYTE *v3; // eax + _DWORD *v3; // eax _DWORD *v4; // ecx int v5; // edx int v6; // ebp - v3 = (_BYTE *)*this; + v3 = (_DWORD *)*this; v4 = (_DWORD *)*a2; v5 = a2[1]; if ( a2 + 2 != (_DWORD *)*a2 ) { - if ( v3 == (_BYTE *)(this + 2) ) + if ( v3 == this + 2 ) { *this = v4; this[1] = v5; @@ -164352,28 +163353,28 @@ _DWORD *__thiscall std::string::operator=(_DWORD *this, _DWORD *a2) if ( v5 ) { if ( v5 == 1 ) - *v3 = *((_BYTE *)a2 + 8); + *(_BYTE *)v3 = *((_BYTE *)a2 + 8); else memcpy(v3, a2 + 2, a2[1]); - v3 = (_BYTE *)*this; + v3 = (_DWORD *)*this; v5 = a2[1]; } this[1] = v5; - v3[v5] = 0; - v3 = (_BYTE *)*a2; + *((_BYTE *)v3 + v5) = 0; + v3 = (_DWORD *)*a2; LABEL_5: a2[1] = 0; - *v3 = 0; + *(_BYTE *)v3 = 0; return this; } //----- (004E01F0) -------------------------------------------------------- -unsigned int *__thiscall std::string::operator=(unsigned int *this, char *Str) +unsigned int **__thiscall std::string::operator=(unsigned int **this, char *Str) { size_t v3; // eax v3 = strlen(Str); - return std::string::_M_replace(this, 0, this[1], Str, v3); + return std::string::_M_replace(this, 0, (size_t)this[1], Str, v3); } //----- (004E0230) -------------------------------------------------------- @@ -164384,9 +163385,9 @@ void *__thiscall std::string::operator=(void *this, int a2) } //----- (004E0250) -------------------------------------------------------- -unsigned int *__thiscall std::string::operator=(unsigned int *this, char *a2, size_t a3) +unsigned int **__thiscall std::string::operator=(unsigned int **this, char *a2, size_t a3) { - std::string::_M_replace(this, 0, this[1], a2, a3); + std::string::_M_replace(this, 0, (size_t)this[1], a2, a3); return this; } @@ -164432,18 +163433,18 @@ _DWORD *__thiscall std::string::operator+=(_DWORD *this, _BYTE *a2, size_t a3) _DWORD *__thiscall std::string::operator+=(_DWORD *this, char a2) { _DWORD *result; // eax - char *v3; // ecx + _DWORD *v3; // ecx size_t v4; // ebx - char *v5; // edx + _DWORD *v5; // edx unsigned int v6; // esi unsigned int v7; // ecx int v8; // edx _DWORD *v9; // [esp+1Ch] [ebp-10h] result = this; - v3 = (char *)(this + 2); - v4 = *((_DWORD *)v3 - 1); - v5 = (char *)*((_DWORD *)v3 - 2); + v3 = this + 2; + v4 = *(v3 - 1); + v5 = (_DWORD *)*(v3 - 2); v6 = v4 + 1; if ( v5 == v3 ) v7 = 15; @@ -164454,9 +163455,9 @@ _DWORD *__thiscall std::string::operator+=(_DWORD *this, char a2) v9 = result; std::string::_M_mutate((int)result, v4, 0, 0, 1u); result = v9; - v5 = (char *)*v9; + v5 = (_DWORD *)*v9; } - v5[v4] = a2; + *((_BYTE *)v5 + v4) = a2; v8 = *result; result[1] = v6; *(_BYTE *)(v8 + v4 + 1) = 0; @@ -164716,13 +163717,13 @@ wchar_t *__thiscall std::wstring::_M_construct<__gnu_cxx::__normal_iterator> 1; v8[0] = N; if ( N > 7 ) { - result = (wchar_t *)std::wstring::_M_create(v8, 0); + result = (wchar_t *)std::wstring::_M_create((unsigned int *)v8, 0); *this = result; this[2] = (wchar_t *)v8[0]; goto LABEL_8; @@ -164757,13 +163758,13 @@ wchar_t *__thiscall std::wstring::_M_construct<__gnu_cxx::__normal_iterator> 1; v8[0] = N; if ( N > 7 ) { - result = (wchar_t *)std::wstring::_M_create(v8, 0); + result = (wchar_t *)std::wstring::_M_create((unsigned int *)v8, 0); *this = result; this[2] = (wchar_t *)v8[0]; goto LABEL_8; @@ -165049,7 +164050,7 @@ wchar_t *__thiscall std::wstring::_M_construct_aux_2(wchar_t **this, size_t a2, } //----- (004E0DB0) -------------------------------------------------------- -int __thiscall std::wstring::at(_DWORD *this, unsigned int a2) +unsigned int __thiscall std::wstring::at(_DWORD *this, unsigned int a2) { if ( a2 >= this[1] ) std::__throw_out_of_range_fmt("basic_string::at: __n (which is %zu) >= this->size() (which is %zu)", a2, this[1]); @@ -165356,34 +164357,34 @@ int __thiscall std::wstring::append(size_t *this, size_t a2, __int16 a3) } //----- (004E1300) -------------------------------------------------------- -wchar_t **__thiscall std::wstring::assign(wchar_t **this, int a2) +wchar_t ***__thiscall std::wstring::assign(wchar_t ***this, int a2) { - wchar_t *S1; // eax + wchar_t **S1; // eax wchar_t *v4; // edi wchar_t *v5; // ecx - wchar_t *v6; // edx + wchar_t **v6; // edx wchar_t *v7; // ebp wchar_t *v9; // [esp+1Ch] [ebp-20h] S1 = *this; v4 = *(wchar_t **)a2; v5 = (wchar_t *)(a2 + 8); - v6 = *(wchar_t **)(a2 + 4); + v6 = *(wchar_t ***)(a2 + 4); if ( *(_DWORD *)a2 != a2 + 8 ) { v9 = *(wchar_t **)(a2 + 8); - if ( S1 == (wchar_t *)(this + 2) ) + if ( S1 == (wchar_t **)(this + 2) ) { - *this = v4; + *this = (wchar_t **)v4; this[1] = v6; - this[2] = v9; + this[2] = (wchar_t **)v9; } else { - *this = v4; - v7 = this[2]; + *this = (wchar_t **)v4; + v7 = (wchar_t *)this[2]; this[1] = v6; - this[2] = v9; + this[2] = (wchar_t **)v9; if ( S1 ) { *(_DWORD *)a2 = S1; @@ -165392,29 +164393,29 @@ wchar_t **__thiscall std::wstring::assign(wchar_t **this, int a2) } } *(_DWORD *)a2 = v5; - S1 = (wchar_t *)(a2 + 8); + S1 = (wchar_t **)(a2 + 8); goto LABEL_5; } if ( v6 ) { - if ( v6 == (wchar_t *)1 ) + if ( v6 == (wchar_t **)1 ) { - *S1 = *(_WORD *)(a2 + 8); + *(_WORD *)S1 = *(_WORD *)(a2 + 8); } else { - wmemcpy(S1, (const wchar_t *)(a2 + 8), *(_DWORD *)(a2 + 4)); - v6 = *(wchar_t **)(a2 + 4); + wmemcpy((wchar_t *)S1, (const wchar_t *)(a2 + 8), *(_DWORD *)(a2 + 4)); + v6 = *(wchar_t ***)(a2 + 4); S1 = *this; v5 = *(wchar_t **)a2; } } this[1] = v6; - S1[(_DWORD)v6] = 0; - S1 = v5; + *((_WORD *)S1 + (_DWORD)v6) = 0; + S1 = (wchar_t **)v5; LABEL_5: *(_DWORD *)(a2 + 4) = 0; - *S1 = 0; + *(_WORD *)S1 = 0; return this; } @@ -165642,13 +164643,13 @@ _DWORD *__thiscall std::wstring::rbegin(_DWORD *this, _DWORD *a2) } //----- (004E19D0) -------------------------------------------------------- -int __thiscall std::wstring::resize(int *this, unsigned int a2) +int __thiscall std::wstring::resize(int *this, size_t a2) { return std::wstring::resize(this, a2, 0); } //----- (004E19F0) -------------------------------------------------------- -int __thiscall std::wstring::resize(int *this, unsigned int a2, wchar_t a3) +int __thiscall std::wstring::resize(int *this, size_t a2, wchar_t a3) { size_t v3; // edx int result; // eax @@ -166275,9 +165276,9 @@ void __thiscall std::wstring::_M_assign(int this, int a2) size_t N; // edi unsigned int v5; // eax const wchar_t *S2; // eax - unsigned int v7; // eax + int v7; // eax int v8; // [esp+1Ch] [ebp-30h] - unsigned int v9[8]; // [esp+2Ch] [ebp-20h] BYREF + int v9[8]; // [esp+2Ch] [ebp-20h] BYREF if ( this != a2 ) { @@ -166291,7 +165292,7 @@ void __thiscall std::wstring::_M_assign(int this, int a2) { v8 = this + 8; v9[0] = *(_DWORD *)(a2 + 4); - S1 = (wchar_t *)std::wstring::_M_create(v9, v5); + S1 = (wchar_t *)std::wstring::_M_create((unsigned int *)v9, v5); if ( v8 != *(_DWORD *)this ) operator delete(*(void **)this); v7 = v9[0]; @@ -166372,18 +165373,18 @@ const wchar_t *__thiscall std::wstring::_M_mutate(const wchar_t **this, size_t N wchar_t *v12; // ebx const wchar_t *result; // eax size_t v14; // [esp+18h] [ebp-34h] - wchar_t *v15; // [esp+1Ch] [ebp-30h] - unsigned int v16[8]; // [esp+2Ch] [ebp-20h] BYREF + const wchar_t **v15; // [esp+1Ch] [ebp-30h] + int v16[8]; // [esp+2Ch] [ebp-20h] BYREF v6 = this[1]; - v16[0] = (unsigned int)v6 + a5 - a3; + v16[0] = (int)v6 + a5 - a3; v14 = (size_t)v6 - N - a3; - v15 = (wchar_t *)(this + 2); + v15 = this + 2; if ( this + 2 == (const wchar_t **)*this ) v7 = 7; else v7 = (unsigned int)this[2]; - S1 = (wchar_t *)std::wstring::_M_create(v16, v7); + S1 = (wchar_t *)std::wstring::_M_create((unsigned int *)v16, v7); if ( N ) { S2 = *this; @@ -166414,7 +165415,7 @@ const wchar_t *__thiscall std::wstring::_M_mutate(const wchar_t **this, size_t N v10 = (wchar_t *)*this; } } - if ( v15 != v10 ) + if ( v15 != (const wchar_t **)v10 ) operator delete(v10); result = (const wchar_t *)v16[0]; *this = S1; @@ -166982,32 +165983,32 @@ void __fastcall std::wstring::~wstring(void **a1) } //----- (004E3170) -------------------------------------------------------- -wchar_t **__thiscall std::wstring::operator=(wchar_t **this, int a2) +wchar_t ***__thiscall std::wstring::operator=(wchar_t ***this, int a2) { - wchar_t *S1; // eax - const wchar_t *S2; // edx - wchar_t *v5; // ecx + wchar_t **S1; // eax + wchar_t *S2; // edx + wchar_t **v5; // ecx wchar_t *v6; // ebp wchar_t *v8; // [esp+1Ch] [ebp-20h] S1 = *this; - S2 = *(const wchar_t **)a2; - v5 = *(wchar_t **)(a2 + 4); + S2 = *(wchar_t **)a2; + v5 = *(wchar_t ***)(a2 + 4); if ( a2 + 8 != *(_DWORD *)a2 ) { v8 = *(wchar_t **)(a2 + 8); - if ( S1 == (wchar_t *)(this + 2) ) + if ( S1 == (wchar_t **)(this + 2) ) { - *this = (wchar_t *)S2; + *this = (wchar_t **)S2; this[1] = v5; - this[2] = v8; + this[2] = (wchar_t **)v8; } else { - *this = (wchar_t *)S2; - v6 = this[2]; + *this = (wchar_t **)S2; + v6 = (wchar_t *)this[2]; this[1] = v5; - this[2] = v8; + this[2] = (wchar_t **)v8; if ( S1 ) { *(_DWORD *)a2 = S1; @@ -167016,29 +166017,29 @@ wchar_t **__thiscall std::wstring::operator=(wchar_t **this, int a2) } } *(_DWORD *)a2 = a2 + 8; - S1 = (wchar_t *)(a2 + 8); + S1 = (wchar_t **)(a2 + 8); goto LABEL_5; } if ( v5 ) { - if ( v5 == (wchar_t *)1 ) + if ( v5 == (wchar_t **)1 ) { - *S1 = *S2; + *(_WORD *)S1 = *S2; } else { - wmemcpy(S1, S2, *(_DWORD *)(a2 + 4)); + wmemcpy((wchar_t *)S1, S2, *(_DWORD *)(a2 + 4)); S1 = *this; - v5 = *(wchar_t **)(a2 + 4); - S2 = *(const wchar_t **)a2; + v5 = *(wchar_t ***)(a2 + 4); + S2 = *(wchar_t **)a2; } } this[1] = v5; - S1[(_DWORD)v5] = 0; - S1 = (wchar_t *)S2; + *((_WORD *)S1 + (_DWORD)v5) = 0; + S1 = (wchar_t **)S2; LABEL_5: *(_DWORD *)(a2 + 4) = 0; - *S1 = 0; + *(_WORD *)S1 = 0; return this; } @@ -167104,35 +166105,35 @@ int __thiscall std::wstring::operator+=(_DWORD *this, wchar_t *a2, size_t a3) } //----- (004E33C0) -------------------------------------------------------- -_DWORD *__thiscall std::wstring::operator+=(char *this, __int16 a2) +const wchar_t **__thiscall std::wstring::operator+=(char *this, wchar_t a2) { - _DWORD *result; // eax + const wchar_t **result; // eax char *v3; // ecx size_t v4; // ebx - char *v5; // edx - unsigned int v6; // esi + const wchar_t *v5; // edx + const wchar_t *v6; // esi unsigned int v7; // ecx - _DWORD *v8; // [esp+1Ch] [ebp-10h] + const wchar_t **v8; // [esp+1Ch] [ebp-10h] - result = this; + result = (const wchar_t **)this; v3 = this + 8; v4 = *((_DWORD *)v3 - 1); - v5 = (char *)*((_DWORD *)v3 - 2); - v6 = v4 + 1; - if ( v5 == v3 ) + v5 = (const wchar_t *)*((_DWORD *)v3 - 2); + v6 = (const wchar_t *)(v4 + 1); + if ( v5 == (const wchar_t *)v3 ) v7 = 7; else - v7 = result[2]; - if ( v6 > v7 ) + v7 = (unsigned int)result[2]; + if ( (unsigned int)v6 > v7 ) { v8 = result; - std::wstring::_M_mutate((const wchar_t **)result, v4, 0, 0, 1u); + std::wstring::_M_mutate(result, v4, 0, 0, 1u); result = v8; - v5 = (char *)*v8; + v5 = *v8; } - *(_WORD *)&v5[2 * v4] = a2; + v5[v4] = a2; result[1] = v6; - *(_WORD *)&v5[2 * v4 + 2] = 0; + v5[v4 + 1] = 0; return result; } @@ -167661,7 +166662,7 @@ unsigned int __fastcall std::stringbuf::_M_update_egptr(int a1) } //----- (004E3ED0) -------------------------------------------------------- -int __thiscall std::stringbuf::_M_stringbuf_init(int this, int a2) +char *__thiscall std::stringbuf::_M_stringbuf_init(int this, int a2) { unsigned int v2; // edx @@ -167669,50 +166670,50 @@ int __thiscall std::stringbuf::_M_stringbuf_init(int this, int a2) *(_DWORD *)(this + 32) = a2; if ( (a2 & 3) != 0 ) v2 = *(_DWORD *)(this + 40); - return std::stringbuf::_M_sync((_DWORD *)this, *(_DWORD **)(this + 36), 0, v2); + return std::stringbuf::_M_sync((_DWORD *)this, *(char **)(this + 36), 0, v2); } //----- (004E3F10) -------------------------------------------------------- -int __thiscall std::stringbuf::str(int this, int a2) +char *__thiscall std::stringbuf::str(int this, int a2) { unsigned int v3; // eax - std::string::_M_replace((unsigned int *)(this + 36), 0, *(_DWORD *)(this + 40), *(char **)a2, *(_DWORD *)(a2 + 4)); + std::string::_M_replace((unsigned int **)(this + 36), 0, *(_DWORD *)(this + 40), *(char **)a2, *(_DWORD *)(a2 + 4)); v3 = 0; if ( (*(_BYTE *)(this + 32) & 3) != 0 ) v3 = *(_DWORD *)(this + 40); - return std::stringbuf::_M_sync((_DWORD *)this, *(_DWORD **)(this + 36), 0, v3); + return std::stringbuf::_M_sync((_DWORD *)this, *(char **)(this + 36), 0, v3); } //----- (004E3F70) -------------------------------------------------------- -int __thiscall std::stringbuf::swap(_DWORD *this, int a2) +int __thiscall std::stringbuf::swap(volatile signed __int32 **this, _DWORD *a2) { - int v3; // eax - int v4; // edx - int v5; // ecx - unsigned int v6; // edi - unsigned int v7; // eax + volatile signed __int32 *v3; // eax + volatile signed __int32 *v4; // edx + volatile signed __int32 *v5; // ecx + volatile signed __int32 *v6; // edi + volatile signed __int32 *v7; // eax int v8; // edi int v9; // edx - int v10; // edx - int v11; // eax - int v12; // edx - int v13; // eax - int v14; // edx - int v15; // eax - int v16; // edx - int v17; // eax - int v18; // edx - int v19; // eax - int v20; // eax - _DWORD *v21; // edx - int v22; // esi + volatile signed __int32 *v10; // edx + volatile signed __int32 *v11; // eax + volatile signed __int32 *v12; // edx + volatile signed __int32 *v13; // eax + volatile signed __int32 *v14; // edx + volatile signed __int32 *v15; // eax + volatile signed __int32 *v16; // edx + volatile signed __int32 *v17; // eax + volatile signed __int32 *v18; // edx + volatile signed __int32 *v19; // eax + volatile signed __int32 *v20; // eax + volatile signed __int32 **v21; // edx + volatile signed __int32 *v22; // esi int v23; // eax int v24; // ebx int v25; // edi __int64 v26; // rcx - int v27; // eax - int v28; // esi + char *v27; // eax + char *v28; // esi _DWORD *v29; // edx int v30; // esi int v31; // eax @@ -167726,10 +166727,10 @@ int __thiscall std::stringbuf::swap(_DWORD *this, int a2) const std::locale *v39; // [esp+4h] [ebp-B4h] const std::locale *v40; // [esp+4h] [ebp-B4h] const std::locale *v41; // [esp+4h] [ebp-B4h] - unsigned int v42; // [esp+10h] [ebp-A8h] - int v43; // [esp+14h] [ebp-A4h] - unsigned int v44; // [esp+18h] [ebp-A0h] - unsigned int v45; // [esp+1Ch] [ebp-9Ch] + volatile signed __int32 *v42; // [esp+10h] [ebp-A8h] + volatile signed __int32 *v43; // [esp+14h] [ebp-A4h] + volatile signed __int32 *v44; // [esp+18h] [ebp-A0h] + volatile signed __int32 *v45; // [esp+1Ch] [ebp-9Ch] _DWORD *v46; // [esp+24h] [ebp-94h] BYREF _DWORD *v47; // [esp+28h] [ebp-90h] BYREF _DWORD *v48; // [esp+2Ch] [ebp-8Ch] BYREF @@ -167742,7 +166743,7 @@ int __thiscall std::stringbuf::swap(_DWORD *this, int a2) __int64 v55; // [esp+58h] [ebp-60h] int v56; // [esp+60h] [ebp-58h] int v57; // [esp+64h] [ebp-54h] - _DWORD *v58; // [esp+68h] [ebp-50h] + volatile signed __int32 **v58; // [esp+68h] [ebp-50h] __int64 v59; // [esp+70h] [ebp-48h] int v60; // [esp+78h] [ebp-40h] int v61; // [esp+7Ch] [ebp-3Ch] @@ -167755,7 +166756,7 @@ int __thiscall std::stringbuf::swap(_DWORD *this, int a2) v3 = this[1]; v50 = -1LL; v4 = this[9]; - v49 = (_DWORD *)a2; + v49 = a2; v5 = this[4]; v51 = -1; v52 = -1; @@ -167772,30 +166773,30 @@ int __thiscall std::stringbuf::swap(_DWORD *this, int a2) goto LABEL_7; goto LABEL_3; } - v50 = v3 - v4; - v51 = this[2] - v4; + v50 = (char *)v3 - (char *)v4; + v51 = (char *)this[2] - (char *)v4; v52 = v51 >> 31; v45 = this[3]; - v53 = (int)(v45 - v4); + v53 = (char *)v45 - (char *)v4; if ( v5 ) { LABEL_3: - v54 = v5 - v4; + v54 = (char *)v5 - (char *)v4; v6 = this[5]; - v55 = (int)(v6 - v5); - v56 = this[6] - v4; + v55 = (char *)v6 - (char *)v5; + v56 = (char *)this[6] - (char *)v4; v57 = v56 >> 31; if ( v45 < v6 ) v45 = v6; } if ( v45 ) - this[10] = v45 - v4; + this[10] = (volatile signed __int32 *)((char *)v45 - (char *)v4); LABEL_7: - v7 = *(_DWORD *)(a2 + 4); - v8 = *(_DWORD *)(a2 + 16); + v7 = (volatile signed __int32 *)a2[1]; + v8 = a2[4]; v58 = this; v59 = -1LL; - v9 = *(_DWORD *)(a2 + 36); + v9 = a2[9]; v60 = -1; v61 = -1; v62 = -1LL; @@ -167810,82 +166811,82 @@ LABEL_7: goto LABEL_13; goto LABEL_9; } - v59 = (int)(v7 - v9); - v60 = *(_DWORD *)(a2 + 8) - v9; + v59 = (int)v7 - v9; + v60 = a2[2] - v9; v61 = v60 >> 31; - v7 = *(_DWORD *)(a2 + 12); - v62 = (int)(v7 - v9); + v7 = (volatile signed __int32 *)a2[3]; + v62 = (int)v7 - v9; if ( v8 ) { LABEL_9: v63 = v8 - v9; - v42 = *(_DWORD *)(a2 + 20); - v64 = (int)(v42 - v8); - v65 = *(_DWORD *)(a2 + 24) - v9; + v42 = (volatile signed __int32 *)a2[5]; + v64 = (int)v42 - v8; + v65 = a2[6] - v9; v66 = v65 >> 31; if ( v7 < v42 ) v7 = v42; } if ( v7 ) - *(_DWORD *)(a2 + 40) = v7 - v9; + a2[10] = (char *)v7 - v9; LABEL_13: this[1] = v44; - v10 = *(_DWORD *)(a2 + 8); - *(_DWORD *)(a2 + 4) = v43; + v10 = (volatile signed __int32 *)a2[2]; + a2[1] = v43; v11 = this[2]; this[2] = v10; - v12 = *(_DWORD *)(a2 + 12); - *(_DWORD *)(a2 + 8) = v11; + v12 = (volatile signed __int32 *)a2[3]; + a2[2] = v11; v13 = this[3]; this[3] = v12; - v14 = *(_DWORD *)(a2 + 16); - *(_DWORD *)(a2 + 12) = v13; + v14 = (volatile signed __int32 *)a2[4]; + a2[3] = v13; v15 = this[4]; this[4] = v14; - v16 = *(_DWORD *)(a2 + 20); - *(_DWORD *)(a2 + 16) = v15; + v16 = (volatile signed __int32 *)a2[5]; + a2[4] = v15; v17 = this[5]; this[5] = v16; - v18 = *(_DWORD *)(a2 + 24); - *(_DWORD *)(a2 + 20) = v17; + v18 = (volatile signed __int32 *)a2[6]; + a2[5] = v17; v19 = this[6]; this[6] = v18; - *(_DWORD *)(a2 + 24) = v19; - std::locale::locale((volatile signed __int32 **)&v48, (volatile signed __int32 **)this + 7, v38); - std::locale::operator=((volatile signed __int32 **)this + 7, (volatile signed __int32 **)(a2 + 28)); - std::locale::operator=((volatile signed __int32 **)(a2 + 28), (volatile signed __int32 **)&v48); + a2[6] = v19; + std::locale::locale((volatile signed __int32 **)&v48, this + 7, v38); + std::locale::operator=(this + 7, (volatile signed __int32 **)a2 + 7); + std::locale::operator=((volatile signed __int32 **)a2 + 7, (volatile signed __int32 **)&v48); std::locale::~locale(&v48); - std::locale::locale((volatile signed __int32 **)&v46, (volatile signed __int32 **)(a2 + 28), v39); - std::locale::locale((volatile signed __int32 **)&v47, (volatile signed __int32 **)this + 7, v40); - (*(void (__thiscall **)(_DWORD *, _DWORD **))(*this + 8))(this, &v46); - std::locale::operator=((volatile signed __int32 **)this + 7, (volatile signed __int32 **)&v46); - std::locale::locale((volatile signed __int32 **)&v48, (volatile signed __int32 **)(a2 + 28), v41); - (*(void (__thiscall **)(int, _DWORD **))(*(_DWORD *)a2 + 8))(a2, &v47); - std::locale::operator=((volatile signed __int32 **)(a2 + 28), (volatile signed __int32 **)&v47); + std::locale::locale((volatile signed __int32 **)&v46, (volatile signed __int32 **)a2 + 7, v39); + std::locale::locale((volatile signed __int32 **)&v47, this + 7, v40); + (*((void (__thiscall **)(volatile signed __int32 **, _DWORD **))*this + 2))(this, &v46); + std::locale::operator=(this + 7, (volatile signed __int32 **)&v46); + std::locale::locale((volatile signed __int32 **)&v48, (volatile signed __int32 **)a2 + 7, v41); + (*(void (__thiscall **)(_DWORD *, _DWORD **))(*a2 + 8))(a2, &v47); + std::locale::operator=((volatile signed __int32 **)a2 + 7, (volatile signed __int32 **)&v47); std::locale::~locale(&v48); std::locale::~locale(&v47); std::locale::~locale(&v46); v20 = this[8]; - this[8] = *(_DWORD *)(a2 + 32); - *(_DWORD *)(a2 + 32) = v20; - std::string::swap(this + 9, (_DWORD *)(a2 + 36)); + this[8] = (volatile signed __int32 *)a2[8]; + a2[8] = v20; + std::string::swap(this + 9, a2 + 9); v21 = v58; v22 = v58[9]; if ( ((unsigned int)v59 & HIDWORD(v59)) != -1 ) { v23 = v62; v24 = v60; - v58[1] = v22 + v59; - v21[2] = v22 + v24; - v21[3] = v22 + v23; + v58[1] = (volatile signed __int32 *)((char *)v22 + v59); + v21[2] = (volatile signed __int32 *)((char *)v22 + v24); + v21[3] = (volatile signed __int32 *)((char *)v22 + v23); } if ( ((unsigned int)v63 & HIDWORD(v63)) != -1 ) { v25 = v65; v26 = v64; - v27 = v22 + v63; - v21[4] = v22 + v63; - v21[6] = v22 + v25; + v27 = (char *)v22 + v63; + v21[4] = (volatile signed __int32 *)((char *)v22 + v63); + v21[6] = (volatile signed __int32 *)((char *)v22 + v25); if ( v26 > 0x7FFFFFFF ) { v28 = v27 + 0x7FFFFFFF; @@ -167897,7 +166898,7 @@ LABEL_13: } while ( v26 > 0x7FFFFFFF ); } - v21[5] = v26 + v27; + v21[5] = (volatile signed __int32 *)&v27[v26]; } v29 = v49; v30 = v49[9]; @@ -167939,7 +166940,7 @@ LABEL_13: // 4E4260: variable 'v41' is possibly undefined //----- (004E4480) -------------------------------------------------------- -_DWORD *__thiscall std::stringbuf::setbuf(_DWORD *this, _DWORD *a2, int a3) +_DWORD *__thiscall std::stringbuf::setbuf(_DWORD *this, char *a2, int a3) { _BYTE *v4; // eax int v5; // ecx @@ -167955,43 +166956,43 @@ _DWORD *__thiscall std::stringbuf::setbuf(_DWORD *this, _DWORD *a2, int a3) // 4E44C8: variable 'v5' is possibly undefined //----- (004E44D0) -------------------------------------------------------- -int __thiscall std::stringbuf::_M_sync(_DWORD *this, _DWORD *a2, int a3, unsigned int a4) +char *__thiscall std::stringbuf::_M_sync(_DWORD *this, char *a2, int a3, unsigned int a4) { - _DWORD *v4; // edi + char *v4; // edi int v5; // esi - int result; // eax + char *result; // eax int v7; // ebx int v8; // ebp - int v9; // ebp + char *v9; // ebp int v10; // edx __int64 v11; // rax - _DWORD *v12; // [esp+0h] [ebp-1Ch] + char *v12; // [esp+0h] [ebp-1Ch] int v13; // [esp+4h] [ebp-18h] - v4 = (_DWORD *)this[9]; + v4 = (char *)this[9]; v5 = this[8] & 0x10; v12 = a2; - result = (int)a2 + this[10]; + result = &a2[this[10]]; v7 = this[8] & 8; - v13 = result; - if ( v4 == this + 11 ) + v13 = (int)result; + if ( v4 == (char *)(this + 11) ) v8 = 15; else v8 = this[11]; - v9 = (int)a2 + v8; + v9 = &a2[v8]; if ( a2 != v4 ) { v10 = a3; a3 = 0; - v13 = v10 + result; - result = v13; - v9 = v13; + v13 = (int)&result[v10]; + result = (char *)v13; + v9 = (char *)v13; } if ( v7 ) { this[1] = a2; - this[2] = (char *)a2 + a3; - result = v13; + this[2] = &a2[a3]; + result = (char *)v13; this[3] = v13; } if ( v5 ) @@ -168003,20 +167004,20 @@ int __thiscall std::stringbuf::_M_sync(_DWORD *this, _DWORD *a2, int a3, unsigne v11 = a4 - 0x7FFFFFFFLL; if ( (a4 + 1) | HIDWORD(v11) ) { - v12 = (_DWORD *)((char *)a2 + 0x7FFFFFFF); + v12 = a2 + 0x7FFFFFFF; } else { - v12 = (_DWORD *)((char *)a2 - 2); + v12 = a2 - 2; LODWORD(v11) = 1; } a4 = v11; } - result = (int)v12 + a4; - this[5] = (char *)v12 + a4; + result = &v12[a4]; + this[5] = &v12[a4]; if ( !v7 ) { - result = v13; + result = (char *)v13; this[1] = v13; this[2] = v13; this[3] = v13; @@ -168251,7 +167252,7 @@ LABEL_8: v15 = v22; if ( v14 ) { - std::string::_M_replace((unsigned int *)&v21, 0, v22, *(char **)(this + 16), *(_DWORD *)(this + 24) - v14); + std::string::_M_replace((unsigned int **)&v21, 0, v22, *(char **)(this + 16), *(_DWORD *)(this + 24) - v14); v15 = v22; } v20 = v15 + 1; @@ -168271,7 +167272,7 @@ LABEL_8: std::string::swap((_DWORD *)(this + 36), &v21); std::stringbuf::_M_sync( (_DWORD *)this, - *(_DWORD **)(this + 36), + *(char **)(this + 36), *(_DWORD *)(this + 8) - *(_DWORD *)(this + 4), *(_DWORD *)(this + 20) - *(_DWORD *)(this + 16)); if ( v21 != v23 ) @@ -168374,7 +167375,7 @@ int __fastcall std::stringbuf::underflow(int a1) } //----- (004E4C70) -------------------------------------------------------- -int __thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2) +char *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2) { unsigned int v3; // eax int v4; // ecx @@ -168463,7 +167464,7 @@ LABEL_7: this[4] = v10; this[5] = v19 + v10; } - return std::stringbuf::_M_sync(a2, (_DWORD *)a2[9], 0, 0); + return std::stringbuf::_M_sync(a2, (char *)a2[9], 0, 0); } // 4E4DFE: conditional instruction was optimized away because %var_28.8 is in (<80000000u|>=FFFFFFFF80000000u) // 4E4D5F: variable 'v12' is possibly undefined @@ -168508,7 +167509,7 @@ _DWORD *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2, int // 537F68: using guessed type int (*off_537F68)(); //----- (004E4F30) -------------------------------------------------------- -int __thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3) +char *__thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3) { int v4; // eax unsigned __int8 *v5; // edx @@ -168534,7 +167535,7 @@ int __thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3) v6 = 0; if ( (a3 & 3) != 0 ) v6 = *(_DWORD *)(this + 40); - return std::stringbuf::_M_sync((_DWORD *)this, *(_DWORD **)(this + 36), 0, v6); + return std::stringbuf::_M_sync((_DWORD *)this, *(char **)(this + 36), 0, v6); } // 4E4FAD: variable 'v8' is possibly undefined // 537F68: using guessed type int (*off_537F68)(); @@ -168593,7 +167594,7 @@ int __fastcall std::stringbuf::basic_stringbuf(int a1) // 538A48: using guessed type int (*off_538A48)(); //----- (004E50E0) -------------------------------------------------------- -int __thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2) +char *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2) { unsigned int v3; // eax int v4; // ecx @@ -168682,7 +167683,7 @@ LABEL_7: this[4] = v10; this[5] = v19 + v10; } - return std::stringbuf::_M_sync(a2, (_DWORD *)a2[9], 0, 0); + return std::stringbuf::_M_sync(a2, (char *)a2[9], 0, 0); } // 4E526E: conditional instruction was optimized away because %var_28.8 is in (<80000000u|>=FFFFFFFF80000000u) // 4E51CF: variable 'v12' is possibly undefined @@ -168727,7 +167728,7 @@ _DWORD *__thiscall std::stringbuf::basic_stringbuf(_DWORD *this, _DWORD *a2, int // 537F68: using guessed type int (*off_537F68)(); //----- (004E53A0) -------------------------------------------------------- -int __thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3) +char *__thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3) { int v4; // eax unsigned __int8 *v5; // edx @@ -168753,7 +167754,7 @@ int __thiscall std::stringbuf::basic_stringbuf(int this, int a2, int a3) v6 = 0; if ( (a3 & 3) != 0 ) v6 = *(_DWORD *)(this + 40); - return std::stringbuf::_M_sync((_DWORD *)this, *(_DWORD **)(this + 36), 0, v6); + return std::stringbuf::_M_sync((_DWORD *)this, *(char **)(this + 36), 0, v6); } // 4E541D: variable 'v8' is possibly undefined // 537F68: using guessed type int (*off_537F68)(); @@ -168843,7 +167844,7 @@ void __fastcall std::stringbuf::~stringbuf(int a1) // 538A48: using guessed type int (*off_538A48)(); //----- (004E55C0) -------------------------------------------------------- -int __thiscall std::stringbuf::operator=(int this, int a2) +_DWORD *__thiscall std::stringbuf::operator=(_DWORD *this, int a2) { unsigned int v2; // eax int v3; // edx @@ -168879,7 +167880,7 @@ int __thiscall std::stringbuf::operator=(int this, int a2) int v35; // [esp+58h] [ebp-20h] int v36; // [esp+5Ch] [ebp-1Ch] - v28 = (_DWORD *)this; + v28 = this; v2 = *(_DWORD *)(a2 + 4); v29 = -1LL; v3 = *(_DWORD *)(a2 + 36); @@ -168918,14 +167919,14 @@ LABEL_3: LABEL_7: std::streambuf::operator=((volatile signed __int32 **)this, a2); std::locale::locale((volatile signed __int32 **)&v26, (volatile signed __int32 **)(a2 + 28), v22); - std::locale::locale((volatile signed __int32 **)&v27, (volatile signed __int32 **)(this + 28), v23); - (*(void (__thiscall **)(int, _DWORD **))(*(_DWORD *)this + 8))(this, &v26); - std::locale::operator=((volatile signed __int32 **)(this + 28), (volatile signed __int32 **)&v26); + std::locale::locale((volatile signed __int32 **)&v27, (volatile signed __int32 **)this + 7, v23); + (*(void (__thiscall **)(_DWORD *, _DWORD **))(*this + 8))(this, &v26); + std::locale::operator=((volatile signed __int32 **)this + 7, (volatile signed __int32 **)&v26); std::locale::~locale(&v27); std::locale::~locale(&v26); v6 = *(const void **)(a2 + 36); - *(_DWORD *)(this + 32) = *(_DWORD *)(a2 + 32); - v7 = *(_BYTE **)(this + 36); + this[8] = *(_DWORD *)(a2 + 32); + v7 = (_BYTE *)this[9]; if ( v6 == (const void *)(a2 + 44) ) { v21 = *(_DWORD *)(a2 + 40); @@ -168936,27 +167937,27 @@ LABEL_7: else memcpy(v7, v6, *(_DWORD *)(a2 + 40)); v21 = *(_DWORD *)(a2 + 40); - v7 = *(_BYTE **)(this + 36); + v7 = (_BYTE *)this[9]; } - *(_DWORD *)(this + 40) = v21; + this[10] = v21; v7[v21] = 0; v7 = *(_BYTE **)(a2 + 36); } else { v24 = *(_DWORD *)(a2 + 40); - if ( v7 == (_BYTE *)(this + 44) ) + if ( v7 == (_BYTE *)(this + 11) ) { - *(_DWORD *)(this + 36) = v6; - *(_DWORD *)(this + 40) = v24; - *(_DWORD *)(this + 44) = *(_DWORD *)(a2 + 44); + this[9] = v6; + this[10] = v24; + this[11] = *(_DWORD *)(a2 + 44); } else { - v8 = *(_DWORD *)(this + 44); - *(_DWORD *)(this + 36) = v6; - *(_DWORD *)(this + 40) = v24; - *(_DWORD *)(this + 44) = *(_DWORD *)(a2 + 44); + v8 = this[11]; + this[9] = v6; + this[10] = v24; + this[11] = *(_DWORD *)(a2 + 44); if ( v7 ) { *(_DWORD *)(a2 + 36) = v7; @@ -168970,7 +167971,7 @@ LABEL_7: LABEL_11: *(_DWORD *)(a2 + 40) = 0; *v7 = 0; - std::stringbuf::_M_sync((_DWORD *)a2, *(_DWORD **)(a2 + 36), 0, 0); + std::stringbuf::_M_sync((_DWORD *)a2, *(char **)(a2 + 36), 0, 0); v9 = v28; v10 = v28[9]; if ( ((unsigned int)v29 & HIDWORD(v29)) != -1 ) @@ -169237,7 +168238,7 @@ unsigned int __fastcall std::wstringbuf::_M_update_egptr(int a1) } //----- (004E5C40) -------------------------------------------------------- -int __thiscall std::wstringbuf::_M_stringbuf_init(int this, int a2) +_DWORD *__thiscall std::wstringbuf::_M_stringbuf_init(int this, int a2) { unsigned int v2; // edx @@ -169249,7 +168250,7 @@ int __thiscall std::wstringbuf::_M_stringbuf_init(int this, int a2) } //----- (004E5C80) -------------------------------------------------------- -int __thiscall std::wstringbuf::str(int this, int a2) +_DWORD *__thiscall std::wstringbuf::str(int this, int a2) { unsigned int v3; // eax @@ -169261,7 +168262,7 @@ int __thiscall std::wstringbuf::str(int this, int a2) } //----- (004E5CE0) -------------------------------------------------------- -int __thiscall std::wstringbuf::swap(_DWORD *this, int a2) +int __thiscall std::wstringbuf::swap(_DWORD *this, _DWORD *a2) { int v3; // eax int v4; // edx @@ -169338,7 +168339,7 @@ int __thiscall std::wstringbuf::swap(_DWORD *this, int a2) v51 = -1; v4 = this[9]; v52 = -1; - v50 = (_DWORD *)a2; + v50 = a2; v5 = this[4]; v53 = -1; v54 = -1; @@ -169379,11 +168380,11 @@ LABEL_3: if ( v46 ) this[10] = (int)(v46 - v4) >> 1; LABEL_7: - v7 = *(_DWORD *)(a2 + 4); - v8 = *(_DWORD *)(a2 + 16); + v7 = a2[1]; + v8 = a2[4]; v62 = this; v63 = -1; - v9 = *(_DWORD *)(a2 + 36); + v9 = a2[9]; v64 = -1; v65 = -1; v66 = -1; @@ -169402,65 +168403,65 @@ LABEL_7: } v63 = (int)(v7 - v9) >> 1; v64 = (int)(v7 - v9) >> 31; - v65 = (*(_DWORD *)(a2 + 8) - v9) >> 1; + v65 = (a2[2] - v9) >> 1; v66 = v65 >> 31; - v7 = *(_DWORD *)(a2 + 12); + v7 = a2[3]; v67 = (int)(v7 - v9) >> 1; if ( v8 ) { LABEL_9: v68 = (v8 - v9) >> 1; v69 = (v8 - v9) >> 31; - v43 = *(_DWORD *)(a2 + 20); + v43 = a2[5]; v70 = (int)(v43 - v8) >> 1; - v71 = (*(_DWORD *)(a2 + 24) - v9) >> 1; + v71 = (a2[6] - v9) >> 1; v72 = v71 >> 31; if ( v7 < v43 ) v7 = v43; } if ( v7 ) - *(_DWORD *)(a2 + 40) = (int)(v7 - v9) >> 1; + a2[10] = (int)(v7 - v9) >> 1; LABEL_13: this[1] = v45; - v10 = *(_DWORD *)(a2 + 8); - *(_DWORD *)(a2 + 4) = v44; + v10 = a2[2]; + a2[1] = v44; v11 = this[2]; this[2] = v10; - v12 = *(_DWORD *)(a2 + 12); - *(_DWORD *)(a2 + 8) = v11; + v12 = a2[3]; + a2[2] = v11; v13 = this[3]; this[3] = v12; - v14 = *(_DWORD *)(a2 + 16); - *(_DWORD *)(a2 + 12) = v13; + v14 = a2[4]; + a2[3] = v13; v15 = this[4]; this[4] = v14; - v16 = *(_DWORD *)(a2 + 20); - *(_DWORD *)(a2 + 16) = v15; + v16 = a2[5]; + a2[4] = v15; v17 = this[5]; this[5] = v16; - v18 = *(_DWORD *)(a2 + 24); - *(_DWORD *)(a2 + 20) = v17; + v18 = a2[6]; + a2[5] = v17; v19 = this[6]; this[6] = v18; - *(_DWORD *)(a2 + 24) = v19; + a2[6] = v19; std::locale::locale((volatile signed __int32 **)&v49, (volatile signed __int32 **)this + 7, v39); - std::locale::operator=((volatile signed __int32 **)this + 7, (volatile signed __int32 **)(a2 + 28)); - std::locale::operator=((volatile signed __int32 **)(a2 + 28), (volatile signed __int32 **)&v49); + std::locale::operator=((volatile signed __int32 **)this + 7, (volatile signed __int32 **)a2 + 7); + std::locale::operator=((volatile signed __int32 **)a2 + 7, (volatile signed __int32 **)&v49); std::locale::~locale(&v49); - std::locale::locale((volatile signed __int32 **)&v47, (volatile signed __int32 **)(a2 + 28), v40); + std::locale::locale((volatile signed __int32 **)&v47, (volatile signed __int32 **)a2 + 7, v40); std::locale::locale((volatile signed __int32 **)&v48, (volatile signed __int32 **)this + 7, v41); (*(void (__thiscall **)(_DWORD *, _DWORD **))(*this + 8))(this, &v47); std::locale::operator=((volatile signed __int32 **)this + 7, (volatile signed __int32 **)&v47); - std::locale::locale((volatile signed __int32 **)&v49, (volatile signed __int32 **)(a2 + 28), v42); - (*(void (__thiscall **)(int, _DWORD **))(*(_DWORD *)a2 + 8))(a2, &v48); - std::locale::operator=((volatile signed __int32 **)(a2 + 28), (volatile signed __int32 **)&v48); + std::locale::locale((volatile signed __int32 **)&v49, (volatile signed __int32 **)a2 + 7, v42); + (*(void (__thiscall **)(_DWORD *, _DWORD **))(*a2 + 8))(a2, &v48); + std::locale::operator=((volatile signed __int32 **)a2 + 7, (volatile signed __int32 **)&v48); std::locale::~locale(&v49); std::locale::~locale(&v48); std::locale::~locale(&v47); v20 = this[8]; - this[8] = *(_DWORD *)(a2 + 32); - *(_DWORD *)(a2 + 32) = v20; - std::wstring::swap((wchar_t **)this + 9, a2 + 36); + this[8] = a2[8]; + a2[8] = v20; + std::wstring::swap((wchar_t **)this + 9, (int)(a2 + 9)); v21 = v62; v22 = v62[9]; if ( (v63 & v64) != -1 ) @@ -169549,28 +168550,28 @@ _DWORD *__thiscall std::wstringbuf::setbuf(_DWORD *this, _DWORD *a2, int a3) // 4E624A: variable 'v5' is possibly undefined //----- (004E6260) -------------------------------------------------------- -int __thiscall std::wstringbuf::_M_sync(_DWORD *this, _DWORD *a2, int a3, unsigned int a4) +_DWORD *__thiscall std::wstringbuf::_M_sync(_DWORD *this, _DWORD *a2, int a3, unsigned int a4) { - int result; // eax + _DWORD *result; // eax _DWORD *v5; // esi int v6; // ebx - int v7; // edx + char *v7; // edx int v8; // edi - int v9; // edi + char *v9; // edi int v10; // esi - int v11; // edi - int v12; // [esp+0h] [ebp-1Ch] + unsigned int v11; // edi + _DWORD *v12; // [esp+0h] [ebp-1Ch] - result = (int)a2; + result = a2; v5 = (_DWORD *)this[9]; v6 = this[8] & 0x10; - v7 = (int)a2 + 2 * this[10]; - v12 = this[8] & 8; + v7 = (char *)a2 + 2 * this[10]; + v12 = (_DWORD *)(this[8] & 8); if ( v5 == this + 11 ) v8 = 14; else v8 = 2 * this[11]; - v9 = (int)a2 + v8; + v9 = (char *)a2 + v8; if ( a2 != v5 ) { v10 = a3; @@ -169593,16 +168594,16 @@ int __thiscall std::wstringbuf::_M_sync(_DWORD *this, _DWORD *a2, int a3, unsign v11 = a4 - 0x7FFFFFFF; if ( (((unsigned __int64)a4 - 0x7FFFFFFF) >> 32) | (a4 + 1) ) { - result = (int)a2 - 2; + result = (_DWORD *)((char *)a2 - 2); } else { - result = (int)(a2 - 1); + result = a2 - 1; v11 = 1; } a4 = v11; } - this[5] = result + 2 * a4; + this[5] = (char *)result + 2 * a4; result = v12; if ( !v12 ) { @@ -169962,7 +168963,7 @@ int __fastcall std::wstringbuf::underflow(int a1) } //----- (004E6A10) -------------------------------------------------------- -int __thiscall std::wstringbuf::basic_stringbuf(int this, int a2) +_DWORD *__thiscall std::wstringbuf::basic_stringbuf(int this, int a2) { unsigned int v3; // eax int v4; // ecx @@ -170098,7 +169099,7 @@ int __thiscall std::wstringbuf::basic_stringbuf(int this, _DWORD *a2, int a3) // 537FA8: using guessed type int (*off_537FA8)(); //----- (004E6D00) -------------------------------------------------------- -int __thiscall std::wstringbuf::basic_stringbuf(int this, int a2, int a3) +_DWORD *__thiscall std::wstringbuf::basic_stringbuf(int this, int a2, int a3) { int v4; // edx unsigned int v5; // eax @@ -170183,7 +169184,7 @@ int __fastcall std::wstringbuf::basic_stringbuf(int a1) // 538A88: using guessed type int (*off_538A88)(); //----- (004E6EB0) -------------------------------------------------------- -int __thiscall std::wstringbuf::basic_stringbuf(int this, int a2) +_DWORD *__thiscall std::wstringbuf::basic_stringbuf(int this, int a2) { unsigned int v3; // eax int v4; // ecx @@ -170319,7 +169320,7 @@ int __thiscall std::wstringbuf::basic_stringbuf(int this, _DWORD *a2, int a3) // 537FA8: using guessed type int (*off_537FA8)(); //----- (004E71A0) -------------------------------------------------------- -int __thiscall std::wstringbuf::basic_stringbuf(int this, int a2, int a3) +_DWORD *__thiscall std::wstringbuf::basic_stringbuf(int this, int a2, int a3) { int v4; // edx unsigned int v5; // eax @@ -170435,7 +169436,7 @@ void __fastcall std::wstringbuf::~wstringbuf(int a1) // 538A88: using guessed type int (*off_538A88)(); //----- (004E73C0) -------------------------------------------------------- -int __thiscall std::wstringbuf::operator=(int this, int a2) +_DWORD *__thiscall std::wstringbuf::operator=(_DWORD *this, int a2) { unsigned int v2; // eax int v3; // edx @@ -170471,7 +169472,7 @@ int __thiscall std::wstringbuf::operator=(int this, int a2) int v35; // [esp+58h] [ebp-20h] int v36; // [esp+5Ch] [ebp-1Ch] - v26 = (_DWORD *)this; + v26 = this; v2 = *(_DWORD *)(a2 + 4); v27 = -1; v28 = -1; @@ -170514,15 +169515,15 @@ LABEL_3: LABEL_7: std::wstreambuf::operator=((volatile signed __int32 **)this, a2); std::locale::locale((volatile signed __int32 **)&v24, (volatile signed __int32 **)(a2 + 28), v20); - std::locale::locale((volatile signed __int32 **)&v25, (volatile signed __int32 **)(this + 28), v21); - (*(void (__thiscall **)(int, _DWORD **))(*(_DWORD *)this + 8))(this, &v24); - std::locale::operator=((volatile signed __int32 **)(this + 28), (volatile signed __int32 **)&v24); + std::locale::locale((volatile signed __int32 **)&v25, (volatile signed __int32 **)this + 7, v21); + (*(void (__thiscall **)(_DWORD *, _DWORD **))(*this + 8))(this, &v24); + std::locale::operator=((volatile signed __int32 **)this + 7, (volatile signed __int32 **)&v24); std::locale::~locale(&v25); std::locale::~locale(&v24); v6 = *(_DWORD *)(a2 + 36); v7 = (wchar_t *)(a2 + 44); - *(_DWORD *)(this + 32) = *(_DWORD *)(a2 + 32); - v8 = *(wchar_t **)(this + 36); + this[8] = *(_DWORD *)(a2 + 32); + v8 = (wchar_t *)this[9]; if ( v6 == a2 + 44 ) { v19 = *(_DWORD *)(a2 + 40); @@ -170537,28 +169538,28 @@ LABEL_7: wmemcpy(v8, (const wchar_t *)(a2 + 44), *(_DWORD *)(a2 + 40)); v19 = *(_DWORD *)(a2 + 40); v7 = *(wchar_t **)(a2 + 36); - v8 = *(wchar_t **)(this + 36); + v8 = (wchar_t *)this[9]; } } - *(_DWORD *)(this + 40) = v19; + this[10] = v19; v8[v19] = 0; v8 = v7; } else { v22 = *(_DWORD *)(a2 + 40); - if ( v8 == (wchar_t *)(this + 44) ) + if ( v8 == (wchar_t *)(this + 11) ) { - *(_DWORD *)(this + 36) = v6; - *(_DWORD *)(this + 40) = v22; - *(_DWORD *)(this + 44) = *(_DWORD *)(a2 + 44); + this[9] = v6; + this[10] = v22; + this[11] = *(_DWORD *)(a2 + 44); } else { - v9 = *(_DWORD *)(this + 44); - *(_DWORD *)(this + 36) = v6; - *(_DWORD *)(this + 40) = v22; - *(_DWORD *)(this + 44) = *(_DWORD *)(a2 + 44); + v9 = this[11]; + this[9] = v6; + this[10] = v22; + this[11] = *(_DWORD *)(a2 + 44); if ( v8 ) { *(_DWORD *)(a2 + 36) = v8; @@ -171931,51 +170932,51 @@ void __cdecl std::moneypunct_byname::~moneypunct_byname(std::local // 53815C: using guessed type int (*off_53815C)(); //----- (004E9550) -------------------------------------------------------- -int __thiscall std::basic_stringstream,std::allocator>::str(int this, int a2) +char *__thiscall std::basic_stringstream,std::allocator>::str(int this, int a2) { _DWORD *v2; // esi unsigned int v4; // eax v2 = (_DWORD *)(this + 12); - std::string::_M_replace((unsigned int *)(this + 48), 0, *(_DWORD *)(this + 52), *(char **)a2, *(_DWORD *)(a2 + 4)); + std::string::_M_replace((unsigned int **)(this + 48), 0, *(_DWORD *)(this + 52), *(char **)a2, *(_DWORD *)(a2 + 4)); v4 = 0; if ( (*(_BYTE *)(this + 44) & 3) != 0 ) v4 = *(_DWORD *)(this + 52); - return std::stringbuf::_M_sync(v2, *(_DWORD **)(this + 48), 0, v4); + return std::stringbuf::_M_sync(v2, *(char **)(this + 48), 0, v4); } //----- (004E95C0) -------------------------------------------------------- int __thiscall std::basic_stringstream,std::allocator>::swap( - _DWORD *this, + volatile signed __int32 **this, _DWORD *a2) { - int v3; // edi + char *v3; // edi std::ios_base *v4; // esi int v5; // eax char v6; // dl char v7; // dl - int v8; // eax + volatile signed __int32 *v8; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *((_DWORD *)*this - 3); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v10); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v10); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; v8 = this[1]; *((_BYTE *)v4 + 117) = v7; - this[1] = a2[1]; + this[1] = (volatile signed __int32 *)a2[1]; a2[1] = v8; - return std::stringbuf::swap(this + 3, (int)(a2 + 3)); + return std::stringbuf::swap(this + 3, a2 + 3); } // 4E95E4: variable 'v10' is possibly undefined @@ -172109,7 +171110,7 @@ LABEL_7: this[7] = v16; this[8] = v27 + v16; } - std::stringbuf::_M_sync(v20, (_DWORD *)a2[12], 0, 0); + std::stringbuf::_M_sync(v20, (char *)a2[12], 0, 0); result = (char *)(this + 3); this[48] = v22; return result; @@ -172128,13 +171129,13 @@ BOOL __thiscall std::basic_stringstream,std::allocat int a2, int a3) { - int v3; // esi + char *v3; // esi unsigned __int8 *v5; // edx int v6; // eax unsigned int v7; // eax int v9; // [esp+8h] [ebp-30h] - v3 = (int)(this + 72); + v3 = this + 72; std::ios_base::ios_base((_DWORD *)this + 18); *(_DWORD *)this = &unk_533844; *((_DWORD *)this + 46) = 0; @@ -172145,10 +171146,10 @@ BOOL __thiscall std::basic_stringstream,std::allocat *((_DWORD *)this + 51) = 0; *((_DWORD *)this + 18) = &unk_533858; *((_DWORD *)this + 1) = 0; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *((_DWORD *)this + 2) = &unk_53386C; *((_DWORD *)this + 18) = &unk_533880; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_538194; *((_DWORD *)this + 18) = off_5381BC; *((_DWORD *)this + 2) = off_5381A8; @@ -172171,8 +171172,8 @@ BOOL __thiscall std::basic_stringstream,std::allocat v7 = 0; if ( (a3 & 3) != 0 ) v7 = *((_DWORD *)this + 13); - std::stringbuf::_M_sync((_DWORD *)this + 3, *((_DWORD **)this + 12), 0, v7); - return std::ios::init(v3, (int)(this + 12)); + std::stringbuf::_M_sync((_DWORD *)this + 3, *((char **)this + 12), 0, v7); + return std::ios::init((int)v3, (int)(this + 12)); } // 4E9B0A: variable 'v9' is possibly undefined // 537F68: using guessed type int (*off_537F68)(); @@ -172186,9 +171187,9 @@ BOOL __thiscall std::basic_stringstream,std::allocat _DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 18); + v2 = this + 18; std::ios_base::ios_base(this + 18); *this = &unk_533844; this[46] = 0; @@ -172199,10 +171200,10 @@ BOOL __thiscall std::basic_stringstream,std::allocat this[51] = 0; this[18] = &unk_533858; this[1] = 0; - std::ios::init(v2, 0); + std::ios::init((int)v2, 0); this[2] = &unk_53386C; this[18] = &unk_533880; - std::ios::init(v2, 0); + std::ios::init((int)v2, 0); *this = &off_538194; this[18] = off_5381BC; this[2] = off_5381A8; @@ -172219,7 +171220,7 @@ BOOL __thiscall std::basic_stringstream,std::allocat this[11] = a2; this[12] = this + 14; this[13] = 0; - return std::ios::init(v2, (int)(this + 3)); + return std::ios::init((int)v2, (int)(this + 3)); } // 537F68: using guessed type int (*off_537F68)(); // 538194: using guessed type int (*off_538194)(); @@ -172278,7 +171279,7 @@ int __thiscall std::basic_stringstream,std::allocato _DWORD *a3) { int v4; // eax - int v5; // esi + char *v5; // esi int v6; // edx __int16 v7; // ax int v8; // eax @@ -172301,7 +171302,7 @@ int __thiscall std::basic_stringstream,std::allocato _DWORD *v25; // [esp+1Ch] [ebp-6Ch] std::ios_base *v26; // [esp+20h] [ebp-68h] int v27; // [esp+20h] [ebp-68h] - _DWORD *v28; // [esp+28h] [ebp-60h] + int *v28; // [esp+28h] [ebp-60h] __int64 v29; // [esp+40h] [ebp-48h] int v30; // [esp+48h] [ebp-40h] int v31; // [esp+50h] [ebp-38h] @@ -172314,15 +171315,15 @@ int __thiscall std::basic_stringstream,std::allocato *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[3]; this[1] = a3[1]; v26 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - v5 = (int)this + *(_DWORD *)(v4 - 12); - std::ios_base::_M_move(v5, v26, v23); - std::ios::_M_cache_locale((_DWORD *)v5, v5 + 108); - *(_DWORD *)(v5 + 120) = 0; + v5 = (char *)this + *(_DWORD *)(v4 - 12); + std::ios_base::_M_move((int)v5, v26, v23); + std::ios::_M_cache_locale(v5, (int)(v5 + 108)); + *((_DWORD *)v5 + 30) = 0; v6 = *((_DWORD *)v26 + 28); *((_DWORD *)v26 + 28) = 0; v7 = *((_WORD *)v26 + 58); - *(_DWORD *)(v5 + 112) = v6; - *(_WORD *)(v5 + 116) = v7; + *((_DWORD *)v5 + 28) = v6; + *((_WORD *)v5 + 58) = v7; v8 = a2[4]; v9 = a2[5]; a3[1] = 0; @@ -172410,7 +171411,7 @@ LABEL_7: this[7] = v21; this[8] = v33 + v21; } - std::stringbuf::_M_sync(v25, (_DWORD *)a3[12], 0, 0); + std::stringbuf::_M_sync(v25, (char *)a3[12], 0, 0); result = *(_DWORD *)(*this - 12); *(int *)((char *)this + result + 120) = (int)v28; return result; @@ -172480,7 +171481,7 @@ BOOL __thiscall std::basic_stringstream,std::allocat v15 = 0; if ( (a4 & 3) != 0 ) v15 = *((_DWORD *)this + 13); - std::stringbuf::_M_sync((_DWORD *)this + 3, *((_DWORD **)this + 12), 0, v15); + std::stringbuf::_M_sync((_DWORD *)this + 3, *((char **)this + 12), 0, v15); return std::ios::init((int)&this[*(_DWORD *)(*(_DWORD *)this - 12)], (int)(this + 12)); } // 4EA2F1: variable 'v17' is possibly undefined @@ -172700,7 +171701,7 @@ char *__thiscall std::basic_stringstream,std::alloca char *this, int a2) { - int v2; // esi + char *v2; // esi int v3; // edi int v4; // eax int v5; // edx @@ -172712,7 +171713,7 @@ char *__thiscall std::basic_stringstream,std::alloca char *v11; // eax const void *v12; // edx int v13; // esi - _DWORD *v14; // edx + char *v14; // edx int v15; // eax int v16; // ebx int v17; // edi @@ -172728,7 +171729,7 @@ char *__thiscall std::basic_stringstream,std::alloca int v28; // [esp+14h] [ebp-64h] _DWORD *v30; // [esp+20h] [ebp-58h] BYREF _DWORD *v31; // [esp+24h] [ebp-54h] BYREF - _DWORD *v32; // [esp+28h] [ebp-50h] + char *v32; // [esp+28h] [ebp-50h] __int64 v33; // [esp+30h] [ebp-48h] int v34; // [esp+38h] [ebp-40h] int v35; // [esp+3Ch] [ebp-3Ch] @@ -172738,24 +171739,24 @@ char *__thiscall std::basic_stringstream,std::alloca int v39; // [esp+58h] [ebp-20h] int v40; // [esp+5Ch] [ebp-1Ch] - v2 = (int)&this[*(_DWORD *)(*(_DWORD *)this - 12)]; + v2 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; v3 = a2 + *(_DWORD *)(*(_DWORD *)a2 - 12); - std::ios_base::_M_swap(v2, (std::ios_base *)v3, v24); - std::ios::_M_cache_locale((_DWORD *)v2, v2 + 108); + std::ios_base::_M_swap((int)v2, (std::ios_base *)v3, v24); + std::ios::_M_cache_locale(v2, (int)(v2 + 108)); std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); - v4 = *(_DWORD *)(v2 + 112); + v4 = *((_DWORD *)v2 + 28); v5 = *(_DWORD *)(v3 + 112); v33 = -1LL; - *(_DWORD *)(v2 + 112) = v5; + *((_DWORD *)v2 + 28) = v5; *(_DWORD *)(v3 + 112) = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 116); - LOBYTE(v5) = *(_BYTE *)(v2 + 116); + LOBYTE(v5) = v2[116]; v34 = -1; - *(_BYTE *)(v2 + 116) = v4; + v2[116] = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 117); *(_BYTE *)(v3 + 116) = v5; - LOBYTE(v5) = *(_BYTE *)(v2 + 117); - *(_BYTE *)(v2 + 117) = v4; + LOBYTE(v5) = v2[117]; + v2[117] = v4; *(_BYTE *)(v3 + 117) = v5; v6 = *(_DWORD *)(a2 + 4); v35 = -1; @@ -172851,24 +171852,24 @@ LABEL_7: LABEL_11: *(_DWORD *)(a2 + 52) = 0; *v11 = 0; - std::stringbuf::_M_sync((_DWORD *)(a2 + 12), *(_DWORD **)(a2 + 48), 0, 0); + std::stringbuf::_M_sync((_DWORD *)(a2 + 12), *(char **)(a2 + 48), 0, 0); v14 = v32; - v15 = v32[9]; + v15 = *((_DWORD *)v32 + 9); if ( ((unsigned int)v33 & HIDWORD(v33)) != -1 ) { v16 = v36; v17 = v34; - v32[1] = v15 + v33; - v14[2] = v15 + v17; - v14[3] = v15 + v16; + *((_DWORD *)v32 + 1) = v15 + v33; + *((_DWORD *)v14 + 2) = v15 + v17; + *((_DWORD *)v14 + 3) = v15 + v16; } if ( ((unsigned int)v37 & HIDWORD(v37)) != -1 ) { v18 = v38; v19 = v15 + v39; v20 = v37 + v15; - v14[6] = v19; - v14[4] = v20; + *((_DWORD *)v14 + 6) = v19; + *((_DWORD *)v14 + 4) = v20; if ( v18 > 0x7FFFFFFF ) { v21 = v20 + 0x7FFFFFFF; @@ -172880,7 +171881,7 @@ LABEL_11: } while ( v18 > 0x7FFFFFFF ); } - v14[5] = v18 + v20; + *((_DWORD *)v14 + 5) = v18 + v20; } return this; } @@ -172889,7 +171890,7 @@ LABEL_11: // 4EA982: variable 'v26' is possibly undefined //----- (004EAB80) -------------------------------------------------------- -int __thiscall std::basic_stringstream,std::allocator>::str( +_DWORD *__thiscall std::basic_stringstream,std::allocator>::str( int this, int a2) { @@ -172909,44 +171910,44 @@ int __thiscall std::basic_stringstream,std::al _DWORD *this, _DWORD *a2) { - int v3; // edi + char *v3; // edi std::ios_base *v4; // esi int v5; // eax __int16 v6; // dx int v7; // eax std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); v7 = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; a2[1] = v7; - return std::wstringbuf::swap(this + 3, (int)(a2 + 3)); + return std::wstringbuf::swap(this + 3, a2 + 3); } // 4EAC14: variable 'v9' is possibly undefined //----- (004EAC90) -------------------------------------------------------- char *__thiscall std::basic_stringstream,std::allocator>::basic_stringstream( char *this, - int *a2) + const wchar_t *a2) { int v3; // eax int v4; // eax int v5; // esi - int v6; // esi + std::ios_base *v6; // esi int v7; // eax int v8; // edx unsigned int v9; // eax @@ -172961,9 +171962,9 @@ char *__thiscall std::basic_stringstream,std:: char *result; // eax std::ios_base *v19; // [esp+4h] [ebp-84h] const std::locale *v20; // [esp+4h] [ebp-84h] - _DWORD *v21; // [esp+1Ch] [ebp-6Ch] - _DWORD *v22; // [esp+20h] [ebp-68h] - _DWORD *v23; // [esp+28h] [ebp-60h] + int *v21; // [esp+1Ch] [ebp-6Ch] + char *v22; // [esp+20h] [ebp-68h] + char *v23; // [esp+28h] [ebp-60h] int v24; // [esp+40h] [ebp-48h] int v25; // [esp+44h] [ebp-44h] int v26; // [esp+48h] [ebp-40h] @@ -172975,34 +171976,34 @@ char *__thiscall std::basic_stringstream,std:: v22 = this + 72; std::ios_base::ios_base((_DWORD *)this + 18); - v3 = a2[1]; + v3 = *((_DWORD *)a2 + 1); *(_DWORD *)this = &unk_533894; *((_DWORD *)this + 46) = 0; *((_DWORD *)this + 1) = v3; - v4 = *a2; + v4 = *(_DWORD *)a2; *((_WORD *)this + 94) = 0; v5 = *(_DWORD *)(v4 - 12); this[190] = 0; *((_DWORD *)this + 48) = 0; - v6 = (int)a2 + v5; + v6 = (std::ios_base *)((char *)a2 + v5); *((_DWORD *)this + 49) = 0; *((_DWORD *)this + 50) = 0; *((_DWORD *)this + 51) = 0; *((_DWORD *)this + 18) = &unk_5338A8; - std::ios_base::_M_move((int)v22, (std::ios_base *)v6, v19); + std::ios_base::_M_move((int)v22, v6, v19); std::wios::_M_cache_locale(v22, (int)(this + 180)); - v7 = *(_DWORD *)(v6 + 112); - *(_DWORD *)(v6 + 112) = 0; + v7 = *((_DWORD *)v6 + 28); + *((_DWORD *)v6 + 28) = 0; *((_DWORD *)this + 48) = 0; *((_DWORD *)this + 46) = v7; - v21 = a2 + 3; - v8 = a2[12]; - *((_WORD *)this + 94) = *(_WORD *)(v6 + 116); + v21 = (int *)(a2 + 6); + v8 = *((_DWORD *)a2 + 12); + *((_WORD *)this + 94) = *((_WORD *)v6 + 58); v24 = -1; - this[190] = *(_BYTE *)(v6 + 118); + this[190] = *((_BYTE *)v6 + 118); v23 = this + 12; - v9 = a2[4]; - a2[1] = 0; + v9 = *((_DWORD *)a2 + 4); + *((_DWORD *)a2 + 1) = 0; v25 = -1; *(_DWORD *)this = &off_5381D0; *((_DWORD *)this + 18) = off_5381F8; @@ -173015,49 +172016,49 @@ char *__thiscall std::basic_stringstream,std:: v31 = -1; if ( !v9 ) { - v10 = a2[7]; + v10 = *((_DWORD *)a2 + 7); if ( !v10 ) goto LABEL_7; goto LABEL_3; } v24 = (int)(v9 - v8) >> 1; v25 = (int)(v9 - v8) >> 31; - v26 = (a2[5] - v8) >> 1; - v9 = a2[6]; + v26 = (*((_DWORD *)a2 + 5) - v8) >> 1; + v9 = *((_DWORD *)a2 + 6); v27 = (int)(v9 - v8) >> 1; - v10 = a2[7]; + v10 = *((_DWORD *)a2 + 7); if ( v10 ) { LABEL_3: - v11 = a2[8]; + v11 = *((_DWORD *)a2 + 8); v28 = (v10 - v8) >> 1; v29 = (v10 - v8) >> 31; v30 = (int)(v11 - v10) >> 1; - v31 = (a2[9] - v8) >> 1; + v31 = (*((_DWORD *)a2 + 9) - v8) >> 1; if ( v9 < v11 ) - v9 = a2[8]; + v9 = *((_DWORD *)a2 + 8); } if ( v9 ) - a2[13] = (int)(v9 - v8) >> 1; + *((_DWORD *)a2 + 13) = (int)(v9 - v8) >> 1; LABEL_7: std::wstreambuf::basic_streambuf(v23, (int)v21, v20); *((_DWORD *)this + 3) = &off_537FA8; - v12 = a2[11]; + v12 = *((_DWORD *)a2 + 11); *((_DWORD *)this + 12) = this + 56; *((_DWORD *)this + 11) = v12; - v13 = (int *)a2[12]; - if ( v13 == a2 + 14 ) + v13 = (int *)*((_DWORD *)a2 + 12); + if ( v13 == (int *)(a2 + 28) ) { - wmemcpy((wchar_t *)this + 28, (const wchar_t *)a2 + 28, 8u); + wmemcpy((wchar_t *)this + 28, a2 + 28, 8u); } else { *((_DWORD *)this + 12) = v13; - *((_DWORD *)this + 14) = a2[14]; + *((_DWORD *)this + 14) = *((_DWORD *)a2 + 14); } - v14 = a2[13]; - a2[12] = (int)(a2 + 14); - a2[13] = 0; + v14 = *((_DWORD *)a2 + 13); + *((_DWORD *)a2 + 12) = a2 + 28; + *((_DWORD *)a2 + 13) = 0; *((_DWORD *)this + 13) = v14; *((_WORD *)a2 + 28) = 0; v15 = *((_DWORD *)this + 12); @@ -173075,7 +172076,7 @@ LABEL_7: *((_DWORD *)this + 7) = v17; *((_DWORD *)this + 8) = 2 * v30 + v17; } - std::wstringbuf::_M_sync(v21, (_DWORD *)a2[12], 0, 0); + std::wstringbuf::_M_sync(v21, *((_DWORD **)a2 + 12), 0, 0); result = this + 12; *((_DWORD *)this + 48) = v23; return result; @@ -173094,13 +172095,13 @@ BOOL __thiscall std::basic_stringstream,std::a int a2, int a3) { - int v3; // esi + char *v3; // esi wchar_t *v5; // edx int v6; // eax unsigned int v7; // eax int v9; // [esp+8h] [ebp-30h] - v3 = (int)(this + 72); + v3 = this + 72; std::ios_base::ios_base((_DWORD *)this + 18); this[190] = 0; *((_DWORD *)this + 46) = 0; @@ -173112,10 +172113,10 @@ BOOL __thiscall std::basic_stringstream,std::a *(_DWORD *)this = &unk_533894; *((_DWORD *)this + 18) = &unk_5338A8; *((_DWORD *)this + 1) = 0; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *((_DWORD *)this + 2) = &unk_5338F8; *((_DWORD *)this + 18) = &unk_53390C; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *(_DWORD *)this = &off_5381D0; *((_DWORD *)this + 18) = off_5381F8; *((_DWORD *)this + 2) = off_5381E4; @@ -173139,7 +172140,7 @@ BOOL __thiscall std::basic_stringstream,std::a if ( (a3 & 3) != 0 ) v7 = *((_DWORD *)this + 13); std::wstringbuf::_M_sync((_DWORD *)this + 3, *((_DWORD **)this + 12), 0, v7); - return std::wios::init(v3, (int)(this + 12)); + return std::wios::init((int)v3, (int)(this + 12)); } // 4EB154: variable 'v9' is possibly undefined // 537FA8: using guessed type int (*off_537FA8)(); @@ -173153,9 +172154,9 @@ BOOL __thiscall std::basic_stringstream,std::a _DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 18); + v2 = this + 18; std::ios_base::ios_base(this + 18); *((_BYTE *)this + 190) = 0; this[46] = 0; @@ -173167,10 +172168,10 @@ BOOL __thiscall std::basic_stringstream,std::a *this = &unk_533894; this[18] = &unk_5338A8; this[1] = 0; - std::wios::init(v2, 0); + std::wios::init((int)v2, 0); this[2] = &unk_5338F8; this[18] = &unk_53390C; - std::wios::init(v2, 0); + std::wios::init((int)v2, 0); *this = &off_5381D0; this[18] = off_5381F8; this[2] = off_5381E4; @@ -173187,7 +172188,7 @@ BOOL __thiscall std::basic_stringstream,std::a this[12] = this + 14; this[13] = 0; *((_WORD *)this + 28) = 0; - return std::wios::init(v2, (int)(this + 3)); + return std::wios::init((int)v2, (int)(this + 3)); } // 537FA8: using guessed type int (*off_537FA8)(); // 5381D0: using guessed type int (*off_5381D0)(); @@ -173250,7 +172251,7 @@ int __thiscall std::basic_stringstream,std::al int v4; // eax int v5; // ecx int v6; // edx - int v7; // esi + char *v7; // esi int v8; // edx char v9; // al int v10; // edx @@ -173274,7 +172275,7 @@ int __thiscall std::basic_stringstream,std::al _DWORD *v28; // [esp+1Ch] [ebp-6Ch] std::ios_base *v29; // [esp+20h] [ebp-68h] int v30; // [esp+20h] [ebp-68h] - _DWORD *v31; // [esp+28h] [ebp-60h] + char *v31; // [esp+28h] [ebp-60h] int v32; // [esp+40h] [ebp-48h] int v33; // [esp+44h] [ebp-44h] int v34; // [esp+48h] [ebp-40h] @@ -173291,17 +172292,17 @@ int __thiscall std::basic_stringstream,std::al *(_DWORD *)&this[v6] = v5; *((_DWORD *)this + 1) = a3[1]; v29 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - v7 = (int)&this[*(_DWORD *)(v4 - 12)]; - std::ios_base::_M_move(v7, v29, v26); - std::wios::_M_cache_locale((_DWORD *)v7, v7 + 108); - *(_DWORD *)(v7 + 120) = 0; + v7 = &this[*(_DWORD *)(v4 - 12)]; + std::ios_base::_M_move((int)v7, v29, v26); + std::wios::_M_cache_locale(v7, (int)(v7 + 108)); + *((_DWORD *)v7 + 30) = 0; v8 = *((_DWORD *)v29 + 28); *((_DWORD *)v29 + 28) = 0; - *(_DWORD *)(v7 + 112) = v8; + *((_DWORD *)v7 + 28) = v8; v9 = *((_BYTE *)v29 + 118); - *(_WORD *)(v7 + 116) = *((_WORD *)v29 + 58); + *((_WORD *)v7 + 58) = *((_WORD *)v29 + 58); v10 = a2[5]; - *(_BYTE *)(v7 + 118) = v9; + v7[118] = v9; v11 = a2[4]; a3[1] = 0; *((_DWORD *)this + 2) = v11; @@ -173679,7 +172680,7 @@ char *__thiscall std::basic_stringstream,std:: char *this, int a2) { - int v2; // esi + char *v2; // esi int v3; // edi int v4; // eax int v5; // edx @@ -173693,7 +172694,7 @@ char *__thiscall std::basic_stringstream,std:: wchar_t *v13; // eax wchar_t *v14; // edx int v15; // esi - _DWORD *v16; // ecx + char *v16; // ecx int v17; // ebx int v18; // edx int v19; // edi @@ -173709,7 +172710,7 @@ char *__thiscall std::basic_stringstream,std:: int v30; // [esp+14h] [ebp-64h] _DWORD *v32; // [esp+20h] [ebp-58h] BYREF _DWORD *v33; // [esp+24h] [ebp-54h] BYREF - _DWORD *v34; // [esp+28h] [ebp-50h] + char *v34; // [esp+28h] [ebp-50h] int v35; // [esp+30h] [ebp-48h] int v36; // [esp+34h] [ebp-44h] int v37; // [esp+38h] [ebp-40h] @@ -173721,25 +172722,25 @@ char *__thiscall std::basic_stringstream,std:: int v43; // [esp+58h] [ebp-20h] int v44; // [esp+5Ch] [ebp-1Ch] - v2 = (int)&this[*(_DWORD *)(*(_DWORD *)this - 12)]; + v2 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; v3 = a2 + *(_DWORD *)(*(_DWORD *)a2 - 12); - std::ios_base::_M_swap(v2, (std::ios_base *)v3, v27); - std::wios::_M_cache_locale((_DWORD *)v2, v2 + 108); + std::ios_base::_M_swap((int)v2, (std::ios_base *)v3, v27); + std::wios::_M_cache_locale(v2, (int)(v2 + 108)); std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); - v4 = *(_DWORD *)(v2 + 112); + v4 = *((_DWORD *)v2 + 28); v5 = *(_DWORD *)(v3 + 112); v35 = -1; v36 = -1; - *(_DWORD *)(v2 + 112) = v5; + *((_DWORD *)v2 + 28) = v5; LOWORD(v5) = *(_WORD *)(v3 + 116); *(_DWORD *)(v3 + 112) = v4; - LOWORD(v4) = *(_WORD *)(v2 + 116); - *(_WORD *)(v2 + 116) = v5; - LOBYTE(v5) = *(_BYTE *)(v2 + 118); + LOWORD(v4) = *((_WORD *)v2 + 58); + *((_WORD *)v2 + 58) = v5; + LOBYTE(v5) = v2[118]; *(_WORD *)(v3 + 116) = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 118); v37 = -1; - *(_BYTE *)(v2 + 118) = v4; + v2[118] = v4; *(_BYTE *)(v3 + 118) = v5; v6 = *(_DWORD *)(a2 + 4); v38 = -1; @@ -173847,22 +172848,22 @@ LABEL_11: *v13 = 0; std::wstringbuf::_M_sync((_DWORD *)(a2 + 12), v13, 0, 0); v16 = v34; - v17 = v34[9]; + v17 = *((_DWORD *)v34 + 9); if ( (v35 & v36) != -1 ) { v18 = v39; v19 = v37; - v34[1] = v17 + 2 * v35; - v16[2] = v17 + 2 * v19; - v16[3] = v17 + 2 * v18; + *((_DWORD *)v34 + 1) = v17 + 2 * v35; + *((_DWORD *)v16 + 2) = v17 + 2 * v19; + *((_DWORD *)v16 + 3) = v17 + 2 * v18; } if ( (v41 & v40) != -1 ) { v20 = v42; v21 = v17 + 2 * v43; v22 = v17 + 2 * v40; - v16[6] = v21; - v16[4] = v22; + *((_DWORD *)v16 + 6) = v21; + *((_DWORD *)v16 + 4) = v22; if ( v20 > 0x7FFFFFFF ) { v23 = v22 - 2; @@ -173874,7 +172875,7 @@ LABEL_11: } while ( v20 > 0x7FFFFFFF ); } - v16[5] = v22 + 2 * v20; + *((_DWORD *)v16 + 5) = v22 + 2 * v20; } return this; } @@ -173883,49 +172884,49 @@ LABEL_11: // 4EBFEE: variable 'v29' is possibly undefined //----- (004EC1E0) -------------------------------------------------------- -int __thiscall std::istringstream::str(int this, int a2) +char *__thiscall std::istringstream::str(int this, int a2) { _DWORD *v2; // esi unsigned int v4; // eax v2 = (_DWORD *)(this + 8); - std::string::_M_replace((unsigned int *)(this + 44), 0, *(_DWORD *)(this + 48), *(char **)a2, *(_DWORD *)(a2 + 4)); + std::string::_M_replace((unsigned int **)(this + 44), 0, *(_DWORD *)(this + 48), *(char **)a2, *(_DWORD *)(a2 + 4)); v4 = 0; if ( (*(_BYTE *)(this + 40) & 3) != 0 ) v4 = *(_DWORD *)(this + 48); - return std::stringbuf::_M_sync(v2, *(_DWORD **)(this + 44), 0, v4); + return std::stringbuf::_M_sync(v2, *(char **)(this + 44), 0, v4); } //----- (004EC250) -------------------------------------------------------- -int __thiscall std::istringstream::swap(_DWORD *this, _DWORD *a2) +int __thiscall std::istringstream::swap(volatile signed __int32 **this, _DWORD *a2) { - int v3; // edi + char *v3; // edi std::ios_base *v4; // esi int v5; // eax char v6; // dl char v7; // dl - int v8; // eax + volatile signed __int32 *v8; // eax std::ios_base *v10; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *((_DWORD *)*this - 3); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v10); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v10); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; v8 = this[1]; *((_BYTE *)v4 + 117) = v7; - this[1] = a2[1]; + this[1] = (volatile signed __int32 *)a2[1]; a2[1] = v8; - return std::stringbuf::swap(this + 2, (int)(a2 + 2)); + return std::stringbuf::swap(this + 2, a2 + 2); } // 4EC274: variable 'v10' is possibly undefined @@ -174056,7 +173057,7 @@ LABEL_7: this[6] = v16; this[7] = v27 + v16; } - std::stringbuf::_M_sync(v20, (_DWORD *)a2[11], 0, 0); + std::stringbuf::_M_sync(v20, (char *)a2[11], 0, 0); result = (char *)(this + 2); this[47] = v22; return result; @@ -174071,13 +173072,13 @@ LABEL_7: //----- (004EC660) -------------------------------------------------------- BOOL __thiscall std::istringstream::basic_istringstream(char *this, int a2, int a3) { - int v3; // esi + char *v3; // esi int v5; // eax unsigned __int8 *v6; // edx unsigned int v7; // eax int v9; // [esp+8h] [ebp-30h] - v3 = (int)(this + 68); + v3 = this + 68; std::ios_base::ios_base((_DWORD *)this + 17); *(_DWORD *)this = &unk_533920; *((_DWORD *)this + 45) = 0; @@ -174088,7 +173089,7 @@ BOOL __thiscall std::istringstream::basic_istringstream(char *this, int a2, int *((_DWORD *)this + 50) = 0; *((_DWORD *)this + 17) = &unk_533934; *((_DWORD *)this + 1) = 0; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_53820C; *((_DWORD *)this + 17) = off_538220; *((_DWORD *)this + 2) = &off_538A48; @@ -174110,8 +173111,8 @@ BOOL __thiscall std::istringstream::basic_istringstream(char *this, int a2, int v7 = 0; if ( (a3 & 3) != 0 ) v7 = *((_DWORD *)this + 12); - std::stringbuf::_M_sync((_DWORD *)this + 2, *((_DWORD **)this + 11), 0, v7); - return std::ios::init(v3, (int)(this + 8)); + std::stringbuf::_M_sync((_DWORD *)this + 2, *((char **)this + 11), 0, v7); + return std::ios::init((int)v3, (int)(this + 8)); } // 4EC75A: variable 'v9' is possibly undefined // 537F68: using guessed type int (*off_537F68)(); @@ -174122,9 +173123,9 @@ BOOL __thiscall std::istringstream::basic_istringstream(char *this, int a2, int //----- (004EC7F0) -------------------------------------------------------- BOOL __thiscall std::istringstream::basic_istringstream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 17); + v2 = this + 17; std::ios_base::ios_base(this + 17); *this = &unk_533920; this[45] = 0; @@ -174135,7 +173136,7 @@ BOOL __thiscall std::istringstream::basic_istringstream(_DWORD *this, int a2) this[50] = 0; this[17] = &unk_533934; this[1] = 0; - std::ios::init(v2, 0); + std::ios::init((int)v2, 0); *this = &off_53820C; this[17] = off_538220; this[2] = &off_538A48; @@ -174151,7 +173152,7 @@ BOOL __thiscall std::istringstream::basic_istringstream(_DWORD *this, int a2) this[12] = 0; this[10] = a2 | 8; this[11] = this + 13; - return std::ios::init(v2, (int)(this + 2)); + return std::ios::init((int)v2, (int)(this + 2)); } // 537F68: using guessed type int (*off_537F68)(); // 53820C: using guessed type int (*off_53820C)(); @@ -174201,7 +173202,7 @@ BOOL __fastcall std::istringstream::basic_istringstream(int a1) int __thiscall std::istringstream::basic_istringstream(int *this, int *a2, _DWORD *a3) { int v3; // eax - int v4; // esi + char *v4; // esi int v5; // edx __int16 v6; // ax int v7; // edx @@ -174219,7 +173220,7 @@ int __thiscall std::istringstream::basic_istringstream(int *this, int *a2, _DWOR std::ios_base *v19; // [esp+4h] [ebp-84h] const std::locale *v20; // [esp+4h] [ebp-84h] std::ios_base *v21; // [esp+20h] [ebp-68h] - _DWORD *v22; // [esp+28h] [ebp-60h] + int *v22; // [esp+28h] [ebp-60h] __int64 v24; // [esp+40h] [ebp-48h] int v25; // [esp+48h] [ebp-40h] int v26; // [esp+50h] [ebp-38h] @@ -174231,16 +173232,16 @@ int __thiscall std::istringstream::basic_istringstream(int *this, int *a2, _DWOR *this = v3; *(int *)((char *)this + *(_DWORD *)(v3 - 12)) = a2[2]; this[1] = a3[1]; - v4 = (int)this + *(_DWORD *)(v3 - 12); + v4 = (char *)this + *(_DWORD *)(v3 - 12); v21 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v4, v21, v19); - std::ios::_M_cache_locale((_DWORD *)v4, v4 + 108); - *(_DWORD *)(v4 + 120) = 0; + std::ios_base::_M_move((int)v4, v21, v19); + std::ios::_M_cache_locale(v4, (int)(v4 + 108)); + *((_DWORD *)v4 + 30) = 0; v5 = *((_DWORD *)v21 + 28); *((_DWORD *)v21 + 28) = 0; v6 = *((_WORD *)v21 + 58); - *(_DWORD *)(v4 + 112) = v5; - *(_WORD *)(v4 + 116) = v6; + *((_DWORD *)v4 + 28) = v5; + *((_WORD *)v4 + 58) = v6; a3[1] = 0; v7 = a2[3]; v8 = *a2; @@ -174317,7 +173318,7 @@ LABEL_7: this[6] = v17; this[7] = v28 + v17; } - std::stringbuf::_M_sync(a3 + 2, (_DWORD *)a3[11], 0, 0); + std::stringbuf::_M_sync(a3 + 2, (char *)a3[11], 0, 0); result = *(_DWORD *)(*this - 12); *(int *)((char *)this + result + 120) = (int)v22; return result; @@ -174368,7 +173369,7 @@ BOOL __thiscall std::istringstream::basic_istringstream(char *this, int *a2, int v11 = 0; if ( (a4 & 3) != 0 ) v11 = *((_DWORD *)this + 12); - std::stringbuf::_M_sync((_DWORD *)this + 2, *((_DWORD **)this + 11), 0, v11); + std::stringbuf::_M_sync((_DWORD *)this + 2, *((char **)this + 11), 0, v11); return std::ios::init((int)&this[*(_DWORD *)(*(_DWORD *)this - 12)], (int)(this + 8)); } // 4ECE19: variable 'v13' is possibly undefined @@ -174378,12 +173379,12 @@ BOOL __thiscall std::istringstream::basic_istringstream(char *this, int *a2, int //----- (004ECEB0) -------------------------------------------------------- BOOL __thiscall std::istringstream::basic_istringstream(int *this, int *a2, int a3) { - int v4; // edi + int *v4; // edi int v5; // eax int v6; // eax int v7; // edx - v4 = (int)(this + 2); + v4 = this + 2; v5 = a2[1]; *this = v5; *(int *)((char *)this + *(_DWORD *)(v5 - 12)) = a2[2]; @@ -174406,7 +173407,7 @@ BOOL __thiscall std::istringstream::basic_istringstream(int *this, int *a2, int this[2] = (int)&off_537F68; this[10] = a3 | 8; this[11] = (int)(this + 13); - return std::ios::init((int)this + *(_DWORD *)(*this - 12), v4); + return std::ios::init((int)this + *(_DWORD *)(*this - 12), (int)v4); } // 537F68: using guessed type int (*off_537F68)(); // 538A48: using guessed type int (*off_538A48)(); @@ -174414,14 +173415,14 @@ BOOL __thiscall std::istringstream::basic_istringstream(int *this, int *a2, int //----- (004ECFA0) -------------------------------------------------------- BOOL __thiscall std::istringstream::basic_istringstream(int *this, int *a2) { - int v3; // edi + int *v3; // edi int v4; // eax int v5; // eax int v6; // edx int v7; // eax int v8; // ecx - v3 = (int)(this + 2); + v3 = this + 2; v4 = a2[1]; *this = v4; *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; @@ -174446,7 +173447,7 @@ BOOL __thiscall std::istringstream::basic_istringstream(int *this, int *a2) this[2] = (int)&off_537F68; v8 = *(_DWORD *)(v7 - 12); this[10] = 8; - return std::ios::init((int)this + v8, v3); + return std::ios::init((int)this + v8, (int)v3); } // 537F68: using guessed type int (*off_537F68)(); // 538A48: using guessed type int (*off_538A48)(); @@ -174504,16 +173505,16 @@ void __fastcall std::istringstream::~istringstream(int a1) int __thiscall std::istringstream::~istringstream(int *this, int *a2) { int v3; // eax - char *v4; // eax + int *v4; // eax int v5; // eax int result; // eax v3 = *a2; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v3 - 12)) = a2[3]; - v4 = (char *)this[11]; + v4 = (int *)this[11]; this[2] = (int)&off_537F68; - if ( v4 != (char *)(this + 13) ) + if ( v4 != this + 13 ) operator delete(v4); this[2] = (int)&off_538A48; std::locale::~locale((_DWORD **)this + 9); @@ -174530,7 +173531,7 @@ int __thiscall std::istringstream::~istringstream(int *this, int *a2) //----- (004ED1C0) -------------------------------------------------------- char *__thiscall std::istringstream::operator=(char *this, int a2) { - int v2; // esi + char *v2; // esi int v3; // edi int v4; // eax int v5; // edx @@ -174542,7 +173543,7 @@ char *__thiscall std::istringstream::operator=(char *this, int a2) char *v11; // eax const void *v12; // edx int v13; // esi - _DWORD *v14; // edx + char *v14; // edx int v15; // eax int v16; // ebx int v17; // edi @@ -174558,7 +173559,7 @@ char *__thiscall std::istringstream::operator=(char *this, int a2) int v28; // [esp+14h] [ebp-64h] _DWORD *v30; // [esp+20h] [ebp-58h] BYREF _DWORD *v31; // [esp+24h] [ebp-54h] BYREF - _DWORD *v32; // [esp+28h] [ebp-50h] + char *v32; // [esp+28h] [ebp-50h] __int64 v33; // [esp+30h] [ebp-48h] int v34; // [esp+38h] [ebp-40h] int v35; // [esp+3Ch] [ebp-3Ch] @@ -174568,24 +173569,24 @@ char *__thiscall std::istringstream::operator=(char *this, int a2) int v39; // [esp+58h] [ebp-20h] int v40; // [esp+5Ch] [ebp-1Ch] - v2 = (int)&this[*(_DWORD *)(*(_DWORD *)this - 12)]; + v2 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; v3 = a2 + *(_DWORD *)(*(_DWORD *)a2 - 12); - std::ios_base::_M_swap(v2, (std::ios_base *)v3, v24); - std::ios::_M_cache_locale((_DWORD *)v2, v2 + 108); + std::ios_base::_M_swap((int)v2, (std::ios_base *)v3, v24); + std::ios::_M_cache_locale(v2, (int)(v2 + 108)); std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); - v4 = *(_DWORD *)(v2 + 112); + v4 = *((_DWORD *)v2 + 28); v5 = *(_DWORD *)(v3 + 112); v33 = -1LL; - *(_DWORD *)(v2 + 112) = v5; + *((_DWORD *)v2 + 28) = v5; *(_DWORD *)(v3 + 112) = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 116); - LOBYTE(v5) = *(_BYTE *)(v2 + 116); + LOBYTE(v5) = v2[116]; v34 = -1; - *(_BYTE *)(v2 + 116) = v4; + v2[116] = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 117); *(_BYTE *)(v3 + 116) = v5; - LOBYTE(v5) = *(_BYTE *)(v2 + 117); - *(_BYTE *)(v2 + 117) = v4; + LOBYTE(v5) = v2[117]; + v2[117] = v4; *(_BYTE *)(v3 + 117) = v5; v6 = *(_DWORD *)(a2 + 4); v35 = -1; @@ -174681,24 +173682,24 @@ LABEL_7: LABEL_11: *(_DWORD *)(a2 + 48) = 0; *v11 = 0; - std::stringbuf::_M_sync((_DWORD *)(a2 + 8), *(_DWORD **)(a2 + 44), 0, 0); + std::stringbuf::_M_sync((_DWORD *)(a2 + 8), *(char **)(a2 + 44), 0, 0); v14 = v32; - v15 = v32[9]; + v15 = *((_DWORD *)v32 + 9); if ( ((unsigned int)v33 & HIDWORD(v33)) != -1 ) { v16 = v36; v17 = v34; - v32[1] = v15 + v33; - v14[2] = v15 + v17; - v14[3] = v15 + v16; + *((_DWORD *)v32 + 1) = v15 + v33; + *((_DWORD *)v14 + 2) = v15 + v17; + *((_DWORD *)v14 + 3) = v15 + v16; } if ( ((unsigned int)v37 & HIDWORD(v37)) != -1 ) { v18 = v38; v19 = v15 + v39; v20 = v37 + v15; - v14[6] = v19; - v14[4] = v20; + *((_DWORD *)v14 + 6) = v19; + *((_DWORD *)v14 + 4) = v20; if ( v18 > 0x7FFFFFFF ) { v21 = v20 + 0x7FFFFFFF; @@ -174710,7 +173711,7 @@ LABEL_11: } while ( v18 > 0x7FFFFFFF ); } - v14[5] = v18 + v20; + *((_DWORD *)v14 + 5) = v18 + v20; } return this; } @@ -174719,7 +173720,7 @@ LABEL_11: // 4ED352: variable 'v26' is possibly undefined //----- (004ED550) -------------------------------------------------------- -int __thiscall std::wistringstream::str(int this, int a2) +_DWORD *__thiscall std::wistringstream::str(int this, int a2) { _DWORD *v2; // esi unsigned int v4; // eax @@ -174735,42 +173736,42 @@ int __thiscall std::wistringstream::str(int this, int a2) //----- (004ED5C0) -------------------------------------------------------- int __thiscall std::wistringstream::swap(_DWORD *this, _DWORD *a2) { - int v3; // edi + char *v3; // edi std::ios_base *v4; // esi int v5; // eax __int16 v6; // dx int v7; // eax std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); v7 = this[1]; *((_BYTE *)v4 + 118) = v6; this[1] = a2[1]; a2[1] = v7; - return std::wstringbuf::swap(this + 2, (int)(a2 + 2)); + return std::wstringbuf::swap(this + 2, a2 + 2); } // 4ED5E4: variable 'v9' is possibly undefined //----- (004ED660) -------------------------------------------------------- -char *__thiscall std::wistringstream::basic_istringstream(char *this, int *a2) +char *__thiscall std::wistringstream::basic_istringstream(char *this, const wchar_t *a2) { int v3; // eax int v4; // eax int v5; // esi - int v6; // esi + std::ios_base *v6; // esi int v7; // eax int v8; // edx unsigned int v9; // eax @@ -174785,9 +173786,9 @@ char *__thiscall std::wistringstream::basic_istringstream(char *this, int *a2) char *result; // eax std::ios_base *v19; // [esp+4h] [ebp-84h] const std::locale *v20; // [esp+4h] [ebp-84h] - _DWORD *v21; // [esp+1Ch] [ebp-6Ch] - _DWORD *v22; // [esp+20h] [ebp-68h] - _DWORD *v23; // [esp+28h] [ebp-60h] + int *v21; // [esp+1Ch] [ebp-6Ch] + char *v22; // [esp+20h] [ebp-68h] + char *v23; // [esp+28h] [ebp-60h] int v24; // [esp+40h] [ebp-48h] int v25; // [esp+44h] [ebp-44h] int v26; // [esp+48h] [ebp-40h] @@ -174799,34 +173800,34 @@ char *__thiscall std::wistringstream::basic_istringstream(char *this, int *a2) v22 = this + 68; std::ios_base::ios_base((_DWORD *)this + 17); - v3 = a2[1]; + v3 = *((_DWORD *)a2 + 1); *(_DWORD *)this = &unk_533948; *((_DWORD *)this + 45) = 0; *((_DWORD *)this + 1) = v3; - v4 = *a2; + v4 = *(_DWORD *)a2; *((_WORD *)this + 92) = 0; v5 = *(_DWORD *)(v4 - 12); this[186] = 0; *((_DWORD *)this + 47) = 0; - v6 = (int)a2 + v5; + v6 = (std::ios_base *)((char *)a2 + v5); *((_DWORD *)this + 48) = 0; *((_DWORD *)this + 49) = 0; *((_DWORD *)this + 50) = 0; *((_DWORD *)this + 17) = &unk_53395C; - std::ios_base::_M_move((int)v22, (std::ios_base *)v6, v19); + std::ios_base::_M_move((int)v22, v6, v19); std::wios::_M_cache_locale(v22, (int)(this + 176)); - v7 = *(_DWORD *)(v6 + 112); - *(_DWORD *)(v6 + 112) = 0; + v7 = *((_DWORD *)v6 + 28); + *((_DWORD *)v6 + 28) = 0; *((_DWORD *)this + 47) = 0; *((_DWORD *)this + 45) = v7; - v21 = a2 + 2; - v8 = a2[11]; - *((_WORD *)this + 92) = *(_WORD *)(v6 + 116); + v21 = (int *)(a2 + 4); + v8 = *((_DWORD *)a2 + 11); + *((_WORD *)this + 92) = *((_WORD *)v6 + 58); v24 = -1; - this[186] = *(_BYTE *)(v6 + 118); + this[186] = *((_BYTE *)v6 + 118); v23 = this + 8; - v9 = a2[3]; - a2[1] = 0; + v9 = *((_DWORD *)a2 + 3); + *((_DWORD *)a2 + 1) = 0; v25 = -1; *(_DWORD *)this = &off_538234; *((_DWORD *)this + 17) = off_538248; @@ -174838,49 +173839,49 @@ char *__thiscall std::wistringstream::basic_istringstream(char *this, int *a2) v31 = -1; if ( !v9 ) { - v10 = a2[6]; + v10 = *((_DWORD *)a2 + 6); if ( !v10 ) goto LABEL_7; goto LABEL_3; } v24 = (int)(v9 - v8) >> 1; v25 = (int)(v9 - v8) >> 31; - v26 = (a2[4] - v8) >> 1; - v9 = a2[5]; + v26 = (*((_DWORD *)a2 + 4) - v8) >> 1; + v9 = *((_DWORD *)a2 + 5); v27 = (int)(v9 - v8) >> 1; - v10 = a2[6]; + v10 = *((_DWORD *)a2 + 6); if ( v10 ) { LABEL_3: - v11 = a2[7]; + v11 = *((_DWORD *)a2 + 7); v28 = (v10 - v8) >> 1; v29 = (v10 - v8) >> 31; v30 = (int)(v11 - v10) >> 1; - v31 = (a2[8] - v8) >> 1; + v31 = (*((_DWORD *)a2 + 8) - v8) >> 1; if ( v9 < v11 ) - v9 = a2[7]; + v9 = *((_DWORD *)a2 + 7); } if ( v9 ) - a2[12] = (int)(v9 - v8) >> 1; + *((_DWORD *)a2 + 12) = (int)(v9 - v8) >> 1; LABEL_7: std::wstreambuf::basic_streambuf(v23, (int)v21, v20); *((_DWORD *)this + 2) = &off_537FA8; - v12 = a2[10]; + v12 = *((_DWORD *)a2 + 10); *((_DWORD *)this + 11) = this + 52; *((_DWORD *)this + 10) = v12; - v13 = (int *)a2[11]; - if ( v13 == a2 + 13 ) + v13 = (int *)*((_DWORD *)a2 + 11); + if ( v13 == (int *)(a2 + 26) ) { - wmemcpy((wchar_t *)this + 26, (const wchar_t *)a2 + 26, 8u); + wmemcpy((wchar_t *)this + 26, a2 + 26, 8u); } else { *((_DWORD *)this + 11) = v13; - *((_DWORD *)this + 13) = a2[13]; + *((_DWORD *)this + 13) = *((_DWORD *)a2 + 13); } - v14 = a2[12]; - a2[11] = (int)(a2 + 13); - a2[12] = 0; + v14 = *((_DWORD *)a2 + 12); + *((_DWORD *)a2 + 11) = a2 + 26; + *((_DWORD *)a2 + 12) = 0; *((_DWORD *)this + 12) = v14; *((_WORD *)a2 + 26) = 0; v15 = *((_DWORD *)this + 11); @@ -174898,7 +173899,7 @@ LABEL_7: *((_DWORD *)this + 6) = v17; *((_DWORD *)this + 7) = 2 * v30 + v17; } - std::wstringbuf::_M_sync(v21, (_DWORD *)a2[11], 0, 0); + std::wstringbuf::_M_sync(v21, *((_DWORD **)a2 + 11), 0, 0); result = this + 8; *((_DWORD *)this + 47) = v23; return result; @@ -174913,13 +173914,13 @@ LABEL_7: //----- (004EDA00) -------------------------------------------------------- BOOL __thiscall std::wistringstream::basic_istringstream(char *this, int a2, int a3) { - int v3; // esi + char *v3; // esi int v5; // eax wchar_t *v6; // edx unsigned int v7; // eax int v9; // [esp+8h] [ebp-30h] - v3 = (int)(this + 68); + v3 = this + 68; std::ios_base::ios_base((_DWORD *)this + 17); this[186] = 0; *((_DWORD *)this + 45) = 0; @@ -174931,7 +173932,7 @@ BOOL __thiscall std::wistringstream::basic_istringstream(char *this, int a2, int *(_DWORD *)this = &unk_533948; *((_DWORD *)this + 17) = &unk_53395C; *((_DWORD *)this + 1) = 0; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *(_DWORD *)this = &off_538234; *((_DWORD *)this + 17) = off_538248; *((_DWORD *)this + 2) = &off_538A88; @@ -174954,7 +173955,7 @@ BOOL __thiscall std::wistringstream::basic_istringstream(char *this, int a2, int if ( (a3 & 3) != 0 ) v7 = *((_DWORD *)this + 12); std::wstringbuf::_M_sync((_DWORD *)this + 2, *((_DWORD **)this + 11), 0, v7); - return std::wios::init(v3, (int)(this + 8)); + return std::wios::init((int)v3, (int)(this + 8)); } // 4EDB04: variable 'v9' is possibly undefined // 537FA8: using guessed type int (*off_537FA8)(); @@ -174965,9 +173966,9 @@ BOOL __thiscall std::wistringstream::basic_istringstream(char *this, int a2, int //----- (004EDBA0) -------------------------------------------------------- BOOL __thiscall std::wistringstream::basic_istringstream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 17); + v2 = this + 17; std::ios_base::ios_base(this + 17); *((_BYTE *)this + 186) = 0; this[45] = 0; @@ -174979,7 +173980,7 @@ BOOL __thiscall std::wistringstream::basic_istringstream(_DWORD *this, int a2) *this = &unk_533948; this[17] = &unk_53395C; this[1] = 0; - std::wios::init(v2, 0); + std::wios::init((int)v2, 0); *this = &off_538234; this[17] = off_538248; this[2] = &off_538A88; @@ -174995,7 +173996,7 @@ BOOL __thiscall std::wistringstream::basic_istringstream(_DWORD *this, int a2) this[10] = a2 | 8; this[11] = this + 13; *((_WORD *)this + 26) = 0; - return std::wios::init(v2, (int)(this + 2)); + return std::wios::init((int)v2, (int)(this + 2)); } // 537FA8: using guessed type int (*off_537FA8)(); // 538234: using guessed type int (*off_538234)(); @@ -175046,7 +174047,7 @@ BOOL __fastcall std::wistringstream::basic_istringstream(int a1) int __thiscall std::wistringstream::basic_istringstream(char *this, int *a2, int a3) { int v3; // eax - int v4; // esi + char *v4; // esi int v5; // edx char v6; // al int v7; // edx @@ -175064,7 +174065,7 @@ int __thiscall std::wistringstream::basic_istringstream(char *this, int *a2, int std::ios_base *v19; // [esp+4h] [ebp-84h] const std::locale *v20; // [esp+4h] [ebp-84h] int v21; // [esp+20h] [ebp-68h] - _DWORD *v22; // [esp+28h] [ebp-60h] + char *v22; // [esp+28h] [ebp-60h] int v24; // [esp+40h] [ebp-48h] int v25; // [esp+44h] [ebp-44h] int v26; // [esp+48h] [ebp-40h] @@ -175078,17 +174079,17 @@ int __thiscall std::wistringstream::basic_istringstream(char *this, int *a2, int *(_DWORD *)this = v3; *(_DWORD *)&this[*(_DWORD *)(v3 - 12)] = a2[2]; *((_DWORD *)this + 1) = *(_DWORD *)(a3 + 4); - v4 = (int)&this[*(_DWORD *)(v3 - 12)]; + v4 = &this[*(_DWORD *)(v3 - 12)]; v21 = a3 + *(_DWORD *)(*(_DWORD *)a3 - 12); - std::ios_base::_M_move(v4, (std::ios_base *)v21, v19); - std::wios::_M_cache_locale((_DWORD *)v4, v4 + 108); - *(_DWORD *)(v4 + 120) = 0; + std::ios_base::_M_move((int)v4, (std::ios_base *)v21, v19); + std::wios::_M_cache_locale(v4, (int)(v4 + 108)); + *((_DWORD *)v4 + 30) = 0; v5 = *(_DWORD *)(v21 + 112); *(_DWORD *)(v21 + 112) = 0; - *(_DWORD *)(v4 + 112) = v5; + *((_DWORD *)v4 + 28) = v5; v6 = *(_BYTE *)(v21 + 118); - *(_WORD *)(v4 + 116) = *(_WORD *)(v21 + 116); - *(_BYTE *)(v4 + 118) = v6; + *((_WORD *)v4 + 58) = *(_WORD *)(v21 + 116); + v4[118] = v6; *(_DWORD *)(a3 + 4) = 0; v7 = a2[3]; v8 = *a2; @@ -175227,12 +174228,12 @@ BOOL __thiscall std::wistringstream::basic_istringstream(char *this, int *a2, in //----- (004EE2B0) -------------------------------------------------------- BOOL __thiscall std::wistringstream::basic_istringstream(int *this, int *a2, int a3) { - int v4; // edi + int *v4; // edi int v5; // eax int v6; // eax int v7; // edx - v4 = (int)(this + 2); + v4 = this + 2; v5 = a2[1]; *this = v5; *(int *)((char *)this + *(_DWORD *)(v5 - 12)) = a2[2]; @@ -175255,7 +174256,7 @@ BOOL __thiscall std::wistringstream::basic_istringstream(int *this, int *a2, int this[10] = a3 | 8; this[11] = (int)(this + 13); *((_WORD *)this + 26) = 0; - return std::wios::init((int)this + *(_DWORD *)(*this - 12), v4); + return std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v4); } // 537FA8: using guessed type int (*off_537FA8)(); // 538A88: using guessed type int (*off_538A88)(); @@ -175263,14 +174264,14 @@ BOOL __thiscall std::wistringstream::basic_istringstream(int *this, int *a2, int //----- (004EE3A0) -------------------------------------------------------- BOOL __thiscall std::wistringstream::basic_istringstream(int *this, int *a2) { - int v3; // edi + int *v3; // edi int v4; // eax int v5; // eax int v6; // edx int v7; // eax int v8; // ecx - v3 = (int)(this + 2); + v3 = this + 2; v4 = a2[1]; *this = v4; *(int *)((char *)this + *(_DWORD *)(v4 - 12)) = a2[2]; @@ -175295,7 +174296,7 @@ BOOL __thiscall std::wistringstream::basic_istringstream(int *this, int *a2) this[2] = (int)&off_537FA8; v8 = *(_DWORD *)(v7 - 12); this[10] = 8; - return std::wios::init((int)this + v8, v3); + return std::wios::init((int)this + v8, (int)v3); } // 537FA8: using guessed type int (*off_537FA8)(); // 538A88: using guessed type int (*off_538A88)(); @@ -175353,16 +174354,16 @@ void __fastcall std::wistringstream::~wistringstream(int a1) int __thiscall std::wistringstream::~wistringstream(int *this, int *a2) { int v3; // eax - char *v4; // eax + int *v4; // eax int v5; // eax int result; // eax v3 = *a2; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v3 - 12)) = a2[3]; - v4 = (char *)this[11]; + v4 = (int *)this[11]; this[2] = (int)&off_537FA8; - if ( v4 != (char *)(this + 13) ) + if ( v4 != this + 13 ) operator delete(v4); this[2] = (int)&off_538A88; std::locale::~locale((_DWORD **)this + 9); @@ -175379,7 +174380,7 @@ int __thiscall std::wistringstream::~wistringstream(int *this, int *a2) //----- (004EE5C0) -------------------------------------------------------- char *__thiscall std::wistringstream::operator=(char *this, int a2) { - int v2; // esi + char *v2; // esi int v3; // edi int v4; // eax int v5; // edx @@ -175393,7 +174394,7 @@ char *__thiscall std::wistringstream::operator=(char *this, int a2) wchar_t *v13; // eax wchar_t *v14; // edx int v15; // esi - _DWORD *v16; // ecx + char *v16; // ecx int v17; // ebx int v18; // edx int v19; // edi @@ -175409,7 +174410,7 @@ char *__thiscall std::wistringstream::operator=(char *this, int a2) int v30; // [esp+14h] [ebp-64h] _DWORD *v32; // [esp+20h] [ebp-58h] BYREF _DWORD *v33; // [esp+24h] [ebp-54h] BYREF - _DWORD *v34; // [esp+28h] [ebp-50h] + char *v34; // [esp+28h] [ebp-50h] int v35; // [esp+30h] [ebp-48h] int v36; // [esp+34h] [ebp-44h] int v37; // [esp+38h] [ebp-40h] @@ -175421,25 +174422,25 @@ char *__thiscall std::wistringstream::operator=(char *this, int a2) int v43; // [esp+58h] [ebp-20h] int v44; // [esp+5Ch] [ebp-1Ch] - v2 = (int)&this[*(_DWORD *)(*(_DWORD *)this - 12)]; + v2 = &this[*(_DWORD *)(*(_DWORD *)this - 12)]; v3 = a2 + *(_DWORD *)(*(_DWORD *)a2 - 12); - std::ios_base::_M_swap(v2, (std::ios_base *)v3, v27); - std::wios::_M_cache_locale((_DWORD *)v2, v2 + 108); + std::ios_base::_M_swap((int)v2, (std::ios_base *)v3, v27); + std::wios::_M_cache_locale(v2, (int)(v2 + 108)); std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); - v4 = *(_DWORD *)(v2 + 112); + v4 = *((_DWORD *)v2 + 28); v5 = *(_DWORD *)(v3 + 112); v35 = -1; v36 = -1; - *(_DWORD *)(v2 + 112) = v5; + *((_DWORD *)v2 + 28) = v5; LOWORD(v5) = *(_WORD *)(v3 + 116); *(_DWORD *)(v3 + 112) = v4; - LOWORD(v4) = *(_WORD *)(v2 + 116); - *(_WORD *)(v2 + 116) = v5; - LOBYTE(v5) = *(_BYTE *)(v2 + 118); + LOWORD(v4) = *((_WORD *)v2 + 58); + *((_WORD *)v2 + 58) = v5; + LOBYTE(v5) = v2[118]; *(_WORD *)(v3 + 116) = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 118); v37 = -1; - *(_BYTE *)(v2 + 118) = v4; + v2[118] = v4; *(_BYTE *)(v3 + 118) = v5; v6 = *(_DWORD *)(a2 + 4); v38 = -1; @@ -175547,22 +174548,22 @@ LABEL_11: *v13 = 0; std::wstringbuf::_M_sync((_DWORD *)(a2 + 8), v13, 0, 0); v16 = v34; - v17 = v34[9]; + v17 = *((_DWORD *)v34 + 9); if ( (v35 & v36) != -1 ) { v18 = v39; v19 = v37; - v34[1] = v17 + 2 * v35; - v16[2] = v17 + 2 * v19; - v16[3] = v17 + 2 * v18; + *((_DWORD *)v34 + 1) = v17 + 2 * v35; + *((_DWORD *)v16 + 2) = v17 + 2 * v19; + *((_DWORD *)v16 + 3) = v17 + 2 * v18; } if ( (v41 & v40) != -1 ) { v20 = v42; v21 = v17 + 2 * v43; v22 = v17 + 2 * v40; - v16[6] = v21; - v16[4] = v22; + *((_DWORD *)v16 + 6) = v21; + *((_DWORD *)v16 + 4) = v22; if ( v20 > 0x7FFFFFFF ) { v23 = v22 - 2; @@ -175574,7 +174575,7 @@ LABEL_11: } while ( v20 > 0x7FFFFFFF ); } - v16[5] = v22 + 2 * v20; + *((_DWORD *)v16 + 5) = v22 + 2 * v20; } return this; } @@ -175583,45 +174584,45 @@ LABEL_11: // 4EE75E: variable 'v29' is possibly undefined //----- (004EE950) -------------------------------------------------------- -int __thiscall std::ostringstream::str(int this, int a2) +char *__thiscall std::ostringstream::str(int this, int a2) { _DWORD *v2; // esi unsigned int v4; // eax v2 = (_DWORD *)(this + 4); - std::string::_M_replace((unsigned int *)(this + 40), 0, *(_DWORD *)(this + 44), *(char **)a2, *(_DWORD *)(a2 + 4)); + std::string::_M_replace((unsigned int **)(this + 40), 0, *(_DWORD *)(this + 44), *(char **)a2, *(_DWORD *)(a2 + 4)); v4 = 0; if ( (*(_BYTE *)(this + 36) & 3) != 0 ) v4 = *(_DWORD *)(this + 44); - return std::stringbuf::_M_sync(v2, *(_DWORD **)(this + 40), 0, v4); + return std::stringbuf::_M_sync(v2, *(char **)(this + 40), 0, v4); } //----- (004EE9C0) -------------------------------------------------------- -int __thiscall std::ostringstream::swap(_DWORD *this, _DWORD *a2) +int __thiscall std::ostringstream::swap(volatile signed __int32 **this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax char v6; // dl char v7; // dl std::ios_base *v9; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *((_DWORD *)*this - 3); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v9); - std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v9); + std::ios::_M_cache_locale(v3, (int)(v3 + 108)); std::ios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); *((_DWORD *)v4 + 28) = v5; - v6 = *(_BYTE *)(v3 + 116); - *(_BYTE *)(v3 + 116) = *((_BYTE *)v4 + 116); + v6 = v3[116]; + v3[116] = *((_BYTE *)v4 + 116); LOBYTE(v5) = *((_BYTE *)v4 + 117); *((_BYTE *)v4 + 116) = v6; - v7 = *(_BYTE *)(v3 + 117); - *(_BYTE *)(v3 + 117) = v5; + v7 = v3[117]; + v3[117] = v5; *((_BYTE *)v4 + 117) = v7; - return std::stringbuf::swap(this + 1, (int)(a2 + 1)); + return std::stringbuf::swap(this + 1, a2 + 1); } // 4EE9E4: variable 'v9' is possibly undefined @@ -175749,7 +174750,7 @@ LABEL_7: this[5] = v15; this[6] = v26 + v15; } - std::stringbuf::_M_sync(v19, (_DWORD *)a2[10], 0, 0); + std::stringbuf::_M_sync(v19, (char *)a2[10], 0, 0); result = (char *)(this + 1); this[46] = v21; return result; @@ -175764,13 +174765,13 @@ LABEL_7: //----- (004EEDB0) -------------------------------------------------------- BOOL __thiscall std::ostringstream::basic_ostringstream(char *this, int a2, int a3) { - int v3; // esi + char *v3; // esi int v5; // eax unsigned __int8 *v6; // edx unsigned int v7; // eax int v9; // [esp+8h] [ebp-30h] - v3 = (int)(this + 64); + v3 = this + 64; std::ios_base::ios_base((_DWORD *)this + 16); *(_DWORD *)this = &unk_533970; *((_DWORD *)this + 44) = 0; @@ -175780,7 +174781,7 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(char *this, int a2, int *((_DWORD *)this + 48) = 0; *((_DWORD *)this + 49) = 0; *((_DWORD *)this + 16) = &unk_533984; - std::ios::init(v3, 0); + std::ios::init((int)v3, 0); *(_DWORD *)this = &off_53825C; *((_DWORD *)this + 16) = off_538270; *((_DWORD *)this + 1) = &off_538A48; @@ -175802,8 +174803,8 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(char *this, int a2, int v7 = 0; if ( (a3 & 3) != 0 ) v7 = *((_DWORD *)this + 11); - std::stringbuf::_M_sync((_DWORD *)this + 1, *((_DWORD **)this + 10), 0, v7); - return std::ios::init(v3, (int)(this + 4)); + std::stringbuf::_M_sync((_DWORD *)this + 1, *((char **)this + 10), 0, v7); + return std::ios::init((int)v3, (int)(this + 4)); } // 4EEEA3: variable 'v9' is possibly undefined // 537F68: using guessed type int (*off_537F68)(); @@ -175814,9 +174815,9 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(char *this, int a2, int //----- (004EEF40) -------------------------------------------------------- BOOL __thiscall std::ostringstream::basic_ostringstream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 16); + v2 = this + 16; std::ios_base::ios_base(this + 16); *this = &unk_533970; this[44] = 0; @@ -175826,7 +174827,7 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(_DWORD *this, int a2) this[48] = 0; this[49] = 0; this[16] = &unk_533984; - std::ios::init(v2, 0); + std::ios::init((int)v2, 0); *this = &off_53825C; this[16] = off_538270; this[1] = &off_538A48; @@ -175842,7 +174843,7 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(_DWORD *this, int a2) this[11] = 0; this[9] = a2 | 0x10; this[10] = this + 12; - return std::ios::init(v2, (int)(this + 1)); + return std::ios::init((int)v2, (int)(this + 1)); } // 537F68: using guessed type int (*off_537F68)(); // 53825C: using guessed type int (*off_53825C)(); @@ -175891,7 +174892,7 @@ BOOL __fastcall std::ostringstream::basic_ostringstream(int a1) int __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2, _DWORD *a3) { int v3; // eax - int v4; // esi + char *v4; // esi int v5; // edx __int16 v6; // ax int v7; // edx @@ -175909,7 +174910,7 @@ int __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2, _DWOR std::ios_base *v19; // [esp+4h] [ebp-84h] const std::locale *v20; // [esp+4h] [ebp-84h] std::ios_base *v21; // [esp+20h] [ebp-68h] - _DWORD *v22; // [esp+28h] [ebp-60h] + int *v22; // [esp+28h] [ebp-60h] __int64 v24; // [esp+40h] [ebp-48h] int v25; // [esp+48h] [ebp-40h] int v26; // [esp+50h] [ebp-38h] @@ -175919,17 +174920,17 @@ int __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2, _DWOR v3 = a2[1]; *this = v3; - v4 = (int)this + *(_DWORD *)(v3 - 12); + v4 = (char *)this + *(_DWORD *)(v3 - 12); *(_DWORD *)v4 = a2[2]; v21 = (std::ios_base *)((char *)a3 + *(_DWORD *)(*a3 - 12)); - std::ios_base::_M_move(v4, v21, v19); - std::ios::_M_cache_locale((_DWORD *)v4, v4 + 108); - *(_DWORD *)(v4 + 120) = 0; + std::ios_base::_M_move((int)v4, v21, v19); + std::ios::_M_cache_locale(v4, (int)(v4 + 108)); + *((_DWORD *)v4 + 30) = 0; v5 = *((_DWORD *)v21 + 28); *((_DWORD *)v21 + 28) = 0; v6 = *((_WORD *)v21 + 58); - *(_DWORD *)(v4 + 112) = v5; - *(_WORD *)(v4 + 116) = v6; + *((_DWORD *)v4 + 28) = v5; + *((_WORD *)v4 + 58) = v6; v7 = a2[3]; v8 = *a2; *this = *a2; @@ -176005,7 +175006,7 @@ LABEL_7: this[5] = v17; this[6] = v28 + v17; } - std::stringbuf::_M_sync(a3 + 1, (_DWORD *)a3[10], 0, 0); + std::stringbuf::_M_sync(a3 + 1, (char *)a3[10], 0, 0); result = *(_DWORD *)(*this - 12); *(int *)((char *)this + result + 120) = (int)v22; return result; @@ -176055,7 +175056,7 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(char *this, int *a2, int v11 = 0; if ( (a4 & 3) != 0 ) v11 = *((_DWORD *)this + 11); - std::stringbuf::_M_sync((_DWORD *)this + 1, *((_DWORD **)this + 10), 0, v11); + std::stringbuf::_M_sync((_DWORD *)this + 1, *((char **)this + 10), 0, v11); return std::ios::init((int)&this[*(_DWORD *)(*(_DWORD *)this - 12)], (int)(this + 4)); } // 4EF52E: variable 'v13' is possibly undefined @@ -176065,13 +175066,13 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(char *this, int *a2, int //----- (004EF5C0) -------------------------------------------------------- BOOL __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2, int a3) { - int v4; // edi + int *v4; // edi int v5; // eax _DWORD *v6; // ecx int v7; // eax int v8; // edx - v4 = (int)(this + 1); + v4 = this + 1; v5 = a2[1]; *this = v5; v6 = (int *)((char *)this + *(_DWORD *)(v5 - 12)); @@ -176094,7 +175095,7 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2, int this[1] = (int)&off_537F68; this[9] = a3 | 0x10; this[10] = (int)(this + 12); - return std::ios::init((int)this + *(_DWORD *)(*this - 12), v4); + return std::ios::init((int)this + *(_DWORD *)(*this - 12), (int)v4); } // 537F68: using guessed type int (*off_537F68)(); // 538A48: using guessed type int (*off_538A48)(); @@ -176102,7 +175103,7 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2, int //----- (004EF6A0) -------------------------------------------------------- BOOL __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2) { - int v3; // edi + int *v3; // edi int v4; // eax _DWORD *v5; // ecx int v6; // eax @@ -176110,7 +175111,7 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2) int v8; // eax int v9; // ecx - v3 = (int)(this + 1); + v3 = this + 1; v4 = a2[1]; *this = v4; v5 = (int *)((char *)this + *(_DWORD *)(v4 - 12)); @@ -176135,7 +175136,7 @@ BOOL __thiscall std::ostringstream::basic_ostringstream(int *this, int *a2) this[1] = (int)&off_537F68; v9 = *(_DWORD *)(v8 - 12); this[9] = 16; - return std::ios::init((int)this + v9, v3); + return std::ios::init((int)this + v9, (int)v3); } // 537F68: using guessed type int (*off_537F68)(); // 538A48: using guessed type int (*off_538A48)(); @@ -176191,16 +175192,16 @@ void __fastcall std::ostringstream::~ostringstream(int a1) int __thiscall std::ostringstream::~ostringstream(int *this, int *a2) { int v3; // eax - char *v4; // eax + int *v4; // eax int v5; // eax int result; // eax v3 = *a2; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v3 - 12)) = a2[3]; - v4 = (char *)this[10]; + v4 = (int *)this[10]; this[1] = (int)&off_537F68; - if ( v4 != (char *)(this + 12) ) + if ( v4 != this + 12 ) operator delete(v4); this[1] = (int)&off_538A48; std::locale::~locale((_DWORD **)this + 8); @@ -176216,7 +175217,7 @@ int __thiscall std::ostringstream::~ostringstream(int *this, int *a2) //----- (004EF8A0) -------------------------------------------------------- volatile signed __int32 **__thiscall std::ostringstream::operator=(volatile signed __int32 **this, int a2) { - int v2; // esi + char *v2; // esi int v3; // edi int v4; // eax int v5; // edx @@ -176226,14 +175227,14 @@ volatile signed __int32 **__thiscall std::ostringstream::operator=(volatile sign const void *v9; // edx volatile signed __int32 *v10; // eax volatile signed __int32 *v11; // esi - _DWORD *v12; // edx - int v13; // eax + volatile signed __int32 **v12; // edx + volatile signed __int32 *v13; // eax int v14; // ebx int v15; // edi __int64 v16; // rcx - int v17; // edi - int v18; // eax - int v19; // edi + volatile signed __int32 *v17; // edi + volatile signed __int32 *v18; // eax + volatile signed __int32 *v19; // edi volatile signed __int32 *v21; // ecx std::ios_base *v22; // [esp+4h] [ebp-74h] const std::locale *v23; // [esp+4h] [ebp-74h] @@ -176242,7 +175243,7 @@ volatile signed __int32 **__thiscall std::ostringstream::operator=(volatile sign volatile signed __int32 *v26; // [esp+14h] [ebp-64h] _DWORD *v28; // [esp+20h] [ebp-58h] BYREF _DWORD *v29; // [esp+24h] [ebp-54h] BYREF - _DWORD *v30; // [esp+28h] [ebp-50h] + volatile signed __int32 **v30; // [esp+28h] [ebp-50h] __int64 v31; // [esp+30h] [ebp-48h] int v32; // [esp+38h] [ebp-40h] int v33; // [esp+3Ch] [ebp-3Ch] @@ -176252,24 +175253,24 @@ volatile signed __int32 **__thiscall std::ostringstream::operator=(volatile sign int v37; // [esp+58h] [ebp-20h] int v38; // [esp+5Ch] [ebp-1Ch] - v2 = (int)this + *((_DWORD *)*this - 3); + v2 = (char *)this + *((_DWORD *)*this - 3); v3 = a2 + *(_DWORD *)(*(_DWORD *)a2 - 12); - std::ios_base::_M_swap(v2, (std::ios_base *)v3, v22); - std::ios::_M_cache_locale((_DWORD *)v2, v2 + 108); + std::ios_base::_M_swap((int)v2, (std::ios_base *)v3, v22); + std::ios::_M_cache_locale(v2, (int)(v2 + 108)); std::ios::_M_cache_locale((_DWORD *)v3, v3 + 108); - v4 = *(_DWORD *)(v2 + 112); + v4 = *((_DWORD *)v2 + 28); v5 = *(_DWORD *)(v3 + 112); v31 = -1LL; - *(_DWORD *)(v2 + 112) = v5; + *((_DWORD *)v2 + 28) = v5; *(_DWORD *)(v3 + 112) = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 116); - LOBYTE(v5) = *(_BYTE *)(v2 + 116); + LOBYTE(v5) = v2[116]; v32 = -1; - *(_BYTE *)(v2 + 116) = v4; + v2[116] = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 117); *(_BYTE *)(v3 + 116) = v5; - LOBYTE(v5) = *(_BYTE *)(v2 + 117); - *(_BYTE *)(v2 + 117) = v4; + LOBYTE(v5) = v2[117]; + v2[117] = v4; *(_BYTE *)(v3 + 117) = v5; v33 = -1; v6 = *(_DWORD *)(a2 + 40); @@ -176360,36 +175361,36 @@ LABEL_7: LABEL_11: *(_DWORD *)(a2 + 44) = 0; *(_BYTE *)v10 = 0; - std::stringbuf::_M_sync((_DWORD *)(a2 + 4), *(_DWORD **)(a2 + 40), 0, 0); + std::stringbuf::_M_sync((_DWORD *)(a2 + 4), *(char **)(a2 + 40), 0, 0); v12 = v30; v13 = v30[9]; if ( ((unsigned int)v31 & HIDWORD(v31)) != -1 ) { v14 = v34; v15 = v32; - v30[1] = v13 + v31; - v12[2] = v13 + v15; - v12[3] = v13 + v14; + v30[1] = (volatile signed __int32 *)((char *)v13 + v31); + v12[2] = (volatile signed __int32 *)((char *)v13 + v15); + v12[3] = (volatile signed __int32 *)((char *)v13 + v14); } if ( ((unsigned int)v35 & HIDWORD(v35)) != -1 ) { v16 = v36; - v17 = v13 + v37; - v18 = v35 + v13; + v17 = (volatile signed __int32 *)((char *)v13 + v37); + v18 = (volatile signed __int32 *)((char *)v13 + v35); v12[6] = v17; v12[4] = v18; if ( v16 > 0x7FFFFFFF ) { - v19 = v18 + 0x7FFFFFFF; + v19 = (volatile signed __int32 *)((char *)v18 + 0x7FFFFFFF); do { v18 = v19; v16 -= 0x7FFFFFFFLL; - v19 += 0x7FFFFFFF; + v19 = (volatile signed __int32 *)((char *)v19 + 0x7FFFFFFF); } while ( v16 > 0x7FFFFFFF ); } - v12[5] = v16 + v18; + v12[5] = (volatile signed __int32 *)((char *)v18 + v16); } return this; } @@ -176398,7 +175399,7 @@ LABEL_11: // 4EFA26: variable 'v24' is possibly undefined //----- (004EFC10) -------------------------------------------------------- -int __thiscall std::wostringstream::str(int this, int a2) +_DWORD *__thiscall std::wostringstream::str(int this, int a2) { _DWORD *v2; // esi unsigned int v4; // eax @@ -176414,37 +175415,37 @@ int __thiscall std::wostringstream::str(int this, int a2) //----- (004EFC80) -------------------------------------------------------- int __thiscall std::wostringstream::swap(_DWORD *this, _DWORD *a2) { - int v3; // esi + char *v3; // esi std::ios_base *v4; // ebx int v5; // eax __int16 v6; // dx std::ios_base *v8; // [esp+4h] [ebp-28h] - v3 = (int)this + *(_DWORD *)(*this - 12); + v3 = (char *)this + *(_DWORD *)(*this - 12); v4 = (std::ios_base *)((char *)a2 + *(_DWORD *)(*a2 - 12)); - std::ios_base::_M_swap(v3, v4, v8); - std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); + std::ios_base::_M_swap((int)v3, v4, v8); + std::wios::_M_cache_locale(v3, (int)(v3 + 108)); std::wios::_M_cache_locale(v4, (int)v4 + 108); - v5 = *(_DWORD *)(v3 + 112); - *(_DWORD *)(v3 + 112) = *((_DWORD *)v4 + 28); + v5 = *((_DWORD *)v3 + 28); + *((_DWORD *)v3 + 28) = *((_DWORD *)v4 + 28); v6 = *((_WORD *)v4 + 58); *((_DWORD *)v4 + 28) = v5; - LOWORD(v5) = *(_WORD *)(v3 + 116); - *(_WORD *)(v3 + 116) = v6; - LOBYTE(v6) = *(_BYTE *)(v3 + 118); + LOWORD(v5) = *((_WORD *)v3 + 58); + *((_WORD *)v3 + 58) = v6; + LOBYTE(v6) = v3[118]; *((_WORD *)v4 + 58) = v5; - *(_BYTE *)(v3 + 118) = *((_BYTE *)v4 + 118); + v3[118] = *((_BYTE *)v4 + 118); *((_BYTE *)v4 + 118) = v6; - return std::wstringbuf::swap(this + 1, (int)(a2 + 1)); + return std::wstringbuf::swap(this + 1, a2 + 1); } // 4EFCA4: variable 'v8' is possibly undefined //----- (004EFD10) -------------------------------------------------------- -char *__thiscall std::wostringstream::basic_ostringstream(char *this, int *a2) +char *__thiscall std::wostringstream::basic_ostringstream(char *this, const wchar_t *a2) { int v3; // eax int v4; // esi - int v5; // esi + std::ios_base *v5; // esi int v6; // eax int v7; // edx unsigned int v8; // eax @@ -176458,9 +175459,9 @@ char *__thiscall std::wostringstream::basic_ostringstream(char *this, int *a2) char *result; // eax std::ios_base *v17; // [esp+4h] [ebp-84h] const std::locale *v18; // [esp+4h] [ebp-84h] - _DWORD *v19; // [esp+1Ch] [ebp-6Ch] - _DWORD *v20; // [esp+20h] [ebp-68h] - _DWORD *v21; // [esp+28h] [ebp-60h] + int *v19; // [esp+1Ch] [ebp-6Ch] + char *v20; // [esp+20h] [ebp-68h] + char *v21; // [esp+28h] [ebp-60h] int v22; // [esp+40h] [ebp-48h] int v23; // [esp+44h] [ebp-44h] int v24; // [esp+48h] [ebp-40h] @@ -176472,33 +175473,33 @@ char *__thiscall std::wostringstream::basic_ostringstream(char *this, int *a2) v20 = this + 64; std::ios_base::ios_base((_DWORD *)this + 16); - v3 = *a2; + v3 = *(_DWORD *)a2; this[182] = 0; *((_DWORD *)this + 44) = 0; v4 = *(_DWORD *)(v3 - 12); *(_DWORD *)this = &unk_533998; *((_WORD *)this + 90) = 0; - v5 = (int)a2 + v4; + v5 = (std::ios_base *)((char *)a2 + v4); *((_DWORD *)this + 46) = 0; *((_DWORD *)this + 47) = 0; *((_DWORD *)this + 48) = 0; *((_DWORD *)this + 49) = 0; *((_DWORD *)this + 16) = &unk_5339AC; - std::ios_base::_M_move((int)v20, (std::ios_base *)v5, v17); + std::ios_base::_M_move((int)v20, v5, v17); std::wios::_M_cache_locale(v20, (int)(this + 172)); - v6 = *(_DWORD *)(v5 + 112); - *(_DWORD *)(v5 + 112) = 0; - v19 = a2 + 1; - v7 = a2[10]; + v6 = *((_DWORD *)v5 + 28); + *((_DWORD *)v5 + 28) = 0; + v19 = (int *)(a2 + 2); + v7 = *((_DWORD *)a2 + 10); *((_DWORD *)this + 44) = v6; - LOWORD(v6) = *(_WORD *)(v5 + 116); + LOWORD(v6) = *((_WORD *)v5 + 58); *((_DWORD *)this + 46) = 0; *((_WORD *)this + 90) = v6; - LOBYTE(v6) = *(_BYTE *)(v5 + 118); + LOBYTE(v6) = *((_BYTE *)v5 + 118); *(_DWORD *)this = &off_538284; this[182] = v6; v21 = this + 4; - v8 = a2[2]; + v8 = *((_DWORD *)a2 + 2); *((_DWORD *)this + 16) = off_538298; v22 = -1; v23 = -1; @@ -176510,48 +175511,48 @@ char *__thiscall std::wostringstream::basic_ostringstream(char *this, int *a2) v29 = -1; if ( !v8 ) { - v9 = a2[5]; + v9 = *((_DWORD *)a2 + 5); if ( !v9 ) goto LABEL_7; goto LABEL_3; } v22 = (int)(v8 - v7) >> 1; v23 = (int)(v8 - v7) >> 31; - v24 = (a2[3] - v7) >> 1; - v8 = a2[4]; + v24 = (*((_DWORD *)a2 + 3) - v7) >> 1; + v8 = *((_DWORD *)a2 + 4); v25 = (int)(v8 - v7) >> 1; - v9 = a2[5]; + v9 = *((_DWORD *)a2 + 5); if ( v9 ) { LABEL_3: v26 = (v9 - v7) >> 1; v27 = (v9 - v7) >> 31; - v28 = (a2[6] - v9) >> 1; - v29 = (a2[7] - v7) >> 1; - if ( v8 < a2[6] ) - v8 = a2[6]; + v28 = (*((_DWORD *)a2 + 6) - v9) >> 1; + v29 = (*((_DWORD *)a2 + 7) - v7) >> 1; + if ( v8 < *((_DWORD *)a2 + 6) ) + v8 = *((_DWORD *)a2 + 6); } if ( v8 ) - a2[11] = (int)(v8 - v7) >> 1; + *((_DWORD *)a2 + 11) = (int)(v8 - v7) >> 1; LABEL_7: std::wstreambuf::basic_streambuf(v21, (int)v19, v18); *((_DWORD *)this + 1) = &off_537FA8; - v10 = a2[9]; + v10 = *((_DWORD *)a2 + 9); *((_DWORD *)this + 10) = this + 48; *((_DWORD *)this + 9) = v10; - v11 = (int *)a2[10]; - if ( v11 == a2 + 12 ) + v11 = (int *)*((_DWORD *)a2 + 10); + if ( v11 == (int *)(a2 + 24) ) { - wmemcpy((wchar_t *)this + 24, (const wchar_t *)a2 + 24, 8u); + wmemcpy((wchar_t *)this + 24, a2 + 24, 8u); } else { *((_DWORD *)this + 10) = v11; - *((_DWORD *)this + 12) = a2[12]; + *((_DWORD *)this + 12) = *((_DWORD *)a2 + 12); } - v12 = a2[11]; - a2[10] = (int)(a2 + 12); - a2[11] = 0; + v12 = *((_DWORD *)a2 + 11); + *((_DWORD *)a2 + 10) = a2 + 24; + *((_DWORD *)a2 + 11) = 0; *((_DWORD *)this + 11) = v12; *((_WORD *)a2 + 24) = 0; v13 = *((_DWORD *)this + 10); @@ -176569,7 +175570,7 @@ LABEL_7: *((_DWORD *)this + 5) = v15; *((_DWORD *)this + 6) = 2 * v28 + v15; } - std::wstringbuf::_M_sync(v19, (_DWORD *)a2[10], 0, 0); + std::wstringbuf::_M_sync(v19, *((_DWORD **)a2 + 10), 0, 0); result = this + 4; *((_DWORD *)this + 46) = v21; return result; @@ -176584,13 +175585,13 @@ LABEL_7: //----- (004F0090) -------------------------------------------------------- BOOL __thiscall std::wostringstream::basic_ostringstream(char *this, int a2, int a3) { - int v3; // esi + char *v3; // esi int v5; // eax wchar_t *v6; // edx unsigned int v7; // eax int v9; // [esp+8h] [ebp-30h] - v3 = (int)(this + 64); + v3 = this + 64; std::ios_base::ios_base((_DWORD *)this + 16); this[182] = 0; *((_DWORD *)this + 44) = 0; @@ -176601,7 +175602,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(char *this, int a2, int *((_DWORD *)this + 49) = 0; *(_DWORD *)this = &unk_533998; *((_DWORD *)this + 16) = &unk_5339AC; - std::wios::init(v3, 0); + std::wios::init((int)v3, 0); *(_DWORD *)this = &off_538284; *((_DWORD *)this + 16) = off_538298; *((_DWORD *)this + 1) = &off_538A88; @@ -176624,7 +175625,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(char *this, int a2, int if ( (a3 & 3) != 0 ) v7 = *((_DWORD *)this + 11); std::wstringbuf::_M_sync((_DWORD *)this + 1, *((_DWORD **)this + 10), 0, v7); - return std::wios::init(v3, (int)(this + 4)); + return std::wios::init((int)v3, (int)(this + 4)); } // 4F018D: variable 'v9' is possibly undefined // 537FA8: using guessed type int (*off_537FA8)(); @@ -176635,9 +175636,9 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(char *this, int a2, int //----- (004F0220) -------------------------------------------------------- BOOL __thiscall std::wostringstream::basic_ostringstream(_DWORD *this, int a2) { - int v2; // esi + _DWORD *v2; // esi - v2 = (int)(this + 16); + v2 = this + 16; std::ios_base::ios_base(this + 16); *((_BYTE *)this + 182) = 0; this[44] = 0; @@ -176648,7 +175649,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(_DWORD *this, int a2) this[49] = 0; *this = &unk_533998; this[16] = &unk_5339AC; - std::wios::init(v2, 0); + std::wios::init((int)v2, 0); *this = &off_538284; this[16] = off_538298; this[1] = &off_538A88; @@ -176664,7 +175665,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(_DWORD *this, int a2) this[9] = a2 | 0x10; this[10] = this + 12; *((_WORD *)this + 24) = 0; - return std::wios::init(v2, (int)(this + 1)); + return std::wios::init((int)v2, (int)(this + 1)); } // 537FA8: using guessed type int (*off_537FA8)(); // 538284: using guessed type int (*off_538284)(); @@ -176714,7 +175715,7 @@ BOOL __fastcall std::wostringstream::basic_ostringstream(int a1) int __thiscall std::wostringstream::basic_ostringstream(char *this, int *a2, int a3) { int v3; // eax - int v4; // esi + char *v4; // esi int v5; // edx char v6; // al int v7; // edx @@ -176732,7 +175733,7 @@ int __thiscall std::wostringstream::basic_ostringstream(char *this, int *a2, int std::ios_base *v19; // [esp+4h] [ebp-84h] const std::locale *v20; // [esp+4h] [ebp-84h] int v21; // [esp+20h] [ebp-68h] - _DWORD *v22; // [esp+28h] [ebp-60h] + char *v22; // [esp+28h] [ebp-60h] int v24; // [esp+40h] [ebp-48h] int v25; // [esp+44h] [ebp-44h] int v26; // [esp+48h] [ebp-40h] @@ -176744,18 +175745,18 @@ int __thiscall std::wostringstream::basic_ostringstream(char *this, int *a2, int v3 = a2[1]; *(_DWORD *)this = v3; - v4 = (int)&this[*(_DWORD *)(v3 - 12)]; + v4 = &this[*(_DWORD *)(v3 - 12)]; *(_DWORD *)v4 = a2[2]; v21 = a3 + *(_DWORD *)(*(_DWORD *)a3 - 12); - std::ios_base::_M_move(v4, (std::ios_base *)v21, v19); - std::wios::_M_cache_locale((_DWORD *)v4, v4 + 108); - *(_DWORD *)(v4 + 120) = 0; + std::ios_base::_M_move((int)v4, (std::ios_base *)v21, v19); + std::wios::_M_cache_locale(v4, (int)(v4 + 108)); + *((_DWORD *)v4 + 30) = 0; v5 = *(_DWORD *)(v21 + 112); *(_DWORD *)(v21 + 112) = 0; - *(_DWORD *)(v4 + 112) = v5; + *((_DWORD *)v4 + 28) = v5; v6 = *(_BYTE *)(v21 + 118); - *(_WORD *)(v4 + 116) = *(_WORD *)(v21 + 116); - *(_BYTE *)(v4 + 118) = v6; + *((_WORD *)v4 + 58) = *(_WORD *)(v21 + 116); + v4[118] = v6; v7 = a2[3]; v8 = *a2; *(_DWORD *)this = *a2; @@ -176892,13 +175893,13 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(char *this, int *a2, in //----- (004F08F0) -------------------------------------------------------- BOOL __thiscall std::wostringstream::basic_ostringstream(int *this, int *a2, int a3) { - int v4; // edi + int *v4; // edi int v5; // eax _DWORD *v6; // ecx int v7; // eax int v8; // edx - v4 = (int)(this + 1); + v4 = this + 1; v5 = a2[1]; *this = v5; v6 = (int *)((char *)this + *(_DWORD *)(v5 - 12)); @@ -176921,7 +175922,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(int *this, int *a2, int this[9] = a3 | 0x10; this[10] = (int)(this + 12); *((_WORD *)this + 24) = 0; - return std::wios::init((int)this + *(_DWORD *)(*this - 12), v4); + return std::wios::init((int)this + *(_DWORD *)(*this - 12), (int)v4); } // 537FA8: using guessed type int (*off_537FA8)(); // 538A88: using guessed type int (*off_538A88)(); @@ -176929,7 +175930,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(int *this, int *a2, int //----- (004F09D0) -------------------------------------------------------- BOOL __thiscall std::wostringstream::basic_ostringstream(int *this, int *a2) { - int v3; // edi + int *v3; // edi int v4; // eax _DWORD *v5; // ecx int v6; // eax @@ -176937,7 +175938,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(int *this, int *a2) int v8; // eax int v9; // ecx - v3 = (int)(this + 1); + v3 = this + 1; v4 = a2[1]; *this = v4; v5 = (int *)((char *)this + *(_DWORD *)(v4 - 12)); @@ -176962,7 +175963,7 @@ BOOL __thiscall std::wostringstream::basic_ostringstream(int *this, int *a2) this[1] = (int)&off_537FA8; v9 = *(_DWORD *)(v8 - 12); this[9] = 16; - return std::wios::init((int)this + v9, v3); + return std::wios::init((int)this + v9, (int)v3); } // 537FA8: using guessed type int (*off_537FA8)(); // 538A88: using guessed type int (*off_538A88)(); @@ -177018,16 +176019,16 @@ void __fastcall std::wostringstream::~wostringstream(int a1) int __thiscall std::wostringstream::~wostringstream(int *this, int *a2) { int v3; // eax - char *v4; // eax + int *v4; // eax int v5; // eax int result; // eax v3 = *a2; *this = *a2; *(int *)((char *)this + *(_DWORD *)(v3 - 12)) = a2[3]; - v4 = (char *)this[10]; + v4 = (int *)this[10]; this[1] = (int)&off_537FA8; - if ( v4 != (char *)(this + 12) ) + if ( v4 != this + 12 ) operator delete(v4); this[1] = (int)&off_538A88; std::locale::~locale((_DWORD **)this + 8); @@ -177041,9 +176042,9 @@ int __thiscall std::wostringstream::~wostringstream(int *this, int *a2) // 538A88: using guessed type int (*off_538A88)(); //----- (004F0BD0) -------------------------------------------------------- -char *__thiscall std::wostringstream::operator=(char *this, int a2) +volatile signed __int32 **__thiscall std::wostringstream::operator=(volatile signed __int32 **this, int a2) { - int v2; // esi + char *v2; // esi int v3; // edi int v4; // eax int v5; // edx @@ -177051,11 +176052,11 @@ char *__thiscall std::wostringstream::operator=(char *this, int a2) unsigned int v7; // eax int v8; // ecx unsigned int v9; // esi - int v10; // ecx + volatile signed __int32 *v10; // ecx wchar_t *v11; // eax wchar_t *v12; // edx - int v13; // esi - _DWORD *v14; // ecx + volatile signed __int32 *v13; // esi + char *v14; // ecx int v15; // ebx int v16; // edx int v17; // edi @@ -177063,14 +176064,14 @@ char *__thiscall std::wostringstream::operator=(char *this, int a2) int v19; // edi int v20; // ebx int v21; // edi - int v23; // ecx + volatile signed __int32 *v23; // ecx std::ios_base *v24; // [esp+4h] [ebp-74h] const std::locale *v25; // [esp+4h] [ebp-74h] const std::locale *v26; // [esp+4h] [ebp-74h] - int v27; // [esp+14h] [ebp-64h] + volatile signed __int32 *v27; // [esp+14h] [ebp-64h] _DWORD *v29; // [esp+20h] [ebp-58h] BYREF _DWORD *v30; // [esp+24h] [ebp-54h] BYREF - _DWORD *v31; // [esp+28h] [ebp-50h] + char *v31; // [esp+28h] [ebp-50h] int v32; // [esp+30h] [ebp-48h] int v33; // [esp+34h] [ebp-44h] int v34; // [esp+38h] [ebp-40h] @@ -177082,29 +176083,29 @@ char *__thiscall std::wostringstream::operator=(char *this, int a2) int v40; // [esp+58h] [ebp-20h] int v41; // [esp+5Ch] [ebp-1Ch] - v2 = (int)&this[*(_DWORD *)(*(_DWORD *)this - 12)]; + v2 = (char *)this + *((_DWORD *)*this - 3); v3 = a2 + *(_DWORD *)(*(_DWORD *)a2 - 12); - std::ios_base::_M_swap(v2, (std::ios_base *)v3, v24); - std::wios::_M_cache_locale((_DWORD *)v2, v2 + 108); + std::ios_base::_M_swap((int)v2, (std::ios_base *)v3, v24); + std::wios::_M_cache_locale(v2, (int)(v2 + 108)); std::wios::_M_cache_locale((_DWORD *)v3, v3 + 108); - v4 = *(_DWORD *)(v2 + 112); + v4 = *((_DWORD *)v2 + 28); v5 = *(_DWORD *)(v3 + 112); v32 = -1; v33 = -1; - *(_DWORD *)(v2 + 112) = v5; + *((_DWORD *)v2 + 28) = v5; LOWORD(v5) = *(_WORD *)(v3 + 116); *(_DWORD *)(v3 + 112) = v4; - LOWORD(v4) = *(_WORD *)(v2 + 116); - *(_WORD *)(v2 + 116) = v5; - LOBYTE(v5) = *(_BYTE *)(v2 + 118); + LOWORD(v4) = *((_WORD *)v2 + 58); + *((_WORD *)v2 + 58) = v5; + LOBYTE(v5) = v2[118]; *(_WORD *)(v3 + 116) = v4; LOBYTE(v4) = *(_BYTE *)(v3 + 118); v34 = -1; - *(_BYTE *)(v2 + 118) = v4; + v2[118] = v4; *(_BYTE *)(v3 + 118) = v5; v35 = -1; v6 = *(_DWORD *)(a2 + 40); - v31 = this + 4; + v31 = (char *)(this + 1); v7 = *(_DWORD *)(a2 + 8); v36 = -1LL; v37 = -1; @@ -177141,52 +176142,52 @@ LABEL_3: if ( v7 ) *(_DWORD *)(a2 + 44) = (int)(v7 - v6) >> 1; LABEL_7: - std::wstreambuf::operator=((volatile signed __int32 **)this + 1, a2 + 4); + std::wstreambuf::operator=(this + 1, a2 + 4); std::locale::locale((volatile signed __int32 **)&v30, (volatile signed __int32 **)(a2 + 32), v25); - std::locale::locale((volatile signed __int32 **)&v29, (volatile signed __int32 **)this + 8, v26); - std::locale::operator=((volatile signed __int32 **)this + 8, (volatile signed __int32 **)&v30); + std::locale::locale((volatile signed __int32 **)&v29, this + 8, v26); + std::locale::operator=(this + 8, (volatile signed __int32 **)&v30); std::locale::~locale(&v29); std::locale::~locale(&v30); - v10 = *(_DWORD *)(a2 + 40); - *((_DWORD *)this + 9) = *(_DWORD *)(a2 + 36); - v11 = (wchar_t *)*((_DWORD *)this + 10); + v10 = *(volatile signed __int32 **)(a2 + 40); + this[9] = *(volatile signed __int32 **)(a2 + 36); + v11 = (wchar_t *)this[10]; v12 = (wchar_t *)(a2 + 48); - if ( v10 == a2 + 48 ) + if ( v10 == (volatile signed __int32 *)(a2 + 48) ) { - v23 = *(_DWORD *)(a2 + 44); + v23 = *(volatile signed __int32 **)(a2 + 44); if ( v23 ) { - if ( v23 == 1 ) + if ( v23 == (volatile signed __int32 *)1 ) { *v11 = *(_WORD *)(a2 + 48); } else { wmemcpy(v11, (const wchar_t *)(a2 + 48), *(_DWORD *)(a2 + 44)); - v23 = *(_DWORD *)(a2 + 44); + v23 = *(volatile signed __int32 **)(a2 + 44); v12 = *(wchar_t **)(a2 + 40); - v11 = (wchar_t *)*((_DWORD *)this + 10); + v11 = (wchar_t *)this[10]; } } - *((_DWORD *)this + 11) = v23; - v11[v23] = 0; + this[11] = v23; + v11[(_DWORD)v23] = 0; v11 = v12; } else { - v27 = *(_DWORD *)(a2 + 44); - if ( v11 == (wchar_t *)(this + 48) ) + v27 = *(volatile signed __int32 **)(a2 + 44); + if ( v11 == (wchar_t *)(this + 12) ) { - *((_DWORD *)this + 10) = v10; - *((_DWORD *)this + 11) = v27; - *((_DWORD *)this + 12) = *(_DWORD *)(a2 + 48); + this[10] = v10; + this[11] = v27; + this[12] = *(volatile signed __int32 **)(a2 + 48); } else { - v13 = *((_DWORD *)this + 12); - *((_DWORD *)this + 10) = v10; - *((_DWORD *)this + 11) = v27; - *((_DWORD *)this + 12) = *(_DWORD *)(a2 + 48); + v13 = this[12]; + this[10] = v10; + this[11] = v27; + this[12] = *(volatile signed __int32 **)(a2 + 48); if ( v11 ) { *(_DWORD *)(a2 + 40) = v11; @@ -177202,22 +176203,22 @@ LABEL_11: *v11 = 0; std::wstringbuf::_M_sync((_DWORD *)(a2 + 4), v11, 0, 0); v14 = v31; - v15 = v31[9]; + v15 = *((_DWORD *)v31 + 9); if ( (v32 & v33) != -1 ) { v16 = v36; v17 = v34; - v31[1] = v15 + 2 * v32; - v14[2] = v15 + 2 * v17; - v14[3] = v15 + 2 * v16; + *((_DWORD *)v31 + 1) = v15 + 2 * v32; + *((_DWORD *)v14 + 2) = v15 + 2 * v17; + *((_DWORD *)v14 + 3) = v15 + 2 * v16; } if ( (v38 & v37) != -1 ) { v18 = v39; v19 = v15 + 2 * v40; v20 = v15 + 2 * v37; - v14[6] = v19; - v14[4] = v20; + *((_DWORD *)v14 + 6) = v19; + *((_DWORD *)v14 + 4) = v20; if ( v18 > 0x7FFFFFFF ) { v21 = v20 - 2; @@ -177229,7 +176230,7 @@ LABEL_11: } while ( v18 > 0x7FFFFFFF ); } - v14[5] = v20 + 2 * v18; + *((_DWORD *)v14 + 5) = v20 + 2 * v18; } return this; } @@ -178868,12 +177869,12 @@ int __thiscall std::_Rb_tree } //----- (004F26E0) -------------------------------------------------------- -int __thiscall std::_Rb_tree,std::less,std::allocator>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree,std::less,std::allocator>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -178881,14 +177882,14 @@ int __thiscall std::_Rb_tree { if ( this[5] && (unsigned __int8)std::operator<(this[4] + 16, a3) ) return 0; - return std::_Rb_tree,std::less,std::allocator>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::less,std::allocator>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -178896,21 +177897,21 @@ int __thiscall std::_Rb_tree { if ( !a2[3] ) return 0; - return v6; + return (_DWORD *)v6; } - return std::_Rb_tree,std::less,std::allocator>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::less,std::allocator>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree,std::less,std::allocator>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree,std::less,std::allocator>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -178925,7 +177926,7 @@ void __stdcall std::_Rb_tree while ( a1 ) { - std::_Rb_tree,std::less,std::allocator>::_M_erase(a1[3]); + std::_Rb_tree,std::less,std::allocator>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::string::_M_dispose(a1 + 4); v3 = a1; @@ -178975,12 +177976,12 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -178988,14 +177989,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -179003,21 +178004,21 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -179148,7 +178149,7 @@ void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(a1[3]); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::string::_M_dispose(a1 + 4); v3 = a1; @@ -179158,7 +178159,7 @@ void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::equal_range( +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::equal_range( _DWORD *this, int a2) { @@ -179173,7 +178174,7 @@ int __thiscall std::_Rb_tree(i + 16, a2) ) { v4 = *(_DWORD *)(i + 12); @@ -179196,10 +178197,10 @@ LABEL_5: else v6 = *(_DWORD *)(v8 + 12); } - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_lower_bound( - v4, - i, - a2); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_lower_bound( + v4, + i, + a2); } //----- (004F2C40) -------------------------------------------------------- @@ -179298,12 +178299,12 @@ int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -179311,14 +178312,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -179326,21 +178327,21 @@ int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -179455,12 +178456,12 @@ int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -179468,14 +178469,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -179483,21 +178484,21 @@ int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -179512,7 +178513,7 @@ void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(a1[3]); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::pair::~pair(a1 + 4); v3 = a1; @@ -179562,12 +178563,12 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -179575,14 +178576,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -179590,21 +178591,21 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -179691,12 +178692,12 @@ int __thiscall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -179704,14 +178705,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -179719,21 +178720,21 @@ int __thiscall std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree,std::allocator>>>,std::_Select1st,std::allocator>>>>,std::less,std::allocator,std::allocator>>>>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -179799,12 +178800,12 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -179812,14 +178813,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -179827,21 +178828,21 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -179856,7 +178857,7 @@ void __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase(a1[3]); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::vector::~vector(a1 + 10); std::string::_M_dispose(a1 + 4); @@ -179907,12 +178908,12 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -179920,14 +178921,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -179935,21 +178936,21 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -180038,12 +179039,12 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -180051,14 +179052,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -180066,21 +179067,21 @@ int __thiscall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -180093,19 +179094,19 @@ _DWORD *__stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_clone_node>,std::_Select1st>>,std::less,std::allocator>>>::_Alloc_node>(a1); v3[1] = a2; - v4 = a1[3]; + v4 = (int *)a1[3]; if ( v4 ) v3[3] = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_copy>,std::_Select1st>>,std::less,std::allocator>>>::_Alloc_node>( v4, - v3, + (int)v3, a3); v9 = v3; for ( i = (int *)a1[2]; i; i = (int *)i[2] ) @@ -180113,11 +179114,11 @@ _DWORD *__stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_clone_node>,std::_Select1st>>,std::less,std::allocator>>>::_Alloc_node>(i); v9[2] = v6; v6[1] = v9; - v7 = i[3]; + v7 = (int *)i[3]; if ( v7 ) v6[3] = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_copy>,std::_Select1st>>,std::less,std::allocator>>>::_Alloc_node>( v7, - v6, + (int)v6, a3); v9 = v6; } @@ -180255,12 +179256,12 @@ int __thiscall std::_Rb_tree,std::_ } //----- (004F3D30) -------------------------------------------------------- -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -180268,14 +179269,14 @@ int __thiscall std::_Rb_tree,std::_ { if ( this[5] && (unsigned __int8)std::operator<(this[4] + 16, a3) ) return 0; - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -180283,21 +179284,21 @@ int __thiscall std::_Rb_tree,std::_ { if ( !a2[3] ) return 0; - return v6; + return (_DWORD *)v6; } - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -180312,7 +179313,7 @@ void __stdcall std::_Rb_tree,std::_ while ( a1 ) { - std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(a1[3]); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::string::_M_dispose(a1 + 4); v3 = a1; @@ -180362,12 +179363,12 @@ int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int a3) { - int result; // eax + _DWORD *result; // eax int v5; // [esp+1Ch] [ebp-1Ch] int v6; // [esp+1Ch] [ebp-1Ch] @@ -180375,14 +179376,14 @@ int __thiscall std::_Rb_tree(this[4] + 16, a3) ) return 0; - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); } if ( !(unsigned __int8)std::operator<(a3, (int)(a2 + 4)) ) { if ( !(unsigned __int8)std::operator<((int)(a2 + 4), a3) ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v6 = std::_Rb_tree_increment((int)a2); @@ -180390,21 +179391,21 @@ int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); } - result = this[3]; - if ( (_DWORD *)result == a2 ) + result = (_DWORD *)this[3]; + if ( result == a2 ) return result; v5 = std::_Rb_tree_decrement(a2); if ( !(unsigned __int8)std::operator<(v5 + 16, a3) ) - return std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( - this, - a3); - result = (int)a2; + return (_DWORD *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( + this, + a3); + result = a2; if ( !*(_DWORD *)(v5 + 12) ) return 0; return result; @@ -180487,7 +179488,7 @@ void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(a1[3]); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::string::_M_dispose(a1 + 4); v3 = a1; @@ -180611,7 +179612,7 @@ void __stdcall std::_Rb_tree,std::pair,std::pair const,std::string>,std::_Select1st const,std::string>>,std::less>,std::allocator const,std::string>>>::_M_erase(a1[3]); + std::_Rb_tree,std::pair const,std::string>,std::_Select1st const,std::string>>,std::less>,std::allocator const,std::string>>>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::string::_M_dispose(a1 + 10); std::_Rb_tree,std::less,std::allocator>::~_Rb_tree((int)(a1 + 4)); @@ -180622,7 +179623,7 @@ void __stdcall std::_Rb_tree,std::pair>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_unique_pos( +_DWORD *__thiscall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_unique_pos( _DWORD *this, _DWORD *a2) { @@ -180630,7 +179631,7 @@ int __thiscall std::_Rb_tree= *a2 ) + if ( result[4] >= *a2 ) return result; return 0; } if ( (_DWORD *)this[3] != v3 ) { - result = std::_Rb_tree_decrement(v3); + result = (_DWORD *)std::_Rb_tree_decrement(v3); goto LABEL_11; } return 0; } //----- (004F4364) -------------------------------------------------------- -int __thiscall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, int *a3) { int v3; // edi - int result; // eax + _DWORD *result; // eax int v5; // eax int v6; // edx _DWORD *v7; // [esp+1Ch] [ebp-1Ch] @@ -180689,13 +179690,13 @@ int __thiscall std::_Rb_tree= a2[4] ) { if ( *a3 <= a2[4] ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v8 = this; - result = std::_Rb_tree_increment((int)a2); + result = (_DWORD *)std::_Rb_tree_increment((int)a2); this = v8; - if ( v3 < *(_DWORD *)(result + 16) ) + if ( v3 < result[4] ) { if ( !a2[3] ) return 0; @@ -180705,8 +179706,8 @@ int __thiscall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_get_insert_unique_pos( this, a3); - result = (int)a2; + result = a2; if ( !*(_DWORD *)(v6 + 12) ) return 0; return result; @@ -180731,7 +179732,7 @@ void __stdcall std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_erase(a1[3]); + std::_Rb_tree>>,std::_Select1st>>>,std::less,std::allocator>>>>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_erase(a1[7]); v3 = a1; @@ -180741,7 +179742,7 @@ void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( _DWORD *this, _DWORD *a2) { @@ -180749,7 +179750,7 @@ int __thiscall std::_Rb_tree= *a2 ) + if ( result[4] >= *a2 ) return result; return 0; } if ( (_DWORD *)this[3] != v3 ) { - result = std::_Rb_tree_decrement(v3); + result = (_DWORD *)std::_Rb_tree_decrement(v3); goto LABEL_11; } return 0; } //----- (004F44AC) -------------------------------------------------------- -int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( +_DWORD *__thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_hint_unique_pos( _DWORD *this, _DWORD *a2, unsigned int *a3) { unsigned int v3; // edi - int result; // eax + _DWORD *result; // eax int v5; // eax int v6; // edx _DWORD *v7; // [esp+1Ch] [ebp-1Ch] @@ -180808,13 +179809,13 @@ int __thiscall std::_Rb_tree= a2[4] ) { if ( *a3 <= a2[4] ) - return (int)a2; + return a2; if ( (_DWORD *)this[4] == a2 ) return 0; v8 = this; - result = std::_Rb_tree_increment((int)a2); + result = (_DWORD *)std::_Rb_tree_increment((int)a2); this = v8; - if ( v3 < *(_DWORD *)(result + 16) ) + if ( v3 < result[4] ) { if ( !a2[3] ) return 0; @@ -180824,8 +179825,8 @@ int __thiscall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_get_insert_unique_pos( this, a3); - result = (int)a2; + result = a2; if ( !*(_DWORD *)(v6 + 12) ) return 0; return result; @@ -180889,7 +179890,7 @@ void __stdcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase(a1[3]); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_erase((void **)a1[3]); v2 = (void **)a1[2]; std::string::_M_dispose(a1 + 5); v3 = a1; @@ -180899,7 +179900,7 @@ void __stdcall std::_Rb_tree,std::less,std::allocator>::_M_insert_unique( +_DWORD *__thiscall std::_Rb_tree,std::less,std::allocator>::_M_insert_unique( _DWORD *this, _DWORD *a2) { @@ -180907,7 +179908,7 @@ int __thiscall std::_Rb_tree= *a2 ) + if ( result[4] >= *a2 ) return result; goto LABEL_12; } if ( (_DWORD *)this[3] != v3 ) { - result = std::_Rb_tree_decrement(v3); + result = (_DWORD *)std::_Rb_tree_decrement(v3); goto LABEL_11; } LABEL_12: @@ -180957,7 +179958,7 @@ LABEL_12: v13[4] = *a2; std::_Rb_tree_insert_and_rebalance(v11, v13, v3, v9); ++this[5]; - return (int)v13; + return v13; } // 4F46BB: variable 'v10' is possibly undefined @@ -180970,11 +179971,11 @@ _DWORD *__stdcall std::_Rb_tree,std::less,std::allocator>::_M_copy,std::less,std::allocator>::_Alloc_node>( v6, - v3, + (int)v3, a3); v14 = v3; for ( i = (int *)a1[2]; i; i = (int *)i[2] ) @@ -181004,11 +180005,11 @@ _DWORD *__stdcall std::_Rb_tree,std::less,std::allocator>::_M_copy,std::less,std::allocator>::_Alloc_node>( v10, - v8, + (int)v8, a3); v14 = v8; } @@ -181025,7 +180026,7 @@ void __stdcall std::_Rb_tree,std::less,std::allocator>::_M_erase(a1[3]); + std::_Rb_tree,std::less,std::allocator>::_M_erase((void **)a1[3]); v2 = a1; a1 = (void **)a1[2]; operator delete(v2); @@ -181056,10 +180057,10 @@ void __cdecl std::bad_cast::~bad_cast(std::exception *a1) // 539344: using guessed type void (__cdecl *off_539344)(std::bad_cast *__hidden this); //----- (004F4870) -------------------------------------------------------- -int *__userpurge std::ios_base::_M_grow_words@(_DWORD *a1@, int this, char a3, bool a4) +int *__userpurge std::ios_base::_M_grow_words@(_DWORD *a1@, unsigned int this, char a3, bool a4) { int *v5; // esi - char *v6; // eax + unsigned int v6; // eax int v7; // ebp _DWORD *v8; // eax int v9; // edx @@ -181076,14 +180077,14 @@ int *__userpurge std::ios_base::_M_grow_words@(_DWORD *a1@, int this, int v21; // [esp+18h] [ebp-24h] int *v22; // [esp+1Ch] [ebp-20h] - if ( (unsigned int)this > 0x7FFFFFFE ) + if ( this > 0x7FFFFFFE ) { v17 = "ios_base::_M_grow_words is not valid"; } else { v5 = a1 + 9; - if ( this <= 7 ) + if ( (int)this <= 7 ) { v20 = 8; LABEL_22: @@ -181091,12 +180092,12 @@ LABEL_22: a1[25] = v20; return &v5[2 * this]; } - v6 = (char *)(this + 1); + v6 = this + 1; v20 = this + 1; - if ( this + 1 > 0xFFFFFFF ) + if ( (int)(this + 1) > 0xFFFFFFF ) std::ios_base::_M_grow_words(); - v7 = 8 * (_DWORD)v6; - v21 = operator new[](8 * (_DWORD)v6); + v7 = 8 * v6; + v21 = operator new[](8 * v6); if ( v21 ) { v8 = (_DWORD *)v21; @@ -181861,11 +180862,11 @@ int __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, char *St int v4; // esi int v5; // edx int (__thiscall *v6)(int, int, int); // eax - unsigned int *v7; // eax - void *v8; // ecx + unsigned int **v7; // eax + unsigned int *v8; // ecx size_t v9; // eax - unsigned int *v10; // eax - void *v11; // ecx + unsigned int **v10; // eax + unsigned int *v11; // ecx int result; // eax int v13; // [esp+1Ch] [ebp-6Ch] void *v14[2]; // [esp+28h] [ebp-60h] BYREF @@ -181885,52 +180886,52 @@ int __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, char *St v14[0] = v15; v15[0] = 0; if ( v5 == 1 ) - std::string::_M_replace((unsigned int *)v14, 0, 0, "iostream error", 0xEu); + std::string::_M_replace((unsigned int **)v14, 0, 0, "iostream error", 0xEu); else - std::string::_M_replace((unsigned int *)v14, 0, 0, "Unknown error", 0xDu); + std::string::_M_replace((unsigned int **)v14, 0, 0, "Unknown error", 0xDu); } else { v6((int)v14, v4, v13); } - v7 = std::string::_M_replace((unsigned int *)v14, 0, 0, ": ", 2u); + v7 = std::string::_M_replace((unsigned int **)v14, 0, 0, ": ", 2u); v16[0] = v17; - if ( (unsigned int *)*v7 == v7 + 2 ) + if ( *v7 == (unsigned int *)(v7 + 2) ) { - v17[0] = v7[2]; - v17[1] = v7[3]; - v17[2] = v7[4]; - v17[3] = v7[5]; + v17[0] = (int)v7[2]; + v17[1] = (int)v7[3]; + v17[2] = (int)v7[4]; + v17[3] = (int)v7[5]; } else { - v16[0] = (void *)*v7; - v17[0] = v7[2]; + v16[0] = *v7; + v17[0] = (int)v7[2]; } - v8 = (void *)v7[1]; + v8 = v7[1]; *((_BYTE *)v7 + 8) = 0; v16[1] = v8; - *v7 = (unsigned int)(v7 + 2); + *v7 = (unsigned int *)(v7 + 2); v7[1] = 0; v9 = strlen(Str); - v10 = std::string::_M_replace((unsigned int *)v16, 0, 0, Str, v9); + v10 = std::string::_M_replace((unsigned int **)v16, 0, 0, Str, v9); v18[0] = v19; - if ( (unsigned int *)*v10 == v10 + 2 ) + if ( *v10 == (unsigned int *)(v10 + 2) ) { - v19[0] = v10[2]; - v19[1] = v10[3]; - v19[2] = v10[4]; - v19[3] = v10[5]; + v19[0] = (int)v10[2]; + v19[1] = (int)v10[3]; + v19[2] = (int)v10[4]; + v19[3] = (int)v10[5]; } else { - v18[0] = (void *)*v10; - v19[0] = v10[2]; + v18[0] = *v10; + v19[0] = (int)v10[2]; } - v11 = (void *)v10[1]; + v11 = v10[1]; *((_BYTE *)v10 + 8) = 0; v18[1] = v11; - *v10 = (unsigned int)(v10 + 2); + *v10 = (unsigned int *)(v10 + 2); v10[1] = 0; std::runtime_error::runtime_error(this, (int)v18); if ( v18[0] != v19 ) @@ -181955,9 +180956,9 @@ void __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, int a2) unsigned int v5; // edi unsigned int v6; // ecx unsigned int v7; // ecx - unsigned int *v8; // eax - unsigned int *v9; // edx - void *v10; // ecx + _DWORD *v8; // eax + char *v9; // edx + _DWORD *v10; // ecx void *v11; // ecx int v12; // [esp+8h] [ebp-80h] void *v13; // [esp+28h] [ebp-60h] BYREF @@ -181976,7 +180977,7 @@ void __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, int a2) v16 = v18; v17 = 0; LOBYTE(v18[0]) = 0; - std::string::_M_replace((unsigned int *)&v16, 0, 0, "iostream error", 0xEu); + std::string::_M_replace((unsigned int **)&v16, 0, 0, "iostream error", 0xEu); } else { @@ -181995,20 +180996,20 @@ void __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, int a2) v6 = v15[0]; if ( v5 > v6 && (v16 == v18 ? (v7 = 15) : (v7 = v18[0]), v5 <= v7) ) { - v8 = std::string::_M_replace((unsigned int *)&v16, 0, 0, (char *)v13, v14); - v9 = v8 + 2; + v8 = std::string::_M_replace((unsigned int **)&v16, 0, 0, (char *)v13, v14); + v9 = (char *)(v8 + 2); v19[0] = v20; - v10 = (void *)*v8; - if ( (unsigned int *)*v8 != v8 + 2 ) + v10 = (_DWORD *)*v8; + if ( (_DWORD *)*v8 != v8 + 2 ) goto LABEL_11; } else { v8 = std::string::_M_append(&v13, v16, v17); - v9 = v8 + 2; + v9 = (char *)(v8 + 2); v19[0] = v20; - v10 = (void *)*v8; - if ( (unsigned int *)*v8 != v8 + 2 ) + v10 = (_DWORD *)*v8; + if ( (_DWORD *)*v8 != v8 + 2 ) { LABEL_11: v19[0] = v10; @@ -182024,7 +181025,7 @@ LABEL_12: v11 = (void *)v8[1]; *((_BYTE *)v8 + 8) = 0; v19[1] = v11; - *v8 = (unsigned int)v9; + *v8 = v9; v8[1] = 0; std::runtime_error::runtime_error(this, (int)v19); if ( v19[0] != v20 ) @@ -182049,9 +181050,9 @@ int __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, int a2, unsigned int v7; // edx unsigned int v8; // esi unsigned int v9; // esi - unsigned int *v10; // eax - unsigned int *v11; // edx - void *v12; // ecx + _DWORD *v10; // eax + char *v11; // edx + _DWORD *v12; // ecx void *v13; // ecx int result; // eax int v15; // [esp+8h] [ebp-90h] @@ -182075,9 +181076,9 @@ int __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, int a2, v20 = v22; LOBYTE(v22[0]) = 0; if ( v5 == 1 ) - std::string::_M_replace((unsigned int *)&v20, 0, 0, "iostream error", 0xEu); + std::string::_M_replace((unsigned int **)&v20, 0, 0, "iostream error", 0xEu); else - std::string::_M_replace((unsigned int *)&v20, 0, 0, "Unknown error", 0xDu); + std::string::_M_replace((unsigned int **)&v20, 0, 0, "Unknown error", 0xDu); } else { @@ -182096,20 +181097,20 @@ int __thiscall std::ios_base::failure[abi:cxx11]::failure(_DWORD *this, int a2, v8 = v19[0]; if ( v7 > v8 && (v20 == v22 ? (v9 = 15) : (v9 = v22[0]), v7 <= v9) ) { - v10 = std::string::_M_replace((unsigned int *)&v20, 0, 0, (char *)v17, v18); - v11 = v10 + 2; + v10 = std::string::_M_replace((unsigned int **)&v20, 0, 0, (char *)v17, v18); + v11 = (char *)(v10 + 2); v23[0] = v24; - v12 = (void *)*v10; - if ( (unsigned int *)*v10 != v10 + 2 ) + v12 = (_DWORD *)*v10; + if ( (_DWORD *)*v10 != v10 + 2 ) goto LABEL_12; } else { v10 = std::string::_M_append(&v17, v20, v21); - v11 = v10 + 2; + v11 = (char *)(v10 + 2); v23[0] = v24; - v12 = (void *)*v10; - if ( (unsigned int *)*v10 != v10 + 2 ) + v12 = (_DWORD *)*v10; + if ( (_DWORD *)*v10 != v10 + 2 ) { LABEL_12: v23[0] = v12; @@ -182125,7 +181126,7 @@ LABEL_13: v13 = (void *)v10[1]; *((_BYTE *)v10 + 8) = 0; v23[1] = v13; - *v10 = (unsigned int)v11; + *v10 = v11; v10[1] = 0; std::runtime_error::runtime_error(this, (int)v23); if ( v23[0] != v24 ) @@ -184337,12 +183338,12 @@ void __cdecl std::__adjust_heap<__gnu_cxx::__normal_iterator(_BYTE *a1, unsigned int a2, int a3, __int16 a4, char a5) +_BYTE *__cdecl std::__int_to_char(_BYTE *a1, unsigned int a2, int a3, __int16 a4, char a5) { _BYTE *v6; // ebx unsigned int v7; // eax - int v9; // eax - int v10; // eax + unsigned int v9; // eax + unsigned int v10; // eax if ( a5 ) { @@ -184379,11 +183380,11 @@ int __cdecl std::__int_to_char(_BYTE *a1, unsigned int a2, i } while ( a2 ); } - return a1 - v6; + return (_BYTE *)(a1 - v6); } //----- (004F82F0) -------------------------------------------------------- -int __cdecl std::__int_to_char(_BYTE *a1, UDItype n, int a3, __int16 a4, char a5) +_BYTE *__cdecl std::__int_to_char(_BYTE *a1, UDItype n, int a3, __int16 a4, char a5) { unsigned __int64 v5; // rdi _BYTE *v6; // ebx @@ -184433,7 +183434,7 @@ int __cdecl std::__int_to_char(_BYTE *a1, UDItype n, in } while ( v5 ); } - return a1 - v6; + return (_BYTE *)(a1 - v6); } //----- (004F83F0) -------------------------------------------------------- @@ -184441,8 +183442,8 @@ int __cdecl std::__int_to_char(_WORD *a1, unsigned int a2 { _WORD *v6; // ebx unsigned int v7; // eax - int v9; // eax - int v10; // eax + unsigned int v9; // eax + unsigned int v10; // eax if ( a5 ) { @@ -184565,13 +183566,13 @@ _BYTE *__cdecl std::__add_grouping(_BYTE *a1, char a2, char *a3, int a4, _ _BYTE *v17; // ebp char v18; // dl _BYTE *v19; // edi - int v20; // eax + _BYTE *v20; // eax _BYTE *v21; // esi int v22; // edx _BYTE *v23; // ebp char v24; // dl _BYTE *v25; // edi - int v26; // eax + _BYTE *v26; // eax _BYTE *v27; // esi int v28; // edx char *v29; // [esp+4h] [ebp-1Ch] @@ -184643,11 +183644,11 @@ LABEL_12: else { v19 = result + 1; - v20 = (int)&result[(unsigned __int8)(v18 - 1) + 2]; + v20 = &result[(unsigned __int8)(v18 - 1) + 2]; v21 = v33; do *v19++ = *v21++; - while ( v19 != (_BYTE *)v20 ); + while ( v19 != v20 ); v22 = (char)(v18 - 1) + 1; v33 += v22; result = &v17[v22]; @@ -184673,11 +183674,11 @@ LABEL_12: else { v25 = result + 1; - v26 = (int)&result[(unsigned __int8)(v24 - 1) + 2]; + v26 = &result[(unsigned __int8)(v24 - 1) + 2]; v27 = v34; do *v25++ = *v27++; - while ( v25 != (_BYTE *)v26 ); + while ( v25 != v26 ); v28 = (char)(v24 - 1) + 1; v34 += v28; result = &v23[v28]; @@ -184707,7 +183708,7 @@ _WORD *__cdecl std::__add_grouping(_WORD *a1, __int16 a2, char *a3, int _WORD *v18; // ebp char v19; // cl _WORD *v20; // edx - int v21; // eax + _WORD *v21; // eax _WORD *v22; // esi _WORD *v23; // edi int v24; // eax @@ -184716,7 +183717,7 @@ _WORD *__cdecl std::__add_grouping(_WORD *a1, __int16 a2, char *a3, int _WORD *v27; // ebp char v28; // cl _WORD *v29; // edx - int v30; // eax + _WORD *v30; // eax _WORD *v31; // esi _WORD *v32; // edi int v33; // eax @@ -184786,12 +183787,12 @@ LABEL_13: else { v20 = v16; - v21 = (int)&result[(unsigned __int8)(v19 - 1) + 2]; + v21 = &result[(unsigned __int8)(v19 - 1) + 2]; v22 = v16; v23 = v18; do *v23++ = *v22++; - while ( v23 != (_WORD *)v21 ); + while ( v23 != v21 ); v24 = 2 * (char)(v19 - 1) + 2; v25 = (_WORD *)((char *)v20 + v24); result = (_WORD *)((char *)v18 + v24); @@ -184818,12 +183819,12 @@ LABEL_13: else { v29 = v26; - v30 = (int)&result[(unsigned __int8)(v28 - 1) + 2]; + v30 = &result[(unsigned __int8)(v28 - 1) + 2]; v31 = v26; v32 = v27; do *v32++ = *v31++; - while ( v32 != (_WORD *)v30 ); + while ( v32 != v30 ); v33 = 2 * (char)(v28 - 1) + 2; v34 = (_WORD *)((char *)v29 + v33); result = (_WORD *)((char *)v27 + v33); @@ -185000,9 +184001,9 @@ void __cdecl std::__insertion_sort<__gnu_cxx::__normal_iterator 0 ) { --v6; - v7 = v5 - 34; - std::pair::operator=(v5 - 34, v5 - 68); + v7 = v5 - 136; + std::pair::operator=((_DWORD *)v5 - 34, (_DWORD *)v5 - 68); v5 = v7; } std::pair::operator=(a1, v8); @@ -185037,8 +184038,8 @@ void __cdecl std::__insertion_sort<__gnu_cxx::__normal_iterator *,std::vector>>,int,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>( - _DWORD *a1, - int a2, + char *a1, + char *a2, int a3, unsigned __int8 (__cdecl *a4)(int, int)) { @@ -185047,21 +184048,21 @@ int __cdecl std::__introsort_loop<__gnu_cxx::__normal_iterator *,std::vector>>,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>( (int)a1, - a2, + (int)a2, &v19); - for ( i = (char *)a2; + for ( i = a2; ; std::__pop_heap<__gnu_cxx::__normal_iterator *,std::vector>>,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>( a1, @@ -185081,25 +184082,25 @@ int __cdecl std::__introsort_loop<__gnu_cxx::__normal_iterator> 3)) >> 1)]; - v7 = a2 - 136; - v8 = a4((int)(a1 + 34), (int)v15); - v14 = a2 - 136; + v15 = &a1[136 * ((-252645135 * (result >> 3)) >> 1)]; + v7 = (int)(a2 - 136); + v8 = a4((int)(a1 + 136), (int)v15); + v14 = (int)(a2 - 136); if ( v8 ) { if ( a4((int)v15, v14) ) goto LABEL_14; - if ( a4((int)(a1 + 34), v7) ) + if ( a4((int)(a1 + 136), v7) ) goto LABEL_13; } - else if ( !a4((int)(a1 + 34), v14) ) + else if ( !a4((int)(a1 + 136), v14) ) { if ( !a4((int)v15, v7) ) { @@ -185108,39 +184109,39 @@ LABEL_14: goto LABEL_15; } LABEL_13: - v13 = (_DWORD *)(a2 - 136); + v13 = a2 - 136; goto LABEL_15; } - v13 = a1 + 34; + v13 = a1 + 136; LABEL_15: - v9 = a1 + 34; + v9 = a1 + 136; std::pair::swap(a1, v13); - v10 = (_DWORD *)a2; + v10 = a2; while ( 1 ) { if ( a4((int)v9, (int)a1) ) goto LABEL_17; - v11 = v10 - 34; + v11 = (int)(v10 - 136); do { - v10 = v11; + v10 = (char *)v11; v16 = v11; - v12 = a4((int)a1, (int)v11); - v11 = v16 - 34; + v12 = a4((int)a1, v11); + v11 = v16 - 136; } while ( v12 ); if ( v9 >= v10 ) break; std::pair::swap(v9, v10); LABEL_17: - v9 += 34; + v9 += 136; } std::__introsort_loop<__gnu_cxx::__normal_iterator *,std::vector>>,int,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>( v9, - a2, + (int)a2, a3, a4); - a2 = (int)v9; + a2 = v9; } } @@ -185556,7 +184557,7 @@ int __cdecl std::__verify_grouping(char *a1, unsigned int a2, const char **a3) } //----- (004F9880) -------------------------------------------------------- -void (__cdecl ***std::iostream_category(void))(_anonymous_namespace_::io_error_category *__hidden this) +void (__cdecl ***std::iostream_category(void))(_anonymous_namespace_::io_error_category *__hidden) { return `anonymous namespace'::__io_category_instance(); } @@ -186026,37 +185027,37 @@ void __cdecl std::__unguarded_linear_insert<__gnu_cxx::__normal_iterator> 3)); std::__introsort_loop<__gnu_cxx::__normal_iterator *,std::vector>>,int,__gnu_cxx::__ops::_Iter_comp_iter const&,std::pair const&)>>( a1, - (int)a2, + a2, 2 * (31 - (v3 ^ 0x1F)), a3); if ( a2 - a1 <= 2176 ) @@ -186880,7 +185881,7 @@ std::istream::sentry *__cdecl std::getline,std::allo { int v2; // eax _BYTE *v3; // ebx - unsigned __int8 v4; // al + char v4; // al int (__stdcall *v6)(unsigned __int8); // edx v2 = *(_DWORD *)(*(_DWORD *)a1 - 12); @@ -186906,7 +185907,7 @@ std::istream::sentry *__cdecl std::getline,std::allo std::istream::sentry *__cdecl std::getline,std::allocator>( std::istream::sentry *a1, _DWORD *a2, - unsigned __int8 a3) + char a3) { int v3; // edx _BYTE *v5; // eax @@ -186971,7 +185972,7 @@ LABEL_34: } v12 = v6[3]; v13 = (char *)v6[2]; - if ( a3 == v8 ) + if ( (unsigned __int8)a3 == v8 ) goto LABEL_29; v14 = v12 - (_DWORD)v13; v10 = 0x3FFFFFFF - v25; @@ -186981,7 +185982,7 @@ LABEL_34: if ( v10 <= 1 ) break; v22 = (_BYTE *)v6[2]; - v9 = memchr(v13, (char)a3, v10); + v9 = memchr(v13, a3, v10); if ( v9 ) v10 = v9 - v22; if ( v10 > 0x3FFFFFFF - v24 ) @@ -187038,7 +186039,7 @@ LABEL_26: if ( v8 == -1 ) goto LABEL_34; v3 = 4; - if ( a3 != v8 ) + if ( (unsigned __int8)a3 != v8 ) goto LABEL_3; v13 = (char *)v6[2]; v12 = v6[3]; @@ -189913,7 +188914,7 @@ int __cdecl std::operator!=(int a1, int a2) // 4FD841: variable 'v2' is possibly undefined //----- (004FD848) -------------------------------------------------------- -_DWORD *__cdecl std::operator+(_DWORD *a1, _DWORD *a2, unsigned int *a3) +_DWORD *__cdecl std::operator+(_DWORD *a1, _DWORD *a2, unsigned int **a3) { unsigned int v3; // ebx unsigned int v4; // edx @@ -189921,14 +188922,14 @@ _DWORD *__cdecl std::operator+(_DWORD *a1, _DWORD *a2, unsigned int *a3) _DWORD *v6; // eax v3 = 15; - v4 = a2[1] + a3[1]; + v4 = (unsigned int)a3[1] + a2[1]; if ( (_DWORD *)*a2 != a2 + 2 ) v3 = a2[2]; if ( v4 <= v3 ) goto LABEL_8; v5 = 15; - if ( (unsigned int *)*a3 != a3 + 2 ) - v5 = a3[2]; + if ( *a3 != (unsigned int *)(a3 + 2) ) + v5 = (unsigned int)a3[2]; if ( v4 > v5 ) LABEL_8: v6 = std::string::append(a2, (int)a3); @@ -189939,9 +188940,9 @@ LABEL_8: } //----- (004FD8B8) -------------------------------------------------------- -_DWORD *__cdecl std::operator+(_DWORD *a1, char *a2, unsigned int *a3) +_DWORD *__cdecl std::operator+(_DWORD *a1, char *a2, unsigned int **a3) { - unsigned int *v3; // eax + unsigned int **v3; // eax v3 = std::string::insert(a3, 0, a2); std::string::basic_string(a1, v3); @@ -190166,7 +189167,7 @@ std::istream::sentry *__cdecl std::operator>>>(std:: int v11; // edx int v12; // eax unsigned int v13; // eax - _BYTE *v14; // esi + char *v14; // esi unsigned int v15; // edx int v16; // ebp size_t v17; // edx @@ -190660,7 +189661,7 @@ int *__cdecl std::operator>>>(int *a1, _WORD * _DWORD *v5; // ebx unsigned __int16 *v6; // eax unsigned __int16 v7; // di - int v8; // eax + _WORD *v8; // eax __int16 v9; // ax unsigned __int16 *v10; // eax __int16 *v11; // edx @@ -190719,9 +189720,9 @@ LABEL_18: v12 = 6; goto LABEL_19; } - v8 = (int)&a2[v20 - 1]; + v8 = &a2[v20 - 1]; v21 = 0; - v18 = (_WORD *)v8; + v18 = v8; while ( 1 ) { if ( (*(unsigned __int8 (__stdcall **)(int, _DWORD))(*(_DWORD *)v19 + 8))(32, v7) ) @@ -192573,20 +191574,20 @@ void *__cdecl __dynamic_cast( int __cdecl __gxx_personality_v0(int a1, int a2, __int64 a3, _Unwind_Exception *a4, _Unwind_Context *context) { int result; // eax - int *v6; // ebx + char *v6; // ebx _Unwind_Ptr IPInfo; // eax unsigned int v8; // esi char v9; // bp - int *v10; // eax + char *v10; // eax char *encoded_value_with_base; // eax char v12; // bl - int *v13; // ebp - int *v14; // eax + char *v13; // ebp + char *v14; // eax char *v15; // eax char v16; // bl - int *v17; // ebp - int *v18; // eax - int *v19; // ecx + char *v17; // ebp + char *v18; // eax + char *v19; // ecx int v20; // ebp char *v21; // eax int v22; // ecx @@ -192660,7 +191661,7 @@ int __cdecl __gxx_personality_v0(int a1, int a2, __int64 a3, _Unwind_Exception * private_2 = (char *)_Unwind_GetLanguageSpecificData(context); if ( !private_2 ) return 8; - v6 = (int *)parse_lsda_header(context, private_2, (int)&v64); + v6 = parse_lsda_header(context, private_2, (int)&v64); v66 = base_of_encoded_value(v69, context); IPInfo = _Unwind_GetIPInfo(context, &ip_before_insn); v8 = (__PAIR64__(IPInfo, ip_before_insn) - 1) >> 32; @@ -192693,24 +191694,23 @@ LABEL_19: while ( 1 ) { v9 = v70; - v10 = (int *)base_of_encoded_value(v70, 0); + v10 = (char *)base_of_encoded_value(v70, 0); encoded_value_with_base = read_encoded_value_with_base(v9, v10, v6, (int *)v61); v12 = v70; - v13 = (int *)encoded_value_with_base; - v14 = (int *)base_of_encoded_value(v70, 0); + v13 = encoded_value_with_base; + v14 = (char *)base_of_encoded_value(v70, 0); v15 = read_encoded_value_with_base(v12, v14, v13, (int *)v62); v16 = v70; - v17 = (int *)v15; - v18 = (int *)base_of_encoded_value(v70, 0); + v17 = v15; + v18 = (char *)base_of_encoded_value(v70, 0); v19 = v17; v20 = 0; v21 = read_encoded_value_with_base(v16, v18, v19, (int *)v63); v22 = 0; - v6 = (int *)v21; + v6 = v21; do { - v23 = *(_BYTE *)v6; - v6 = (int *)((char *)v6 + 1); + v23 = *v6++; v24 = (v23 & 0x7F) << v22; v22 += 7; v20 |= v24; @@ -192905,240 +191905,319 @@ void __cdecl __tcf_0_9(std::_V2::error_category *a1) int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // ebx - std::_Rb_tree_header *v4; // ecx - char **v5; // edi - int v6; // eax - bool v7; // dl - std::_Rb_tree_header *v8; // ecx - int v9; // edi - int v10; // ebx - _DWORD *v11; // eax - _BYTE *v12; // edx - char v13; // al - char v14; // al - _BYTE **v15; // eax - _BYTE **v16; // eax - std::_Rb_tree_header *v17; // esi - std::_Rb_tree_header *v18; // eax - std::_Rb_tree_header *v19; // edx - int v20; // edx - char *v21; // eax - _BYTE *v22; // eax - int v23; // eax - std::_Rb_tree_header *v24; // ecx - char v25; // dl - int v26; // ebx - char *v27; // ecx - int v28; // edx - int v29; // eax - int v30; // eax - std::_Rb_tree_header *v31; // ecx - FILE *v32; // ebx + char **v4; // edi + int v5; // eax + bool v6; // dl + int v7; // edi + int v8; // ebx + void **v9; // eax + _BYTE *v10; // edx + char v11; // al + char v12; // al + void **v13; // eax + void **v14; // eax + bool v15; // si + _BYTE *v16; // edx + char *v17; // eax + _DWORD *v18; // eax + const char **v19; // ecx + _BYTE *v20; // eax + void **v21; // esi + _DWORD *v22; // eax + char v23; // dl + void **v24; // ebx + char *v25; // ecx + int v26; // edx + int v27; // edx + FILE *v28; // ebx int JsonDict; // eax - char *i; // ebx - int v35; // edi - char *v36; // esi - std::_Rb_tree_header *v38; // [esp-70h] [ebp-418h] - std::_Rb_tree_header *v39; // [esp-70h] [ebp-418h] - std::_Rb_tree_header *v40; // [esp-70h] [ebp-418h] - char v41; // [esp+6h] [ebp-3A2h] - char v42; // [esp+7h] [ebp-3A1h] - char v43; // [esp+8h] [ebp-3A0h] - char v44; // [esp+Ah] [ebp-39Eh] - const char **v45; // [esp+Ch] [ebp-39Ch] - int v46; // [esp+10h] [ebp-398h] - int v47; // [esp+18h] [ebp-390h] + char **m; // ebx + int v31; // edi + char *v32; // esi + _DWORD *v33; // eax + const char **v34; // edx + unsigned int v35; // ebx + _DWORD *v36; // eax + _DWORD *v37; // eax + int v38; // esi + int v39; // edi + int v40; // esi + int *inserted; // ebx + char *v42; // eax + void **v43; // edi + char *v44; // esi + int insert_hint_unique_pos; // eax + _DWORD *v46; // edx + int v47; // edx + _DWORD *v48; // eax + int v49; // edx + FILE *v50; // ebx + int v51; // edi + void **j; // ebx + int *v53; // eax + int *v54; // esi + _DWORD *v55; // ebx + _DWORD *v56; // eax + _DWORD *v57; // eax + void **v58; // ecx + _DWORD *v59; // eax + int *k; // edi + std::ostream::sentry *v61; // esi + std::ostream::sentry *v62; // eax + int *v63; // ebx + std::ostream::sentry *v64; // eax + _DWORD *v65; // eax + FILE *v66; // ebx + int v67; // edx + int v68; // edx + int v69; // edx + void (__cdecl *v71)(void *); // [esp-6Ch] [ebp-414h] + char v72; // [esp+6h] [ebp-3A2h] + char v73; // [esp+7h] [ebp-3A1h] + char v74; // [esp+8h] [ebp-3A0h] + char v75; // [esp+9h] [ebp-39Fh] + char v76; // [esp+Ah] [ebp-39Eh] + char v77; // [esp+Bh] [ebp-39Dh] + const char **v78; // [esp+Ch] [ebp-39Ch] + char **v79; // [esp+Ch] [ebp-39Ch] + int v80; // [esp+10h] [ebp-398h] + int v81; // [esp+10h] [ebp-398h] + char v82; // [esp+14h] [ebp-394h] + int *v83; // [esp+14h] [ebp-394h] + int v84; // [esp+18h] [ebp-390h] + std::ostream::sentry *i; // [esp+18h] [ebp-390h] + std::ostream::sentry *v86; // [esp+18h] [ebp-390h] bool excb; // [esp+1Ch] [ebp-38Ch] - unsigned int exc; // [esp+1Ch] [ebp-38Ch] + int exc; // [esp+1Ch] [ebp-38Ch] int exca; // [esp+1Ch] [ebp-38Ch] - char *FileName; // [esp+28h] [ebp-380h] - int v52[3]; // [esp+2Ch] [ebp-37Ch] BYREF - int v53; // [esp+38h] [ebp-370h] BYREF - int v54; // [esp+3Ch] [ebp-36Ch] - int v55; // [esp+40h] [ebp-368h] - char *v56; // [esp+44h] [ebp-364h] BYREF - int v57; // [esp+48h] [ebp-360h] - int v58; // [esp+4Ch] [ebp-35Ch] - int v59[2]; // [esp+50h] [ebp-358h] BYREF - char v60; // [esp+58h] [ebp-350h] BYREF - char *v61; // [esp+68h] [ebp-340h] BYREF - int v62; // [esp+6Ch] [ebp-33Ch] - char v63; // [esp+70h] [ebp-338h] BYREF - int v64; // [esp+80h] [ebp-328h] BYREF - int v65[6]; // [esp+98h] [ebp-310h] BYREF - char v66[24]; // [esp+B0h] [ebp-2F8h] BYREF - int v67; // [esp+C8h] [ebp-2E0h] BYREF - int v68; // [esp+218h] [ebp-190h] BYREF - int v69; // [esp+21Ch] [ebp-18Ch] - int v70; // [esp+220h] [ebp-188h] - int v71; // [esp+230h] [ebp-178h] BYREF - char *String[2]; // [esp+248h] [ebp-160h] BYREF - int v73; // [esp+250h] [ebp-158h] BYREF - int v74; // [esp+260h] [ebp-148h] BYREF - char v75; // [esp+264h] [ebp-144h] BYREF - char *v76; // [esp+26Ch] [ebp-13Ch] - char *v77; // [esp+278h] [ebp-130h] BYREF - int v78; // [esp+290h] [ebp-118h] BYREF - int v79; // [esp+294h] [ebp-114h] - char v80[16]; // [esp+298h] [ebp-110h] BYREF + char *FileName; // [esp+28h] [ebp-380h] BYREF + const char **v91; // [esp+2Ch] [ebp-37Ch] BYREF + void **v92; // [esp+30h] [ebp-378h] + int v93; // [esp+34h] [ebp-374h] + void **v94; // [esp+38h] [ebp-370h] BYREF + int v95; // [esp+3Ch] [ebp-36Ch] + int v96; // [esp+40h] [ebp-368h] + void **v97; // [esp+44h] [ebp-364h] BYREF + int v98; // [esp+48h] [ebp-360h] + int v99; // [esp+4Ch] [ebp-35Ch] + char *v100; // [esp+50h] [ebp-358h] BYREF + int v101; // [esp+54h] [ebp-354h] + char v102; // [esp+58h] [ebp-350h] BYREF + char *v103; // [esp+68h] [ebp-340h] BYREF + int v104; // [esp+6Ch] [ebp-33Ch] + char v105; // [esp+70h] [ebp-338h] BYREF + int v106; // [esp+80h] [ebp-328h] BYREF + int v107[5]; // [esp+84h] [ebp-324h] BYREF + int v108[6]; // [esp+98h] [ebp-310h] BYREF + void *v109[6]; // [esp+B0h] [ebp-2F8h] BYREF + int v110; // [esp+C8h] [ebp-2E0h] BYREF + int v111[5]; // [esp+CCh] [ebp-2DCh] BYREF + int v112; // [esp+E0h] [ebp-2C8h] BYREF + int v113[5]; // [esp+E4h] [ebp-2C4h] BYREF + int v114; // [esp+F8h] [ebp-2B0h] BYREF + int v115[5]; // [esp+FCh] [ebp-2ACh] BYREF + int v116[2]; // [esp+110h] [ebp-298h] BYREF + char v117; // [esp+118h] [ebp-290h] BYREF + void *v118[2]; // [esp+128h] [ebp-280h] BYREF + char v119; // [esp+130h] [ebp-278h] BYREF + int v120; // [esp+140h] [ebp-268h] BYREF + int v121[5]; // [esp+144h] [ebp-264h] BYREF + int v122; // [esp+158h] [ebp-250h] BYREF + int v123[5]; // [esp+15Ch] [ebp-24Ch] BYREF + int v124; // [esp+170h] [ebp-238h] BYREF + int v125[5]; // [esp+174h] [ebp-234h] BYREF + int v126; // [esp+188h] [ebp-220h] BYREF + int v127[5]; // [esp+18Ch] [ebp-21Ch] BYREF + int v128[6]; // [esp+1A0h] [ebp-208h] BYREF + int v129[6]; // [esp+1B8h] [ebp-1F0h] BYREF + int v130[6]; // [esp+1D0h] [ebp-1D8h] BYREF + int v131[6]; // [esp+1E8h] [ebp-1C0h] BYREF + int v132[6]; // [esp+200h] [ebp-1A8h] BYREF + int v133; // [esp+218h] [ebp-190h] BYREF + int v134; // [esp+21Ch] [ebp-18Ch] + int v135; // [esp+220h] [ebp-188h] + int v136; // [esp+230h] [ebp-178h] BYREF + int v137; // [esp+234h] [ebp-174h] + int v138; // [esp+238h] [ebp-170h] + char *String; // [esp+248h] [ebp-160h] BYREF + int v140; // [esp+24Ch] [ebp-15Ch] + int v141; // [esp+250h] [ebp-158h] BYREF + int v142; // [esp+260h] [ebp-148h] BYREF + char *v143[5]; // [esp+264h] [ebp-144h] BYREF + char *v144; // [esp+278h] [ebp-130h] BYREF + int v145[5]; // [esp+27Ch] [ebp-12Ch] BYREF + int v146; // [esp+290h] [ebp-118h] BYREF + int v147; // [esp+294h] [ebp-114h] + char v148[16]; // [esp+298h] [ebp-110h] BYREF char *Format; // [esp+2A8h] [ebp-100h] BYREF - int v82; // [esp+2ACh] [ebp-FCh] - int v83; // [esp+2B0h] [ebp-F8h] BYREF - int v84; // [esp+2C0h] [ebp-E8h] BYREF - char v85[192]; // [esp+2D8h] [ebp-D0h] BYREF + int v150; // [esp+2ACh] [ebp-FCh] + int v151[4]; // [esp+2B0h] [ebp-F8h] BYREF + int v152; // [esp+2C0h] [ebp-E8h] BYREF + int v153; // [esp+2C4h] [ebp-E4h] + char v154[4]; // [esp+2C8h] [ebp-E0h] BYREF + int v155[3]; // [esp+2CCh] [ebp-DCh] BYREF + char v156[192]; // [esp+2D8h] [ebp-D0h] BYREF int *p_argc; // [esp+398h] [ebp-10h] p_argc = &argc; - v46 = argc; - v45 = argv; + v80 = argc; + v78 = argv; __main(); FileName = 0; - v59[0] = (int)&v60; - memset(v52, 0, sizeof(v52)); - v59[1] = 0; - v60 = 0; - v61 = &v63; - v62 = 0; - v63 = 0; - v53 = 0; - v54 = 0; - v55 = 0; - v56 = 0; - v57 = 0; - v58 = 0; - std::_Rb_tree_header::_Rb_tree_header(v38); - std::string::basic_string("$gwx"); - std::string::basic_string(" "); + v100 = &v102; + v91 = 0; + v92 = 0; + v93 = 0; + v101 = 0; + v102 = 0; + v103 = &v105; + v104 = 0; + v105 = 0; + v94 = 0; + v95 = 0; + v96 = 0; + v97 = 0; + v98 = 0; + v99 = 0; + std::_Rb_tree_header::_Rb_tree_header(v107); + std::string::basic_string((void **)v108, "$gwx"); + std::string::basic_string(v109, " "); v3 = 1; - std::_Rb_tree_header::_Rb_tree_header(v4); - while ( v3 < v46 ) + std::_Rb_tree_header::_Rb_tree_header(v111); + while ( v3 < v80 ) { - std::string::basic_string("--config-path"); - v5 = (char **)&v45[v3]; - v6 = std::string::compare(*v5); - v7 = 0; - if ( !v6 ) - v7 = v3 + 1 < v46; - excb = v7; - std::string::_M_dispose(&v84); + std::string::basic_string((void **)&v152, "--config-path"); + v4 = (char **)&v78[v3]; + v5 = std::string::compare((int)&v152, *v4); + v6 = 0; + if ( !v5 ) + v6 = v3 + 1 < v80; + excb = v6; + std::string::_M_dispose((void **)&v152); if ( excb ) { - std::string::operator=((char *)v45[++v3]); - v39 = v8; + std::string::operator=((unsigned int *)&v103, (char *)v78[++v3]); } else { - std::string::basic_string(*v5); - v39 = (std::_Rb_tree_header *)std::vector::emplace_back(&v84); - std::string::_M_dispose(&v84); + std::string::basic_string((void **)&v152, *v4); + std::vector::emplace_back(&v94, &v152); + std::string::_M_dispose((void **)&v152); } ++v3; } - if ( v62 ) + if ( v104 ) { - v79 = 0; - v78 = (int)v80; - v80[0] = 0; - ReadFile(v61, (int)&v78); - while ( v79 ) + v147 = 0; + v146 = (int)v148; + v148[0] = 0; + ReadFile(v103, (unsigned int *)&v146); + while ( v147 ) { - std::string::basic_string("\n"); - GetNextArg(&v84, &v78, &Format); - v39 = (std::_Rb_tree_header *)std::vector::emplace_back(&v84); - std::string::_M_dispose(&v84); - std::string::_M_dispose(&Format); + std::string::basic_string((void **)&Format, "\n"); + GetNextArg(&v152, &v146, (int)&Format); + std::vector::emplace_back(&v94, &v152); + std::string::_M_dispose((void **)&v152); + std::string::_M_dispose((void **)&Format); } - std::string::_M_dispose(&v78); + std::string::_M_dispose((void **)&v146); } - v9 = 0; + v7 = 0; exc = 0; - v41 = 0; - v42 = 0; - v43 = 0; - v47 = -1431655765 * ((v54 - v53) >> 3); - v44 = 0; - while ( v9 < v47 ) + v72 = 0; + v73 = 0; + v74 = 0; + v75 = 0; + v84 = -1431655765 * ((v95 - (int)v94) >> 3); + v76 = 0; + v82 = 0; + v77 = 0; + while ( v7 < v84 ) { - v10 = 24 * v9; - v11 = (_DWORD *)(v53 + 24 * v9); - v12 = (_BYTE *)*v11; - if ( *(_BYTE *)*v11 != 45 ) + v8 = 6 * v7; + v9 = &v94[6 * v7]; + v10 = *v9; + if ( *(_BYTE *)*v9 != 45 ) { - std::vector::push_back(v11); - goto LABEL_86; + std::vector::push_back(&v91, (int)v9); + goto LABEL_90; } - v13 = v12[1]; - switch ( v13 ) + v11 = v10[1]; + switch ( v11 ) { case 'd': - v14 = v12[2]; - if ( !v14 ) + v12 = v10[2]; + if ( !v12 ) { exc |= 2u; goto LABEL_90; } - if ( v14 == 115 ) + if ( v12 == 115 ) { exc |= 4u; goto LABEL_90; } break; case 's': - if ( v12[2] == 116 ) + if ( v10[2] == 116 ) { exc |= 8u; goto LABEL_90; } - if ( v9 + 1 < v47 ) + if ( v7 + 1 < v84 ) { - v39 = (std::_Rb_tree_header *)std::vector::push_back(v53 + v10 + 24); + v77 = 1; + std::vector::push_back(&v91, (int)&v94[v8 + 6]); goto LABEL_90; } break; case 'v': - if ( v12[2] == 98 ) + if ( v10[2] == 98 ) exc |= 0x10u; else - v44 = 1; + v76 = 1; goto LABEL_90; case 'x': - if ( v12[2] == 99 && v9 + 1 < v47 ) + if ( v10[2] == 99 && v7 + 1 < v84 ) { - v15 = (_BYTE **)(v53 + v10 + 24); - if ( **v15 != 45 ) + v13 = &v94[v8 + 6]; + v82 = 1; + if ( *(_BYTE *)*v13 != 45 ) { - ++v9; - v39 = (std::_Rb_tree_header *)std::string::_M_assign(v15); + std::string::_M_assign((int)&v100, (int)v13); + v82 = 1; + ++v7; } goto LABEL_90; } break; case 'c': - if ( v12[2] == 99 && v9 + 1 < v47 ) + if ( v10[2] == 99 && v7 + 1 < v84 ) { - v16 = (_BYTE **)(v53 + v10 + 24); - if ( **v16 != 45 ) + v14 = &v94[v8 + 6]; + v82 = 0; + if ( *(_BYTE *)*v14 != 45 ) { - std::string::_M_assign(v16); - v39 = (std::_Rb_tree_header *)v9++; + std::string::_M_assign((int)&v100, (int)v14); + v82 = 0; + ++v7; } goto LABEL_90; } break; case 'o': - if ( v9 + 1 < v47 ) + if ( v7 + 1 < v84 ) { - ++v9; - FileName = *(char **)(v53 + v10 + 24); + ++v7; + FileName = (char *)v94[v8 + 6]; goto LABEL_90; } break; case 'g': - if ( v12[2] == 110 && v9 + 1 < v47 ) + if ( v10[2] == 110 && v7 + 1 < v84 ) { - std::string::_M_assign(v53 + v10 + 24); - ++v9; - v39 = (std::_Rb_tree_header *)v10; + std::string::_M_assign((int)v108, (int)&v94[v8 + 6]); + ++v7; goto LABEL_90; } break; @@ -193152,259 +192231,613 @@ int __cdecl main(int argc, const char **argv, const char **envp) exc |= 0x40u; goto LABEL_90; } - std::string::basic_string("--split"); - v17 = (std::_Rb_tree_header *)std::operator==(v10 + v53, &v84); - if ( (_BYTE)v17 ) + std::string::basic_string((void **)&v152, "--split"); + v15 = std::operator==((int)&v94[v8], (int)&v152); + if ( v15 ) + v15 = v7 + 1 < v84; + std::string::_M_dispose((void **)&v152); + if ( v15 ) { - v18 = (std::_Rb_tree_header *)(v9 + 1); - LOBYTE(v18) = v9 + 1 < v47; - v17 = v18; - } - std::string::_M_dispose(&v84); - if ( (_BYTE)v17 ) - { - ++v9; - std::string::_M_assign(v53 + v10 + 24); -LABEL_86: - v39 = v19; - goto LABEL_90; - } - v20 = *(_DWORD *)(v53 + 24 * v9); - if ( *(_BYTE *)(v20 + 1) == 99 && *(_BYTE *)(v20 + 2) == 98 ) - { - ++v9; - LOBYTE(v83) = 0; - Format = (char *)&v83; - v21 = *(char **)(v53 + v10 + 24); - exc |= 0x80u; - v82 = 0; - ReadFile(v21, (int)&Format); - if ( v82 ) - { - std::string::basic_string("life_cycle_callback_content"); - std::map::operator[](&v84); - v39 = (std::_Rb_tree_header *)std::string::_M_assign(&Format); - std::string::_M_dispose(&v84); - } - std::string::_M_dispose(&Format); - } - else if ( !std::string::compare("--pm") && v9 + 1 < v47 ) - { - std::string::basic_string("plain_text_marker"); - std::map::operator[](&v84); - std::string::_M_assign(v53 + v10 + 24); - v39 = (std::_Rb_tree_header *)(v53 + v10 + 24); - std::string::_M_dispose(&v84); - ++v9; + ++v7; + std::string::_M_assign((int)v109, (int)&v94[v8 + 6]); } else { - v22 = *(_BYTE **)(v10 + v53); - if ( v22[1] == 108 && v22[2] == 108 ) + v16 = v94[6 * v7]; + if ( v16[1] == 99 && v16[2] == 98 ) { - v25 = v22[3]; - if ( v25 != 119 && v25 != 97 ) + ++v7; + LOBYTE(v151[0]) = 0; + Format = (char *)v151; + v17 = (char *)v94[v8 + 6]; + exc |= 0x80u; + v150 = 0; + ReadFile(v17, (unsigned int *)&Format); + if ( v150 ) { - fprintf(&__iob[2], "Error: expected -llw or -lla, but got %s", *(const char **)(v10 + v53)); - exca = -1; - goto LABEL_114; + std::string::basic_string((void **)&v152, "life_cycle_callback_content"); + v18 = std::map::operator[](&v110, &v152); + std::string::_M_assign((int)v18, (int)&Format); + std::string::_M_dispose((void **)&v152); } - if ( !std::string::compare(" ") ) - std::string::basic_string(","); - else - std::string::basic_string(v66); - ++v9; - Split(&v68, v53 + v10 + 24, &v84); - v26 = v68; - v27 = v56; - v68 = 0; - v28 = v57; - v56 = (char *)v26; - Format = v27; - v57 = v69; - v83 = v58; - v82 = v28; - v58 = v70; - v69 = 0; - v70 = 0; - std::vector::~vector(&Format); - std::vector::~vector(&v68); - std::string::_M_dispose(&v84); + std::string::_M_dispose((void **)&Format); + } + else if ( !std::string::compare((int)&v94[v8], "--pm") && v7 + 1 < v84 ) + { + v21 = &v94[v8 + 6]; + std::string::basic_string((void **)&v152, "plain_text_marker"); + v22 = std::map::operator[](&v110, &v152); + std::string::_M_assign((int)v22, (int)v21); + std::string::_M_dispose((void **)&v152); + ++v7; } else { - v23 = std::string::compare("--wxs"); - v39 = v24; - if ( v23 ) + v19 = (const char **)&v94[v8]; + v20 = v94[v8]; + if ( v20[1] == 108/*l*/ && v20[2] == 108/*l*/ ) { - v29 = std::string::compare("--gdc"); - v39 = v17; - if ( v29 ) + v23 = v20[3]; + if ( v23 != 119 ) { - v30 = std::string::compare("--wxs-env"); - v39 = v31; - if ( !v30 ) - v41 = 1; + if ( v23 != 97 ) + { + fprintf(&__iob[2], "Error: expected -llw or -lla, but got %s", *v19); + exca = -1; + goto LABEL_177; + } + v15 = 1; } + if ( !std::string::compare((int)v109, " ") ) + std::string::basic_string((void **)&v152, ","); else - { - v42 = 1; - } + std::string::basic_string(&v152, (int)v109); + ++v7; + Split((int)&v133, (int *)&v94[v8 + 6], (int)&v152); + v24 = (void **)v133; + v25 = (char *)v97; + v133 = 0; + v26 = v98; + v97 = v24; + Format = v25; + v98 = v134; + v151[0] = v99; + v150 = v26; + v99 = v135; + v134 = 0; + v135 = 0; + std::vector::~vector((void ***)&Format, v26); + std::vector::~vector((void ***)&v133, v27); + std::string::_M_dispose((void **)&v152); + v75 = 1; + v82 = v15; } - else + else if ( !std::string::compare((int)v19, "--wxs") ) { - v43 = 1; + v74 = 1; + } + else if ( !std::string::compare((int)&v94[v8], "--gdc") ) + { + v73 = 1; + } + else if ( !std::string::compare((int)&v94[v8], "--wxs-env") ) + { + v72 = 1; } } } LABEL_90: - ++v9; + ++v7; } - if ( v44 ) + // version + if ( v76 ) { - std::string::basic_string("global"); - WXML::Compiler::GetVersionInfo(&Format, &v84); - std::string::_M_dispose(&v84); + std::string::basic_string((void **)&v152, "global"); + WXML::Compiler::GetVersionInfo((int)&Format, &v152); + std::string::_M_dispose((void **)&v152); if ( FileName && *FileName ) - v32 = fopen(FileName, "w"); + v28 = fopen(FileName, "w"); else - v32 = &__iob[1]; - fprintf(v32, "%s\n", Format); - fclose(v32); - std::string::_M_dispose(&Format); + v28 = &__iob[1]; + fprintf(v28, "%s\n", Format); + fclose(v28); + std::string::_M_dispose((void **)&Format); } - if ( v43 ) + // not wxs + if ( !v74 ) { - String[1] = 0; - String[0] = (char *)&v73; - LOBYTE(v73) = 0; - std::_Rb_tree_header::_Rb_tree_header(v39); - std::_Rb_tree_header::_Rb_tree_header(v40); - if ( ReadFile(*(char **)v52[0], (int)String) ) + v34 = (const char **)&WXML::GlassEaselWxs::sGenFuncDeepCopy; + // not bdc + if ( !v73 ) { - fprintf(&__iob[2], "Failed to read input from %s", *(const char **)v52[0]); - exca = -1; - } - else - { - JsonDict = GetJsonDict(String, &v74); - exca = JsonDict; - if ( JsonDict ) + // not wxs env + if ( !v72 ) { - fprintf(&__iob[2], "Failed to read JSON at position %d (%c)", ~JsonDict, String[0][~JsonDict]); -LABEL_106: - exca = -2; - } - else - { - for ( i = v76; i != &v75; i = (char *)std::_Rb_tree_increment(i) ) + // empty + if ( v91 == (const char **)v92 ) { - std::string::basic_string(i + 16); - std::string::basic_string(i + 40); - v78 = (int)v80; - v79 = 0; - v80[0] = 0; - if ( night::compile_ns_no_wrapper(&v84, v85, 1, &v78, 0) ) - { - fprintf(&__iob[2], "Error in file %s: %s\n", (const char *)v84, (const char *)v78); - std::string::_M_dispose(&v78); - std::pair::~pair(&v84); - goto LABEL_106; - } - v35 = snprintf(0, 0, WXML::GlassEaselWxs::sWrapper, v78) + 1; - v36 = (char *)operator new[](v35); - snprintf(v36, v35, WXML::GlassEaselWxs::sWrapper, v78); - std::string::basic_string(v36); - std::map::operator[](&v84); - std::string::operator=(&Format); - std::string::_M_dispose(&Format); - operator delete[](v36); - std::string::_M_dispose(&v78); - std::pair::~pair(&v84); + exca = Usage(v80, v78); } - DictToJsonString(&v71, &v77); - main::{lambda(std::string const&)#1}::operator()(); - std::string::_M_dispose(&v71); + else + { + v35 = 0; + std::_Rb_tree_header::_Rb_tree_header(v113); + std::_Rb_tree_header::_Rb_tree_header(v115); + if ( v77 ) + { + v152 = (int)v154; + v153 = 0; + v154[0] = 0; + ReadFile(0, (unsigned int *)&v152); + v36 = std::map::operator[](&v112, (int)v91); + std::string::_M_assign((int)v36, (int)&v152); + std::string::_M_dispose((void **)&v152); + } + else + { + while ( v35 < -1431655765 * (((char *)v92 - (char *)v91) >> 3) ) + { + v154[0] = 0; + v152 = (int)v154; + v153 = 0; + ReadFile((char *)v91[6 * v35], (unsigned int *)&v152); + v37 = std::map::operator[](&v112, (int)&v91[6 * v35]); + std::string::_M_assign((int)v37, (int)&v152); + ++v35; + std::string::_M_dispose((void **)&v152); + } + } + if ( v101 ) + { + GetNextArg(&String, (int *)&v100, (int)v109); + v81 = strtoull(String, 0, 10); + std::string::_M_dispose((void **)&String); + v136 = 0; + v137 = 0; + v138 = 0; + for ( i = 0; (int)i < v81; i = (std::ostream::sentry *)((char *)i + 1) ) + { + v150 = 0; + Format = (char *)v151; + LOBYTE(v151[0]) = 0; + String = 0; + v140 = 0; + v141 = 0; + GetNextArg(&v142, (int *)&v100, (int)v109); + std::string::operator=(&Format, &v142); + std::string::_M_dispose((void **)&v142); + std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>( + (int)v91, + (int)v92, + (int)&Format); + GetNextArg(&v144, (int *)&v100, (int)v109); + v38 = 0; + v79 = (char **)strtoull(v144, 0, 10); + std::string::_M_dispose((void **)&v144); + while ( v38 < (int)v79 ) + { + v153 = 0; + v152 = (int)v154; + v154[0] = 0; + GetNextArg(&v146, (int *)&v100, (int)v109); + std::string::operator=(&v152, &v146); + std::string::_M_dispose((void **)&v146); + std::vector::push_back(&String, (int)&v152); + v39 = v137; + if ( v39 == std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>( + v136, + v137, + (int)&v152) ) + std::vector::push_back(&v136, (int)&v152); + ++v38; + std::string::_M_dispose((void **)&v152); + } + v40 = v115[1]; + inserted = v115; + while ( v40 ) + { + if ( (unsigned __int8)std::operator<(v40 + 16, (int)&Format) ) + { + v40 = *(_DWORD *)(v40 + 12); + } + else + { + inserted = (int *)v40; + v40 = *(_DWORD *)(v40 + 8); + } + } + if ( inserted == v115 || (unsigned __int8)std::operator<((int)&Format, (int)(inserted + 4)) ) + { + v42 = (char *)operator new((struct type_info *)0x34, v71); + v43 = (void **)(v42 + 16); + v44 = v42; + std::string::basic_string((_DWORD *)v42 + 4, (int)&Format); + *((_DWORD *)v44 + 10) = 0; + *((_DWORD *)v44 + 11) = 0; + *((_DWORD *)v44 + 12) = 0; + insert_hint_unique_pos = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos( + &v114, + inserted, + (int)v43); + inserted = (int *)insert_hint_unique_pos; + if ( v46 ) + { + inserted = std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_insert_node( + &v114, + insert_hint_unique_pos, + v46, + v44); + } + else + { + std::vector::~vector((void ***)v44 + 10, 0); + std::string::_M_dispose(v43); + operator delete(v44); + } + } + std::vector::operator=((int)(inserted + 10), (int *)&String); + std::vector::~vector((void ***)&String, v47); + std::string::_M_dispose((void **)&Format); + } + std::string::basic_string((void **)&v152, "ALL"); + v48 = std::map>::operator[](&v114, &v152); + std::vector::operator=((int)v48, &v136); + std::string::_M_dispose((void **)&v152); + std::vector::~vector((void ***)&v136, v49); + } + v116[1] = 0; + v116[0] = (int)&v117; + v117 = 0; + v118[0] = &v119; + v118[1] = 0; + v119 = 0; + std::_Rb_tree_header::_Rb_tree_header(v121); + if ( v75 ) + { + v51 = v98; + for ( j = v97; (void **)v51 != j; j += 6 ) + { + if ( *(_BYTE *)*j == 46 && *((_BYTE *)*j + 1) == 47 ) + { + std::string::substr((void **)&v152, j, 2u, 0xFFFFFFFF); + std::string::operator=(j, &v152); + std::string::_M_dispose((void **)&v152); + } + } + std::_Rb_tree_header::_Rb_tree_header(v123); + std::_Rb_tree_header::_Rb_tree_header(v125); + std::_Rb_tree_header::_Rb_tree_header(v127); + std::string::basic_string((void **)&v152, "l_"); + std::string::basic_string((void **)&Format, "f_"); + std::string::basic_string((void **)&v146, "$gdwx"); + std::string::basic_string((void **)&v144, "boxofchocolate"); + std::string::basic_string((void **)&v142, (char *)&byte_5173B0); + std::string::basic_string((void **)&String, "p_"); + std::string::basic_string((void **)&v136, "d_"); + std::string::basic_string((void **)&v133, "e_"); + std::string::basic_string((void **)v132, "gg"); + std::string::basic_string((void **)v131, (char *)&off_5174F9); + std::string::basic_string((void **)v130, (_BYTE *)&off_5174F9 + 2); + std::string::basic_string((void **)v129, (char *)&byte_5173B0); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_Rb_tree( + v128, + (int)&v114); + exca = WXML::Compiler::CompileLazy( + (std::_Rb_tree_header *)&v112, + (unsigned int *)v116, + &v120, + &v106, + &v122, + (int)&v124, + (int)v128, + (std::_Rb_tree_header *)&v97, + 0, + v129, + (int)&v126, + &v110, + v82, + (int)v108, + exc, + 10, + v130, + v131, + v132, + &v133, + &v136, + (int *)&String, + (int)&v142, + (int)&v144, + (int)&v146, + (int *)&Format); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)v128); + std::string::_M_dispose((void **)v129); + std::string::_M_dispose((void **)v130); + std::string::_M_dispose((void **)v131); + std::string::_M_dispose((void **)v132); + std::string::_M_dispose((void **)&v133); + std::string::_M_dispose((void **)&v136); + std::string::_M_dispose((void **)&String); + std::string::_M_dispose((void **)&v142); + std::string::_M_dispose((void **)&v144); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&Format); + std::string::_M_dispose((void **)&v152); + std::string::basic_string((void **)&Format, "__COMMON__"); + v53 = (int *)std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_lower_bound( + v121[1], + (int)v121, + (int)&Format); + v54 = v53; + if ( v53 != v121 && (unsigned __int8)std::operator<((int)&Format, (int)(v53 + 4)) ) + v54 = v121; + std::string::_M_dispose((void **)&Format); + if ( v54 == v121 ) + { + WXML::Compiler::WXMLHelperCode[abi:cxx11]((void **)&Format); + std::string::basic_string( + (void **)&v146, + "var __wxAppData=__wxAppData||{};var __wxAppCode__=__wxAppCode__||{};var global=global||{};var __WXML_GLO" + "BAL__=__WXML_GLOBAL__||{entrys:{},defines:{},modules:{},ops:[],wxs_nf_init:undefined,total_ops:0};var Co" + "mponent=Component||function(){};var definePlugin=definePlugin||function(){};var requirePlugin=requirePlu" + "gin||function(){};var Behavior=Behavior||function(){};var __vd_version_info__=__vd_version_info__||{};va" + "r __GWX_GLOBAL__=__GWX_GLOBAL__||{};var __globalThis=(typeof __vd_version_info__!=='undefined'&&typeof _" + "_vd_version_info__.globalThis!=='undefined')?__vd_version_info__.globalThis:(typeof window!=='undefined'" + "?window:globalThis);"); + std::operator+(&v152, &v146, (unsigned int *)&Format); + std::string::basic_string((void **)&v144, "__COMMON__"); + v59 = std::map::operator[](&v120, &v144); + std::string::operator=(v59, &v152); + std::string::_M_dispose((void **)&v144); + std::string::_M_dispose((void **)&v152); + v58 = (void **)&v146; + } + else + { + std::string::basic_string((void **)&Format, "__COMMON__"); + v55 = std::map::operator[](&v120, &Format); + WXML::Compiler::WXMLHelperCode[abi:cxx11]((void **)&v144); + std::string::basic_string( + (void **)&v142, + "var __wxAppData=__wxAppData||{};var __wxAppCode__=__wxAppCode__||{};var global=global||{};var __WXML_GLO" + "BAL__=__WXML_GLOBAL__||{entrys:{},defines:{},modules:{},ops:[],wxs_nf_init:undefined,total_ops:0};var Co" + "mponent=Component||function(){};var definePlugin=definePlugin||function(){};var requirePlugin=requirePlu" + "gin||function(){};var Behavior=Behavior||function(){};var __vd_version_info__=__vd_version_info__||{};va" + "r __GWX_GLOBAL__=__GWX_GLOBAL__||{};var __globalThis=(typeof __vd_version_info__!=='undefined'&&typeof _" + "_vd_version_info__.globalThis!=='undefined')?__vd_version_info__.globalThis:(typeof window!=='undefined'" + "?window:globalThis);"); + std::operator+(&v146, &v142, (unsigned int *)&v144); + v56 = std::string::append(&v146, (int)v55); + std::string::basic_string(&v152, v56); + std::string::basic_string((void **)&String, "__COMMON__"); + v57 = std::map::operator[](&v120, &String); + std::string::operator=(v57, &v152); + std::string::_M_dispose((void **)&String); + std::string::_M_dispose((void **)&v152); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&v142); + v58 = (void **)&v144; + } + std::string::_M_dispose(v58); + std::string::_M_dispose((void **)&Format); + std::basic_stringstream,std::allocator>::basic_stringstream((int)&v152); + std::operator<<>((std::ostream::sentry *)v154, ";var __WXML_DEP__=__WXML_DEP__||{};"); + for ( k = (int *)v123[2]; k != v123; k = (int *)std::_Rb_tree_increment((int)k) ) + { + if ( k[11] != k[10] ) + { + v61 = std::operator<<>((std::ostream::sentry *)v154, "__WXML_DEP__[\""); + WXML::Rewrite::ToStringCode((int)&Format, k + 4); + v62 = std::operator<<(v61, (int *)&Format); + std::operator<<>(v62, "\"]=["); + std::string::_M_dispose((void **)&Format); + v63 = (int *)k[10]; + v83 = (int *)k[11]; + while ( v83 != v63 ) + { + v86 = std::operator<<>((std::ostream::sentry *)v154, "\""); + WXML::Rewrite::ToStringCode((int)&Format, v63); + v64 = std::operator<<(v86, (int *)&Format); + std::operator<<>(v64, "\","); + v63 += 6; + std::string::_M_dispose((void **)&Format); + } + std::operator<<>((std::ostream::sentry *)v154, "];"); + } + } + std::stringbuf::str((int)&Format, v155); + std::string::basic_string((void **)&v146, "__COMMON__"); + v65 = std::map::operator[](&v120, &v146); + std::string::operator+=(v65, (int)&Format); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&Format); + if ( exca ) + { + fprintf(&__iob[2], "Error %d: %s\n", exca, (const char *)v116[0]); + } + else + { + if ( FileName && *FileName ) + v66 = fopen(FileName, "w"); + else + v66 = &__iob[1]; + DictToJsonString((int)&v144, (int)&v120); + DictToJsonString((int)&v146, (int)&v106); + std::string::basic_string( + (void **)&Format, + " {\"generateFunctionContent\":%s,\"generateFunctionName\":%s} "); + fprintf(v66, Format, v144, v146); + fclose(v66); + std::string::_M_dispose((void **)&Format); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&v144); + } + std::basic_stringstream,std::allocator>::~basic_stringstream((int)&v152); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)&v126); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)&v124); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)&v122); + } + else + { + std::string::basic_string((void **)&v152, "l_"); + std::string::basic_string((void **)&Format, "f_"); + std::string::basic_string((void **)&v146, "$gdwx"); + std::string::basic_string((void **)&v144, "boxofchocolate"); + std::string::basic_string((void **)&v142, (char *)&byte_5173B0); + std::string::basic_string((void **)&String, "p_"); + std::string::basic_string((void **)&v136, "d_"); + std::string::basic_string((void **)&v133, "e_"); + std::string::basic_string((void **)v132, "gg"); + std::string::basic_string((void **)v131, (char *)&off_5174F9); + std::string::basic_string((void **)v130, (_BYTE *)&off_5174F9 + 2); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_Rb_tree( + v129, + (int)&v114); + exca = WXML::Compiler::Compile( + &v112, + (unsigned int *)v116, + v118, + v129, + &v110, + v82, + v108, + exc, + 10, + v130, + v131, + v132, + &v133, + &v136, + (int *)&String, + (int)&v142, + (int)&v144, + (int)&v146, + (int *)&Format); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)v129); + std::string::_M_dispose((void **)v130); + std::string::_M_dispose((void **)v131); + std::string::_M_dispose((void **)v132); + std::string::_M_dispose((void **)&v133); + std::string::_M_dispose((void **)&v136); + std::string::_M_dispose((void **)&String); + std::string::_M_dispose((void **)&v142); + std::string::_M_dispose((void **)&v144); + std::string::_M_dispose((void **)&v146); + std::string::_M_dispose((void **)&Format); + std::string::_M_dispose((void **)&v152); + if ( exca ) + { + fprintf(&__iob[2], "%s\n", (const char *)v116[0]); + } + else + { + if ( FileName && *FileName ) + v50 = fopen(FileName, "w"); + else + v50 = &__iob[1]; + fprintf(v50, "%s\n", (const char *)v118[0]); + fclose(v50); + } + } + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v120); + std::string::_M_dispose(v118); + std::string::_M_dispose((void **)v116); + std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree((int)&v114); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v112); + } + goto LABEL_177; } + v34 = (const char **)&WXML::GlassEaselWxs::sWxsEnvInit; } - std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree(&v77); - std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree(&v74); - std::string::_M_dispose(String); - } - else if ( v42 || v41 ) - { - main::{lambda(std::string const&)#1}::operator()(); + main::{lambda(std::string const&)#1}::operator()((const char **)&FileName, v34); exca = 0; + goto LABEL_177; + } + v140 = 0; + String = (char *)&v141; + LOBYTE(v141) = 0; + std::_Rb_tree_header::_Rb_tree_header(v143); + std::_Rb_tree_header::_Rb_tree_header(v145); + if ( ReadFile((char *)*v91, (unsigned int *)&String) ) + { + fprintf(&__iob[2], "Failed to read input from %s", *v91); + exca = -1; } else { - exca = Usage(v46, v45); + JsonDict = GetJsonDict((int *)&String, (int)&v142); + exca = JsonDict; + if ( JsonDict ) + { + fprintf(&__iob[2], "Failed to read JSON at position %d (%c)", ~JsonDict, String[~JsonDict]); +LABEL_106: + exca = -2; + } + else + { + for ( m = (char **)v143[2]; m != v143; m = (char **)std::_Rb_tree_increment((int)m) ) + { + std::string::basic_string(&v152, (int)(m + 4)); + std::string::basic_string(v156, (int)(m + 10)); + v146 = (int)v148; + v147 = 0; + v148[0] = 0; + if ( night::compile_ns_no_wrapper((int)&v152, (int)v156, 1, (unsigned int *)&v146, 0) ) + { + fprintf(&__iob[2], "Error in file %s: %s\n", (const char *)v152, (const char *)v146); + std::string::_M_dispose((void **)&v146); + std::pair::~pair((void **)&v152); + goto LABEL_106; + } + v31 = snprintf(0, 0, WXML::GlassEaselWxs::sWrapper, v146) + 1; + v32 = (char *)operator new[](v31); + snprintf(v32, v31, WXML::GlassEaselWxs::sWrapper, v146); + std::string::basic_string((void **)&Format, v32); + v33 = std::map::operator[](&v144, (int)&v152); + std::string::operator=(v33, &Format); + std::string::_M_dispose((void **)&Format); + operator delete[](v32); + std::string::_M_dispose((void **)&v146); + std::pair::~pair((void **)&v152); + } + DictToJsonString((int)&v136, (int)&v144); + main::{lambda(std::string const&)#1}::operator()((const char **)&FileName, (const char **)&v136); + std::string::_M_dispose((void **)&v136); + } } -LABEL_114: - std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree(&v67); - std::string::_M_dispose(v66); - std::string::_M_dispose(v65); - std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree(&v64); - std::vector::~vector(&v56); - std::vector::~vector(&v53); - std::string::_M_dispose(&v61); - std::string::_M_dispose(v59); - std::vector::~vector(v52); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v144); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v142); + std::string::_M_dispose((void **)&String); +LABEL_177: + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v110); + std::string::_M_dispose(v109); + std::string::_M_dispose((void **)v108); + std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree((int)&v106); + std::vector::~vector(&v97, v67); + std::vector::~vector(&v94, v68); + std::string::_M_dispose((void **)&v103); + std::string::_M_dispose((void **)&v100); + std::vector::~vector((void ***)&v91, v69); return exca; } -// 501A5E: conditional instruction was optimized away because %var_37C.4==0 -// 500FA1: variable 'v38' is possibly undefined -// 500FD7: variable 'v4' is possibly undefined -// 501062: variable 'v8' is possibly undefined -// 501508: variable 'v24' is possibly undefined -// 501681: variable 'v31' is possibly undefined -// 50169D: variable 'v19' is possibly undefined -// 501782: variable 'v39' is possibly undefined -// 50178D: variable 'v40' is possibly undefined -// 4015F0: using guessed type int main::{lambda(std::string const&)#1}::operator()(void); -// 401664: using guessed type int __fastcall std::pair::~pair(_DWORD); -// 4016F6: using guessed type _DWORD __stdcall std::string::basic_string(_DWORD); -// 4019B7: using guessed type _DWORD __cdecl GetNextArg(_DWORD, _DWORD, _DWORD); -// 401ABA: using guessed type int __fastcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::~_Rb_tree(_DWORD); -// 401ACE: using guessed type int __fastcall std::_Rb_tree,std::_Select1st>,std::less,std::allocator>>::_M_lower_bound(_DWORD, _DWORD, _DWORD); -// 401B0A: using guessed type int __fastcall std::vector::~vector(_DWORD); -// 401B30: using guessed type _DWORD __cdecl Split(_DWORD, _DWORD, _DWORD); -// 401BF0: using guessed type int __fastcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::~_Rb_tree(_DWORD); -// 402415: using guessed type _DWORD __cdecl WXML::Rewrite::ToStringCode(_DWORD, _DWORD); -// 40CDD5: using guessed type _DWORD __cdecl night::compile_ns_no_wrapper(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); -// 40ECE0: using guessed type _DWORD __cdecl WXML::Compiler::GetVersionInfo(_DWORD, _DWORD); -// 40EF78: using guessed type _DWORD __cdecl WXML::Compiler::WXMLHelperCode[abi:cxx11](_DWORD); -// 410A55: using guessed type int __cdecl WXML::Compiler::Compile(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); -// 44DD60: using guessed type int __main(void); -// 45EA6C: using guessed type _DWORD __cdecl GetJsonDict(_DWORD, _DWORD); -// 45EEBC: using guessed type _DWORD __cdecl DictToJsonString(_DWORD, _DWORD); -// 4711C0: using guessed type _DWORD __stdcall std::string::substr(_DWORD, _DWORD, _DWORD); -// 4723B0: using guessed type _DWORD __stdcall std::stringbuf::str(_DWORD); -// 4D5E04: using guessed type _DWORD __stdcall std::map::operator[](_DWORD); -// 4D5EC0: using guessed type _DWORD __stdcall std::map::operator[](_DWORD); -// 4D6284: using guessed type _DWORD __stdcall std::map>::operator[](_DWORD); -// 4DB584: using guessed type _DWORD __stdcall std::vector::emplace_back(_DWORD); -// 4DB864: using guessed type _DWORD __stdcall std::vector::push_back(_DWORD); -// 4DB8A0: using guessed type _DWORD __stdcall std::vector::operator=(_DWORD); -// 4DD4B0: using guessed type int __fastcall std::string::_M_dispose(_DWORD); -// 4DE230: using guessed type _DWORD __stdcall std::string::append(_DWORD); -// 4DF690: using guessed type _DWORD __stdcall std::string::_M_assign(_DWORD); -// 4DF9E0: using guessed type _DWORD __stdcall std::string::basic_string(_DWORD); -// 4DFB40: using guessed type _DWORD __stdcall std::string::basic_string(_DWORD); -// 4E0140: using guessed type _DWORD __stdcall std::string::operator=(_DWORD); -// 4E0330: using guessed type _DWORD __stdcall std::string::operator+=(_DWORD); -// 4E9D20: using guessed type int __fastcall std::basic_stringstream,std::allocator>::basic_stringstream(_DWORD); -// 4EA6F0: using guessed type int __fastcall std::basic_stringstream,std::allocator>::~basic_stringstream(_DWORD); -// 4F390C: using guessed type _DWORD __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_insert_node(_DWORD, _DWORD, _DWORD); -// 4F39E8: using guessed type __int64 __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_M_get_insert_hint_unique_pos(_DWORD, _DWORD); -// 4F3BEC: using guessed type _DWORD __stdcall std::_Rb_tree>,std::_Select1st>>,std::less,std::allocator>>>::_Rb_tree(_DWORD); -// 4F98C0: using guessed type _DWORD __cdecl std::_Rb_tree_increment(_DWORD); -// 4FB224: using guessed type _DWORD __cdecl std::__find_if<__gnu_cxx::__normal_iterator>,__gnu_cxx::__ops::_Iter_equals_val>(_DWORD, _DWORD, _DWORD); -// 4FD080: using guessed type _DWORD __cdecl std::operator==(_DWORD, _DWORD); -// 4FD770: using guessed type _DWORD __cdecl std::operator<(_DWORD, _DWORD); -// 4FD848: using guessed type _DWORD __cdecl std::operator+(_DWORD, _DWORD, _DWORD); +// 501633: variable 'v27' is possibly undefined +// 501E13: variable 'v71' is possibly undefined +// 501E5B: variable 'v46' is possibly undefined +// 501EC6: variable 'v47' is possibly undefined +// 501F1F: variable 'v49' is possibly undefined +// 502E06: variable 'v67' is possibly undefined +// 502E11: variable 'v68' is possibly undefined +// 502E32: variable 'v69' is possibly undefined +// 5174F9: using guessed type void *off_5174F9; +// 500ED0: using guessed type int var_324[5]; // 500ED0: using guessed type int var_310[6]; +// 500ED0: using guessed type int var_2DC[5]; +// 500ED0: using guessed type int var_12C[5]; // 500ED0: using guessed type char var_D0[192]; +// 500ED0: using guessed type int var_2C4[5]; +// 500ED0: using guessed type char var_E0[4]; +// 500ED0: using guessed type int var_234[5]; +// 500ED0: using guessed type int var_21C[5]; +// 500ED0: using guessed type int var_DC[3]; //----- (00502E49) -------------------------------------------------------- int _GLOBAL__sub_I_sCliVersion() @@ -193628,26 +193061,26 @@ int _GLOBAL__sub_I__ZN5night8NSStreamC2ERKNSt7__cxx1112basic_stringIcSt11char_tr // 586E40: using guessed type void *night::nsv_; //----- (0050384C) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *a2) +int __thiscall std::string::basic_string(void **this, char *a2) { unsigned int v3; // kr04_4 - unsigned int result; // eax - _BYTE *v5; // edx - unsigned int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF + int result; // eax + int v5; // edx + int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF *this = this + 2; v3 = strlen(a2) + 1; v6[0] = v3 - 1; if ( v3 - 1 > 0xF ) { - *this = std::string::_M_create(v6, 0); + *this = std::string::_M_create((unsigned int *)v6, 0); this[2] = (void *)v6[0]; } std::string::_S_copy_chars(*this, (unsigned __int8 *)a2, (size_t)&a2[v3 - 1]); result = v6[0]; - v5 = *this; + v5 = (int)*this; this[1] = (void *)v6[0]; - v5[result] = 0; + *(_BYTE *)(v5 + result) = 0; return result; } // 50384C: using guessed type unsigned int var_1C[7]; @@ -193748,26 +193181,26 @@ int _GLOBAL__sub_I__ZN5night9sourcemap21gen_sourcemap_contentERKNSt7__cxx1112bas // 51C5EF: using guessed type void *off_51C5EF; //----- (00503D58) -------------------------------------------------------- -unsigned int __thiscall std::string::basic_string(void **this, char *a2) +int __thiscall std::string::basic_string(void **this, char *a2) { unsigned int v3; // kr04_4 - unsigned int result; // eax - _BYTE *v5; // edx - unsigned int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF + int result; // eax + int v5; // edx + int v6[7]; // [esp+1Ch] [ebp-1Ch] BYREF *this = this + 2; v3 = strlen(a2) + 1; v6[0] = v3 - 1; if ( v3 - 1 > 0xF ) { - *this = std::string::_M_create(v6, 0); + *this = std::string::_M_create((unsigned int *)v6, 0); this[2] = (void *)v6[0]; } std::string::_S_copy_chars(*this, (unsigned __int8 *)a2, (size_t)&a2[v3 - 1]); result = v6[0]; - v5 = *this; + v5 = (int)*this; this[1] = (void *)v6[0]; - v5[result] = 0; + *(_BYTE *)(v5 + result) = 0; return result; } // 503D58: using guessed type unsigned int var_1C[7]; @@ -194214,26 +193647,26 @@ void __usercall std::ios_base::Init::~Init(void *a1@) // positive sp value has been detected, the output may be wrong! void __usercall __noreturn std::locale::name(int a1@, void **a2@, int a3@, _Unwind_Exception *a4@) { - volatile signed __int32 *v4; // eax + int v4; // eax char *v5; // ecx - v4 = (volatile signed __int32 *)*a2; + v4 = (int)*a2; v5 = (char *)*a2 - 12; if ( *a2 != &unk_51641C ) { if ( _CRT_MT ) { - a1 = _InterlockedExchangeAdd(v4 - 1, 0xFFFFFFFF); + a1 = _InterlockedExchangeAdd((volatile signed __int32 *)(v4 - 4), 0xFFFFFFFF); } else { - a1 = *((_DWORD *)v4 - 1); - *((_DWORD *)v4 - 1) = a1 - 1; + a1 = *(_DWORD *)(v4 - 4); + *(_DWORD *)(v4 - 4) = a1 - 1; } if ( a1 <= 0 ) std::string::_Rep::_M_destroy(v5, a3 - 25); } - _Unwind_Resume((int)v4, a1, a4); + _Unwind_Resume(v4, a1, a4); } // 505248: positive sp value 4 has been found // 50524C: variable 'v4' is possibly undefined @@ -194463,7 +193896,7 @@ void __cdecl __noreturn std::__throw_logic_error(std::logic_error *a1) const char *v2; // [esp+4h] [ebp-14h] exception = __cxa_allocate_exception(8u); - std::logic_error::logic_error(a1, v2); + std::logic_error::logic_error((int)exception, a1, v2); __cxa_throw( exception, (struct type_info *)&`typeinfo for'std::logic_error, @@ -195031,4 +194464,4 @@ void __cdecl __noreturn d_type_cold( #error "506AEE: call analysis failed (funcsize=7)" // nfuncs=4970 queued=4720 decompiled=4720 lumina nreq=0 worse=0 better=0 -#error "There were 138 decompilation failure(s) on 4720 function(s)" +#error "There were 139 decompilation failure(s) on 4720 function(s)"