;
; Definition file of MSVCRT40.dll
; Automatic generated by gendef
; written by Kai Tietz 2008
;
LIBRARY "MSVCRT40.dll"
EXPORTS
; public: __thiscall Iostream_init::Iostream_init(class ios &,int)
??0Iostream_init@@QAE@AAVios@@H@Z ; has WINAPI (@8)
; public: __thiscall Iostream_init::Iostream_init(void)
??0Iostream_init@@QAE@XZ
; public: __thiscall __non_rtti_object::__non_rtti_object(class __non_rtti_object const &)
??0__non_rtti_object@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall __non_rtti_object::__non_rtti_object(char const *)
??0__non_rtti_object@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall bad_cast::bad_cast(char const *const &)
??0bad_cast@@QAE@ABQBD@Z ; has WINAPI (@4)
; public: __thiscall bad_cast::bad_cast(class bad_cast const &)
??0bad_cast@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall bad_typeid::bad_typeid(class bad_typeid const &)
??0bad_typeid@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall bad_typeid::bad_typeid(char const *)
??0bad_typeid@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall exception::exception(char const *const &)
??0exception@@QAE@ABQBD@Z ; has WINAPI (@4)
; public: __thiscall exception::exception(class exception const &)
??0exception@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall exception::exception(void)
??0exception@@QAE@XZ
; public: __thiscall filebuf::filebuf(class filebuf const &)
??0filebuf@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall filebuf::filebuf(int)
??0filebuf@@QAE@H@Z ; has WINAPI (@4)
; public: __thiscall filebuf::filebuf(int,char *,int)
??0filebuf@@QAE@HPADH@Z ; has WINAPI (@12)
; public: __thiscall filebuf::filebuf(void)
??0filebuf@@QAE@XZ
; public: __thiscall fstream::fstream(class fstream const &)
??0fstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall fstream::fstream(int)
??0fstream@@QAE@H@Z ; has WINAPI (@8)
; public: __thiscall fstream::fstream(int,char *,int)
??0fstream@@QAE@HPADH@Z ; has WINAPI (@16)
; public: __thiscall fstream::fstream(char const *,int,int)
??0fstream@@QAE@PBDHH@Z ; has WINAPI (@16)
; public: __thiscall fstream::fstream(void)
??0fstream@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall ifstream::ifstream(class ifstream const &)
??0ifstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall ifstream::ifstream(int)
??0ifstream@@QAE@H@Z ; has WINAPI (@8)
; public: __thiscall ifstream::ifstream(int,char *,int)
??0ifstream@@QAE@HPADH@Z ; has WINAPI (@16)
; public: __thiscall ifstream::ifstream(char const *,int,int)
??0ifstream@@QAE@PBDHH@Z ; has WINAPI (@16)
; public: __thiscall ifstream::ifstream(void)
??0ifstream@@QAE@XZ ; has WINAPI (@4)
; protected: __thiscall ios::ios(class ios const &)
??0ios@@IAE@ABV0@@Z ; has WINAPI (@4)
; protected: __thiscall ios::ios(void)
??0ios@@IAE@XZ
; public: __thiscall ios::ios(class streambuf *)
??0ios@@QAE@PAVstreambuf@@@Z ; has WINAPI (@4)
; protected: __thiscall iostream::iostream(class iostream const &)
??0iostream@@IAE@ABV0@@Z ; has WINAPI (@8)
; protected: __thiscall iostream::iostream(void)
??0iostream@@IAE@XZ ; has WINAPI (@4)
; public: __thiscall iostream::iostream(class streambuf *)
??0iostream@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; protected: __thiscall istream::istream(class istream const &)
??0istream@@IAE@ABV0@@Z ; has WINAPI (@8)
; protected: __thiscall istream::istream(void)
??0istream@@IAE@XZ ; has WINAPI (@4)
; public: __thiscall istream::istream(class streambuf *)
??0istream@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; public: __thiscall istream_withassign::istream_withassign(class istream_withassign const &)
??0istream_withassign@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall istream_withassign::istream_withassign(class streambuf *)
??0istream_withassign@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; public: __thiscall istream_withassign::istream_withassign(void)
??0istream_withassign@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall istrstream::istrstream(class istrstream const &)
??0istrstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall istrstream::istrstream(char *)
??0istrstream@@QAE@PAD@Z ; has WINAPI (@8)
; public: __thiscall istrstream::istrstream(char *,int)
??0istrstream@@QAE@PADH@Z ; has WINAPI (@12)
; public: __thiscall logic_error::logic_error(char const *const &)
??0logic_error@@QAE@ABQBD@Z ; has WINAPI (@4)
; public: __thiscall logic_error::logic_error(class logic_error const &)
??0logic_error@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall ofstream::ofstream(class ofstream const &)
??0ofstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall ofstream::ofstream(int)
??0ofstream@@QAE@H@Z ; has WINAPI (@8)
; public: __thiscall ofstream::ofstream(int,char *,int)
??0ofstream@@QAE@HPADH@Z ; has WINAPI (@16)
; public: __thiscall ofstream::ofstream(char const *,int,int)
??0ofstream@@QAE@PBDHH@Z ; has WINAPI (@16)
; public: __thiscall ofstream::ofstream(void)
??0ofstream@@QAE@XZ ; has WINAPI (@4)
; protected: __thiscall ostream::ostream(class ostream const &)
??0ostream@@IAE@ABV0@@Z ; has WINAPI (@8)
; protected: __thiscall ostream::ostream(void)
??0ostream@@IAE@XZ ; has WINAPI (@4)
; public: __thiscall ostream::ostream(class streambuf *)
??0ostream@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; public: __thiscall ostream_withassign::ostream_withassign(class ostream_withassign const &)
??0ostream_withassign@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall ostream_withassign::ostream_withassign(class streambuf *)
??0ostream_withassign@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; public: __thiscall ostream_withassign::ostream_withassign(void)
??0ostream_withassign@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall ostrstream::ostrstream(class ostrstream const &)
??0ostrstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall ostrstream::ostrstream(char *,int,int)
??0ostrstream@@QAE@PADHH@Z ; has WINAPI (@16)
; public: __thiscall ostrstream::ostrstream(void)
??0ostrstream@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall stdiobuf::stdiobuf(class stdiobuf const &)
??0stdiobuf@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall stdiobuf::stdiobuf(struct _iobuf *)
??0stdiobuf@@QAE@PAU_iobuf@@@Z ; has WINAPI (@4)
; public: __thiscall stdiostream::stdiostream(class stdiostream const &)
??0stdiostream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall stdiostream::stdiostream(struct _iobuf *)
??0stdiostream@@QAE@PAU_iobuf@@@Z ; has WINAPI (@8)
; protected: __thiscall streambuf::streambuf(char *,int)
??0streambuf@@IAE@PADH@Z ; has WINAPI (@8)
; protected: __thiscall streambuf::streambuf(void)
??0streambuf@@IAE@XZ
; public: __thiscall streambuf::streambuf(class streambuf const &)
??0streambuf@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall strstream::strstream(class strstream const &)
??0strstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall strstream::strstream(char *,int,int)
??0strstream@@QAE@PADHH@Z ; has WINAPI (@16)
; public: __thiscall strstream::strstream(void)
??0strstream@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall strstreambuf::strstreambuf(class strstreambuf const &)
??0strstreambuf@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall strstreambuf::strstreambuf(int)
??0strstreambuf@@QAE@H@Z ; has WINAPI (@4)
; public: __thiscall strstreambuf::strstreambuf(void *(__cdecl *)(long),void(__cdecl *)(void *))
??0strstreambuf@@QAE@P6APAXJ@ZP6AXPAX@Z@Z ; has WINAPI (@8)
; public: __thiscall strstreambuf::strstreambuf(char *,int,char *)
??0strstreambuf@@QAE@PADH0@Z ; has WINAPI (@12)
; public: __thiscall strstreambuf::strstreambuf(void)
??0strstreambuf@@QAE@XZ
; public: __thiscall Iostream_init::~Iostream_init(void)
??1Iostream_init@@QAE@XZ
; public: virtual __thiscall __non_rtti_object::~__non_rtti_object(void)
??1__non_rtti_object@@UAE@XZ
; public: virtual __thiscall bad_cast::~bad_cast(void)
??1bad_cast@@UAE@XZ
; public: virtual __thiscall bad_typeid::~bad_typeid(void)
??1bad_typeid@@UAE@XZ
; public: virtual __thiscall exception::~exception(void)
??1exception@@UAE@XZ
; public: virtual __thiscall filebuf::~filebuf(void)
??1filebuf@@UAE@XZ
; public: virtual __thiscall fstream::~fstream(void)
??1fstream@@UAE@XZ
; public: virtual __thiscall ifstream::~ifstream(void)
??1ifstream@@UAE@XZ
; public: virtual __thiscall ios::~ios(void)
??1ios@@UAE@XZ
; public: virtual __thiscall iostream::~iostream(void)
??1iostream@@UAE@XZ
; public: virtual __thiscall istream::~istream(void)
??1istream@@UAE@XZ
; public: virtual __thiscall istream_withassign::~istream_withassign(void)
??1istream_withassign@@UAE@XZ
; public: virtual __thiscall istrstream::~istrstream(void)
??1istrstream@@UAE@XZ
; public: virtual __thiscall logic_error::~logic_error(void)
??1logic_error@@UAE@XZ
; public: virtual __thiscall ofstream::~ofstream(void)
??1ofstream@@UAE@XZ
; public: virtual __thiscall ostream::~ostream(void)
??1ostream@@UAE@XZ
; public: virtual __thiscall ostream_withassign::~ostream_withassign(void)
??1ostream_withassign@@UAE@XZ
; public: virtual __thiscall ostrstream::~ostrstream(void)
??1ostrstream@@UAE@XZ
; public: virtual __thiscall stdiobuf::~stdiobuf(void)
??1stdiobuf@@UAE@XZ
; public: virtual __thiscall stdiostream::~stdiostream(void)
??1stdiostream@@UAE@XZ
; public: virtual __thiscall streambuf::~streambuf(void)
??1streambuf@@UAE@XZ
; public: virtual __thiscall strstream::~strstream(void)
??1strstream@@UAE@XZ
; public: virtual __thiscall strstreambuf::~strstreambuf(void)
??1strstreambuf@@UAE@XZ
; public: virtual __thiscall type_info::~type_info(void)
??1type_info@@UAE@XZ
; void *__cdecl operator new(unsigned int)
??2@YAPAXI@Z
; void __cdecl operator delete(void *)
??3@YAXPAX@Z
; public: class Iostream_init &__thiscall Iostream_init::operator =(class Iostream_init const &)
??4Iostream_init@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class __non_rtti_object &__thiscall __non_rtti_object::operator =(class __non_rtti_object const &)
??4__non_rtti_object@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class bad_cast &__thiscall bad_cast::operator =(class bad_cast const &)
??4bad_cast@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class bad_typeid &__thiscall bad_typeid::operator =(class bad_typeid const &)
??4bad_typeid@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class exception &__thiscall exception::operator =(class exception const &)
??4exception@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class filebuf &__thiscall filebuf::operator =(class filebuf const &)
??4filebuf@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class fstream &__thiscall fstream::operator =(class fstream &)
??4fstream@@QAEAAV0@AAV0@@Z ; has WINAPI (@4)
; public: class ifstream &__thiscall ifstream::operator =(class ifstream const &)
??4ifstream@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class ios &__thiscall ios::operator =(class ios const &)
??4ios@@IAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class iostream &__thiscall iostream::operator =(class iostream &)
??4iostream@@IAEAAV0@AAV0@@Z ; has WINAPI (@4)
; protected: class iostream &__thiscall iostream::operator =(class streambuf *)
??4iostream@@IAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; protected: class istream &__thiscall istream::operator =(class istream const &)
??4istream@@IAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class istream &__thiscall istream::operator =(class streambuf *)
??4istream@@IAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class istream_withassign &__thiscall istream_withassign::operator =(class istream_withassign const &)
??4istream_withassign@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream_withassign::operator =(class istream const &)
??4istream_withassign@@QAEAAVistream@@ABV1@@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream_withassign::operator =(class streambuf *)
??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class istrstream &__thiscall istrstream::operator =(class istrstream const &)
??4istrstream@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class logic_error &__thiscall logic_error::operator =(class logic_error const &)
??4logic_error@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class ofstream &__thiscall ofstream::operator =(class ofstream const &)
??4ofstream@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class ostream &__thiscall ostream::operator =(class ostream const &)
??4ostream@@IAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class ostream &__thiscall ostream::operator =(class streambuf *)
??4ostream@@IAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class ostream_withassign &__thiscall ostream_withassign::operator =(class ostream_withassign const &)
??4ostream_withassign@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream_withassign::operator =(class ostream const &)
??4ostream_withassign@@QAEAAVostream@@ABV1@@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream_withassign::operator =(class streambuf *)
??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class ostrstream &__thiscall ostrstream::operator =(class ostrstream const &)
??4ostrstream@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class stdiobuf &__thiscall stdiobuf::operator =(class stdiobuf const &)
??4stdiobuf@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class stdiostream &__thiscall stdiostream::operator =(class stdiostream &)
??4stdiostream@@QAEAAV0@AAV0@@Z ; has WINAPI (@4)
; public: class streambuf &__thiscall streambuf::operator =(class streambuf const &)
??4streambuf@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class strstream &__thiscall strstream::operator =(class strstream &)
??4strstream@@QAEAAV0@AAV0@@Z ; has WINAPI (@4)
; public: class strstreambuf &__thiscall strstreambuf::operator =(class strstreambuf const &)
??4strstreambuf@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(signed char &)
??5istream@@QAEAAV0@AAC@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(char &)
??5istream@@QAEAAV0@AAD@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned char &)
??5istream@@QAEAAV0@AAE@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(short &)
??5istream@@QAEAAV0@AAF@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned short &)
??5istream@@QAEAAV0@AAG@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(int &)
??5istream@@QAEAAV0@AAH@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned int &)
??5istream@@QAEAAV0@AAI@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(long &)
??5istream@@QAEAAV0@AAJ@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned long &)
??5istream@@QAEAAV0@AAK@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(float &)
??5istream@@QAEAAV0@AAM@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(double &)
??5istream@@QAEAAV0@AAN@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(long double &)
??5istream@@QAEAAV0@AAO@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(class istream &(__cdecl *)(class istream &))
??5istream@@QAEAAV0@P6AAAV0@AAV0@@Z@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(class ios &(__cdecl *)(class ios &))
??5istream@@QAEAAV0@P6AAAVios@@AAV1@@Z@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(signed char *)
??5istream@@QAEAAV0@PAC@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(char *)
??5istream@@QAEAAV0@PAD@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned char *)
??5istream@@QAEAAV0@PAE@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(class streambuf *)
??5istream@@QAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(signed char)
??6ostream@@QAEAAV0@C@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(char)
??6ostream@@QAEAAV0@D@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned char)
??6ostream@@QAEAAV0@E@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(short)
??6ostream@@QAEAAV0@F@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned short)
??6ostream@@QAEAAV0@G@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(int)
??6ostream@@QAEAAV0@H@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned int)
??6ostream@@QAEAAV0@I@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(long)
??6ostream@@QAEAAV0@J@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned long)
??6ostream@@QAEAAV0@K@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(float)
??6ostream@@QAEAAV0@M@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(double)
??6ostream@@QAEAAV0@N@Z ; has WINAPI (@8)
; public: class ostream &__thiscall ostream::operator <<(long double)
??6ostream@@QAEAAV0@O@Z ; has WINAPI (@8)
; public: class ostream &__thiscall ostream::operator <<(class ostream &(__cdecl *)(class ostream &))
??6ostream@@QAEAAV0@P6AAAV0@AAV0@@Z@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(class ios &(__cdecl *)(class ios &))
??6ostream@@QAEAAV0@P6AAAVios@@AAV1@@Z@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(class streambuf *)
??6ostream@@QAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(signed char const *)
??6ostream@@QAEAAV0@PBC@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(char const *)
??6ostream@@QAEAAV0@PBD@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned char const *)
??6ostream@@QAEAAV0@PBE@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(void const *)
??6ostream@@QAEAAV0@PBX@Z ; has WINAPI (@4)
; public: int __thiscall ios::operator !(void)const 
??7ios@@QBEHXZ
; public: int __thiscall type_info::operator ==(class type_info const &)const 
??8type_info@@QBEHABV0@@Z ; has WINAPI (@4)
; public: int __thiscall type_info::operator !=(class type_info const &)const 
??9type_info@@QBEHABV0@@Z ; has WINAPI (@4)
; public: void __thiscall ios::operator void *(...)const throw()
??Bios@@QBEPAXXZ
; const __non_rtti_object::$vftable
??_7__non_rtti_object@@6B@ DATA
; const bad_cast::$vftable
??_7bad_cast@@6B@ DATA
; const bad_typeid::$vftable
??_7bad_typeid@@6B@ DATA
; const exception::$vftable
??_7exception@@6B@ DATA
; const filebuf::$vftable
??_7filebuf@@6B@ DATA
; const fstream::$vftable
??_7fstream@@6B@ DATA
; const ifstream::$vftable
??_7ifstream@@6B@ DATA
; const ios::$vftable
??_7ios@@6B@ DATA
; const iostream::$vftable
??_7iostream@@6B@ DATA
; const istream::$vftable
??_7istream@@6B@ DATA
; const istream_withassign::$vftable
??_7istream_withassign@@6B@ DATA
; const istrstream::$vftable
??_7istrstream@@6B@ DATA
; const logic_error::$vftable
??_7logic_error@@6B@ DATA
; const ofstream::$vftable
??_7ofstream@@6B@ DATA
; const ostream::$vftable
??_7ostream@@6B@ DATA
; const ostream_withassign::$vftable
??_7ostream_withassign@@6B@ DATA
; const ostrstream::$vftable
??_7ostrstream@@6B@ DATA
; const stdiobuf::$vftable
??_7stdiobuf@@6B@ DATA
; const stdiostream::$vftable
??_7stdiostream@@6B@ DATA
; const streambuf::$vftable
??_7streambuf@@6B@ DATA
; const strstream::$vftable
??_7strstream@@6B@ DATA
; const strstreambuf::$vftable
??_7strstreambuf@@6B@ DATA
; const fstream::$vbtable {for 'istream' }
??_8fstream@@7Bistream@@@ DATA
; const fstream::$vbtable {for 'ostream' }
??_8fstream@@7Bostream@@@ DATA
; const ifstream::$vbtable
??_8ifstream@@7B@ DATA
; const iostream::$vbtable {for 'istream' }
??_8iostream@@7Bistream@@@ DATA
; const iostream::$vbtable {for 'ostream' }
??_8iostream@@7Bostream@@@ DATA
; const istream::$vbtable
??_8istream@@7B@ DATA
; const istream_withassign::$vbtable
??_8istream_withassign@@7B@ DATA
; const istrstream::$vbtable
??_8istrstream@@7B@ DATA
; const ofstream::$vbtable
??_8ofstream@@7B@ DATA
; const ostream::$vbtable
??_8ostream@@7B@ DATA
; const ostream_withassign::$vbtable
??_8ostream_withassign@@7B@ DATA
; const ostrstream::$vbtable
??_8ostrstream@@7B@ DATA
; const stdiostream::$vbtable {for 'istream' }
??_8stdiostream@@7Bistream@@@ DATA
; const stdiostream::$vbtable {for 'ostream' }
??_8stdiostream@@7Bostream@@@ DATA
; const strstream::$vbtable {for 'istream' }
??_8strstream@@7Bistream@@@ DATA
; const strstream::$vbtable {for 'ostream' }
??_8strstream@@7Bostream@@@ DATA
; public: void __thiscall fstream::vbase_destructor(void)
??_Dfstream@@QAEXXZ
; public: void __thiscall ifstream::vbase_destructor(void)
??_Difstream@@QAEXXZ
; public: void __thiscall iostream::vbase_destructor(void)
??_Diostream@@QAEXXZ
; public: void __thiscall istream::vbase_destructor(void)
??_Distream@@QAEXXZ
; public: void __thiscall istream_withassign::vbase_destructor(void)
??_Distream_withassign@@QAEXXZ
; public: void __thiscall istrstream::vbase_destructor(void)
??_Distrstream@@QAEXXZ
; public: void __thiscall ofstream::vbase_destructor(void)
??_Dofstream@@QAEXXZ
; public: void __thiscall ostream::vbase_destructor(void)
??_Dostream@@QAEXXZ
; public: void __thiscall ostream_withassign::vbase_destructor(void)
??_Dostream_withassign@@QAEXXZ
; public: void __thiscall ostrstream::vbase_destructor(void)
??_Dostrstream@@QAEXXZ
; public: void __thiscall stdiostream::vbase_destructor(void)
??_Dstdiostream@@QAEXXZ
; public: void __thiscall strstream::vbase_destructor(void)
??_Dstrstream@@QAEXXZ
; public: void *__thiscall Iostream_init::__vecDelDtor(unsigned int)
??_EIostream_init@@QAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall __non_rtti_object::__vecDelDtor(unsigned int)
??_E__non_rtti_object@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall bad_cast::__vecDelDtor(unsigned int)
??_Ebad_cast@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall bad_typeid::__vecDelDtor(unsigned int)
??_Ebad_typeid@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall exception::__vecDelDtor(unsigned int)
??_Eexception@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall filebuf::__vecDelDtor(unsigned int)
??_Efilebuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall fstream::__vecDelDtor(unsigned int)
??_Efstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ifstream::__vecDelDtor(unsigned int)
??_Eifstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ios::__vecDelDtor(unsigned int)
??_Eios@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall iostream::__vecDelDtor(unsigned int)
??_Eiostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istream::__vecDelDtor(unsigned int)
??_Eistream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istream_withassign::__vecDelDtor(unsigned int)
??_Eistream_withassign@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istrstream::__vecDelDtor(unsigned int)
??_Eistrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall logic_error::__vecDelDtor(unsigned int)
??_Elogic_error@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ofstream::__vecDelDtor(unsigned int)
??_Eofstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostream::__vecDelDtor(unsigned int)
??_Eostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostream_withassign::__vecDelDtor(unsigned int)
??_Eostream_withassign@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostrstream::__vecDelDtor(unsigned int)
??_Eostrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall stdiobuf::__vecDelDtor(unsigned int)
??_Estdiobuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall stdiostream::__vecDelDtor(unsigned int)
??_Estdiostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall streambuf::__vecDelDtor(unsigned int)
??_Estreambuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall strstream::__vecDelDtor(unsigned int)
??_Estrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall strstreambuf::__vecDelDtor(unsigned int)
??_Estrstreambuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: void *__thiscall Iostream_init::__delDtor(unsigned int)
??_GIostream_init@@QAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall __non_rtti_object::__delDtor(unsigned int)
??_G__non_rtti_object@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall bad_cast::__delDtor(unsigned int)
??_Gbad_cast@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall bad_typeid::__delDtor(unsigned int)
??_Gbad_typeid@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall exception::__delDtor(unsigned int)
??_Gexception@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall filebuf::__delDtor(unsigned int)
??_Gfilebuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall fstream::__delDtor(unsigned int)
??_Gfstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ifstream::__delDtor(unsigned int)
??_Gifstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ios::__delDtor(unsigned int)
??_Gios@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall iostream::__delDtor(unsigned int)
??_Giostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istream::__delDtor(unsigned int)
??_Gistream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istream_withassign::__delDtor(unsigned int)
??_Gistream_withassign@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istrstream::__delDtor(unsigned int)
??_Gistrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall logic_error::__delDtor(unsigned int)
??_Glogic_error@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ofstream::__delDtor(unsigned int)
??_Gofstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostream::__delDtor(unsigned int)
??_Gostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostream_withassign::__delDtor(unsigned int)
??_Gostream_withassign@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostrstream::__delDtor(unsigned int)
??_Gostrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall stdiobuf::__delDtor(unsigned int)
??_Gstdiobuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall stdiostream::__delDtor(unsigned int)
??_Gstdiostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall streambuf::__delDtor(unsigned int)
??_Gstreambuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall strstream::__delDtor(unsigned int)
??_Gstrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall strstreambuf::__delDtor(unsigned int)
??_Gstrstreambuf@@UAEPAXI@Z ; has WINAPI (@4)
; int(__cdecl *)(unsigned int)__cdecl _query_new_handler(void)
?_query_new_handler@@YAP6AHI@ZXZ
; int __cdecl _query_new_mode(void)
?_query_new_mode@@YAHXZ
; int(__cdecl *)(unsigned int)__cdecl _set_new_handler(int(__cdecl *)(unsigned int))
?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z
; int __cdecl _set_new_mode(int)
?_set_new_mode@@YAHH@Z
; void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *)__cdecl _set_se_translator(void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *))
?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z
; public: static long const ios::adjustfield
?adjustfield@ios@@2JB DATA
; protected: int __thiscall streambuf::allocate(void)
?allocate@streambuf@@IAEHXZ
; public: class filebuf *__thiscall filebuf::attach(int)
?attach@filebuf@@QAEPAV1@H@Z ; has WINAPI (@4)
; public: void __thiscall fstream::attach(int)
?attach@fstream@@QAEXH@Z ; has WINAPI (@4)
; public: void __thiscall ifstream::attach(int)
?attach@ifstream@@QAEXH@Z ; has WINAPI (@4)
; public: void __thiscall ofstream::attach(int)
?attach@ofstream@@QAEXH@Z ; has WINAPI (@4)
; public: int __thiscall ios::bad(void)const 
?bad@ios@@QBEHXZ
; protected: char *__thiscall streambuf::base(void)const 
?base@streambuf@@IBEPADXZ
; public: static long const ios::basefield
?basefield@ios@@2JB DATA
; public: int __thiscall type_info::before(class type_info const &)const 
?before@type_info@@QBEHABV1@@Z ; has WINAPI (@4)
; public: static int const filebuf::binary
?binary@filebuf@@2HB DATA
; public: static long __cdecl ios::bitalloc(void)
?bitalloc@ios@@SAJXZ
; protected: int __thiscall streambuf::blen(void)const 
?blen@streambuf@@IBEHXZ
; class ostream_withassign cerr
?cerr@@3Vostream_withassign@@A DATA
; class istream_withassign cin
?cin@@3Vistream_withassign@@A DATA
; public: void __thiscall ios::clear(int)
?clear@ios@@QAEXH@Z ; has WINAPI (@4)
; class ostream_withassign clog
?clog@@3Vostream_withassign@@A DATA
; public: class filebuf *__thiscall filebuf::close(void)
?close@filebuf@@QAEPAV1@XZ
; public: void __thiscall fstream::close(void)
?close@fstream@@QAEXXZ
; public: void __thiscall ifstream::close(void)
?close@ifstream@@QAEXXZ
; public: void __thiscall ofstream::close(void)
?close@ofstream@@QAEXXZ
; public: void __cdecl ios::clrlock(void)
?clrlock@ios@@QAAXXZ
; public: void __thiscall streambuf::clrlock(void)
?clrlock@streambuf@@QAEXXZ
; class ostream_withassign cout
?cout@@3Vostream_withassign@@A DATA
; public: void __thiscall streambuf::dbp(void)
?dbp@streambuf@@QAEXXZ
; class ios &__cdecl dec(class ios &)
?dec@@YAAAVios@@AAV1@@Z
; public: void __thiscall ios::delbuf(int)
?delbuf@ios@@QAEXH@Z ; has WINAPI (@4)
; public: int __thiscall ios::delbuf(void)const 
?delbuf@ios@@QBEHXZ
; protected: virtual int __thiscall streambuf::doallocate(void)
?doallocate@streambuf@@MAEHXZ
; protected: virtual int __thiscall strstreambuf::doallocate(void)
?doallocate@strstreambuf@@MAEHXZ
; public: void __thiscall istream::eatwhite(void)
?eatwhite@istream@@QAEXXZ
; protected: char *__thiscall streambuf::eback(void)const 
?eback@streambuf@@IBEPADXZ
; protected: char *__thiscall streambuf::ebuf(void)const 
?ebuf@streambuf@@IBEPADXZ
; protected: char *__thiscall streambuf::egptr(void)const 
?egptr@streambuf@@IBEPADXZ
; class ostream &__cdecl endl(class ostream &)
?endl@@YAAAVostream@@AAV1@@Z
; class ostream &__cdecl ends(class ostream &)
?ends@@YAAAVostream@@AAV1@@Z
; public: int __thiscall ios::eof(void)const 
?eof@ios@@QBEHXZ
; protected: char *__thiscall streambuf::epptr(void)const 
?epptr@streambuf@@IBEPADXZ
; private: static int ios::fLockcInit
?fLockcInit@ios@@0HA DATA
; public: int __thiscall ios::fail(void)const 
?fail@ios@@QBEHXZ
; public: int __thiscall filebuf::fd(void)const 
?fd@filebuf@@QBEHXZ
; public: int __thiscall fstream::fd(void)const 
?fd@fstream@@QBEHXZ
; public: int __thiscall ifstream::fd(void)const 
?fd@ifstream@@QBEHXZ
; public: int __thiscall ofstream::fd(void)const 
?fd@ofstream@@QBEHXZ
; public: char __thiscall ios::fill(char)
?fill@ios@@QAEDD@Z ; has WINAPI (@4)
; public: char __thiscall ios::fill(void)const 
?fill@ios@@QBEDXZ
; public: long __thiscall ios::flags(long)
?flags@ios@@QAEJJ@Z ; has WINAPI (@4)
; public: long __thiscall ios::flags(void)const 
?flags@ios@@QBEJXZ
; public: static long const ios::floatfield
?floatfield@ios@@2JB DATA
; class ostream &__cdecl flush(class ostream &)
?flush@@YAAAVostream@@AAV1@@Z
; public: class ostream &__thiscall ostream::flush(void)
?flush@ostream@@QAEAAV1@XZ
; public: void __thiscall strstreambuf::freeze(int)
?freeze@strstreambuf@@QAEXH@Z ; has WINAPI (@4)
; protected: void __thiscall streambuf::gbump(int)
?gbump@streambuf@@IAEXH@Z ; has WINAPI (@4)
; public: int __thiscall istream::gcount(void)const 
?gcount@istream@@QBEHXZ
; protected: class istream &__thiscall istream::get(char *,int,int)
?get@istream@@IAEAAV1@PADHH@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::get(signed char &)
?get@istream@@QAEAAV1@AAC@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::get(char &)
?get@istream@@QAEAAV1@AAD@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::get(unsigned char &)
?get@istream@@QAEAAV1@AAE@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::get(class streambuf &,char)
?get@istream@@QAEAAV1@AAVstreambuf@@D@Z ; has WINAPI (@8)
; public: class istream &__thiscall istream::get(signed char *,int,char)
?get@istream@@QAEAAV1@PACHD@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::get(char *,int,char)
?get@istream@@QAEAAV1@PADHD@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::get(unsigned char *,int,char)
?get@istream@@QAEAAV1@PAEHD@Z ; has WINAPI (@12)
; public: int __thiscall istream::get(void)
?get@istream@@QAEHXZ
; private: int __thiscall istream::getdouble(char *,int)
?getdouble@istream@@AAEHPADH@Z ; has WINAPI (@8)
; private: int __thiscall istream::getint(char *)
?getint@istream@@AAEHPAD@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::getline(signed char *,int,char)
?getline@istream@@QAEAAV1@PACHD@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::getline(char *,int,char)
?getline@istream@@QAEAAV1@PADHD@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::getline(unsigned char *,int,char)
?getline@istream@@QAEAAV1@PAEHD@Z ; has WINAPI (@12)
; public: int __thiscall ios::good(void)const 
?good@ios@@QBEHXZ
; protected: char *__thiscall streambuf::gptr(void)const 
?gptr@streambuf@@IBEPADXZ
; class ios &__cdecl hex(class ios &)
?hex@@YAAAVios@@AAV1@@Z
; public: class istream &__thiscall istream::ignore(int,int)
?ignore@istream@@QAEAAV1@HH@Z ; has WINAPI (@8)
; public: int __thiscall streambuf::in_avail(void)const 
?in_avail@streambuf@@QBEHXZ
; protected: void __thiscall ios::init(class streambuf *)
?init@ios@@IAEXPAVstreambuf@@@Z ; has WINAPI (@4)
; public: int __thiscall istream::ipfx(int)
?ipfx@istream@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall filebuf::is_open(void)const 
?is_open@filebuf@@QBEHXZ
; public: int __thiscall fstream::is_open(void)const 
?is_open@fstream@@QBEHXZ
; public: int __thiscall ifstream::is_open(void)const 
?is_open@ifstream@@QBEHXZ
; public: int __thiscall ofstream::is_open(void)const 
?is_open@ofstream@@QBEHXZ
; public: void __thiscall istream::isfx(void)
?isfx@istream@@QAEXXZ
; public: long &__thiscall ios::iword(int)const 
?iword@ios@@QBEAAJH@Z ; has WINAPI (@4)
; public: void __cdecl ios::lock(void)
?lock@ios@@QAAXXZ
; public: void __thiscall streambuf::lock(void)
?lock@streambuf@@QAEXXZ
; public: void __cdecl ios::lockbuf(void)
?lockbuf@ios@@QAAXXZ
; protected: static void __cdecl ios::lockc(void)
?lockc@ios@@KAXXZ
; protected: struct _CRT_CRITICAL_SECTION *__thiscall ios::lockptr(void)
?lockptr@ios@@IAEPAU_CRT_CRITICAL_SECTION@@XZ
; protected: struct _CRT_CRITICAL_SECTION *__thiscall streambuf::lockptr(void)
?lockptr@streambuf@@IAEPAU_CRT_CRITICAL_SECTION@@XZ
; public: char const *__thiscall type_info::name(void)const 
?name@type_info@@QBEPBDXZ
; class ios &__cdecl oct(class ios &)
?oct@@YAAAVios@@AAV1@@Z
; public: class filebuf *__thiscall filebuf::open(char const *,int,int)
?open@filebuf@@QAEPAV1@PBDHH@Z ; has WINAPI (@12)
; public: void __thiscall fstream::open(char const *,int,int)
?open@fstream@@QAEXPBDHH@Z ; has WINAPI (@12)
; public: void __thiscall ifstream::open(char const *,int,int)
?open@ifstream@@QAEXPBDHH@Z ; has WINAPI (@12)
; public: void __thiscall ofstream::open(char const *,int,int)
?open@ofstream@@QAEXPBDHH@Z ; has WINAPI (@12)
; public: static int const filebuf::openprot
?openprot@filebuf@@2HB DATA
; public: int __thiscall ostream::opfx(void)
?opfx@ostream@@QAEHXZ
; public: void __thiscall ostream::osfx(void)
?osfx@ostream@@QAEXXZ
; public: int __thiscall streambuf::out_waiting(void)const 
?out_waiting@streambuf@@QBEHXZ
; public: virtual int __thiscall filebuf::overflow(int)
?overflow@filebuf@@UAEHH@Z ; has WINAPI (@4)
; public: virtual int __thiscall stdiobuf::overflow(int)
?overflow@stdiobuf@@UAEHH@Z ; has WINAPI (@4)
; public: virtual int __thiscall strstreambuf::overflow(int)
?overflow@strstreambuf@@UAEHH@Z ; has WINAPI (@4)
; public: virtual int __thiscall stdiobuf::pbackfail(int)
?pbackfail@stdiobuf@@UAEHH@Z ; has WINAPI (@4)
; public: virtual int __thiscall streambuf::pbackfail(int)
?pbackfail@streambuf@@UAEHH@Z ; has WINAPI (@4)
; protected: char *__thiscall streambuf::pbase(void)const 
?pbase@streambuf@@IBEPADXZ
; protected: void __thiscall streambuf::pbump(int)
?pbump@streambuf@@IAEXH@Z ; has WINAPI (@4)
; public: int __thiscall ostrstream::pcount(void)const 
?pcount@ostrstream@@QBEHXZ
; public: int __thiscall strstream::pcount(void)const 
?pcount@strstream@@QBEHXZ
; public: int __thiscall istream::peek(void)
?peek@istream@@QAEHXZ
; protected: char *__thiscall streambuf::pptr(void)const 
?pptr@streambuf@@IBEPADXZ
; public: int __thiscall ios::precision(int)
?precision@ios@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall ios::precision(void)const 
?precision@ios@@QBEHXZ
; public: class ostream &__thiscall ostream::put(signed char)
?put@ostream@@QAEAAV1@C@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::put(char)
?put@ostream@@QAEAAV1@D@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::put(unsigned char)
?put@ostream@@QAEAAV1@E@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::putback(char)
?putback@istream@@QAEAAV1@D@Z ; has WINAPI (@4)
; public: void *&__thiscall ios::pword(int)const 
?pword@ios@@QBEAAPAXH@Z ; has WINAPI (@4)
; public: char const *__thiscall type_info::raw_name(void)const 
?raw_name@type_info@@QBEPBDXZ
; public: class filebuf *__thiscall fstream::rdbuf(void)const 
?rdbuf@fstream@@QBEPAVfilebuf@@XZ
; public: class filebuf *__thiscall ifstream::rdbuf(void)const 
?rdbuf@ifstream@@QBEPAVfilebuf@@XZ
; public: class streambuf *__thiscall ios::rdbuf(void)const 
?rdbuf@ios@@QBEPAVstreambuf@@XZ
; public: class strstreambuf *__thiscall istrstream::rdbuf(void)const 
?rdbuf@istrstream@@QBEPAVstrstreambuf@@XZ
; public: class filebuf *__thiscall ofstream::rdbuf(void)const 
?rdbuf@ofstream@@QBEPAVfilebuf@@XZ
; public: class strstreambuf *__thiscall ostrstream::rdbuf(void)const 
?rdbuf@ostrstream@@QBEPAVstrstreambuf@@XZ
; public: class stdiobuf *__thiscall stdiostream::rdbuf(void)const 
?rdbuf@stdiostream@@QBEPAVstdiobuf@@XZ
; public: class strstreambuf *__thiscall strstream::rdbuf(void)const 
?rdbuf@strstream@@QBEPAVstrstreambuf@@XZ
; public: int __thiscall ios::rdstate(void)const 
?rdstate@ios@@QBEHXZ
; public: class istream &__thiscall istream::read(signed char *,int)
?read@istream@@QAEAAV1@PACH@Z ; has WINAPI (@8)
; public: class istream &__thiscall istream::read(char *,int)
?read@istream@@QAEAAV1@PADH@Z ; has WINAPI (@8)
; public: class istream &__thiscall istream::read(unsigned char *,int)
?read@istream@@QAEAAV1@PAEH@Z ; has WINAPI (@8)
; public: int __thiscall streambuf::sbumpc(void)
?sbumpc@streambuf@@QAEHXZ
; public: class istream &__thiscall istream::seekg(long)
?seekg@istream@@QAEAAV1@J@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::seekg(long,enum ios::seek_dir)
?seekg@istream@@QAEAAV1@JW4seek_dir@ios@@@Z ; has WINAPI (@8)
; public: virtual long __thiscall filebuf::seekoff(long,enum ios::seek_dir,int)
?seekoff@filebuf@@UAEJJW4seek_dir@ios@@H@Z ; has WINAPI (@12)
; public: virtual long __thiscall stdiobuf::seekoff(long,enum ios::seek_dir,int)
?seekoff@stdiobuf@@UAEJJW4seek_dir@ios@@H@Z ; has WINAPI (@12)
; public: virtual long __thiscall streambuf::seekoff(long,enum ios::seek_dir,int)
?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z ; has WINAPI (@12)
; public: virtual long __thiscall strstreambuf::seekoff(long,enum ios::seek_dir,int)
?seekoff@strstreambuf@@UAEJJW4seek_dir@ios@@H@Z ; has WINAPI (@12)
; public: class ostream &__thiscall ostream::seekp(long)
?seekp@ostream@@QAEAAV1@J@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::seekp(long,enum ios::seek_dir)
?seekp@ostream@@QAEAAV1@JW4seek_dir@ios@@@Z ; has WINAPI (@8)
; public: virtual long __thiscall streambuf::seekpos(long,int)
?seekpos@streambuf@@UAEJJH@Z ; has WINAPI (@8)
; void(__cdecl *)(void)__cdecl set_new_handler(void(__cdecl *)(void))
?set_new_handler@@YAP6AXXZP6AXXZ@Z
; void(__cdecl *)(void)__cdecl set_terminate(void(__cdecl *)(void))
?set_terminate@@YAP6AXXZP6AXXZ@Z
; void(__cdecl *)(void)__cdecl set_unexpected(void(__cdecl *)(void))
?set_unexpected@@YAP6AXXZP6AXXZ@Z
; protected: void __thiscall streambuf::setb(char *,char *,int)
?setb@streambuf@@IAEXPAD0H@Z ; has WINAPI (@12)
; public: virtual class streambuf *__thiscall filebuf::setbuf(char *,int)
?setbuf@filebuf@@UAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: class streambuf *__thiscall fstream::setbuf(char *,int)
?setbuf@fstream@@QAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: class streambuf *__thiscall ifstream::setbuf(char *,int)
?setbuf@ifstream@@QAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: class streambuf *__thiscall ofstream::setbuf(char *,int)
?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: virtual class streambuf *__thiscall streambuf::setbuf(char *,int)
?setbuf@streambuf@@UAEPAV1@PADH@Z ; has WINAPI (@8)
; public: virtual class streambuf *__thiscall strstreambuf::setbuf(char *,int)
?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: long __thiscall ios::setf(long)
?setf@ios@@QAEJJ@Z ; has WINAPI (@4)
; public: long __thiscall ios::setf(long,long)
?setf@ios@@QAEJJJ@Z ; has WINAPI (@8)
; protected: void __thiscall streambuf::setg(char *,char *,char *)
?setg@streambuf@@IAEXPAD00@Z ; has WINAPI (@12)
; public: void __cdecl ios::setlock(void)
?setlock@ios@@QAAXXZ
; public: void __thiscall streambuf::setlock(void)
?setlock@streambuf@@QAEXXZ
; public: int __thiscall filebuf::setmode(int)
?setmode@filebuf@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall fstream::setmode(int)
?setmode@fstream@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall ifstream::setmode(int)
?setmode@ifstream@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall ofstream::setmode(int)
?setmode@ofstream@@QAEHH@Z ; has WINAPI (@4)
; protected: void __thiscall streambuf::setp(char *,char *)
?setp@streambuf@@IAEXPAD0@Z ; has WINAPI (@8)
; public: int __thiscall stdiobuf::setrwbuf(int,int)
?setrwbuf@stdiobuf@@QAEHHH@Z ; has WINAPI (@8)
; public: int __thiscall streambuf::sgetc(void)
?sgetc@streambuf@@QAEHXZ
; public: int __thiscall streambuf::sgetn(char *,int)
?sgetn@streambuf@@QAEHPADH@Z ; has WINAPI (@8)
; public: static int const filebuf::sh_none
?sh_none@filebuf@@2HB DATA
; public: static int const filebuf::sh_read
?sh_read@filebuf@@2HB DATA
; public: static int const filebuf::sh_write
?sh_write@filebuf@@2HB DATA
; public: int __thiscall streambuf::snextc(void)
?snextc@streambuf@@QAEHXZ
; public: int __thiscall streambuf::sputbackc(char)
?sputbackc@streambuf@@QAEHD@Z ; has WINAPI (@4)
; public: int __thiscall streambuf::sputc(int)
?sputc@streambuf@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall streambuf::sputn(char const *,int)
?sputn@streambuf@@QAEHPBDH@Z ; has WINAPI (@8)
; public: struct _iobuf *__thiscall stdiobuf::stdiofile(void)
?stdiofile@stdiobuf@@QAEPAU_iobuf@@XZ
; public: void __thiscall streambuf::stossc(void)
?stossc@streambuf@@QAEXXZ
; public: char *__thiscall istrstream::str(void)
?str@istrstream@@QAEPADXZ
; public: char *__thiscall ostrstream::str(void)
?str@ostrstream@@QAEPADXZ
; public: char *__thiscall strstream::str(void)
?str@strstream@@QAEPADXZ
; public: char *__thiscall strstreambuf::str(void)
?str@strstreambuf@@QAEPADXZ
; private: static int ios::sunk_with_stdio
?sunk_with_stdio@ios@@0HA DATA
; public: virtual int __thiscall filebuf::sync(void)
?sync@filebuf@@UAEHXZ
; public: int __thiscall istream::sync(void)
?sync@istream@@QAEHXZ
; public: virtual int __thiscall stdiobuf::sync(void)
?sync@stdiobuf@@UAEHXZ
; public: virtual int __thiscall streambuf::sync(void)
?sync@streambuf@@UAEHXZ
; public: virtual int __thiscall strstreambuf::sync(void)
?sync@strstreambuf@@UAEHXZ
; public: static void __cdecl ios::sync_with_stdio(void)
?sync_with_stdio@ios@@SAXXZ
; public: long __thiscall istream::tellg(void)
?tellg@istream@@QAEJXZ
; public: long __thiscall ostream::tellp(void)
?tellp@ostream@@QAEJXZ
; void __cdecl terminate(void)
?terminate@@YAXXZ
; public: static int const filebuf::text
?text@filebuf@@2HB DATA
; public: class ostream *__thiscall ios::tie(class ostream *)
?tie@ios@@QAEPAVostream@@PAV2@@Z ; has WINAPI (@4)
; public: class ostream *__thiscall ios::tie(void)const 
?tie@ios@@QBEPAVostream@@XZ
; protected: void __thiscall streambuf::unbuffered(int)
?unbuffered@streambuf@@IAEXH@Z ; has WINAPI (@4)
; protected: int __thiscall streambuf::unbuffered(void)const 
?unbuffered@streambuf@@IBEHXZ
; public: virtual int __thiscall filebuf::underflow(void)
?underflow@filebuf@@UAEHXZ
; public: virtual int __thiscall stdiobuf::underflow(void)
?underflow@stdiobuf@@UAEHXZ
; public: virtual int __thiscall strstreambuf::underflow(void)
?underflow@strstreambuf@@UAEHXZ
; void __cdecl unexpected(void)
?unexpected@@YAXXZ
; public: void __cdecl ios::unlock(void)
?unlock@ios@@QAAXXZ
; public: void __thiscall streambuf::unlock(void)
?unlock@streambuf@@QAEXXZ
; public: void __cdecl ios::unlockbuf(void)
?unlockbuf@ios@@QAAXXZ
; protected: static void __cdecl ios::unlockc(void)
?unlockc@ios@@KAXXZ
; public: long __thiscall ios::unsetf(long)
?unsetf@ios@@QAEJJ@Z ; has WINAPI (@4)
; public: virtual char const *__thiscall exception::what(void)const 
?what@exception@@UBEPBDXZ
; public: int __thiscall ios::width(int)
?width@ios@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall ios::width(void)const 
?width@ios@@QBEHXZ
; public: class ostream &__thiscall ostream::write(signed char const *,int)
?write@ostream@@QAEAAV1@PBCH@Z ; has WINAPI (@8)
; public: class ostream &__thiscall ostream::write(char const *,int)
?write@ostream@@QAEAAV1@PBDH@Z ; has WINAPI (@8)
; public: class ostream &__thiscall ostream::write(unsigned char const *,int)
?write@ostream@@QAEAAV1@PBEH@Z ; has WINAPI (@8)
; private: class ostream &__thiscall ostream::writepad(char const *,char const *)
?writepad@ostream@@AAEAAV1@PBD0@Z ; has WINAPI (@8)
; class istream &__cdecl ws(class istream &)
?ws@@YAAAVistream@@AAV1@@Z
; private: static int ios::x_curindex
?x_curindex@ios@@0HA DATA
; private: static struct _CRT_CRITICAL_SECTION ios::x_lockc
?x_lockc@ios@@0U_CRT_CRITICAL_SECTION@@A DATA
; private: static long ios::x_maxbit
?x_maxbit@ios@@0JA DATA
; private: static long *ios::x_statebuf
?x_statebuf@ios@@0PAJA DATA
; public: static int __cdecl ios::xalloc(void)
?xalloc@ios@@SAHXZ
; public: virtual int __thiscall streambuf::xsgetn(char *,int)
?xsgetn@streambuf@@UAEHPADH@Z ; has WINAPI (@8)
; public: virtual int __thiscall streambuf::xsputn(char const *,int)
?xsputn@streambuf@@UAEHPBDH@Z ; has WINAPI (@8)
$I10_OUTPUT
_CIacos
_CIasin
_CIatan
_CIatan2
_CIcos
_CIcosh
_CIexp
_CIfmod
_CIlog
_CIlog10
_CIpow
_CIsin
_CIsinh
_CIsqrt
_CItan
_CItanh
_CxxThrowException@8
_EH_prolog
_HUGE DATA
_XcptFilter
__CxxFrameHandler
__CxxLongjmpUnwind@4
__RTCastToVoid
__RTDynamicCast
__RTtypeid
__STRINGTOLD
__dllonexit
__doserrno
__fpecode
__msvcrt_getmainargs == __getmainargs ; msvcrt40.dll's __getmainargs has same API as msvcrt.dll's __getmainargs, real __getmainargs provided by emu
__isascii
__iscsym
__iscsymf
__lconv_init
__p___argc
__p___argv
__p___initenv
__p___mb_cur_max
__p___wargv
__p___winitenv
__p__acmdln
__p__amblksiz
__p__commode
__p__daylight
__p__environ
__p__fmode
__p__iob
__p__mbctype
__p__osver
__p__pctype
__p__pgmptr
__p__pwctype
__p__timezone
__p__tzname
__p__wcmdln
__p__wenviron
__p__winmajor
__p__winminor
__p__winver
__p__wpgmptr
__pxcptinfoptrs
__set_app_type
__setusermatherr
__threadhandle
__threadid
__toascii
__unDName
__msvcrt_wgetmainargs == __wgetmainargs ; msvcrt40.dll's __wgetmainargs has same API as msvcrt.dll's __wgetmainargs, real __wgetmainargs provided by emu
_abnormal_termination
_access
_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like stdcall @8)
_adj_fdiv_r
_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like stdcall @8)
_adj_fpatan
_adj_fprem
_adj_fprem1
_adj_fptan
_adjust_fdiv DATA
_amsg_exit
_assert
_atodbl
_atoldbl
_beep
_beginthread
_beginthreadex
_c_exit
_cabs
_cexit
_cgets
_chdir
_chdrive
_chgsign
_chmod
_chsize
_clearfp
_close
_commit
_control87
_controlfp
_copysign
_cprintf
_cputs
_creat
_cscanf
_ctype DATA
_cwait
_dup
_dup2
_ecvt
_endthread
_endthreadex
_eof
_errno
_except_handler2
_except_handler3
_execl
_execle
_execlp
_execlpe
_execv
_execve
_execvp
_execvpe
_exit
_expand
_fcloseall
_fcvt
_fdopen
_fgetchar
_fgetwchar
_filbuf
_fileinfo DATA
_filelength
_filelengthi64
_fileno
_findclose
_findfirst
_findfirsti64
_findnext
_findnexti64
_finite
_flsbuf
_flushall
_fpclass
_fpieee_flt
_fpreset
_fputchar
_fputwchar
_fsopen
_fstat
_fstati64
_ftime
_ftol
_fullpath
_futime
_gcvt
_get_osfhandle
_getch
_getche
_getcwd
_getdcwd
_getdiskfree
_getdllprocaddr
_getdrive
_getdrives
_getmbcp
_getpid
_getsystime
_getw
_getws
_global_unwind2
_heapadd
_heapchk
_heapmin
_heapset
_heapused
_heapwalk
_hypot
_initterm
_isatty
_isctype
_ismbbalnum
_ismbbalpha
_ismbbgraph
_ismbbkalnum
_ismbbkana
_ismbbkprint
_ismbbkpunct
_ismbblead
_ismbbprint
_ismbbpunct
_ismbbtrail
_ismbcalnum
_ismbcalpha
_ismbcdigit
_ismbcgraph
_ismbchira
_ismbckata
_ismbcl0
_ismbcl1
_ismbcl2
_ismbclegal
_ismbclower
_ismbcprint
_ismbcpunct
_ismbcspace
_ismbcsymbol
_ismbcupper
_ismbslead
_ismbstrail
_isnan
_itoa
_itow
_j0
_j1
_jn
_kbhit
_lfind
_loaddll
_local_unwind2
_locking
_logb
_longjmpex
_lrotl
_lrotr
_lsearch
_lseek
_lseeki64
_ltoa
_ltow
_makepath
_mbbtombc
_mbbtype
_mbccpy
_mbcjistojms
_mbcjmstojis
_mbclen
_mbctohira
_mbctokata
_mbctolower
_mbctombb
_mbctoupper
_mbsbtype
_mbscat
_mbschr
_mbscmp
_mbscoll
_mbscpy
_mbscspn
_mbsdec
_mbsdup
_mbsicmp
_mbsicoll
_mbsinc
_mbslen
_mbslwr
_mbsnbcat
_mbsnbcmp
_mbsnbcnt
_mbsnbcoll
_mbsnbcpy
_mbsnbicmp
_mbsnbicoll
_mbsnbset
_mbsncat
_mbsnccnt
_mbsncmp
_mbsncoll
_mbsncpy
_mbsnextc
_mbsnicmp
_mbsnicoll
_mbsninc
_mbsnset
_mbspbrk
_mbsrchr
_mbsrev
_mbsset
_mbsspn
_mbsspnp
_mbsstr
_mbstok
_mbstrlen
_mbsupr
_memccpy
_memicmp
_mkdir
_mktemp
_msize
_mtlock
_mtunlock
_nextafter
; _onexit ; disable _onexit for compatibility with DLL builds, real _onexit function provided by mingw-w64
_open
_open_osfhandle
_pclose
_pipe
_popen
_purecall
_putch
_putenv
_putw
_putws
_read
_rmdir
_rmtmp
_rotl
_rotr
_safe_fdiv
_safe_fdivr
_safe_fprem
_safe_fprem1
_scalb
_searchenv
_seh_longjmp_unwind@4
_set_error_mode
_seterrormode
_setjmp
_setjmp3
_setmaxstdio
_setmbcp
_setmode
_setsystime
_sleep
_snprintf
_snwprintf
_sopen
_spawnl
_spawnle
_spawnlp
_spawnlpe
_spawnv
_spawnve
_spawnvp
_spawnvpe
_splitpath
_stat
_stati64
_statusfp
_strcmpi
_strdate
_strdup
_strerror
_stricmp
_stricoll
_strlwr
_strncoll
_strnicmp
_strnicoll
_strnset
_strrev
_strset
_strtime
_strupr
_swab
_sys_errlist DATA
_sys_nerr DATA
_tell
_telli64
_tempnam
_tolower
_toupper
_tzset
_ultoa
_ultow
_umask
_ungetch
_unlink
_unloaddll
_utime
_vsnprintf
_vsnwprintf
_waccess
_wasctime
_wchdir
_wchmod
_wcreat
_wcsdup
_wcsicmp
_wcsicoll
_wcslwr
_wcsncoll
_wcsnicmp
_wcsnicoll
_wcsnset
_wcsrev
_wcsset
_wcsupr
_wctime
_wexecl
_wexecle
_wexeclp
_wexeclpe
_wexecv
_wexecve
_wexecvp
_wexecvpe
_wfdopen
_wfindfirst
_wfindfirsti64
_wfindnext
_wfindnexti64
_wfopen
_wfreopen
_wfsopen
_wfullpath
_wgetcwd
_wgetdcwd
_wgetenv
_wmakepath
_wmkdir
_wmktemp
_wopen
_wperror
_wpopen
_wputenv
_wremove
_wrename
_write
_wrmdir
_wsearchenv
_wsetlocale
_wsopen
_wspawnl
_wspawnle
_wspawnlp
_wspawnlpe
_wspawnv
_wspawnve
_wspawnvp
_wspawnvpe
_wsplitpath
_wstat
_wstati64
_wstrdate
_wstrtime
_wsystem
_wtempnam
_wtmpnam
_wtoi
_wtol
_wunlink
_wutime
_y0
_y1
_yn
abort
abs
acos
asctime
asin
atan
atan2
_crt_atexit == atexit ; rename atexit to _crt_atexit for compatibility with UCRT, real atexit function provided by mingw-w64
atof
atoi
atol
bsearch
calloc
ceil
clearerr
clock
cos
cosh
ctime
difftime
div
exit
exp
fabs
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
fgetwc
fgetws
floor
fmod
fopen
fprintf
fputc
fputs
fputwc
fputws
fread
free
freopen
frexp
fscanf
fseek
fsetpos
ftell
fwprintf
fwrite
fwscanf
getc
getchar
getenv
gets
getwc
getwchar
gmtime
is_wctype
isalnum
isalpha
iscntrl
isdigit
isgraph
isleadbyte
islower
isprint
ispunct
isspace
isupper
iswalnum
iswalpha
iswascii
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
isxdigit
labs
ldexp
ldiv
localeconv
localtime
log
log10
longjmp
malloc
mblen
mbstowcs
mbtowc
memchr
memcmp
memcpy
memmove
memset
mktime
modf
perror
pow
printf
putc
putchar
puts
putwc
putwchar
qsort
raise
rand
realloc
remove
rename
rewind
scanf
setbuf
setlocale
setvbuf
signal
sin
sinh
sprintf
sqrt
srand
sscanf
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strftime
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtod
strtok
strtol
strtoul
strxfrm
_swprintf == swprintf ; rename swprintf to _swprintf for compatibility with msvcr80+, real C95+ compatible swprintf provided by mingw-w64
swscanf
system
tan
tanh
time
tmpfile
tmpnam
tolower
toupper
towlower
towupper
ungetc
ungetwc
vfprintf
vfwprintf
vprintf
vsprintf
_vswprintf == vswprintf ; rename vswprintf to _vswprintf for compatibility with msvcr80+, real C95+ compatible vswprintf provided by mingw-w64
vwprintf
wcscat
wcschr
wcscmp
wcscoll
wcscpy
wcscspn
wcsftime
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsspn
wcsstr
wcstod
_wcstok == wcstok ; provide nonstandard function "wcstok" in the DLL, under the name "_wcstok" to match UCRT, the C95+ compatible "wcstok" is provided by mingw-w64
wcstol
wcstombs
wcstoul
wcsxfrm
wctomb
wprintf
wscanf

; These symbols are not available in Win32s version of msvcrt40.dll
__argc DATA
__argv DATA
__initenv DATA
__mb_cur_max DATA
__wargv DATA
__winitenv DATA
_acmdln DATA
_aexit_rtn DATA
_commode DATA
_daylight DATA
_environ DATA
_fmode DATA
_iob DATA
_mbctype DATA
_osver DATA
_pctype DATA
_pgmptr DATA
_pwctype DATA
_timezone DATA
_tzname DATA
_wcmdln DATA
_wenviron DATA
_winmajor DATA
_winminor DATA
_winver DATA
_wpgmptr DATA

; These symbols are not available in the original Microsoft Visual C++ 4.0 version of msvcrt40.dll
; They were added in Microsoft Visual C++ 4.1 Upgrade version of msvcrt40.dll and are available also in all OS system versions of msvcrt40.dll
__p__dstbias
_getmaxstdio
_inp
_inpd
_inpw
_outp
_outpd
_outpw
; Following symbol was not added into Win32s version of msvcrt40.dll
_dstbias DATA

; Include symbol aliases for compatibility with msvcrt.dll
#define FIXED_SIZE_SYMBOLS
#define NO_STRCMPI_ALIAS
#define WITH_NEXTAFTER_ALIAS
#define WITH_IOB_FUNC_ALIAS
#define WITH_TZ_ALIASES
#include "crt-aliases.def.in"
