msvcp100: Remove unused thiscall functions.
diff --git a/dlls/msvcp100/exception.c b/dlls/msvcp100/exception.c
index 55b7cd2..f6e3f50 100644
--- a/dlls/msvcp100/exception.c
+++ b/dlls/msvcp100/exception.c
@@ -98,8 +98,7 @@
 
 DEFINE_RTTI_DATA0( type_info, 0, ".?AVtype_info@@" );
 
-DEFINE_THISCALL_WRAPPER(MSVCP_exception_ctor, 8)
-exception* __thiscall MSVCP_exception_ctor(exception *this, const char **name)
+static exception* MSVCP_exception_ctor(exception *this, const char **name)
 {
     TRACE("(%p %s)\n", this, *name);
 
@@ -189,8 +188,7 @@
 /* bad_alloc class data */
 typedef exception bad_alloc;
 
-DEFINE_THISCALL_WRAPPER(MSVCP_bad_alloc_ctor, 8)
-bad_alloc* __thiscall MSVCP_bad_alloc_ctor(bad_alloc *this, const char **name)
+bad_alloc* MSVCP_bad_alloc_ctor(bad_alloc *this, const char **name)
 {
     TRACE("%p %s\n", this, *name);
     MSVCP_exception_ctor(this, name);
@@ -273,8 +271,7 @@
     basic_string_char str;
 } logic_error;
 
-DEFINE_THISCALL_WRAPPER(MSVCP_logic_error_ctor, 8)
-logic_error* __thiscall MSVCP_logic_error_ctor(
+static logic_error* MSVCP_logic_error_ctor(
         logic_error *this, const char **name)
 {
     TRACE("%p %s\n", this, *name);
@@ -361,8 +358,7 @@
 /* length_error class data */
 typedef logic_error length_error;
 
-DEFINE_THISCALL_WRAPPER(MSVCP_length_error_ctor, 8)
-length_error* __thiscall MSVCP_length_error_ctor(
+static length_error* MSVCP_length_error_ctor(
         length_error *this, const char **name)
 {
     TRACE("%p %s\n", this, *name);
@@ -410,8 +406,7 @@
 /* out_of_range class data */
 typedef logic_error out_of_range;
 
-DEFINE_THISCALL_WRAPPER(MSVCP_out_of_range_ctor, 8)
-out_of_range* __thiscall MSVCP_out_of_range_ctor(
+static out_of_range* MSVCP_out_of_range_ctor(
         out_of_range *this, const char **name)
 {
     TRACE("%p %s\n", this, *name);
@@ -459,8 +454,7 @@
 /* invalid_argument class data */
 typedef logic_error invalid_argument;
 
-DEFINE_THISCALL_WRAPPER(MSVCP_invalid_argument_ctor, 8)
-invalid_argument* __thiscall MSVCP_invalid_argument_ctor(
+static invalid_argument* MSVCP_invalid_argument_ctor(
         invalid_argument *this, const char **name)
 {
     TRACE("%p %s\n", this, *name);
@@ -511,8 +505,7 @@
     basic_string_char str;
 } runtime_error;
 
-DEFINE_THISCALL_WRAPPER(MSVCP_runtime_error_ctor, 8)
-runtime_error* __thiscall MSVCP_runtime_error_ctor(
+static runtime_error* MSVCP_runtime_error_ctor(
         runtime_error *this, const char **name)
 {
     TRACE("%p %s\n", this, *name);
@@ -599,8 +592,7 @@
 /* failure class data */
 typedef runtime_error failure;
 
-DEFINE_THISCALL_WRAPPER(MSVCP_failure_ctor, 8)
-failure* __thiscall MSVCP_failure_ctor(
+static failure* MSVCP_failure_ctor(
         failure *this, const char **name)
 {
     TRACE("%p %s\n", this, *name);
diff --git a/dlls/msvcp100/ios.c b/dlls/msvcp100/ios.c
index 59a5f19..de67c93 100644
--- a/dlls/msvcp100/ios.c
+++ b/dlls/msvcp100/ios.c
@@ -81,28 +81,6 @@
     FILE *file;
 } basic_filebuf_wchar;
 
-typedef enum {
-    STRINGBUF_allocated = 1,
-    STRINGBUF_no_write = 2,
-    STRINGBUF_no_read = 4,
-    STRINGBUF_append = 8,
-    STRINGBUF_at_end = 16
-} basic_stringbuf_state;
-
-typedef struct {
-    basic_streambuf_char base;
-    char *seekhigh;
-    int state;
-    char allocator; /* empty struct */
-} basic_stringbuf_char;
-
-typedef struct {
-    basic_streambuf_wchar base;
-    wchar_t *seekhigh;
-    int state;
-    char allocator; /* empty struct */
-} basic_stringbuf_wchar;
-
 typedef struct {
     ios_base base;
     basic_streambuf_char *strbuf;
@@ -163,119 +141,6 @@
      */
 } basic_iostream_wchar;
 
-typedef struct {
-    basic_ostream_char base;
-    basic_filebuf_char filebuf;
-    /* virtual inheritance
-     * basic_ios_char basic_ios;
-     */
-} basic_ofstream_char;
-
-typedef struct {
-    basic_ostream_wchar base;
-    basic_filebuf_wchar filebuf;
-    /* virtual inheritance
-     * basic_ios_wchar basic_ios;
-     */
-} basic_ofstream_wchar;
-
-typedef struct {
-    basic_istream_char base;
-    basic_filebuf_char filebuf;
-    /* virtual inheritance
-     * basic_ios_char basic_ios;
-     */
-} basic_ifstream_char;
-
-typedef struct {
-    basic_istream_wchar base;
-    basic_filebuf_wchar filebuf;
-    /* virtual inheritance
-     * basic_ios_wchar basic_ios;
-     */
-} basic_ifstream_wchar;
-
-typedef struct {
-    basic_iostream_char base;
-    basic_filebuf_char filebuf;
-    /* virtual inheritance
-     * basic_ios_char basic_ios;
-     */
-} basic_fstream_char;
-
-typedef struct {
-    basic_iostream_wchar base;
-    basic_filebuf_wchar filebuf;
-    /* virtual inheritance
-     * basic_ios_char basic_ios;
-     */
-} basic_fstream_wchar;
-
-typedef struct {
-    basic_ostream_char base;
-    basic_stringbuf_char strbuf;
-    /* virtual inheritance
-     * basic_ios_char basic_ios;
-     */
-} basic_ostringstream_char;
-
-typedef struct {
-    basic_ostream_wchar base;
-    basic_stringbuf_wchar strbuf;
-    /* virtual inheritance
-     * basic_ios_wchar basic_ios;
-     */
-} basic_ostringstream_wchar;
-
-typedef struct {
-    basic_istream_char base;
-    basic_stringbuf_char strbuf;
-    /* virtual inheritance
-     * basic_ios_char basic_ios;
-     */
-} basic_istringstream_char;
-
-typedef struct {
-    basic_istream_wchar base;
-    basic_stringbuf_wchar strbuf;
-    /* virtual inheritance
-     * basic_ios_wchar basic_ios;
-     */
-} basic_istringstream_wchar;
-
-typedef struct {
-    basic_iostream_char base;
-    basic_stringbuf_char strbuf;
-    /* virtual inheritance
-     * basic_ios_char basic_ios;
-     */
-} basic_stringstream_char;
-
-typedef struct {
-    basic_iostream_wchar base;
-    basic_stringbuf_wchar strbuf;
-    /* virtual inheritance
-     * basic_ios_wchar basic_ios;
-     */
-} basic_stringstream_wchar;
-
-typedef enum {
-    STRSTATE_Allocated = 1,
-    STRSTATE_Constant = 2,
-    STRSTATE_Dynamic = 4,
-    STRSTATE_Frozen = 8
-} strstreambuf__Strstate;
-
-typedef struct {
-    basic_streambuf_char base;
-    streamsize minsize;
-    char *endsave;
-    char *seekhigh;
-    int strmode;
-    void* (__cdecl *palloc)(MSVCP_size_t);
-    void (__cdecl *pfree)(void*);
-} strstreambuf;
-
 extern const vtable_ptr MSVCP_iosb_vtable;
 
 /* ??_7ios_base@std@@6B@ */
@@ -308,15 +173,6 @@
 /* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */
 extern const vtable_ptr MSVCP_basic_filebuf_short_vtable;
 
-/* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_stringbuf_char_vtable;
-
-/* ??_7?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_stringbuf_wchar_vtable;
-
-/* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_stringbuf_short_vtable;
-
 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
 const int basic_ostream_char_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ostream_char), 8)};
 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
@@ -365,108 +221,6 @@
 /* ??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@ */
 extern const vtable_ptr MSVCP_basic_iostream_short_vtable;
 
-/* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
-const int basic_ofstream_char_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ofstream_char), 8)};
-/* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ofstream_char_vtable;
-
-/* ??_8?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@7B@ */
-const int basic_ofstream_wchar_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ofstream_wchar), 8)};
-/* ??_7?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ofstream_wchar_vtable;
-
-/* ??_8?$basic_ofstream@GU?$char_traits@G@std@@@std@@7B@ */
-const int basic_ofstream_short_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ofstream_wchar), 8)};
-/* ??_7?$basic_ofstream@GU?$char_traits@G@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ofstream_short_vtable;
-
-/* ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
-const int basic_ifstream_char_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ifstream_char), 8)};
-/* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ifstream_char_vtable;
-
-/* ??_8?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@7B@ */
-const int basic_ifstream_wchar_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ifstream_wchar), 8)};
-/* ??_7?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ifstream_wchar_vtable;
-
-/* ??_8?$basic_ifstream@GU?$char_traits@G@std@@@std@@7B@ */
-const int basic_ifstream_short_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ifstream_wchar), 8)};
-/* ??_7?$basic_ifstream@GU?$char_traits@G@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ifstream_short_vtable;
-
-/* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
-const int basic_fstream_char_vbtable1[] = {0, ALIGNED_SIZE(sizeof(basic_fstream_char), 8)};
-/* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
-const int basic_fstream_char_vbtable2[] = {0, ALIGNED_SIZE(sizeof(basic_fstream_char), 8)-FIELD_OFFSET(basic_fstream_char, base.base2)};
-/* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_fstream_char_vtable;
-
-/* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
-/* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
-const int basic_fstream_wchar_vbtable1[] = {0, ALIGNED_SIZE(sizeof(basic_fstream_wchar), 8)};
-/* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
-/* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
-const int basic_fstream_wchar_vbtable2[] = {0, ALIGNED_SIZE(sizeof(basic_fstream_wchar), 8)-FIELD_OFFSET(basic_fstream_wchar, base.base2)};
-/* ??_7?$basic_fstream@_WU?$char_traits@_W@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_fstream_wchar_vtable;
-/* ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_fstream_short_vtable;
-
-/* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
-const int basic_ostringstream_char_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ostringstream_char), 8)};
-/* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ostringstream_char_vtable;
-
-/* ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
-const int basic_ostringstream_wchar_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ostringstream_wchar), 8)};
-/* ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ostringstream_wchar_vtable;
-
-/* ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
-const int basic_ostringstream_short_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ostringstream_wchar), 8)};
-/* ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_ostringstream_short_vtable;
-
-/* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
-const int basic_istringstream_char_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_istringstream_char), 8)};
-/* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_istringstream_char_vtable;
-
-/* ??_8?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
-const int basic_istringstream_wchar_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_istringstream_wchar), 8)};
-/* ??_7?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_istringstream_wchar_vtable;
-
-/* ??_8?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
-const int basic_istringstream_short_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_istringstream_wchar), 8)};
-/* ??_7?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_istringstream_short_vtable;
-
-/* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
-const int basic_stringstream_char_vbtable1[] = {0, ALIGNED_SIZE(sizeof(basic_stringstream_char), 8)};
-/* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
-const int basic_stringstream_char_vbtable2[] = {0, ALIGNED_SIZE(sizeof(basic_stringstream_char), 8)-FIELD_OFFSET(basic_stringstream_char, base.base2)};
-/* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_stringstream_char_vtable;
-
-/* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
-const int basic_stringstream_wchar_vbtable1[] = {0, ALIGNED_SIZE(sizeof(basic_stringstream_wchar), 8)};
-/* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
-const int basic_stringstream_wchar_vbtable2[] = {0, ALIGNED_SIZE(sizeof(basic_stringstream_wchar), 8)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
-/* ??_7?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_stringstream_wchar_vtable;
-
-/* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
-const int basic_stringstream_short_vbtable1[] = {0, ALIGNED_SIZE(sizeof(basic_stringstream_wchar), 8)};
-/* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
-const int basic_stringstream_short_vbtable2[] = {0, ALIGNED_SIZE(sizeof(basic_stringstream_wchar), 8)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
-/* ??_7?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
-extern const vtable_ptr MSVCP_basic_stringstream_short_vtable;
-
-/* ??_7strstreambuf@std@@6B */
-extern const vtable_ptr MSVCP_strstreambuf_vtable;
-
 DEFINE_RTTI_DATA0(iosb, 0, ".?AV?$_Iosb@H@std@@");
 DEFINE_RTTI_DATA1(ios_base, 0, &iosb_rtti_base_descriptor, ".?AV?$_Iosb@H@std@@");
 DEFINE_RTTI_DATA2(basic_ios_char, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
@@ -487,12 +241,6 @@
         ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@");
 DEFINE_RTTI_DATA1(basic_filebuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
         ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@");
-DEFINE_RTTI_DATA1(basic_stringbuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
-        ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
-DEFINE_RTTI_DATA1(basic_stringbuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
-        ".?AV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
-DEFINE_RTTI_DATA1(basic_stringbuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
-        ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
 DEFINE_RTTI_DATA3(basic_ostream_char, sizeof(basic_ostream_char), &basic_ios_char_rtti_base_descriptor,
         &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
         ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@");
@@ -529,92 +277,6 @@
         &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
         &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
         ".?AV?$basic_iostream@GU?$char_traits@G@std@@@std@@");
-DEFINE_RTTI_DATA4(basic_ofstream_char, sizeof(basic_ofstream_char),
-        &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@");
-DEFINE_RTTI_DATA4(basic_ofstream_wchar, sizeof(basic_ofstream_wchar),
-        &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@");
-DEFINE_RTTI_DATA4(basic_ofstream_short, sizeof(basic_ofstream_wchar),
-        &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ofstream@GU?$char_traits@G@std@@@std@@");
-DEFINE_RTTI_DATA4(basic_ifstream_char, sizeof(basic_ifstream_char),
-        &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@");
-DEFINE_RTTI_DATA4(basic_ifstream_wchar, sizeof(basic_ifstream_wchar),
-        &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@");
-DEFINE_RTTI_DATA4(basic_ifstream_short, sizeof(basic_ifstream_wchar),
-        &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ifstream@GU?$char_traits@G@std@@@std@@");
-DEFINE_RTTI_DATA8(basic_fstream_char, sizeof(basic_fstream_char),
-        &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@");
-DEFINE_RTTI_DATA8(basic_fstream_wchar, sizeof(basic_fstream_wchar),
-        &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_fstream@_WU?$char_traits@_W@std@@@std@@");
-DEFINE_RTTI_DATA8(basic_fstream_short, sizeof(basic_fstream_wchar),
-        &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_fstream@GU?$char_traits@G@std@@@std@@");
-DEFINE_RTTI_DATA4(basic_ostringstream_char, sizeof(basic_ostringstream_char),
-        &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
-DEFINE_RTTI_DATA4(basic_ostringstream_wchar, sizeof(basic_ostringstream_wchar),
-        &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
-DEFINE_RTTI_DATA4(basic_ostringstream_short, sizeof(basic_ostringstream_wchar),
-        &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
-DEFINE_RTTI_DATA4(basic_istringstream_char, sizeof(basic_istringstream_char),
-        &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
-DEFINE_RTTI_DATA4(basic_istringstream_wchar, sizeof(basic_istringstream_wchar),
-        &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
-DEFINE_RTTI_DATA4(basic_istringstream_short, sizeof(basic_istringstream_wchar),
-        &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
-DEFINE_RTTI_DATA8(basic_stringstream_char, sizeof(basic_stringstream_char),
-        &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
-DEFINE_RTTI_DATA8(basic_stringstream_wchar, sizeof(basic_stringstream_wchar),
-        &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
-DEFINE_RTTI_DATA8(basic_stringstream_short, sizeof(basic_stringstream_wchar),
-        &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
-        &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
-        ".?AV?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
-DEFINE_RTTI_DATA1(strstreambuf, sizeof(strstreambuf),
-        &basic_streambuf_char_rtti_base_descriptor, ".?AVstrstreambuf@std@@");
 
 #ifndef __GNUC__
 void __asm_dummy_vtables(void) {
@@ -725,54 +387,6 @@
             VTABLE_ADD_FUNC(basic_filebuf_short_setbuf)
             VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
             VTABLE_ADD_FUNC(basic_filebuf_short_imbue));
-    __ASM_VTABLE(basic_stringbuf_char,
-            VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor)
-            VTABLE_ADD_FUNC(basic_streambuf_char__Lock)
-            VTABLE_ADD_FUNC(basic_streambuf_char__Unlock)
-            VTABLE_ADD_FUNC(basic_stringbuf_char_overflow)
-            VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail)
-            VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
-            VTABLE_ADD_FUNC(basic_stringbuf_char_underflow)
-            VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
-            VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
-            VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
-            VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff)
-            VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos)
-            VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
-            VTABLE_ADD_FUNC(basic_streambuf_char_sync)
-            VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
-    __ASM_VTABLE(basic_stringbuf_wchar,
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar__Lock)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar__Unlock)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
-    __ASM_VTABLE(basic_stringbuf_short,
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar__Lock)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar__Unlock)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
-            VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
-            VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
     __ASM_VTABLE(basic_ostream_char,
             VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor));
     __ASM_VTABLE(basic_ostream_wchar,
@@ -791,58 +405,6 @@
             VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
     __ASM_VTABLE(basic_iostream_short,
             VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_ofstream_char,
-            VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor));
-    __ASM_VTABLE(basic_ofstream_wchar,
-            VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_ofstream_short,
-            VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_ifstream_char,
-            VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor));
-    __ASM_VTABLE(basic_ifstream_wchar,
-            VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_ifstream_short,
-            VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_fstream_char,
-            VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor));
-    __ASM_VTABLE(basic_fstream_wchar,
-            VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_fstream_short,
-            VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_ostringstream_char,
-            VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor));
-    __ASM_VTABLE(basic_ostringstream_wchar,
-            VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_ostringstream_short,
-            VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_istringstream_char,
-            VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor));
-    __ASM_VTABLE(basic_istringstream_wchar,
-            VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_istringstream_short,
-            VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_stringstream_char,
-            VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor));
-    __ASM_VTABLE(basic_stringstream_wchar,
-            VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
-    __ASM_VTABLE(basic_stringstream_short,
-            VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
-    __ASM_VTABLE(strstreambuf,
-            VTABLE_ADD_FUNC(strstreambuf_vector_dtor)
-            VTABLE_ADD_FUNC(basic_streambuf_char__Lock)
-            VTABLE_ADD_FUNC(basic_streambuf_char__Unlock)
-            VTABLE_ADD_FUNC(strstreambuf_overflow)
-            VTABLE_ADD_FUNC(strstreambuf_pbackfail)
-            VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
-            VTABLE_ADD_FUNC(strstreambuf_underflow)
-            VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
-            VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
-            VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
-            VTABLE_ADD_FUNC(strstreambuf_seekoff)
-            VTABLE_ADD_FUNC(strstreambuf_seekpos)
-            VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
-            VTABLE_ADD_FUNC(basic_streambuf_char_sync)
-            VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
 #ifndef __GNUC__
 }
 #endif
@@ -1075,8 +637,7 @@
 
 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
-DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Xsgetn_s, 20)
-streamsize __thiscall basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
+static streamsize basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
 {
     streamsize copied, chunk;
     int c;
@@ -1108,8 +669,7 @@
 
 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
-DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Sgetn_s, 20)
-streamsize __thiscall basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
+static streamsize basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
 {
     TRACE("(%p %p %lu %s)\n", this, ptr, size, wine_dbgstr_longlong(count));
     return basic_streambuf_char__Xsgetn_s(this, ptr, size, count);
@@ -1813,8 +1373,7 @@
 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
-DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s, 20)
-streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
+static streamsize basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
 {
     streamsize copied, chunk;
     unsigned short c;
@@ -1848,8 +1407,7 @@
 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
-DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Sgetn_s, 20)
-streamsize __thiscall basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
+static streamsize basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
 {
     TRACE("(%p %p %lu %s)\n", this, ptr, size, wine_dbgstr_longlong(count));
     return basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count);
@@ -2351,8 +1909,7 @@
 
 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init, 12)
-void __thiscall basic_filebuf_char__Init(basic_filebuf_char *this, FILE *file, basic_filebuf__Initfl which)
+static void basic_filebuf_char__Init(basic_filebuf_char *this, FILE *file, basic_filebuf__Initfl which)
 {
     TRACE("(%p %p %d)\n", this, file, which);
 
@@ -2370,8 +1927,7 @@
 
 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z */
 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt, 8)
-void __thiscall basic_filebuf_char__Initcvt(basic_filebuf_char *this, codecvt_char *cvt)
+static void basic_filebuf_char__Initcvt(basic_filebuf_char *this, codecvt_char *cvt)
 {
     TRACE("(%p %p)\n", this, cvt);
 
@@ -2385,8 +1941,7 @@
 
 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ */
 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Endwrite, 4)
-MSVCP_bool __thiscall basic_filebuf_char__Endwrite(basic_filebuf_char *this)
+static MSVCP_bool basic_filebuf_char__Endwrite(basic_filebuf_char *this)
 {
     TRACE("(%p)\n", this);
 
@@ -2426,8 +1981,7 @@
 
 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close, 4)
-basic_filebuf_char* __thiscall basic_filebuf_char_close(basic_filebuf_char *this)
+static basic_filebuf_char* basic_filebuf_char_close(basic_filebuf_char *this)
 {
     basic_filebuf_char *ret = this;
 
@@ -2448,8 +2002,7 @@
 
 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file, 8)
-basic_filebuf_char* __thiscall basic_filebuf_char_ctor_file(basic_filebuf_char *this, FILE *file)
+static basic_filebuf_char* basic_filebuf_char_ctor_file(basic_filebuf_char *this, FILE *file)
 {
     TRACE("(%p %p)\n", this, file);
 
@@ -2460,30 +2013,9 @@
     return this;
 }
 
-/* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
-/* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor, 4)
-basic_filebuf_char* __thiscall basic_filebuf_char_ctor(basic_filebuf_char *this)
-{
-    return basic_filebuf_char_ctor_file(this, NULL);
-}
-
-/* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
-/* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized, 8)
-basic_filebuf_char* __thiscall basic_filebuf_char_ctor_uninitialized(basic_filebuf_char *this, int uninitialized)
-{
-    TRACE("(%p %d)\n", this, uninitialized);
-
-    basic_streambuf_char_ctor(&this->base);
-    this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
-    return this;
-}
-
 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor, 4)
-void __thiscall basic_filebuf_char_dtor(basic_filebuf_char *this)
+static void basic_filebuf_char_dtor(basic_filebuf_char *this)
 {
     TRACE("(%p)\n", this);
 
@@ -2514,8 +2046,7 @@
 
 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open, 4)
-MSVCP_bool __thiscall basic_filebuf_char_is_open(const basic_filebuf_char *this)
+static MSVCP_bool basic_filebuf_char_is_open(const basic_filebuf_char *this)
 {
     TRACE("(%p)\n", this);
     return this->file != NULL;
@@ -2591,60 +2122,6 @@
     return _Fiopen_wchar(nameW, mode, prot);
 }
 
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_wchar, 16)
-basic_filebuf_char* __thiscall basic_filebuf_char_open_wchar(basic_filebuf_char *this, const wchar_t *name, int mode, int prot)
-{
-    FILE *f = NULL;
-
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(basic_filebuf_char_is_open(this))
-        return NULL;
-
-    if(!(f = _Fiopen_wchar(name, mode, prot)))
-        return NULL;
-
-    basic_filebuf_char__Init(this, f, INITFL_open);
-    basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(this->base.loc));
-    return this;
-}
-
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WI@Z */
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WI@Z */
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGI@Z */
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGI@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_wchar_mode, 12)
-basic_filebuf_char* __thiscall basic_filebuf_char_open_wchar_mode(basic_filebuf_char *this, const wchar_t *name, unsigned int mode)
-{
-    return basic_filebuf_char_open_wchar(this, name, mode, SH_DENYNO);
-}
-
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open, 16)
-basic_filebuf_char* __thiscall basic_filebuf_char_open(basic_filebuf_char *this, const char *name, int mode, int prot)
-{
-    wchar_t nameW[FILENAME_MAX];
-
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
-        return NULL;
-    return basic_filebuf_char_open_wchar(this, nameW, mode, prot);
-}
-
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
-/* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode, 12)
-basic_filebuf_char* __thiscall basic_filebuf_char_open_mode(basic_filebuf_char *this, const char *name, unsigned int mode)
-{
-    return basic_filebuf_char_open(this, name, mode, SH_DENYNO);
-}
-
 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow, 8)
@@ -2904,8 +2381,7 @@
 
 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Init, 12)
-void __thiscall basic_filebuf_wchar__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
+static void basic_filebuf_wchar__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
 {
     TRACE("(%p %p %d)\n", this, file, which);
 
@@ -2920,8 +2396,7 @@
 
 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init, 12)
-void __thiscall basic_filebuf_short__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
+static void basic_filebuf_short__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
 {
     TRACE("(%p %p %d)\n", this, file, which);
 
@@ -2938,8 +2413,7 @@
 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z */
 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z */
 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt, 8)
-void __thiscall basic_filebuf_wchar__Initcvt(basic_filebuf_wchar *this, codecvt_wchar *cvt)
+static void basic_filebuf_wchar__Initcvt(basic_filebuf_wchar *this, codecvt_wchar *cvt)
 {
     TRACE("(%p %p)\n", this, cvt);
 
@@ -2955,8 +2429,7 @@
 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ */
 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ */
 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Endwrite, 4)
-MSVCP_bool __thiscall basic_filebuf_wchar__Endwrite(basic_filebuf_wchar *this)
+static MSVCP_bool basic_filebuf_wchar__Endwrite(basic_filebuf_wchar *this)
 {
     TRACE("(%p)\n", this);
 
@@ -2997,8 +2470,7 @@
 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */
 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close, 4)
-basic_filebuf_wchar* __thiscall basic_filebuf_wchar_close(basic_filebuf_wchar *this)
+static basic_filebuf_wchar* basic_filebuf_wchar_close(basic_filebuf_wchar *this)
 {
     basic_filebuf_wchar *ret = this;
 
@@ -3019,8 +2491,7 @@
 
 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_file, 8)
-basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_file(basic_filebuf_wchar *this, FILE *file)
+static basic_filebuf_wchar* basic_filebuf_wchar_ctor_file(basic_filebuf_wchar *this, FILE *file)
 {
     TRACE("(%p %p)\n", this, file);
 
@@ -3033,8 +2504,7 @@
 
 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file, 8)
-basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_file(basic_filebuf_wchar *this, FILE *file)
+static basic_filebuf_wchar* basic_filebuf_short_ctor_file(basic_filebuf_wchar *this, FILE *file)
 {
     TRACE("(%p %p)\n", this, file);
 
@@ -3045,52 +2515,11 @@
     return this;
 }
 
-/* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
-/* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor, 4)
-basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor(basic_filebuf_wchar *this)
-{
-    return basic_filebuf_wchar_ctor_file(this, NULL);
-}
-
-/* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
-/* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor, 4)
-basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor(basic_filebuf_wchar *this)
-{
-    return basic_filebuf_short_ctor_file(this, NULL);
-}
-
-/* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
-/* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_uninitialized, 8)
-basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
-{
-    TRACE("(%p %d)\n", this, uninitialized);
-
-    basic_streambuf_wchar_ctor(&this->base);
-    this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
-/* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized, 8)
-basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
-{
-    TRACE("(%p %d)\n", this, uninitialized);
-
-    basic_streambuf_short_ctor(&this->base);
-    this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
-    return this;
-}
-
 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor, 4)
-void __thiscall basic_filebuf_wchar_dtor(basic_filebuf_wchar *this)
+static void basic_filebuf_wchar_dtor(basic_filebuf_wchar *this)
 {
     TRACE("(%p)\n", this);
 
@@ -3123,121 +2552,12 @@
 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open, 4)
-MSVCP_bool __thiscall basic_filebuf_wchar_is_open(const basic_filebuf_wchar *this)
+static MSVCP_bool basic_filebuf_wchar_is_open(const basic_filebuf_wchar *this)
 {
     TRACE("(%p)\n", this);
     return this->file != NULL;
 }
 
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_wchar, 16)
-basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
-{
-    FILE *f = NULL;
-
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(basic_filebuf_wchar_is_open(this))
-        return NULL;
-
-    if(!(f = _Fiopen_wchar(name, mode, prot)))
-        return NULL;
-
-    basic_filebuf_wchar__Init(this, f, INITFL_open);
-    basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(this->base.loc));
-    return this;
-}
-
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z */
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z */
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_wchar, 16)
-basic_filebuf_wchar* __thiscall basic_filebuf_short_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
-{
-    FILE *f = NULL;
-
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(basic_filebuf_wchar_is_open(this))
-        return NULL;
-
-    if(!(f = _Fiopen_wchar(name, mode, prot)))
-        return NULL;
-
-    basic_filebuf_short__Init(this, f, INITFL_open);
-    basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(this->base.loc));
-    return this;
-}
-
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WI@Z */
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WI@Z */
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGI@Z */
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGI@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_wchar_mode, 12)
-basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_wchar_mode(basic_filebuf_wchar *this, const wchar_t *name, unsigned int mode)
-{
-    return basic_filebuf_wchar_open_wchar(this, name, mode, SH_DENYNO);
-}
-
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WI@Z */
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WI@Z */
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGI@Z */
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGI@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_wchar_mode, 12)
-basic_filebuf_wchar* __thiscall basic_filebuf_short_open_wchar_mode(basic_filebuf_wchar *this, const wchar_t *name, unsigned int mode)
-{
-    return basic_filebuf_short_open_wchar(this, name, mode, SH_DENYNO);
-}
-
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open, 16)
-basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
-{
-    wchar_t nameW[FILENAME_MAX];
-
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
-        return NULL;
-    return basic_filebuf_wchar_open_wchar(this, nameW, mode, prot);
-}
-
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z */
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open, 16)
-basic_filebuf_wchar* __thiscall basic_filebuf_short_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
-{
-    wchar_t nameW[FILENAME_MAX];
-
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
-        return NULL;
-    return basic_filebuf_short_open_wchar(this, nameW, mode, prot);
-}
-
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z */
-/* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode, 12)
-basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
-{
-    return basic_filebuf_wchar_open(this, name, mode, SH_DENYNO);
-}
-
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z */
-/* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode, 12)
-basic_filebuf_wchar* __thiscall basic_filebuf_short_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
-{
-    return basic_filebuf_short_open(this, name, mode, SH_DENYNO);
-}
-
 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
@@ -3544,786 +2864,6 @@
     basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(loc));
 }
 
-/* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
-/* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate, 8)
-int __thiscall basic_stringbuf_char__Getstate(basic_stringbuf_char *this, IOSB_openmode mode)
-{
-    int state = 0;
-
-    if(!(mode & OPENMODE_in))
-        state |= STRINGBUF_no_read;
-
-    if(!(mode & OPENMODE_out))
-        state |= STRINGBUF_no_write;
-
-    if(mode & OPENMODE_ate)
-        state |= STRINGBUF_at_end;
-
-    if(mode & OPENMODE_app)
-        state |= STRINGBUF_append;
-
-    return state;
-}
-
-/* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
-/* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init, 16)
-void __thiscall basic_stringbuf_char__Init(basic_stringbuf_char *this, const char *str, MSVCP_size_t count, int state)
-{
-    TRACE("(%p, %p, %lu, %d)\n", this, str, count, state);
-
-    basic_streambuf_char__Init_empty(&this->base);
-
-    this->state = state;
-    this->seekhigh = NULL;
-
-    if(count && str) {
-        char *buf = MSVCRT_operator_new(count);
-        if(!buf) {
-            ERR("Out of memory\n");
-            throw_exception(EXCEPTION_BAD_ALLOC, NULL);
-        }
-
-        memcpy(buf, str, count);
-        this->seekhigh = buf + count;
-
-        this->state |= STRINGBUF_allocated;
-
-        if(!(state & STRINGBUF_no_read))
-            basic_streambuf_char_setg(&this->base, buf, buf, buf + count);
-
-        if(!(state & STRINGBUF_no_write)) {
-            basic_streambuf_char_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
-
-            if(!basic_streambuf_char_gptr(&this->base))
-                basic_streambuf_char_setg(&this->base, buf, 0, buf);
-        }
-    }
-}
-
-/* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
-/* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str, 12)
-basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_str(basic_stringbuf_char *this,
-        const basic_string_char *str, IOSB_openmode mode)
-{
-    TRACE("(%p %p %d)\n", this, str, mode);
-
-    basic_streambuf_char_ctor(&this->base);
-    this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
-
-    basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str),
-            str->size, basic_stringbuf_char__Getstate(this, mode));
-    return this;
-}
-
-/* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
-/* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode, 8)
-basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_mode(
-        basic_stringbuf_char *this, IOSB_openmode mode)
-{
-    TRACE("(%p %d)\n", this, mode);
-
-    basic_streambuf_char_ctor(&this->base);
-    this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
-
-    basic_stringbuf_char__Init(this, NULL, 0, basic_stringbuf_char__Getstate(this, mode));
-    return this;
-}
-
-/* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
-/* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor, 4)
-basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor(basic_stringbuf_char *this)
-{
-    return basic_stringbuf_char_ctor_mode(this, OPENMODE_in|OPENMODE_out);
-}
-
-/* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
-/* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy, 4)
-void __thiscall basic_stringbuf_char__Tidy(basic_stringbuf_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    if(this->state & STRINGBUF_allocated) {
-        MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
-        this->seekhigh = NULL;
-        this->state &= ~STRINGBUF_allocated;
-    }
-
-    basic_streambuf_char__Init_empty(&this->base);
-}
-
-/* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
-/* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor, 4)
-void __thiscall basic_stringbuf_char_dtor(basic_stringbuf_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_stringbuf_char__Tidy(this);
-    basic_streambuf_char_dtor(&this->base);
-}
-
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor, 8)
-basic_stringbuf_char* __thiscall basic_stringbuf_char_vector_dtor(basic_stringbuf_char *this, unsigned int flags)
-{
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *) this - 1;
-
-        for (i = *ptr - 1; i >= 0; i--)
-            basic_stringbuf_char_dtor(this+i);
-
-        MSVCRT_operator_delete(ptr);
-    }else {
-        basic_stringbuf_char_dtor(this);
-
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
-/* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow, 8)
-int __thiscall basic_stringbuf_char_overflow(basic_stringbuf_char *this, int meta)
-{
-    MSVCP_size_t oldsize, size;
-    char *ptr, *buf;
-
-    TRACE("(%p %x)\n", this, meta);
-
-    if(meta == EOF)
-        return !EOF;
-    if(this->state & STRINGBUF_no_write)
-        return EOF;
-
-    ptr = basic_streambuf_char_pptr(&this->base);
-    if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
-        basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
-                this->seekhigh, basic_streambuf_char_epptr(&this->base));
-
-    if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
-        return (*basic_streambuf_char__Pninc(&this->base) = meta);
-
-    oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
-    size = oldsize|0xf;
-    size += size/2;
-    buf = MSVCRT_operator_new(size);
-    if(!buf) {
-        ERR("Out of memory\n");
-        throw_exception(EXCEPTION_BAD_ALLOC, NULL);
-    }
-
-    if(!oldsize) {
-        this->seekhigh = buf;
-        basic_streambuf_char_setp(&this->base, buf, buf+size);
-        if(this->state & STRINGBUF_no_read)
-            basic_streambuf_char_setg(&this->base, buf, NULL, buf);
-        else
-            basic_streambuf_char_setg(&this->base, buf, buf, buf+1);
-
-        this->state |= STRINGBUF_allocated;
-    }else {
-        ptr = basic_streambuf_char_eback(&this->base);
-        memcpy(buf, ptr, oldsize);
-
-        this->seekhigh = buf+(this->seekhigh-ptr);
-        basic_streambuf_char_setp_next(&this->base, buf,
-                buf+(basic_streambuf_char_pptr(&this->base)-ptr), buf+size);
-        if(this->state & STRINGBUF_no_read)
-            basic_streambuf_char_setg(&this->base, buf, NULL, buf);
-        else
-            basic_streambuf_char_setg(&this->base, buf,
-                    buf+(basic_streambuf_char_gptr(&this->base)-ptr),
-                    basic_streambuf_char_pptr(&this->base)+1);
-
-        MSVCRT_operator_delete(ptr);
-    }
-
-    return (*basic_streambuf_char__Pninc(&this->base) = meta);
-}
-
-/* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
-/* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail, 8)
-int __thiscall basic_stringbuf_char_pbackfail(basic_stringbuf_char *this, int c)
-{
-    char *cur;
-
-    TRACE("(%p %x)\n", this, c);
-
-    cur = basic_streambuf_char_gptr(&this->base);
-    if(!cur || cur==basic_streambuf_char_eback(&this->base)
-            || (c!=EOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
-        return EOF;
-
-    if(c != EOF)
-        cur[-1] = c;
-    basic_streambuf_char_gbump(&this->base, -1);
-    return c==EOF ? !EOF : c;
-}
-
-/* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
-/* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow, 4)
-int __thiscall basic_stringbuf_char_underflow(basic_stringbuf_char *this)
-{
-    char *ptr, *cur;
-
-    TRACE("(%p)\n", this);
-
-    cur = basic_streambuf_char_gptr(&this->base);
-    if(!cur || this->state&STRINGBUF_no_read)
-        return EOF;
-
-    ptr  = basic_streambuf_char_pptr(&this->base);
-    if(this->seekhigh < ptr)
-        this->seekhigh = ptr;
-
-    ptr = basic_streambuf_char_egptr(&this->base);
-    if(this->seekhigh > ptr)
-        basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base), cur, this->seekhigh);
-
-    if(cur < this->seekhigh)
-        return *cur;
-    return EOF;
-}
-
-/* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
-/* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff, 24)
-fpos_int* __thiscall basic_stringbuf_char_seekoff(basic_stringbuf_char *this,
-        fpos_int *ret, streamoff off, int way, int mode)
-{
-    char *beg, *cur_r, *cur_w;
-
-    TRACE("(%p %p %s %d %d)\n", this, ret, wine_dbgstr_longlong(off), way, mode);
-
-    cur_w = basic_streambuf_char_pptr(&this->base);
-    if(cur_w > this->seekhigh)
-        this->seekhigh = cur_w;
-
-    ret->off = 0;
-    ret->state = 0;
-
-    beg = basic_streambuf_char_eback(&this->base);
-    cur_r = basic_streambuf_char_gptr(&this->base);
-    if((mode & OPENMODE_in) && cur_r) {
-        if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
-            off += cur_r-beg;
-        else if(way == SEEKDIR_end)
-            off += this->seekhigh-beg;
-        else if(way != SEEKDIR_beg)
-            off = -1;
-
-        if(off<0 || off>this->seekhigh-beg) {
-            off = -1;
-        }else {
-            basic_streambuf_char_gbump(&this->base, beg-cur_r+off);
-            if((mode & OPENMODE_out) && cur_w) {
-                basic_streambuf_char_setp_next(&this->base, beg,
-                        basic_streambuf_char_gptr(&this->base),
-                        basic_streambuf_char_epptr(&this->base));
-            }
-        }
-    }else if((mode & OPENMODE_out) && cur_w) {
-        if(way == SEEKDIR_cur)
-            off += cur_w-beg;
-        else if(way == SEEKDIR_end)
-            off += this->seekhigh-beg;
-        else if(way != SEEKDIR_beg)
-            off = -1;
-
-        if(off<0 || off>this->seekhigh-beg)
-            off = -1;
-        else
-            basic_streambuf_char_pbump(&this->base, beg-cur_w+off);
-    }else {
-        off = -1;
-    }
-
-    ret->pos = off;
-    return ret;
-}
-
-/* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
-/* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos, 36)
-fpos_int* __thiscall basic_stringbuf_char_seekpos(basic_stringbuf_char *this,
-        fpos_int *ret, fpos_int pos, int mode)
-{
-    TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
-
-    if(pos.off==0 && pos.pos==-1 && pos.state==0) {
-        *ret = pos;
-        return ret;
-    }
-
-    return basic_stringbuf_char_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
-}
-
-/* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-/* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set, 8)
-void __thiscall basic_stringbuf_char_str_set(basic_stringbuf_char *this, const basic_string_char *str)
-{
-    TRACE("(%p %p)\n", this, str);
-
-    basic_stringbuf_char__Tidy(this);
-    basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str), str->size, this->state);
-}
-
-/* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get, 8)
-basic_string_char* __thiscall basic_stringbuf_char_str_get(const basic_stringbuf_char *this, basic_string_char *ret)
-{
-    char *ptr;
-
-    TRACE("(%p)\n", this);
-
-    if(!(this->state & STRINGBUF_no_write) && basic_streambuf_char_pptr(&this->base)) {
-        char *pptr;
-
-        ptr = basic_streambuf_char_pbase(&this->base);
-        pptr = basic_streambuf_char_pptr(&this->base);
-
-        return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
-    }
-
-    if(!(this->state & STRINGBUF_no_read) && basic_streambuf_char_gptr(&this->base)) {
-        ptr = basic_streambuf_char_eback(&this->base);
-        return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, basic_streambuf_char_egptr(&this->base) - ptr);
-    }
-
-    return MSVCP_basic_string_char_ctor(ret);
-}
-
-/* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
-/* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
-/* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
-/* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate, 8)
-int __thiscall basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar *this, IOSB_openmode mode)
-{
-    int state = 0;
-
-    if(!(mode & OPENMODE_in))
-        state |= STRINGBUF_no_read;
-
-    if(!(mode & OPENMODE_out))
-        state |= STRINGBUF_no_write;
-
-    if(mode & OPENMODE_ate)
-        state |= STRINGBUF_at_end;
-
-    if(mode & OPENMODE_app)
-        state |= STRINGBUF_append;
-
-    return state;
-}
-
-/* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
-/* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
-/* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
-/* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init, 16)
-void __thiscall basic_stringbuf_wchar__Init(basic_stringbuf_wchar *this, const wchar_t *str, MSVCP_size_t count, int state)
-{
-    TRACE("(%p, %p, %lu, %d)\n", this, str, count, state);
-
-    basic_streambuf_wchar__Init_empty(&this->base);
-
-    this->state = state;
-    this->seekhigh = NULL;
-
-    if(count && str) {
-        wchar_t *buf = MSVCRT_operator_new(count*sizeof(wchar_t));
-        if(!buf) {
-            ERR("Out of memory\n");
-            throw_exception(EXCEPTION_BAD_ALLOC, NULL);
-        }
-
-        memcpy(buf, str, count*sizeof(wchar_t));
-        this->seekhigh = buf + count;
-
-        this->state |= STRINGBUF_allocated;
-
-        if(!(state & STRINGBUF_no_read))
-            basic_streambuf_wchar_setg(&this->base, buf, buf, buf + count);
-
-        if(!(state & STRINGBUF_no_write)) {
-            basic_streambuf_wchar_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
-
-            if(!basic_streambuf_wchar_gptr(&this->base))
-                basic_streambuf_wchar_setg(&this->base, buf, 0, buf);
-        }
-    }
-}
-
-/* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
-/* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_str, 12)
-basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar *this,
-        const basic_string_wchar *str, IOSB_openmode mode)
-{
-    TRACE("(%p %p %d)\n", this, str, mode);
-
-    basic_streambuf_wchar_ctor(&this->base);
-    this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
-
-    basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str),
-            str->size, basic_stringbuf_wchar__Getstate(this, mode));
-    return this;
-}
-
-/* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
-/* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str, 12)
-basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_str(basic_stringbuf_wchar *this,
-        const basic_string_wchar *str, IOSB_openmode mode)
-{
-    basic_stringbuf_wchar_ctor_str(this, str, mode);
-    this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
-/* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_mode, 8)
-basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_mode(
-        basic_stringbuf_wchar *this, IOSB_openmode mode)
-{
-    TRACE("(%p %d)\n", this, mode);
-
-    basic_streambuf_wchar_ctor(&this->base);
-    this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
-
-    basic_stringbuf_wchar__Init(this, NULL, 0, basic_stringbuf_wchar__Getstate(this, mode));
-    return this;
-}
-
-/* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
-/* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode, 8)
-basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_mode(
-        basic_stringbuf_wchar *this, IOSB_openmode mode)
-{
-    basic_stringbuf_wchar_ctor_mode(this, mode);
-    this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
-    return this;
-}
-
-/* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
-/* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor, 4)
-basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor(basic_stringbuf_wchar *this)
-{
-    return basic_stringbuf_wchar_ctor_mode(this, OPENMODE_in|OPENMODE_out);
-}
-
-/* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
-/* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor, 4)
-basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor(basic_stringbuf_wchar *this)
-{
-    return basic_stringbuf_short_ctor_mode(this, OPENMODE_in|OPENMODE_out);
-}
-
-/* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
-/* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
-/* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
-/* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy, 4)
-void __thiscall basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    if(this->state & STRINGBUF_allocated) {
-        MSVCRT_operator_delete(basic_streambuf_wchar_eback(&this->base));
-        this->seekhigh = NULL;
-        this->state &= ~STRINGBUF_allocated;
-    }
-
-    basic_streambuf_wchar__Init_empty(&this->base);
-}
-
-/* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
-/* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
-/* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
-/* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor, 4)
-void __thiscall basic_stringbuf_wchar_dtor(basic_stringbuf_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_stringbuf_wchar__Tidy(this);
-    basic_streambuf_wchar_dtor(&this->base);
-}
-
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_vector_dtor, 8)
-basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar *this, unsigned int flags)
-{
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *) this - 1;
-
-        for (i = *ptr - 1; i >= 0; i--)
-            basic_stringbuf_wchar_dtor(this+i);
-
-        MSVCRT_operator_delete(ptr);
-    }else {
-        basic_stringbuf_wchar_dtor(this);
-
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
-/* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
-/* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
-/* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow, 8)
-unsigned short __thiscall basic_stringbuf_wchar_overflow(basic_stringbuf_wchar *this, unsigned short meta)
-{
-    MSVCP_size_t oldsize, size;
-    wchar_t *ptr, *buf;
-
-    TRACE("(%p %x)\n", this, meta);
-
-    if(meta == WEOF)
-        return !WEOF;
-    if(this->state & STRINGBUF_no_write)
-        return WEOF;
-
-    ptr = basic_streambuf_wchar_pptr(&this->base);
-    if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
-        basic_streambuf_wchar_setp_next(&this->base, basic_streambuf_wchar_pbase(&this->base),
-                this->seekhigh, basic_streambuf_wchar_epptr(&this->base));
-
-    if(ptr && ptr<basic_streambuf_wchar_epptr(&this->base))
-        return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
-
-    oldsize = (ptr ? basic_streambuf_wchar_epptr(&this->base)-basic_streambuf_wchar_eback(&this->base): 0);
-    size = oldsize|0xf;
-    size += size/2;
-    buf = MSVCRT_operator_new(size*sizeof(wchar_t));
-    if(!buf) {
-        ERR("Out of memory\n");
-        throw_exception(EXCEPTION_BAD_ALLOC, NULL);
-    }
-
-    if(!oldsize) {
-        this->seekhigh = buf;
-        basic_streambuf_wchar_setp(&this->base, buf, buf+size);
-        if(this->state & STRINGBUF_no_read)
-            basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
-        else
-            basic_streambuf_wchar_setg(&this->base, buf, buf, buf+1);
-
-        this->state |= STRINGBUF_allocated;
-    }else {
-        ptr = basic_streambuf_wchar_eback(&this->base);
-        memcpy(buf, ptr, oldsize*sizeof(wchar_t));
-
-        this->seekhigh = buf+(this->seekhigh-ptr);
-        basic_streambuf_wchar_setp_next(&this->base, buf,
-                buf+(basic_streambuf_wchar_pptr(&this->base)-ptr), buf+size);
-        if(this->state & STRINGBUF_no_read)
-            basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
-        else
-            basic_streambuf_wchar_setg(&this->base, buf,
-                    buf+(basic_streambuf_wchar_gptr(&this->base)-ptr),
-                    basic_streambuf_wchar_pptr(&this->base)+1);
-
-        MSVCRT_operator_delete(ptr);
-    }
-
-    return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
-}
-
-/* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
-/* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
-/* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
-/* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail, 8)
-unsigned short __thiscall basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar *this, unsigned short c)
-{
-    wchar_t *cur;
-
-    TRACE("(%p %x)\n", this, c);
-
-    cur = basic_streambuf_wchar_gptr(&this->base);
-    if(!cur || cur==basic_streambuf_wchar_eback(&this->base)
-            || (c!=WEOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
-        return WEOF;
-
-    if(c != WEOF)
-        cur[-1] = c;
-    basic_streambuf_wchar_gbump(&this->base, -1);
-    return c==WEOF ? !WEOF : c;
-}
-
-/* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
-/* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
-/* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
-/* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow, 4)
-unsigned short __thiscall basic_stringbuf_wchar_underflow(basic_stringbuf_wchar *this)
-{
-    wchar_t *ptr, *cur;
-
-    TRACE("(%p)\n", this);
-
-    cur = basic_streambuf_wchar_gptr(&this->base);
-    if(!cur || this->state&STRINGBUF_no_read)
-        return WEOF;
-
-    ptr  = basic_streambuf_wchar_pptr(&this->base);
-    if(this->seekhigh < ptr)
-        this->seekhigh = ptr;
-
-    ptr = basic_streambuf_wchar_egptr(&this->base);
-    if(this->seekhigh > ptr)
-        basic_streambuf_wchar_setg(&this->base, basic_streambuf_wchar_eback(&this->base), cur, this->seekhigh);
-
-    if(cur < this->seekhigh)
-        return *cur;
-    return WEOF;
-}
-
-/* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
-/* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
-/* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
-/* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff, 24)
-fpos_int* __thiscall basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar *this,
-        fpos_int *ret, streamoff off, int way, int mode)
-{
-    wchar_t *beg, *cur_r, *cur_w;
-
-    TRACE("(%p %p %s %d %d)\n", this, ret, wine_dbgstr_longlong(off), way, mode);
-
-    cur_w = basic_streambuf_wchar_pptr(&this->base);
-    if(cur_w > this->seekhigh)
-        this->seekhigh = cur_w;
-
-    ret->off = 0;
-    ret->state = 0;
-
-    beg = basic_streambuf_wchar_eback(&this->base);
-    cur_r = basic_streambuf_wchar_gptr(&this->base);
-    if((mode & OPENMODE_in) && cur_r) {
-        if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
-            off += cur_r-beg;
-        else if(way == SEEKDIR_end)
-            off += this->seekhigh-beg;
-        else if(way != SEEKDIR_beg)
-            off = -1;
-
-        if(off<0 || off>this->seekhigh-beg) {
-            off = -1;
-        }else {
-            basic_streambuf_wchar_gbump(&this->base, beg-cur_r+off);
-            if((mode & OPENMODE_out) && cur_w) {
-                basic_streambuf_wchar_setp_next(&this->base, beg,
-                        basic_streambuf_wchar_gptr(&this->base),
-                        basic_streambuf_wchar_epptr(&this->base));
-            }
-        }
-    }else if((mode & OPENMODE_out) && cur_w) {
-        if(way == SEEKDIR_cur)
-            off += cur_w-beg;
-        else if(way == SEEKDIR_end)
-            off += this->seekhigh-beg;
-        else if(way != SEEKDIR_beg)
-            off = -1;
-
-        if(off<0 || off>this->seekhigh-beg)
-            off = -1;
-        else
-            basic_streambuf_wchar_pbump(&this->base, beg-cur_w+off);
-    }else {
-        off = -1;
-    }
-
-    ret->pos = off;
-    return ret;
-}
-
-/* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
-/* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
-/* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
-/* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos, 36)
-fpos_int* __thiscall basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar *this,
-        fpos_int *ret, fpos_int pos, int mode)
-{
-    TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
-
-    if(pos.off==0 && pos.pos==-1 && pos.state==0) {
-        *ret = pos;
-        return ret;
-    }
-
-    return basic_stringbuf_wchar_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
-}
-
-/* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-/* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set, 8)
-void __thiscall basic_stringbuf_wchar_str_set(basic_stringbuf_wchar *this, const basic_string_wchar *str)
-{
-    TRACE("(%p %p)\n", this, str);
-
-    basic_stringbuf_wchar__Tidy(this);
-    basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str), str->size, this->state);
-}
-
-/* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get, 8)
-basic_string_wchar* __thiscall basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar *this, basic_string_wchar *ret)
-{
-    wchar_t *ptr;
-
-    TRACE("(%p)\n", this);
-
-    if(!(this->state & STRINGBUF_no_write) && basic_streambuf_wchar_pptr(&this->base)) {
-        wchar_t *pptr;
-
-        ptr = basic_streambuf_wchar_pbase(&this->base);
-        pptr = basic_streambuf_wchar_pptr(&this->base);
-
-        return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
-    }
-
-    if(!(this->state & STRINGBUF_no_read) && basic_streambuf_wchar_gptr(&this->base)) {
-        ptr = basic_streambuf_wchar_eback(&this->base);
-        return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, basic_streambuf_wchar_egptr(&this->base) - ptr);
-    }
-
-    return MSVCP_basic_string_wchar_ctor(ret);
-}
-
 /* ??0ios_base@std@@IAE@XZ */
 /* ??0ios_base@std@@IEAA@XZ */
 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
@@ -7276,8 +5816,7 @@
 
 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
-DEFINE_THISCALL_WRAPPER(basic_istream_char__Read_s, 20)
-basic_istream_char* __thiscall basic_istream_char__Read_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
+static basic_istream_char* basic_istream_char__Read_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
 {
     basic_ios_char *base = basic_istream_char_get_basic_ios(this);
     IOSB_iostate state = IOSTATE_goodbit;
@@ -7309,8 +5848,7 @@
 
 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
-DEFINE_THISCALL_WRAPPER(basic_istream_char__Readsome_s, 20)
-streamsize __thiscall basic_istream_char__Readsome_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
+static streamsize basic_istream_char__Readsome_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
 {
     basic_ios_char *base = basic_istream_char_get_basic_ios(this);
     IOSB_iostate state = IOSTATE_goodbit;
@@ -8407,8 +6945,7 @@
 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGIH@Z */
 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_K_J@Z */
-DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Read_s, 20)
-basic_istream_wchar* __thiscall basic_istream_wchar__Read_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
+static basic_istream_wchar* basic_istream_wchar__Read_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
 {
     basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
     IOSB_iostate state = IOSTATE_goodbit;
@@ -8444,8 +6981,7 @@
 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
-DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Readsome_s, 20)
-streamsize __thiscall basic_istream_wchar__Readsome_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
+static streamsize basic_istream_wchar__Readsome_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
 {
     basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
     IOSB_iostate state = IOSTATE_goodbit;
@@ -9387,2885 +7923,6 @@
     return this;
 }
 
-static inline basic_ios_char* basic_ofstream_char_to_basic_ios(basic_ofstream_char *ptr)
-{
-    return (basic_ios_char*)((char*)ptr+basic_ofstream_char_vbtable[1]);
-}
-
-static inline basic_ofstream_char* basic_ofstream_char_from_basic_ios(basic_ios_char *ptr)
-{
-    return (basic_ofstream_char*)((char*)ptr-basic_ofstream_char_vbtable[1]);
-}
-
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor, 8)
-basic_ofstream_char* __thiscall basic_ofstream_char_ctor(basic_ofstream_char *this, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %d)\n", this, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ofstream_char_vbtable;
-        basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-    }
-
-    basic_filebuf_char_ctor(&this->filebuf);
-    basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_file, 12)
-basic_ofstream_char* __thiscall basic_ofstream_char_ctor_file(
-        basic_ofstream_char *this, FILE *file, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %p %d)\n", this, file, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ofstream_char_vbtable;
-        basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-    }
-
-    basic_filebuf_char_ctor_file(&this->filebuf, file);
-    basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name, 20)
-basic_ofstream_char* __thiscall basic_ofstream_char_ctor_name(basic_ofstream_char *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
-
-    basic_ofstream_char_ctor(this, virt_init);
-
-    if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
-        basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name_wchar, 20)
-basic_ofstream_char* __thiscall basic_ofstream_char_ctor_name_wchar(basic_ofstream_char *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name), mode, prot, virt_init);
-
-    basic_ofstream_char_ctor(this, virt_init);
-
-    if(!basic_filebuf_char_open_wchar(&this->filebuf, name, mode|OPENMODE_out, prot)) {
-        basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
-/* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor, 4)
-void __thiscall basic_ofstream_char_dtor(basic_ios_char *base)
-{
-    basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
-    basic_filebuf_char_dtor(&this->filebuf);
-}
-
-/* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
-/* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor, 4)
-void __thiscall basic_ofstream_char_vbase_dtor(basic_ofstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
-    basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor, 8)
-basic_ofstream_char* __thiscall basic_ofstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
-{
-    basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_ofstream_char_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_ofstream_char_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
-/* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close, 4)
-void __thiscall basic_ofstream_char_close(basic_ofstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    if(!basic_filebuf_char_close(&this->filebuf)) {
-        basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open, 4)
-MSVCP_bool __thiscall basic_ofstream_char_is_open(const basic_ofstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return basic_filebuf_char_is_open(&this->filebuf);
-}
-
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open, 16)
-void __thiscall basic_ofstream_char_open(basic_ofstream_char *this,
-        const char *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
-        basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old, 12)
-void __thiscall basic_ofstream_char_open_old(basic_ofstream_char *this,
-        const char *name, unsigned int mode)
-{
-    basic_ofstream_char_open(this, name, mode, _SH_DENYNO);
-}
-
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_wchar, 16)
-void __thiscall basic_ofstream_char_open_wchar(basic_ofstream_char *this,
-        const wchar_t *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(!basic_filebuf_char_open_wchar(&this->filebuf, name, mode|OPENMODE_out, prot)) {
-        basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_wchar_old, 12)
-void __thiscall basic_ofstream_char_open_wchar_old(basic_ofstream_char *this,
-        const wchar_t *name, unsigned int mode)
-{
-    basic_ofstream_char_open_wchar(this, name, mode, _SH_DENYNO);
-}
-
-/* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
-/* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf, 4)
-basic_filebuf_char* __thiscall basic_ofstream_char_rdbuf(const basic_ofstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_filebuf_char*)&this->filebuf;
-}
-
-static inline basic_ios_wchar* basic_ofstream_wchar_to_basic_ios(basic_ofstream_wchar *ptr)
-{
-    return (basic_ios_wchar*)((char*)ptr+basic_ofstream_wchar_vbtable[1]);
-}
-
-static inline basic_ofstream_wchar* basic_ofstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
-{
-    return (basic_ofstream_wchar*)((char*)ptr-basic_ofstream_wchar_vbtable[1]);
-}
-
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor, 8)
-basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %d)\n", this, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ofstream_wchar_vbtable;
-        basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-    }
-
-    basic_filebuf_wchar_ctor(&this->filebuf);
-    basic_ostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor, 8)
-basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
-{
-    basic_ofstream_wchar_ctor(this, virt_init);
-    basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_file, 12)
-basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_file(
-        basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %p %d)\n", this, file, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ofstream_wchar_vbtable;
-        basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-    }
-
-    basic_filebuf_wchar_ctor_file(&this->filebuf, file);
-    basic_ostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_file, 12)
-basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_file(
-        basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
-{
-    basic_ofstream_wchar_ctor_file(this, file, virt_init);
-    basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_name, 20)
-basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_name(basic_ofstream_wchar *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
-
-    basic_ofstream_wchar_ctor(this, virt_init);
-
-    if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
-        basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name, 20)
-basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_name(basic_ofstream_wchar *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    basic_ofstream_wchar_ctor_name(this, name, mode, prot, virt_init);
-    basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_name_wchar, 20)
-basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_name_wchar(basic_ofstream_wchar *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name), mode, prot, virt_init);
-
-    basic_ofstream_wchar_ctor(this, virt_init);
-
-    if(!basic_filebuf_wchar_open_wchar(&this->filebuf, name, mode|OPENMODE_out, prot)) {
-        basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name_wchar, 20)
-basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_name_wchar(basic_ofstream_wchar *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    basic_ofstream_wchar_ctor_name_wchar(this, name, mode, prot, virt_init);
-    basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
-    return this;
-}
-
-/* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
-/* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
-/* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
-/* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_dtor, 4)
-void __thiscall basic_ofstream_wchar_dtor(basic_ios_wchar *base)
-{
-    basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
-    basic_filebuf_wchar_dtor(&this->filebuf);
-}
-
-/* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
-/* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
-/* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
-/* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vbase_dtor, 4)
-void __thiscall basic_ofstream_wchar_vbase_dtor(basic_ofstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_ofstream_wchar_dtor(basic_ofstream_wchar_to_basic_ios(this));
-    basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vector_dtor, 8)
-basic_ofstream_wchar* __thiscall basic_ofstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
-{
-    basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_ofstream_wchar_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_ofstream_wchar_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
-/* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
-/* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
-/* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_close, 4)
-void __thiscall basic_ofstream_wchar_close(basic_ofstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    if(!basic_filebuf_wchar_close(&this->filebuf)) {
-        basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
-/* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_is_open, 4)
-MSVCP_bool __thiscall basic_ofstream_wchar_is_open(const basic_ofstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return basic_filebuf_wchar_is_open(&this->filebuf);
-}
-
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open, 16)
-void __thiscall basic_ofstream_wchar_open(basic_ofstream_wchar *this,
-        const char *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
-        basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_old, 12)
-void __thiscall basic_ofstream_wchar_open_old(basic_ofstream_wchar *this,
-        const char *name, unsigned int mode)
-{
-    basic_ofstream_wchar_open(this, name, mode, _SH_DENYNO);
-}
-
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WHH@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_wchar, 16)
-void __thiscall basic_ofstream_wchar_open_wchar(basic_ofstream_wchar *this,
-        const wchar_t *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(!basic_filebuf_wchar_open_wchar(&this->filebuf, name, mode|OPENMODE_out, prot)) {
-        basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WI@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WI@Z */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_wchar_old, 12)
-void __thiscall basic_ofstream_wchar_open_wchar_old(basic_ofstream_wchar *this,
-        const wchar_t *name, unsigned int mode)
-{
-    basic_ofstream_wchar_open_wchar(this, name, mode, _SH_DENYNO);
-}
-
-/* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
-/* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
-/* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
-/* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_rdbuf, 4)
-basic_filebuf_wchar* __thiscall basic_ofstream_wchar_rdbuf(const basic_ofstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_filebuf_wchar*)&this->filebuf;
-}
-
-static inline basic_ios_char* basic_ifstream_char_to_basic_ios(basic_ifstream_char *ptr)
-{
-    return (basic_ios_char*)((char*)ptr+basic_ifstream_char_vbtable[1]);
-}
-
-static inline basic_ifstream_char* basic_ifstream_char_from_basic_ios(basic_ios_char *ptr)
-{
-    return (basic_ifstream_char*)((char*)ptr-basic_ifstream_char_vbtable[1]);
-}
-
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor, 8)
-basic_ifstream_char* __thiscall basic_ifstream_char_ctor(basic_ifstream_char *this, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %d)\n", this, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ifstream_char_vbtable;
-        basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_char_get_basic_ios(&this->base);
-    }
-
-    basic_filebuf_char_ctor(&this->filebuf);
-    basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_file, 12)
-basic_ifstream_char* __thiscall basic_ifstream_char_ctor_file(
-        basic_ifstream_char *this, FILE *file, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %p %d)\n", this, file, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ifstream_char_vbtable;
-        basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_char_get_basic_ios(&this->base);
-    }
-
-    basic_filebuf_char_ctor_file(&this->filebuf, file);
-    basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name, 20)
-basic_ifstream_char* __thiscall basic_ifstream_char_ctor_name(basic_ifstream_char *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
-
-    basic_ifstream_char_ctor(this, virt_init);
-
-    if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name_wchar, 20)
-basic_ifstream_char* __thiscall basic_ifstream_char_ctor_name_wchar(basic_ifstream_char *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name), mode, prot, virt_init);
-
-    basic_ifstream_char_ctor(this, virt_init);
-
-    if(!basic_filebuf_char_open_wchar(&this->filebuf, name, mode|OPENMODE_in, prot)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
-/* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor, 4)
-void __thiscall basic_ifstream_char_dtor(basic_ios_char *base)
-{
-    basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
-    basic_filebuf_char_dtor(&this->filebuf);
-}
-
-/* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
-/* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor, 4)
-void __thiscall basic_ifstream_char_vbase_dtor(basic_ifstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
-    basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor, 8)
-basic_ifstream_char* __thiscall basic_ifstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
-{
-    basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_ifstream_char_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_ifstream_char_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
-/* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close, 4)
-void __thiscall basic_ifstream_char_close(basic_ifstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    if(!basic_filebuf_char_close(&this->filebuf)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open, 4)
-MSVCP_bool __thiscall basic_ifstream_char_is_open(const basic_ifstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return basic_filebuf_char_is_open(&this->filebuf);
-}
-
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open, 16)
-void __thiscall basic_ifstream_char_open(basic_ifstream_char *this,
-        const char *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old, 12)
-void __thiscall basic_ifstream_char_open_old(basic_ifstream_char *this,
-        const char *name, unsigned int mode)
-{
-    basic_ifstream_char_open(this, name, mode, _SH_DENYNO);
-}
-
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_wchar, 16)
-void __thiscall basic_ifstream_char_open_wchar(basic_ifstream_char *this,
-        const wchar_t *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(!basic_filebuf_char_open_wchar(&this->filebuf, name, mode|OPENMODE_in, prot)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_wchar_old, 12)
-void __thiscall basic_ifstream_char_open_wchar_old(basic_ifstream_char *this,
-        const wchar_t *name, unsigned int mode)
-{
-    basic_ifstream_char_open_wchar(this, name, mode, _SH_DENYNO);
-}
-
-/* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
-/* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf, 4)
-basic_filebuf_char* __thiscall basic_ifstream_char_rdbuf(const basic_ifstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_filebuf_char*)&this->filebuf;
-}
-
-static inline basic_ios_wchar* basic_ifstream_wchar_to_basic_ios(basic_ifstream_wchar *ptr)
-{
-    return (basic_ios_wchar*)((char*)ptr+basic_ifstream_wchar_vbtable[1]);
-}
-
-static inline basic_ifstream_wchar* basic_ifstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
-{
-    return (basic_ifstream_wchar*)((char*)ptr-basic_ifstream_wchar_vbtable[1]);
-}
-
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor, 8)
-basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %d)\n", this, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ifstream_wchar_vbtable;
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-    }
-
-    basic_filebuf_wchar_ctor(&this->filebuf);
-    basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor, 8)
-basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
-{
-    basic_ifstream_wchar_ctor(this, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_file, 12)
-basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_file(
-        basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %p %d)\n", this, file, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ifstream_wchar_vbtable;
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-    }
-
-    basic_filebuf_wchar_ctor_file(&this->filebuf, file);
-    basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_file, 12)
-basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_file(
-        basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
-{
-    basic_ifstream_wchar_ctor_file(this, file, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name, 20)
-basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_name(basic_ifstream_wchar *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
-
-    basic_ifstream_wchar_ctor(this, virt_init);
-
-    if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name, 20)
-basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_name(basic_ifstream_wchar *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    basic_ifstream_wchar_ctor_name(this, name, mode, prot, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name_wchar, 20)
-basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_name_wchar(basic_ifstream_wchar *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name), mode, prot, virt_init);
-
-    basic_ifstream_wchar_ctor(this, virt_init);
-
-    if(!basic_filebuf_wchar_open_wchar(&this->filebuf, name, mode|OPENMODE_in, prot)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name_wchar, 20)
-basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_name_wchar(basic_ifstream_wchar *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    basic_ifstream_wchar_ctor_name_wchar(this, name, mode, prot, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
-    return this;
-}
-
-/* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
-/* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
-/* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
-/* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_dtor, 4)
-void __thiscall basic_ifstream_wchar_dtor(basic_ios_wchar *base)
-{
-    basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
-    basic_filebuf_wchar_dtor(&this->filebuf);
-}
-
-/* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
-/* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
-/* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
-/* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vbase_dtor, 4)
-void __thiscall basic_ifstream_wchar_vbase_dtor(basic_ifstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_ifstream_wchar_dtor(basic_ifstream_wchar_to_basic_ios(this));
-    basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vector_dtor, 8)
-basic_ifstream_wchar* __thiscall basic_ifstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
-{
-    basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_ifstream_wchar_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_ifstream_wchar_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
-/* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
-/* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
-/* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_close, 4)
-void __thiscall basic_ifstream_wchar_close(basic_ifstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    if(!basic_filebuf_wchar_close(&this->filebuf)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
-/* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_is_open, 4)
-MSVCP_bool __thiscall basic_ifstream_wchar_is_open(const basic_ifstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return basic_filebuf_wchar_is_open(&this->filebuf);
-}
-
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open, 16)
-void __thiscall basic_ifstream_wchar_open(basic_ifstream_wchar *this,
-        const char *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_old, 12)
-void __thiscall basic_ifstream_wchar_open_old(basic_ifstream_wchar *this,
-        const char *name, unsigned int mode)
-{
-    basic_ifstream_wchar_open(this, name, mode, _SH_DENYNO);
-}
-
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WHH@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_wchar, 16)
-void __thiscall basic_ifstream_wchar_open_wchar(basic_ifstream_wchar *this,
-        const wchar_t *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(!basic_filebuf_wchar_open_wchar(&this->filebuf, name, mode|OPENMODE_in, prot)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WI@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WI@Z */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_wchar_old, 12)
-void __thiscall basic_ifstream_wchar_open_wchar_old(basic_ifstream_wchar *this,
-        const wchar_t *name, unsigned int mode)
-{
-    basic_ifstream_wchar_open_wchar(this, name, mode, _SH_DENYNO);
-}
-
-/* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
-/* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
-/* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
-/* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_rdbuf, 4)
-basic_filebuf_wchar* __thiscall basic_ifstream_wchar_rdbuf(const basic_ifstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_filebuf_wchar*)&this->filebuf;
-}
-
-static inline basic_ios_char* basic_fstream_char_to_basic_ios(basic_fstream_char *ptr)
-{
-    return (basic_ios_char*)((char*)ptr+basic_fstream_char_vbtable1[1]);
-}
-
-static inline basic_fstream_char* basic_fstream_char_from_basic_ios(basic_ios_char *ptr)
-{
-    return (basic_fstream_char*)((char*)ptr-basic_fstream_char_vbtable1[1]);
-}
-
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor, 8)
-basic_fstream_char* __thiscall basic_fstream_char_ctor(basic_fstream_char *this, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %d)\n", this, virt_init);
-
-    if(virt_init) {
-        this->base.base1.vbtable = basic_fstream_char_vbtable1;
-        this->base.base2.vbtable = basic_fstream_char_vbtable2;
-        basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-    }
-
-    basic_filebuf_char_ctor(&this->filebuf);
-    basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_file, 12)
-basic_fstream_char* __thiscall basic_fstream_char_ctor_file(basic_fstream_char *this,
-        FILE *file, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %p %d)\n", this, file, virt_init);
-
-    if(virt_init) {
-        this->base.base1.vbtable = basic_fstream_char_vbtable1;
-        this->base.base2.vbtable = basic_fstream_char_vbtable2;
-        basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-    }
-
-    basic_filebuf_char_ctor_file(&this->filebuf, file);
-    basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name, 20)
-basic_fstream_char* __thiscall basic_fstream_char_ctor_name(basic_fstream_char *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
-
-    basic_fstream_char_ctor(this, virt_init);
-
-    if(!basic_filebuf_char_open(&this->filebuf, name, mode, prot)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name_wchar, 20)
-basic_fstream_char* __thiscall basic_fstream_char_ctor_name_wchar(basic_fstream_char *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name), mode, prot, virt_init);
-
-    basic_fstream_char_ctor(this, virt_init);
-
-    if(!basic_filebuf_char_open_wchar(&this->filebuf, name, mode, prot)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
-/* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor, 4)
-void __thiscall basic_fstream_char_dtor(basic_ios_char *base)
-{
-    basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
-    basic_filebuf_char_dtor(&this->filebuf);
-}
-
-/* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
-/* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor, 4)
-void __thiscall basic_fstream_char_vbase_dtor(basic_fstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
-    basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor, 8)
-basic_fstream_char* __thiscall basic_fstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
-{
-    basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_fstream_char_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_fstream_char_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
-/* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_close, 4)
-void __thiscall basic_fstream_char_close(basic_fstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    if(!basic_filebuf_char_close(&this->filebuf)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open, 4)
-MSVCP_bool __thiscall basic_fstream_char_is_open(const basic_fstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return basic_filebuf_char_is_open(&this->filebuf);
-}
-
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_open, 16)
-void __thiscall basic_fstream_char_open(basic_fstream_char *this,
-        const char *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(!basic_filebuf_char_open(&this->filebuf, name, mode, prot)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old, 12)
-void __thiscall basic_fstream_char_open_old(basic_fstream_char *this,
-        const char *name, unsigned int mode)
-{
-    basic_fstream_char_open(this, name, mode, _SH_DENYNO);
-}
-
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_wchar, 16)
-void __thiscall basic_fstream_char_open_wchar(basic_fstream_char *this,
-        const wchar_t *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(!basic_filebuf_char_open_wchar(&this->filebuf, name, mode, prot)) {
-        basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_wchar_old, 12)
-void __thiscall basic_fstream_char_open_wchar_old(basic_fstream_char *this,
-        const wchar_t *name, unsigned int mode)
-{
-    basic_fstream_char_open_wchar(this, name, mode, _SH_DENYNO);
-}
-
-/* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
-/* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf, 4)
-basic_filebuf_char* __thiscall basic_fstream_char_rdbuf(const basic_fstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_filebuf_char*)&this->filebuf;
-}
-
-static inline basic_ios_wchar* basic_fstream_wchar_to_basic_ios(basic_fstream_wchar *ptr)
-{
-    return (basic_ios_wchar*)((char*)ptr+basic_fstream_wchar_vbtable1[1]);
-}
-
-static inline basic_fstream_wchar* basic_fstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
-{
-    return (basic_fstream_wchar*)((char*)ptr-basic_fstream_wchar_vbtable1[1]);
-}
-
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor, 8)
-basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %d)\n", this, virt_init);
-
-    if(virt_init) {
-        this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
-        this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-    }
-
-    basic_filebuf_wchar_ctor(&this->filebuf);
-    basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor, 8)
-basic_fstream_wchar* __thiscall basic_fstream_short_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
-{
-    basic_fstream_wchar_ctor(this, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_file, 12)
-basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_file(basic_fstream_wchar *this,
-        FILE *file, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %p %d)\n", this, file, virt_init);
-
-    if(virt_init) {
-        this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
-        this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-    }
-
-    basic_filebuf_wchar_ctor_file(&this->filebuf, file);
-    basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_file, 12)
-basic_fstream_wchar* __thiscall basic_fstream_short_ctor_file(basic_fstream_wchar *this,
-        FILE *file, MSVCP_bool virt_init)
-{
-    basic_fstream_wchar_ctor_file(this, file, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name, 20)
-basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_name(basic_fstream_wchar *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
-
-    basic_fstream_wchar_ctor(this, virt_init);
-
-    if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, prot)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name, 20)
-basic_fstream_wchar* __thiscall basic_fstream_short_ctor_name(basic_fstream_wchar *this,
-        const char *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    basic_fstream_wchar_ctor_name(this, name, mode, prot, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name_wchar, 20)
-basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_name_wchar(basic_fstream_wchar *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name), mode, prot, virt_init);
-
-    basic_fstream_wchar_ctor(this, virt_init);
-
-    if(!basic_filebuf_wchar_open_wchar(&this->filebuf, name, mode, prot)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-    return this;
-}
-
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PB_WHH@Z */
-/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name_wchar, 20)
-basic_fstream_wchar* __thiscall basic_fstream_short_ctor_name_wchar(basic_fstream_wchar *this,
-        const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
-{
-    basic_fstream_wchar_ctor_name_wchar(this, name, mode, prot, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
-    return this;
-}
-
-/* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
-/* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
-/* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
-/* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_dtor, 4)
-void __thiscall basic_fstream_wchar_dtor(basic_ios_wchar *base)
-{
-    basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
-    basic_filebuf_wchar_dtor(&this->filebuf);
-}
-
-/* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
-/* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
-/* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
-/* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vbase_dtor, 4)
-void __thiscall basic_fstream_wchar_vbase_dtor(basic_fstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_fstream_wchar_dtor(basic_fstream_wchar_to_basic_ios(this));
-    basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vector_dtor, 8)
-basic_fstream_wchar* __thiscall basic_fstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
-{
-    basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_fstream_wchar_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_fstream_wchar_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
-/* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
-/* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
-/* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_close, 4)
-void __thiscall basic_fstream_wchar_close(basic_fstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    if(!basic_filebuf_wchar_close(&this->filebuf)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
-/* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
-/* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_is_open, 4)
-MSVCP_bool __thiscall basic_fstream_wchar_is_open(const basic_fstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return basic_filebuf_wchar_is_open(&this->filebuf);
-}
-
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open, 16)
-void __thiscall basic_fstream_wchar_open(basic_fstream_wchar *this,
-        const char *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, name, mode, prot);
-
-    if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, prot)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_old, 12)
-void __thiscall basic_fstream_wchar_open_old(basic_fstream_wchar *this,
-        const char *name, unsigned int mode)
-{
-    basic_fstream_wchar_open(this, name, mode, _SH_DENYNO);
-}
-
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WHH@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBGHH@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGHH@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPB_WHH@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WHH@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_wchar, 16)
-void __thiscall basic_fstream_wchar_open_wchar(basic_fstream_wchar *this,
-        const wchar_t *name, int mode, int prot)
-{
-    TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
-
-    if(!basic_filebuf_wchar_open_wchar(&this->filebuf, name, mode, prot)) {
-        basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
-    }
-}
-
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WI@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBGI@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGI@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPB_WI@Z */
-/* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WI@Z */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_wchar_old, 12)
-void __thiscall basic_fstream_wchar_open_wchar_old(basic_fstream_wchar *this,
-        const wchar_t *name, unsigned int mode)
-{
-    basic_fstream_wchar_open_wchar(this, name, mode, _SH_DENYNO);
-}
-
-/* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
-/* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
-/* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
-/* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_rdbuf, 4)
-basic_filebuf_wchar* __thiscall basic_fstream_wchar_rdbuf(const basic_fstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_filebuf_wchar*)&this->filebuf;
-}
-
-static inline basic_ios_char* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char *ptr)
-{
-    return (basic_ios_char*)((char*)ptr+basic_ostringstream_char_vbtable[1]);
-}
-
-static inline basic_ostringstream_char* basic_ostringstream_char_from_basic_ios(basic_ios_char *ptr)
-{
-    return (basic_ostringstream_char*)((char*)ptr-basic_ostringstream_char_vbtable[1]);
-}
-
-/* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
-/* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str, 16)
-basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_str(basic_ostringstream_char *this,
-        const basic_string_char *str, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ostringstream_char_vbtable;
-        basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-    }
-
-    basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
-    basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
-/* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode, 12)
-basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_mode(
-        basic_ostringstream_char *this, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %d %d)\n", this, mode, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ostringstream_char_vbtable;
-        basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_ostream_char_get_basic_ios(&this->base);
-    }
-
-    basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_out);
-    basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
-    return this;
-}
-
-/* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
-/* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor, 8)
-basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor(
-        basic_ostringstream_char *this, MSVCP_bool virt_init)
-{
-    return basic_ostringstream_char_ctor_mode(this, 0, virt_init);
-}
-
-/* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
-/* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor, 4)
-void __thiscall basic_ostringstream_char_dtor(basic_ios_char *base)
-{
-    basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_stringbuf_char_dtor(&this->strbuf);
-    basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
-}
-
-/* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
-/* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor, 4)
-void __thiscall basic_ostringstream_char_vbase_dtor(basic_ostringstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
-    basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor, 8)
-basic_ostringstream_char* __thiscall basic_ostringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
-{
-    basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_ostringstream_char_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_ostringstream_char_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?rdbuf@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?rdbuf@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf, 4)
-basic_stringbuf_char* __thiscall basic_ostringstream_char_rdbuf(const basic_ostringstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_stringbuf_char*)&this->strbuf;
-}
-
-/* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-/* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set, 8)
-void __thiscall basic_ostringstream_char_str_set(basic_ostringstream_char *this, const basic_string_char *str)
-{
-    TRACE("(%p %p)\n", this, str);
-    basic_stringbuf_char_str_set(&this->strbuf, str);
-}
-
-/* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get, 8)
-basic_string_char* __thiscall basic_ostringstream_char_str_get(const basic_ostringstream_char *this, basic_string_char *ret)
-{
-    TRACE("(%p %p)\n", this, ret);
-    return basic_stringbuf_char_str_get(&this->strbuf, ret);
-}
-
-static inline basic_ios_wchar* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar *ptr)
-{
-    return (basic_ios_wchar*)((char*)ptr+basic_ostringstream_wchar_vbtable[1]);
-}
-
-static inline basic_ostringstream_wchar* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
-{
-    return (basic_ostringstream_wchar*)((char*)ptr-basic_ostringstream_wchar_vbtable[1]);
-}
-
-/* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
-/* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str, 16)
-basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar *this,
-        const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ostringstream_wchar_vbtable;
-        basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-    }
-
-    basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
-    basic_ostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
-/* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str, 16)
-basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_str(basic_ostringstream_wchar *this,
-        const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
-{
-    basic_ostringstream_wchar_ctor_str(this, str, mode, virt_init);
-    basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
-/* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_mode, 12)
-basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_mode(
-        basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %d %d)\n", this, mode, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_ostringstream_wchar_vbtable;
-        basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
-    }
-
-    basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_out);
-    basic_ostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
-/* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode, 12)
-basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_mode(
-        basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
-{
-    basic_ostringstream_wchar_ctor_mode(this, mode, virt_init);
-    basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
-    return this;
-}
-
-/* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
-/* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor, 8)
-basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor(
-        basic_ostringstream_wchar *this, MSVCP_bool virt_init)
-{
-    return basic_ostringstream_wchar_ctor_mode(this, 0, virt_init);
-}
-
-/* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
-/* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor, 8)
-basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor(
-        basic_ostringstream_wchar *this, MSVCP_bool virt_init)
-{
-    return basic_ostringstream_short_ctor_mode(this, 0, virt_init);
-}
-
-/* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
-/* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
-/* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
-/* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor, 4)
-void __thiscall basic_ostringstream_wchar_dtor(basic_ios_wchar *base)
-{
-    basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_stringbuf_wchar_dtor(&this->strbuf);
-    basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
-}
-
-/* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
-/* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
-/* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
-/* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor, 4)
-void __thiscall basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_ostringstream_wchar_dtor(basic_ostringstream_wchar_to_basic_ios(this));
-    basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vector_dtor, 8)
-basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
-{
-    basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_ostringstream_wchar_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_ostringstream_wchar_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?rdbuf@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?rdbuf@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?rdbuf@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?rdbuf@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf, 4)
-basic_stringbuf_wchar* __thiscall basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_stringbuf_wchar*)&this->strbuf;
-}
-
-/* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-/* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set, 8)
-void __thiscall basic_ostringstream_wchar_str_set(basic_ostringstream_wchar *this, const basic_string_wchar *str)
-{
-    TRACE("(%p %p)\n", this, str);
-    basic_stringbuf_wchar_str_set(&this->strbuf, str);
-}
-
-/* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get, 8)
-basic_string_wchar* __thiscall basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar *this, basic_string_wchar *ret)
-{
-    TRACE("(%p %p)\n", this, ret);
-    return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
-}
-
-static inline basic_ios_char* basic_istringstream_char_to_basic_ios(basic_istringstream_char *ptr)
-{
-    return (basic_ios_char*)((char*)ptr+basic_istringstream_char_vbtable[1]);
-}
-
-static inline basic_istringstream_char* basic_istringstream_char_from_basic_ios(basic_ios_char *ptr)
-{
-    return (basic_istringstream_char*)((char*)ptr-basic_istringstream_char_vbtable[1]);
-}
-
-/* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
-/* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str, 16)
-basic_istringstream_char* __thiscall basic_istringstream_char_ctor_str(basic_istringstream_char *this,
-        const basic_string_char *str, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_istringstream_char_vbtable;
-        basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_char_get_basic_ios(&this->base);
-    }
-
-    basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
-    basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
-/* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode, 12)
-basic_istringstream_char* __thiscall basic_istringstream_char_ctor_mode(
-        basic_istringstream_char *this, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %d %d)\n", this, mode, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_istringstream_char_vbtable;
-        basic_ios = basic_istream_char_get_basic_ios(&this->base);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_char_get_basic_ios(&this->base);
-    }
-
-    basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_in);
-    basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
-    return this;
-}
-
-/* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
-/* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor, 8)
-basic_istringstream_char* __thiscall basic_istringstream_char_ctor(
-        basic_istringstream_char *this, MSVCP_bool virt_init)
-{
-    return basic_istringstream_char_ctor_mode(this, 0, virt_init);
-}
-
-/* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
-/* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor, 4)
-void __thiscall basic_istringstream_char_dtor(basic_ios_char *base)
-{
-    basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_stringbuf_char_dtor(&this->strbuf);
-    basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
-}
-
-/* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
-/* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor, 4)
-void __thiscall basic_istringstream_char_vbase_dtor(basic_istringstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
-    basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor, 8)
-basic_istringstream_char* __thiscall basic_istringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
-{
-    basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_istringstream_char_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_istringstream_char_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?rdbuf@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?rdbuf@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf, 4)
-basic_stringbuf_char* __thiscall basic_istringstream_char_rdbuf(const basic_istringstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_stringbuf_char*)&this->strbuf;
-}
-
-/* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-/* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set, 8)
-void __thiscall basic_istringstream_char_str_set(basic_istringstream_char *this, const basic_string_char *str)
-{
-    TRACE("(%p %p)\n", this, str);
-    basic_stringbuf_char_str_set(&this->strbuf, str);
-}
-
-/* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get, 8)
-basic_string_char* __thiscall basic_istringstream_char_str_get(const basic_istringstream_char *this, basic_string_char *ret)
-{
-    TRACE("(%p %p)\n", this, ret);
-    return basic_stringbuf_char_str_get(&this->strbuf, ret);
-}
-
-static inline basic_ios_wchar* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar *ptr)
-{
-    return (basic_ios_wchar*)((char*)ptr+basic_istringstream_wchar_vbtable[1]);
-}
-
-static inline basic_istringstream_wchar* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
-{
-    return (basic_istringstream_wchar*)((char*)ptr-basic_istringstream_wchar_vbtable[1]);
-}
-
-/* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
-/* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str, 16)
-basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_str(basic_istringstream_wchar *this,
-        const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_istringstream_wchar_vbtable;
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-    }
-
-    basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
-    basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
-/* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str, 16)
-basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_str(basic_istringstream_wchar *this,
-        const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
-{
-    basic_istringstream_wchar_ctor_str(this, str, mode, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
-/* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_mode, 12)
-basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_mode(
-        basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %d %d)\n", this, mode, virt_init);
-
-    if(virt_init) {
-        this->base.vbtable = basic_istringstream_wchar_vbtable;
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
-    }
-
-    basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_in);
-    basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
-/* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode, 12)
-basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_mode(
-        basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
-{
-    basic_istringstream_wchar_ctor_mode(this, mode, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
-    return this;
-}
-
-/* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
-/* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor, 8)
-basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor(
-        basic_istringstream_wchar *this, MSVCP_bool virt_init)
-{
-    return basic_istringstream_wchar_ctor_mode(this, 0, virt_init);
-}
-
-/* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
-/* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor, 8)
-basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor(
-        basic_istringstream_wchar *this, MSVCP_bool virt_init)
-{
-    return basic_istringstream_short_ctor_mode(this, 0, virt_init);
-}
-
-/* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
-/* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
-/* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
-/* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor, 4)
-void __thiscall basic_istringstream_wchar_dtor(basic_ios_wchar *base)
-{
-    basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_stringbuf_wchar_dtor(&this->strbuf);
-    basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
-}
-
-/* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
-/* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
-/* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
-/* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor, 4)
-void __thiscall basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_istringstream_wchar_dtor(basic_istringstream_wchar_to_basic_ios(this));
-    basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vector_dtor, 8)
-basic_istringstream_wchar* __thiscall basic_istringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
-{
-    basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_istringstream_wchar_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_istringstream_wchar_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?rdbuf@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?rdbuf@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?rdbuf@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?rdbuf@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf, 4)
-basic_stringbuf_wchar* __thiscall basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_stringbuf_wchar*)&this->strbuf;
-}
-
-/* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-/* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set, 8)
-void __thiscall basic_istringstream_wchar_str_set(basic_istringstream_wchar *this, const basic_string_wchar *str)
-{
-    TRACE("(%p %p)\n", this, str);
-    basic_stringbuf_wchar_str_set(&this->strbuf, str);
-}
-
-/* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get, 8)
-basic_string_wchar* __thiscall basic_istringstream_wchar_str_get(const basic_istringstream_wchar *this, basic_string_wchar *ret)
-{
-    TRACE("(%p %p)\n", this, ret);
-    return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
-}
-
-static inline basic_ios_char* basic_stringstream_char_to_basic_ios(basic_stringstream_char *ptr)
-{
-    return (basic_ios_char*)((char*)ptr+basic_stringstream_char_vbtable1[1]);
-}
-
-static inline basic_stringstream_char* basic_stringstream_char_from_basic_ios(basic_ios_char *ptr)
-{
-    return (basic_stringstream_char*)((char*)ptr-basic_stringstream_char_vbtable1[1]);
-}
-
-/* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
-/* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str, 16)
-basic_stringstream_char* __thiscall basic_stringstream_char_ctor_str(basic_stringstream_char *this,
-        const basic_string_char *str, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
-
-    if(virt_init) {
-        this->base.base1.vbtable = basic_stringstream_char_vbtable1;
-        this->base.base2.vbtable = basic_stringstream_char_vbtable2;
-        basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-    }
-
-    basic_stringbuf_char_ctor_str(&this->strbuf, str, mode);
-    basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
-    return this;
-}
-
-/* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
-/* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode, 12)
-basic_stringstream_char* __thiscall basic_stringstream_char_ctor_mode(
-        basic_stringstream_char *this, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_char *basic_ios;
-
-    TRACE("(%p %d %d)\n", this, mode, virt_init);
-
-    if(virt_init) {
-        this->base.base1.vbtable = basic_stringstream_char_vbtable1;
-        this->base.base2.vbtable = basic_stringstream_char_vbtable2;
-        basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-        basic_ios_char_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
-    }
-
-    basic_stringbuf_char_ctor_mode(&this->strbuf, mode);
-    basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
-    return this;
-}
-
-/* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
-/* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor, 8)
-basic_stringstream_char* __thiscall basic_stringstream_char_ctor(
-        basic_stringstream_char *this, MSVCP_bool virt_init)
-{
-    return basic_stringstream_char_ctor_mode(
-            this, OPENMODE_out|OPENMODE_in, virt_init);
-}
-
-/* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
-/* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor, 4)
-void __thiscall basic_stringstream_char_dtor(basic_ios_char *base)
-{
-    basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
-    basic_stringbuf_char_dtor(&this->strbuf);
-}
-
-/* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
-/* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor, 4)
-void __thiscall basic_stringstream_char_vbase_dtor(basic_stringstream_char *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
-    basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor, 8)
-basic_stringstream_char* __thiscall basic_stringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
-{
-    basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_stringstream_char_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_stringstream_char_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?rdbuf@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?rdbuf@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf, 4)
-basic_stringbuf_char* __thiscall basic_stringstream_char_rdbuf(const basic_stringstream_char *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_stringbuf_char*)&this->strbuf;
-}
-
-/* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-/* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set, 8)
-void __thiscall basic_stringstream_char_str_set(basic_stringstream_char *this, const basic_string_char *str)
-{
-    TRACE("(%p %p)\n", this, str);
-    basic_stringbuf_char_str_set(&this->strbuf, str);
-}
-
-/* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get, 8)
-basic_string_char* __thiscall basic_stringstream_char_str_get(const basic_stringstream_char *this, basic_string_char *ret)
-{
-    TRACE("(%p %p)\n", this, ret);
-    return basic_stringbuf_char_str_get(&this->strbuf, ret);
-}
-
-static inline basic_ios_wchar* basic_stringstream_wchar_to_basic_ios(basic_stringstream_wchar *ptr)
-{
-    return (basic_ios_wchar*)((char*)ptr+basic_stringstream_wchar_vbtable1[1]);
-}
-
-static inline basic_stringstream_wchar* basic_stringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
-{
-    return (basic_stringstream_wchar*)((char*)ptr-basic_stringstream_wchar_vbtable1[1]);
-}
-
-/* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
-/* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_str, 16)
-basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor_str(basic_stringstream_wchar *this,
-        const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
-
-    if(virt_init) {
-        this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
-        this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-    }
-
-    basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode);
-    basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
-/* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str, 16)
-basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_str(basic_stringstream_wchar *this,
-        const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
-{
-    basic_stringstream_wchar_ctor_str(this, str, mode, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
-    return this;
-}
-
-/* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
-/* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_mode, 12)
-basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor_mode(
-        basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
-{
-    basic_ios_wchar *basic_ios;
-
-    TRACE("(%p %d %d)\n", this, mode, virt_init);
-
-    if(virt_init) {
-        this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
-        this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-        basic_ios_wchar_ctor(basic_ios);
-    }else {
-        basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
-    }
-
-    basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode);
-    basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
-    basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
-    return this;
-}
-
-/* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
-/* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode, 12)
-basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_mode(
-        basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
-{
-    basic_stringstream_wchar_ctor_mode(this, mode, virt_init);
-    basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
-    return this;
-}
-
-/* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
-/* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor, 8)
-basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor(
-        basic_stringstream_wchar *this, MSVCP_bool virt_init)
-{
-    return basic_stringstream_wchar_ctor_mode(
-            this, OPENMODE_out|OPENMODE_in, virt_init);
-}
-
-/* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
-/* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor, 8)
-basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor(
-        basic_stringstream_wchar *this, MSVCP_bool virt_init)
-{
-    return basic_stringstream_short_ctor_mode(
-            this, OPENMODE_out|OPENMODE_in, virt_init);
-}
-
-/* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
-/* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
-/* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
-/* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor, 4)
-void __thiscall basic_stringstream_wchar_dtor(basic_ios_wchar *base)
-{
-    basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p)\n", this);
-
-    basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
-    basic_stringbuf_wchar_dtor(&this->strbuf);
-}
-
-/* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
-/* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
-/* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
-/* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vbase_dtor, 4)
-void __thiscall basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-
-    basic_stringstream_wchar_dtor(basic_stringstream_wchar_to_basic_ios(this));
-    basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
-}
-
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vector_dtor, 8)
-basic_stringstream_wchar* __thiscall basic_stringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
-{
-    basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
-
-    TRACE("(%p %x)\n", this, flags);
-
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            basic_stringstream_wchar_vbase_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        basic_stringstream_wchar_vbase_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?rdbuf@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?rdbuf@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?rdbuf@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?rdbuf@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_rdbuf, 4)
-basic_stringbuf_wchar* __thiscall basic_stringstream_wchar_rdbuf(const basic_stringstream_wchar *this)
-{
-    TRACE("(%p)\n", this);
-    return (basic_stringbuf_wchar*)&this->strbuf;
-}
-
-/* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-/* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_set, 8)
-void __thiscall basic_stringstream_wchar_str_set(basic_stringstream_wchar *this, const basic_string_wchar *str)
-{
-    TRACE("(%p %p)\n", this, str);
-    basic_stringbuf_wchar_str_set(&this->strbuf, str);
-}
-
-/* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_get, 8)
-basic_string_wchar* __thiscall basic_stringstream_wchar_str_get(const basic_stringstream_wchar *this, basic_string_wchar *ret)
-{
-    TRACE("(%p %p)\n", this, ret);
-    return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
-}
-
-/* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
-/* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf__Init, 24)
-void __thiscall strstreambuf__Init(strstreambuf *this, streamsize len, char *g, char *p, int mode)
-{
-    TRACE("(%p %s %p %p %d)\n", this, wine_dbgstr_longlong(len), g, p, mode);
-
-    this->minsize = 32;
-    this->endsave = NULL;
-    this->strmode = mode;
-    this->palloc = NULL;
-    this->pfree = NULL;
-
-    if(!g) {
-        this->strmode |= STRSTATE_Dynamic;
-        if(len > this->minsize)
-            this->minsize = len;
-        this->seekhigh = NULL;
-        return;
-    }
-
-    if(len < 0)
-        len = INT_MAX;
-    else if(!len)
-        len = strlen(g);
-
-    this->seekhigh = g+len;
-    basic_streambuf_char_setg(&this->base, g, g, p ? p : this->seekhigh);
-    if(p)
-        basic_streambuf_char_setp(&this->base, p, this->seekhigh);
-}
-
-/* ??0strstreambuf@std@@QAE@PACH0@Z */
-/* ??0strstreambuf@std@@QEAA@PEAC_J0@Z */
-/* ??0strstreambuf@std@@QAE@PADH0@Z */
-/* ??0strstreambuf@std@@QEAA@PEAD_J0@Z */
-/* ??0strstreambuf@std@@QAE@PAEH0@Z */
-/* ??0strstreambuf@std@@QEAA@PEAE_J0@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_get_put, 20)
-strstreambuf* __thiscall strstreambuf_ctor_get_put(strstreambuf *this, char *g, streamsize len, char *p)
-{
-    TRACE("(%p %p %s %p)\n", this, g, wine_dbgstr_longlong(len), p);
-
-    basic_streambuf_char_ctor(&this->base);
-    this->base.vtable = &MSVCP_strstreambuf_vtable;
-
-    strstreambuf__Init(this, len, g, p, 0);
-    return this;
-}
-
-/* ??0strstreambuf@std@@QAE@H@Z */
-/* ??0strstreambuf@std@@QEAA@_J@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_len, 12)
-strstreambuf* __thiscall strstreambuf_ctor_len(strstreambuf *this, streamsize len)
-{
-    return strstreambuf_ctor_get_put(this, NULL, len, NULL);
-}
-
-/* ??0strstreambuf@std@@QAE@P6APAXI@ZP6AXPAX@Z@Z */
-/* ??0strstreambuf@std@@QEAA@P6APEAX_K@ZP6AXPEAX@Z@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_alloc, 12)
-strstreambuf* __thiscall strstreambuf_ctor_alloc(strstreambuf *this, void* (__cdecl *palloc)(MSVCP_size_t), void (__cdecl *pfree)(void*))
-{
-    TRACE("(%p %p %p)\n", this, palloc, pfree);
-
-    strstreambuf_ctor_get_put(this, NULL, 0, NULL);
-    this->palloc = palloc;
-    this->pfree = pfree;
-    return this;
-}
-
-/* ??0strstreambuf@std@@QAE@PBCH@Z */
-/* ??0strstreambuf@std@@QEAA@PEBC_J@Z */
-/* ??0strstreambuf@std@@QAE@PBDH@Z */
-/* ??0strstreambuf@std@@QEAA@PEBD_J@Z */
-/* ??0strstreambuf@std@@QAE@PBEH@Z */
-/* ??0strstreambuf@std@@QEAA@PEBE_J@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_get, 16)
-strstreambuf* __thiscall strstreambuf_ctor_get(strstreambuf *this, const char *g, streamsize len)
-{
-    TRACE("(%p %p %s)\n", this, g, wine_dbgstr_longlong(len));
-
-    strstreambuf_ctor_get_put(this, NULL, 0, NULL);
-    this->strmode |= STRSTATE_Constant;
-    return this;
-}
-
-/* ??_Fstrstreambuf@std@@QAEXXZ */
-/* ??_Fstrstreambuf@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(strstreambuf_ctor, 4)
-strstreambuf* __thiscall strstreambuf_ctor(strstreambuf *this)
-{
-    return strstreambuf_ctor_get_put(this, NULL, 0, NULL);
-}
-
-/* ?_Tidy@strstreambuf@std@@IAEXXZ */
-/* ?_Tidy@strstreambuf@std@@IEAAXXZ */
-DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy, 4)
-void __thiscall strstreambuf__Tidy(strstreambuf *this)
-{
-    TRACE("(%p)\n", this);
-
-    if((this->strmode & STRSTATE_Allocated) && !(this->strmode & STRSTATE_Frozen)) {
-        if(this->pfree)
-            this->pfree(basic_streambuf_char_eback(&this->base));
-        else
-            MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
-    }
-
-    this->endsave = NULL;
-    this->seekhigh = NULL;
-    this->strmode &= ~(STRSTATE_Allocated | STRSTATE_Frozen);
-    basic_streambuf_char_setg(&this->base, NULL, NULL, NULL);
-    basic_streambuf_char_setp(&this->base, NULL, NULL);
-}
-
-/* ??1strstreambuf@std@@UAE@XZ */
-/* ??1strstreambuf@std@@UEAA@XZ */
-DEFINE_THISCALL_WRAPPER(strstreambuf_dtor, 4)
-void __thiscall strstreambuf_dtor(strstreambuf *this)
-{
-    TRACE("(%p)\n", this);
-
-    strstreambuf__Tidy(this);
-    basic_streambuf_char_dtor(&this->base);
-}
-
-DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor, 8)
-strstreambuf* __thiscall strstreambuf_vector_dtor(strstreambuf *this, unsigned int flags)
-{
-    TRACE("(%p %x)\n", this, flags);
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            strstreambuf_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        strstreambuf_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
-/* ?freeze@strstreambuf@std@@QAEX_N@Z */
-/* ?freeze@strstreambuf@std@@QEAAX_N@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_freeze, 8)
-void __thiscall strstreambuf_freeze(strstreambuf *this, MSVCP_bool freeze)
-{
-    TRACE("(%p %d)\n", this, freeze);
-
-    if(!freeze == !(this->strmode *STRSTATE_Frozen))
-        return;
-
-    if(freeze) {
-        this->strmode |= STRSTATE_Frozen;
-        this->endsave = basic_streambuf_char_epptr(&this->base);
-        basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
-                basic_streambuf_char_pptr(&this->base), basic_streambuf_char_eback(&this->base));
-    }else {
-        this->strmode &= ~STRSTATE_Frozen;
-        basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
-                basic_streambuf_char_pptr(&this->base), this->endsave);
-    }
-}
-
-/* ?str@strstreambuf@std@@QAEPADXZ */
-/* ?str@strstreambuf@std@@QEAAPEADXZ */
-DEFINE_THISCALL_WRAPPER(strstreambuf_str, 4)
-char* __thiscall strstreambuf_str(strstreambuf *this)
-{
-    TRACE("(%p)\n", this);
-
-    strstreambuf_freeze(this, TRUE);
-    return basic_streambuf_char_gptr(&this->base);
-}
-
-/* ?pcount@strstreambuf@std@@QBEHXZ */
-/* ?pcount@strstreambuf@std@@QEBA_JXZ */
-DEFINE_THISCALL_WRAPPER(strstreambuf_pcount, 4)
-streamsize __thiscall strstreambuf_pcount(const strstreambuf *this)
-{
-    char *ppos = basic_streambuf_char_pptr(&this->base);
-
-    TRACE("(%p)\n", this);
-
-    return ppos ? ppos-basic_streambuf_char_pbase(&this->base) : 0;
-}
-
-/* ?overflow@strstreambuf@std@@MAEHH@Z */
-/* ?overflow@strstreambuf@std@@MEAAHH@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_overflow, 8)
-int __thiscall strstreambuf_overflow(strstreambuf *this, int c)
-{
-    MSVCP_size_t old_size, size;
-    char *ptr, *buf;
-
-    TRACE("(%p %d)\n", this, c);
-
-    if(c == EOF)
-        return !EOF;
-
-    if(this->strmode & STRSTATE_Frozen)
-        return EOF;
-
-    ptr = basic_streambuf_char_pptr(&this->base);
-    if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
-        return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
-
-    if(!(this->strmode & STRSTATE_Dynamic) || (this->strmode & STRSTATE_Constant))
-        return EOF;
-
-    ptr = basic_streambuf_char_eback(&this->base);
-    old_size = ptr ? basic_streambuf_char_epptr(&this->base) - ptr : 0;
-
-    size = old_size + old_size/2;
-    if(size < this->minsize)
-        size = this->minsize;
-
-    if(this->palloc)
-        buf = this->palloc(size);
-    else
-        buf = MSVCRT_operator_new(size);
-    if(!buf)
-        return EOF;
-
-    memcpy(buf, ptr, old_size);
-    if(this->strmode & STRSTATE_Allocated) {
-        if(this->pfree)
-            this->pfree(ptr);
-        else
-            MSVCRT_operator_delete(ptr);
-    }
-
-    this->strmode |= STRSTATE_Allocated;
-    if(!old_size) {
-        this->seekhigh = buf;
-        basic_streambuf_char_setp(&this->base, buf, buf+size);
-        basic_streambuf_char_setg(&this->base, buf, buf, buf);
-    }else {
-        this->seekhigh = this->seekhigh-ptr+buf;
-        basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base)-ptr+buf,
-                basic_streambuf_char_pptr(&this->base)-ptr+buf, buf+size);
-        basic_streambuf_char_setg(&this->base, buf, basic_streambuf_char_gptr(&this->base)-ptr+buf,
-                basic_streambuf_char_pptr(&this->base));
-    }
-
-    return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
-}
-
-/* ?pbackfail@strstreambuf@std@@MAEHH@Z */
-/* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail, 8)
-int __thiscall strstreambuf_pbackfail(strstreambuf *this, int c)
-{
-    char *ptr = basic_streambuf_char_gptr(&this->base);
-
-    TRACE("(%p %d)\n", this, c);
-
-    if(ptr<=basic_streambuf_char_eback(&this->base)
-            || ((this->strmode & STRSTATE_Constant) && c!=ptr[-1]))
-        return EOF;
-
-    basic_streambuf_char_gbump(&this->base, -1);
-    if(c == EOF)
-        return !EOF;
-    if(this->strmode & STRSTATE_Constant)
-        return (unsigned char)c;
-
-    return (unsigned char)(ptr[0] = c);
-}
-
-/* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JHH@Z */
-/* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff, 24)
-fpos_int* __thiscall strstreambuf_seekoff(strstreambuf *this, fpos_int *ret, streamoff off, int way, int mode)
-{
-    char *eback = basic_streambuf_char_eback(&this->base);
-    char *pptr = basic_streambuf_char_pptr(&this->base);
-    char *gptr = basic_streambuf_char_gptr(&this->base);
-
-    TRACE("(%p %p %s %d %d)\n", this, ret, wine_dbgstr_longlong(off), way, mode);
-
-    ret->off = 0;
-    ret->state = 0;
-
-    if(pptr > this->seekhigh)
-        this->seekhigh = pptr;
-
-    if((mode & OPENMODE_in) && gptr) {
-        if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
-            off += gptr-eback;
-        else if(way == SEEKDIR_end)
-            off += this->seekhigh-eback;
-        else if(way != SEEKDIR_beg)
-            off = -1;
-
-        if(off<0 || off>this->seekhigh-eback) {
-            off = -1;
-        }else {
-            basic_streambuf_char_gbump(&this->base, eback-gptr+off);
-            if((mode & OPENMODE_out) && pptr) {
-                basic_streambuf_char_setp_next(&this->base, eback,
-                        gptr, basic_streambuf_char_epptr(&this->base));
-            }
-        }
-    }else if((mode & OPENMODE_out) && pptr) {
-        if(way == SEEKDIR_cur)
-            off += pptr-eback;
-        else if(way == SEEKDIR_end)
-            off += this->seekhigh-eback;
-        else if(way != SEEKDIR_beg)
-            off = -1;
-
-         if(off<0 || off>this->seekhigh-eback)
-             off = -1;
-         else
-             basic_streambuf_char_pbump(&this->base, eback-pptr+off);
-    }else {
-        off = -1;
-    }
-
-    ret->pos = off;
-    return ret;
-}
-
-/* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
-/* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
-DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos, 36)
-fpos_int* __thiscall strstreambuf_seekpos(strstreambuf *this, fpos_int *ret, fpos_int pos, int mode)
-{
-    TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
-
-    if(pos.off==0 && pos.pos==-1 && pos.state==0) {
-        *ret = pos;
-        return ret;
-    }
-
-    return strstreambuf_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
-}
-
-/* ?underflow@strstreambuf@std@@MAEHXZ */
-/* ?underflow@strstreambuf@std@@MEAAHXZ */
-DEFINE_THISCALL_WRAPPER(strstreambuf_underflow, 4)
-int __thiscall strstreambuf_underflow(strstreambuf *this)
-{
-    char *gptr = basic_streambuf_char_gptr(&this->base);
-    char *pptr;
-
-    TRACE("(%p)\n", this);
-
-    if(!gptr)
-        return EOF;
-
-    if(gptr < basic_streambuf_char_egptr(&this->base))
-        return (unsigned char)(*gptr);
-
-    pptr = basic_streambuf_char_gptr(&this->base);
-    if(pptr > this->seekhigh)
-        this->seekhigh = pptr;
-
-    if(this->seekhigh <= gptr)
-        return EOF;
-
-    basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base),
-            gptr, this->seekhigh);
-    return (unsigned char)(*gptr);
-}
-
 static void __cdecl setprecision_func(ios_base *base, streamsize prec)
 {
     ios_base_precision_set(base, prec);
@@ -12486,9 +8143,6 @@
     init_basic_filebuf_char_rtti(base);
     init_basic_filebuf_wchar_rtti(base);
     init_basic_filebuf_short_rtti(base);
-    init_basic_stringbuf_char_rtti(base);
-    init_basic_stringbuf_wchar_rtti(base);
-    init_basic_stringbuf_short_rtti(base);
     init_basic_ostream_char_rtti(base);
     init_basic_ostream_wchar_rtti(base);
     init_basic_ostream_short_rtti(base);
@@ -12498,25 +8152,6 @@
     init_basic_iostream_char_rtti(base);
     init_basic_iostream_wchar_rtti(base);
     init_basic_iostream_short_rtti(base);
-    init_basic_ofstream_char_rtti(base);
-    init_basic_ofstream_wchar_rtti(base);
-    init_basic_ofstream_short_rtti(base);
-    init_basic_ifstream_char_rtti(base);
-    init_basic_ifstream_wchar_rtti(base);
-    init_basic_ifstream_short_rtti(base);
-    init_basic_fstream_char_rtti(base);
-    init_basic_fstream_wchar_rtti(base);
-    init_basic_fstream_short_rtti(base);
-    init_basic_ostringstream_char_rtti(base);
-    init_basic_ostringstream_wchar_rtti(base);
-    init_basic_ostringstream_short_rtti(base);
-    init_basic_istringstream_char_rtti(base);
-    init_basic_istringstream_wchar_rtti(base);
-    init_basic_istringstream_short_rtti(base);
-    init_basic_stringstream_char_rtti(base);
-    init_basic_stringstream_wchar_rtti(base);
-    init_basic_stringstream_short_rtti(base);
-    init_strstreambuf_rtti(base);
 #endif
 
     basic_filebuf_char_ctor_file(&filebuf_char_stdin, stdin);
diff --git a/dlls/msvcp100/locale.c b/dlls/msvcp100/locale.c
index ccf6297..d1832ea 100644
--- a/dlls/msvcp100/locale.c
+++ b/dlls/msvcp100/locale.c
@@ -41,7 +41,7 @@
 void* __cdecl _Gettnames(void);
 unsigned int __cdecl ___lc_codepage_func(void);
 LCID* __cdecl ___lc_handle_func(void);
-const locale_facet* __thiscall locale__Getfacet(const locale*, MSVCP_size_t);
+static const locale_facet* locale__Getfacet(const locale*, MSVCP_size_t);
 
 typedef int category;
 
@@ -207,7 +207,6 @@
 } facets_elem;
 static struct list lazy_facets = LIST_INIT(lazy_facets);
 
-/* Not exported from msvcp90 */
 /* ?facet_Register@facet@locale@std@@CAXPAV123@@Z */
 /* ?facet_Register@facet@locale@std@@CAXPEAV123@@Z */
 static void __cdecl locale_facet_register(locale_facet *add)
@@ -223,16 +222,6 @@
 }
 
 /* Not exported from msvcp90 */
-/* ?_Register@facet@locale@std@@QAEXXZ */
-/* ?_Register@facet@locale@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(locale_facet__Register, 4)
-void __thiscall locale_facet__Register(locale_facet *this)
-{
-    TRACE("(%p)\n", this);
-    locale_facet_register(this);
-}
-
-/* Not exported from msvcp90 */
 /* ??_7facet@locale@std@@6B@ */
 extern const vtable_ptr MSVCP_locale_facet_vtable;
 
@@ -439,14 +428,6 @@
     return _Locinfo__Locinfo_ctor_cat_cstr(this, category, locstr);
 }
 
-/* ??0_Locinfo@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z */
-/* ??0_Locinfo@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z */
-DEFINE_THISCALL_WRAPPER(_Locinfo_ctor_bstr, 8)
-_Locinfo* __thiscall _Locinfo_ctor_bstr(_Locinfo *this, const basic_string_char *locstr)
-{
-    return _Locinfo__Locinfo_ctor_cat_cstr(this, 1/*FIXME*/, MSVCP_basic_string_char_c_str(locstr));
-}
-
 /* ?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z */
 /* ?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z */
 _Locinfo* __cdecl _Locinfo__Locinfo_ctor_cstr(_Locinfo *locinfo, const char *locstr)
@@ -685,17 +666,6 @@
     return localeconv();
 }
 
-/* ?_Getname@_Locinfo@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?_Getname@_Locinfo@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(_Locinfo__Getname, 8)
-basic_string_char* __thiscall _Locinfo__Getname(const _Locinfo *this, basic_string_char *ret)
-{
-    TRACE("(%p)\n", this);
-
-    MSVCP_basic_string_char_copy_ctor(ret, &this->newlocname);
-    return ret;
-}
-
 /* ?_Gettnames@_Locinfo@std@@QBE?AV_Timevec@2@XZ */
 /* ?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ */
 DEFINE_THISCALL_WRAPPER(_Locinfo__Gettnames, 8)
@@ -713,58 +683,9 @@
 /* ??_7?$collate@D@std@@6B@ */
 extern const vtable_ptr MSVCP_collate_char_vtable;
 
-/* ?_Init@?$collate@D@std@@IAEXABV_Locinfo@2@@Z */
-/* ?_Init@?$collate@D@std@@IEAAXAEBV_Locinfo@2@@Z */
-DEFINE_THISCALL_WRAPPER(collate_char__Init, 8)
-void __thiscall collate_char__Init(collate *this, const _Locinfo *locinfo)
-{
-    TRACE("(%p %p)\n", this, locinfo);
-    _Locinfo__Getcoll(locinfo, &this->coll);
-}
-
-/* ??0?$collate@D@std@@IAE@PBDI@Z */
-/* ??0?$collate@D@std@@IEAA@PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_char_ctor_name, 12)
-collate* __thiscall collate_char_ctor_name(collate *this, const char *name, MSVCP_size_t refs)
-{
-    _Locinfo locinfo;
-
-    TRACE("(%p %s %lu)\n", this, name, refs);
-
-    locale_facet_ctor_refs(&this->facet, refs);
-    this->facet.vtable = &MSVCP_collate_char_vtable;
-
-    _Locinfo_ctor_cstr(&locinfo, name);
-    collate_char__Init(this, &locinfo);
-    _Locinfo_dtor(&locinfo);
-    return this;
-}
-
-/* ??0?$collate@D@std@@QAE@ABV_Locinfo@1@I@Z */
-/* ??0?$collate@D@std@@QEAA@AEBV_Locinfo@1@_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_char_ctor_locinfo, 12)
-collate* __thiscall collate_char_ctor_locinfo(collate *this, _Locinfo *locinfo, MSVCP_size_t refs)
-{
-    TRACE("(%p %p %lu)\n", this, locinfo, refs);
-
-    locale_facet_ctor_refs(&this->facet, refs);
-    this->facet.vtable = &MSVCP_collate_char_vtable;
-    collate_char__Init(this, locinfo);
-    return this;
-}
-
-/* ??0?$collate@D@std@@QAE@I@Z */
-/* ??0?$collate@D@std@@QEAA@_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_char_ctor_refs, 8)
-collate* __thiscall collate_char_ctor_refs(collate *this, MSVCP_size_t refs)
-{
-    return collate_char_ctor_name(this, "C", refs);
-}
-
 /* ??1?$collate@D@std@@MAE@XZ */
 /* ??1?$collate@D@std@@MEAA@XZ */
-DEFINE_THISCALL_WRAPPER(collate_char_dtor, 4)
-void __thiscall collate_char_dtor(collate *this)
+static void collate_char_dtor(collate *this)
 {
     TRACE("(%p)\n", this);
 }
@@ -789,14 +710,6 @@
     return this;
 }
 
-/* ??_F?$collate@D@std@@QAEXXZ */
-/* ??_F?$collate@D@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(collate_char_ctor, 4)
-collate* __thiscall collate_char_ctor(collate *this)
-{
-    return collate_char_ctor_name(this, "C", 0);
-}
-
 /* _Strcoll */
 int __cdecl _Strcoll(const char *first1, const char *last1, const char *first2,
         const char *last2, const _Collvec *coll)
@@ -825,16 +738,6 @@
     return _Strcoll(first1, last1, first2, last2, &this->coll);
 }
 
-/* ?compare@?$collate@D@std@@QBEHPBD000@Z */
-/* ?compare@?$collate@D@std@@QEBAHPEBD000@Z */
-DEFINE_THISCALL_WRAPPER(collate_char_compare, 20)
-int __thiscall collate_char_compare(const collate *this, const char *first1,
-        const char *last1, const char *first2, const char *last2)
-{
-    TRACE("(%p %p %p %p %p)\n", this, first1, last1, first2, last2);
-    return call_collate_char_do_compare(this, first1, last1, first2, last2);
-}
-
 /* ?do_hash@?$collate@D@std@@MBEJPBD0@Z */
 /* ?do_hash@?$collate@D@std@@MEBAJPEBD0@Z */
 DEFINE_THISCALL_WRAPPER(collate_char_do_hash, 12)
@@ -852,16 +755,6 @@
     return ret;
 }
 
-/* ?hash@?$collate@D@std@@QBEJPBD0@Z */
-/* ?hash@?$collate@D@std@@QEBAJPEBD0@Z */
-DEFINE_THISCALL_WRAPPER(collate_char_hash, 12)
-LONG __thiscall collate_char_hash(const collate *this,
-        const char *first, const char *last)
-{
-    TRACE("(%p %p %p)\n", this, first, last);
-    return call_collate_char_do_hash(this, first, last);
-}
-
 /* ?do_transform@?$collate@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD0@Z */
 /* ?do_transform@?$collate@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PEBD0@Z */
 DEFINE_THISCALL_WRAPPER(collate_char_do_transform, 16)
@@ -872,16 +765,6 @@
     return ret;
 }
 
-/* ?transform@?$collate@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD0@Z */
-/* ?transform@?$collate@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PEBD0@Z */
-DEFINE_THISCALL_WRAPPER(collate_char_transform, 16)
-basic_string_char* __thiscall collate_char_transform(const collate *this,
-        basic_string_char *ret, const char *first, const char *last)
-{
-    FIXME("(%p %p %p) stub\n", this, first, last);
-    return ret;
-}
-
 /* ?id@?$collate@_W@std@@2V0locale@2@A */
 locale_id collate_wchar_id = {0};
 /* ?id@?$collate@G@std@@2V0locale@2@A */
@@ -892,92 +775,11 @@
 /* ??_7?$collate@G@std@@6B@ */
 extern const vtable_ptr MSVCP_collate_short_vtable;
 
-/* ?_Init@?$collate@_W@std@@IAEXABV_Locinfo@2@@Z */
-/* ?_Init@?$collate@_W@std@@IEAAXAEBV_Locinfo@2@@Z */
-/* ?_Init@?$collate@G@std@@IAEXABV_Locinfo@2@@Z */
-/* ?_Init@?$collate@G@std@@IEAAXAEBV_Locinfo@2@@Z */
-DEFINE_THISCALL_WRAPPER(collate_wchar__Init, 8)
-void __thiscall collate_wchar__Init(collate *this, const _Locinfo *locinfo)
-{
-    TRACE("(%p %p)\n", this, locinfo);
-    _Locinfo__Getcoll(locinfo, &this->coll);
-}
-
-/* ??0?$collate@_W@std@@IAE@PBDI@Z */
-/* ??0?$collate@_W@std@@IEAA@PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_wchar_ctor_name, 12)
-collate* __thiscall collate_wchar_ctor_name(collate *this, const char *name, MSVCP_size_t refs)
-{
-    _Locinfo locinfo;
-
-    TRACE("(%p %s %lu)\n", this, name, refs);
-
-    locale_facet_ctor_refs(&this->facet, refs);
-    this->facet.vtable = &MSVCP_collate_wchar_vtable;
-
-    _Locinfo_ctor_cstr(&locinfo, name);
-    collate_wchar__Init(this, &locinfo);
-    _Locinfo_dtor(&locinfo);
-    return this;
-}
-
-/* ??0?$collate@G@std@@IAE@PBDI@Z */
-/* ??0?$collate@G@std@@IEAA@PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_short_ctor_name, 12)
-collate* __thiscall collate_short_ctor_name(collate *this, const char *name, MSVCP_size_t refs)
-{
-    collate *ret = collate_wchar_ctor_name(this, name, refs);
-    ret->facet.vtable = &MSVCP_collate_short_vtable;
-    return ret;
-}
-
-/* ??0?$collate@_W@std@@QAE@ABV_Locinfo@1@I@Z */
-/* ??0?$collate@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_wchar_ctor_locinfo, 12)
-collate* __thiscall collate_wchar_ctor_locinfo(collate *this, _Locinfo *locinfo, MSVCP_size_t refs)
-{
-    TRACE("(%p %p %lu)\n", this, locinfo, refs);
-
-    locale_facet_ctor_refs(&this->facet, refs);
-    this->facet.vtable = &MSVCP_collate_wchar_vtable;
-    collate_wchar__Init(this, locinfo);
-    return this;
-}
-
-/* ??0?$collate@G@std@@QAE@ABV_Locinfo@1@I@Z */
-/* ??0?$collate@G@std@@QEAA@AEBV_Locinfo@1@_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_short_ctor_locinfo, 12)
-collate* __thiscall collate_short_ctor_locinfo(collate *this, _Locinfo *locinfo, MSVCP_size_t refs)
-{
-    collate *ret = collate_wchar_ctor_locinfo(this, locinfo, refs);
-    ret->facet.vtable = &MSVCP_collate_short_vtable;
-    return ret;
-}
-
-/* ??0?$collate@_W@std@@QAE@I@Z */
-/* ??0?$collate@_W@std@@QEAA@_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_wchar_ctor_refs, 8)
-collate* __thiscall collate_wchar_ctor_refs(collate *this, MSVCP_size_t refs)
-{
-    return collate_wchar_ctor_name(this, "C", refs);
-}
-
-/* ??0?$collate@G@std@@QAE@I@Z */
-/* ??0?$collate@G@std@@QEAA@_K@Z */
-DEFINE_THISCALL_WRAPPER(collate_short_ctor_refs, 8)
-collate* __thiscall collate_short_ctor_refs(collate *this, MSVCP_size_t refs)
-{
-    collate *ret = collate_wchar_ctor_refs(this, refs);
-    ret->facet.vtable = &MSVCP_collate_short_vtable;
-    return ret;
-}
-
 /* ??1?$collate@_W@std@@MAE@XZ */
 /* ??1?$collate@_W@std@@MEAA@XZ */
 /* ??1?$collate@G@std@@MAE@XZ */
 /* ??1?$collate@G@std@@MEAA@XZ */
-DEFINE_THISCALL_WRAPPER(collate_wchar_dtor, 4)
-void __thiscall collate_wchar_dtor(collate *this)
+static void collate_wchar_dtor(collate *this)
 {
     TRACE("(%p)\n", this);
 }
@@ -1002,24 +804,6 @@
     return this;
 }
 
-/* ??_F?$collate@_W@std@@QAEXXZ */
-/* ??_F?$collate@_W@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(collate_wchar_ctor, 4)
-collate* __thiscall collate_wchar_ctor(collate *this)
-{
-    return collate_wchar_ctor_name(this, "C", 0);
-}
-
-/* ??_F?$collate@G@std@@QAEXXZ */
-/* ??_F?$collate@G@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(collate_short_ctor, 4)
-collate* __thiscall collate_short_ctor(collate *this)
-{
-    collate *ret = collate_wchar_ctor(this);
-    ret->facet.vtable = &MSVCP_collate_short_vtable;
-    return ret;
-}
-
 /* _Wcscoll */
 int __cdecl _Wcscoll(const wchar_t *first1, const wchar_t *last1, const wchar_t *first2,
         const wchar_t *last2, const _Collvec *coll)
@@ -1050,18 +834,6 @@
     return _Wcscoll(first1, last1, first2, last2, &this->coll);
 }
 
-/* ?compare@?$collate@_W@std@@QBEHPB_W000@Z */
-/* ?compare@?$collate@_W@std@@QEBAHPEB_W000@Z */
-/* ?compare@?$collate@G@std@@QBEHPBG000@Z */
-/* ?compare@?$collate@G@std@@QEBAHPEBG000@Z */
-DEFINE_THISCALL_WRAPPER(collate_wchar_compare, 20)
-int __thiscall collate_wchar_compare(const collate *this, const wchar_t *first1,
-        const wchar_t *last1, const wchar_t *first2, const wchar_t *last2)
-{
-    TRACE("(%p %p %p %p %p)\n", this, first1, last1, first2, last2);
-    return call_collate_wchar_do_compare(this, first1, last1, first2, last2);
-}
-
 /* ?do_hash@?$collate@_W@std@@MBEJPB_W0@Z */
 /* ?do_hash@?$collate@_W@std@@MEBAJPEB_W0@Z */
 /* ?do_hash@?$collate@G@std@@MBEJPBG0@Z */
@@ -1081,18 +853,6 @@
     return ret;
 }
 
-/* ?hash@?$collate@_W@std@@QBEJPB_W0@Z */
-/* ?hash@?$collate@_W@std@@QEBAJPEB_W0@Z */
-/* ?hash@?$collate@G@std@@QBEJPBG0@Z */
-/* ?hash@?$collate@G@std@@QEBAJPEBG0@Z */
-DEFINE_THISCALL_WRAPPER(collate_wchar_hash, 12)
-LONG __thiscall collate_wchar_hash(const collate *this,
-        const wchar_t *first, const wchar_t *last)
-{
-    TRACE("(%p %p %p)\n", this, first, last);
-    return call_collate_wchar_do_hash(this, first, last);
-}
-
 /* ?do_transform@?$collate@_W@std@@MBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PB_W0@Z */
 /* ?do_transform@?$collate@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z */
 /* ?do_transform@?$collate@G@std@@MBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PBG0@Z */
@@ -1105,18 +865,6 @@
     return ret;
 }
 
-/* ?transform@?$collate@_W@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PB_W0@Z */
-/* ?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z */
-/* ?transform@?$collate@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PBG0@Z */
-/* ?transform@?$collate@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PEBG0@Z */
-DEFINE_THISCALL_WRAPPER(collate_wchar_transform, 16)
-basic_string_wchar* __thiscall collate_wchar_transform(const collate *this,
-        basic_string_wchar *ret, const wchar_t *first, const wchar_t *last)
-{
-    FIXME("(%p %p %p) stub\n", this, first, last);
-    return ret;
-}
-
 /* ??_7ctype_base@std@@6B@ */
 extern const vtable_ptr MSVCP_ctype_base_vtable;
 
@@ -1170,12 +918,6 @@
     return this;
 }
 
-/* ?_Xran@ctype_base@std@@KAXXZ */
-static void __cdecl ctype_base__Xran(void)
-{
-    throw_exception(EXCEPTION_OUT_OF_RANGE, "out of range in ctype<T>");
-}
-
 /* ?id@?$ctype@D@std@@2V0locale@2@A */
 locale_id ctype_char_id = {0};
 /* ?table_size@?$ctype@D@std@@2IB */
@@ -1305,17 +1047,6 @@
     return last;
 }
 
-/* ?_Do_narrow_s@?$ctype@D@std@@MBEPBDPBD0DPADI@Z */
-/* ?_Do_narrow_s@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_char__Do_narrow_s, 24)
-const char* __thiscall ctype_char__Do_narrow_s(const ctype_char *this, const char *first,
-        const char *last, char unused, char *dest, MSVCP_size_t size)
-{
-    TRACE("(%p %p %p %p %lu)\n", this, first, last, dest, size);
-    memcpy_s(dest, size, first, last-first);
-    return last;
-}
-
 /* ?narrow@?$ctype@D@std@@QBEDDD@Z */
 /* ?narrow@?$ctype@D@std@@QEBADDD@Z */
 DEFINE_THISCALL_WRAPPER(ctype_char_narrow_ch, 12)
@@ -1335,16 +1066,6 @@
     return call_ctype_char_do_narrow(this, first, last, dflt, dest);
 }
 
-/* ?_Narrow_s@?$ctype@D@std@@QBEPBDPBD0DPADI@Z */
-/* ?_Narrow_s@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_char__Narrow_s, 24)
-const char* __thiscall ctype_char__Narrow_s(const ctype_char *this, const char *first,
-        const char *last, char dflt, char *dest, MSVCP_size_t size)
-{
-    TRACE("(%p %p %p %p %lu)\n", this, first, last, dest, size);
-    return ctype_char__Do_narrow_s(this, first, last, dflt, dest, size);
-}
-
 /* ?do_widen@?$ctype@D@std@@MBEDD@Z */
 /* ?do_widen@?$ctype@D@std@@MEBADD@Z */
 DEFINE_THISCALL_WRAPPER(ctype_char_do_widen_ch, 8)
@@ -1370,17 +1091,6 @@
     return last;
 }
 
-/* ?_Do_widen_s@?$ctype@D@std@@MBEPBDPBD0PADI@Z */
-/* ?_Do_widen_s@?$ctype@D@std@@MEBAPEBDPEBD0PEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_char__Do_widen_s, 20)
-const char* __thiscall ctype_char__Do_widen_s(const ctype_char *this,
-        const char *first, const char *last, char *dest, MSVCP_size_t size)
-{
-    TRACE("(%p %p %p %p %lu)\n", this, first, last, dest, size);
-    memcpy_s(dest, size, first, last-first);
-    return last;
-}
-
 /* ?widen@?$ctype@D@std@@QBEDD@Z */
 /* ?widen@?$ctype@D@std@@QEBADD@Z */
 DEFINE_THISCALL_WRAPPER(ctype_char_widen_ch, 8)
@@ -1400,16 +1110,6 @@
     return call_ctype_char_do_widen(this, first, last, dest);
 }
 
-/* ?_Widen_s@?$ctype@D@std@@QBEPBDPBD0PADI@Z */
-/* ?_Widen_s@?$ctype@D@std@@QEBAPEBDPEBD0PEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_char__Widen_s, 20)
-const char* __thiscall ctype_char__Widen_s(const ctype_char *this,
-        const char *first, const char *last, char *dest, MSVCP_size_t size)
-{
-    TRACE("(%p %p %p %p %lu)\n", this, first, last, dest, size);
-    return ctype_char__Do_widen_s(this, first, last, dest, size);
-}
-
 /* ?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
 /* ?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
 MSVCP_size_t __cdecl ctype_char__Getcat(const locale_facet **facet, const locale *loc)
@@ -1679,15 +1379,6 @@
     return first;
 }
 
-/* ?table@?$ctype@D@std@@IBEPBFXZ */
-/* ?table@?$ctype@D@std@@IEBAPEBFXZ */
-DEFINE_THISCALL_WRAPPER(ctype_char_table, 4)
-const short* __thiscall ctype_char_table(const ctype_char *this)
-{
-    TRACE("(%p)\n", this);
-    return this->ctype.table;
-}
-
 /* ?id@?$ctype@_W@std@@2V0locale@2@A */
 locale_id ctype_wchar_id = {0};
 /* ?id@?$ctype@G@std@@2V0locale@2@A */
@@ -1762,25 +1453,6 @@
     return ret;
 }
 
-/* ??0?$ctype@G@std@@IAE@PBDI@Z */
-/* ??0?$ctype@G@std@@IEAA@PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_short_ctor_name, 12)
-ctype_wchar* __thiscall ctype_short_ctor_name(ctype_wchar *this,
-    const char *name, MSVCP_size_t refs)
-{
-    _Locinfo locinfo;
-
-    TRACE("(%p %s %lu)\n", this, debugstr_a(name), refs);
-
-    ctype_base_ctor_refs(&this->base, refs);
-    this->base.facet.vtable = &MSVCP_ctype_short_vtable;
-
-    _Locinfo_ctor_cstr(&locinfo, name);
-    ctype_wchar__Init(this, &locinfo);
-    _Locinfo_dtor(&locinfo);
-    return this;
-}
-
 /* ??_F?$ctype@_W@std@@QAEXXZ */
 /* ??_F?$ctype@_W@std@@QEAAXXZ */
 DEFINE_THISCALL_WRAPPER(ctype_wchar_ctor, 4)
@@ -1907,22 +1579,6 @@
     return last;
 }
 
-/* ?_Do_narrow_s@?$ctype@_W@std@@MBEPB_WPB_W0DPADI@Z */
-/* ?_Do_narrow_s@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD_K@Z */
-/* ?_Do_narrow_s@?$ctype@G@std@@MBEPBGPBG0DPADI@Z */
-/* ?_Do_narrow_s@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_wchar__Do_narrow_s, 24)
-const wchar_t* __thiscall ctype_wchar__Do_narrow_s(const ctype_wchar *this,
-        const wchar_t *first, const wchar_t *last, char dflt, char *dest, MSVCP_size_t size)
-{
-    TRACE("(%p %p %p %d %p %lu)\n", this, first, last, dflt, dest, size);
-    /* This function converts all multi-byte characters to dflt,
-     * thanks to it result size is known before converting */
-    if(last-first > size)
-        ctype_base__Xran();
-    return ctype_wchar_do_narrow(this, first, last, dflt, dest);
-}
-
 /* ?narrow@?$ctype@_W@std@@QBED_WD@Z */
 /* ?narrow@?$ctype@_W@std@@QEBAD_WD@Z */
 /* ?narrow@?$ctype@G@std@@QBEDGD@Z */
@@ -1946,18 +1602,6 @@
     return call_ctype_wchar_do_narrow(this, first, last, dflt, dest);
 }
 
-/* ?_Narrow_s@?$ctype@_W@std@@QBEPB_WPB_W0DPADI@Z */
-/* ?_Narrow_s@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD_K@Z */
-/* ?_Narrow_s@?$ctype@G@std@@QBEPBGPBG0DPADI@Z */
-/* ?_Narrow_s@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_wchar__Narrow_s, 24)
-const wchar_t* __thiscall ctype_wchar__Narrow_s(const ctype_wchar *this, const wchar_t *first,
-        const wchar_t *last, char dflt, char *dest, MSVCP_size_t size)
-{
-    TRACE("(%p %p %p %d %p %lu)\n", this, first, last, dflt, dest, size);
-    return ctype_wchar__Do_narrow_s(this, first, last, dflt, dest, size);
-}
-
 /* _Mbrtowc */
 int __cdecl _Mbrtowc(wchar_t *out, const char *in, MSVCP_size_t len, int *state, const _Cvtvec *cvt)
 {
@@ -2069,22 +1713,6 @@
     return last;
 }
 
-/* ?_Do_widen_s@?$ctype@_W@std@@MBEPBDPBD0PA_WI@Z */
-/* ?_Do_widen_s@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W_K@Z */
-/* ?_Do_widen_s@?$ctype@G@std@@MBEPBDPBD0PAGI@Z */
-/* ?_Do_widen_s@?$ctype@G@std@@MEBAPEBDPEBD0PEAG_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_wchar__Do_widen_s, 20)
-const char* __thiscall ctype_wchar__Do_widen_s(const ctype_wchar *this,
-        const char *first, const char *last, wchar_t *dest, MSVCP_size_t size)
-{
-    TRACE("(%p %p %p %p %lu)\n", this, first, last, dest, size);
-    /* This function converts all multi-byte characters to WEOF,
-     * thanks to it result size is known before converting */
-    if(size < last-first)
-        ctype_base__Xran();
-    return ctype_wchar_do_widen(this, first, last, dest);
-}
-
 /* ?widen@?$ctype@_W@std@@QBE_WD@Z */
 /* ?widen@?$ctype@_W@std@@QEBA_WD@Z */
 /* ?widen@?$ctype@G@std@@QBEGD@Z */
@@ -2108,18 +1736,6 @@
     return call_ctype_wchar_do_widen(this, first, last, dest);
 }
 
-/* ?_Widen_s@?$ctype@_W@std@@QBEPBDPBD0PA_WI@Z */
-/* ?_Widen_s@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W_K@Z */
-/* ?_Widen_s@?$ctype@G@std@@QBEPBDPBD0PAGI@Z */
-/* ?_Widen_s@?$ctype@G@std@@QEBAPEBDPEBD0PEAG_K@Z */
-DEFINE_THISCALL_WRAPPER(ctype_wchar__Widen_s, 20)
-const char* __thiscall ctype_wchar__Widen_s(const ctype_wchar *this,
-        const char *first, const char *last, wchar_t *dest, MSVCP_size_t size)
-{
-    TRACE("(%p %p %p %p %lu)\n", this, first, last, dest, size);
-    return ctype_wchar__Do_widen_s(this, first, last, dest, size);
-}
-
 /* ?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@PBV42@@Z */
 /* ?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z */
 MSVCP_size_t __cdecl ctype_wchar__Getcat(const locale_facet **facet, const locale *loc)
@@ -2871,21 +2487,6 @@
     return this;
 }
 
-/* ??0?$codecvt@GDH@std@@IAE@PBDI@Z */
-/* ??0?$codecvt@GDH@std@@IEAA@PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(codecvt_short_ctor_name, 12)
-codecvt_wchar* __thiscall codecvt_short_ctor_name(codecvt_wchar *this, const char *name, MSVCP_size_t refs)
-{
-    _Locinfo locinfo;
-
-    TRACE("(%p %s %ld)\n", this, name, refs);
-
-    _Locinfo_ctor_cstr(&locinfo, name);
-    codecvt_short_ctor_locinfo(this, &locinfo, refs);
-    _Locinfo_dtor(&locinfo);
-    return this;
-}
-
 /* ??_F?$codecvt@_WDH@std@@QAEXXZ */
 /* ??_F?$codecvt@_WDH@std@@QEAAXXZ */
 DEFINE_THISCALL_WRAPPER(codecvt_wchar_ctor, 4)
@@ -3251,8 +2852,7 @@
 
 /* ?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@_N@Z */
 /* ?_Init@?$numpunct@D@std@@IEAAXAEBV_Locinfo@2@_N@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_char__Init, 12)
-void __thiscall numpunct_char__Init(numpunct_char *this, const _Locinfo *locinfo, MSVCP_bool isdef)
+static void numpunct_char__Init(numpunct_char *this, const _Locinfo *locinfo, MSVCP_bool isdef)
 {
     int len;
 
@@ -3299,8 +2899,7 @@
 
 /* ?_Tidy@?$numpunct@D@std@@AAEXXZ */
 /* ?_Tidy@?$numpunct@D@std@@AEAAXXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_char__Tidy, 4)
-void __thiscall numpunct_char__Tidy(numpunct_char *this)
+static void numpunct_char__Tidy(numpunct_char *this)
 {
     TRACE("(%p)\n", this);
 
@@ -3311,8 +2910,7 @@
 
 /* ??0?$numpunct@D@std@@QAE@ABV_Locinfo@1@I_N@Z */
 /* ??0?$numpunct@D@std@@QEAA@AEBV_Locinfo@1@_K_N@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_char_ctor_locinfo, 16)
-numpunct_char* __thiscall numpunct_char_ctor_locinfo(numpunct_char *this,
+static numpunct_char* numpunct_char_ctor_locinfo(numpunct_char *this,
         const _Locinfo *locinfo, MSVCP_size_t refs, MSVCP_bool usedef)
 {
     TRACE("(%p %p %lu %d)\n", this, locinfo, refs, usedef);
@@ -3324,8 +2922,7 @@
 
 /* ??0?$numpunct@D@std@@IAE@PBDI_N@Z */
 /* ??0?$numpunct@D@std@@IEAA@PEBD_K_N@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_char_ctor_name, 16)
-numpunct_char* __thiscall numpunct_char_ctor_name(numpunct_char *this,
+static numpunct_char* numpunct_char_ctor_name(numpunct_char *this,
         const char *name, MSVCP_size_t refs, MSVCP_bool usedef)
 {
     _Locinfo locinfo;
@@ -3340,27 +2937,9 @@
     return this;
 }
 
-/* ??0?$numpunct@D@std@@QAE@I@Z */
-/* ??0?$numpunct@D@std@@QEAA@_K@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_char_ctor_refs, 8)
-numpunct_char* __thiscall numpunct_char_ctor_refs(numpunct_char *this, MSVCP_size_t refs)
-{
-    TRACE("(%p %lu)\n", this, refs);
-    return numpunct_char_ctor_name(this, "C", refs, FALSE);
-}
-
-/* ??_F?$numpunct@D@std@@QAEXXZ */
-/* ??_F?$numpunct@D@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_char_ctor, 4)
-numpunct_char* __thiscall numpunct_char_ctor(numpunct_char *this)
-{
-    return numpunct_char_ctor_refs(this, 0);
-}
-
 /* ??1?$numpunct@D@std@@MAE@XZ */
 /* ??1?$numpunct@D@std@@MEAA@XZ */
-DEFINE_THISCALL_WRAPPER(numpunct_char_dtor, 4)
-void __thiscall numpunct_char_dtor(numpunct_char *this)
+static void numpunct_char_dtor(numpunct_char *this)
 {
     TRACE("(%p)\n", this);
     numpunct_char__Tidy(this);
@@ -3447,8 +3026,7 @@
 
 /* ?decimal_point@?$numpunct@D@std@@QBEDXZ */
 /* ?decimal_point@?$numpunct@D@std@@QEBADXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_char_decimal_point, 4)
-char __thiscall numpunct_char_decimal_point(const numpunct_char *this)
+static char numpunct_char_decimal_point(const numpunct_char *this)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_char_do_decimal_point(this);
@@ -3467,8 +3045,7 @@
 
 /* ?thousands_sep@?$numpunct@D@std@@QBEDXZ */
 /* ?thousands_sep@?$numpunct@D@std@@QEBADXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_char_thousands_sep, 4)
-char __thiscall numpunct_char_thousands_sep(const numpunct_char *this)
+static char numpunct_char_thousands_sep(const numpunct_char *this)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_char_do_thousands_sep(this);
@@ -3488,8 +3065,7 @@
 
 /* ?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
 /* ?grouping@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(numpunct_char_grouping, 8)
-basic_string_char* __thiscall numpunct_char_grouping(const numpunct_char *this, basic_string_char *ret)
+static basic_string_char* numpunct_char_grouping(const numpunct_char *this, basic_string_char *ret)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_char_do_grouping(this, ret);
@@ -3509,8 +3085,7 @@
 
 /* ?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
 /* ?falsename@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(numpunct_char_falsename, 8)
-basic_string_char* __thiscall numpunct_char_falsename(const numpunct_char *this, basic_string_char *ret)
+static basic_string_char* numpunct_char_falsename(const numpunct_char *this, basic_string_char *ret)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_char_do_falsename(this, ret);
@@ -3530,8 +3105,7 @@
 
 /* ?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
 /* ?truename@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(numpunct_char_truename, 8)
-basic_string_char* __thiscall numpunct_char_truename(const numpunct_char *this, basic_string_char *ret)
+static basic_string_char* numpunct_char_truename(const numpunct_char *this, basic_string_char *ret)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_char_do_truename(this, ret);
@@ -3551,8 +3125,7 @@
 /* ?_Init@?$numpunct@_W@std@@IEAAXAEBV_Locinfo@2@_N@Z */
 /* ?_Init@?$numpunct@G@std@@IAEXABV_Locinfo@2@_N@Z */
 /* ?_Init@?$numpunct@G@std@@IEAAXAEBV_Locinfo@2@_N@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar__Init, 12)
-void __thiscall numpunct_wchar__Init(numpunct_wchar *this,
+static void numpunct_wchar__Init(numpunct_wchar *this,
         const _Locinfo *locinfo, MSVCP_bool isdef)
 {
     const char *to_convert;
@@ -3610,8 +3183,7 @@
 /* ?_Tidy@?$numpunct@_W@std@@AEAAXXZ */
 /* ?_Tidy@?$numpunct@G@std@@AAEXXZ */
 /* ?_Tidy@?$numpunct@G@std@@AEAAXXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar__Tidy, 4)
-void __thiscall numpunct_wchar__Tidy(numpunct_wchar *this)
+static void numpunct_wchar__Tidy(numpunct_wchar *this)
 {
     TRACE("(%p)\n", this);
 
@@ -3622,8 +3194,7 @@
 
 /* ??0?$numpunct@_W@std@@QAE@ABV_Locinfo@1@I_N@Z */
 /* ??0?$numpunct@_W@std@@QEAA@AEBV_Locinfo@1@_K_N@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_ctor_locinfo, 16)
-numpunct_wchar* __thiscall numpunct_wchar_ctor_locinfo(numpunct_wchar *this,
+static numpunct_wchar* numpunct_wchar_ctor_locinfo(numpunct_wchar *this,
         const _Locinfo *locinfo, MSVCP_size_t refs, MSVCP_bool usedef)
 {
     TRACE("(%p %p %lu %d)\n", this, locinfo, refs, usedef);
@@ -3635,8 +3206,7 @@
 
 /* ??0?$numpunct@G@std@@QAE@ABV_Locinfo@1@I_N@Z */
 /* ??0?$numpunct@G@std@@QEAA@AEBV_Locinfo@1@_K_N@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_short_ctor_locinfo, 16)
-numpunct_wchar* __thiscall numpunct_short_ctor_locinfo(numpunct_wchar *this,
+static numpunct_wchar* numpunct_short_ctor_locinfo(numpunct_wchar *this,
         const _Locinfo *locinfo, MSVCP_size_t refs, MSVCP_bool usedef)
 {
     numpunct_wchar_ctor_locinfo(this, locinfo, refs, usedef);
@@ -3646,8 +3216,7 @@
 
 /* ??0?$numpunct@_W@std@@IAE@PBDI_N@Z */
 /* ??0?$numpunct@_W@std@@IEAA@PEBD_K_N@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_ctor_name, 16)
-numpunct_wchar* __thiscall numpunct_wchar_ctor_name(numpunct_wchar *this,
+static numpunct_wchar* numpunct_wchar_ctor_name(numpunct_wchar *this,
         const char *name, MSVCP_size_t refs, MSVCP_bool usedef)
 {
     _Locinfo locinfo;
@@ -3664,8 +3233,7 @@
 
 /* ??0?$numpunct@G@std@@IAE@PBDI_N@Z */
 /* ??0?$numpunct@G@std@@IEAA@PEBD_K_N@Z */
-    DEFINE_THISCALL_WRAPPER(numpunct_short_ctor_name, 16)
-numpunct_wchar* __thiscall numpunct_short_ctor_name(numpunct_wchar *this,
+static numpunct_wchar* numpunct_short_ctor_name(numpunct_wchar *this,
         const char *name, MSVCP_size_t refs, MSVCP_bool usedef)
 {
     numpunct_wchar_ctor_name(this, name, refs, usedef);
@@ -3673,47 +3241,11 @@
     return this;
 }
 
-/* ??0?$numpunct@_W@std@@QAE@I@Z */
-/* ??0?$numpunct@_W@std@@QEAA@_K@Z */
-    DEFINE_THISCALL_WRAPPER(numpunct_wchar_ctor_refs, 8)
-numpunct_wchar* __thiscall numpunct_wchar_ctor_refs(numpunct_wchar *this, MSVCP_size_t refs)
-{
-    TRACE("(%p %lu)\n", this, refs);
-    return numpunct_wchar_ctor_name(this, "C", refs, FALSE);
-}
-
-/* ??0?$numpunct@G@std@@QAE@I@Z */
-/* ??0?$numpunct@G@std@@QEAA@_K@Z */
-DEFINE_THISCALL_WRAPPER(numpunct_short_ctor_refs, 8)
-numpunct_wchar* __thiscall numpunct_short_ctor_refs(numpunct_wchar *this, MSVCP_size_t refs)
-{
-    numpunct_wchar_ctor_refs(this, refs);
-    this->facet.vtable = &MSVCP_numpunct_short_vtable;
-    return this;
-}
-
-/* ??_F?$numpunct@_W@std@@QAEXXZ */
-/* ??_F?$numpunct@_W@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_ctor, 4)
-numpunct_wchar* __thiscall numpunct_wchar_ctor(numpunct_wchar *this)
-{
-    return numpunct_wchar_ctor_refs(this, 0);
-}
-
-/* ??_F?$numpunct@G@std@@QAEXXZ */
-/* ??_F?$numpunct@G@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_short_ctor, 4)
-numpunct_wchar* __thiscall numpunct_short_ctor(numpunct_wchar *this)
-{
-    return numpunct_short_ctor_refs(this, 0);
-}
-
 /* ??1?$numpunct@_W@std@@MAE@XZ */
 /* ??1?$numpunct@_W@std@@MEAA@XZ */
 /* ??1?$numpunct@G@std@@MAE@XZ */
 /* ??1?$numpunct@G@std@@MEAA@XZ */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_dtor, 4)
-void __thiscall numpunct_wchar_dtor(numpunct_wchar *this)
+static void numpunct_wchar_dtor(numpunct_wchar *this)
 {
     TRACE("(%p)\n", this);
     numpunct_wchar__Tidy(this);
@@ -3852,8 +3384,7 @@
 /* ?decimal_point@?$numpunct@_W@std@@QEBA_WXZ */
 /* ?decimal_point@?$numpunct@G@std@@QBEGXZ */
 /* ?decimal_point@?$numpunct@G@std@@QEBAGXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_decimal_point, 4)
-wchar_t __thiscall numpunct_wchar_decimal_point(const numpunct_wchar *this)
+static wchar_t numpunct_wchar_decimal_point(const numpunct_wchar *this)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_wchar_do_decimal_point(this);
@@ -3876,8 +3407,7 @@
 /* ?thousands_sep@?$numpunct@_W@std@@QEBA_WXZ */
 /* ?thousands_sep@?$numpunct@G@std@@QBEGXZ */
 /* ?thousands_sep@?$numpunct@G@std@@QEBAGXZ */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_thousands_sep, 4)
-wchar_t __thiscall numpunct_wchar_thousands_sep(const numpunct_wchar *this)
+static wchar_t numpunct_wchar_thousands_sep(const numpunct_wchar *this)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_wchar_do_thousands_sep(this);
@@ -3900,8 +3430,7 @@
 /* ?grouping@?$numpunct@_W@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
 /* ?grouping@?$numpunct@G@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
 /* ?grouping@?$numpunct@G@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_grouping, 8)
-basic_string_char* __thiscall numpunct_wchar_grouping(const numpunct_wchar *this, basic_string_char *ret)
+static basic_string_char* numpunct_wchar_grouping(const numpunct_wchar *this, basic_string_char *ret)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_wchar_do_grouping(this, ret);
@@ -3924,8 +3453,7 @@
 /* ?falsename@?$numpunct@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
 /* ?falsename@?$numpunct@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
 /* ?falsename@?$numpunct@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_falsename, 8)
-basic_string_wchar* __thiscall numpunct_wchar_falsename(const numpunct_wchar *this, basic_string_wchar *ret)
+static basic_string_wchar* numpunct_wchar_falsename(const numpunct_wchar *this, basic_string_wchar *ret)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_wchar_do_falsename(this, ret);
@@ -3948,8 +3476,7 @@
 /* ?truename@?$numpunct@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
 /* ?truename@?$numpunct@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
 /* ?truename@?$numpunct@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(numpunct_wchar_truename, 8)
-basic_string_wchar* __thiscall numpunct_wchar_truename(const numpunct_wchar *this, basic_string_wchar *ret)
+static basic_string_wchar* numpunct_wchar_truename(const numpunct_wchar *this, basic_string_wchar *ret)
 {
     TRACE("(%p)\n", this);
     return call_numpunct_wchar_do_truename(this, ret);
@@ -8055,8 +7582,7 @@
 
 /* ??0locale@std@@AAE@PAV_Locimp@01@@Z */
 /* ??0locale@std@@AEAA@PEAV_Locimp@01@@Z */
-DEFINE_THISCALL_WRAPPER(locale_ctor_locimp, 8)
-locale* __thiscall locale_ctor_locimp(locale *this, locale__Locimp *locimp)
+static locale* locale_ctor_locimp(locale *this, locale__Locimp *locimp)
 {
     TRACE("(%p %p)\n", this, locimp);
     /* Don't change locimp reference counter */
@@ -8099,34 +7625,9 @@
     return global_locale;
 }
 
-/* ??0locale@std@@QAE@ABV01@0H@Z */
-/* ??0locale@std@@QEAA@AEBV01@0H@Z */
-DEFINE_THISCALL_WRAPPER(locale_ctor_locale_locale, 16)
-locale* __thiscall locale_ctor_locale_locale(locale *this, const locale *loc, const locale *other, category cat)
-{
-    _Locinfo locinfo;
-
-    TRACE("(%p %p %p %d)\n", this, loc, other, cat);
-
-    this->ptr = MSVCRT_operator_new(sizeof(locale__Locimp));
-    if(!this->ptr) {
-        ERR("Out of memory\n");
-        throw_exception(EXCEPTION_BAD_ALLOC, NULL);
-    }
-    locale__Locimp_copy_ctor(this->ptr, loc->ptr);
-
-    _Locinfo_ctor_cat_cstr(&locinfo, loc->ptr->catmask, MSVCP_basic_string_char_c_str(&loc->ptr->name));
-    _Locinfo__Addcats(&locinfo, cat & other->ptr->catmask, MSVCP_basic_string_char_c_str(&other->ptr->name));
-    locale__Locimp__Makeloc(&locinfo, cat, this->ptr, other);
-    _Locinfo_dtor(&locinfo);
-
-    return this;
-}
-
 /* ??0locale@std@@QAE@ABV01@@Z */
 /* ??0locale@std@@QEAA@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(locale_copy_ctor, 8)
-locale* __thiscall locale_copy_ctor(locale *this, const locale *copy)
+locale* locale_copy_ctor(locale *this, const locale *copy)
 {
     TRACE("(%p %p)\n", this, copy);
     this->ptr = copy->ptr;
@@ -8134,60 +7635,9 @@
     return this;
 }
 
-/* ??0locale@std@@QAE@ABV01@PBDH@Z */
-/* ??0locale@std@@QEAA@AEBV01@PEBDH@Z */
-DEFINE_THISCALL_WRAPPER(locale_ctor_locale_cstr, 16)
-locale* __thiscall locale_ctor_locale_cstr(locale *this, const locale *loc, const char *locname, category cat)
-{
-    FIXME("(%p %p %s %d) stub\n", this, loc, locname, cat);
-    return NULL;
-}
-
-/* ??0locale@std@@QAE@PBDH@Z */
-/* ??0locale@std@@QEAA@PEBDH@Z */
-DEFINE_THISCALL_WRAPPER(locale_ctor_cstr, 12)
-locale* __thiscall locale_ctor_cstr(locale *this, const char *locname, category cat)
-{
-    _Locinfo locinfo;
-
-    TRACE("(%p %s %d)\n", this, locname, cat);
-
-    this->ptr = MSVCRT_operator_new(sizeof(locale__Locimp));
-    if(!this->ptr) {
-        ERR("Out of memory\n");
-        throw_exception(EXCEPTION_BAD_ALLOC, NULL);
-    }
-    locale__Locimp_ctor(this->ptr);
-
-    locale__Init();
-
-    _Locinfo_ctor_cat_cstr(&locinfo, cat, locname);
-    if(!memcmp(MSVCP_basic_string_char_c_str(&locinfo.newlocname), "*", 2)) {
-        _Locinfo_dtor(&locinfo);
-        MSVCRT_operator_delete(this->ptr);
-        throw_exception(EXCEPTION_RUNTIME_ERROR, "bad locale name");
-    }
-
-    locale__Locimp__Makeloc(&locinfo, cat, this->ptr, NULL);
-    _Locinfo_dtor(&locinfo);
-
-    return this;
-}
-
-/* ??0locale@std@@QAE@W4_Uninitialized@1@@Z */
-/* ??0locale@std@@QEAA@W4_Uninitialized@1@@Z */
-DEFINE_THISCALL_WRAPPER(locale_ctor_uninitialized, 8)
-locale* __thiscall locale_ctor_uninitialized(locale *this, int uninitialized)
-{
-    TRACE("(%p)\n", this);
-    this->ptr = NULL;
-    return this;
-}
-
 /* ??0locale@std@@QAE@XZ */
 /* ??0locale@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(locale_ctor, 4)
-locale* __thiscall locale_ctor(locale *this)
+locale* locale_ctor(locale *this)
 {
     TRACE("(%p)\n", this);
     this->ptr = locale__Init();
@@ -8197,93 +7647,24 @@
 
 /* ??1locale@std@@QAE@XZ */
 /* ??1locale@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(locale_dtor, 4)
-void __thiscall locale_dtor(locale *this)
+void locale_dtor(locale *this)
 {
     TRACE("(%p)\n", this);
     if(this->ptr)
         locale__Locimp_dtor(this->ptr);
 }
 
-DEFINE_THISCALL_WRAPPER(locale_vector_dtor, 8)
-locale* __thiscall locale_vector_dtor(locale *this, unsigned int flags)
-{
-    TRACE("(%p %x)\n", this, flags);
-    if(flags & 2) {
-        /* we have an array, with the number of elements stored before the first object */
-        INT_PTR i, *ptr = (INT_PTR *)this-1;
-
-        for(i=*ptr-1; i>=0; i--)
-            locale_dtor(this+i);
-        MSVCRT_operator_delete(ptr);
-    } else {
-        locale_dtor(this);
-        if(flags & 1)
-            MSVCRT_operator_delete(this);
-    }
-
-    return this;
-}
-
 /* ??4locale@std@@QAEAAV01@ABV01@@Z */
 /* ??4locale@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(locale_operator_assign, 8)
-locale* __thiscall locale_operator_assign(locale *this, const locale *loc)
+locale* locale_operator_assign(locale *this, const locale *loc)
 {
     FIXME("(%p %p) stub\n", this, loc);
     return NULL;
 }
 
-/* ??8locale@std@@QBE_NABV01@@Z */
-/* ??8locale@std@@QEBA_NAEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(locale_operator_equal, 8)
-MSVCP_bool __thiscall locale_operator_equal(const locale *this, const locale *loc)
-{
-    FIXME("(%p %p) stub\n", this, loc);
-    return 0;
-}
-
-/* ??9locale@std@@QBE_NABV01@@Z */
-/* ??9locale@std@@QEBA_NAEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(locale_operator_not_equal, 8)
-MSVCP_bool __thiscall locale_operator_not_equal(const locale *this, locale const *loc)
-{
-    FIXME("(%p %p) stub\n", this, loc);
-    return 0;
-}
-
-/* ?_Addfac@locale@std@@QAEAAV12@PAVfacet@12@II@Z */
-/* ?_Addfac@locale@std@@QEAAAEAV12@PEAVfacet@12@_K1@Z */
-DEFINE_THISCALL_WRAPPER(locale__Addfac, 16)
-locale* __thiscall locale__Addfac(locale *this, locale_facet *facet, MSVCP_size_t id, MSVCP_size_t catmask)
-{
-    TRACE("(%p %p %lu %lu)\n", this, facet, id, catmask);
-
-    if(this->ptr->facet.refs > 1) {
-        locale__Locimp *new_ptr = MSVCRT_operator_new(sizeof(locale__Locimp));
-        if(!new_ptr) {
-            ERR("Out of memory\n");
-            throw_exception(EXCEPTION_BAD_ALLOC, NULL);
-            return NULL;
-        }
-        locale__Locimp_copy_ctor(new_ptr, this->ptr);
-        locale_facet__Decref(&this->ptr->facet);
-        this->ptr = new_ptr;
-    }
-
-    locale__Locimp__Addfac(this->ptr, facet, id);
-
-    if(catmask) {
-        MSVCP_basic_string_char_dtor(&this->ptr->name);
-        MSVCP_basic_string_char_ctor_cstr(&this->ptr->name, "*");
-    }
-    return this;
-}
-
 /* ?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z */
 /* ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z */
-DEFINE_THISCALL_WRAPPER(locale__Getfacet, 8)
-const locale_facet* __thiscall locale__Getfacet(const locale *this, MSVCP_size_t id)
+static const locale_facet* locale__Getfacet(const locale *this, MSVCP_size_t id)
 {
     locale_facet *fac;
 
@@ -8337,16 +7718,6 @@
     return ret;
 }
 
-/* ?name@locale@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?name@locale@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(locale_name, 8)
-basic_string_char* __thiscall locale_name(const locale *this, basic_string_char *ret)
-{
-    TRACE( "(%p)\n", this);
-    MSVCP_basic_string_char_copy_ctor(ret, &this->ptr->name);
-    return ret;
-}
-
 /* ?global@locale@std@@SA?AV12@ABV12@@Z */
 /* ?global@locale@std@@SA?AV12@AEBV12@@Z */
 locale* __cdecl locale_global(locale *ret, const locale *loc)
diff --git a/dlls/msvcp100/math.c b/dlls/msvcp100/math.c
index 3722915..d13eaef 100644
--- a/dlls/msvcp100/math.c
+++ b/dlls/msvcp100/math.c
@@ -801,15 +801,3 @@
 
 /* ?signaling_NaN@?$numeric_limits@_W@std@@SA_WXZ -> public: static wchar_t __cdecl std::numeric_limits<wchar_t>::signaling_NaN(void) */
 WCHAR __cdecl std_numeric_limits_wchar_t_signaling_NaN(void) { return 0; }
-
-/* ??4?$_Ctraits@M@std@@QAEAAV01@ABV01@@Z -> public: class std::_Ctraits<float> & __thiscall std::_Ctraits<float>::operator=(class std::_Ctraits<float> const &) */
-/* ??4?$_Ctraits@M@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::_Ctraits<float> & __ptr64 __cdecl std::_Ctraits<float>::operator=(class std::_Ctraits<float> const & __ptr64) __ptr64 */
-/* ??4?$_Ctraits@N@std@@QAEAAV01@ABV01@@Z -> public: class std::_Ctraits<double> & __thiscall std::_Ctraits<double>::operator=(class std::_Ctraits<double> const &) */
-/* ??4?$_Ctraits@N@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::_Ctraits<double> & __ptr64 __cdecl std::_Ctraits<double>::operator=(class std::_Ctraits<double> const & __ptr64) __ptr64 */
-/* ??4?$_Ctraits@O@std@@QAEAAV01@ABV01@@Z -> public: class std::_Ctraits<long double> & __thiscall std::_Ctraits<long double>::operator=(class std::_Ctraits<long double> const &) */
-/* ??4?$_Ctraits@O@std@@QEAAAEAV01@AEBV01@@Z -> public: class std::_Ctraits<long double> & __ptr64 __cdecl std::_Ctraits<long double>::operator=(class std::_Ctraits<long double> const & __ptr64) __ptr64 */
-DEFINE_THISCALL_WRAPPER( std_Ctraits_op_assign, 8 )
-std_Ctraits * __thiscall std_Ctraits_op_assign( std_Ctraits *this, std_Ctraits *right )
-{
-    return this;
-}
diff --git a/dlls/msvcp100/memory.c b/dlls/msvcp100/memory.c
index 4407cfe..a45dce0 100644
--- a/dlls/msvcp100/memory.c
+++ b/dlls/msvcp100/memory.c
@@ -27,141 +27,29 @@
 #include "winbase.h"
 
 
-/* ?address@?$allocator@D@std@@QBEPADAAD@Z */
-/* ?address@?$allocator@D@std@@QEBAPEADAEAD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_address, 8)
-char* __thiscall MSVCP_allocator_char_address(void *this, char *ptr)
-{
-    return ptr;
-}
-
-/* ?address@?$allocator@D@std@@QBEPBDABD@Z */
-/* ?address@?$allocator@D@std@@QEBAPEBDAEBD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_const_address, 8)
-const char* __thiscall MSVCP_allocator_char_const_address(void *this, const char *ptr)
-{
-    return ptr;
-}
-
-/* ??0?$allocator@D@std@@QAE@XZ */
-/* ??0?$allocator@D@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_ctor, 4)
-void* __thiscall MSVCP_allocator_char_ctor(void *this)
-{
-    return this;
-}
-
-/* ??0?$allocator@D@std@@QAE@ABV01@@Z */
-/* ??0?$allocator@D@std@@QEAA@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_copy_ctor, 8)
-void* __thiscall MSVCP_allocator_char_copy_ctor(void *this, const void *copy)
-{
-    return this;
-}
-
-/* ??4?$allocator@D@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$allocator@D@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_assign, 8)
-void* __thiscall MSVCP_allocator_char_assign(void *this, const void *assign)
-{
-    return this;
-}
-
 /* ?deallocate@?$allocator@D@std@@QAEXPADI@Z */
 /* ?deallocate@?$allocator@D@std@@QEAAXPEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_deallocate, 12)
-void __thiscall MSVCP_allocator_char_deallocate(void *this, char *ptr, MSVCP_size_t size)
+void MSVCP_allocator_char_deallocate(void *this, char *ptr, MSVCP_size_t size)
 {
     MSVCRT_operator_delete(ptr);
 }
 
 /* ?allocate@?$allocator@D@std@@QAEPADI@Z */
 /* ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_allocate, 8)
-char* __thiscall MSVCP_allocator_char_allocate(void *this, MSVCP_size_t count)
+char* MSVCP_allocator_char_allocate(void *this, MSVCP_size_t count)
 {
     return MSVCRT_operator_new(count);
 }
 
-/* ?allocate@?$allocator@D@std@@QAEPADIPBX@Z */
-/* ?allocate@?$allocator@D@std@@QEAAPEAD_KPEBX@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_allocate_hint, 12)
-char* __thiscall MSVCP_allocator_char_allocate_hint(void *this,
-        MSVCP_size_t count, const void *hint)
-{
-    /* Native ignores hint */
-    return MSVCP_allocator_char_allocate(this, count);
-}
-
-/* ?construct@?$allocator@D@std@@QAEXPADABD@Z */
-/* ?construct@?$allocator@D@std@@QEAAXPEADAEBD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_construct, 12)
-void __thiscall MSVCP_allocator_char_construct(void *this, char *ptr, const char *val)
-{
-    *ptr = *val;
-}
-
-/* ?destroy@?$allocator@D@std@@QAEXPAD@Z */
-/* ?destroy@?$allocator@D@std@@QEAAXPEAD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_destroy, 8)
-void __thiscall MSVCP_allocator_char_destroy(void *this, char *ptr)
-{
-}
-
-/* ?max_size@?$allocator@D@std@@QBEIXZ */
-/* ?max_size@?$allocator@D@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_char_max_size, 4)
-MSVCP_size_t __thiscall MSVCP_allocator_char_max_size(void *this)
+MSVCP_size_t MSVCP_allocator_char_max_size(void *this)
 {
     return UINT_MAX/sizeof(char);
 }
 
-
 /* allocator<wchar_t> */
-/* ?address@?$allocator@_W@std@@QBEPA_WAA_W@Z */
-/* ?address@?$allocator@_W@std@@QEBAPEA_WAEA_W@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_address, 8)
-wchar_t* __thiscall MSVCP_allocator_wchar_address(void *this, wchar_t *ptr)
-{
-    return ptr;
-}
-
-/* ?address@?$allocator@_W@std@@QBEPB_WAB_W@Z */
-/* ?address@?$allocator@_W@std@@QEBAPEB_WAEB_W@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_const_address, 8)
-const wchar_t* __thiscall MSVCP_allocator_wchar_const_address(void *this, const wchar_t *ptr)
-{
-    return ptr;
-}
-
-/* ??0?$allocator@_W@std@@QAE@XZ */
-/* ??0?$allocator@_W@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_ctor, 4)
-void* __thiscall MSVCP_allocator_wchar_ctor(void *this)
-{
-    return this;
-}
-
-/* ??0?$allocator@_W@std@@QAE@ABV01@@Z */
-/* ??0?$allocator@_W@std@@QEAA@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_copy_ctor, 8)
-void* __thiscall MSVCP_allocator_wchar_copy_ctor(void *this, void *copy)
-{
-    return this;
-}
-
-/* ??4?$allocator@_W@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$allocator@_W@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_assign, 8)
-void* __thiscall MSVCP_allocator_wchar_assign(void *this, void *assign)
-{
-    return this;
-}
-
 /* ?deallocate@?$allocator@_W@std@@QAEXPA_WI@Z */
 /* ?deallocate@?$allocator@_W@std@@QEAAXPEA_W_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_deallocate, 12)
-void __thiscall MSVCP_allocator_wchar_deallocate(void *this,
+void MSVCP_allocator_wchar_deallocate(void *this,
         wchar_t *ptr, MSVCP_size_t size)
 {
     MSVCRT_operator_delete(ptr);
@@ -169,8 +57,7 @@
 
 /* ?allocate@?$allocator@_W@std@@QAEPA_WI@Z */
 /* ?allocate@?$allocator@_W@std@@QEAAPEA_W_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_allocate, 8)
-wchar_t* __thiscall MSVCP_allocator_wchar_allocate(void *this, MSVCP_size_t count)
+wchar_t* MSVCP_allocator_wchar_allocate(void *this, MSVCP_size_t count)
 {
     if(UINT_MAX/count < sizeof(wchar_t)) {
         throw_exception(EXCEPTION_BAD_ALLOC, NULL);
@@ -180,159 +67,9 @@
     return MSVCRT_operator_new(count * sizeof(wchar_t));
 }
 
-/* ?allocate@?$allocator@_W@std@@QAEPA_WIPBX@Z */
-/* ?allocate@?$allocator@_W@std@@QEAAPEA_W_KPEBX@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_allocate_hint, 12)
-wchar_t* __thiscall MSVCP_allocator_wchar_allocate_hint(void *this,
-        MSVCP_size_t count, const void *hint)
-{
-    return MSVCP_allocator_wchar_allocate(this, count);
-}
-
-/* ?construct@?$allocator@_W@std@@QAEXPA_WAB_W@Z */
-/* ?construct@?$allocator@_W@std@@QEAAXPEA_WAEB_W@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_construct, 12)
-void __thiscall MSVCP_allocator_wchar_construct(void *this,
-        wchar_t *ptr, const wchar_t *val)
-{
-    *ptr = *val;
-}
-
-/* ?destroy@?$allocator@_W@std@@QAEXPA_W@Z */
-/* ?destroy@?$allocator@_W@std@@QEAAXPEA_W@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_destroy, 8)
-void __thiscall MSVCP_allocator_wchar_destroy(void *this, char *ptr)
-{
-}
-
 /* ?max_size@?$allocator@_W@std@@QBEIXZ */
 /* ?max_size@?$allocator@_W@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_wchar_max_size, 4)
-MSVCP_size_t __thiscall MSVCP_allocator_wchar_max_size(void *this)
+MSVCP_size_t MSVCP_allocator_wchar_max_size(void *this)
 {
     return UINT_MAX/sizeof(wchar_t);
 }
-
-/* allocator<unsigned short> */
-/* ?address@?$allocator@G@std@@QBEPAGAAG@Z */
-/* ?address@?$allocator@G@std@@QEBAPEAGAEAG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_address, 8)
-unsigned short* __thiscall MSVCP_allocator_short_address(
-        void *this, unsigned short *ptr)
-{
-    return ptr;
-}
-
-/* ?address@?$allocator@G@std@@QBEPBGABG@Z */
-/* ?address@?$allocator@G@std@@QEBAPEBGAEBG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_const_address, 8)
-const unsigned short* __thiscall MSVCP_allocator_short_const_address(
-        void *this, const unsigned short *ptr)
-{
-    return ptr;
-}
-
-/* ??0?$allocator@G@std@@QAE@XZ */
-/* ??0?$allocator@G@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_ctor, 4)
-void* __thiscall MSVCP_allocator_short_ctor(void *this)
-{
-    return this;
-}
-
-/* ??0?$allocator@G@std@@QAE@ABV01@@Z */
-/* ??0?$allocator@G@std@@QEAA@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_copy_ctor, 8)
-void* __thiscall MSVCP_allocator_short_copy_ctor(void *this, void *copy)
-{
-    return this;
-}
-
-/* ??4?$allocator@G@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$allocator@G@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_assign, 8)
-void* __thiscall MSVCP_allocator_short_assign(void *this, void *assign)
-{
-    return this;
-}
-
-/* ?deallocate@?$allocator@G@std@@QAEXPAGI@Z */
-/* ?deallocate@?$allocator@G@std@@QEAAXPEAG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_deallocate, 12)
-void __thiscall MSVCP_allocator_short_deallocate(void *this,
-        unsigned short *ptr, MSVCP_size_t size)
-{
-    MSVCRT_operator_delete(ptr);
-}
-
-/* ?allocate@?$allocator@G@std@@QAEPAGI@Z */
-/* ?allocate@?$allocator@G@std@@QEAAPEAG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_allocate, 8)
-unsigned short* __thiscall MSVCP_allocator_short_allocate(
-        void *this, MSVCP_size_t count)
-{
-    if(UINT_MAX/count < sizeof(unsigned short)) {
-        throw_exception(EXCEPTION_BAD_ALLOC, NULL);
-        return NULL;
-    }
-
-    return MSVCRT_operator_new(count * sizeof(unsigned short));
-}
-
-/* ?allocate@?$allocator@G@std@@QAEPAGIPBX@Z */
-/* ?allocate@?$allocator@G@std@@QEAAPEAG_KPEBX@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_allocate_hint, 12)
-unsigned short* __thiscall MSVCP_allocator_short_allocate_hint(
-        void *this, MSVCP_size_t count, const void *hint)
-{
-    return MSVCP_allocator_short_allocate(this, count);
-}
-
-/* ?construct@?$allocator@G@std@@QAEXPAGABG@Z */
-/* ?construct@?$allocator@G@std@@QEAAXPEAGAEBG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_construct, 12)
-void __thiscall MSVCP_allocator_short_construct(void *this,
-        unsigned short *ptr, unsigned short *val)
-{
-    *ptr = *val;
-}
-
-/* ?destroy@?$allocator@G@std@@QAEXPAG@Z */
-/* ?destroy@?$allocator@G@std@@QEAAXPEAG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_destroy, 8)
-void __thiscall MSVCP_allocator_short_destroy(void *this, MSVCP_size_t *ptr)
-{
-}
-
-/* ?max_size@?$allocator@G@std@@QBEIXZ */
-/* ?max_size@?$allocator@G@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_short_max_size, 4)
-MSVCP_size_t __thiscall MSVCP_allocator_short_max_size(void *this)
-{
-    return UINT_MAX/sizeof(unsigned short);
-}
-
-/* allocator<void> */
-/* ??0?$allocator@X@std@@QAE@XZ */
-/* ??0?$allocator@X@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_void_ctor, 4)
-void* __thiscall MSVCP_allocator_void_ctor(void *this)
-{
-    return this;
-}
-
-/* ??0?$allocator@X@std@@QAE@ABV01@@Z */
-/* ??0?$allocator@X@std@@QEAA@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_void_copy_ctor, 8)
-void* __thiscall MSVCP_allocator_void_copy_ctor(void *this, void *copy)
-{
-    return this;
-}
-
-/* ??4?$allocator@X@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$allocator@X@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_allocator_void_assign, 8)
-void* __thiscall MSVCP_allocator_void_assign(void *this, void *assign)
-{
-    return this;
-}
diff --git a/dlls/msvcp100/msvcp.h b/dlls/msvcp100/msvcp.h
index 733b653..dad9e29 100644
--- a/dlls/msvcp100/msvcp.h
+++ b/dlls/msvcp100/msvcp.h
@@ -48,15 +48,13 @@
     MSVCP_size_t res;
 } basic_string_char;
 
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor(basic_string_char*);
-basic_string_char* __stdcall MSVCP_basic_string_char_ctor_cstr(basic_string_char*, const char*);
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_cstr_len(basic_string_char*, const char*, MSVCP_size_t);
-basic_string_char* __stdcall MSVCP_basic_string_char_copy_ctor(basic_string_char*, const basic_string_char*);
-void __stdcall MSVCP_basic_string_char_dtor(basic_string_char*);
-const char* __stdcall MSVCP_basic_string_char_c_str(const basic_string_char*);
-void __thiscall MSVCP_basic_string_char_clear(basic_string_char*);
-basic_string_char* __thiscall MSVCP_basic_string_char_append_ch(basic_string_char*, char);
-MSVCP_size_t __thiscall MSVCP_basic_string_char_length(const basic_string_char*);
+basic_string_char* MSVCP_basic_string_char_ctor(basic_string_char*);
+basic_string_char* MSVCP_basic_string_char_ctor_cstr(basic_string_char*, const char*);
+basic_string_char* MSVCP_basic_string_char_ctor_cstr_len(basic_string_char*, const char*, MSVCP_size_t);
+basic_string_char* MSVCP_basic_string_char_copy_ctor(basic_string_char*, const basic_string_char*);
+void MSVCP_basic_string_char_dtor(basic_string_char*);
+const char* MSVCP_basic_string_char_c_str(const basic_string_char*);
+MSVCP_size_t MSVCP_basic_string_char_length(const basic_string_char*);
 
 #define BUF_SIZE_WCHAR 8
 typedef struct
@@ -70,21 +68,19 @@
     MSVCP_size_t res;
 } basic_string_wchar;
 
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor(basic_string_wchar*);
-basic_string_wchar* __stdcall MSVCP_basic_string_wchar_ctor_cstr(basic_string_wchar*, const wchar_t*);
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_cstr_len(basic_string_wchar*, const wchar_t*, MSVCP_size_t);
-void __thiscall MSVCP_basic_string_wchar_dtor(basic_string_wchar*);
-const wchar_t* __thiscall MSVCP_basic_string_wchar_c_str(const basic_string_wchar*);
-void __thiscall MSVCP_basic_string_wchar_clear(basic_string_wchar*);
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_ch(basic_string_wchar*, wchar_t);
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_length(const basic_string_wchar*);
+basic_string_wchar* MSVCP_basic_string_wchar_ctor(basic_string_wchar*);
+basic_string_wchar* MSVCP_basic_string_wchar_ctor_cstr(basic_string_wchar*, const wchar_t*);
+basic_string_wchar* MSVCP_basic_string_wchar_ctor_cstr_len(basic_string_wchar*, const wchar_t*, MSVCP_size_t);
+void MSVCP_basic_string_wchar_dtor(basic_string_wchar*);
+const wchar_t* MSVCP_basic_string_wchar_c_str(const basic_string_wchar*);
+MSVCP_size_t MSVCP_basic_string_wchar_length(const basic_string_wchar*);
 
-char* __stdcall MSVCP_allocator_char_allocate(void*, MSVCP_size_t);
-void __stdcall MSVCP_allocator_char_deallocate(void*, char*, MSVCP_size_t);
-MSVCP_size_t __stdcall MSVCP_allocator_char_max_size(void*);
-wchar_t* __stdcall MSVCP_allocator_wchar_allocate(void*, MSVCP_size_t);
-void __stdcall MSVCP_allocator_wchar_deallocate(void*, wchar_t*, MSVCP_size_t);
-MSVCP_size_t __stdcall MSVCP_allocator_wchar_max_size(void*);
+char* MSVCP_allocator_char_allocate(void*, MSVCP_size_t);
+void MSVCP_allocator_char_deallocate(void*, char*, MSVCP_size_t);
+MSVCP_size_t MSVCP_allocator_char_max_size(void*);
+wchar_t* MSVCP_allocator_wchar_allocate(void*, MSVCP_size_t);
+void MSVCP_allocator_wchar_deallocate(void*, wchar_t*, MSVCP_size_t);
+MSVCP_size_t MSVCP_allocator_wchar_max_size(void*);
 
 /* class locale::facet */
 typedef struct {
@@ -173,10 +169,10 @@
     struct _locale__Locimp *ptr;
 } locale;
 
-locale* __thiscall locale_ctor(locale*);
-locale* __thiscall locale_copy_ctor(locale*, const locale*);
-locale* __thiscall locale_operator_assign(locale*, const locale*);
-void __thiscall locale_dtor(locale*);
+locale* locale_ctor(locale*);
+locale* locale_copy_ctor(locale*, const locale*);
+locale* locale_operator_assign(locale*, const locale*);
+void locale_dtor(locale*);
 void free_locale(void);
 codecvt_char* codecvt_char_use_facet(const locale*);
 codecvt_wchar* codecvt_wchar_use_facet(const locale*);
diff --git a/dlls/msvcp100/string.c b/dlls/msvcp100/string.c
index 1d69087..5883f55 100644
--- a/dlls/msvcp100/string.c
+++ b/dlls/msvcp100/string.c
@@ -30,28 +30,6 @@
 WINE_DEFAULT_DEBUG_CHANNEL(msvcp);
 
 /* _String_iterator<char> and _String_const_iterator<char> class */
-typedef struct {
-    basic_string_char *bstr;
-    const char *pos;
-} String_iterator_char;
-typedef String_iterator_char String_reverse_iterator_char;
-
-typedef struct {
-    basic_string_wchar *bstr;
-    const wchar_t *pos;
-} String_iterator_wchar;
-typedef String_iterator_wchar String_reverse_iterator_wchar;
-
-/* size_t_noverify structure */
-typedef struct {
-    MSVCP_size_t val;
-} size_t_noverify;
-
-/* allocator class */
-typedef struct {
-    char empty_struct;
-} allocator;
-
 /* char_traits<char> */
 /* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
 /* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
@@ -60,15 +38,6 @@
     *ch = *assign;
 }
 
-/* ?compare@?$char_traits@D@std@@SAHPBD0I@Z */
-/* ?compare@?$char_traits@D@std@@SAHPEBD0_K@Z */
-static int CDECL MSVCP_char_traits_char_compare(
-        const char *s1, const char *s2, MSVCP_size_t count)
-{
-    int ret = memcmp(s1, s2, count);
-    return (ret>0 ? 1 : (ret<0 ? -1 : 0));
-}
-
 /* ?length@?$char_traits@D@std@@SAIPBD@Z */
 /* ?length@?$char_traits@D@std@@SA_KPEBD@Z */
 static MSVCP_size_t CDECL MSVCP_char_traits_char_length(const char *str)
@@ -91,14 +60,6 @@
     return memcpy(dest, src, count);
 }
 
-/* ?find@?$char_traits@D@std@@SAPBDPBDIABD@Z */
-/* ?find@?$char_traits@D@std@@SAPEBDPEBD_KAEBD@Z */
-static const char * CDECL MSVCP_char_traits_char_find(
-        const char *str, MSVCP_size_t range, const char *c)
-{
-    return memchr(str, *c, range);
-}
-
 /* ?_Move_s@?$char_traits@D@std@@SAPADPADIPBDI@Z */
 /* ?_Move_s@?$char_traits@D@std@@SAPEADPEAD_KPEBD1@Z */
 static char* CDECL MSVCP_char_traits_char__Move_s(char *dest,
@@ -114,14 +75,6 @@
     return memmove(dest, src, count);
 }
 
-/* ?assign@?$char_traits@D@std@@SAPADPADID@Z */
-/* ?assign@?$char_traits@D@std@@SAPEADPEAD_KD@Z */
-static char* CDECL MSVCP_char_traits_char_assignn(char *str, MSVCP_size_t num, char c)
-{
-    return memset(str, c, num);
-}
-
-
 /* char_traits<wchar_t> */
 /* ?assign@?$char_traits@_W@std@@SAXAA_WAB_W@Z */
 /* ?assign@?$char_traits@_W@std@@SAXAEA_WAEB_W@Z */
@@ -131,15 +84,6 @@
     *ch = *assign;
 }
 
-/* ?compare@?$char_traits@_W@std@@SAHPB_W0I@Z */
-/* ?compare@?$char_traits@_W@std@@SAHPEB_W0_K@Z */
-static int CDECL MSVCP_char_traits_wchar_compare(const wchar_t *s1,
-        const wchar_t *s2, MSVCP_size_t count)
-{
-    int ret = memcmp(s1, s2, count * sizeof(wchar_t));
-    return (ret>0 ? 1 : (ret<0 ? -1 : 0));
-}
-
 /* ?length@?$char_traits@_W@std@@SAIPB_W@Z */
 /* ?length@?$char_traits@_W@std@@SA_KPEB_W@Z */
 static MSVCP_size_t CDECL MSVCP_char_traits_wchar_length(const wchar_t *str)
@@ -162,20 +106,6 @@
     return memcpy(dest, src, count * sizeof(wchar_t));
 }
 
-/* ?find@?$char_traits@_W@std@@SAPB_WPB_WIAB_W@Z */
-/* ?find@?$char_traits@_W@std@@SAPEB_WPEB_W_KAEB_W@Z */
-static const wchar_t* CDECL MSVCP_char_traits_wchar_find(
-        const wchar_t *str, MSVCP_size_t range, const wchar_t *c)
-{
-    MSVCP_size_t i=0;
-
-    for(i=0; i<range; i++)
-        if(str[i] == *c)
-            return str+i;
-
-    return NULL;
-}
-
 /* ?_Move_s@?$char_traits@_W@std@@SAPA_WPA_WIPB_WI@Z */
 /* ?_Move_s@?$char_traits@_W@std@@SAPEA_WPEA_W_KPEB_W1@Z */
 static wchar_t* CDECL MSVCP_char_traits_wchar__Move_s(wchar_t *dest,
@@ -191,30 +121,7 @@
     return memmove(dest, src, count * sizeof(WCHAR));
 }
 
-/* ?assign@?$char_traits@_W@std@@SAPA_WPA_WI_W@Z */
-/* ?assign@?$char_traits@_W@std@@SAPEA_WPEA_W_K_W@Z */
-static wchar_t* CDECL MSVCP_char_traits_wchar_assignn(wchar_t *str,
-        MSVCP_size_t num, wchar_t c)
-{
-    MSVCP_size_t i;
-
-    for(i=0; i<num; i++)
-        str[i] = c;
-
-    return str;
-}
-
-
 /* _String_base */
-/* ?_Xlen@_String_base@std@@SAXXZ */
-static void  CDECL MSVCP__String_base_Xlen(void)
-{
-    static const char msg[] = "string too long";
-
-    TRACE("\n");
-    throw_exception(EXCEPTION_LENGTH_ERROR, msg);
-}
-
 /* ?_Xran@_String_base@std@@SAXXZ */
 static void CDECL MSVCP__String_base_Xran(void)
 {
@@ -232,8 +139,7 @@
 
 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEPADXZ */
 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAPEADXZ */
-DEFINE_THISCALL_WRAPPER(basic_string_char_ptr, 4)
-char* __thiscall basic_string_char_ptr(basic_string_char *this)
+static char* basic_string_char_ptr(basic_string_char *this)
 {
     if(this->res == BUF_SIZE_CHAR-1)
         return this->data.buf;
@@ -242,8 +148,7 @@
 
 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ */
 /* ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEBAPEBDXZ */
-DEFINE_THISCALL_WRAPPER(basic_string_char_const_ptr, 4)
-const char* __thiscall basic_string_char_const_ptr(const basic_string_char *this)
+static const char* basic_string_char_const_ptr(const basic_string_char *this)
 {
     if(this->res == BUF_SIZE_CHAR-1)
         return this->data.buf;
@@ -252,8 +157,7 @@
 
 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z */
 /* ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_eos, 8)
-void __thiscall basic_string_char_eos(basic_string_char *this, MSVCP_size_t len)
+static void basic_string_char_eos(basic_string_char *this, MSVCP_size_t len)
 {
     static const char nullbyte = '\0';
 
@@ -263,8 +167,7 @@
 
 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z */
 /* ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_NPEBD@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_inside, 8)
-MSVCP_bool __thiscall basic_string_char_inside(
+static MSVCP_bool basic_string_char_inside(
         basic_string_char *this, const char *ptr)
 {
     char *cstr = basic_string_char_ptr(this);
@@ -274,8 +177,7 @@
 
 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z */
 /* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_N_K@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_tidy, 12)
-void __thiscall basic_string_char_tidy(basic_string_char *this,
+static void basic_string_char_tidy(basic_string_char *this,
         MSVCP_bool built, MSVCP_size_t new_size)
 {
     if(built && BUF_SIZE_CHAR<=this->res) {
@@ -290,19 +192,9 @@
     basic_string_char_eos(this, new_size);
 }
 
-/* Exported only from msvcp60/70 */
-/* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z */
-/* ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAX_N@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_tidy_built, 8)
-void __thiscall basic_string_char_tidy_built(basic_string_char *this, MSVCP_bool built)
-{
-    basic_string_char_tidy(this, built, 0);
-}
-
 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z */
 /* ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAA_N_K_N@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_grow, 12)
-MSVCP_bool __thiscall basic_string_char_grow(
+static MSVCP_bool basic_string_char_grow(
         basic_string_char *this, MSVCP_size_t new_size, MSVCP_bool trim)
 {
     if(this->res < new_size) {
@@ -340,46 +232,9 @@
     return (new_size>0);
 }
 
-/* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */
-/* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char__Copy, 12)
-void __thiscall basic_string_char__Copy(basic_string_char *this,
-        MSVCP_size_t new_size, MSVCP_size_t copy_len)
-{
-    TRACE("%p %lu %lu\n", this, new_size, copy_len);
-
-    if(!basic_string_char_grow(this, new_size, FALSE))
-        return;
-    basic_string_char_eos(this, copy_len);
-}
-
-/* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
-/* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KA_KV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
-static MSVCP_size_t __cdecl MSVCP_basic_string_char_Pdif(String_iterator_char i1, String_iterator_char i2)
-{
-    TRACE("(%p %p) (%p %p)\n", i1.bstr, i1.pos, i2.bstr, i2.pos);
-
-    if((!i1.bstr && i1.pos) || i1.bstr!=i2.bstr) {
-        _invalid_parameter(NULL, NULL, NULL, 0, 0);
-        return 0;
-    }
-
-    return !i1.pos ? 0 : i1.pos-i2.pos;
-}
-
-/* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
-/* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator, 8)
-allocator* __thiscall basic_string_char_get_allocator(const basic_string_char *this, allocator *ret)
-{
-    TRACE("%p\n", this);
-    return ret;
-}
-
 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z */
 /* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_erase, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_erase(
+static basic_string_char* MSVCP_basic_string_char_erase(
         basic_string_char *this, MSVCP_size_t pos, MSVCP_size_t len)
 {
     TRACE("%p %lu %lu\n", this, pos, len);
@@ -400,48 +255,9 @@
     return this;
 }
 
-/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
-/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range, 24)
-String_iterator_char* __thiscall basic_string_char_erase_iter_range(basic_string_char *this,
-        String_iterator_char *ret, String_iterator_char beg, String_iterator_char end)
-{
-    MSVCP_size_t off;
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_ptr(this);
-    off = MSVCP_basic_string_char_Pdif(beg, *ret);
-
-    MSVCP_basic_string_char_erase(this, off, MSVCP_basic_string_char_Pdif(end, beg));
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_ptr(this)+off;
-    return ret;
-}
-
-/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter, 16)
-String_iterator_char* __thiscall basic_string_char_erase_iter(basic_string_char *this,
-        String_iterator_char *ret, String_iterator_char pos)
-{
-    MSVCP_size_t off;
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_ptr(this);
-    off = MSVCP_basic_string_char_Pdif(pos, *ret);
-
-    MSVCP_basic_string_char_erase(this, off, 1);
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_ptr(this)+off;
-    return ret;
-}
-
 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_substr, 16)
-basic_string_char* __thiscall MSVCP_basic_string_char_assign_substr(
+static basic_string_char* MSVCP_basic_string_char_assign_substr(
         basic_string_char *this, const basic_string_char *assign,
         MSVCP_size_t pos, MSVCP_size_t len)
 {
@@ -465,12 +281,9 @@
     return this;
 }
 
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_assign(
+static basic_string_char* MSVCP_basic_string_char_assign(
         basic_string_char *this, const basic_string_char *assign)
 {
     return MSVCP_basic_string_char_assign_substr(this, assign,
@@ -479,8 +292,7 @@
 
 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
 /* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr_len, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_assign_cstr_len(
+static basic_string_char* MSVCP_basic_string_char_assign_cstr_len(
         basic_string_char *this, const char *str, MSVCP_size_t len)
 {
     TRACE("%p %s %lu\n", this, debugstr_an(str, len), len);
@@ -497,138 +309,28 @@
     return this;
 }
 
-/* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
-/* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ch, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_assign_ch(
-        basic_string_char *this, char ch)
-{
-    return MSVCP_basic_string_char_assign_cstr_len(this, &ch, 1);
-}
-
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
 /* ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_cstr, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_assign_cstr(
+static basic_string_char* MSVCP_basic_string_char_assign_cstr(
         basic_string_char *this, const char *str)
 {
     return MSVCP_basic_string_char_assign_cstr_len(this, str,
             MSVCP_char_traits_char_length(str));
 }
 
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assignn, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_assignn(
-        basic_string_char *this, MSVCP_size_t count, char ch)
-{
-    TRACE("%p %ld %c\n", this, count, ch);
-
-    basic_string_char_grow(this, count, FALSE);
-    MSVCP_char_traits_char_assignn(basic_string_char_ptr(this), count, ch);
-    basic_string_char_eos(this, count);
-    return this;
-}
-
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_ptr_ptr, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_assign_ptr_ptr(
-        basic_string_char *this, const char *first, const char *last)
-{
-    return MSVCP_basic_string_char_assign_cstr_len(this, first, last-first);
-}
-
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
-/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_assign_iter, 20)
-basic_string_char* __thiscall MSVCP_basic_string_char_assign_iter(basic_string_char *this,
-        String_iterator_char beg, String_iterator_char end)
-{
-    return MSVCP_basic_string_char_assign_ptr_ptr(this, beg.pos, end.pos);
-}
-
-/* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXIID@Z */
-/* ?_Chassign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0D@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Chassign, 16)
-void __thiscall MSVCP_basic_string_char_Chassign(basic_string_char *this,
-        MSVCP_size_t off, MSVCP_size_t count, char ch)
-{
-    TRACE("%p %lu %lu %c\n", this, off, count, ch);
-    MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+off, count, ch);
-}
-
-/* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z */
-/* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s, 20)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_Copy_s(const basic_string_char *this,
-        char *dest, MSVCP_size_t size, MSVCP_size_t count, MSVCP_size_t off)
-{
-    TRACE("%p %p %lu %lu %lu\n", this, dest, size, count, off);
-
-    if(this->size < off)
-        MSVCP__String_base_Xran();
-
-    if(count > this->size-off)
-        count = this->size-off;
-
-    MSVCP_char_traits_char__Copy_s(dest, size,
-            basic_string_char_const_ptr(this)+off, count);
-    return count;
-}
-
-/* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */
-/* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_copy, 16)
-MSVCP_size_t __thiscall basic_string_char_copy(const basic_string_char *this,
-        char *dest, MSVCP_size_t count, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_Copy_s(this, dest, count, count, off);
-}
-
 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
 /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */
 /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_c_str, 4)
-const char* __thiscall MSVCP_basic_string_char_c_str(const basic_string_char *this)
+const char* MSVCP_basic_string_char_c_str(const basic_string_char *this)
 {
     TRACE("%p\n", this);
     return basic_string_char_const_ptr(this);
 }
 
-/* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
-/* ?capacity@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_capacity, 4)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_capacity(basic_string_char *this)
-{
-    TRACE("%p\n", this);
-    return this->res;
-}
-
-/* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
-/* ?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve, 8)
-void __thiscall MSVCP_basic_string_char_reserve(basic_string_char *this, MSVCP_size_t size)
-{
-    MSVCP_size_t len;
-
-    TRACE("%p %ld\n", this, size);
-
-    len = this->size;
-    if(len > size)
-        return;
-
-    basic_string_char_grow(this, size, FALSE);
-    basic_string_char_eos(this, len);
-}
-
 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor, 4)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor(basic_string_char *this)
+basic_string_char* MSVCP_basic_string_char_ctor(basic_string_char *this)
 {
     TRACE("%p\n", this);
 
@@ -638,8 +340,7 @@
 
 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z */
 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_copy_ctor, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_copy_ctor(
+basic_string_char* MSVCP_basic_string_char_copy_ctor(
     basic_string_char *this, const basic_string_char *copy)
 {
     TRACE("%p %p\n", this, copy);
@@ -651,8 +352,7 @@
 
 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z */
 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_cstr(
+basic_string_char* MSVCP_basic_string_char_ctor_cstr(
         basic_string_char *this, const char *str)
 {
     TRACE("%p %s\n", this, debugstr_a(str));
@@ -662,19 +362,9 @@
     return this;
 }
 
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBDAEBV?$allocator@D@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_alloc, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_cstr_alloc(
-        basic_string_char *this, const char *str, const void *alloc)
-{
-    return MSVCP_basic_string_char_ctor_cstr(this, str);
-}
-
 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDI@Z */
 /* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_cstr_len(
+basic_string_char* MSVCP_basic_string_char_ctor_cstr_len(
         basic_string_char *this, const char *str, MSVCP_size_t len)
 {
     TRACE("%p %s %ld\n", this, debugstr_an(str, len), len);
@@ -684,95 +374,9 @@
     return this;
 }
 
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDIABV?$allocator@D@1@@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD_KAEBV?$allocator@D@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_cstr_len_alloc, 16)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_cstr_len_alloc(
-        basic_string_char *this, const char *str, MSVCP_size_t len, const void *alloc)
-{
-    return MSVCP_basic_string_char_ctor_cstr_len(this, str, len);
-}
-
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@II@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr, 16)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_substr(
-        basic_string_char *this, const basic_string_char *assign,
-        MSVCP_size_t pos, MSVCP_size_t len)
-{
-    TRACE("%p %p %lu %lu\n", this, assign, pos, len);
-
-    basic_string_char_tidy(this, FALSE, 0);
-    MSVCP_basic_string_char_assign_substr(this, assign, pos, len);
-    return this;
-}
-
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@IIABV?$allocator@D@1@@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@D@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr_alloc, 20)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_substr_alloc(
-        basic_string_char *this, const basic_string_char *assign,
-        MSVCP_size_t pos, MSVCP_size_t len, const void *alloc)
-{
-    return MSVCP_basic_string_char_ctor_substr(this, assign, pos, len);
-}
-
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$allocator@D@1@@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$allocator@D@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_alloc, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_alloc(
-        basic_string_char *this, const void *alloc)
-{
-    TRACE("%p %p\n", this, alloc);
-
-    basic_string_char_tidy(this, FALSE, 0);
-    return this;
-}
-
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_ch(basic_string_char *this,
-        MSVCP_size_t count, char ch)
-{
-    TRACE("%p %ld %c\n", this, count, ch);
-
-    basic_string_char_tidy(this, FALSE, 0);
-    MSVCP_basic_string_char_assignn(this, count, ch);
-    return this;
-}
-
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@IDABV?$allocator@D@1@@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@_KDAEBV?$allocator@D@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ch_alloc, 16)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_ch_alloc(basic_string_char *this,
-        MSVCP_size_t count, char ch, const void *alloc)
-{
-    return MSVCP_basic_string_char_ctor_ch(this, count, ch);
-}
-
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD0@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_ptr_ptr, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_ptr_ptr(basic_string_char *this,
-        const char *first, const char *last)
-{
-    return MSVCP_basic_string_char_ctor_cstr_len(this, first, last-first);
-}
-
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@1@0@Z */
-/* ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@1@0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_iter, 20)
-basic_string_char* __thiscall MSVCP_basic_string_char_ctor_iter(basic_string_char *this,
-        String_iterator_char beg, String_iterator_char end)
-{
-    return MSVCP_basic_string_char_ctor_cstr_len(this, beg.pos, end.pos-beg.pos);
-}
-
 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ */
 /* ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor, 4)
-void __thiscall MSVCP_basic_string_char_dtor(basic_string_char *this)
+void MSVCP_basic_string_char_dtor(basic_string_char *this)
 {
     TRACE("%p\n", this);
     basic_string_char_tidy(this, TRUE, 0);
@@ -782,1046 +386,12 @@
 /* ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
 /* ?length@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length, 4)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_length(const basic_string_char *this)
+MSVCP_size_t MSVCP_basic_string_char_length(const basic_string_char *this)
 {
     TRACE("%p\n", this);
     return this->size;
 }
 
-/* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ */
-/* ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(basic_string_char_max_size, 4)
-MSVCP_size_t __thiscall basic_string_char_max_size(const basic_string_char *this)
-{
-    TRACE("%p\n", this);
-    return MSVCP_allocator_char_max_size(this->allocator)-1;
-}
-
-/* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ */
-/* ?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_empty, 4)
-MSVCP_bool __thiscall MSVCP_basic_string_char_empty(basic_string_char *this)
-{
-    TRACE("%p\n", this);
-    return this->size == 0;
-}
-
-/* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
-/* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEAV12@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap, 8)
-void __thiscall MSVCP_basic_string_char_swap(basic_string_char *this, basic_string_char *str)
-{
-    if(this != str) {
-        char tmp[sizeof(this->data)];
-        const MSVCP_size_t size = this->size;
-        const MSVCP_size_t res = this->res;
-
-        memcpy(tmp, this->data.buf, sizeof(this->data));
-        memcpy(this->data.buf, str->data.buf, sizeof(this->data));
-        memcpy(str->data.buf, tmp, sizeof(this->data));
-
-        this->size = str->size;
-        this->res = str->res;
-
-        str->size = size;
-        str->res = res;
-    }
-}
-
-/* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
-/* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr, 16)
-basic_string_char* __thiscall MSVCP_basic_string_char_substr(basic_string_char *this,
-        basic_string_char *ret, MSVCP_size_t off, MSVCP_size_t len)
-{
-    TRACE("%p %lu %lu\n", this, off, len);
-
-    MSVCP_basic_string_char_ctor_substr(ret, this, off, len);
-    return ret;
-}
-
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr, 16)
-basic_string_char* __thiscall MSVCP_basic_string_char_append_substr(basic_string_char *this,
-        const basic_string_char *append, MSVCP_size_t offset, MSVCP_size_t count)
-{
-    TRACE("%p %p %lu %lu\n", this, append, offset, count);
-
-    if(append->size < offset)
-        MSVCP__String_base_Xran();
-
-    if(count > append->size-offset)
-        count = append->size-offset;
-
-    if(MSVCP_basic_string_char_npos-this->size<=count || this->size+count<this->size)
-        MSVCP__String_base_Xlen();
-
-    if(basic_string_char_grow(this, this->size+count, FALSE)) {
-        MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size,
-                this->res-this->size, basic_string_char_const_ptr(append)+offset, count);
-        basic_string_char_eos(this, this->size+count);
-    }
-
-    return this;
-}
-
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z */
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@@Z */
-/* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z */
-/* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_append(
-        basic_string_char *this, const basic_string_char *append)
-{
-    return MSVCP_basic_string_char_append_substr(this, append,
-            0, MSVCP_basic_string_char_npos);
-}
-
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z */
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr_len, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_append_cstr_len(
-        basic_string_char *this, const char *append, MSVCP_size_t count)
-{
-    TRACE("%p %s %lu\n", this, debugstr_an(append, count), count);
-
-    if(basic_string_char_inside(this, append))
-        return MSVCP_basic_string_char_append_substr(this, this,
-                append-basic_string_char_ptr(this), count);
-
-    if(MSVCP_basic_string_char_npos-this->size<=count || this->size+count<this->size)
-        MSVCP__String_base_Xlen();
-
-    if(basic_string_char_grow(this, this->size+count, FALSE)) {
-        MSVCP_char_traits_char__Copy_s(basic_string_char_ptr(this)+this->size,
-                this->res-this->size, append, count);
-        basic_string_char_eos(this, this->size+count);
-    }
-
-    return this;
-}
-
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z */
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD@Z */
-/* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z */
-/* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@PEBD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_cstr, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_append_cstr(
-        basic_string_char *this, const char *append)
-{
-    return MSVCP_basic_string_char_append_cstr_len(this, append,
-            MSVCP_char_traits_char_length(append));
-}
-
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD0@Z */
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@PEBD0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_beg_end, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_append_beg_end(
-        basic_string_char *this, const char *beg, const char *end)
-{
-    return MSVCP_basic_string_char_append_cstr_len(this, beg, end-beg);
-}
-
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_iter, 20)
-basic_string_char* __thiscall MSVCP_basic_string_char_append_iter(
-        basic_string_char *this, String_iterator_char beg, String_iterator_char end)
-{
-    return MSVCP_basic_string_char_append_cstr_len(this, beg.pos, end.pos-beg.pos);
-}
-
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z */
-/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_len_ch, 12)
-basic_string_char* __thiscall MSVCP_basic_string_char_append_len_ch(
-        basic_string_char *this, MSVCP_size_t count, char ch)
-{
-    TRACE("%p %lu %c\n", this, count, ch);
-
-    if(MSVCP_basic_string_char_npos-this->size <= count)
-        MSVCP__String_base_Xlen();
-
-    if(basic_string_char_grow(this, this->size+count, FALSE)) {
-        MSVCP_char_traits_char_assignn(basic_string_char_ptr(this)+this->size, count, ch);
-        basic_string_char_eos(this, this->size+count);
-    }
-
-    return this;
-}
-
-/* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z */
-/* ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV01@D@Z */
-/* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXD@Z */
-/* ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_ch, 8)
-basic_string_char* __thiscall MSVCP_basic_string_char_append_ch(
-        basic_string_char *this, char ch)
-{
-    return MSVCP_basic_string_char_append_len_ch(this, 1, ch);
-}
-
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBDI@Z */
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr_len, 20)
-int __thiscall MSVCP_basic_string_char_compare_substr_cstr_len(
-            const basic_string_char *this, MSVCP_size_t pos, MSVCP_size_t num,
-            const char *str, MSVCP_size_t count)
-{
-    int ans;
-
-    TRACE("%p %lu %lu %s %lu\n", this, pos, num, debugstr_an(str, count), count);
-
-    if(this->size < pos)
-        MSVCP__String_base_Xran();
-
-    if(num > this->size-pos)
-        num = this->size-pos;
-
-    ans = MSVCP_char_traits_char_compare(basic_string_char_const_ptr(this)+pos,
-            str, num>count ? count : num);
-    if(ans)
-        return ans;
-
-    if(num > count)
-        ans = 1;
-    else if(num < count)
-        ans = -1;
-    return ans;
-}
-
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIPBD@Z */
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0PEBD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_cstr, 16)
-int __thiscall MSVCP_basic_string_char_compare_substr_cstr(const basic_string_char *this,
-        MSVCP_size_t pos, MSVCP_size_t num, const char *str)
-{
-    return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos, num,
-            str, MSVCP_char_traits_char_length(str));
-}
-
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z */
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHPEBD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_cstr, 8)
-int __thiscall MSVCP_basic_string_char_compare_cstr(
-        const basic_string_char *this, const char *str)
-{
-    return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size,
-            str, MSVCP_char_traits_char_length(str));
-}
-
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@II@Z */
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@00@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr_substr, 24)
-int __thiscall MSVCP_basic_string_char_compare_substr_substr(
-        const basic_string_char *this, MSVCP_size_t pos, MSVCP_size_t num,
-        const basic_string_char *compare, MSVCP_size_t off, MSVCP_size_t count)
-{
-    TRACE("%p %lu %lu %p %lu %lu\n", this, pos, num, compare, off, count);
-
-    if(compare->size < off)
-        MSVCP__String_base_Xran();
-
-    if(count > compare->size-off)
-        count = compare->size-off;
-
-    return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos, num,
-            basic_string_char_const_ptr(compare)+off, count);
-}
-
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHIIABV12@@Z */
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAH_K0AEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare_substr, 16)
-int __thiscall MSVCP_basic_string_char_compare_substr(
-        const basic_string_char *this, MSVCP_size_t pos, MSVCP_size_t num,
-        const basic_string_char *compare)
-{
-    return MSVCP_basic_string_char_compare_substr_cstr_len(this, pos, num,
-            basic_string_char_const_ptr(compare), compare->size);
-}
-
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV12@@Z */
-/* ?compare@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAHAEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_compare, 8)
-int __thiscall MSVCP_basic_string_char_compare(
-        const basic_string_char *this, const basic_string_char *compare)
-{
-    return MSVCP_basic_string_char_compare_substr_cstr_len(this, 0, this->size,
-            basic_string_char_const_ptr(compare), compare->size);
-}
-
-/* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
-/* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_cstr_substr(
-        const basic_string_char *this, const char *find, MSVCP_size_t pos, MSVCP_size_t len)
-{
-    const char *p, *end;
-
-    TRACE("%p %s %lu %lu\n", this, debugstr_an(find, len), pos, len);
-
-    if(len==0 && pos<=this->size)
-        return pos;
-
-    end = basic_string_char_const_ptr(this)+this->size-len+1;
-    for(p=basic_string_char_const_ptr(this)+pos; p<end; p++) {
-        p = MSVCP_char_traits_char_find(p, end-p, find);
-        if(!p)
-            break;
-
-        if(!MSVCP_char_traits_char_compare(p, find, len))
-            return p-basic_string_char_const_ptr(this);
-    }
-
-    return MSVCP_basic_string_char_npos;
-}
-
-/* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
-/* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_cstr_off, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_cstr_off(
-        const basic_string_char *this, const char *find, MSVCP_size_t pos)
-{
-    return MSVCP_basic_string_char_find_cstr_substr(this, find, pos,
-            MSVCP_char_traits_char_length(find));
-}
-
-/* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
-/* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_off, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_off(
-        const basic_string_char *this, const basic_string_char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_cstr_substr(this,
-            basic_string_char_const_ptr(find), off, find->size);
-}
-
-/* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
-/* ?find@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_ch(
-        const basic_string_char *this, char ch, MSVCP_size_t pos)
-{
-    return MSVCP_basic_string_char_find_cstr_substr(this, &ch, pos, 1);
-}
-
-/* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
-/* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_rfind_cstr_substr(
-        const basic_string_char *this, const char *find, MSVCP_size_t pos, MSVCP_size_t len)
-{
-    const char *p, *end;
-
-    TRACE("%p %s %lu %lu\n", this, debugstr_an(find, len), pos, len);
-
-    if(len==0)
-        return pos<this->size ? pos : this->size;
-
-    if(len > this->size)
-        return MSVCP_basic_string_char_npos;
-
-    if(pos > this->size-len+1)
-        pos = this->size-len+1;
-    end = basic_string_char_const_ptr(this);
-    for(p=end+pos; p>=end; p--) {
-        if(*p==*find && !MSVCP_char_traits_char_compare(p, find, len))
-            return p-basic_string_char_const_ptr(this);
-    }
-
-    return MSVCP_basic_string_char_npos;
-}
-
-/* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
-/* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_cstr_off, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_rfind_cstr_off(
-        const basic_string_char *this, const char *find, MSVCP_size_t pos)
-{
-    return MSVCP_basic_string_char_rfind_cstr_substr(this, find, pos,
-            MSVCP_char_traits_char_length(find));
-}
-
-/* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
-/* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_off, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_rfind_off(
-        const basic_string_char *this, const basic_string_char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_rfind_cstr_substr(this,
-            basic_string_char_const_ptr(find), off, find->size);
-}
-
-/* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
-/* ?rfind@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rfind_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_rfind_ch(
-        const basic_string_char *this, char ch, MSVCP_size_t pos)
-{
-    return MSVCP_basic_string_char_rfind_cstr_substr(this, &ch, pos, 1);
-}
-
-/* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
-/* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_first_of_cstr_substr(
-        const basic_string_char *this, const char *find, MSVCP_size_t off, MSVCP_size_t len)
-{
-    const char *p, *end;
-
-    TRACE("%p %p %lu %lu\n", this, find, off, len);
-
-    if(len>0 && off<this->size) {
-        end = basic_string_char_const_ptr(this)+this->size;
-        for(p=basic_string_char_const_ptr(this)+off; p<end; p++)
-            if(MSVCP_char_traits_char_find(find, len, p))
-                return p-basic_string_char_const_ptr(this);
-    }
-
-    return MSVCP_basic_string_char_npos;
-}
-
-/* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
-/* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_first_of(
-        const basic_string_char *this, const basic_string_char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_first_of_cstr_substr(this,
-            basic_string_char_const_ptr(find), off, find->size);
-}
-
-/* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
-/* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_cstr, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_first_of_cstr(
-        const basic_string_char *this, const char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_first_of_cstr_substr(
-            this, find, off, MSVCP_char_traits_char_length(find));
-}
-
-/* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
-/* ?find_first_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_of_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_first_of_ch(
-        const basic_string_char *this, char ch, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_first_of_cstr_substr(this, &ch, off, 1);
-}
-
-/* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
-/* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_first_not_of_cstr_substr(
-        const basic_string_char *this, const char *find, MSVCP_size_t off, MSVCP_size_t len)
-{
-    const char *p, *end;
-
-    TRACE("%p %p %lu %lu\n", this, find, off, len);
-
-    if(off<this->size) {
-        end = basic_string_char_const_ptr(this)+this->size;
-        for(p=basic_string_char_const_ptr(this)+off; p<end; p++)
-            if(!MSVCP_char_traits_char_find(find, len, p))
-                return p-basic_string_char_const_ptr(this);
-    }
-
-    return MSVCP_basic_string_char_npos;
-}
-
-/* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
-/* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_first_not_of(
-        const basic_string_char *this, const basic_string_char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this,
-            basic_string_char_const_ptr(find), off, find->size);
-}
-
-/* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
-/* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_cstr, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_first_not_of_cstr(
-        const basic_string_char *this, const char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_first_not_of_cstr_substr(
-            this, find, off, MSVCP_char_traits_char_length(find));
-}
-
-/* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
-/* ?find_first_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_first_not_of_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_first_not_of_ch(
-        const basic_string_char *this, char ch, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_first_not_of_cstr_substr(this, &ch, off, 1);
-}
-
-/* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
-/* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_of_cstr_substr(
-        const basic_string_char *this, const char *find, MSVCP_size_t off, MSVCP_size_t len)
-{
-    const char *p, *beg;
-
-    TRACE("%p %p %lu %lu\n", this, find, off, len);
-
-    if(len>0 && this->size>0) {
-        if(off >= this->size)
-            off = this->size-1;
-
-        beg = basic_string_char_const_ptr(this);
-        for(p=beg+off; p>=beg; p--)
-            if(MSVCP_char_traits_char_find(find, len, p))
-                return p-beg;
-    }
-
-    return MSVCP_basic_string_char_npos;
-}
-
-/* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
-/* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_of(
-        const basic_string_char *this, const basic_string_char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_last_of_cstr_substr(this,
-            basic_string_char_const_ptr(find), off, find->size);
-}
-
-/* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
-/* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_cstr, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_of_cstr(
-        const basic_string_char *this, const char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_last_of_cstr_substr(
-            this, find, off, MSVCP_char_traits_char_length(find));
-}
-
-/* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
-/* ?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_of_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_of_ch(
-        const basic_string_char *this, char ch, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_last_of_cstr_substr(this, &ch, off, 1);
-}
-
-/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDII@Z */
-/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_not_of_cstr_substr(
-        const basic_string_char *this, const char *find, MSVCP_size_t off, MSVCP_size_t len)
-{
-    const char *p, *beg;
-
-    TRACE("%p %p %lu %lu\n", this, find, off, len);
-
-    if(len>0 && this->size>0) {
-        if(off >= this->size)
-            off = this->size-1;
-
-        beg = basic_string_char_const_ptr(this);
-        for(p=beg+off; p>=beg; p--)
-            if(!MSVCP_char_traits_char_find(find, len, p))
-                return p-beg;
-    }
-
-    return MSVCP_basic_string_char_npos;
-}
-
-/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIABV12@I@Z */
-/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_not_of(
-        const basic_string_char *this, const basic_string_char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this,
-            basic_string_char_const_ptr(find), off, find->size);
-}
-
-/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z */
-/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_cstr, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_not_of_cstr(
-        const basic_string_char *this, const char *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_last_not_of_cstr_substr(
-            this, find, off, MSVCP_char_traits_char_length(find));
-}
-
-/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIDI@Z */
-/* ?find_last_not_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_find_last_not_of_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_not_of_ch(
-        const basic_string_char *this, char ch, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_char_find_last_not_of_cstr_substr(this, &ch, off, 1);
-}
-
-/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
-/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at, 8)
-char* __thiscall MSVCP_basic_string_char_operator_at(
-        basic_string_char *this, MSVCP_size_t pos)
-{
-    TRACE("%p %lu\n", this, pos);
-
-    assert(this->size >= pos);
-    return basic_string_char_ptr(this)+pos;
-}
-
-/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
-/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_operator_at, 8)
-const char* __thiscall MSVCP_basic_string_char_const_operator_at(
-        const basic_string_char *this, MSVCP_size_t pos)
-{
-    TRACE("%p %lu\n", this, pos);
-
-    assert(this->size >= pos);
-    return basic_string_char_const_ptr(this)+pos;
-}
-
-/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
-/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_at_noverify, 8)
-char* __thiscall MSVCP_basic_string_char_operator_at_noverify(
-        basic_string_char *this, size_t_noverify pos)
-{
-    TRACE("%p %lu\n", this, pos.val);
-    return basic_string_char_ptr(this)+pos.val;
-}
-
-/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
-/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_operator_const_at_noverify, 8)
-const char* __thiscall MSVCP_basic_string_char_operator_const_at_noverify(
-        const basic_string_char *this, size_t_noverify pos)
-{
-    TRACE("%p %lu\n", this, pos.val);
-    return basic_string_char_const_ptr(this)+pos.val;
-}
-
-/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
-/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_at, 8)
-char* __thiscall MSVCP_basic_string_char_at(
-        basic_string_char *this, MSVCP_size_t pos)
-{
-    TRACE("%p %lu\n", this, pos);
-
-    if(this->size <= pos)
-        MSVCP__String_base_Xran();
-
-    return basic_string_char_ptr(this)+pos;
-}
-
-/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
-/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_const_at, 8)
-const char* __thiscall MSVCP_basic_string_char_const_at(
-        const basic_string_char *this, MSVCP_size_t pos)
-{
-    TRACE("%p %lu\n", this, pos);
-
-    if(this->size <= pos)
-        MSVCP__String_base_Xran();
-
-    return basic_string_char_const_ptr(this)+pos;
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr_len, 20)
-basic_string_char* __thiscall basic_string_char_replace_cstr_len(basic_string_char *this,
-        MSVCP_size_t off, MSVCP_size_t len, const char *str, MSVCP_size_t str_len)
-{
-    MSVCP_size_t inside_pos = -1;
-    char *ptr = basic_string_char_ptr(this);
-
-    TRACE("%p %ld %ld %p %ld\n", this, off, len, str, str_len);
-
-    if(this->size < off)
-        MSVCP__String_base_Xran();
-
-    if(len > this->size-off)
-        len = this->size-off;
-
-    if(MSVCP_basic_string_char_npos-str_len <= this->size-len)
-        MSVCP__String_base_Xlen();
-
-    if(basic_string_char_inside(this, str))
-        inside_pos = str-ptr;
-
-    if(len < str_len) {
-        basic_string_char_grow(this, this->size-len+str_len, FALSE);
-        ptr = basic_string_char_ptr(this);
-    }
-
-    if(inside_pos == -1) {
-        memmove(ptr+off+str_len, ptr+off+len, (this->size-off-len)*sizeof(char));
-        memcpy(ptr+off, str, str_len*sizeof(char));
-    } else if(len >= str_len) {
-        memmove(ptr+off, ptr+inside_pos, str_len*sizeof(char));
-        memmove(ptr+off+str_len, ptr+off+len, (this->size-off-len)*sizeof(char));
-    } else {
-        MSVCP_size_t size;
-
-        memmove(ptr+off+str_len, ptr+off+len, (this->size-off-len)*sizeof(char));
-
-        if(inside_pos < off+len) {
-            size = off+len-inside_pos;
-            if(size > str_len)
-                size = str_len;
-            memmove(ptr+off, ptr+inside_pos, size*sizeof(char));
-        } else {
-            size = 0;
-        }
-
-        if(str_len > size)
-            memmove(ptr+off+size, ptr+off+str_len, (str_len-size)*sizeof(char));
-    }
-
-    basic_string_char_eos(this, this->size-len+str_len);
-    return this;
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBD@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_cstr, 16)
-basic_string_char* __thiscall basic_string_char_replace_cstr(basic_string_char *this,
-        MSVCP_size_t off, MSVCP_size_t len, const char *str)
-{
-    return basic_string_char_replace_cstr_len(this, off, len, str,
-            MSVCP_char_traits_char_length(str));
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@II@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_substr, 24)
-basic_string_char* __thiscall basic_string_char_replace_substr(basic_string_char *this, MSVCP_size_t off,
-        MSVCP_size_t len, const basic_string_char *str, MSVCP_size_t str_off, MSVCP_size_t str_len)
-{
-    if(str->size < str_off)
-        MSVCP__String_base_Xran();
-
-    if(str_len > str->size-str_off)
-        str_len = str->size-str_off;
-
-    return basic_string_char_replace_cstr_len(this, off, len,
-            basic_string_char_const_ptr(str)+str_off, str_len);
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIABV12@@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace, 16)
-basic_string_char* __thiscall basic_string_char_replace(basic_string_char *this,
-        MSVCP_size_t off, MSVCP_size_t len, const basic_string_char *str)
-{
-    return basic_string_char_replace_cstr_len(this, off, len,
-            basic_string_char_const_ptr(str), str->size);
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIID@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K00D@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_ch, 20)
-basic_string_char* __thiscall basic_string_char_replace_ch(basic_string_char *this,
-        MSVCP_size_t off, MSVCP_size_t len, MSVCP_size_t count, char ch)
-{
-    char *ptr = basic_string_char_ptr(this);
-
-    TRACE("%p %ld %ld %ld %c\n", this, off, len, count, ch);
-
-    if(this->size < off)
-        MSVCP__String_base_Xran();
-
-    if(len > this->size-off)
-        len = this->size-off;
-
-    if(MSVCP_basic_string_char_npos-count <= this->size-len)
-        MSVCP__String_base_Xlen();
-
-    if(len < count) {
-        basic_string_char_grow(this, this->size-len+count, FALSE);
-        ptr = basic_string_char_ptr(this);
-    }
-
-    memmove(ptr+off+count, ptr+off+len, (this->size-off-len)*sizeof(char));
-    MSVCP_char_traits_char_assignn(ptr+off, count, ch);
-    basic_string_char_eos(this, this->size-len+count);
-
-    return this;
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@000@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@000@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_iter, 36)
-basic_string_char* __thiscall basic_string_char_replace_iter_iter(basic_string_char *this,
-        String_iterator_char beg, String_iterator_char end,
-        String_iterator_char res_beg, String_iterator_char res_end)
-{
-    String_iterator_char begin = { this, basic_string_char_ptr(this) };
-    return basic_string_char_replace_cstr_len(this,
-            MSVCP_basic_string_char_Pdif(beg, begin), MSVCP_basic_string_char_Pdif(end, beg),
-            res_beg.pos, MSVCP_basic_string_char_Pdif(res_end, res_beg));
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0ABV12@@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0AEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_bstr, 24)
-basic_string_char* __thiscall basic_string_char_replace_iter_bstr(basic_string_char *this,
-        String_iterator_char beg, String_iterator_char end, const basic_string_char *str)
-{
-    String_iterator_char begin = { this, basic_string_char_ptr(this) };
-    return basic_string_char_replace(this, MSVCP_basic_string_char_Pdif(beg, begin),
-            MSVCP_basic_string_char_Pdif(end, beg), str);
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0ID@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0_KD@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ch, 28)
-basic_string_char* __thiscall basic_string_char_replace_iter_ch(basic_string_char *this,
-        String_iterator_char beg, String_iterator_char end, MSVCP_size_t count, char ch)
-{
-    String_iterator_char begin = { this, basic_string_char_ptr(this) };
-    return basic_string_char_replace_ch(this, MSVCP_basic_string_char_Pdif(beg, begin),
-            MSVCP_basic_string_char_Pdif(end, beg), count, ch);
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PBD1@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PEBD1@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_ptr_ptr, 28)
-basic_string_char* __thiscall basic_string_char_replace_iter_ptr_ptr(basic_string_char *this,
-        String_iterator_char beg, String_iterator_char end,
-        const char *res_beg, const char *res_end)
-{
-    String_iterator_char begin = { this, basic_string_char_ptr(this) };
-    return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg, begin),
-            MSVCP_basic_string_char_Pdif(end, beg), res_beg, res_end-res_beg);
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PBD@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PEBD@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr, 24)
-basic_string_char* __thiscall basic_string_char_replace_iter_cstr(basic_string_char *this,
-        String_iterator_char beg, String_iterator_char end, const char *str)
-{
-    String_iterator_char begin = { this, basic_string_char_ptr(this) };
-    return basic_string_char_replace_cstr(this, MSVCP_basic_string_char_Pdif(beg, begin),
-            MSVCP_basic_string_char_Pdif(end, beg), str);
-}
-
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PBDI@Z */
-/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0PEBD_K@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_replace_iter_cstr_len, 28)
-basic_string_char* __thiscall basic_string_char_replace_iter_cstr_len(basic_string_char *this,
-        String_iterator_char beg, String_iterator_char end, const char *str, MSVCP_size_t len)
-{
-    String_iterator_char begin = { this, basic_string_char_ptr(this) };
-    return basic_string_char_replace_cstr_len(this, MSVCP_basic_string_char_Pdif(beg, begin),
-            MSVCP_basic_string_char_Pdif(end, beg), str, len);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert, 12)
-basic_string_char* __thiscall basic_string_char_insert(basic_string_char *this,
-        MSVCP_size_t off, const basic_string_char *str)
-{
-    return basic_string_char_replace(this, off, 0, str);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IABV12@II@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_substr, 20)
-basic_string_char* __thiscall basic_string_char_insert_substr(
-        basic_string_char *this, MSVCP_size_t off, const basic_string_char *str,
-        MSVCP_size_t str_off, MSVCP_size_t str_count)
-{
-    return basic_string_char_replace_substr(this, off, 0, str, str_off, str_count);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBD@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr, 12)
-basic_string_char* __thiscall basic_string_char_insert_cstr(
-        basic_string_char *this, MSVCP_size_t off, const char *str)
-{
-    return basic_string_char_replace_cstr(this, off, 0, str);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IPBDI@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_KPEBD0@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_cstr_len, 16)
-basic_string_char* __thiscall basic_string_char_insert_cstr_len(basic_string_char *this,
-        MSVCP_size_t off, const char *str, MSVCP_size_t str_len)
-{
-    return basic_string_char_replace_cstr_len(this, off, 0, str, str_len);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IID@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0D@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_chn, 16)
-basic_string_char* __thiscall basic_string_char_insert_chn(basic_string_char *this,
-        MSVCP_size_t off, MSVCP_size_t count, char ch)
-{
-    return basic_string_char_replace_ch(this, off, 0, count, ch);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@ID@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@_KD@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_chn, 20)
-void __thiscall basic_string_char_insert_iter_chn(basic_string_char *this,
-        String_iterator_char where, MSVCP_size_t count, char ch)
-{
-    String_iterator_char iter = { this, basic_string_char_ptr(this) };
-    MSVCP_size_t off = MSVCP_basic_string_char_Pdif(where, iter);
-
-    basic_string_char_insert_chn(this, off, count, ch);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch, 20)
-String_iterator_char* __thiscall basic_string_char_insert_iter_ch(basic_string_char *this,
-        String_iterator_char *ret, String_iterator_char where, char ch)
-{
-    MSVCP_size_t off;
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_ptr(this);
-    off = MSVCP_basic_string_char_Pdif(where, *ret);
-
-    basic_string_char_insert_chn(this, off, 1, ch);
-    ret->pos = basic_string_char_ptr(this)+off;
-    return ret;
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null, 16)
-String_iterator_char* __thiscall basic_string_char_insert_iter_null(basic_string_char *this,
-        String_iterator_char *ret, String_iterator_char where)
-{
-    return basic_string_char_insert_iter_ch(this, ret, where, 0);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@00@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@00@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_beg_end, 28)
-void __thiscall basic_string_char_insert_iter_beg_end(basic_string_char *this,
-        String_iterator_char where, String_iterator_char beg, String_iterator_char end)
-{
-    basic_string_char_replace_iter_iter(this, where, where, beg, end);
-}
-
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD1@Z */
-/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PEBD1@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ptr_ptr, 20)
-void __thiscall basic_string_char_insert_iter_ptr_ptr(basic_string_char *this,
-        String_iterator_char where, const char *beg, const char *end)
-{
-    basic_string_char_replace_iter_ptr_ptr(this, where, where, beg, end);
-}
-
-/* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
-/* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize_ch, 12)
-void __thiscall MSVCP_basic_string_char_resize_ch(
-        basic_string_char *this, MSVCP_size_t size, char ch)
-{
-    TRACE("%p %lu %c\n", this, size, ch);
-
-    if(size <= this->size)
-        MSVCP_basic_string_char_erase(this, size, this->size);
-    else
-        MSVCP_basic_string_char_append_len_ch(this, size-this->size, ch);
-}
-
-/* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z */
-/* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_resize, 8)
-void __thiscall MSVCP_basic_string_char_resize(
-        basic_string_char *this, MSVCP_size_t size)
-{
-    MSVCP_basic_string_char_resize_ch(this, size, '\0');
-}
-
-/* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
-/* ?clear@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_clear, 4)
-void __thiscall MSVCP_basic_string_char_clear(basic_string_char *this)
-{
-    basic_string_char_eos(this, 0);
-}
-
-/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin, 8)
-String_iterator_char* __thiscall MSVCP_basic_string_char_begin(
-        basic_string_char *this, String_iterator_char *ret)
-{
-    TRACE("%p\n", this);
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_const_ptr(this);
-    return ret;
-}
-
-/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end, 8)
-String_iterator_char* __thiscall MSVCP_basic_string_char_end(
-        basic_string_char *this, String_iterator_char *ret)
-{
-    TRACE("%p\n", this);
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_const_ptr(this)+this->size;
-    return ret;
-}
-
-/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin, 8)
-String_reverse_iterator_char* __thiscall MSVCP_basic_string_char_rbegin(
-        basic_string_char *this, String_reverse_iterator_char *ret)
-{
-    TRACE("%p\n", this);
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_const_ptr(this)+this->size;
-    return ret;
-}
-
-/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend, 8)
-String_reverse_iterator_char* __thiscall MSVCP_basic_string_char_rend(
-        basic_string_char *this, String_reverse_iterator_char *ret)
-{
-    TRACE("%p\n", this);
-
-    ret->bstr = this;
-    ret->pos = basic_string_char_const_ptr(this);
-    return ret;
-}
-
 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
 /* basic_string<unsigned short, char_traits<unsigned short>, allocator<unsigned short>> */
 /* ?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2IB */
@@ -1834,8 +404,7 @@
 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAPEA_WXZ */
 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEPAGXZ */
 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAPEAGXZ */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_ptr, 4)
-wchar_t* __thiscall basic_string_wchar_ptr(basic_string_wchar *this)
+static wchar_t* basic_string_wchar_ptr(basic_string_wchar *this)
 {
     if(this->res == BUF_SIZE_WCHAR-1)
         return this->data.buf;
@@ -1846,8 +415,7 @@
 /* ?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEBAPEB_WXZ */
 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IBEPBGXZ */
 /* ?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEBAPEBGXZ */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_const_ptr, 4)
-const wchar_t* __thiscall basic_string_wchar_const_ptr(const basic_string_wchar *this)
+static const wchar_t* basic_string_wchar_const_ptr(const basic_string_wchar *this)
 {
     if(this->res == BUF_SIZE_WCHAR-1)
         return this->data.buf;
@@ -1858,8 +426,7 @@
 /* ?_Eos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K@Z */
 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXI@Z */
 /* ?_Eos@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_eos, 8)
-void __thiscall basic_string_wchar_eos(basic_string_wchar *this, MSVCP_size_t len)
+static void basic_string_wchar_eos(basic_string_wchar *this, MSVCP_size_t len)
 {
     static const wchar_t nullbyte_w = '\0';
 
@@ -1871,8 +438,7 @@
 /* ?_Inside@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_NPEB_W@Z */
 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NPBG@Z */
 /* ?_Inside@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_NPEBG@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_inside, 8)
-MSVCP_bool __thiscall basic_string_wchar_inside(
+static MSVCP_bool basic_string_wchar_inside(
         basic_string_wchar *this, const wchar_t *ptr)
 {
     wchar_t *cstr = basic_string_wchar_ptr(this);
@@ -1884,8 +450,7 @@
 /* ?_Tidy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_N_K@Z */
 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEX_NI@Z */
 /* ?_Tidy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_N_K@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_tidy, 12)
-void __thiscall basic_string_wchar_tidy(basic_string_wchar *this,
+static void basic_string_wchar_tidy(basic_string_wchar *this,
         MSVCP_bool built, MSVCP_size_t new_size)
 {
     if(built && BUF_SIZE_WCHAR<=this->res) {
@@ -1904,8 +469,7 @@
 /* ?_Grow@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAA_N_K_N@Z */
 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAE_NI_N@Z */
 /* ?_Grow@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAA_N_K_N@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_grow, 12)
-MSVCP_bool __thiscall basic_string_wchar_grow(
+static MSVCP_bool basic_string_wchar_grow(
         basic_string_wchar *this, MSVCP_size_t new_size, MSVCP_bool trim)
 {
     if(this->res < new_size) {
@@ -1943,54 +507,11 @@
     return (new_size>0);
 }
 
-/* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */
-/* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */
-/* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z */
-/* ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy, 12)
-void __thiscall basic_string_wchar__Copy(basic_string_wchar *this,
-        MSVCP_size_t new_size, MSVCP_size_t copy_len)
-{
-    TRACE("%p %lu %lu\n", this, new_size, copy_len);
-
-    if(!basic_string_wchar_grow(this, new_size, FALSE))
-        return;
-    basic_string_wchar_eos(this, copy_len);
-}
-
-/* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
-/* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KA_KV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
-/* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
-/* ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KA_KV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
-static MSVCP_size_t __cdecl MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1, String_iterator_wchar i2)
-{
-    TRACE("(%p %p) (%p %p)\n", i1.bstr, i1.pos, i2.bstr, i2.pos);
-
-    if((!i1.bstr && i1.pos) || i1.bstr!=i2.bstr) {
-        _invalid_parameter(NULL, NULL, NULL, 0, 0);
-        return 0;
-    }
-
-    return !i1.pos ? 0 : i1.pos-i2.pos;
-}
-
-/* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$allocator@_W@2@XZ */
-/* ?get_allocator@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$allocator@_W@2@XZ */
-/* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$allocator@G@2@XZ */
-/* ?get_allocator@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$allocator@G@2@XZ */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_get_allocator, 8)
-allocator* __thiscall basic_string_wchar_get_allocator(const basic_string_wchar *this, allocator *ret)
-{
-    TRACE("%p\n", this);
-    return ret;
-}
-
 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z */
 /* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z */
 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@II@Z */
 /* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_erase, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_erase(
+static basic_string_wchar* MSVCP_basic_string_wchar_erase(
             basic_string_wchar *this, MSVCP_size_t pos, MSVCP_size_t len)
 {
     TRACE("%p %lu %lu\n", this, pos, len);
@@ -2011,54 +532,11 @@
     return this;
 }
 
-/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
-/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
-/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
-/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range, 24)
-String_iterator_wchar* __thiscall basic_string_wchar_erase_iter_range(basic_string_wchar *this,
-        String_iterator_wchar *ret, String_iterator_wchar beg, String_iterator_wchar end)
-{
-    MSVCP_size_t off;
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_ptr(this);
-    off = MSVCP_basic_string_wchar_Pdif(beg, *ret);
-
-    MSVCP_basic_string_wchar_erase(this, off, MSVCP_basic_string_wchar_Pdif(end, beg));
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_ptr(this)+off;
-    return ret;
-}
-
-/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter, 16)
-String_iterator_wchar* __thiscall basic_string_wchar_erase_iter(basic_string_wchar *this,
-        String_iterator_wchar *ret, String_iterator_wchar pos)
-{
-    MSVCP_size_t off;
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_ptr(this);
-    off = MSVCP_basic_string_wchar_Pdif(pos, *ret);
-
-    MSVCP_basic_string_wchar_erase(this, off, 1);
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_ptr(this)+off;
-    return ret;
-}
-
 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_substr, 16)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_assign_substr(
+static basic_string_wchar* MSVCP_basic_string_wchar_assign_substr(
             basic_string_wchar *this, const basic_string_wchar *assign,
             MSVCP_size_t pos, MSVCP_size_t len)
 {
@@ -2082,28 +560,11 @@
     return this;
 }
 
-/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
-/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
-/* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
-/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
-/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
-/* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_assign(
-            basic_string_wchar *this, const basic_string_wchar *assign)
-{
-    return MSVCP_basic_string_wchar_assign_substr(this, assign,
-            0, MSVCP_basic_string_wchar_npos);
-}
-
 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr_len, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_assign_cstr_len(
+static basic_string_wchar* MSVCP_basic_string_wchar_assign_cstr_len(
             basic_string_wchar *this, const wchar_t *str, MSVCP_size_t len)
 {
     TRACE("%p %s %lu\n", this, debugstr_wn(str, len), len);
@@ -2120,17 +581,6 @@
     return this;
 }
 
-/* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
-/* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
-/* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
-/* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ch, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_assign_ch(
-        basic_string_wchar *this, wchar_t ch)
-{
-    return MSVCP_basic_string_wchar_assign_cstr_len(this, &ch, 1);
-}
-
 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
 /* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
 /* ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
@@ -2139,96 +589,13 @@
 /* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
 /* ??4?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_cstr, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_assign_cstr(
+static basic_string_wchar* MSVCP_basic_string_wchar_assign_cstr(
             basic_string_wchar *this, const wchar_t *str)
 {
     return MSVCP_basic_string_wchar_assign_cstr_len(this, str,
             MSVCP_char_traits_wchar_length(str));
 }
 
-/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
-/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
-/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
-/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assignn, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_assignn(
-        basic_string_wchar *this, MSVCP_size_t count, wchar_t ch)
-{
-    TRACE("%p %ld %c\n", this, count, ch);
-
-    basic_string_wchar_grow(this, count, FALSE);
-    MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this), count, ch);
-    basic_string_wchar_eos(this, count);
-    return this;
-}
-
-/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
-/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
-/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
-/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_ptr_ptr, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_assign_ptr_ptr(
-        basic_string_wchar *this, const wchar_t *first, const wchar_t *last)
-{
-    return MSVCP_basic_string_wchar_assign_cstr_len(this, first, last-first);
-}
-
-/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
-/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
-/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
-/* ?assign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_assign_iter, 20)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_assign_iter(basic_string_wchar *this,
-        String_iterator_wchar beg, String_iterator_wchar end)
-{
-    return MSVCP_basic_string_wchar_assign_ptr_ptr(this, beg.pos, end.pos);
-}
-
-/* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII_W@Z */
-/* ?_Chassign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0_W@Z */
-/* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXIIG@Z */
-/* ?_Chassign@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0G@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Chassign, 16)
-void __thiscall MSVCP_basic_string_wchar_Chassign(basic_string_wchar *this,
-        MSVCP_size_t off, MSVCP_size_t count, wchar_t ch)
-{
-    TRACE("%p %lu %lu %c\n", this, off, count, ch);
-    MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+off, count, ch);
-}
-
-/* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WIII@Z */
-/* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */
-/* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z */
-/* ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K11@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s, 20)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar *this,
-        wchar_t *dest, MSVCP_size_t size, MSVCP_size_t count, MSVCP_size_t off)
-{
-    TRACE("%p %p %lu %lu %lu\n", this, dest, size, count, off);
-
-    if(this->size < off)
-        MSVCP__String_base_Xran();
-
-    if(count > this->size-off)
-        count = this->size-off;
-
-    MSVCP_char_traits_wchar__Copy_s(dest, size,
-            basic_string_wchar_const_ptr(this)+off, count);
-    return count;
-}
-
-/* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */
-/* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */
-/* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z */
-/* ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy, 16)
-MSVCP_size_t __thiscall basic_string_wchar_copy(const basic_string_wchar *this,
-        wchar_t *dest, MSVCP_size_t count, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_Copy_s(this, dest, count, count, off);
-}
-
 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
 /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */
 /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */
@@ -2237,49 +604,17 @@
 /* ?c_str@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPBGXZ */
 /* ?data@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEBGXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_c_str, 4)
-const wchar_t* __thiscall MSVCP_basic_string_wchar_c_str(const basic_string_wchar *this)
+const wchar_t* MSVCP_basic_string_wchar_c_str(const basic_string_wchar *this)
 {
     TRACE("%p\n", this);
     return basic_string_wchar_const_ptr(this);
 }
 
-/* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
-/* ?capacity@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
-/* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
-/* ?capacity@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_capacity, 4)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_capacity(basic_string_wchar *this)
-{
-    TRACE("%p\n", this);
-    return this->res;
-}
-
-/* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
-/* ?reserve@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
-/* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
-/* ?reserve@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve, 8)
-void __thiscall MSVCP_basic_string_wchar_reserve(basic_string_wchar *this, MSVCP_size_t size)
-{
-    MSVCP_size_t len;
-
-    TRACE("%p %ld\n", this, size);
-
-    len = this->size;
-    if(len > size)
-        return;
-
-    basic_string_wchar_grow(this, size, FALSE);
-    basic_string_wchar_eos(this, len);
-}
-
 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor, 4)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor(basic_string_wchar *this)
+basic_string_wchar* MSVCP_basic_string_wchar_ctor(basic_string_wchar *this)
 {
     TRACE("%p\n", this);
 
@@ -2287,27 +622,11 @@
     return this;
 }
 
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_copy_ctor, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_copy_ctor(
-            basic_string_wchar *this, const basic_string_wchar *copy)
-{
-    TRACE("%p %p\n", this, copy);
-
-    basic_string_wchar_tidy(this, FALSE, 0);
-    MSVCP_basic_string_wchar_assign(this, copy);
-    return this;
-}
-
 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z */
 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z */
 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z */
 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_cstr(
+basic_string_wchar* MSVCP_basic_string_wchar_ctor_cstr(
             basic_string_wchar *this, const wchar_t *str)
 {
     TRACE("%p %s\n", this, debugstr_w(str));
@@ -2317,23 +636,11 @@
     return this;
 }
 
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGABV?$allocator@G@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBGAEBV?$allocator@G@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_alloc, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_cstr_alloc(
-        basic_string_wchar *this, const wchar_t *str, const void *alloc)
-{
-    return MSVCP_basic_string_wchar_ctor_cstr(this, str);
-}
-
 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z */
 /* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z */
 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGI@Z */
 /* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_cstr_len(
+basic_string_wchar* MSVCP_basic_string_wchar_ctor_cstr_len(
         basic_string_wchar *this, const wchar_t *str, MSVCP_size_t len)
 {
     TRACE("%p %s %ld\n", this, debugstr_wn(str, len), len);
@@ -2343,113 +650,11 @@
     return this;
 }
 
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WIABV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBGIABV?$allocator@G@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG_KAEBV?$allocator@G@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_cstr_len_alloc, 16)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_cstr_len_alloc(
-        basic_string_wchar *this, const wchar_t *str, MSVCP_size_t len, const void *alloc)
-{
-    return MSVCP_basic_string_wchar_ctor_cstr_len(this, str, len);
-}
-
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@II@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@II@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr, 16)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_substr(
-        basic_string_wchar *this, const basic_string_wchar *assign,
-        MSVCP_size_t pos, MSVCP_size_t len)
-{
-    TRACE("%p %p %lu %lu\n", this, assign, pos, len);
-
-    basic_string_wchar_tidy(this, FALSE, 0);
-    MSVCP_basic_string_wchar_assign_substr(this, assign, pos, len);
-    return this;
-}
-
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@IIABV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@IIABV?$allocator@G@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV01@_K1AEBV?$allocator@G@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr_alloc, 20)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_substr_alloc(
-        basic_string_wchar *this, const basic_string_wchar *assign,
-        MSVCP_size_t pos, MSVCP_size_t len, const void *alloc)
-{
-    return MSVCP_basic_string_wchar_ctor_substr(this, assign, pos, len);
-}
-
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$allocator@G@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$allocator@G@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_alloc, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_alloc(
-        basic_string_wchar *this, const void *alloc)
-{
-    TRACE("%p %p\n", this, alloc);
-
-    basic_string_wchar_tidy(this, FALSE, 0);
-    return this;
-}
-
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_W@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_ch(basic_string_wchar *this,
-        MSVCP_size_t count, wchar_t ch)
-{
-    TRACE("%p %ld %c\n", this, count, ch);
-
-    basic_string_wchar_tidy(this, FALSE, 0);
-    MSVCP_basic_string_wchar_assignn(this, count, ch);
-    return this;
-}
-
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IGABV?$allocator@G@1@@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@_KGAEBV?$allocator@G@1@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ch_alloc, 16)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_ch_alloc(basic_string_wchar *this,
-        MSVCP_size_t count, wchar_t ch, const void *alloc)
-{
-    return MSVCP_basic_string_wchar_ctor_ch(this, count, ch);
-}
-
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG0@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@PEBG0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_ptr_ptr, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_ptr_ptr(basic_string_wchar *this,
-        const wchar_t *first, const wchar_t *last)
-{
-    return MSVCP_basic_string_wchar_ctor_cstr_len(this, first, last-first);
-}
-
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z */
-/* ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@1@0@Z */
-/* ??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@1@0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_iter, 20)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_iter(basic_string_wchar *this,
-        String_iterator_wchar beg, String_iterator_wchar end)
-{
-    return MSVCP_basic_string_wchar_ctor_cstr_len(this, beg.pos, end.pos-beg.pos);
-}
-
 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ */
 /* ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ */
 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@XZ */
 /* ??1?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor, 4)
-void __thiscall MSVCP_basic_string_wchar_dtor(basic_string_wchar *this)
+void MSVCP_basic_string_wchar_dtor(basic_string_wchar *this)
 {
     TRACE("%p\n", this);
     basic_string_wchar_tidy(this, TRUE, 0);
@@ -2463,1249 +668,8 @@
 /* ?size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
 /* ?length@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length, 4)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_length(const basic_string_wchar *this)
+MSVCP_size_t MSVCP_basic_string_wchar_length(const basic_string_wchar *this)
 {
     TRACE("%p\n", this);
     return this->size;
 }
-
-/* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ */
-/* ?max_size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ */
-/* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIXZ */
-/* ?max_size@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KXZ */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_max_size, 4)
-MSVCP_size_t __thiscall basic_string_wchar_max_size(const basic_string_wchar *this)
-{
-    TRACE("%p\n", this);
-    return MSVCP_allocator_wchar_max_size(this->allocator)-1;
-}
-
-/* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ */
-/* ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_NXZ */
-/* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE_NXZ */
-/* ?empty@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_NXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_empty, 4)
-MSVCP_bool __thiscall MSVCP_basic_string_wchar_empty(basic_string_wchar *this)
-{
-    TRACE("%p\n", this);
-    return this->size == 0;
-}
-
-/* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
-/* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
-/* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXAAV12@@Z */
-/* ?swap@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEAV12@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap, 8)
-void __thiscall MSVCP_basic_string_wchar_swap(basic_string_wchar *this, basic_string_wchar *str)
-{
-    if(this != str) {
-        char tmp[sizeof(this->data)];
-        const MSVCP_size_t size = this->size;
-        const MSVCP_size_t res = this->res;
-
-        memcpy(tmp, this->data.buf, sizeof(this->data));
-        memcpy(this->data.buf, str->data.buf, sizeof(this->data));
-        memcpy(str->data.buf, tmp, sizeof(this->data));
-
-        this->size = str->size;
-        this->res = str->res;
-
-        str->size = size;
-        str->res = res;
-    }
-}
-
-/* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV12@II@Z */
-/* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
-/* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
-/* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr, 16)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_substr(basic_string_wchar *this,
-        basic_string_wchar *ret, MSVCP_size_t off, MSVCP_size_t len)
-{
-    TRACE("%p %lu %lu\n", this, off, len);
-
-    MSVCP_basic_string_wchar_ctor_substr(ret, this, off, len);
-    return ret;
-}
-
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@II@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_substr, 16)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_substr(basic_string_wchar *this,
-        const basic_string_wchar *append, MSVCP_size_t offset, MSVCP_size_t count)
-{
-    TRACE("%p %p %lu %lu\n", this, append, offset, count);
-
-    if(append->size < offset)
-        MSVCP__String_base_Xran();
-
-    if(count > append->size-offset)
-        count = append->size-offset;
-
-    if(MSVCP_basic_string_wchar_npos-this->size<=count || this->size+count<this->size)
-        MSVCP__String_base_Xlen();
-
-    if(basic_string_wchar_grow(this, this->size+count, FALSE)) {
-        MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size,
-                this->res-this->size, basic_string_wchar_const_ptr(append)+offset, count);
-        basic_string_wchar_eos(this, this->size+count);
-    }
-
-    return this;
-}
-
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z */
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@AEBV12@@Z */
-/* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z */
-/* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@ABV12@@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@AEBV12@@Z */
-/* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@ABV01@@Z */
-/* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@AEBV01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append(
-            basic_string_wchar *this, const basic_string_wchar *append)
-{
-    return MSVCP_basic_string_wchar_append_substr(this, append,
-            0, MSVCP_basic_string_wchar_npos);
-}
-
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_WI@Z */
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W_K@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBGI@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr_len, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_cstr_len(
-        basic_string_wchar *this, const wchar_t *append, MSVCP_size_t count)
-{
-    TRACE("%p %s %lu\n", this, debugstr_wn(append, count), count);
-
-    if(basic_string_wchar_inside(this, append))
-        return MSVCP_basic_string_wchar_append_substr(this, this,
-                append-basic_string_wchar_ptr(this), count);
-
-    if(MSVCP_basic_string_wchar_npos-this->size<=count || this->size+count<this->size)
-        MSVCP__String_base_Xlen();
-
-    if(basic_string_wchar_grow(this, this->size+count, FALSE)) {
-        MSVCP_char_traits_wchar__Copy_s(basic_string_wchar_ptr(this)+this->size,
-                this->res-this->size, append, count);
-        basic_string_wchar_eos(this, this->size+count);
-    }
-
-    return this;
-}
-
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W@Z */
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W@Z */
-/* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z */
-/* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG@Z */
-/* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@PBG@Z */
-/* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@PEBG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_cstr, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_cstr(
-        basic_string_wchar *this, const wchar_t *append)
-{
-    return MSVCP_basic_string_wchar_append_cstr_len(this, append,
-            MSVCP_char_traits_wchar_length(append));
-}
-
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@PB_W0@Z */
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@PEB_W0@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@PBG0@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@PEBG0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_beg_end, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_beg_end(
-        basic_string_wchar *this, const wchar_t *beg, const wchar_t *end)
-{
-    return MSVCP_basic_string_wchar_append_cstr_len(this, beg, end-beg);
-}
-
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_iter, 20)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_iter(
-        basic_string_wchar *this, String_iterator_wchar beg, String_iterator_wchar end)
-{
-    return MSVCP_basic_string_wchar_append_cstr_len(this, beg.pos, end.pos-beg.pos);
-}
-
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@I_W@Z */
-/* ?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IG@Z */
-/* ?append@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_len_ch, 12)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_len_ch(
-        basic_string_wchar *this, MSVCP_size_t count, wchar_t ch)
-{
-    TRACE("%p %lu %c\n", this, count, ch);
-
-    if(MSVCP_basic_string_wchar_npos-this->size <= count)
-        MSVCP__String_base_Xlen();
-
-    if(basic_string_wchar_grow(this, this->size+count, FALSE)) {
-        MSVCP_char_traits_wchar_assignn(basic_string_wchar_ptr(this)+this->size, count, ch);
-        basic_string_wchar_eos(this, this->size+count);
-    }
-
-    return this;
-}
-
-/* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z */
-/* ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z */
-/* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEX_W@Z */
-/* ?push_back@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_W@Z */
-/* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV01@G@Z */
-/* ??Y?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV01@G@Z */
-/* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXG@Z */
-/* ?push_back@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_append_ch, 8)
-basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_ch(
-        basic_string_wchar *this, wchar_t ch)
-{
-    return MSVCP_basic_string_wchar_append_len_ch(this, 1, ch);
-}
-
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_WI@Z */
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W0@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBGI@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG0@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr_len, 20)
-int __thiscall MSVCP_basic_string_wchar_compare_substr_cstr_len(
-        const basic_string_wchar *this, MSVCP_size_t pos, MSVCP_size_t num,
-        const wchar_t *str, MSVCP_size_t count)
-{
-    int ans;
-
-    TRACE("%p %lu %lu %s %lu\n", this, pos, num, debugstr_wn(str, count), count);
-
-    if(this->size < pos)
-        MSVCP__String_base_Xran();
-
-    if(num > this->size-pos)
-        num = this->size-pos;
-
-    ans = MSVCP_char_traits_wchar_compare(basic_string_wchar_const_ptr(this)+pos,
-            str, num>count ? count : num);
-    if(ans)
-        return ans;
-
-    if(num > count)
-        ans = 1;
-    else if(num < count)
-        ans = -1;
-    return ans;
-}
-
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIPB_W@Z */
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0PEB_W@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIPBG@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0PEBG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_cstr, 16)
-int __thiscall MSVCP_basic_string_wchar_compare_substr_cstr(const basic_string_wchar *this,
-        MSVCP_size_t pos, MSVCP_size_t num, const wchar_t *str)
-{
-    return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos, num,
-            str, MSVCP_char_traits_wchar_length(str));
-}
-
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHPB_W@Z */
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHPBG@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHPEBG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_cstr, 8)
-int __thiscall MSVCP_basic_string_wchar_compare_cstr(
-        const basic_string_wchar *this, const wchar_t *str)
-{
-    return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size,
-            str, MSVCP_char_traits_wchar_length(str));
-}
-
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@II@Z */
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@00@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@II@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@00@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr_substr, 24)
-int __thiscall MSVCP_basic_string_wchar_compare_substr_substr(
-        const basic_string_wchar *this, MSVCP_size_t pos, MSVCP_size_t num,
-        const basic_string_wchar *compare, MSVCP_size_t off, MSVCP_size_t count)
-{
-    TRACE("%p %lu %lu %p %lu %lu\n", this, pos, num, compare, off, count);
-
-    if(compare->size < off)
-        MSVCP__String_base_Xran();
-
-    if(count > compare->size-off)
-        count = compare->size-off;
-
-    return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos, num,
-            basic_string_wchar_const_ptr(compare)+off, count);
-}
-
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHIIABV12@@Z */
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAH_K0AEBV12@@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHIIABV12@@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAH_K0AEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare_substr, 16)
-int __thiscall MSVCP_basic_string_wchar_compare_substr(
-        const basic_string_wchar *this, MSVCP_size_t pos, MSVCP_size_t num,
-        const basic_string_wchar *compare)
-{
-    return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, pos, num,
-            basic_string_wchar_const_ptr(compare), compare->size);
-}
-
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEHABV12@@Z */
-/* ?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEHABV12@@Z */
-/* ?compare@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAHAEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_compare, 8)
-int __thiscall MSVCP_basic_string_wchar_compare(
-        const basic_string_wchar *this, const basic_string_wchar *compare)
-{
-    return MSVCP_basic_string_wchar_compare_substr_cstr_len(this, 0, this->size,
-            basic_string_wchar_const_ptr(compare), compare->size);
-}
-
-/* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
-/* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
-/* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
-/* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_cstr_substr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t pos, MSVCP_size_t len)
-{
-    const wchar_t *p, *end;
-
-    TRACE("%p %s %lu %lu\n", this, debugstr_wn(find, len), pos, len);
-
-    if(len==0 && pos<=this->size)
-        return pos;
-
-    end = basic_string_wchar_const_ptr(this)+this->size-len+1;
-    for(p=basic_string_wchar_const_ptr(this)+pos; p<end; p++) {
-        p = MSVCP_char_traits_wchar_find(p, end-p, find);
-        if(!p)
-            break;
-
-        if(!MSVCP_char_traits_wchar_compare(p, find, len))
-            return p-basic_string_wchar_const_ptr(this);
-    }
-
-    return MSVCP_basic_string_wchar_npos;
-}
-
-/* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
-/* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
-/* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
-/* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_cstr_off, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_cstr_off(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t pos)
-{
-    return MSVCP_basic_string_wchar_find_cstr_substr(this, find, pos,
-            MSVCP_char_traits_wchar_length(find));
-}
-
-/* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
-/* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
-/* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
-/* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_off, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_off(
-        const basic_string_wchar *this, const basic_string_wchar *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_cstr_substr(this,
-            basic_string_wchar_const_ptr(find), off, find->size);
-}
-
-/* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
-/* ?find@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
-/* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
-/* ?find@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_ch(
-        const basic_string_wchar *this, wchar_t ch, MSVCP_size_t pos)
-{
-    return MSVCP_basic_string_wchar_find_cstr_substr(this, &ch, pos, 1);
-}
-
-/* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
-/* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
-/* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
-/* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_rfind_cstr_substr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t pos, MSVCP_size_t len)
-{
-    const wchar_t *p, *end;
-
-    TRACE("%p %s %lu %lu\n", this, debugstr_wn(find, len), pos, len);
-
-    if(len==0)
-        return pos<this->size ? pos : this->size;
-
-    if(len > this->size)
-        return MSVCP_basic_string_wchar_npos;
-
-    if(pos > this->size-len+1)
-        pos = this->size-len+1;
-    end = basic_string_wchar_const_ptr(this);
-    for(p=end+pos; p>=end; p--) {
-        if(*p==*find && !MSVCP_char_traits_wchar_compare(p, find, len))
-            return p-basic_string_wchar_const_ptr(this);
-    }
-
-    return MSVCP_basic_string_wchar_npos;
-}
-
-/* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
-/* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
-/* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
-/* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_cstr_off, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_rfind_cstr_off(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t pos)
-{
-    return MSVCP_basic_string_wchar_rfind_cstr_substr(this, find, pos,
-            MSVCP_char_traits_wchar_length(find));
-}
-
-/* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
-/* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
-/* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
-/* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_off, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_rfind_off(
-        const basic_string_wchar *this, const basic_string_wchar *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_rfind_cstr_substr(this,
-            basic_string_wchar_const_ptr(find), off, find->size);
-}
-
-/* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
-/* ?rfind@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
-/* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
-/* ?rfind@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rfind_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_rfind_ch(
-        const basic_string_wchar *this, wchar_t ch, MSVCP_size_t pos)
-{
-    return MSVCP_basic_string_wchar_rfind_cstr_substr(this, &ch, pos, 1);
-}
-
-/* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
-/* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
-/* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
-/* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_first_of_cstr_substr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t off, MSVCP_size_t len)
-{
-    const wchar_t *p, *end;
-
-    TRACE("%p %p %lu %lu\n", this, find, off, len);
-
-    if(len>0 && off<this->size) {
-        end = basic_string_wchar_const_ptr(this)+this->size;
-        for(p=basic_string_wchar_const_ptr(this)+off; p<end; p++)
-            if(MSVCP_char_traits_wchar_find(find, len, p))
-                return p-basic_string_wchar_const_ptr(this);
-    }
-
-    return MSVCP_basic_string_wchar_npos;
-}
-
-/* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
-/* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
-/* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
-/* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_first_of(
-        const basic_string_wchar *this, const basic_string_wchar *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this,
-            basic_string_wchar_const_ptr(find), off, find->size);
-}
-
-/* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
-/* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
-/* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
-/* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_cstr, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_first_of_cstr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_first_of_cstr_substr(
-            this, find, off, MSVCP_char_traits_wchar_length(find));
-}
-
-/* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
-/* ?find_first_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
-/* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
-/* ?find_first_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_of_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_first_of_ch(
-        const basic_string_wchar *this, wchar_t ch, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_first_of_cstr_substr(this, &ch, off, 1);
-}
-
-/* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
-/* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
-/* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
-/* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t off, MSVCP_size_t len)
-{
-    const wchar_t *p, *end;
-
-    TRACE("%p %p %lu %lu\n", this, find, off, len);
-
-    if(off<this->size) {
-        end = basic_string_wchar_const_ptr(this)+this->size;
-        for(p=basic_string_wchar_const_ptr(this)+off; p<end; p++)
-            if(!MSVCP_char_traits_wchar_find(find, len, p))
-                return p-basic_string_wchar_const_ptr(this);
-    }
-
-    return MSVCP_basic_string_wchar_npos;
-}
-
-/* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
-/* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
-/* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
-/* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_first_not_of(
-        const basic_string_wchar *this, const basic_string_wchar *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this,
-            basic_string_wchar_const_ptr(find), off, find->size);
-}
-
-/* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
-/* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
-/* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
-/* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_cstr, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_first_not_of_cstr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(
-            this, find, off, MSVCP_char_traits_wchar_length(find));
-}
-
-/* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
-/* ?find_first_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
-/* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
-/* ?find_first_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_first_not_of_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_first_not_of_ch(
-        const basic_string_wchar *this, wchar_t ch, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_first_not_of_cstr_substr(this, &ch, off, 1);
-}
-
-/* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
-/* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
-/* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
-/* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_of_cstr_substr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t off, MSVCP_size_t len)
-{
-    const wchar_t *p, *beg;
-
-    TRACE("%p %p %lu %lu\n", this, find, off, len);
-
-
-    if(len>0 && this->size>0) {
-        if(off >= this->size)
-            off = this->size-1;
-
-        beg = basic_string_wchar_const_ptr(this);
-        for(p=beg+off; p>=beg; p--)
-            if(MSVCP_char_traits_wchar_find(find, len, p))
-                return p-beg;
-    }
-
-    return MSVCP_basic_string_wchar_npos;
-}
-
-/* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
-/* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
-/* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
-/* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_of(
-        const basic_string_wchar *this, const basic_string_wchar *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this,
-            basic_string_wchar_const_ptr(find), off, find->size);
-}
-
-/* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
-/* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
-/* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
-/* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_cstr, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_of_cstr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_last_of_cstr_substr(
-            this, find, off, MSVCP_char_traits_wchar_length(find));
-}
-
-/* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
-/* ?find_last_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
-/* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
-/* ?find_last_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_of_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_of_ch(
-        const basic_string_wchar *this, wchar_t ch, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_last_of_cstr_substr(this, &ch, off, 1);
-}
-
-/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WII@Z */
-/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K1@Z */
-/* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGII@Z */
-/* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K1@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr_substr, 16)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t off, MSVCP_size_t len)
-{
-    const wchar_t *p, *beg;
-
-    TRACE("%p %p %lu %lu\n", this, find, off, len);
-
-    if(len>0 && this->size>0) {
-        if(off >= this->size)
-            off = this->size-1;
-
-        beg = basic_string_wchar_const_ptr(this);
-        for(p=beg+off; p>=beg; p--)
-            if(!MSVCP_char_traits_wchar_find(find, len, p))
-                return p-beg;
-    }
-
-    return MSVCP_basic_string_wchar_npos;
-}
-
-/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIABV12@I@Z */
-/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KAEBV12@_K@Z */
-/* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIABV12@I@Z */
-/* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KAEBV12@_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_not_of(
-        const basic_string_wchar *this, const basic_string_wchar *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this,
-            basic_string_wchar_const_ptr(find), off, find->size);
-}
-
-/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPB_WI@Z */
-/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEB_W_K@Z */
-/* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPBGI@Z */
-/* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_cstr, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_not_of_cstr(
-        const basic_string_wchar *this, const wchar_t *find, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(
-            this, find, off, MSVCP_char_traits_wchar_length(find));
-}
-
-/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEI_WI@Z */
-/* ?find_last_not_of@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_K_W_K@Z */
-/* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIGI@Z */
-/* ?find_last_not_of@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_find_last_not_of_ch, 12)
-MSVCP_size_t __thiscall MSVCP_basic_string_wchar_find_last_not_of_ch(
-        const basic_string_wchar *this, wchar_t ch, MSVCP_size_t off)
-{
-    return MSVCP_basic_string_wchar_find_last_not_of_cstr_substr(this, &ch, off, 1);
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_WI@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W0@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBGI@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG0@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr_len, 20)
-basic_string_wchar* __thiscall basic_string_wchar_replace_cstr_len(basic_string_wchar *this,
-        MSVCP_size_t off, MSVCP_size_t len, const wchar_t *str, MSVCP_size_t str_len)
-{
-    MSVCP_size_t inside_pos = -1;
-    wchar_t *ptr = basic_string_wchar_ptr(this);
-
-    TRACE("%p %ld %ld %p %ld\n", this, off, len, str, str_len);
-
-    if(this->size < off)
-        MSVCP__String_base_Xran();
-
-    if(len > this->size-off)
-        len = this->size-off;
-
-    if(MSVCP_basic_string_wchar_npos-str_len <= this->size-len)
-        MSVCP__String_base_Xlen();
-
-    if(basic_string_wchar_inside(this, str))
-        inside_pos = str-ptr;
-
-    if(len < str_len) {
-        basic_string_wchar_grow(this, this->size-len+str_len, FALSE);
-        ptr = basic_string_wchar_ptr(this);
-    }
-
-    if(inside_pos == -1) {
-        memmove(ptr+off+str_len, ptr+off+len, (this->size-off-len)*sizeof(wchar_t));
-        memcpy(ptr+off, str, str_len*sizeof(wchar_t));
-    } else if(len >= str_len) {
-        memmove(ptr+off, ptr+inside_pos, str_len*sizeof(wchar_t));
-        memmove(ptr+off+str_len, ptr+off+len, (this->size-off-len)*sizeof(wchar_t));
-    } else {
-        MSVCP_size_t size;
-
-        memmove(ptr+off+str_len, ptr+off+len, (this->size-off-len)*sizeof(wchar_t));
-
-        if(inside_pos < off+len) {
-            size = off+len-inside_pos;
-            if(size > str_len)
-                size = str_len;
-            memmove(ptr+off, ptr+inside_pos, size*sizeof(wchar_t));
-        } else {
-            size = 0;
-        }
-
-        if(str_len > size)
-            memmove(ptr+off+size, ptr+off+str_len, (str_len-size)*sizeof(wchar_t));
-    }
-
-    basic_string_wchar_eos(this, this->size-len+str_len);
-    return this;
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIPB_W@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0PEB_W@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIPBG@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0PEBG@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_cstr, 16)
-basic_string_wchar* __thiscall basic_string_wchar_replace_cstr(basic_string_wchar *this,
-        MSVCP_size_t off, MSVCP_size_t len, const wchar_t *str)
-{
-    return basic_string_wchar_replace_cstr_len(this, off, len, str,
-            MSVCP_char_traits_wchar_length(str));
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@II@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@II@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@00@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_substr, 24)
-basic_string_wchar* __thiscall basic_string_wchar_replace_substr(basic_string_wchar *this, MSVCP_size_t off,
-        MSVCP_size_t len, const basic_string_wchar *str, MSVCP_size_t str_off, MSVCP_size_t str_len)
-{
-    if(str->size < str_off)
-        MSVCP__String_base_Xran();
-
-    if(str_len > str->size-str_off)
-        str_len = str->size-str_off;
-
-    return basic_string_wchar_replace_cstr_len(this, off, len,
-            basic_string_wchar_const_ptr(str)+str_off, str_len);
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IIABV12@@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIABV12@@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0AEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace, 16)
-basic_string_wchar* __thiscall basic_string_wchar_replace(basic_string_wchar *this,
-        MSVCP_size_t off, MSVCP_size_t len, const basic_string_wchar *str)
-{
-    return basic_string_wchar_replace_cstr_len(this, off, len,
-            basic_string_wchar_const_ptr(str), str->size);
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@III_W@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K00_W@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIIG@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K00G@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_ch, 20)
-basic_string_wchar* __thiscall basic_string_wchar_replace_ch(basic_string_wchar *this,
-        MSVCP_size_t off, MSVCP_size_t len, MSVCP_size_t count, wchar_t ch)
-{
-    wchar_t *ptr = basic_string_wchar_ptr(this);
-
-    TRACE("%p %ld %ld %ld %c\n", this, off, len, count, ch);
-
-    if(this->size < off)
-        MSVCP__String_base_Xran();
-
-    if(len > this->size-off)
-        len = this->size-off;
-
-    if(MSVCP_basic_string_wchar_npos-count <= this->size-len)
-        MSVCP__String_base_Xlen();
-
-    if(len < count) {
-        basic_string_wchar_grow(this, this->size-len+count, FALSE);
-        ptr = basic_string_wchar_ptr(this);
-    }
-
-    memmove(ptr+off+count, ptr+off+len, (this->size-off-len)*sizeof(wchar_t));
-    MSVCP_char_traits_wchar_assignn(ptr+off, count, ch);
-    basic_string_wchar_eos(this, this->size-len+count);
-
-    return this;
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@000@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@000@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@000@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@000@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_iter, 36)
-basic_string_wchar* __thiscall basic_string_wchar_replace_iter_iter(basic_string_wchar *this,
-        String_iterator_wchar beg, String_iterator_wchar end,
-                String_iterator_wchar res_beg, String_iterator_wchar res_end)
-{
-    String_iterator_wchar begin = { this, basic_string_wchar_ptr(this) };
-    return basic_string_wchar_replace_cstr_len(this,
-            MSVCP_basic_string_wchar_Pdif(beg, begin), MSVCP_basic_string_wchar_Pdif(end, beg),
-            res_beg.pos, MSVCP_basic_string_wchar_Pdif(res_end, res_beg));
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0ABV12@@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0AEBV12@@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0ABV12@@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0AEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_bstr, 24)
-basic_string_wchar* __thiscall basic_string_wchar_replace_iter_bstr(basic_string_wchar *this,
-        String_iterator_wchar beg, String_iterator_wchar end, const basic_string_wchar *str)
-{
-    String_iterator_wchar begin = { this, basic_string_wchar_ptr(this) };
-    return basic_string_wchar_replace(this, MSVCP_basic_string_wchar_Pdif(beg, begin),
-            MSVCP_basic_string_wchar_Pdif(end, beg), str);
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0I_W@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0_K_W@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0IG@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0_KG@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ch, 28)
-basic_string_wchar* __thiscall basic_string_wchar_replace_iter_ch(basic_string_wchar *this,
-        String_iterator_wchar beg, String_iterator_wchar end, MSVCP_size_t count, wchar_t ch)
-{
-    String_iterator_wchar begin = { this, basic_string_wchar_ptr(this) };
-    return basic_string_wchar_replace_ch(this, MSVCP_basic_string_wchar_Pdif(beg, begin),
-            MSVCP_basic_string_wchar_Pdif(end, beg), count, ch);
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PB_W1@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PEB_W1@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PBG1@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PEBG1@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_ptr_ptr, 28)
-basic_string_wchar* __thiscall basic_string_wchar_replace_iter_ptr_ptr(basic_string_wchar *this,
-        String_iterator_wchar beg, String_iterator_wchar end,
-        const wchar_t *res_beg, const wchar_t *res_end)
-{
-    String_iterator_wchar begin = { this, basic_string_wchar_ptr(this) };
-    return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg, begin),
-            MSVCP_basic_string_wchar_Pdif(end, beg), res_beg, res_end-res_beg);
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PB_W@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PEB_W@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PBG@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PEBG@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr, 24)
-basic_string_wchar* __thiscall basic_string_wchar_replace_iter_cstr(basic_string_wchar *this,
-        String_iterator_wchar beg, String_iterator_wchar end, const wchar_t *str)
-{
-    String_iterator_wchar begin = { this, basic_string_wchar_ptr(this) };
-    return basic_string_wchar_replace_cstr(this, MSVCP_basic_string_wchar_Pdif(beg, begin),
-            MSVCP_basic_string_wchar_Pdif(end, beg), str);
-}
-
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PB_WI@Z */
-/* ?replace@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0PEB_W_K@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PBGI@Z */
-/* ?replace@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0PEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_replace_iter_cstr_len, 28)
-basic_string_wchar* __thiscall basic_string_wchar_replace_iter_cstr_len(basic_string_wchar *this,
-        String_iterator_wchar beg, String_iterator_wchar end, const wchar_t *str, MSVCP_size_t len)
-{
-    String_iterator_wchar begin = { this, basic_string_wchar_ptr(this) };
-    return basic_string_wchar_replace_cstr_len(this, MSVCP_basic_string_wchar_Pdif(beg, begin),
-            MSVCP_basic_string_wchar_Pdif(end, beg), str, len);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert, 12)
-basic_string_wchar* __thiscall basic_string_wchar_insert(basic_string_wchar *this,
-        MSVCP_size_t off, const basic_string_wchar *str)
-{
-    return basic_string_wchar_replace(this, off, 0, str);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IABV12@II@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IABV12@II@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KAEBV12@00@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_substr, 20)
-basic_string_wchar* __thiscall basic_string_wchar_insert_substr(
-        basic_string_wchar *this, MSVCP_size_t off, const basic_string_wchar *str,
-        MSVCP_size_t str_off, MSVCP_size_t str_count)
-{
-    return basic_string_wchar_replace_substr(this, off, 0, str, str_off, str_count);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_W@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBG@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr, 12)
-basic_string_wchar* __thiscall basic_string_wchar_insert_cstr(
-        basic_string_wchar *this, MSVCP_size_t off, const wchar_t *str)
-{
-    return basic_string_wchar_replace_cstr(this, off, 0, str);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@IPB_WI@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_KPEB_W0@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IPBGI@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_KPEBG0@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_cstr_len, 16)
-basic_string_wchar* __thiscall basic_string_wchar_insert_cstr_len(basic_string_wchar *this,
-        MSVCP_size_t off, const wchar_t *str, MSVCP_size_t str_len)
-{
-    return basic_string_wchar_replace_cstr_len(this, off, 0, str, str_len);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II_W@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0_W@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAV12@IIG@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAV12@_K0G@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_chn, 16)
-basic_string_wchar* __thiscall basic_string_wchar_insert_chn(basic_string_wchar *this,
-        MSVCP_size_t off, MSVCP_size_t count, wchar_t ch)
-{
-    return basic_string_wchar_replace_ch(this, off, 0, count, ch);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@I_W@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@_K_W@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@IG@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@_KG@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_chn, 20)
-void __thiscall basic_string_wchar_insert_iter_chn(basic_string_wchar *this,
-        String_iterator_wchar where, MSVCP_size_t count, wchar_t ch)
-{
-    String_iterator_wchar iter = { this, basic_string_wchar_ptr(this) };
-    MSVCP_size_t off = MSVCP_basic_string_wchar_Pdif(where, iter);
-
-    basic_string_wchar_insert_chn(this, off, count, ch);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@_W@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@_W@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@G@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@G@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch, 20)
-String_iterator_wchar* __thiscall basic_string_wchar_insert_iter_ch(basic_string_wchar *this,
-        String_iterator_wchar *ret, String_iterator_wchar where, wchar_t ch)
-{
-    MSVCP_size_t off;
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_ptr(this);
-    off = MSVCP_basic_string_wchar_Pdif(where, *ret);
-
-    basic_string_wchar_insert_chn(this, off, 1, ch);
-    ret->pos = basic_string_wchar_ptr(this)+off;
-    return ret;
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null, 16)
-String_iterator_wchar* __thiscall basic_string_wchar_insert_iter_null(basic_string_wchar *this,
-        String_iterator_wchar *ret, String_iterator_wchar where)
-{
-    return basic_string_wchar_insert_iter_ch(this, ret, where, 0);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@00@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@00@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@00@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@00@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_beg_end, 28)
-void __thiscall basic_string_wchar_insert_iter_beg_end(basic_string_wchar *this,
-        String_iterator_wchar where, String_iterator_wchar beg, String_iterator_wchar end)
-{
-    basic_string_wchar_replace_iter_iter(this, where, where, beg, end);
-}
-
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PB_W1@Z */
-/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W1@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PBG1@Z */
-/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PEBG1@Z */
-DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ptr_ptr, 20)
-void __thiscall basic_string_wchar_insert_iter_ptr_ptr(basic_string_wchar *this,
-        String_iterator_wchar where, const wchar_t *beg, const wchar_t *end)
-{
-    basic_string_wchar_replace_iter_ptr_ptr(this, where, where, beg, end);
-}
-
-/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
-/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
-/* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
-/* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at, 8)
-wchar_t* __thiscall MSVCP_basic_string_wchar_operator_at(
-        basic_string_wchar *this, MSVCP_size_t pos)
-{
-    TRACE("%p %lu\n", this, pos);
-
-    assert(this->size >= pos);
-    return basic_string_wchar_ptr(this)+pos;
-}
-
-/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
-/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
-/* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
-/* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_operator_at, 8)
-const wchar_t* __thiscall MSVCP_basic_string_wchar_const_operator_at(
-        const basic_string_wchar *this, MSVCP_size_t pos)
-{
-    TRACE("%p %lu\n", this, pos);
-
-    assert(this->size >= pos);
-    return basic_string_wchar_const_ptr(this)+pos;
-}
-
-/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
-/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
-/* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z */
-/* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_at_noverify, 8)
-wchar_t* __thiscall MSVCP_basic_string_wchar_operator_at_noverify(
-        basic_string_wchar *this, size_t_noverify pos)
-{
-    TRACE("%p %lu\n", this, pos.val);
-    return basic_string_wchar_ptr(this)+pos.val;
-}
-
-/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
-/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
-/* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z */
-/* ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_operator_const_at_noverify, 8)
-const wchar_t* __thiscall MSVCP_basic_string_wchar_operator_const_at_noverify(
-        const basic_string_wchar *this, size_t_noverify pos)
-{
-    TRACE("%p %lu\n", this, pos.val);
-    return basic_string_wchar_const_ptr(this)+pos.val;
-}
-
-/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
-/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
-/* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z */
-/* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_at, 8)
-wchar_t* __thiscall MSVCP_basic_string_wchar_at(
-        basic_string_wchar *this, MSVCP_size_t pos)
-{
-    TRACE("%p %lu\n", this, pos);
-
-    if(this->size <= pos)
-        MSVCP__String_base_Xran();
-
-    return basic_string_wchar_ptr(this)+pos;
-}
-
-/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
-/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
-/* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z */
-/* ?at@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_const_at, 8)
-const wchar_t* __thiscall MSVCP_basic_string_wchar_const_at(
-        const basic_string_wchar *this, MSVCP_size_t pos)
-{
-    TRACE("%p %lu\n", this, pos);
-
-    if(this->size <= pos)
-        MSVCP__String_base_Xran();
-
-    return basic_string_wchar_const_ptr(this)+pos;
-}
-
-/* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI_W@Z */
-/* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K_W@Z */
-/* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXIG@Z */
-/* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_KG@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize_ch, 12)
-void __thiscall MSVCP_basic_string_wchar_resize_ch(
-        basic_string_wchar *this, MSVCP_size_t size, wchar_t ch)
-{
-    TRACE("%p %lu %c\n", this, size, ch);
-
-    if(size <= this->size)
-        MSVCP_basic_string_wchar_erase(this, size, this->size);
-    else
-        MSVCP_basic_string_wchar_append_len_ch(this, size-this->size, ch);
-}
-
-/* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXI@Z */
-/* ?resize@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAX_K@Z */
-/* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXI@Z */
-/* ?resize@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAX_K@Z */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_resize, 8)
-void __thiscall MSVCP_basic_string_wchar_resize(
-        basic_string_wchar *this, MSVCP_size_t size)
-{
-    MSVCP_basic_string_wchar_resize_ch(this, size, '\0');
-}
-
-/* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
-/* ?clear@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
-/* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
-/* ?clear@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_clear, 4)
-void __thiscall MSVCP_basic_string_wchar_clear(basic_string_wchar *this)
-{
-    basic_string_wchar_eos(this, 0);
-}
-
-/* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?begin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin, 8)
-String_iterator_wchar* __thiscall MSVCP_basic_string_wchar_begin(
-        basic_string_wchar *this, String_iterator_wchar *ret)
-{
-    TRACE("%p\n", this);
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_const_ptr(this);
-    return ret;
-}
-
-/* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?end@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
-/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end, 8)
-String_iterator_wchar* __thiscall MSVCP_basic_string_wchar_end(
-        basic_string_wchar *this, String_iterator_wchar *ret)
-{
-    TRACE("%p\n", this);
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_const_ptr(this)+this->size;
-    return ret;
-}
-
-/* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
-/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin, 8)
-String_reverse_iterator_wchar* __thiscall MSVCP_basic_string_wchar_rbegin(
-        basic_string_wchar *this, String_reverse_iterator_wchar *ret)
-{
-    TRACE("%p\n", this);
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_const_ptr(this)+this->size;
-    return ret;
-}
-
-/* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
-/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
-DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend, 8)
-String_reverse_iterator_wchar* __thiscall MSVCP_basic_string_wchar_rend(
-        basic_string_wchar *this, String_reverse_iterator_wchar *ret)
-{
-    TRACE("%p\n", this);
-
-    ret->bstr = this;
-    ret->pos = basic_string_wchar_const_ptr(this);
-    return ret;
-}
-
-/* _String_val class */
-/* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QAEXXZ */
-/* ??_F?$_String_val@DV?$allocator@D@std@@@std@@QEAAXXZ */
-/* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QAEXXZ */
-/* ??_F?$_String_val@GV?$allocator@G@std@@@std@@QEAAXXZ */
-/* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QAEXXZ */
-/* ??_F?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAXXZ */
-DEFINE_THISCALL_WRAPPER(_String_val_ctor, 4)
-void* __thiscall _String_val_ctor(void *this)
-{
-    TRACE("%p\n", this);
-    return this;
-}
-
-/* ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z */
-/* ??0?$_String_val@DV?$allocator@D@std@@@std@@IEAA@V?$allocator@D@1@@Z */
-/* ??0?$_String_val@GV?$allocator@G@std@@@std@@IAE@V?$allocator@G@1@@Z */
-/* ??0?$_String_val@GV?$allocator@G@std@@@std@@IEAA@V?$allocator@G@1@@Z */
-/* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IAE@V?$allocator@_W@1@@Z */
-/* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@IEAA@V?$allocator@_W@1@@Z */
-/* ??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@ABV01@@Z */
-/* ??0?$_String_val@DV?$allocator@D@std@@@std@@QEAA@AEBV01@@Z */
-/* ??0?$_String_val@GV?$allocator@G@std@@@std@@QAE@ABV01@@Z */
-/* ??0?$_String_val@GV?$allocator@G@std@@@std@@QEAA@AEBV01@@Z */
-/* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QAE@ABV01@@Z */
-/* ??0?$_String_val@_WV?$allocator@_W@std@@@std@@QEAA@AEBV01@@Z */
-/* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$_String_val@DV?$allocator@D@std@@@std@@QEAAAEAV01@AEBV01@@Z */
-/* ??4?$_String_val@GV?$allocator@G@std@@@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$_String_val@GV?$allocator@G@std@@@std@@QEAAAEAV01@AEBV01@@Z */
-/* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QAEAAV01@ABV01@@Z */
-/* ??4?$_String_val@_WV?$allocator@_W@std@@@std@@QEAAAEAV01@AEBV01@@Z */
-/* ??4?$_String_val@DV?$allocator@D@std@@@std@@QAEAAV01@ABV01@@Z */
-DEFINE_THISCALL_WRAPPER(_String_val_null_ctor, 8)
-void* __thiscall _String_val_null_ctor(void *this, const void *misc)
-{
-    TRACE("%p %p\n", this, misc);
-    return this;
-}