; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.3077 

	TITLE	.\R3v.cpp
	.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
$$SYMBOLS	SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS	ENDS
$$TYPES	SEGMENT BYTE USE32 'DEBTYP'
$$TYPES	ENDS
_TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS	ENDS
;	COMDAT ??_C@_0FG@EOHGAEB@?3Sun?3Sunday?3Mon?3Monday?3Tue?3Tuesd@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0IH@HPGJLCCK@?3Jan?3January?3Feb?3February?3Mar?3Ma@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_05LAPONLG@false?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_04LOAJBDKD@true?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_01GFHCPBMG@C?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_01CLKCMJKC@?5?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0L@IFECALMP@killplayer?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_07JOKNDDID@showpos?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0CH@GCBJJPAF@Position?5of?5player?5?$CFd?3?5?$CFfX?5?9?5?$CFfY@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_05KGMIOAGB@bring?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_08IKLAEOOG@eject?5?$CFd?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_06MHNODEGF@setpos?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_04MABHPDAO@goto?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_09KICPPDHG@givemoney?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_05PGGAFPFO@Death?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0P@GBCNGBOM@Nod_Engineer_0?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0P@GBFBBODN@GDI_Engineer_0?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_05HBJPNAAK@Blamo?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_04HIBGFPH@NULL?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0M@FNIEDPGC@RGH_Protect?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0L@HLJNJAMO@RGHProtect?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_08EPJLHIJG@bad?5cast?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
xdata$x	SEGMENT DWORD USE32 PUBLIC 'CONST'
xdata$x	ENDS
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
CRT$XCA	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCA	ENDS
CRT$XCU	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCU	ENDS
CRT$XCL	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCL	ENDS
CRT$XCC	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCC	ENDS
CRT$XCZ	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCZ	ENDS
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT _acosl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _asinl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atanl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atan2l
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ceill
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _cosl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _coshl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _expl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fabsl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _floorl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fmodl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _frexpl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ldexpl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _logl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _log10l
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _modfl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _powl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinhl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sqrtl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanhl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _frexpf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ldexpf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _acosf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _asinf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atanf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atan2f
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ceilf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _cosf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _coshf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _expf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fabsf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _floorf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fmodf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _logf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _log10f
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _modff
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _powf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinhf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sqrtf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanhf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?GetID@GameObjObserverClass@@QAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ReceiveSignal@cGameData@@UAEXAAV?$TypedEventPair@_NH@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1cGameData@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_Begin@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_End@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Think@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Render@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Reset_Game@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Choose_Player_Type@cGameData@@UAEHPAXH_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load_From_Server_Config@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save_To_Server_Config@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Teaming@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Clan_Game@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Friendly_Fire@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Soldier_Added@cGameData@@UAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Show_Game_Settings_Limits@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Single_Player@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Skirmish@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Cnc@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Single_Player@cGameData@@UAEPAVcGameDataSinglePlayer@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Skirmish@cGameData@@UAEPAVcGameDataSkirmish@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Cnc@cGameData@@UAEPAVcGameDataCnc@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Min_Players@cGameData@@UAEIXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Game_Over@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Limited@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Valid_Settings@cGameData@@UAE_NAAVWideStringClass@@_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Export_Tier_1_Data@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Import_Tier_1_Data@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Import_Tier_1_Data_Wol@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Export_Tier_2_Data@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Import_Tier_2_Data@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Gameplay_Permitted@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Remember_Inventory@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Description@cGameData@@UAEXAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GcGameData@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1cGameDataCnc@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_Begin@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_End@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Think@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Reset_Game@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Name@cGameDataCnc@@UAE?AVWideStringClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Type@cGameDataCnc@@UAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load_From_Server_Config@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save_To_Server_Config@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Teaming@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Clan_Game@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Friendly_Fire@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Soldier_Added@cGameDataCnc@@UAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Show_Game_Settings_Limits@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Cnc@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Cnc@cGameDataCnc@@UAEPAV1@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Game_Over@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Limited@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Valid_Settings@cGameDataCnc@@UAE_NAAVWideStringClass@@_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Export_Tier_2_Data@cGameDataCnc@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Import_Tier_2_Data@cGameDataCnc@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Gameplay_Permitted@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Description@cGameDataCnc@@UAEXAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GcGameDataCnc@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1cGameDataSkirmish@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_Begin@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_End@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Think@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Reset_Game@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Name@cGameDataSkirmish@@UAE?AVWideStringClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Type@cGameDataSkirmish@@UAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load_From_Server_Config@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save_To_Server_Config@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Teaming@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Clan_Game@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Friendly_Fire@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Soldier_Added@cGameDataSkirmish@@UAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Show_Game_Settings_Limits@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Skirmish@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Skirmish@cGameDataSkirmish@@UAEPAV1@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Game_Over@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Limited@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Description@cGameDataSkirmish@@UAEXAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GcGameDataSkirmish@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1cGameDataSinglePlayer@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Name@cGameDataSinglePlayer@@UAE?AVWideStringClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Type@cGameDataSinglePlayer@@UAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Choose_Player_Type@cGameDataSinglePlayer@@UAEHPAXH_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Single_Player@cGameDataSinglePlayer@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Single_Player@cGameDataSinglePlayer@@UAEPAV1@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Limited@cGameDataSinglePlayer@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Remember_Inventory@cGameDataSinglePlayer@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GcGameDataSinglePlayer@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1PostLoadableClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Post_Load@PostLoadableClass@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GPostLoadableClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1PersistClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save@PersistClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load@PersistClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GPersistClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1EditableClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Parameter_Count@EditableClass@@UAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Lock_Parameter@EditableClass@@UAEPAXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Unlock_Parameter@EditableClass@@UAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GEditableClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1DefinitionClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save@DefinitionClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load@DefinitionClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_ID@DefinitionClass@@UAEKXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_ID@DefinitionClass@@UAEXK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Name@DefinitionClass@@UAEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Name@DefinitionClass@@UAEXPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Valid_Config@DefinitionClass@@UAE_NPBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GDefinitionClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1TeamPurchaseSettingsDefClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Factory@TeamPurchaseSettingsDefClass@@UAEPAXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save@TeamPurchaseSettingsDefClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load@TeamPurchaseSettingsDefClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Class_ID@TeamPurchaseSettingsDefClass@@UAEKXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@TeamPurchaseSettingsDefClass@@UAEPAVPersistClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GTeamPurchaseSettingsDefClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1PurchaseSettingsDefClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Factory@PurchaseSettingsDefClass@@UAEPAXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save@PurchaseSettingsDefClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load@PurchaseSettingsDefClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Class_ID@PurchaseSettingsDefClass@@UAEKXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@PurchaseSettingsDefClass@@UAEPAVPersistClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GPurchaseSettingsDefClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1bad_exception@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gbad_exception@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1bad_alloc@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gbad_alloc@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _wmemchr
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _wmemcmp
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _wmemcpy
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _wmemmove
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _wmemset
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?copy@?$char_traits@_W@std@@SAPA_WPA_WPB_WI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?to_char_type@?$char_traits@_W@std@@SA_WABG@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?to_int_type@?$char_traits@_W@std@@SAGAB_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?eof@?$char_traits@_W@std@@SAGXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?assign@?$char_traits@D@std@@SAXAADABD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?eq@?$char_traits@D@std@@SA_NABD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?length@?$char_traits@D@std@@SAIPBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?move@?$char_traits@D@std@@SAPADPADPBDI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?assign@?$char_traits@D@std@@SAPADPADID@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?to_char_type@?$char_traits@D@std@@SADABH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?to_int_type@?$char_traits@D@std@@SAHABD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?eof@?$char_traits@D@std@@SAHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?not_eof@?$char_traits@D@std@@SAHABH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1logic_error@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?what@logic_error@std@@UBEPBDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Glogic_error@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1domain_error@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gdomain_error@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1invalid_argument@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Ginvalid_argument@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1length_error@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Glength_error@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1out_of_range@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gout_of_range@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0runtime_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1runtime_error@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?what@runtime_error@std@@UBEPBDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gruntime_error@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1overflow_error@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Goverflow_error@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1underflow_error@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gunderflow_error@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1range_error@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Grange_error@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0_Timevec@std@@QAE@PAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1_Timevec@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??4_Timevec@std@@QAEAAV01@ABV01@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getlconv@_Locinfo@std@@QBEPBUlconv@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getfalse@_Locinfo@std@@QBEPBDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Gettrue@_Locinfo@std@@QBEPBDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0id@locale@std@@QAE@I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??Bid@locale@std@@QAEIXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Incref@facet@locale@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Decref@facet@locale@std@@QAEPAV123@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1facet@locale@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0facet@locale@std@@IAE@I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0locale@std@@QAE@ABV01@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1locale@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gfacet@locale@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0codecvt_base@std@@QAE@I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1codecvt_base@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_always_noconv@codecvt_base@std@@MBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_max_length@codecvt_base@std@@MBEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_encoding@codecvt_base@std@@MBEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gcodecvt_base@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$codecvt@_WDH@std@@QAE@I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$codecvt@_WDH@std@@MAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Init@?$codecvt@_WDH@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_in@?$codecvt@_WDH@std@@MBEHAAHPBD1AAPBDPA_W3AAPA_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_out@?$codecvt@_WDH@std@@MBEHAAHPB_W1AAPB_WPAD3AAPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_unshift@?$codecvt@_WDH@std@@MBEHAAHPAD1AAPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_length@?$codecvt@_WDH@std@@MBEHABHPBD1I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_always_noconv@?$codecvt@_WDH@std@@MBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_max_length@?$codecvt@_WDH@std@@MBEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_encoding@?$codecvt@_WDH@std@@MBEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$codecvt@_WDH@std@@MAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0ctype_base@std@@QAE@I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1ctype_base@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gctype_base@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?is@?$ctype@D@std@@QBE_NFD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?widen@?$ctype@D@std@@QBEDD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ctype@D@std@@QAE@PBF_NI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$ctype@D@std@@MAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Tidy@?$ctype@D@std@@IAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_tolower@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_toupper@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_widen@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_narrow@?$ctype@D@std@@MBEDDD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?table@?$ctype@D@std@@IBEPBFXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?is@?$ctype@_W@std@@QBE_NF_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ctype@_W@std@@QAE@I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$ctype@_W@std@@MAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Init@?$ctype@_W@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_is@?$ctype@_W@std@@MBE_NF_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_is@?$ctype@_W@std@@MBEPB_WPB_W0PAF@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_scan_is@?$ctype@_W@std@@MBEPB_WFPB_W0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_scan_not@?$ctype@_W@std@@MBEPB_WFPB_W0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_tolower@?$ctype@_W@std@@MBE_W_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_tolower@?$ctype@_W@std@@MBEPB_WPA_WPB_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_toupper@?$ctype@_W@std@@MBE_W_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_toupper@?$ctype@_W@std@@MBEPB_WPA_WPB_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Dowiden@?$ctype@_W@std@@IBE_WD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_widen@?$ctype@_W@std@@MBE_WD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_widen@?$ctype@_W@std@@MBEPBDPBD0PA_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Donarrow@?$ctype@_W@std@@IBED_WD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_narrow@?$ctype@_W@std@@MBED_WD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_narrow@?$ctype@_W@std@@MBEPB_WPB_W0DPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ctype@D@std@@MAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ctype@_W@std@@MAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1failure@ios_base@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?clear@ios_base@std@@QAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?rdstate@ios_base@std@@QBEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setstate@ios_base@std@@QAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?good@ios_base@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?eof@ios_base@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?fail@ios_base@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?exceptions@ios_base@std@@QAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?flags@ios_base@std@@QBEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setf@ios_base@std@@QAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setf@ios_base@std@@QAEHHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?unsetf@ios_base@std@@QAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?width@ios_base@std@@QBEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?width@ios_base@std@@QAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?getloc@ios_base@std@@QBE?AVlocale@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0ios_base@std@@IAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gfailure@ios_base@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Gios_base@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1sentry@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?DataFromDDE@@YAXQAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?kill_player@@YAXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Destroyed@RGHProtect@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Timer_Expired@RGHProtect@@EAEXPAEH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Created@RGHProtect@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _$E1
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E2
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT ??1?$ScriptRegistrant@VRGHProtect@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$DynamicVectorClass@VWideStringClass@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$DynamicVectorClass@VWideStringClass@@@@UAE_NHPAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$DynamicVectorClass@VWideStringClass@@@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@VWideStringClass@@@@UAEHAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@VWideStringClass@@@@UAEHPAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$VectorClass@VWideStringClass@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??8?$VectorClass@VWideStringClass@@@@UAE_NAAV0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$VectorClass@VWideStringClass@@@@UAE_NHPAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$VectorClass@VWideStringClass@@@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@VWideStringClass@@@@UAEHAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@VWideStringClass@@@@UAEHPAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ReceiveSignal@?$Signaler@V?$TypedEventPair@_NH@@@@UAEXAAV?$TypedEventPair@_NH@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?SignalDropped@?$Signaler@V?$TypedEventPair@_NH@@@@UAEXAAV1@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$Signaler@V?$TypedEventPair@_NH@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$DynamicVectorClass@PAE@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$DynamicVectorClass@PAE@@UAE_NHPAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$DynamicVectorClass@PAE@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@PAE@@UAEHAAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@PAE@@UAEHPAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$VectorClass@PAE@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??8?$VectorClass@PAE@@UAE_NAAV0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$VectorClass@PAE@@UAE_NHPAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$VectorClass@PAE@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAE@@UAEHAAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAE@@UAEHPAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$DynamicVectorClass@PAK@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$DynamicVectorClass@PAK@@UAE_NHPAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$DynamicVectorClass@PAK@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@PAK@@UAEHAAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@PAK@@UAEHPAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$VectorClass@PAK@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??8?$VectorClass@PAK@@UAE_NAAV0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$VectorClass@PAK@@UAE_NHPAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$VectorClass@PAK@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAK@@UAEHAAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAK@@UAEHPAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0sentry@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@AAV12@_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??Bsentry@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1_Sentry_base@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ScriptRegistrant@VRGHProtect@@@@QAE@PAD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$DynamicVectorClass@VWideStringClass@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$VectorClass@VWideStringClass@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$Signaler@V?$TypedEventPair@_NH@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$DynamicVectorClass@PAE@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$VectorClass@PAE@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$DynamicVectorClass@PAK@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$VectorClass@PAK@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_ostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_Glocale@std@@QAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_iostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VRGHProtect@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$allocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?deallocate@?$allocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?allocate@?$allocator@D@std@@QAEPADI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0_Sentry_base@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0sentry@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1sentry@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??Bsentry@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$fpos@H@std@@QAE@J@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??B?$fpos@H@std@@QBEJXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0_Sentry_base@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1_Sentry_base@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$numpunct@D@std@@MAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_decimal_point@?$numpunct@D@std@@MBEDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_thousands_sep@?$numpunct@D@std@@MBEDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$numpunct@D@std@@MAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??D?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBEDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??E?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAEAAV01@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?decimal_point@?$numpunct@D@std@@QBEDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?thousands_sep@?$numpunct@D@std@@QBEDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Tidy@?$numpunct@D@std@@AAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?max_size@?$allocator@D@std@@QBEIXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@N@@YANNH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@H@@YAHHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@M@@YAMMH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@O@@YAOOH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$use_facet@V?$ctype@_W@std@@@std@@YAABV?$ctype@_W@0@ABVlocale@0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VRGHProtect@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Allocate@D@std@@YAPADIPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$?8DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Maklocchr@D@std@@YADDPADABU_Cvtvec@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$?9DU?$char_traits@D@std@@@std@@YA_NABV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Maklocbyte@D@std@@YADDABU_Cvtvec@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0RGHProtect@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GRGHProtect@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1RGHProtect@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$numpunct@D@std@@QAE@I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _$E4
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E6
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT ??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_7TeamPurchaseSettingsDefClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$DynamicVectorClass@VWideStringClass@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7cGameDataSkirmish@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?id@?$numpunct@D@std@@2V0locale@2@A
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
;	COMDAT CRT$XCU
CRT$XCU	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCU	ENDS
;	COMDAT ??_7DefinitionClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT __CT??_R0?AVexception@@@8??0exception@@QAE@ABV0@@Z12
xdata$x	SEGMENT DWORD USE32 PUBLIC 'CONST'
xdata$x	ENDS
;	COMDAT ??_7PurchaseSettingsDefClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$VectorClass@PAK@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7PostLoadableClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT __TI2?AVbad_cast@@
xdata$x	SEGMENT DWORD USE32 PUBLIC 'CONST'
xdata$x	ENDS
;	COMDAT ??_7?$Signaler@V?$TypedEventPair@_NH@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_R0?AVexception@@@8
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
;	COMDAT CRT$XCU
CRT$XCU	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCU	ENDS
;	COMDAT ??_7?$VectorClass@VWideStringClass@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7PersistClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT __CT??_R0?AVbad_cast@@@8??0bad_cast@@QAE@ABV0@@Z12
xdata$x	SEGMENT DWORD USE32 PUBLIC 'CONST'
xdata$x	ENDS
;	COMDAT ??_7cGameData@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7cGameDataSinglePlayer@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$VectorClass@PAE@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VRGHProtect@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT __CTA2?AVbad_cast@@
xdata$x	SEGMENT DWORD USE32 PUBLIC 'CONST'
xdata$x	ENDS
;	COMDAT ??_7RGHProtect@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_R0?AVbad_cast@@@8
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ??_7?$DynamicVectorClass@PAE@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7EditableClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7cGameDataCnc@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$DynamicVectorClass@PAK@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7ios_base@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?binary@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7invalid_argument@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?app@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$numpunct@D@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7out_of_range@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$codecvt@_WDH@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7facet@locale@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7bad_alloc@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7runtime_error@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7codecvt_base@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?in@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7underflow_error@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7ctype_base@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7overflow_error@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Psave@?$_Facetptr@V?$ctype@_W@std@@@std@@2PBVfacet@locale@2@B
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?collate@?$_Locbase@H@std@@2HB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7length_error@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Stz@?$fpos@H@std@@0HA
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
;	COMDAT ?ctype@?$_Locbase@H@std@@2HB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?out@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$ctype@D@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7bad_exception@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?ate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?all@?$_Locbase@H@std@@2HB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?numeric@?$_Locbase@H@std@@2HB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?end@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7failure@ios_base@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$ctype@_W@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7range_error@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7logic_error@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?time@?$_Locbase@H@std@@2HB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?messages@?$_Locbase@H@std@@2HB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7domain_error@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?none@?$_Locbase@H@std@@2HB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?monetary@?$_Locbase@H@std@@2HB
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
sxdata	SEGMENT DWORD USE32 'SXDATA'
sxdata	ENDS
FLAT	GROUP _DATA, CONST, _BSS, CRT$XCU, CRT$XCU
	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
endif

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	?collate@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::collate
PUBLIC	?ctype@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::ctype
PUBLIC	?monetary@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::monetary
PUBLIC	?numeric@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::numeric
PUBLIC	?time@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::time
PUBLIC	?messages@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::messages
PUBLIC	?all@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::all
PUBLIC	?none@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::none
PUBLIC	?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::skipws
PUBLIC	?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::unitbuf
PUBLIC	?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::uppercase
PUBLIC	?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showbase
PUBLIC	?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpoint
PUBLIC	?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpos
PUBLIC	?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::left
PUBLIC	?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::right
PUBLIC	?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::internal
PUBLIC	?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::dec
PUBLIC	?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::oct
PUBLIC	?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::hex
PUBLIC	?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::scientific
PUBLIC	?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::fixed
PUBLIC	?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::boolalpha
PUBLIC	?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::_Stdio
PUBLIC	?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::adjustfield
PUBLIC	?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::basefield
PUBLIC	?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::floatfield
PUBLIC	?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::goodbit
PUBLIC	?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::eofbit
PUBLIC	?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::failbit
PUBLIC	?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::badbit
PUBLIC	?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::_Hardfail
PUBLIC	?in@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::in
PUBLIC	?out@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::out
PUBLIC	?ate@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::ate
PUBLIC	?app@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::app
PUBLIC	?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::trunc
PUBLIC	?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Nocreate
PUBLIC	?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Noreplace
PUBLIC	?binary@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::binary
PUBLIC	?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::beg
PUBLIC	?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::cur
PUBLIC	?end@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::end
;	COMDAT ?collate@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?collate@?$_Locbase@H@std@@2HB DD 01H			; std::_Locbase<int>::collate
CONST	ENDS
;	COMDAT ?ctype@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?ctype@?$_Locbase@H@std@@2HB DD 02H			; std::_Locbase<int>::ctype
CONST	ENDS
;	COMDAT ?monetary@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?monetary@?$_Locbase@H@std@@2HB DD 04H			; std::_Locbase<int>::monetary
CONST	ENDS
;	COMDAT ?numeric@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?numeric@?$_Locbase@H@std@@2HB DD 08H			; std::_Locbase<int>::numeric
CONST	ENDS
;	COMDAT ?time@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?time@?$_Locbase@H@std@@2HB DD 010H			; std::_Locbase<int>::time
CONST	ENDS
;	COMDAT ?messages@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?messages@?$_Locbase@H@std@@2HB DD 020H			; std::_Locbase<int>::messages
CONST	ENDS
;	COMDAT ?all@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?all@?$_Locbase@H@std@@2HB DD 03fH			; std::_Locbase<int>::all
CONST	ENDS
;	COMDAT ?none@?$_Locbase@H@std@@2HB
CONST	SEGMENT
?none@?$_Locbase@H@std@@2HB DD 00H			; std::_Locbase<int>::none
CONST	ENDS
;	COMDAT ?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01H		; std::_Iosb<int>::skipws
CONST	ENDS
;	COMDAT ?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 02H	; std::_Iosb<int>::unitbuf
CONST	ENDS
;	COMDAT ?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 04H	; std::_Iosb<int>::uppercase
CONST	ENDS
;	COMDAT ?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 08H	; std::_Iosb<int>::showbase
CONST	ENDS
;	COMDAT ?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 010H	; std::_Iosb<int>::showpoint
CONST	ENDS
;	COMDAT ?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 020H	; std::_Iosb<int>::showpos
CONST	ENDS
;	COMDAT ?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 040H		; std::_Iosb<int>::left
CONST	ENDS
;	COMDAT ?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 080H		; std::_Iosb<int>::right
CONST	ENDS
;	COMDAT ?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0100H	; std::_Iosb<int>::internal
CONST	ENDS
;	COMDAT ?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0200H		; std::_Iosb<int>::dec
CONST	ENDS
;	COMDAT ?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0400H		; std::_Iosb<int>::oct
CONST	ENDS
;	COMDAT ?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0800H		; std::_Iosb<int>::hex
CONST	ENDS
;	COMDAT ?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01000H	; std::_Iosb<int>::scientific
CONST	ENDS
;	COMDAT ?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 02000H	; std::_Iosb<int>::fixed
CONST	ENDS
;	COMDAT ?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 04000H	; std::_Iosb<int>::boolalpha
CONST	ENDS
;	COMDAT ?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 08000H	; std::_Iosb<int>::_Stdio
CONST	ENDS
;	COMDAT ?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 01c0H	; std::_Iosb<int>::adjustfield
CONST	ENDS
;	COMDAT ?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 0e00H	; std::_Iosb<int>::basefield
CONST	ENDS
;	COMDAT ?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 03000H	; std::_Iosb<int>::floatfield
CONST	ENDS
;	COMDAT ?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 00H		; std::_Iosb<int>::goodbit
CONST	ENDS
;	COMDAT ?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 01H		; std::_Iosb<int>::eofbit
CONST	ENDS
;	COMDAT ?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 02H		; std::_Iosb<int>::failbit
CONST	ENDS
;	COMDAT ?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B DD 04H		; std::_Iosb<int>::badbit
CONST	ENDS
;	COMDAT ?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B
CONST	SEGMENT
?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B DD 010H	; std::_Iosb<int>::_Hardfail
CONST	ENDS
;	COMDAT ?in@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?in@?$_Iosb@H@std@@2W4_Openmode@12@B DD 01H		; std::_Iosb<int>::in
CONST	ENDS
;	COMDAT ?out@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?out@?$_Iosb@H@std@@2W4_Openmode@12@B DD 02H		; std::_Iosb<int>::out
CONST	ENDS
;	COMDAT ?ate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?ate@?$_Iosb@H@std@@2W4_Openmode@12@B DD 04H		; std::_Iosb<int>::ate
CONST	ENDS
;	COMDAT ?app@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?app@?$_Iosb@H@std@@2W4_Openmode@12@B DD 08H		; std::_Iosb<int>::app
CONST	ENDS
;	COMDAT ?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B DD 010H		; std::_Iosb<int>::trunc
CONST	ENDS
;	COMDAT ?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B DD 040H	; std::_Iosb<int>::_Nocreate
CONST	ENDS
;	COMDAT ?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B DD 080H	; std::_Iosb<int>::_Noreplace
CONST	ENDS
;	COMDAT ?binary@?$_Iosb@H@std@@2W4_Openmode@12@B
CONST	SEGMENT
?binary@?$_Iosb@H@std@@2W4_Openmode@12@B DD 020H	; std::_Iosb<int>::binary
CONST	ENDS
;	COMDAT ?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 00H		; std::_Iosb<int>::beg
CONST	ENDS
;	COMDAT ?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 01H		; std::_Iosb<int>::cur
CONST	ENDS
;	COMDAT ?end@?$_Iosb@H@std@@2W4_Seekdir@12@B
CONST	SEGMENT
?end@?$_Iosb@H@std@@2W4_Seekdir@12@B DD 02H		; std::_Iosb<int>::end
CONST	ENDS
PUBLIC	?assign@?$char_traits@D@std@@SAXAADABD@Z	; std::char_traits<char>::assign
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
;	COMDAT ?assign@?$char_traits@D@std@@SAXAADABD@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
?assign@?$char_traits@D@std@@SAXAADABD@Z PROC NEAR	; std::char_traits<char>::assign, COMDAT

; 331  : 		_Left = _Right;

	mov	eax, DWORD PTR __Right$[esp-4]
	mov	cl, BYTE PTR [eax]
	mov	edx, DWORD PTR __Left$[esp-4]
	mov	BYTE PTR [edx], cl

; 332  : 		}

	ret	0
?assign@?$char_traits@D@std@@SAXAADABD@Z ENDP		; std::char_traits<char>::assign
_TEXT	ENDS
PUBLIC	?length@?$char_traits@D@std@@SAIPBD@Z		; std::char_traits<char>::length
; Function compile flags: /Ogty
;	COMDAT ?length@?$char_traits@D@std@@SAIPBD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
?length@?$char_traits@D@std@@SAIPBD@Z PROC NEAR		; std::char_traits<char>::length, COMDAT

; 352  : 		return (::strlen(_First));

	mov	eax, DWORD PTR __First$[esp-4]
	lea	edx, DWORD PTR [eax+1]
$L18700:
	mov	cl, BYTE PTR [eax]
	inc	eax
	test	cl, cl
	jne	SHORT $L18700
	sub	eax, edx

; 353  : 		}

	ret	0
?length@?$char_traits@D@std@@SAIPBD@Z ENDP		; std::char_traits<char>::length
_TEXT	ENDS
PUBLIC	?copy@?$char_traits@D@std@@SAPADPADPBDI@Z	; std::char_traits<char>::copy
; Function compile flags: /Ogty
;	COMDAT ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__First2$ = 12						; size = 4
__Count$ = 16						; size = 4
?copy@?$char_traits@D@std@@SAPADPADPBDI@Z PROC NEAR	; std::char_traits<char>::copy, COMDAT

; 358  : 		return ((_Elem *)::memcpy(_First1, _First2, _Count));

	mov	ecx, DWORD PTR __Count$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First2$[esp]
	push	edi
	mov	edi, DWORD PTR __First1$[esp+4]
	mov	eax, ecx
	mov	edx, edi
	shr	ecx, 2
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
	pop	edi
	mov	eax, edx
	pop	esi

; 359  : 		}

	ret	0
?copy@?$char_traits@D@std@@SAPADPADPBDI@Z ENDP		; std::char_traits<char>::copy
_TEXT	ENDS
PUBLIC	?move@?$char_traits@D@std@@SAPADPADPBDI@Z	; std::char_traits<char>::move
EXTRN	_memmove:NEAR
; Function compile flags: /Ogty
;	COMDAT ?move@?$char_traits@D@std@@SAPADPADPBDI@Z
_TEXT	SEGMENT
__First1$ = 8						; size = 4
__First2$ = 12						; size = 4
__Count$ = 16						; size = 4
?move@?$char_traits@D@std@@SAPADPADPBDI@Z PROC NEAR	; std::char_traits<char>::move, COMDAT

; 370  : 		return ((_Elem *)::memmove(_First1, _First2, _Count));

	jmp	_memmove
?move@?$char_traits@D@std@@SAPADPADPBDI@Z ENDP		; std::char_traits<char>::move
_TEXT	ENDS
PUBLIC	?to_char_type@?$char_traits@D@std@@SADABH@Z	; std::char_traits<char>::to_char_type
; Function compile flags: /Ogty
;	COMDAT ?to_char_type@?$char_traits@D@std@@SADABH@Z
_TEXT	SEGMENT
__Meta$ = 8						; size = 4
?to_char_type@?$char_traits@D@std@@SADABH@Z PROC NEAR	; std::char_traits<char>::to_char_type, COMDAT

; 380  : 		return ((_Elem)_Meta);

	mov	eax, DWORD PTR __Meta$[esp-4]
	mov	al, BYTE PTR [eax]

; 381  : 		}

	ret	0
?to_char_type@?$char_traits@D@std@@SADABH@Z ENDP	; std::char_traits<char>::to_char_type
_TEXT	ENDS
PUBLIC	?to_int_type@?$char_traits@D@std@@SAHABD@Z	; std::char_traits<char>::to_int_type
; Function compile flags: /Ogty
;	COMDAT ?to_int_type@?$char_traits@D@std@@SAHABD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 4
?to_int_type@?$char_traits@D@std@@SAHABD@Z PROC NEAR	; std::char_traits<char>::to_int_type, COMDAT

; 385  : 		return ((unsigned char)_Ch);

	mov	eax, DWORD PTR __Ch$[esp-4]
	movzx	eax, BYTE PTR [eax]

; 386  : 		}

	ret	0
?to_int_type@?$char_traits@D@std@@SAHABD@Z ENDP		; std::char_traits<char>::to_int_type
_TEXT	ENDS
PUBLIC	?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z	; std::char_traits<char>::eq_int_type
; Function compile flags: /Ogty
;	COMDAT ?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z
_TEXT	SEGMENT
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z PROC NEAR	; std::char_traits<char>::eq_int_type, COMDAT

; 391  : 		return (_Left == _Right);

	mov	eax, DWORD PTR __Left$[esp-4]
	mov	eax, DWORD PTR [eax]
	mov	ecx, DWORD PTR __Right$[esp-4]
	sub	eax, DWORD PTR [ecx]
	neg	eax
	sbb	eax, eax
	inc	eax

; 392  : 		}

	ret	0
?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z ENDP	; std::char_traits<char>::eq_int_type
_TEXT	ENDS
PUBLIC	?eof@?$char_traits@D@std@@SAHXZ			; std::char_traits<char>::eof
; Function compile flags: /Ogty
;	COMDAT ?eof@?$char_traits@D@std@@SAHXZ
_TEXT	SEGMENT
?eof@?$char_traits@D@std@@SAHXZ PROC NEAR		; std::char_traits<char>::eof, COMDAT

; 396  : 		return (EOF);

	or	eax, -1

; 397  : 		}

	ret	0
?eof@?$char_traits@D@std@@SAHXZ ENDP			; std::char_traits<char>::eof
_TEXT	ENDS
PUBLIC	?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ	; std::_Locinfo::_Getctype
EXTRN	__Getctype:NEAR
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocinfo
;	COMDAT ?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ
_TEXT	SEGMENT
$T18724 = -16						; size = 16
___$ReturnUdt$ = 8					; size = 4
?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ PROC NEAR	; std::_Locinfo::_Getctype, COMDAT
; _this$ = ecx

; 76   : 		{	// return ctype stuff

	sub	esp, 16					; 00000010H

; 77   : 		return (::_Getctype());

	lea	eax, DWORD PTR $T18724[esp+16]
	push	esi
	push	eax
	call	__Getctype
	mov	esi, DWORD PTR [eax]
	mov	ecx, DWORD PTR ___$ReturnUdt$[esp+20]
	mov	edx, ecx
	mov	DWORD PTR [edx], esi
	mov	esi, DWORD PTR [eax+4]
	mov	DWORD PTR [edx+4], esi
	mov	esi, DWORD PTR [eax+8]
	mov	DWORD PTR [edx+8], esi
	mov	eax, DWORD PTR [eax+12]
	add	esp, 4
	mov	DWORD PTR [edx+12], eax
	mov	eax, ecx
	pop	esi

; 78   : 		}

	add	esp, 16					; 00000010H
	ret	4
?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ ENDP	; std::_Locinfo::_Getctype
_TEXT	ENDS
PUBLIC	?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ	; std::_Locinfo::_Getcvt
EXTRN	__Getcvt:NEAR
; Function compile flags: /Ogty
;	COMDAT ?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ PROC NEAR	; std::_Locinfo::_Getcvt, COMDAT
; _this$ = ecx

; 82   : 		return (::_Getcvt());

	call	__Getcvt
	mov	ecx, eax
	mov	eax, DWORD PTR ___$ReturnUdt$[esp-4]
	mov	DWORD PTR [eax], ecx
	mov	DWORD PTR [eax+4], edx

; 83   : 		}

	ret	4
?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ ENDP		; std::_Locinfo::_Getcvt
_TEXT	ENDS
PUBLIC	??0id@locale@std@@QAE@I@Z			; std::locale::id::id
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
;	COMDAT ??0id@locale@std@@QAE@I@Z
_TEXT	SEGMENT
__Val$ = 8						; size = 4
??0id@locale@std@@QAE@I@Z PROC NEAR			; std::locale::id::id, COMDAT
; _this$ = ecx

; 66   : 			{	// construct with specified stamp value

	mov	eax, ecx
	mov	ecx, DWORD PTR __Val$[esp-4]
	mov	DWORD PTR [eax], ecx

; 67   : 			}

	ret	4
??0id@locale@std@@QAE@I@Z ENDP				; std::locale::id::id
_TEXT	ENDS
PUBLIC	??Bid@locale@std@@QAEIXZ			; std::locale::id::operator unsigned int
EXTRN	??0_Lockit@std@@QAE@H@Z:NEAR			; std::_Lockit::_Lockit
EXTRN	??1_Lockit@std@@QAE@XZ:NEAR			; std::_Lockit::~_Lockit
EXTRN	?_Id_cnt@id@locale@std@@0HA:DWORD		; std::locale::id::_Id_cnt
; Function compile flags: /Ogty
;	COMDAT ??Bid@locale@std@@QAEIXZ
_TEXT	SEGMENT
__Lock$10461 = -4					; size = 4
??Bid@locale@std@@QAEIXZ PROC NEAR			; std::locale::id::operator unsigned int, COMDAT
; _this$ = ecx

; 70   : 			{	// get stamp, with lazy allocation

	push	ecx
	push	esi
	mov	esi, ecx

; 71   : 			if (_Id == 0)

	cmp	DWORD PTR [esi], 0
	jne	SHORT $L18736

; 72   : 				{	// still zero, allocate stamp
; 73   : 				_Lockit _Lock(_LOCK_LOCALE);

	push	0
	lea	ecx, DWORD PTR __Lock$10461[esp+12]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 74   : 				if (_Id == 0)

	cmp	DWORD PTR [esi], 0
	jne	SHORT $L10462

; 75   : 					_Id = ++_Id_cnt;

	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	inc	eax
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR [esi], eax
$L10462:

; 76   : 				}

	lea	ecx, DWORD PTR __Lock$10461[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$L18736:

; 77   : 			return (_Id);

	mov	eax, DWORD PTR [esi]
	pop	esi

; 78   : 			}

	pop	ecx
	ret	0
??Bid@locale@std@@QAEIXZ ENDP				; std::locale::id::operator unsigned int
_TEXT	ENDS
PUBLIC	?_Incref@facet@locale@std@@QAEXXZ		; std::locale::facet::_Incref
; Function compile flags: /Ogty
;	COMDAT ?_Incref@facet@locale@std@@QAEXXZ
_TEXT	SEGMENT
__Lock$ = -4						; size = 4
?_Incref@facet@locale@std@@QAEXXZ PROC NEAR		; std::locale::facet::_Incref, COMDAT
; _this$ = ecx

; 103  : 			{	// safely increment the reference count

	push	ecx
	push	esi
	mov	esi, ecx

; 104  : 			_Lockit _Lock(_LOCK_LOCALE);

	push	0
	lea	ecx, DWORD PTR __Lock$[esp+12]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 105  : 
; 106  : 			if (_Refs < (size_t)(-1))

	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $L10469

; 107  : 				++_Refs;

	inc	eax
	mov	DWORD PTR [esi+4], eax
$L10469:

; 108  : 			}

	lea	ecx, DWORD PTR __Lock$[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	pop	esi
	pop	ecx
	ret	0
?_Incref@facet@locale@std@@QAEXXZ ENDP			; std::locale::facet::_Incref
_TEXT	ENDS
PUBLIC	?_Decref@facet@locale@std@@QAEPAV123@XZ		; std::locale::facet::_Decref
; Function compile flags: /Ogty
;	COMDAT ?_Decref@facet@locale@std@@QAEPAV123@XZ
_TEXT	SEGMENT
__Lock$ = -4						; size = 4
?_Decref@facet@locale@std@@QAEPAV123@XZ PROC NEAR	; std::locale::facet::_Decref, COMDAT
; _this$ = ecx

; 111  : 			{	// safely decrement the reference count, return this when dead

	push	ecx
	push	esi
	mov	esi, ecx

; 112  : 			_Lockit _Lock(_LOCK_LOCALE);

	push	0
	lea	ecx, DWORD PTR __Lock$[esp+12]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 113  : 
; 114  : 			if (0 < _Refs && _Refs < (size_t)(-1))

	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L10474
	cmp	eax, -1
	jae	SHORT $L10474

; 115  : 				--_Refs;

	dec	eax
	mov	DWORD PTR [esi+4], eax
$L10474:

; 116  : 			return (_Refs == 0 ? this : 0);

	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$[esp+8]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	eax, esi
	pop	esi

; 117  : 			}

	pop	ecx
	ret	0
?_Decref@facet@locale@std@@QAEPAV123@XZ ENDP		; std::locale::facet::_Decref
_TEXT	ENDS
PUBLIC	??1facet@locale@std@@UAE@XZ			; std::locale::facet::~facet
PUBLIC	??_7facet@locale@std@@6B@			; std::locale::facet::`vftable'
PUBLIC	??_Gfacet@locale@std@@UAEPAXI@Z			; std::locale::facet::`scalar deleting destructor'
EXTRN	??_Efacet@locale@std@@UAEPAXI@Z:NEAR		; std::locale::facet::`vector deleting destructor'
;	COMDAT ??_7facet@locale@std@@6B@
CONST	SEGMENT
??_7facet@locale@std@@6B@ DD FLAT:??_Efacet@locale@std@@UAEPAXI@Z ; std::locale::facet::`vftable'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??1facet@locale@std@@UAE@XZ
_TEXT	SEGMENT
??1facet@locale@std@@UAE@XZ PROC NEAR			; std::locale::facet::~facet, COMDAT
; _this$ = ecx

; 123  : 			{	// destroy the object

	mov	DWORD PTR [ecx], OFFSET FLAT:??_7facet@locale@std@@6B@

; 124  : 			}

	ret	0
??1facet@locale@std@@UAE@XZ ENDP			; std::locale::facet::~facet
_TEXT	ENDS
PUBLIC	??0facet@locale@std@@IAE@I@Z			; std::locale::facet::facet
; Function compile flags: /Ogty
;	COMDAT ??0facet@locale@std@@IAE@I@Z
_TEXT	SEGMENT
__Initrefs$ = 8						; size = 4
??0facet@locale@std@@IAE@I@Z PROC NEAR			; std::locale::facet::facet, COMDAT
; _this$ = ecx

; 129  : 			{	// construct with initial reference count

	mov	eax, ecx
	mov	ecx, DWORD PTR __Initrefs$[esp-4]
	mov	DWORD PTR [eax], OFFSET FLAT:??_7facet@locale@std@@6B@
	mov	DWORD PTR [eax+4], ecx

; 130  : 			}

	ret	4
??0facet@locale@std@@IAE@I@Z ENDP			; std::locale::facet::facet
_TEXT	ENDS
PUBLIC	??0locale@std@@QAE@ABV01@@Z			; std::locale::locale
; Function compile flags: /Ogty
;	COMDAT ??0locale@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
??0locale@std@@QAE@ABV01@@Z PROC NEAR			; std::locale::locale, COMDAT
; _this$ = ecx

; 231  : 		{	// construct by copying

	mov	eax, DWORD PTR __Right$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR [esi], ecx

; 232  : 		_Ptr->_Incref();

	call	?_Incref@facet@locale@std@@QAEXXZ	; std::locale::facet::_Incref

; 233  : 		}

	mov	eax, esi
	pop	esi
	ret	4
??0locale@std@@QAE@ABV01@@Z ENDP			; std::locale::locale
_TEXT	ENDS
PUBLIC	??1locale@std@@QAE@XZ				; std::locale::~locale
; Function compile flags: /Ogty
;	COMDAT ??1locale@std@@QAE@XZ
_TEXT	SEGMENT
??1locale@std@@QAE@XZ PROC NEAR				; std::locale::~locale, COMDAT
; _this$ = ecx

; 246  : 		if (_Ptr != 0)

	mov	ecx, DWORD PTR [ecx]
	test	ecx, ecx
	je	SHORT $L18760

; 247  : 			_DELETE_CRT(_Ptr->_Decref());

	call	?_Decref@facet@locale@std@@QAEPAV123@XZ	; std::locale::facet::_Decref
	test	eax, eax
	je	SHORT $L18760
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, eax
	call	DWORD PTR [edx]
$L18760:

; 248  : 		}

	ret	0
??1locale@std@@QAE@XZ ENDP				; std::locale::~locale
_TEXT	ENDS
EXTRN	??3@YAXPAX@Z:NEAR				; operator delete
; Function compile flags: /Ogty
;	COMDAT ??_Gfacet@locale@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gfacet@locale@std@@UAEPAXI@Z PROC NEAR		; std::locale::facet::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET FLAT:??_7facet@locale@std@@6B@
	je	SHORT $L18768
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L18768:
	mov	eax, esi
	pop	esi
	ret	4
??_Gfacet@locale@std@@UAEPAXI@Z ENDP			; std::locale::facet::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0ctype_base@std@@QAE@I@Z			; std::ctype_base::ctype_base
PUBLIC	??_7ctype_base@std@@6B@				; std::ctype_base::`vftable'
PUBLIC	??_Gctype_base@std@@UAEPAXI@Z			; std::ctype_base::`scalar deleting destructor'
EXTRN	??_Ectype_base@std@@UAEPAXI@Z:NEAR		; std::ctype_base::`vector deleting destructor'
;	COMDAT ??_7ctype_base@std@@6B@
CONST	SEGMENT
??_7ctype_base@std@@6B@ DD FLAT:??_Ectype_base@std@@UAEPAXI@Z ; std::ctype_base::`vftable'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0ctype_base@std@@QAE@I@Z
_TEXT	SEGMENT
__Refs$ = 8						; size = 4
??0ctype_base@std@@QAE@I@Z PROC NEAR			; std::ctype_base::ctype_base, COMDAT
; _this$ = ecx

; 902  : 		{	// default constructor

	mov	eax, ecx
	mov	ecx, DWORD PTR __Refs$[esp-4]
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax], OFFSET FLAT:??_7ctype_base@std@@6B@

; 903  : 		}

	ret	4
??0ctype_base@std@@QAE@I@Z ENDP				; std::ctype_base::ctype_base
_TEXT	ENDS
PUBLIC	??1ctype_base@std@@UAE@XZ			; std::ctype_base::~ctype_base
; Function compile flags: /Ogty
;	COMDAT ??1ctype_base@std@@UAE@XZ
_TEXT	SEGMENT
??1ctype_base@std@@UAE@XZ PROC NEAR			; std::ctype_base::~ctype_base, COMDAT
; _this$ = ecx

; 907  : 		}

	mov	DWORD PTR [ecx], OFFSET FLAT:??_7facet@locale@std@@6B@
	ret	0
??1ctype_base@std@@UAE@XZ ENDP				; std::ctype_base::~ctype_base
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_Gctype_base@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gctype_base@std@@UAEPAXI@Z PROC NEAR			; std::ctype_base::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ctype_base@std@@UAE@XZ		; std::ctype_base::~ctype_base
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L18786
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L18786:
	mov	eax, esi
	pop	esi
	ret	4
??_Gctype_base@std@@UAEPAXI@Z ENDP			; std::ctype_base::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?is@?$ctype@D@std@@QBE_NFD@Z			; std::ctype<char>::is
; Function compile flags: /Ogty
;	COMDAT ?is@?$ctype@D@std@@QBE_NFD@Z
_TEXT	SEGMENT
__Maskval$ = 8						; size = 2
__Ch$ = 12						; size = 1
?is@?$ctype@D@std@@QBE_NFD@Z PROC NEAR			; std::ctype<char>::is, COMDAT
; _this$ = ecx

; 1145 : 		return ((_Ctype._Table[(unsigned char)_Ch] & _Maskval) != 0);

	movzx	eax, BYTE PTR __Ch$[esp-4]
	mov	ecx, DWORD PTR [ecx+16]
	movsx	eax, WORD PTR [ecx+eax*2]
	and	eax, DWORD PTR __Maskval$[esp-4]
	neg	ax
	sbb	eax, eax
	neg	eax

; 1146 : 		}

	ret	8
?is@?$ctype@D@std@@QBE_NFD@Z ENDP			; std::ctype<char>::is
_TEXT	ENDS
PUBLIC	?widen@?$ctype@D@std@@QBEDD@Z			; std::ctype<char>::widen
; Function compile flags: /Ogty
;	COMDAT ?widen@?$ctype@D@std@@QBEDD@Z
_TEXT	SEGMENT
__Byte$ = 8						; size = 1
?widen@?$ctype@D@std@@QBEDD@Z PROC NEAR			; std::ctype<char>::widen, COMDAT
; _this$ = ecx

; 1194 : 		return (do_widen(_Byte));

	mov	eax, DWORD PTR [ecx]
	jmp	DWORD PTR [eax+24]
?widen@?$ctype@D@std@@QBEDD@Z ENDP			; std::ctype<char>::widen
_TEXT	ENDS
PUBLIC	?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z	; std::ctype<char>::_Init
; Function compile flags: /Ogty
;	COMDAT ?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT
$T18803 = -16						; size = 16
__Lobj$ = 8						; size = 4
?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z PROC NEAR	; std::ctype<char>::_Init, COMDAT
; _this$ = ecx

; 1253 : 		{	// initialize from _Lobj

	sub	esp, 16					; 00000010H
	push	esi

; 1254 : 		_Ctype = _Lobj._Getctype();

	lea	eax, DWORD PTR $T18803[esp+20]
	push	eax
	mov	esi, ecx
	call	__Getctype
	mov	ecx, DWORD PTR [eax]
	add	esp, 4
	add	esi, 8
	mov	DWORD PTR [esi], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+4], edx
	mov	ecx, DWORD PTR [eax+8]
	mov	DWORD PTR [esi+8], ecx
	mov	edx, DWORD PTR [eax+12]
	mov	DWORD PTR [esi+12], edx
	pop	esi

; 1255 : 		}

	add	esp, 16					; 00000010H
	ret	4
?_Init@?$ctype@D@std@@IAEXABV_Locinfo@2@@Z ENDP		; std::ctype<char>::_Init
_TEXT	ENDS
PUBLIC	?_Tidy@?$ctype@D@std@@IAEXXZ			; std::ctype<char>::_Tidy
EXTRN	??_V@YAXPAX@Z:NEAR				; operator delete[]
EXTRN	_free:NEAR
; Function compile flags: /Ogty
;	COMDAT ?_Tidy@?$ctype@D@std@@IAEXXZ
_TEXT	SEGMENT
?_Tidy@?$ctype@D@std@@IAEXXZ PROC NEAR			; std::ctype<char>::_Tidy, COMDAT
; _this$ = ecx

; 1259 : 		if (0 < _Ctype._Delfl)

	mov	eax, DWORD PTR [ecx+20]
	test	eax, eax
	jle	SHORT $L18809

; 1260 : 			free((void *)_Ctype._Table);

	mov	eax, DWORD PTR [ecx+16]
	push	eax
	call	_free
	add	esp, 4

; 1263 : 		}

	ret	0
$L18809:

; 1261 : 		else if (_Ctype._Delfl < 0)

	jge	SHORT $L11305

; 1262 : 			delete[] (void *)_Ctype._Table;

	mov	ecx, DWORD PTR [ecx+16]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	pop	ecx
$L11305:

; 1263 : 		}

	ret	0
?_Tidy@?$ctype@D@std@@IAEXXZ ENDP			; std::ctype<char>::_Tidy
_TEXT	ENDS
PUBLIC	?rdstate@ios_base@std@@QBEHXZ			; std::ios_base::rdstate
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xiosbase
;	COMDAT ?rdstate@ios_base@std@@QBEHXZ
_TEXT	SEGMENT
?rdstate@ios_base@std@@QBEHXZ PROC NEAR			; std::ios_base::rdstate, COMDAT
; _this$ = ecx

; 266  : 		return (_Mystate);

	mov	eax, DWORD PTR [ecx+8]

; 267  : 		}

	ret	0
?rdstate@ios_base@std@@QBEHXZ ENDP			; std::ios_base::rdstate
_TEXT	ENDS
PUBLIC	?good@ios_base@std@@QBE_NXZ			; std::ios_base::good
; Function compile flags: /Ogty
;	COMDAT ?good@ios_base@std@@QBE_NXZ
_TEXT	SEGMENT
?good@ios_base@std@@QBE_NXZ PROC NEAR			; std::ios_base::good, COMDAT
; _this$ = ecx

; 288  : 		return (rdstate() == goodbit);

	mov	edx, DWORD PTR [ecx+8]
	xor	eax, eax
	test	edx, edx
	sete	al

; 289  : 		}

	ret	0
?good@ios_base@std@@QBE_NXZ ENDP			; std::ios_base::good
_TEXT	ENDS
PUBLIC	?fail@ios_base@std@@QBE_NXZ			; std::ios_base::fail
; Function compile flags: /Ogty
;	COMDAT ?fail@ios_base@std@@QBE_NXZ
_TEXT	SEGMENT
?fail@ios_base@std@@QBE_NXZ PROC NEAR			; std::ios_base::fail, COMDAT
; _this$ = ecx

; 298  : 		return (((int)rdstate()
; 299  : 			& ((int)badbit | (int)failbit)) != 0);

	mov	eax, DWORD PTR [ecx+8]
	and	al, 6
	neg	al
	sbb	eax, eax
	neg	eax

; 300  : 		}

	ret	0
?fail@ios_base@std@@QBE_NXZ ENDP			; std::ios_base::fail
_TEXT	ENDS
PUBLIC	?flags@ios_base@std@@QBEHXZ			; std::ios_base::flags
; Function compile flags: /Ogty
;	COMDAT ?flags@ios_base@std@@QBEHXZ
_TEXT	SEGMENT
?flags@ios_base@std@@QBEHXZ PROC NEAR			; std::ios_base::flags, COMDAT
; _this$ = ecx

; 325  : 		return (_Fmtfl);

	mov	eax, DWORD PTR [ecx+16]

; 326  : 		}

	ret	0
?flags@ios_base@std@@QBEHXZ ENDP			; std::ios_base::flags
_TEXT	ENDS
PUBLIC	?width@ios_base@std@@QBEHXZ			; std::ios_base::width
; Function compile flags: /Ogty
;	COMDAT ?width@ios_base@std@@QBEHXZ
_TEXT	SEGMENT
?width@ios_base@std@@QBEHXZ PROC NEAR			; std::ios_base::width, COMDAT
; _this$ = ecx

; 370  : 		return (_Wide);

	mov	eax, DWORD PTR [ecx+24]

; 371  : 		}

	ret	0
?width@ios_base@std@@QBEHXZ ENDP			; std::ios_base::width
_TEXT	ENDS
PUBLIC	?width@ios_base@std@@QAEHH@Z			; std::ios_base::width
; Function compile flags: /Ogty
;	COMDAT ?width@ios_base@std@@QAEHH@Z
_TEXT	SEGMENT
__Newwidth$ = 8						; size = 4
?width@ios_base@std@@QAEHH@Z PROC NEAR			; std::ios_base::width, COMDAT
; _this$ = ecx

; 375  : 		streamsize _Oldwidth = _Wide;
; 376  : 		_Wide = _Newwidth;

	mov	edx, DWORD PTR __Newwidth$[esp-4]
	mov	eax, DWORD PTR [ecx+24]
	mov	DWORD PTR [ecx+24], edx

; 377  : 		return (_Oldwidth);
; 378  : 		}

	ret	4
?width@ios_base@std@@QAEHH@Z ENDP			; std::ios_base::width
_TEXT	ENDS
PUBLIC	?getloc@ios_base@std@@QBE?AVlocale@2@XZ		; std::ios_base::getloc
; Function compile flags: /Ogty
;	COMDAT ?getloc@ios_base@std@@QBE?AVlocale@2@XZ
_TEXT	SEGMENT
$T18840 = -4						; size = 4
__Lock$18853 = 8					; size = 4
___$ReturnUdt$ = 8					; size = 4
?getloc@ios_base@std@@QBE?AVlocale@2@XZ PROC NEAR	; std::ios_base::getloc, COMDAT
; _this$ = ecx

; 381  : 		{	// get locale

	push	ecx

; 382  : 		return (*_Ploc);

	mov	eax, DWORD PTR [ecx+36]
	push	esi
	mov	esi, DWORD PTR [eax]
	push	edi
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+8]
	push	0
	lea	ecx, DWORD PTR __Lock$18853[esp+12]
	mov	DWORD PTR $T18840[esp+16], 0
	mov	DWORD PTR [edi], esi
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $L18854
	inc	eax
	mov	DWORD PTR [esi+4], eax
$L18854:
	lea	ecx, DWORD PTR __Lock$18853[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	eax, edi
	pop	edi
	pop	esi

; 383  : 		}

	pop	ecx
	ret	4
?getloc@ios_base@std@@QBE?AVlocale@2@XZ ENDP		; std::ios_base::getloc
_TEXT	ENDS
PUBLIC	??0ios_base@std@@IAE@XZ				; std::ios_base::ios_base
PUBLIC	??_7ios_base@std@@6B@				; std::ios_base::`vftable'
PUBLIC	??_Gios_base@std@@UAEPAXI@Z			; std::ios_base::`scalar deleting destructor'
EXTRN	??_Eios_base@std@@UAEPAXI@Z:NEAR		; std::ios_base::`vector deleting destructor'
;	COMDAT ??_7ios_base@std@@6B@
CONST	SEGMENT
??_7ios_base@std@@6B@ DD FLAT:??_Eios_base@std@@UAEPAXI@Z ; std::ios_base::`vftable'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0ios_base@std@@IAE@XZ
_TEXT	SEGMENT
??0ios_base@std@@IAE@XZ PROC NEAR			; std::ios_base::ios_base, COMDAT
; _this$ = ecx

; 421  : 	ios_base()

	mov	eax, ecx
	mov	DWORD PTR [eax], OFFSET FLAT:??_7ios_base@std@@6B@

; 422  : 		{	// default constructor
; 423  : 		}

	ret	0
??0ios_base@std@@IAE@XZ ENDP				; std::ios_base::ios_base
_TEXT	ENDS
EXTRN	??1ios_base@std@@UAE@XZ:NEAR			; std::ios_base::~ios_base
; Function compile flags: /Ogty
;	COMDAT ??_Gios_base@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gios_base@std@@UAEPAXI@Z PROC NEAR			; std::ios_base::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1ios_base@std@@UAE@XZ			; std::ios_base::~ios_base
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L18863
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L18863:
	mov	eax, esi
	pop	esi
	ret	4
??_Gios_base@std@@UAEPAXI@Z ENDP			; std::ios_base::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?kill_player@@YAXH@Z				; kill_player
PUBLIC	??_C@_08IKLAEOOG@eject?5?$CFd?$AA@		; `string'
PUBLIC	??_C@_05PGGAFPFO@Death?$AA@			; `string'
EXTRN	?Get_GameObj@@YAPAEH@Z:NEAR			; Get_GameObj
EXTRN	_sprintf:NEAR
EXTRN	?Console_Input@@YAXPBD@Z:NEAR			; Console_Input
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
EXTRN	__fltused:NEAR
;	COMDAT ??_C@_08IKLAEOOG@eject?5?$CFd?$AA@
; File c:\documents and settings\owner\desktop\ssctf\r3v.cpp
CONST	SEGMENT
??_C@_08IKLAEOOG@eject?5?$CFd?$AA@ DB 'eject %d', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_05PGGAFPFO@Death?$AA@
CONST	SEGMENT
??_C@_05PGGAFPFO@Death?$AA@ DB 'Death', 00H		; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?kill_player@@YAXH@Z
_TEXT	SEGMENT
_Message$ = -512					; size = 512
_obj$ = 8						; size = 4
?kill_player@@YAXH@Z PROC NEAR				; kill_player, COMDAT

; 94   : { 

	sub	esp, 512				; 00000200H
	push	esi

; 95   : 	char Message[512];
; 96   : 	sprintf(Message, "eject %d", obj);

	mov	esi, DWORD PTR _obj$[esp+512]
	push	edi
	push	esi
	lea	eax, DWORD PTR _Message$[esp+524]
	push	OFFSET FLAT:??_C@_08IKLAEOOG@eject?5?$CFd?$AA@
	push	eax
	call	_sprintf

; 97   : 	Console_Input(Message);

	lea	ecx, DWORD PTR _Message$[esp+532]
	push	ecx
	call	?Console_Input@@YAXPBD@Z		; Console_Input

; 98   :     Commands->Apply_Damage(Get_GameObj(obj),99999,"Death",0);

	mov	edi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	add	esp, 16					; 00000010H
	push	0
	push	OFFSET FLAT:??_C@_05PGGAFPFO@Death?$AA@
	push	1203982208				; 47c34f80H
	push	esi
	add	edi, 616				; 00000268H
	call	?Get_GameObj@@YAPAEH@Z			; Get_GameObj
	add	esp, 4
	push	eax
	call	DWORD PTR [edi]
	add	esp, 16					; 00000010H
	pop	edi
	pop	esi

; 99   : }

	add	esp, 512				; 00000200H
	ret	0
?kill_player@@YAXH@Z ENDP				; kill_player
_TEXT	ENDS
PUBLIC	?Destroyed@RGHProtect@@EAEXPAE@Z		; RGHProtect::Destroyed
; Function compile flags: /Ogty
;	COMDAT ?Destroyed@RGHProtect@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Destroyed@RGHProtect@@EAEXPAE@Z PROC NEAR		; RGHProtect::Destroyed, COMDAT
; _this$ = ecx

; 101  : {

	push	esi
	mov	esi, ecx

; 102  : 	int check = Commands->Get_ID(This);

	mov	eax, DWORD PTR [esi+28]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+108]

; 103  : 	if (Commands->Find_Object(check)) { Commands->Destroy_Object(This); }

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [edx+96]
	add	esp, 8
	test	eax, eax
	je	SHORT $L15791
	mov	eax, DWORD PTR [esi+28]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+92]
	add	esp, 4
$L15791:
	pop	esi

; 104  : }

	ret	4
?Destroyed@RGHProtect@@EAEXPAE@Z ENDP			; RGHProtect::Destroyed
_TEXT	ENDS
PUBLIC	?Timer_Expired@RGHProtect@@EAEXPAEH@Z		; RGHProtect::Timer_Expired
PUBLIC	??_C@_0P@GBCNGBOM@Nod_Engineer_0?$AA@		; `string'
PUBLIC	??_C@_0P@GBFBBODN@GDI_Engineer_0?$AA@		; `string'
PUBLIC	__real@40400000
PUBLIC	__real@40000000
PUBLIC	__real@42340000
PUBLIC	__real@c2340000
PUBLIC	__real@43070000
PUBLIC	__real@43340000
PUBLIC	??_C@_05HBJPNAAK@Blamo?$AA@			; `string'
PUBLIC	__real@c3340000
PUBLIC	??_C@_04HIBGFPH@NULL?$AA@			; `string'
PUBLIC	__real@c3070000
PUBLIC	??_C@_0M@FNIEDPGC@RGH_Protect?$AA@		; `string'
EXTRN	?Set_Max_Health@@YAXPAEM@Z:NEAR			; Set_Max_Health
EXTRN	?Set_Max_Shield_Strength@@YAXPAEM@Z:NEAR	; Set_Max_Shield_Strength
EXTRN	?Get_Vehicle@@YAPAEPAE@Z:NEAR			; Get_Vehicle
EXTRN	?Toggle_Fly_Mode@@YAXPAE@Z:NEAR			; Toggle_Fly_Mode
EXTRN	?Get_Fly_Mode@@YA_NPAE@Z:NEAR			; Get_Fly_Mode
EXTRN	?Remove_Duplicate_Script@@YAXPAEPBD@Z:NEAR	; Remove_Duplicate_Script
EXTRN	?Find_Closest_Object_To_Pos@@YAPAEUVector3@@@Z:NEAR ; Find_Closest_Object_To_Pos
EXTRN	?Destroy_All_Objects_By_Preset@@YAXPBD@Z:NEAR	; Destroy_All_Objects_By_Preset
;	COMDAT ??_C@_0P@GBCNGBOM@Nod_Engineer_0?$AA@
CONST	SEGMENT
??_C@_0P@GBCNGBOM@Nod_Engineer_0?$AA@ DB 'Nod_Engineer_0', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@GBFBBODN@GDI_Engineer_0?$AA@
CONST	SEGMENT
??_C@_0P@GBFBBODN@GDI_Engineer_0?$AA@ DB 'GDI_Engineer_0', 00H ; `string'
CONST	ENDS
;	COMDAT __real@40400000
CONST	SEGMENT
__real@40400000 DD 040400000r			; 3
CONST	ENDS
;	COMDAT __real@40000000
CONST	SEGMENT
__real@40000000 DD 040000000r			; 2
CONST	ENDS
;	COMDAT __real@42340000
CONST	SEGMENT
__real@42340000 DD 042340000r			; 45
CONST	ENDS
;	COMDAT __real@c2340000
CONST	SEGMENT
__real@c2340000 DD 0c2340000r			; -45
CONST	ENDS
;	COMDAT __real@43070000
CONST	SEGMENT
__real@43070000 DD 043070000r			; 135
CONST	ENDS
;	COMDAT __real@43340000
CONST	SEGMENT
__real@43340000 DD 043340000r			; 180
CONST	ENDS
;	COMDAT __real@c3340000
CONST	SEGMENT
__real@c3340000 DD 0c3340000r			; -180
CONST	ENDS
;	COMDAT __real@c3070000
CONST	SEGMENT
__real@c3070000 DD 0c3070000r			; -135
CONST	ENDS
;	COMDAT ??_C@_05HBJPNAAK@Blamo?$AA@
CONST	SEGMENT
??_C@_05HBJPNAAK@Blamo?$AA@ DB 'Blamo', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_04HIBGFPH@NULL?$AA@
CONST	SEGMENT
??_C@_04HIBGFPH@NULL?$AA@ DB 'NULL', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@FNIEDPGC@RGH_Protect?$AA@
CONST	SEGMENT
??_C@_0M@FNIEDPGC@RGH_Protect?$AA@ DB 'RGH_Protect', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Timer_Expired@RGHProtect@@EAEXPAEH@Z
_TEXT	SEGMENT
_p$15801 = -24						; size = 12
$T18875 = -12						; size = 12
_obj$ = 8						; size = 4
_number$ = 12						; size = 4
?Timer_Expired@RGHProtect@@EAEXPAEH@Z PROC NEAR		; RGHProtect::Timer_Expired, COMDAT
; _this$ = ecx

; 107  : 	if (number == 2) {

	mov	eax, DWORD PTR _number$[esp-4]
	sub	esp, 24					; 00000018H
	cmp	eax, 2
	push	ebx
	push	ebp
	push	esi
	push	edi
	mov	ebx, ecx
	jne	SHORT $L15797

; 108  : 		Destroy_All_Objects_By_Preset("Nod_Engineer_0");

	push	OFFSET FLAT:??_C@_0P@GBCNGBOM@Nod_Engineer_0?$AA@
	call	?Destroy_All_Objects_By_Preset@@YAXPBD@Z ; Destroy_All_Objects_By_Preset

; 109  : 		Destroy_All_Objects_By_Preset("GDI_Engineer_0");

	push	OFFSET FLAT:??_C@_0P@GBFBBODN@GDI_Engineer_0?$AA@
	call	?Destroy_All_Objects_By_Preset@@YAXPBD@Z ; Destroy_All_Objects_By_Preset

; 110  : 		Commands->Start_Timer(obj,this,10,2);

	mov	eax, DWORD PTR _obj$[esp+44]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	2
	push	1092616192				; 41200000H
	push	ebx
	push	eax
	call	DWORD PTR [ecx+128]
	add	esp, 24					; 00000018H

; 111  : 	}
; 112  : 	if (number == 1) {

	jmp	$L18897
$L15797:
	cmp	eax, 1
	jne	$L18897

; 113  : 		Vector3 p = Commands->Get_Position(obj);

	mov	esi, DWORD PTR _obj$[esp+36]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR $T18875[esp+40]
	push	esi
	push	edx
	call	DWORD PTR [eax+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _p$15801[esp+48], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _p$15801[esp+52], edx
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR _p$15801[esp+56], eax

; 114  : 		p.Z = p.Z + 3;

	fld	DWORD PTR _p$15801[esp+56]
	fadd	DWORD PTR __real@40400000

; 115  : 		if (Get_Vehicle(obj) != 0) { p.Z = p.Z + 2; }

	push	esi
	fstp	DWORD PTR _p$15801[esp+60]
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 12					; 0000000cH
	test	eax, eax
	je	SHORT $L15803
	fld	DWORD PTR _p$15801[esp+48]
	fadd	DWORD PTR __real@40000000
	fstp	DWORD PTR _p$15801[esp+48]
$L15803:

; 116  : 		float f = Commands->Get_Facing(obj);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	esi
	call	DWORD PTR [ecx+72]

; 117  : 		if (f <= 45 && f >= -45) { p.X = p.X + 2; }

	fcom	DWORD PTR __real@42340000
	add	esp, 4
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	SHORT $L18894
	fcom	DWORD PTR __real@c2340000
	fnstsw	ax
	test	ah, 1
	jne	SHORT $L18894
	fld	DWORD PTR _p$15801[esp+40]
	fadd	DWORD PTR __real@40000000
	fstp	DWORD PTR _p$15801[esp+40]
$L18894:

; 118  : 		if (f > 45 && f <= 135) { p.Y = p.Y + 2; }

	fcom	DWORD PTR __real@42340000
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $L18895
	fcom	DWORD PTR __real@43070000
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	SHORT $L18895
	fld	DWORD PTR _p$15801[esp+44]
	fadd	DWORD PTR __real@40000000
	fstp	DWORD PTR _p$15801[esp+44]
$L18895:

; 119  : 		if (f > 135 && f <= 180 || f > -180 && f <= -135) { p.X = p.X - 2; }

	fcom	DWORD PTR __real@43070000
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $L15809
	fcom	DWORD PTR __real@43340000
	fnstsw	ax
	test	ah, 65					; 00000041H
	jnp	SHORT $L15808
$L15809:
	fcom	DWORD PTR __real@c3340000
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $L15807
	fcom	DWORD PTR __real@c3070000
	fnstsw	ax
	test	ah, 65					; 00000041H
	jp	SHORT $L15807
$L15808:
	fld	DWORD PTR _p$15801[esp+40]
	fsub	DWORD PTR __real@40000000
	fstp	DWORD PTR _p$15801[esp+40]
$L15807:

; 120  : 		if (f > -135 && f < -45) { p.Y = p.Y - 2; }

	fcom	DWORD PTR __real@c3070000
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $L18896
	fcomp	DWORD PTR __real@c2340000
	fnstsw	ax
	test	ah, 5
	jp	SHORT $L15810
	fld	DWORD PTR _p$15801[esp+44]
	fsub	DWORD PTR __real@40000000
	fstp	DWORD PTR _p$15801[esp+44]
	jmp	SHORT $L15810
$L18896:
	fstp	ST(0)
$L15810:

; 121  : 		GameObject *This2 = Find_Closest_Object_To_Pos(p);

	mov	eax, DWORD PTR _p$15801[esp+40]
	mov	ecx, DWORD PTR _p$15801[esp+44]
	sub	esp, 12					; 0000000cH
	mov	edx, esp
	mov	DWORD PTR [edx], eax
	mov	eax, DWORD PTR _p$15801[esp+60]
	mov	DWORD PTR [edx+4], ecx
	mov	DWORD PTR [edx+8], eax
	call	?Find_Closest_Object_To_Pos@@YAPAEUVector3@@@Z ; Find_Closest_Object_To_Pos

; 122  : 		if (strcmp(Commands->Get_Preset_Name(This2),"GDI_Engineer_0") != 0 && strcmp(Commands->Get_Preset_Name(This2),"Nod_Engineer_0") != 0)

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ebp, eax
	push	ebp
	mov	edi, OFFSET FLAT:??_C@_0P@GBFBBODN@GDI_Engineer_0?$AA@
	call	DWORD PTR [ecx+116]
	add	esp, 16					; 00000010H
	mov	esi, eax
	mov	ecx, 15					; 0000000fH
	xor	edx, edx
	repe cmpsb
	je	$L15812
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebp
	mov	edi, OFFSET FLAT:??_C@_0P@GBCNGBOM@Nod_Engineer_0?$AA@
	call	DWORD PTR [eax+116]
	add	esp, 4
	mov	esi, eax
	mov	ecx, 15					; 0000000fH
	xor	edx, edx
	repe cmpsb
	je	$L15812

; 123  : 		{
; 124  : 			int team = Commands->Get_Player_Type(obj);

	mov	eax, DWORD PTR _obj$[esp+36]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+248]
	add	esp, 4

; 125  : 			if (team == 0) { This = Commands->Create_Object("GDI_Engineer_0", p); }

	test	eax, eax
	jne	SHORT $L15814
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR _p$15801[esp+40]
	push	edx
	push	OFFSET FLAT:??_C@_0P@GBFBBODN@GDI_Engineer_0?$AA@
	call	DWORD PTR [eax+100]

; 126  : 			else if (team == 1) { This = Commands->Create_Object("Nod_Engineer_0", p); }

	jmp	SHORT $L18898
$L15814:
	cmp	eax, 1
	jne	SHORT $L15816
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _p$15801[esp+40]
	push	ecx
	push	OFFSET FLAT:??_C@_0P@GBCNGBOM@Nod_Engineer_0?$AA@
	call	DWORD PTR [edx+100]
$L18898:
	add	esp, 8
	mov	DWORD PTR [ebx+28], eax
$L15816:

; 127  : 			Commands->Clear_Weapons(This);

	mov	eax, DWORD PTR [ebx+28]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+796]

; 128  : 			Commands->Set_Is_Visible(This,false);

	mov	edx, DWORD PTR [ebx+28]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	edx
	call	DWORD PTR [eax+624]

; 129  : 			Set_Max_Health(This,99999);

	mov	ecx, DWORD PTR [ebx+28]
	push	1203982208				; 47c34f80H
	push	ecx
	call	?Set_Max_Health@@YAXPAEM@Z		; Set_Max_Health

; 130  : 			Set_Max_Shield_Strength(This,99999);

	mov	edx, DWORD PTR [ebx+28]
	push	1203982208				; 47c34f80H
	push	edx
	call	?Set_Max_Shield_Strength@@YAXPAEM@Z	; Set_Max_Shield_Strength

; 131  : 			Commands->Set_Shield_Type(This,"Blamo");

	mov	eax, DWORD PTR [ebx+28]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	OFFSET FLAT:??_C@_05HBJPNAAK@Blamo?$AA@
	push	eax
	call	DWORD PTR [ecx+244]

; 132  : 			Commands->Set_Health(This,99999);

	mov	edx, DWORD PTR [ebx+28]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1203982208				; 47c34f80H
	push	edx
	call	DWORD PTR [eax+228]

; 133  : 			Commands->Set_Shield_Strength(This,99999);

	mov	ecx, DWORD PTR [ebx+28]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1203982208				; 47c34f80H
	push	ecx
	call	DWORD PTR [edx+240]

; 134  : 			Commands->Disable_All_Collisions(This);

	mov	eax, DWORD PTR [ebx+28]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+80]

; 135  : 			Commands->Disable_Physical_Collisions(This);

	mov	edx, DWORD PTR [ebx+28]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+84]

; 136  : 			Toggle_Fly_Mode(This);

	mov	ecx, DWORD PTR [ebx+28]
	push	ecx
	call	?Toggle_Fly_Mode@@YAXPAE@Z		; Toggle_Fly_Mode

; 137  : 			Commands->Set_Model(This,"NULL");

	mov	edx, DWORD PTR [ebx+28]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	add	esp, 64					; 00000040H
	push	OFFSET FLAT:??_C@_04HIBGFPH@NULL?$AA@
	push	edx
	call	DWORD PTR [eax+160]
	add	esp, 8

; 138  : 		}
; 139  : 		else {

	jmp	SHORT $L15819
$L15812:

; 140  : 			if (!Get_Fly_Mode(This)) { Toggle_Fly_Mode(This); }

	mov	ecx, DWORD PTR [ebx+28]
	push	ecx
	call	?Get_Fly_Mode@@YA_NPAE@Z		; Get_Fly_Mode
	add	esp, 4
	test	al, al
	jne	SHORT $L15820
	mov	edx, DWORD PTR [ebx+28]
	push	edx
	call	?Toggle_Fly_Mode@@YAXPAE@Z		; Toggle_Fly_Mode
	add	esp, 4
$L15820:

; 141  : 			Commands->Set_Model(This,"NULL");

	mov	eax, DWORD PTR [ebx+28]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	OFFSET FLAT:??_C@_04HIBGFPH@NULL?$AA@
	push	eax
	call	DWORD PTR [ecx+160]

; 142  : 			Commands->Disable_All_Collisions(This);

	mov	edx, DWORD PTR [ebx+28]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+80]

; 143  : 			Commands->Disable_Physical_Collisions(This);

	mov	ecx, DWORD PTR [ebx+28]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+84]

; 144  : 			Commands->Set_Position(This, p);

	mov	ecx, DWORD PTR [ebx+28]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR _p$15801[esp+56]
	push	eax
	push	ecx
	call	DWORD PTR [edx+60]
	add	esp, 24					; 00000018H
$L15819:

; 145  : 		}
; 146  : 		Commands->Start_Timer(obj,this,.1f,1);	

	mov	eax, DWORD PTR _obj$[esp+36]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1
	push	1036831949				; 3dcccccdH
	push	ebx
	push	eax
	call	DWORD PTR [ecx+128]
	add	esp, 16					; 00000010H
$L18897:

; 147  : 	}
; 148  : 	Remove_Duplicate_Script(obj,"RGH_Protect");

	mov	edx, DWORD PTR _obj$[esp+36]
	push	OFFSET FLAT:??_C@_0M@FNIEDPGC@RGH_Protect?$AA@
	push	edx
	call	?Remove_Duplicate_Script@@YAXPAEPBD@Z	; Remove_Duplicate_Script
	add	esp, 8

; 149  : }

	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	add	esp, 24					; 00000018H
	ret	8
?Timer_Expired@RGHProtect@@EAEXPAEH@Z ENDP		; RGHProtect::Timer_Expired
_TEXT	ENDS
PUBLIC	?Created@RGHProtect@@EAEXPAE@Z			; RGHProtect::Created
; Function compile flags: /Ogty
;	COMDAT ?Created@RGHProtect@@EAEXPAE@Z
_TEXT	SEGMENT
_p$ = -24						; size = 12
$T18903 = -12						; size = 12
_obj$ = 8						; size = 4
?Created@RGHProtect@@EAEXPAE@Z PROC NEAR		; RGHProtect::Created, COMDAT
; _this$ = ecx

; 151  : {

	sub	esp, 24					; 00000018H
	push	esi
	push	edi

; 152  : 	Vector3 p = Commands->Get_Position(obj);

	mov	edi, DWORD PTR _obj$[esp+28]
	lea	eax, DWORD PTR $T18903[esp+32]
	mov	esi, ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR _p$[esp+40], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _p$[esp+44], ecx
	mov	edx, DWORD PTR [eax+8]

; 153  : 	p.Z = p.Z + 3;
; 154  : 	//This = Find_Closest_Object_To_Pos(p);
; 155  : 	//if (strcmp(Commands->Get_Preset_Name(This),"Nod_Engineer_0") == 0) { Commands->Destroy_Object(This); }
; 156  : 	//if (strcmp(Commands->Get_Preset_Name(This),"GDI_Engineer_0") == 0) { Commands->Destroy_Object(This); }
; 157  : 	//This = Find_Closest_Object_To_Pos(p);
; 158  : 	//if (strcmp(Commands->Get_Preset_Name(This),"Nod_Engineer_0") == 0) { Commands->Destroy_Object(This); }
; 159  : 	//if (strcmp(Commands->Get_Preset_Name(This),"GDI_Engineer_0") == 0) { Commands->Destroy_Object(This); }
; 160  : 	int team = Commands->Get_Player_Type(obj);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	DWORD PTR _p$[esp+48], edx
	fld	DWORD PTR _p$[esp+48]
	fadd	DWORD PTR __real@40400000
	push	edi
	fstp	DWORD PTR _p$[esp+52]
	call	DWORD PTR [eax+248]
	add	esp, 12					; 0000000cH

; 161  : 	if (team == 0) { This = Commands->Create_Object("GDI_Engineer_0", p); }

	test	eax, eax
	jne	SHORT $L15829
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _p$[esp+32]
	push	ecx
	push	OFFSET FLAT:??_C@_0P@GBFBBODN@GDI_Engineer_0?$AA@
	call	DWORD PTR [edx+100]

; 162  : 	else if (team == 1) { This = Commands->Create_Object("Nod_Engineer_0", p); }

	jmp	SHORT $L18904
$L15829:
	cmp	eax, 1
	jne	SHORT $L15831
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR _p$[esp+32]
	push	eax
	push	OFFSET FLAT:??_C@_0P@GBCNGBOM@Nod_Engineer_0?$AA@
	call	DWORD PTR [ecx+100]
$L18904:
	add	esp, 8
	mov	DWORD PTR [esi+28], eax
$L15831:

; 163  : 	Commands->Clear_Weapons(This);

	mov	edx, DWORD PTR [esi+28]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+796]

; 164  :    	Commands->Set_Is_Visible(This,false);

	mov	ecx, DWORD PTR [esi+28]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	ecx
	call	DWORD PTR [edx+624]

; 165  : 	Set_Max_Health(This,99999);

	mov	eax, DWORD PTR [esi+28]
	push	1203982208				; 47c34f80H
	push	eax
	call	?Set_Max_Health@@YAXPAEM@Z		; Set_Max_Health

; 166  : 	Set_Max_Shield_Strength(This,99999);

	mov	ecx, DWORD PTR [esi+28]
	push	1203982208				; 47c34f80H
	push	ecx
	call	?Set_Max_Shield_Strength@@YAXPAEM@Z	; Set_Max_Shield_Strength

; 167  : 	Commands->Set_Shield_Type(This,"Blamo");

	mov	edx, DWORD PTR [esi+28]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	OFFSET FLAT:??_C@_05HBJPNAAK@Blamo?$AA@
	push	edx
	call	DWORD PTR [eax+244]

; 168  : 	Commands->Set_Health(This,99999);

	mov	ecx, DWORD PTR [esi+28]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1203982208				; 47c34f80H
	push	ecx
	call	DWORD PTR [edx+228]

; 169  : 	Commands->Set_Shield_Strength(This,99999);

	mov	eax, DWORD PTR [esi+28]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1203982208				; 47c34f80H
	push	eax
	call	DWORD PTR [ecx+240]

; 170  : 	Commands->Disable_All_Collisions(This);

	mov	edx, DWORD PTR [esi+28]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+80]

; 171  : 	Commands->Disable_Physical_Collisions(This);

	mov	ecx, DWORD PTR [esi+28]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+84]

; 172  : 	Toggle_Fly_Mode(This);

	mov	eax, DWORD PTR [esi+28]
	push	eax
	call	?Toggle_Fly_Mode@@YAXPAE@Z		; Toggle_Fly_Mode

; 173  : 	Commands->Set_Model(This,"NULL");

	mov	ecx, DWORD PTR [esi+28]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	add	esp, 64					; 00000040H
	push	OFFSET FLAT:??_C@_04HIBGFPH@NULL?$AA@
	push	ecx
	call	DWORD PTR [edx+160]

; 174  : 	Commands->Start_Timer(obj,this,.1f,1);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1
	push	1036831949				; 3dcccccdH
	push	esi
	push	edi
	call	DWORD PTR [eax+128]

; 175  : 	Commands->Start_Timer(obj,this,10,2);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	2
	push	1092616192				; 41200000H
	push	esi
	push	edi
	call	DWORD PTR [ecx+128]

; 176  : 	Remove_Duplicate_Script(obj,"RGH_Protect");

	push	OFFSET FLAT:??_C@_0M@FNIEDPGC@RGH_Protect?$AA@
	push	edi
	call	?Remove_Duplicate_Script@@YAXPAEPBD@Z	; Remove_Duplicate_Script
	add	esp, 48					; 00000030H
	pop	edi
	pop	esi

; 177  : }

	add	esp, 24					; 00000018H
	ret	4
?Created@RGHProtect@@EAEXPAE@Z ENDP			; RGHProtect::Created
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VRGHProtect@@@@UAE@XZ	; ScriptRegistrant<RGHProtect>::~ScriptRegistrant<RGHProtect>
EXTRN	??1ScriptFactory@@UAE@XZ:NEAR			; ScriptFactory::~ScriptFactory
; Function compile flags: /Ogty
;	COMDAT ??1?$ScriptRegistrant@VRGHProtect@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VRGHProtect@@@@UAE@XZ PROC NEAR	; ScriptRegistrant<RGHProtect>::~ScriptRegistrant<RGHProtect>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VRGHProtect@@@@UAE@XZ ENDP	; ScriptRegistrant<RGHProtect>::~ScriptRegistrant<RGHProtect>
_TEXT	ENDS
PUBLIC	?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ
_TEXT	SEGMENT
?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size, COMDAT
; _this$ = ecx

; 1109 : 		return (_Mysize);

	mov	eax, DWORD PTR [ecx+20]

; 1110 : 		}

	ret	0
?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::size
_TEXT	ENDS
PUBLIC	??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::~basic_ostream<char,std::char_traits<char> >
PUBLIC	??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ostream<char,std::char_traits<char> >::`vftable'
PUBLIC	??_G?$basic_ostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_ostream<char,std::char_traits<char> >::`scalar deleting destructor'
EXTRN	??_E?$basic_ostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:NEAR ; std::basic_ostream<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ostream
CONST	SEGMENT
??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_E?$basic_ostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_ostream<char,std::char_traits<char> >::`vftable'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::~basic_ostream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 56   : 		{	// destroy the object

	mov	eax, DWORD PTR [ecx-4]
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [edx+ecx-4], OFFSET FLAT:??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@

; 57   : 		}

	ret	0
??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::~basic_ostream<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
PUBLIC	??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ios<char,std::char_traits<char> >::`vftable'
PUBLIC	??_G?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_ios<char,std::char_traits<char> >::`scalar deleting destructor'
EXTRN	??_E?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:NEAR ; std::basic_ios<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
CONST	SEGMENT
??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_E?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_ios<char,std::char_traits<char> >::`vftable'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 34   : 		{	// destroy the object

	mov	DWORD PTR [ecx], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@

; 35   : 		}

	jmp	??1ios_base@std@@UAE@XZ			; std::ios_base::~ios_base
??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP	; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char> >::rdbuf
; Function compile flags: /Ogty
;	COMDAT ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ
_TEXT	SEGMENT
?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::rdbuf, COMDAT
; _this$ = ecx

; 81   : 		return (_Mystrbuf);

	mov	eax, DWORD PTR [ecx+40]

; 82   : 		}

	ret	0
?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ ENDP ; std::basic_ios<char,std::char_traits<char> >::rdbuf
_TEXT	ENDS
PUBLIC	??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >
PUBLIC	??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_istream<char,std::char_traits<char> >::`vftable'
PUBLIC	??_G?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_istream<char,std::char_traits<char> >::`scalar deleting destructor'
EXTRN	??_E?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:NEAR ; std::basic_istream<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
CONST	SEGMENT
??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_E?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_istream<char,std::char_traits<char> >::`vftable'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 39   : 		{	// destroy the object

	mov	eax, DWORD PTR [ecx-8]
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [edx+ecx-8], OFFSET FLAT:??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@

; 40   : 		}

	ret	0
??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ ; std::basic_istream<char,std::char_traits<char> >::sentry::operator bool
; Function compile flags: /Ogty
;	COMDAT ??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT
??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::sentry::operator bool, COMDAT
; _this$ = ecx

; 78   : 			return (_Ok);

	mov	al, BYTE PTR [ecx+4]

; 79   : 			}

	ret	0
??Bsentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_NXZ ENDP ; std::basic_istream<char,std::char_traits<char> >::sentry::operator bool
_TEXT	ENDS
PUBLIC	??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_iostream<char,std::char_traits<char> >::~basic_iostream<char,std::char_traits<char> >
PUBLIC	??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_iostream<char,std::char_traits<char> >::`vftable'
PUBLIC	??_G?$basic_iostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_iostream<char,std::char_traits<char> >::`scalar deleting destructor'
EXTRN	??_E?$basic_iostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:NEAR ; std::basic_iostream<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT
??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_E?$basic_iostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_iostream<char,std::char_traits<char> >::`vftable'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ PROC NEAR ; std::basic_iostream<char,std::char_traits<char> >::~basic_iostream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 870  : 		{	// destroy the object

	mov	eax, DWORD PTR [ecx-12]
	mov	edx, DWORD PTR [eax+4]

; 871  : 		}

	lea	eax, DWORD PTR [ecx-12]
	test	eax, eax
	mov	DWORD PTR [edx+ecx-12], OFFSET FLAT:??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@
	je	SHORT $L18931
	lea	eax, DWORD PTR [ecx-4]
	jmp	SHORT $L18932
$L18931:
	xor	eax, eax
$L18932:
	mov	edx, DWORD PTR [eax]
	mov	edx, DWORD PTR [edx+4]
	mov	DWORD PTR [edx+eax], OFFSET FLAT:??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@
	mov	eax, DWORD PTR [ecx-12]
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [edx+ecx-12], OFFSET FLAT:??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	ret	0
??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_iostream<char,std::char_traits<char> >::~basic_iostream<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	??0?$ScriptRegistrant@VRGHProtect@@@@QAE@PAD0@Z	; ScriptRegistrant<RGHProtect>::ScriptRegistrant<RGHProtect>
PUBLIC	?Create@?$ScriptRegistrant@VRGHProtect@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<RGHProtect>::Create
PUBLIC	??_7?$ScriptRegistrant@VRGHProtect@@@@6B@	; ScriptRegistrant<RGHProtect>::`vftable'
PUBLIC	??_G?$ScriptRegistrant@VRGHProtect@@@@UAEPAXI@Z	; ScriptRegistrant<RGHProtect>::`scalar deleting destructor'
EXTRN	??0ScriptFactory@@QAE@PAD0@Z:NEAR		; ScriptFactory::ScriptFactory
EXTRN	??_E?$ScriptRegistrant@VRGHProtect@@@@UAEPAXI@Z:NEAR ; ScriptRegistrant<RGHProtect>::`vector deleting destructor'
;	COMDAT ??_7?$ScriptRegistrant@VRGHProtect@@@@6B@
; File c:\documents and settings\owner\desktop\ssctf\scripts.h
CONST	SEGMENT
??_7?$ScriptRegistrant@VRGHProtect@@@@6B@ DD FLAT:??_E?$ScriptRegistrant@VRGHProtect@@@@UAEPAXI@Z ; ScriptRegistrant<RGHProtect>::`vftable'
	DD	FLAT:?Create@?$ScriptRegistrant@VRGHProtect@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VRGHProtect@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VRGHProtect@@@@QAE@PAD0@Z PROC NEAR ; ScriptRegistrant<RGHProtect>::ScriptRegistrant<RGHProtect>, COMDAT
; _this$ = ecx

; 474  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$ScriptRegistrant@VRGHProtect@@@@6B@

; 475  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VRGHProtect@@@@QAE@PAD0@Z ENDP	; ScriptRegistrant<RGHProtect>::ScriptRegistrant<RGHProtect>
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L18952
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L18952:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_ios@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_Glocale@std@@QAEPAXI@Z			; std::locale::`scalar deleting destructor'
; Function compile flags: /Ogty
;	COMDAT ??_Glocale@std@@QAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Glocale@std@@QAEPAXI@Z PROC NEAR			; std::locale::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi]
	test	ecx, ecx
	je	SHORT $L18966
	call	?_Decref@facet@locale@std@@QAEPAV123@XZ	; std::locale::facet::_Decref
	test	eax, eax
	je	SHORT $L18966
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, eax
	call	DWORD PTR [edx]
$L18966:
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L18968
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L18968:
	mov	eax, esi
	pop	esi
	ret	4
??_Glocale@std@@QAEPAXI@Z ENDP				; std::locale::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VRGHProtect@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VRGHProtect@@@@UAEPAXI@Z PROC NEAR ; ScriptRegistrant<RGHProtect>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ScriptRegistrant@VRGHProtect@@@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L18972
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L18972:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VRGHProtect@@@@UAEPAXI@Z ENDP	; ScriptRegistrant<RGHProtect>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ
_TEXT	SEGMENT
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr, COMDAT
; _this$ = ecx

; 1537 : 		return (_BUF_SIZE <= _Myres ? _Bx._Ptr : _Bx._Buf);

	cmp	DWORD PTR [ecx+24], 16			; 00000010H
	jb	SHORT $L18976
	mov	eax, DWORD PTR [ecx+4]

; 1538 : 		}

	ret	0
$L18976:

; 1537 : 		return (_BUF_SIZE <= _Myres ? _Bx._Ptr : _Bx._Buf);

	lea	eax, DWORD PTR [ecx+4]

; 1538 : 		}

	ret	0
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@D@std@@QAE@XZ PROC NEAR			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 111  : 	allocator()

	mov	eax, ecx

; 112  : 		{	// construct default allocator (do nothing)
; 113  : 		}

	ret	0
??0?$allocator@D@std@@QAE@XZ ENDP			; std::allocator<char>::allocator<char>
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@ABV01@@Z		; std::allocator<char>::allocator<char>
; Function compile flags: /Ogty
;	COMDAT ??0?$allocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
??0?$allocator@D@std@@QAE@ABV01@@Z PROC NEAR		; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 115  : 	allocator(const allocator<_Ty>&)

	mov	eax, ecx

; 116  : 		{	// construct by copying (do nothing)
; 117  : 		}

	ret	4
??0?$allocator@D@std@@QAE@ABV01@@Z ENDP			; std::allocator<char>::allocator<char>
_TEXT	ENDS
PUBLIC	?deallocate@?$allocator@D@std@@QAEXPADI@Z	; std::allocator<char>::deallocate
; Function compile flags: /Ogty
;	COMDAT ?deallocate@?$allocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$allocator@D@std@@QAEXPADI@Z PROC NEAR	; std::allocator<char>::deallocate, COMDAT
; _this$ = ecx

; 132  : 		operator delete(_Ptr);

	mov	eax, DWORD PTR __Ptr$[esp-4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx

; 133  : 		}

	ret	8
?deallocate@?$allocator@D@std@@QAEXPADI@Z ENDP		; std::allocator<char>::deallocate
_TEXT	ENDS
PUBLIC	?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ; std::basic_ios<char,std::char_traits<char> >::clear
EXTRN	?clear@ios_base@std@@QAEXH_N@Z:NEAR		; std::ios_base::clear
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
;	COMDAT ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__Except$ = 12						; size = 1
?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::clear, COMDAT
; _this$ = ecx

; 39   : 		ios_base::clear((iostate)(_Mystrbuf == 0
; 40   : 			? (int)_State | (int)badbit : (int)_State), _Except);

	mov	eax, DWORD PTR [ecx+40]
	test	eax, eax
	mov	eax, DWORD PTR __State$[esp-4]
	jne	SHORT $L18991
	or	eax, 4
$L18991:
	mov	DWORD PTR __State$[esp-4], eax
	jmp	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::clear
_TEXT	ENDS
PUBLIC	??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ ; std::basic_ios<char,std::char_traits<char> >::basic_ios<char,std::char_traits<char> >
; Function compile flags: /Ogty
;	COMDAT ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ
_TEXT	SEGMENT
??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::basic_ios<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 142  : 	basic_ios()

	mov	eax, ecx
	mov	DWORD PTR [eax], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@

; 143  : 		{	// default constructor, do nothing
; 144  : 		}

	ret	0
??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ ENDP	; std::basic_ios<char,std::char_traits<char> >::basic_ios<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::pubsync
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
;	COMDAT ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT
?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::pubsync, COMDAT
; _this$ = ecx

; 96   : 		return (sync());

	mov	eax, DWORD PTR [ecx]
	jmp	DWORD PTR [eax+44]
?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::pubsync
_TEXT	ENDS
PUBLIC	?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Unlock
EXTRN	?_Unlock@_Mutex@std@@QAEXXZ:NEAR		; std::_Mutex::_Unlock
; Function compile flags: /Ogty
;	COMDAT ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::_Unlock, COMDAT
; _this$ = ecx

; 163  : 		_Mylock._Unlock();

	add	ecx, 4
	jmp	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Unlock
_TEXT	ENDS
PUBLIC	?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::eback
; Function compile flags: /Ogty
;	COMDAT ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::eback, COMDAT
; _this$ = ecx

; 170  : 		return (*_IGfirst);

	mov	eax, DWORD PTR [ecx+16]
	mov	eax, DWORD PTR [eax]

; 171  : 		}

	ret	0
?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::eback
_TEXT	ENDS
PUBLIC	?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::gptr
; Function compile flags: /Ogty
;	COMDAT ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::gptr, COMDAT
; _this$ = ecx

; 175  : 		return (*_IGnext);

	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]

; 176  : 		}

	ret	0
?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::gptr
_TEXT	ENDS
PUBLIC	?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::pptr
; Function compile flags: /Ogty
;	COMDAT ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::pptr, COMDAT
; _this$ = ecx

; 185  : 		return (*_IPnext);

	mov	eax, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [eax]

; 186  : 		}

	ret	0
?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::pptr
_TEXT	ENDS
PUBLIC	?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::egptr
; Function compile flags: /Ogty
;	COMDAT ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::egptr, COMDAT
; _this$ = ecx

; 190  : 		return (*_IGnext + *_IGcount);

	mov	eax, DWORD PTR [ecx+48]
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]
	add	eax, DWORD PTR [ecx]

; 191  : 		}

	ret	0
?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::egptr
_TEXT	ENDS
PUBLIC	?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z ; std::basic_streambuf<char,std::char_traits<char> >::setg
; Function compile flags: /Ogty
;	COMDAT ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Next$ = 12						; size = 4
__Last$ = 16						; size = 4
?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::setg, COMDAT
; _this$ = ecx

; 201  : 		*_IGfirst = _First;

	mov	eax, DWORD PTR [ecx+16]
	mov	edx, DWORD PTR __First$[esp-4]
	mov	DWORD PTR [eax], edx

; 202  : 		*_IGnext = _Next;

	mov	edx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR __Next$[esp-4]
	mov	DWORD PTR [edx], eax

; 203  : 		*_IGcount = (int)(_Last - _Next);

	mov	edx, DWORD PTR __Last$[esp-4]
	sub	edx, eax
	mov	eax, DWORD PTR [ecx+48]
	mov	DWORD PTR [eax], edx

; 204  : 		}

	ret	12					; 0000000cH
?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::setg
_TEXT	ENDS
PUBLIC	?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::epptr
; Function compile flags: /Ogty
;	COMDAT ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ
_TEXT	SEGMENT
?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::epptr, COMDAT
; _this$ = ecx

; 208  : 		return (*_IPnext + *_IPcount);

	mov	eax, DWORD PTR [ecx+52]
	mov	ecx, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [eax]
	add	eax, DWORD PTR [ecx]

; 209  : 		}

	ret	0
?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::epptr
_TEXT	ENDS
PUBLIC	?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Gninc
; Function compile flags: /Ogty
;	COMDAT ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::_Gninc, COMDAT
; _this$ = ecx

; 219  : 		--*_IGcount;

	mov	eax, DWORD PTR [ecx+48]
	dec	DWORD PTR [eax]

; 220  : 		return ((*_IGnext)++);

	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx

; 221  : 		}

	ret	0
?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Gninc
_TEXT	ENDS
PUBLIC	?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z ; std::basic_streambuf<char,std::char_traits<char> >::setp
; Function compile flags: /Ogty
;	COMDAT ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::setp, COMDAT
; _this$ = ecx

; 231  : 		*_IPfirst = _First;

	mov	edx, DWORD PTR [ecx+20]
	mov	eax, DWORD PTR __First$[esp-4]
	mov	DWORD PTR [edx], eax

; 232  : 		*_IPnext = _First;

	mov	edx, DWORD PTR [ecx+36]
	mov	DWORD PTR [edx], eax

; 233  : 		*_IPcount = (int)(_Last - _First);

	mov	edx, DWORD PTR __Last$[esp-4]
	sub	edx, eax
	mov	eax, DWORD PTR [ecx+52]
	mov	DWORD PTR [eax], edx

; 234  : 		}

	ret	8
?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::setp
_TEXT	ENDS
PUBLIC	?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Pninc
; Function compile flags: /Ogty
;	COMDAT ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::_Pninc, COMDAT
; _this$ = ecx

; 245  : 		--*_IPcount;

	mov	eax, DWORD PTR [ecx+52]
	dec	DWORD PTR [eax]

; 246  : 		return ((*_IPnext)++);

	mov	ecx, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx

; 247  : 		}

	ret	0
?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Pninc
_TEXT	ENDS
PUBLIC	?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Tidy
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\sstream
;	COMDAT ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ
_TEXT	SEGMENT
?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Tidy, COMDAT
; _this$ = ecx

; 290  : 		{	// discard any allocated buffer and clear pointers

	push	esi
	mov	esi, ecx

; 291  : 		if (_Mystate & _Allocated)

	test	BYTE PTR [esi+64], 1
	je	SHORT $L19057

; 292  : 			_Al.deallocate(_Mysb::eback(),
; 293  : 				(_Mysb::pptr() != 0 ? _Mysb::epptr()
; 294  : 					: _Mysb::egptr()) - _Mysb::eback());

	mov	eax, DWORD PTR [esi+16]
	mov	ecx, DWORD PTR [eax]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L19057:

; 295  : 		_Mysb::setg(0, 0, 0);

	mov	edx, DWORD PTR [esi+16]
	mov	DWORD PTR [edx], 0
	mov	eax, DWORD PTR [esi+32]
	mov	DWORD PTR [eax], 0
	mov	ecx, DWORD PTR [esi+48]
	mov	DWORD PTR [ecx], 0

; 296  : 		_Mysb::setp(0, 0);

	mov	edx, DWORD PTR [esi+20]
	mov	DWORD PTR [edx], 0
	mov	eax, DWORD PTR [esi+36]
	mov	DWORD PTR [eax], 0
	mov	ecx, DWORD PTR [esi+52]
	mov	DWORD PTR [ecx], 0

; 297  : 		_Seekhigh = 0;
; 298  : 		_Mystate &= ~_Allocated;

	mov	eax, DWORD PTR [esi+64]
	and	eax, -2					; fffffffeH
	mov	DWORD PTR [esi+60], 0
	mov	DWORD PTR [esi+64], eax
	pop	esi

; 299  : 		}

	ret	0
?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Tidy
_TEXT	ENDS
PUBLIC	??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ ; std::basic_ostream<char,std::char_traits<char> >::sentry::operator bool
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ostream
;	COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT
??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::sentry::operator bool, COMDAT
; _this$ = ecx

; 109  : 			return (_Ok);

	mov	al, BYTE PTR [ecx+4]

; 110  : 			}

	ret	0
??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QBE_NXZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::sentry::operator bool
_TEXT	ENDS
PUBLIC	?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
;	COMDAT ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get, COMDAT
; _this$ = ecx

; 248  : 		return (do_get(_First, _Last, _Iosbase, _State, _Val));

	mov	edx, DWORD PTR __Val$[esp-4]
	mov	eax, DWORD PTR [ecx]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp]
	push	edx
	mov	edx, DWORD PTR __State$[esp+4]
	push	edx
	mov	edx, DWORD PTR __Iosbase$[esp+8]
	push	edx
	mov	edx, DWORD PTR __Last$[esp+16]
	push	edx
	mov	edx, DWORD PTR __Last$[esp+16]
	push	edx
	mov	edx, DWORD PTR __First$[esp+24]
	push	edx
	mov	edx, DWORD PTR __First$[esp+24]
	push	edx
	push	esi
	call	DWORD PTR [eax+32]
	mov	eax, esi
	pop	esi

; 249  : 		}

	ret	32					; 00000020H
?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get
_TEXT	ENDS
PUBLIC	?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get
; Function compile flags: /Ogty
;	COMDAT ?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get, COMDAT
; _this$ = ecx

; 278  : 		return (do_get(_First, _Last, _Iosbase, _State, _Val));

	mov	edx, DWORD PTR __Val$[esp-4]
	mov	eax, DWORD PTR [ecx]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp]
	push	edx
	mov	edx, DWORD PTR __State$[esp+4]
	push	edx
	mov	edx, DWORD PTR __Iosbase$[esp+8]
	push	edx
	mov	edx, DWORD PTR __Last$[esp+16]
	push	edx
	mov	edx, DWORD PTR __Last$[esp+16]
	push	edx
	mov	edx, DWORD PTR __First$[esp+24]
	push	edx
	mov	edx, DWORD PTR __First$[esp+24]
	push	edx
	push	esi
	call	DWORD PTR [eax+16]
	mov	eax, esi
	pop	esi

; 279  : 		}

	ret	32					; 00000020H
?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::get
_TEXT	ENDS
PUBLIC	??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
;	COMDAT ??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z
_TEXT	SEGMENT
__Sb$ = 8						; size = 4
??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z PROC NEAR ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 868  : 		{	// construct from stream buffer _Sb

	mov	eax, ecx
	mov	ecx, DWORD PTR __Sb$[esp-4]
	test	ecx, ecx
	mov	DWORD PTR [eax], ecx
	sete	cl
	mov	BYTE PTR [eax+4], cl

; 869  : 		}

	ret	4
??0?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::istreambuf_iterator<char,std::char_traits<char> >
_TEXT	ENDS
PUBLIC	?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPADXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPADXZ
_TEXT	SEGMENT
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPADXZ PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr, COMDAT
; _this$ = ecx

; 1532 : 		return (_BUF_SIZE <= _Myres ? _Bx._Ptr : _Bx._Buf);

	cmp	DWORD PTR [ecx+24], 16			; 00000010H
	jb	SHORT $L19080
	mov	eax, DWORD PTR [ecx+4]

; 1533 : 		}

	ret	0
$L19080:

; 1532 : 		return (_BUF_SIZE <= _Myres ? _Bx._Ptr : _Bx._Buf);

	lea	eax, DWORD PTR [ecx+4]

; 1533 : 		}

	ret	0
?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPADXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Myptr
_TEXT	ENDS
PUBLIC	?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ ; std::basic_ios<char,std::char_traits<char> >::tie
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
;	COMDAT ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ
_TEXT	SEGMENT
?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::tie, COMDAT
; _this$ = ecx

; 69   : 		return (_Tiestr);

	mov	eax, DWORD PTR [ecx+44]

; 70   : 		}

	ret	0
?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ ENDP ; std::basic_ios<char,std::char_traits<char> >::tie
_TEXT	ENDS
PUBLIC	?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Lock
EXTRN	?_Lock@_Mutex@std@@QAEXXZ:NEAR			; std::_Mutex::_Lock
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
;	COMDAT ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::_Lock, COMDAT
; _this$ = ecx

; 158  : 		_Mylock._Lock();

	add	ecx, 4
	jmp	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Lock
_TEXT	ENDS
PUBLIC	?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Getstate
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\sstream
;	COMDAT ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z
_TEXT	SEGMENT
__Mode$ = 8						; size = 4
?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Getstate, COMDAT
; _this$ = ecx

; 308  : 		_Strstate _State = (_Strstate)0;
; 309  : 		if (!(_Mode & ios_base::in))

	mov	cl, BYTE PTR __Mode$[esp-4]
	xor	eax, eax
	test	cl, 1
	jne	SHORT $L17282

; 310  : 			_State |= _Noread;

	mov	eax, 4
$L17282:

; 311  : 		if (!(_Mode & ios_base::out))

	test	cl, 2
	jne	SHORT $L17283

; 312  : 			_State |= _Constant;

	or	eax, 2
$L17283:

; 313  : 		if (_Mode & ios_base::app)

	test	cl, 8
	je	SHORT $L17284

; 314  : 			_State |= _Append;

	or	eax, 8
$L17284:

; 315  : 		return (_State);
; 316  : 		}

	ret	4
?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Getstate
_TEXT	ENDS
PUBLIC	??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ostream
;	COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT
__Ostr$ = 8						; size = 4
??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base, COMDAT
; _this$ = ecx

; 68   : 			{	// lock the stream buffer, if there

	mov	eax, DWORD PTR __Ostr$[esp-4]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], eax

; 69   : 			if (_Myostr.rdbuf() != 0)

	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	je	SHORT $L19106

; 70   : 				_Myostr.rdbuf()->_Lock();

	lea	ecx, DWORD PTR [eax+4]
	call	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
$L19106:

; 71   : 			}

	mov	eax, esi
	pop	esi
	ret	4
??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ENDP ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base
_TEXT	ENDS
PUBLIC	??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
; Function compile flags: /Ogty
;	COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base, COMDAT
; _this$ = ecx

; 75   : 			if (_Myostr.rdbuf() != 0)

	mov	eax, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	je	SHORT $L19119

; 76   : 				_Myostr.rdbuf()->_Unlock();

	lea	ecx, DWORD PTR [eax+4]
	jmp	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L19119:

; 77   : 			}

	ret	0
??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
_TEXT	ENDS
PUBLIC	?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside, COMDAT
; _this$ = ecx

; 1494 : 		{	// test if _Ptr points inside string

	push	esi

; 1495 : 		if (_Ptr < _Myptr() || _Myptr() + _Mysize <= _Ptr)

	mov	esi, DWORD PTR [ecx+24]
	cmp	esi, 16					; 00000010H
	push	edi
	lea	eax, DWORD PTR [ecx+4]
	jb	SHORT $L19128
	mov	edx, DWORD PTR [eax]
	jmp	SHORT $L19129
$L19128:
	mov	edx, eax
$L19129:
	mov	edi, DWORD PTR __Ptr$[esp+4]
	cmp	edi, edx
	jb	SHORT $L17536
	cmp	esi, 16					; 00000010H
	jb	SHORT $L19136
	mov	eax, DWORD PTR [eax]
$L19136:
	mov	ecx, DWORD PTR [ecx+20]
	add	ecx, eax
	cmp	ecx, edi
	jbe	SHORT $L17536
	pop	edi

; 1497 : 		else
; 1498 : 			return (true);

	mov	al, 1
	pop	esi

; 1499 : 		}

	ret	4
$L17536:
	pop	edi

; 1496 : 			return (false);	// don't ask

	xor	al, al
	pop	esi

; 1499 : 		}

	ret	4
?_Inside@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NPBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Inside
_TEXT	ENDS
PUBLIC	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
;	COMDAT ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ
_TEXT	SEGMENT
?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::_Init, COMDAT
; _this$ = ecx

; 251  : 		_IGfirst = &_Gfirst, _IPfirst = &_Pfirst;
; 252  : 		_IGnext = &_Gnext, _IPnext = &_Pnext;

	lea	edx, DWORD PTR [ecx+24]
	mov	DWORD PTR [ecx+32], edx
	lea	edx, DWORD PTR [ecx+28]
	mov	DWORD PTR [ecx+36], edx
	lea	eax, DWORD PTR [ecx+8]
	mov	DWORD PTR [ecx+16], eax

; 253  : 		_IGcount = &_Gcount, _IPcount = &_Pcount;

	lea	edx, DWORD PTR [ecx+40]
	mov	DWORD PTR [ecx+48], edx
	lea	eax, DWORD PTR [ecx+12]
	mov	DWORD PTR [ecx+20], eax
	lea	edx, DWORD PTR [ecx+44]
	mov	DWORD PTR [ecx+52], edx

; 254  : 		setp(0, 0), setg(0, 0, 0);

	mov	DWORD PTR [eax], 0
	mov	eax, DWORD PTR [ecx+36]
	mov	DWORD PTR [eax], 0
	mov	edx, DWORD PTR [ecx+52]
	mov	DWORD PTR [edx], 0
	mov	eax, DWORD PTR [ecx+16]
	mov	DWORD PTR [eax], 0
	mov	edx, DWORD PTR [ecx+32]
	mov	DWORD PTR [edx], 0
	mov	eax, DWORD PTR [ecx+48]
	mov	DWORD PTR [eax], 0

; 255  : 		}

	ret	0
?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Init
_TEXT	ENDS
PUBLIC	?max_size@?$allocator@D@std@@QBEIXZ		; std::allocator<char>::max_size
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xmemory
;	COMDAT ?max_size@?$allocator@D@std@@QBEIXZ
_TEXT	SEGMENT
?max_size@?$allocator@D@std@@QBEIXZ PROC NEAR		; std::allocator<char>::max_size, COMDAT
; _this$ = ecx

; 157  : 		_SIZT _Count = (_SIZT)(-1) / sizeof (_Ty);
; 158  : 		return (0 < _Count ? _Count : 1);

	or	eax, -1

; 159  : 		}

	ret	0
?max_size@?$allocator@D@std@@QBEIXZ ENDP		; std::allocator<char>::max_size
_TEXT	ENDS
PUBLIC	??$_Allocate@D@std@@YAPADIPAD@Z			; std::_Allocate<char>
EXTRN	??2@YAPAXI@Z:NEAR				; operator new
; Function compile flags: /Ogty
;	COMDAT ??$_Allocate@D@std@@YAPADIPAD@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Allocate@D@std@@YAPADIPAD@Z PROC NEAR		; std::_Allocate<char>, COMDAT

; 34   : 	return ((_Ty _FARQ *)operator new(_Count * sizeof (_Ty)));

	mov	eax, DWORD PTR __Count$[esp-4]
	push	eax
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4

; 35   : 	}

	ret	0
??$_Allocate@D@std@@YAPADIPAD@Z ENDP			; std::_Allocate<char>
_TEXT	ENDS
PUBLIC	??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[], COMDAT
; _this$ = ecx

; 1084 : 		return (_Myptr()[_Off]);

	cmp	DWORD PTR [ecx+24], 16			; 00000010H
	jb	SHORT $L19163
	mov	ecx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR __Off$[esp-4]
	add	eax, ecx

; 1085 : 		}

	ret	4

; 1084 : 		return (_Myptr()[_Off]);

$L19163:
	mov	edx, DWORD PTR __Off$[esp-4]
	lea	eax, DWORD PTR [ecx+edx+4]

; 1085 : 		}

	ret	4
??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator[]
_TEXT	ENDS
PUBLIC	?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ ; std::basic_ios<char,std::char_traits<char> >::fill
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
;	COMDAT ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ
_TEXT	SEGMENT
?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::fill, COMDAT
; _this$ = ecx

; 102  : 		return (_Fillch);

	mov	al, BYTE PTR [ecx+48]

; 103  : 		}

	ret	0
?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ ENDP ; std::basic_ios<char,std::char_traits<char> >::fill
_TEXT	ENDS
PUBLIC	?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Init
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
;	COMDAT ?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT
__Lobj$ = 8						; size = 4
?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Init, COMDAT
; _this$ = ecx

; 201  : 		{	// initialize from _Locinfo object

	push	esi
	mov	esi, ecx

; 202  : 		_Cvt = _Lobj._Getcvt();

	call	__Getcvt
	mov	DWORD PTR [esi+8], eax
	mov	DWORD PTR [esi+12], edx
	pop	esi

; 203  : 		}

	ret	4
?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IAEXABV_Locinfo@2@@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Init
_TEXT	ENDS
PUBLIC	??_C@_01GFHCPBMG@C?$AA@				; `string'
PUBLIC	??0?$ctype@D@std@@QAE@PBF_NI@Z			; std::ctype<char>::ctype<char>
PUBLIC	?do_tolower@?$ctype@D@std@@MBEDD@Z		; std::ctype<char>::do_tolower
PUBLIC	?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z	; std::ctype<char>::do_tolower
PUBLIC	?do_toupper@?$ctype@D@std@@MBEDD@Z		; std::ctype<char>::do_toupper
PUBLIC	?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z	; std::ctype<char>::do_toupper
PUBLIC	?do_widen@?$ctype@D@std@@MBEDD@Z		; std::ctype<char>::do_widen
PUBLIC	?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z	; std::ctype<char>::do_widen
PUBLIC	?do_narrow@?$ctype@D@std@@MBEDDD@Z		; std::ctype<char>::do_narrow
PUBLIC	?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z	; std::ctype<char>::do_narrow
PUBLIC	??_7?$ctype@D@std@@6B@				; std::ctype<char>::`vftable'
PUBLIC	??_G?$ctype@D@std@@MAEPAXI@Z			; std::ctype<char>::`scalar deleting destructor'
EXTRN	__except_list:DWORD
EXTRN	___CxxFrameHandler:NEAR
EXTRN	??_E?$ctype@D@std@@MAEPAXI@Z:NEAR		; std::ctype<char>::`vector deleting destructor'
EXTRN	??0_Locinfo@std@@QAE@PBD@Z:NEAR			; std::_Locinfo::_Locinfo
EXTRN	??1_Locinfo@std@@QAE@XZ:NEAR			; std::_Locinfo::~_Locinfo
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	SEGMENT
$T19224	DD	0ffffffffH
	DD	FLAT:$L19181
$T19218	DD	019930520H
	DD	01H
	DD	FLAT:$T19224
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_C@_01GFHCPBMG@C?$AA@
CONST	SEGMENT
??_C@_01GFHCPBMG@C?$AA@ DB 'C', 00H			; `string'
CONST	ENDS
;	COMDAT ??_7?$ctype@D@std@@6B@
CONST	SEGMENT
??_7?$ctype@D@std@@6B@ DD FLAT:??_E?$ctype@D@std@@MAEPAXI@Z ; std::ctype<char>::`vftable'
	DD	FLAT:?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z
	DD	FLAT:?do_tolower@?$ctype@D@std@@MBEDD@Z
	DD	FLAT:?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z
	DD	FLAT:?do_toupper@?$ctype@D@std@@MBEDD@Z
	DD	FLAT:?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z
	DD	FLAT:?do_widen@?$ctype@D@std@@MBEDD@Z
	DD	FLAT:?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z
	DD	FLAT:?do_narrow@?$ctype@D@std@@MBEDDD@Z
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ctype@D@std@@QAE@PBF_NI@Z
_TEXT	SEGMENT
_this$ = -148						; size = 4
$T19205 = -144						; size = 16
$T19180 = -128						; size = 116
__$EHRec$ = -12						; size = 12
__Table$ = 8						; size = 4
__Deletetable$ = 12					; size = 1
__Refs$ = 16						; size = 4
??0?$ctype@D@std@@QAE@PBF_NI@Z PROC NEAR		; std::ctype<char>::ctype<char>, COMDAT
; _this$ = ecx

; 1220 : 		{	// construct with specified table and delete flag for table

	push	-1
	push	__ehhandler$??0?$ctype@D@std@@QAE@PBF_NI@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 136				; 00000088H
	mov	eax, DWORD PTR __Refs$[esp+144]
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+156], esi
	mov	DWORD PTR [esi+4], eax

; 1221 : 		_Init(_Locinfo());

	push	OFFSET FLAT:??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR $T19180[esp+160]
	mov	DWORD PTR __$EHRec$[esp+168], 0
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$ctype@D@std@@6B@
	call	??0_Locinfo@std@@QAE@PBD@Z		; std::_Locinfo::_Locinfo
	lea	ecx, DWORD PTR $T19205[esp+156]
	push	ecx
	call	__Getctype
	mov	ecx, DWORD PTR [eax]
	lea	edx, DWORD PTR [esi+8]
	mov	DWORD PTR [edx], ecx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [edx+4], ecx
	mov	ecx, DWORD PTR [eax+8]
	mov	DWORD PTR [edx+8], ecx
	mov	eax, DWORD PTR [eax+12]
	add	esp, 4
	lea	ecx, DWORD PTR $T19180[esp+156]
	mov	DWORD PTR [edx+12], eax
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo

; 1222 : 		if (_Table != 0)

	mov	edi, DWORD PTR __Table$[esp+152]
	test	edi, edi
	je	SHORT $L19219

; 1223 : 			{	// replace existing char to mask table
; 1224 : 			_Tidy();

	mov	eax, DWORD PTR [esi+20]
	test	eax, eax
	jle	SHORT $L19222
	mov	ecx, DWORD PTR [esi+16]
	push	ecx
	call	_free
	jmp	SHORT $L19223
$L19222:
	jge	SHORT $L19212
	mov	edx, DWORD PTR [esi+16]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
$L19223:
	add	esp, 4
$L19212:

; 1225 : 			_Ctype._Table = _Table;
; 1226 : 			_Ctype._Delfl = _Deletetable ? -1 : 0;

	mov	al, BYTE PTR __Deletetable$[esp+152]
	neg	al
	mov	DWORD PTR [esi+16], edi
	sbb	eax, eax
	mov	DWORD PTR [esi+20], eax
$L19219:

; 1227 : 			}
; 1228 : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+156]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 148				; 00000094H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L19181:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1ctype_base@std@@UAE@XZ		; std::ctype_base::~ctype_base
__ehhandler$??0?$ctype@D@std@@QAE@PBF_NI@Z:
	mov	eax, OFFSET FLAT:$T19218
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$ctype@D@std@@QAE@PBF_NI@Z ENDP			; std::ctype<char>::ctype<char>
EXTRN	__Tolower:NEAR
; Function compile flags: /Ogty
;	COMDAT ?do_tolower@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
?do_tolower@?$ctype@D@std@@MBEDD@Z PROC NEAR		; std::ctype<char>::do_tolower, COMDAT
; _this$ = ecx

; 1267 : 		return ((_Elem)_Tolower((unsigned char)_Ch, &_Ctype));

	movzx	eax, BYTE PTR __Ch$[esp-4]
	add	ecx, 8
	push	ecx
	push	eax
	call	__Tolower
	add	esp, 8

; 1268 : 		}

	ret	4
?do_tolower@?$ctype@D@std@@MBEDD@Z ENDP			; std::ctype<char>::do_tolower
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z PROC NEAR	; std::ctype<char>::do_tolower, COMDAT
; _this$ = ecx

; 1272 : 		{	// convert [_First, _Last) in place to lower case

	push	ebx

; 1273 : 		for (; _First != _Last; ++_First)

	mov	ebx, DWORD PTR __Last$[esp]
	push	esi
	mov	esi, DWORD PTR __First$[esp+4]
	cmp	esi, ebx
	je	SHORT $L19236
	push	edi
	lea	edi, DWORD PTR [ecx+8]
$L11314:

; 1274 : 			*_First = (_Elem)_Tolower((unsigned char)*_First, &_Ctype);

	movzx	eax, BYTE PTR [esi]
	push	edi
	push	eax
	call	__Tolower
	add	esp, 8
	mov	BYTE PTR [esi], al
	inc	esi
	cmp	esi, ebx
	jne	SHORT $L11314
	pop	edi
$L19236:

; 1275 : 		return ((const _Elem *)_First);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1276 : 		}

	ret	8
?do_tolower@?$ctype@D@std@@MBEPBDPADPBD@Z ENDP		; std::ctype<char>::do_tolower
_TEXT	ENDS
EXTRN	__Toupper:NEAR
; Function compile flags: /Ogty
;	COMDAT ?do_toupper@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
?do_toupper@?$ctype@D@std@@MBEDD@Z PROC NEAR		; std::ctype<char>::do_toupper, COMDAT
; _this$ = ecx

; 1280 : 		return ((_Elem)_Toupper((unsigned char)_Ch, &_Ctype));

	movzx	eax, BYTE PTR __Ch$[esp-4]
	add	ecx, 8
	push	ecx
	push	eax
	call	__Toupper
	add	esp, 8

; 1281 : 		}

	ret	4
?do_toupper@?$ctype@D@std@@MBEDD@Z ENDP			; std::ctype<char>::do_toupper
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z PROC NEAR	; std::ctype<char>::do_toupper, COMDAT
; _this$ = ecx

; 1285 : 		{	// convert [_First, _Last) in place to upper case

	push	ebx

; 1286 : 		for (; _First != _Last; ++_First)

	mov	ebx, DWORD PTR __Last$[esp]
	push	esi
	mov	esi, DWORD PTR __First$[esp+4]
	cmp	esi, ebx
	je	SHORT $L19245
	push	edi
	lea	edi, DWORD PTR [ecx+8]
$L11326:

; 1287 : 			*_First = (_Elem)_Toupper((unsigned char)*_First, &_Ctype);

	movzx	eax, BYTE PTR [esi]
	push	edi
	push	eax
	call	__Toupper
	add	esp, 8
	mov	BYTE PTR [esi], al
	inc	esi
	cmp	esi, ebx
	jne	SHORT $L11326
	pop	edi
$L19245:

; 1288 : 		return ((const _Elem *)_First);

	mov	eax, esi
	pop	esi
	pop	ebx

; 1289 : 		}

	ret	8
?do_toupper@?$ctype@D@std@@MBEPBDPADPBD@Z ENDP		; std::ctype<char>::do_toupper
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_widen@?$ctype@D@std@@MBEDD@Z
_TEXT	SEGMENT
__Byte$ = 8						; size = 1
?do_widen@?$ctype@D@std@@MBEDD@Z PROC NEAR		; std::ctype<char>::do_widen, COMDAT
; _this$ = ecx

; 1293 : 		return (_Byte);

	mov	al, BYTE PTR __Byte$[esp-4]

; 1294 : 		}

	ret	4
?do_widen@?$ctype@D@std@@MBEDD@Z ENDP			; std::ctype<char>::do_widen
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z PROC NEAR	; std::ctype<char>::do_widen, COMDAT
; _this$ = ecx

; 1299 : 		::memcpy(_Dest, _First, _Last - _First);

	mov	eax, DWORD PTR __Last$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First$[esp]
	mov	ecx, eax
	sub	ecx, esi
	mov	edx, ecx
	push	edi
	mov	edi, DWORD PTR __Dest$[esp+4]
	shr	ecx, 2
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb
	pop	edi
	pop	esi

; 1300 : 		return (_Last);
; 1301 : 		}

	ret	12					; 0000000cH
?do_widen@?$ctype@D@std@@MBEPBDPBD0PAD@Z ENDP		; std::ctype<char>::do_widen
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_narrow@?$ctype@D@std@@MBEDDD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
___formal$ = 12						; size = 1
?do_narrow@?$ctype@D@std@@MBEDDD@Z PROC NEAR		; std::ctype<char>::do_narrow, COMDAT
; _this$ = ecx

; 1305 : 		return (_Ch);

	mov	al, BYTE PTR __Ch$[esp-4]

; 1306 : 		}

	ret	8
?do_narrow@?$ctype@D@std@@MBEDDD@Z ENDP			; std::ctype<char>::do_narrow
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
___formal$ = 16						; size = 1
__Dest$ = 20						; size = 4
?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z PROC NEAR	; std::ctype<char>::do_narrow, COMDAT
; _this$ = ecx

; 1311 : 		::memcpy(_Dest, _First, _Last - _First);

	mov	eax, DWORD PTR __Last$[esp-4]
	push	esi
	mov	esi, DWORD PTR __First$[esp]
	mov	ecx, eax
	sub	ecx, esi
	mov	edx, ecx
	push	edi
	mov	edi, DWORD PTR __Dest$[esp+4]
	shr	ecx, 2
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb
	pop	edi
	pop	esi

; 1312 : 		return (_Last);
; 1313 : 		}

	ret	16					; 00000010H
?do_narrow@?$ctype@D@std@@MBEPBDPBD0DPAD@Z ENDP		; std::ctype<char>::do_narrow
_TEXT	ENDS
PUBLIC	?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z ; std::ctype<char>::_Getcat
;	COMDAT xdata$x
xdata$x	SEGMENT
$T19271	DD	0ffffffffH
	DD	FLAT:$L19265
$T19267	DD	019930520H
	DD	01H
	DD	FLAT:$T19271
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
xdata$x	ENDS
;	COMDAT ?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
$T19262 = 8						; size = 4
__Ppf$ = 8						; size = 4
?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z PROC NEAR ; std::ctype<char>::_Getcat, COMDAT

; 1237 : 		{	// construct from specified locale

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	esi

; 1238 : 		if (_Ppf != 0 && *_Ppf == 0)

	mov	esi, DWORD PTR __Ppf$[esp+12]
	test	esi, esi
	je	SHORT $L19269
	cmp	DWORD PTR [esi], 0
	jne	SHORT $L19269

; 1239 : 			*_Ppf = _NEW_CRT ctype<_Elem>;

	push	24					; 00000018H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4
	mov	DWORD PTR $T19262[esp+12], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $L19263
	push	0
	push	0
	push	0
	mov	ecx, eax
	call	??0?$ctype@D@std@@QAE@PBF_NI@Z		; std::ctype<char>::ctype<char>
	jmp	SHORT $L19264
$L19263:
	xor	eax, eax
$L19264:
	mov	DWORD PTR [esi], eax
$L19269:

; 1240 : 		return (_X_CTYPE);
; 1241 : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+16]
	mov	eax, 2
	mov	DWORD PTR fs:__except_list, ecx
	pop	esi
	add	esp, 12					; 0000000cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L19265:
	mov	eax, DWORD PTR $T19262[ebp-4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET FLAT:$T19267
	jmp	___CxxFrameHandler
text$x	ENDS
?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z ENDP	; std::ctype<char>::_Getcat
PUBLIC	??1?$ctype@D@std@@MAE@XZ			; std::ctype<char>::~ctype<char>
; Function compile flags: /Ogty
;	COMDAT ??_G?$ctype@D@std@@MAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ctype@D@std@@MAEPAXI@Z PROC NEAR			; std::ctype<char>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ctype@D@std@@MAE@XZ		; std::ctype<char>::~ctype<char>
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L19277
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L19277:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ctype@D@std@@MAEPAXI@Z ENDP			; std::ctype<char>::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??1?$ctype@D@std@@MAE@XZ
_TEXT	SEGMENT
??1?$ctype@D@std@@MAE@XZ PROC NEAR			; std::ctype<char>::~ctype<char>, COMDAT
; _this$ = ecx

; 1247 : 		{	// destroy the object

	push	esi
	mov	esi, ecx

; 1248 : 		_Tidy();

	mov	eax, DWORD PTR [esi+20]
	test	eax, eax
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$ctype@D@std@@6B@
	jle	SHORT $L19299
	mov	eax, DWORD PTR [esi+16]
	push	eax
	call	_free
	add	esp, 4

; 1249 : 		}

	mov	DWORD PTR [esi], OFFSET FLAT:??_7facet@locale@std@@6B@
	pop	esi
	ret	0
$L19299:

; 1248 : 		_Tidy();

	jge	SHORT $L19298
	mov	ecx, DWORD PTR [esi+16]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 4
$L19298:

; 1249 : 		}

	mov	DWORD PTR [esi], OFFSET FLAT:??_7facet@locale@std@@6B@
	pop	esi
	ret	0
??1?$ctype@D@std@@MAE@XZ ENDP				; std::ctype<char>::~ctype<char>
_TEXT	ENDS
PUBLIC	?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ; std::basic_ios<char,std::char_traits<char> >::setstate
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
;	COMDAT ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__Except$ = 12						; size = 1
?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::setstate, COMDAT
; _this$ = ecx

; 50   : 		if (_State != goodbit)

	mov	edx, DWORD PTR __State$[esp-4]
	test	edx, edx
	je	SHORT $L19311

; 51   : 			clear((iostate)((int)rdstate() | (int)_State), _Except);

	mov	eax, DWORD PTR [ecx+8]
	or	eax, edx
	mov	edx, DWORD PTR [ecx+40]
	test	edx, edx
	jne	SHORT $L19314
	or	eax, 4
$L19314:
	mov	DWORD PTR __State$[esp-4], eax
	jmp	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L19311:

; 52   : 		}

	ret	8
?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::setstate
_TEXT	ENDS
PUBLIC	??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
;	COMDAT ??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base, COMDAT
; _this$ = ecx

; 59   : 			if (_Myistr.rdbuf() != 0)

	mov	eax, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	je	SHORT $L19328

; 60   : 				_Myistr.rdbuf()->_Unlock();

	lea	ecx, DWORD PTR [eax+4]
	jmp	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L19328:

; 61   : 			}

	ret	0
??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
_TEXT	ENDS
PUBLIC	??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
PUBLIC	?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ; std::basic_streambuf<char,std::char_traits<char> >::overflow
PUBLIC	?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ; std::basic_streambuf<char,std::char_traits<char> >::pbackfail
PUBLIC	?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::showmanyc
PUBLIC	?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::underflow
PUBLIC	?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::uflow
PUBLIC	?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z ; std::basic_streambuf<char,std::char_traits<char> >::xsgetn
PUBLIC	?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z ; std::basic_streambuf<char,std::char_traits<char> >::xsputn
PUBLIC	?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z ; std::basic_streambuf<char,std::char_traits<char> >::seekoff
PUBLIC	?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z ; std::basic_streambuf<char,std::char_traits<char> >::seekpos
PUBLIC	?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z ; std::basic_streambuf<char,std::char_traits<char> >::setbuf
PUBLIC	?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::sync
PUBLIC	?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ; std::basic_streambuf<char,std::char_traits<char> >::imbue
PUBLIC	??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_streambuf<char,std::char_traits<char> >::`vftable'
PUBLIC	??_G?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_streambuf<char,std::char_traits<char> >::`scalar deleting destructor'
EXTRN	??1_Mutex@std@@QAE@XZ:NEAR			; std::_Mutex::~_Mutex
EXTRN	??_E?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:NEAR ; std::basic_streambuf<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
CONST	SEGMENT
??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_E?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_streambuf<char,std::char_traits<char> >::`vftable'
	DD	FLAT:?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	FLAT:?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	FLAT:?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z
	DD	FLAT:?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z
	DD	FLAT:?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
	DD	FLAT:?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
	DD	FLAT:?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z
	DD	FLAT:?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
CONST	ENDS
;	COMDAT ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
__Lock$19376 = -4					; size = 4
??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 38   : 		{	// destroy the object

	push	ecx
	push	ebx
	mov	ebx, ecx
	push	edi

; 39   : 		_DELETE_CRT(_Plocale);

	mov	edi, DWORD PTR [ebx+56]
	test	edi, edi
	mov	DWORD PTR [ebx], OFFSET FLAT:??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
	je	SHORT $L19335
	push	esi
	mov	esi, DWORD PTR [edi]
	test	esi, esi
	je	SHORT $L19373
	push	0
	lea	ecx, DWORD PTR __Lock$19376[esp+20]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L19377
	cmp	eax, -1
	jae	SHORT $L19377
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L19377:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$19376[esp+16]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L19373
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L19373:
	push	edi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
	pop	esi
$L19335:

; 40   : 		}

	lea	ecx, DWORD PTR [ebx+4]
	call	??1_Mutex@std@@QAE@XZ			; std::_Mutex::~_Mutex
	pop	edi
	pop	ebx
	pop	ecx
	ret	0
??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::overflow, COMDAT
; _this$ = ecx

; 267  : 		return (_Traits::eof());

	or	eax, -1

; 268  : 		}

	ret	4
?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::overflow
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::pbackfail, COMDAT
; _this$ = ecx

; 272  : 		return (_Traits::eof());

	or	eax, -1

; 273  : 		}

	ret	4
?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::pbackfail
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::showmanyc, COMDAT
; _this$ = ecx

; 277  : 		return (0);

	xor	eax, eax

; 278  : 		}

	ret	0
?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::showmanyc
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::underflow, COMDAT
; _this$ = ecx

; 282  : 		return (_Traits::eof());

	or	eax, -1

; 283  : 		}

	ret	0
?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::underflow
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::setbuf, COMDAT
; _this$ = ecx

; 362  : 		{	// offer buffer to external agent (do nothing)

	mov	eax, ecx

; 363  : 		return (this);
; 364  : 		}

	ret	8
?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::setbuf
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::sync, COMDAT
; _this$ = ecx

; 368  : 		return (0);

	xor	eax, eax

; 369  : 		}

	ret	0
?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::sync
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::imbue, COMDAT
; _this$ = ecx

; 373  : 		}

	ret	4
?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::imbue
_TEXT	ENDS
PUBLIC	?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::sgetc
; Function compile flags: /Ogty
;	COMDAT ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT
?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::sgetc, COMDAT
; _this$ = ecx

; 107  : 		return (gptr() != 0 && gptr() < egptr()
; 108  : 			? _Traits::to_int_type(*gptr()) : underflow());

	mov	eax, DWORD PTR [ecx+32]
	mov	edx, DWORD PTR [eax]
	test	edx, edx
	je	SHORT $L19413
	mov	eax, DWORD PTR [eax]
	push	esi
	mov	esi, DWORD PTR [ecx+48]
	mov	esi, DWORD PTR [esi]
	add	esi, eax
	cmp	eax, esi
	pop	esi
	jae	SHORT $L19413
	movzx	eax, BYTE PTR [edx]

; 109  : 		}

	ret	0
$L19413:

; 107  : 		return (gptr() != 0 && gptr() < egptr()
; 108  : 			? _Traits::to_int_type(*gptr()) : underflow());

	mov	edx, DWORD PTR [ecx]
	jmp	DWORD PTR [edx+16]
?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::sgetc
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::uflow, COMDAT
; _this$ = ecx

; 286  : 		{	// get a character from stream, point past it

	push	esi
	mov	esi, ecx

; 287  : 		return (_Traits::eq_int_type(_Traits::eof(), underflow())
; 288  : 			? _Traits::eof() : _Traits::to_int_type(*_Gninc()));

	mov	eax, DWORD PTR [esi]
	call	DWORD PTR [eax+16]
	cmp	eax, -1
	jne	SHORT $L19438
	or	eax, eax
	pop	esi

; 289  : 		}

	ret	0
$L19438:

; 287  : 		return (_Traits::eq_int_type(_Traits::eof(), underflow())
; 288  : 			? _Traits::eof() : _Traits::to_int_type(*_Gninc()));

	mov	eax, DWORD PTR [esi+48]
	dec	DWORD PTR [eax]
	mov	esi, DWORD PTR [esi+32]
	mov	eax, DWORD PTR [esi]
	lea	ecx, DWORD PTR [eax+1]
	mov	DWORD PTR [esi], ecx
	movzx	eax, BYTE PTR [eax]
	pop	esi

; 289  : 		}

	ret	0
?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::uflow
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z
_TEXT	SEGMENT
__Copied$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::xsgetn, COMDAT
; _this$ = ecx

; 293  : 		{	// get _Count characters from stream

	push	ecx
	push	ebx
	push	edi

; 294  : 		int_type _Meta;
; 295  : 		streamsize _Size, _Copied;
; 296  : 
; 297  : 		for (_Copied = 0; 0 < _Count; )

	mov	edi, DWORD PTR __Count$[esp+8]
	xor	eax, eax
	test	edi, edi
	mov	ebx, ecx
	mov	DWORD PTR __Copied$[esp+12], eax
	jle	$L19491
	push	ebp
	mov	ebp, DWORD PTR __Ptr$[esp+12]
	push	esi
	npad	3
$L16343:

; 298  : 			if (gptr() != 0 && 0 < (_Size = (streamsize)(egptr() - gptr())))

	mov	eax, DWORD PTR [ebx+32]
	mov	esi, DWORD PTR [eax]
	test	esi, esi
	je	SHORT $L16346
	mov	ecx, DWORD PTR [ebx+48]
	mov	eax, DWORD PTR [ecx]
	test	eax, eax
	jle	SHORT $L16346

; 299  : 				{	// copy from read buffer
; 300  : 				if (_Count < _Size)

	cmp	edi, eax
	jge	SHORT $L16347

; 301  : 					_Size = _Count;

	mov	eax, edi
$L16347:

; 302  : 				_Traits::copy(_Ptr, gptr(), _Size);

	mov	ecx, eax
	mov	edx, ecx
	shr	ecx, 2
	mov	edi, ebp
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb

; 303  : 				_Ptr += _Size;
; 304  : 				_Copied += _Size;

	mov	ecx, DWORD PTR __Copied$[esp+20]

; 305  : 				_Count -= _Size;

	mov	edi, DWORD PTR __Count$[esp+16]
	add	ecx, eax
	mov	DWORD PTR __Copied$[esp+20], ecx

; 306  : 				gbump((int)_Size);

	mov	ecx, DWORD PTR [ebx+48]
	sub	DWORD PTR [ecx], eax
	mov	ecx, DWORD PTR [ebx+32]
	mov	edx, DWORD PTR [ecx]
	sub	edi, eax
	add	ebp, eax
	add	edx, eax
	mov	DWORD PTR __Count$[esp+16], edi
	mov	DWORD PTR [ecx], edx

; 307  : 				}
; 308  : 			else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow()))

	jmp	SHORT $L16352
$L16346:
	mov	eax, DWORD PTR [ebx]
	mov	ecx, ebx
	call	DWORD PTR [eax+20]
	cmp	eax, -1
	je	SHORT $L19492

; 309  : 				break;	// end of file, quit
; 310  : 			else
; 311  : 				{	// get a single character
; 312  : 				*_Ptr++ = _Traits::to_char_type(_Meta);
; 313  : 				++_Copied;

	mov	ecx, DWORD PTR __Copied$[esp+20]
	mov	BYTE PTR [ebp], al
	inc	ebp
	inc	ecx

; 314  : 				--_Count;

	dec	edi
	mov	DWORD PTR __Copied$[esp+20], ecx
	mov	DWORD PTR __Count$[esp+16], edi
$L16352:

; 294  : 		int_type _Meta;
; 295  : 		streamsize _Size, _Copied;
; 296  : 
; 297  : 		for (_Copied = 0; 0 < _Count; )

	test	edi, edi
	jg	SHORT $L16343
$L19492:

; 315  : 				}
; 316  : 
; 317  : 		return (_Copied);

	mov	eax, DWORD PTR __Copied$[esp+20]
	pop	esi
	pop	ebp
$L19491:
	pop	edi
	pop	ebx

; 318  : 		}

	pop	ecx
	ret	8
?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::xsgetn
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z
_TEXT	SEGMENT
__Copied$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::xsputn, COMDAT
; _this$ = ecx

; 322  : 		{	// put _Count characters to stream

	push	ecx
	push	ebx
	push	esi

; 323  : 		streamsize _Size, _Copied;
; 324  : 
; 325  : 		for (_Copied = 0; 0 < _Count; )

	mov	esi, DWORD PTR __Count$[esp+8]
	xor	eax, eax
	test	esi, esi
	mov	ebx, ecx
	mov	DWORD PTR __Copied$[esp+12], eax
	jle	$L19533
	push	ebp
	mov	ebp, DWORD PTR __Ptr$[esp+12]
	push	edi
	npad	3
$L16358:

; 326  : 			if (pptr() != 0 && 0 < (_Size = (streamsize)(epptr() - pptr())))

	mov	eax, DWORD PTR [ebx+36]
	mov	edi, DWORD PTR [eax]
	test	edi, edi
	je	SHORT $L16361
	mov	ecx, DWORD PTR [ebx+52]
	mov	eax, DWORD PTR [ecx]
	test	eax, eax
	jle	SHORT $L16361

; 327  : 				{	// copy to write buffer
; 328  : 				if (_Count < _Size)

	cmp	esi, eax
	jge	SHORT $L16362

; 329  : 					_Size = _Count;

	mov	eax, esi
$L16362:

; 330  : 				_Traits::copy(pptr(), _Ptr, _Size);

	mov	ecx, eax
	mov	edx, ecx
	shr	ecx, 2
	mov	esi, ebp
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb

; 331  : 				_Ptr += _Size;
; 332  : 				_Copied += _Size;

	mov	ecx, DWORD PTR __Copied$[esp+20]

; 333  : 				_Count -= _Size;

	mov	edi, DWORD PTR __Count$[esp+16]
	add	ecx, eax
	mov	DWORD PTR __Copied$[esp+20], ecx

; 334  : 				pbump((int)_Size);

	mov	ecx, DWORD PTR [ebx+52]
	sub	DWORD PTR [ecx], eax
	mov	ecx, DWORD PTR [ebx+36]
	mov	edx, DWORD PTR [ecx]
	sub	edi, eax
	add	ebp, eax
	add	edx, eax
	mov	DWORD PTR __Count$[esp+16], edi
	mov	DWORD PTR [ecx], edx

; 335  : 				}
; 336  : 			else if (_Traits::eq_int_type(_Traits::eof(),

	mov	esi, edi
	jmp	SHORT $L16368
$L16361:

; 337  : 				overflow(_Traits::to_int_type(*_Ptr))))

	movzx	ecx, BYTE PTR [ebp]
	mov	eax, DWORD PTR [ebx]
	push	ecx
	mov	ecx, ebx
	call	DWORD PTR [eax+4]
	cmp	eax, -1
	je	SHORT $L19534

; 338  : 				break;	// single character put failed, quit
; 339  : 			else
; 340  : 				{	// count character successfully put
; 341  : 				++_Ptr;
; 342  : 				++_Copied;

	mov	ecx, DWORD PTR __Copied$[esp+20]
	inc	ebp
	inc	ecx

; 343  : 				--_Count;

	dec	esi
	mov	DWORD PTR __Copied$[esp+20], ecx
	mov	DWORD PTR __Count$[esp+16], esi
$L16368:

; 323  : 		streamsize _Size, _Copied;
; 324  : 
; 325  : 		for (_Copied = 0; 0 < _Count; )

	test	esi, esi
	jg	SHORT $L16358
$L19534:

; 344  : 				}
; 345  : 
; 346  : 		return (_Copied);

	mov	eax, DWORD PTR __Copied$[esp+20]
	pop	edi
	pop	ebp
$L19533:
	pop	esi
	pop	ebx

; 347  : 		}

	pop	ecx
	ret	8
?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::xsputn
_TEXT	ENDS
PUBLIC	?_Stz@?$fpos@H@std@@0HA				; std::fpos<int>::_Stz
EXTRN	?_Fpz@std@@3_JA:QWORD				; std::_Fpz
EXTRN	?_BADOFF@std@@3JB:DWORD				; std::_BADOFF
;	COMDAT ?_Stz@?$fpos@H@std@@0HA
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
_BSS	SEGMENT
?_Stz@?$fpos@H@std@@0HA DD 01H DUP (?)			; std::fpos<int>::_Stz
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
_BSS	ENDS
;	COMDAT ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
___formal$ = 20						; size = 4
?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::seekoff, COMDAT
; _this$ = ecx

; 352  : 		return (streampos(_BADOFF));

	mov	ecx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	mov	eax, DWORD PTR ___$ReturnUdt$[esp-4]
	mov	DWORD PTR [eax], ecx
	mov	edx, DWORD PTR ?_Fpz@std@@3_JA
	mov	DWORD PTR [eax+8], edx
	mov	ecx, DWORD PTR ?_Fpz@std@@3_JA+4
	mov	DWORD PTR [eax+12], ecx
	mov	edx, DWORD PTR ?_Stz@?$fpos@H@std@@0HA	; std::fpos<int>::_Stz
	mov	DWORD PTR [eax+16], edx

; 353  : 		}

	ret	16					; 00000010H
?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::seekoff
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
___formal$ = 12						; size = 24
___formal$ = 36						; size = 4
?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::seekpos, COMDAT
; _this$ = ecx

; 358  : 		return (streampos(_BADOFF));

	mov	ecx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	mov	eax, DWORD PTR ___$ReturnUdt$[esp-4]
	mov	DWORD PTR [eax], ecx
	mov	edx, DWORD PTR ?_Fpz@std@@3_JA
	mov	DWORD PTR [eax+8], edx
	mov	ecx, DWORD PTR ?_Fpz@std@@3_JA+4
	mov	DWORD PTR [eax+12], ecx
	mov	edx, DWORD PTR ?_Stz@?$fpos@H@std@@0HA	; std::fpos<int>::_Stz
	mov	DWORD PTR [eax+16], edx

; 359  : 		}

	ret	32					; 00000020H
?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::seekpos
_TEXT	ENDS
PUBLIC	??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::~basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::overflow
PUBLIC	?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::pbackfail
PUBLIC	?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::underflow
PUBLIC	?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::seekoff
PUBLIC	?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::seekpos
PUBLIC	??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::`vftable'
PUBLIC	??_G?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor'
EXTRN	??_E?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z:NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::`vector deleting destructor'
;	COMDAT ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@
; File c:\program files\microsoft visual studio .net 2003\vc7\include\sstream
CONST	SEGMENT
??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ DD FLAT:??_E?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::`vftable'
	DD	FLAT:?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z
	DD	FLAT:?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z
	DD	FLAT:?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ
	DD	FLAT:?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z
	DD	FLAT:?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z
	DD	FLAT:?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z
	DD	FLAT:?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z
	DD	FLAT:?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z
	DD	FLAT:?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ
_TEXT	SEGMENT
??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::~basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 38   : 		{	// destroy the object

	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@

; 39   : 		_Tidy();

	call	?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Tidy

; 40   : 		}

	mov	ecx, esi
	pop	esi
	jmp	??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::~basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z
_TEXT	SEGMENT
__Meta$ = 8						; size = 4
?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::pbackfail, COMDAT
; _this$ = ecx

; 149  : 		if (_Mysb::gptr() == 0
; 150  : 			|| _Mysb::gptr() <= _Mysb::eback()
; 151  : 			|| !_Traits::eq_int_type(_Traits::eof(), _Meta)
; 152  : 			&& !_Traits::eq(_Traits::to_char_type(_Meta), _Mysb::gptr()[-1])
; 153  : 			&& _Mystate & _Constant)

	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	push	esi
	je	SHORT $L16538
	mov	edx, DWORD PTR [ecx+16]
	cmp	eax, DWORD PTR [edx]
	jbe	SHORT $L16538
	mov	edx, DWORD PTR __Meta$[esp]
	cmp	edx, -1
	je	SHORT $L16537
	cmp	dl, BYTE PTR [eax-1]
	je	SHORT $L16537
	test	BYTE PTR [ecx+64], 2
	jne	SHORT $L16538
$L16537:

; 155  : 		else
; 156  : 			{	// back up one position and store put-back character
; 157  : 			_Mysb::gbump(-1);

	mov	eax, DWORD PTR [ecx+48]
	inc	DWORD PTR [eax]
	mov	eax, DWORD PTR [ecx+32]
	mov	esi, DWORD PTR [eax]
	dec	esi

; 158  : 			if (!_Traits::eq_int_type(_Traits::eof(), _Meta))

	cmp	edx, -1
	mov	DWORD PTR [eax], esi
	je	SHORT $L19622

; 159  : 				*_Mysb::gptr() = _Traits::to_char_type(_Meta);

	mov	eax, DWORD PTR [ecx+32]
	mov	ecx, DWORD PTR [eax]
	pop	esi
	mov	BYTE PTR [ecx], dl

; 160  : 			return (_Traits::not_eof(_Meta));

	mov	eax, edx

; 161  : 			}
; 162  : 		}

	ret	4

; 160  : 			return (_Traits::not_eof(_Meta));

$L19622:
	pop	esi
	xor	eax, eax

; 161  : 			}
; 162  : 		}

	ret	4
$L16538:
	pop	esi

; 154  : 			return (_Traits::eof());	// can't put back, fail

	or	eax, -1

; 161  : 			}
; 162  : 		}

	ret	4
?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::pbackfail
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ
_TEXT	SEGMENT
?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::underflow, COMDAT
; _this$ = ecx

; 166  : 		if (_Mysb::gptr() == 0)

	mov	edx, DWORD PTR [ecx+32]
	push	esi
	mov	esi, DWORD PTR [edx]
	test	esi, esi
	jne	SHORT $L16544

; 167  : 			return (_Traits::eof());	// no character buffer, fail

	or	eax, -1
	pop	esi

; 179  : 			}
; 180  : 		}

	ret	0
$L16544:

; 168  : 		else if (_Mysb::gptr() < _Mysb::egptr())

	mov	eax, DWORD PTR [edx]
	push	ebx
	push	edi
	mov	edi, DWORD PTR [ecx+48]
	mov	ebx, DWORD PTR [edi]
	add	ebx, eax
	cmp	eax, ebx
	jae	SHORT $L16546

; 169  : 			return (_Traits::to_int_type(*_Mysb::gptr()));	// return buffered

	movzx	eax, BYTE PTR [esi]
	pop	edi
	pop	ebx
	pop	esi

; 179  : 			}
; 180  : 		}

	ret	0
$L16546:

; 170  : 		else if (_Mystate & _Noread || _Mysb::pptr() == 0
; 171  : 			|| _Mysb::pptr() <= _Mysb::gptr() && _Seekhigh <= _Mysb::gptr())

	test	BYTE PTR [ecx+64], 4
	jne	SHORT $L16549
	mov	eax, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	je	SHORT $L16549
	cmp	eax, esi
	ja	SHORT $L16548
	cmp	DWORD PTR [ecx+60], esi
	jbe	SHORT $L16549
$L16548:

; 173  : 		else
; 174  : 			{	// extend read buffer into written area, then return buffered
; 175  : 			if (_Seekhigh < _Mysb::pptr())

	cmp	DWORD PTR [ecx+60], eax
	jae	SHORT $L16551

; 176  : 				_Seekhigh = _Mysb::pptr();

	mov	DWORD PTR [ecx+60], eax
$L16551:

; 177  : 			_Mysb::setg(_Mysb::eback(), _Mysb::gptr(), _Seekhigh);

	mov	edx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx+60]
	sub	eax, edx
	mov	DWORD PTR [edi], eax

; 178  : 			return (_Traits::to_int_type(*_Mysb::gptr()));

	mov	ecx, DWORD PTR [ecx+32]
	mov	edx, DWORD PTR [ecx]
	movzx	eax, BYTE PTR [edx]
	pop	edi
	pop	ebx
	pop	esi

; 179  : 			}
; 180  : 		}

	ret	0
$L16549:
	pop	edi
	pop	ebx

; 172  : 			return (_Traits::eof());	// can't read, fail

	or	eax, -1
	pop	esi

; 179  : 			}
; 180  : 		}

	ret	0
?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::underflow
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
__Off$ = 12						; size = 4
__Way$ = 16						; size = 4
__Which$ = 20						; size = 4
?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::seekoff, COMDAT
; _this$ = ecx

; 186  : 		if (_Mysb::pptr() != 0 && _Seekhigh < _Mysb::pptr())

	mov	edx, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [edx]
	test	eax, eax
	push	ebx
	push	ebp
	push	esi
	push	edi
	je	SHORT $L16555
	cmp	DWORD PTR [ecx+60], eax
	jae	SHORT $L16555

; 187  : 			_Seekhigh = _Mysb::pptr();	// update high-water pointer

	mov	DWORD PTR [ecx+60], eax
$L16555:

; 188  : 
; 189  : 		if (_Which & ios_base::in && _Mysb::gptr() != 0)

	mov	bl, BYTE PTR __Which$[esp+12]
	test	bl, 1
	je	$L16556
	mov	eax, DWORD PTR [ecx+32]
	mov	esi, DWORD PTR [eax]
	test	esi, esi
	je	$L16556

; 190  : 			{	// position within read buffer
; 191  : 			if (_Way == ios_base::end)

	mov	eax, DWORD PTR __Way$[esp+12]
	cmp	eax, 2
	mov	edi, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	jne	SHORT $L16557

; 192  : 				_Off += (off_type)(_Seekhigh - _Mysb::eback());

	mov	edx, DWORD PTR [ecx+16]
	mov	ebp, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx+60]
	mov	edx, DWORD PTR __Off$[esp+12]
	sub	eax, ebp
	add	edx, eax

; 193  : 			else if (_Way == ios_base::cur

	jmp	SHORT $L16563
$L16557:

; 194  : 				&& (_Which & ios_base::out) == 0)

	cmp	eax, 1
	jne	SHORT $L16560
	test	bl, 2
	jne	SHORT $L19801

; 195  : 				_Off += (off_type)(_Mysb::gptr() - _Mysb::eback());

	mov	edx, DWORD PTR [ecx+16]
	mov	ebp, DWORD PTR [edx]
	mov	edx, DWORD PTR __Off$[esp+12]
	mov	eax, esi
	sub	eax, ebp
	add	edx, eax

; 196  : 			else if (_Way != ios_base::beg)

	jmp	SHORT $L16563
$L16560:
	test	eax, eax
	je	SHORT $L19802
$L19801:

; 197  : 				_Off = _BADOFF;

	mov	edx, edi
	jmp	SHORT $L16563
$L19802:
	mov	edx, DWORD PTR __Off$[esp+12]
$L16563:

; 198  : 
; 199  : 			if (0 <= _Off && _Off <= _Seekhigh - _Mysb::eback())

	test	edx, edx
	jl	SHORT $L16564
	mov	eax, DWORD PTR [ecx+16]
	mov	eax, DWORD PTR [eax]
	mov	ebp, DWORD PTR [ecx+60]
	sub	ebp, eax
	cmp	edx, ebp
	jg	SHORT $L16564

; 200  : 				{	// change read position
; 201  : 				_Mysb::gbump((int)(_Mysb::eback() - _Mysb::gptr() + _Off));

	sub	eax, esi
	mov	esi, DWORD PTR [ecx+48]
	mov	ebp, DWORD PTR [esi]
	add	eax, edx
	sub	ebp, eax
	mov	DWORD PTR [esi], ebp
	mov	esi, DWORD PTR [ecx+32]
	mov	edi, DWORD PTR [esi]
	add	edi, eax

; 202  : 				if (_Which & ios_base::out && _Mysb::pptr() != 0)

	test	bl, 2
	mov	DWORD PTR [esi], edi
	je	$L16580
	mov	edi, DWORD PTR [ecx+36]
	mov	ebx, DWORD PTR [edi]
	test	ebx, ebx
	je	$L16580

; 203  : 					_Mysb::setp(_Mysb::pbase(), _Mysb::gptr(),
; 204  : 						_Mysb::epptr());	// change write position to match

	mov	eax, DWORD PTR [ecx+32]
	mov	esi, DWORD PTR [eax]
	mov	eax, DWORD PTR [ecx+52]
	mov	eax, DWORD PTR [eax]
	add	eax, ebx
	mov	DWORD PTR [edi], esi
	mov	ecx, DWORD PTR [ecx+52]
	sub	eax, esi
	mov	DWORD PTR [ecx], eax

; 205  : 				}
; 206  : 			else

	jmp	SHORT $L16580
$L16564:

; 207  : 				_Off = _BADOFF;

	mov	edx, edi

; 208  : 			}
; 209  : 		else if (_Which & ios_base::out && _Mysb::pptr() != 0)

	jmp	SHORT $L16580
$L16556:
	test	bl, 2
	je	SHORT $L16569
	mov	esi, DWORD PTR [edx]
	test	esi, esi
	je	SHORT $L16569

; 210  : 			{	// position within write buffer
; 211  : 			if (_Way == ios_base::end)

	mov	eax, DWORD PTR __Way$[esp+12]
	cmp	eax, 2
	mov	edi, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	jne	SHORT $L16570

; 212  : 				_Off += (off_type)(_Seekhigh - _Mysb::eback());

	mov	edx, DWORD PTR [ecx+16]
	mov	ebp, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx+60]
	mov	edx, DWORD PTR __Off$[esp+12]
	sub	eax, ebp
	add	edx, eax

; 213  : 			else if (_Way == ios_base::cur)

	jmp	SHORT $L16576
$L16570:
	cmp	eax, 1
	jne	SHORT $L16573

; 214  : 				_Off += (off_type)(_Mysb::pptr() - _Mysb::eback());

	mov	edx, DWORD PTR [ecx+16]
	mov	ebp, DWORD PTR [edx]
	mov	edx, DWORD PTR __Off$[esp+12]
	mov	eax, esi
	sub	eax, ebp
	add	edx, eax

; 215  : 			else if (_Way != ios_base::beg)

	jmp	SHORT $L16576
$L16573:
	test	eax, eax

; 216  : 				_Off = _BADOFF;

	mov	edx, edi
	jne	SHORT $L16576
	mov	edx, DWORD PTR __Off$[esp+12]
$L16576:

; 217  : 
; 218  : 			if (0 <= _Off && _Off <= _Seekhigh - _Mysb::eback())

	test	edx, edx
	jl	SHORT $L16564
	mov	eax, DWORD PTR [ecx+16]
	mov	eax, DWORD PTR [eax]
	mov	ebx, DWORD PTR [ecx+60]
	sub	ebx, eax
	cmp	edx, ebx
	jg	SHORT $L16564

; 219  : 				_Mysb::pbump((int)(_Mysb::eback()
; 220  : 					- _Mysb::pptr() + _Off));	// change write position

	sub	eax, esi
	mov	esi, DWORD PTR [ecx+52]
	mov	edi, DWORD PTR [esi]
	add	eax, edx
	sub	edi, eax
	mov	DWORD PTR [esi], edi
	mov	ecx, DWORD PTR [ecx+36]
	add	DWORD PTR [ecx], eax

; 221  : 			else

	jmp	SHORT $L16580
$L16569:

; 222  : 				_Off = _BADOFF;
; 223  : 			}
; 224  : 		else
; 225  : 			_Off = _BADOFF;	// neither read nor write buffer selected, fail

	mov	edx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
$L16580:

; 226  : 		return (pos_type(_Off));

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+12]
	mov	DWORD PTR [eax], edx
	mov	ecx, DWORD PTR ?_Fpz@std@@3_JA
	pop	edi
	mov	DWORD PTR [eax+8], ecx
	mov	edx, DWORD PTR ?_Fpz@std@@3_JA+4
	pop	esi
	mov	DWORD PTR [eax+12], edx
	mov	ecx, DWORD PTR ?_Stz@?$fpos@H@std@@0HA	; std::fpos<int>::_Stz
	pop	ebp
	mov	DWORD PTR [eax+16], ecx
	pop	ebx

; 227  : 		}

	ret	16					; 00000010H
?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::seekoff
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
__Ptr$ = 12						; size = 24
__Mode$ = 36						; size = 4
?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::seekpos, COMDAT
; _this$ = ecx

; 232  : 		streamoff _Off = (streamoff)_Ptr;

	mov	eax, DWORD PTR __Ptr$[esp-4]
	mov	edx, DWORD PTR __Ptr$[esp+4]
	push	ebp
	push	esi
	push	edi

; 233  : 		if (_Mysb::pptr() != 0 && _Seekhigh < _Mysb::pptr())

	mov	edi, DWORD PTR [ecx+36]
	add	edx, eax
	mov	eax, DWORD PTR [edi]
	test	eax, eax
	je	SHORT $L16587
	cmp	DWORD PTR [ecx+60], eax
	jae	SHORT $L16587

; 234  : 			_Seekhigh = _Mysb::pptr();	// update high-water pointer

	mov	DWORD PTR [ecx+60], eax
$L16587:

; 235  : 
; 236  : 		if (_Off == _BADOFF)

	mov	ebp, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	cmp	edx, ebp
	je	$L16600
	push	ebx

; 237  : 			;
; 238  : 		else if (_Mode & ios_base::in && _Mysb::gptr() != 0)

	mov	bl, BYTE PTR __Mode$[esp+12]
	test	bl, 1
	je	SHORT $L19884
	mov	eax, DWORD PTR [ecx+32]
	mov	esi, DWORD PTR [eax]
	test	esi, esi
	je	SHORT $L19884

; 239  : 			{	// position within read buffer
; 240  : 			if (0 <= _Off && _Off <= _Seekhigh - _Mysb::eback())

	test	edx, edx
	jl	SHORT $L16596
	mov	eax, DWORD PTR [ecx+16]
	mov	eax, DWORD PTR [eax]
	mov	edi, DWORD PTR [ecx+60]
	sub	edi, eax
	cmp	edx, edi
	jg	SHORT $L16596

; 241  : 				{	// change read position
; 242  : 				_Mysb::gbump((int)(_Mysb::eback() - _Mysb::gptr() + _Off));

	sub	eax, esi
	mov	esi, DWORD PTR [ecx+48]
	mov	ebp, DWORD PTR [esi]
	add	eax, edx
	sub	ebp, eax
	mov	DWORD PTR [esi], ebp
	mov	esi, DWORD PTR [ecx+32]
	mov	edi, DWORD PTR [esi]
	add	edi, eax

; 243  : 				if (_Mode & ios_base::out && _Mysb::pptr() != 0)

	test	bl, 2
	mov	DWORD PTR [esi], edi
	je	SHORT $L19885
	mov	edi, DWORD PTR [ecx+36]
	mov	ebx, DWORD PTR [edi]
	test	ebx, ebx
	je	SHORT $L19885

; 244  : 					_Mysb::setp(_Mysb::pbase(), _Mysb::gptr(),
; 245  : 						_Mysb::epptr());	// change write position to match

	mov	eax, DWORD PTR [ecx+32]
	mov	esi, DWORD PTR [eax]
	mov	eax, DWORD PTR [ecx+52]
	mov	eax, DWORD PTR [eax]
	add	eax, ebx
	mov	DWORD PTR [edi], esi
	mov	ecx, DWORD PTR [ecx+52]
	sub	eax, esi
	mov	DWORD PTR [ecx], eax

; 246  : 				}
; 247  : 			else
; 248  : 				_Off = _BADOFF;
; 249  : 			}
; 250  : 		else if (_Mode & ios_base::out && _Mysb::pptr() != 0)

	jmp	SHORT $L19885
$L19884:
	test	bl, 2
	je	SHORT $L16596
	mov	edi, DWORD PTR [edi]
	test	edi, edi
	je	SHORT $L16596

; 251  : 			{	// position within write buffer
; 252  : 			if (0 <= _Off && _Off <= _Seekhigh - _Mysb::eback())

	test	edx, edx
	jl	SHORT $L16596
	mov	eax, DWORD PTR [ecx+16]
	mov	eax, DWORD PTR [eax]
	mov	esi, DWORD PTR [ecx+60]
	sub	esi, eax
	cmp	edx, esi
	jg	SHORT $L16596

; 253  : 				_Mysb::pbump((int)(_Mysb::eback()
; 254  : 					- _Mysb::pptr() + _Off));	// change write position

	mov	esi, DWORD PTR [ecx+52]
	sub	eax, edi
	mov	edi, DWORD PTR [esi]
	add	eax, edx
	sub	edi, eax
	mov	DWORD PTR [esi], edi
	mov	ecx, DWORD PTR [ecx+36]
	add	DWORD PTR [ecx], eax

; 255  : 			else

	jmp	SHORT $L19885
$L16596:

; 256  : 				_Off = _BADOFF;
; 257  : 			}
; 258  : 		else
; 259  : 			_Off = _BADOFF;

	mov	edx, ebp
$L19885:
	pop	ebx
$L16600:

; 260  : 		return (streampos(_Off));

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+8]
	mov	DWORD PTR [eax], edx
	mov	ecx, DWORD PTR ?_Fpz@std@@3_JA
	mov	DWORD PTR [eax+8], ecx
	mov	edx, DWORD PTR ?_Fpz@std@@3_JA+4
	pop	edi
	mov	DWORD PTR [eax+12], edx
	mov	ecx, DWORD PTR ?_Stz@?$fpos@H@std@@0HA	; std::fpos<int>::_Stz
	pop	esi
	mov	DWORD PTR [eax+16], ecx
	pop	ebp

; 261  : 		}

	ret	32					; 00000020H
?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::seekpos
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$basic_ostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_ostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx-4]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	lea	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR [edx+ecx-4], OFFSET FLAT:??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@
	call	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L19900
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L19900:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_ostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_ostream<char,std::char_traits<char> >::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx-8]
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	lea	ecx, DWORD PTR [esi+8]
	mov	DWORD PTR [edx+ecx-8], OFFSET FLAT:??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	call	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L19914
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L19914:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_istream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L19918
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L19918:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$basic_iostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_iostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC NEAR ; std::basic_iostream<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx-12]
	push	edi
	lea	edi, DWORD PTR [esi+12]
	mov	ecx, edi
	call	??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_iostream<char,std::char_traits<char> >::~basic_iostream<char,std::char_traits<char> >
	mov	ecx, edi
	call	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
	test	BYTE PTR ___flags$[esp+4], 1
	je	SHORT $L19926
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L19926:
	pop	edi
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_iostream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_iostream<char,std::char_traits<char> >::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::~basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L19930
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L19930:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z
_TEXT	SEGMENT
__Al$ = 8						; size = 1
??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z PROC NEAR ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >, COMDAT
; _this$ = ecx

; 34   : 		{	// construct allocator from _Al

	mov	eax, ecx

; 35   : 		}

	ret	4
??0?$_String_val@DV?$allocator@D@std@@@std@@IAE@V?$allocator@D@1@@Z ENDP ; std::_String_val<char,std::allocator<char> >::_String_val<char,std::allocator<char> >
_TEXT	ENDS
PUBLIC	?allocate@?$allocator@D@std@@QAEPADI@Z		; std::allocator<char>::allocate
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xmemory
;	COMDAT ?allocate@?$allocator@D@std@@QAEPADI@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
?allocate@?$allocator@D@std@@QAEPADI@Z PROC NEAR	; std::allocator<char>::allocate, COMDAT
; _this$ = ecx

; 137  : 		return (_Allocate(_Count, (pointer)0));

	mov	eax, DWORD PTR __Count$[esp-4]
	push	eax
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4

; 138  : 		}

	ret	4
?allocate@?$allocator@D@std@@QAEPADI@Z ENDP		; std::allocator<char>::allocate
_TEXT	ENDS
PUBLIC	??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
;	COMDAT ??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT
__Istr$ = 8						; size = 4
??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base, COMDAT
; _this$ = ecx

; 52   : 			{	// lock the stream buffer, if there

	mov	eax, DWORD PTR __Istr$[esp-4]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], eax

; 53   : 			if (_Myistr.rdbuf() != 0)

	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	je	SHORT $L19957

; 54   : 				_Myistr.rdbuf()->_Lock();

	lea	ecx, DWORD PTR [eax+4]
	call	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
$L19957:

; 55   : 			}

	mov	eax, esi
	pop	esi
	ret	4
??0_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::_Sentry_base
_TEXT	ENDS
PUBLIC	?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::sbumpc
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
;	COMDAT ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT
?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::sbumpc, COMDAT
; _this$ = ecx

; 101  : 		return (gptr() != 0 && gptr() < egptr()
; 102  : 			? _Traits::to_int_type(*_Gninc()) : uflow());

	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $L19961
	mov	edx, eax
	mov	eax, DWORD PTR [edx]
	mov	edx, DWORD PTR [ecx+48]
	mov	edx, DWORD PTR [edx]
	add	edx, eax
	cmp	eax, edx
	jae	SHORT $L19961
	mov	eax, DWORD PTR [ecx+48]
	dec	DWORD PTR [eax]
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]

; 103  : 		}

	ret	0
$L19961:

; 101  : 		return (gptr() != 0 && gptr() < egptr()
; 102  : 			? _Traits::to_int_type(*_Gninc()) : uflow());

	mov	eax, DWORD PTR [ecx]
	jmp	DWORD PTR [eax+20]
?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::sbumpc
_TEXT	ENDS
PUBLIC	?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z ; std::basic_streambuf<char,std::char_traits<char> >::sputc
; Function compile flags: /Ogty
;	COMDAT ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z
_TEXT	SEGMENT
__Ch$ = 8						; size = 1
?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::sputc, COMDAT
; _this$ = ecx

; 146  : 		return (pptr() != 0 && pptr() < epptr()
; 147  : 			? _Traits::to_int_type(*_Pninc() = _Ch)
; 148  : 			: overflow(_Traits::to_int_type(_Ch)));

	mov	eax, DWORD PTR [ecx+36]
	cmp	DWORD PTR [eax], 0
	je	SHORT $L19984
	mov	edx, eax
	mov	eax, DWORD PTR [edx]
	mov	edx, DWORD PTR [ecx+52]
	mov	edx, DWORD PTR [edx]
	add	edx, eax
	cmp	eax, edx
	jae	SHORT $L19984
	mov	eax, DWORD PTR [ecx+52]
	dec	DWORD PTR [eax]
	mov	ecx, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	mov	cl, BYTE PTR __Ch$[esp-4]
	mov	BYTE PTR [eax], cl
	movzx	eax, cl

; 149  : 		}

	ret	4
$L19984:

; 146  : 		return (pptr() != 0 && pptr() < epptr()
; 147  : 			? _Traits::to_int_type(*_Pninc() = _Ch)
; 148  : 			: overflow(_Traits::to_int_type(_Ch)));

	movzx	edx, BYTE PTR __Ch$[esp-4]
	mov	eax, DWORD PTR [ecx]
	mov	BYTE PTR __Ch$[esp-4], edx
	jmp	DWORD PTR [eax+4]
?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::sputc
_TEXT	ENDS
PUBLIC	?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z
_TEXT	SEGMENT
__Newsize$ = 8						; size = 4
?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos, COMDAT
; _this$ = ecx

; 1475 : 		_Traits::assign(_Myptr()[_Mysize = _Newsize], _Elem());

	cmp	DWORD PTR [ecx+24], 16			; 00000010H
	mov	eax, DWORD PTR __Newsize$[esp-4]
	mov	DWORD PTR [ecx+20], eax
	jb	SHORT $L20015
	mov	ecx, DWORD PTR [ecx+4]
	mov	BYTE PTR [ecx+eax], 0

; 1476 : 		}

	ret	4

; 1475 : 		_Traits::assign(_Myptr()[_Mysize = _Newsize], _Elem());

$L20015:
	mov	BYTE PTR [ecx+eax+4], 0

; 1476 : 		}

	ret	4
?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Eos
_TEXT	ENDS
PUBLIC	??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >
EXTRN	??0_Mutex@std@@QAE@XZ:NEAR			; std::_Mutex::_Mutex
EXTRN	??0locale@std@@QAE@XZ:NEAR			; std::locale::locale
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
xdata$x	SEGMENT
$T20031	DD	0ffffffffH
	DD	FLAT:$L20027
$T20029	DD	019930520H
	DD	01H
	DD	FLAT:$T20031
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
xdata$x	ENDS
;	COMDAT ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 24   : 		{	// construct with no buffers

	push	-1
	push	__ehhandler$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	mov	esi, ecx
	lea	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR _this$[esp+20], esi
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@
	call	??0_Mutex@std@@QAE@XZ			; std::_Mutex::_Mutex
	push	4
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4
	test	eax, eax
	je	SHORT $L20025
	mov	ecx, eax
	call	??0locale@std@@QAE@XZ			; std::locale::locale
	jmp	SHORT $L20026
$L20025:
	xor	eax, eax
$L20026:

; 25   : 		_Init();

	mov	ecx, esi
	mov	DWORD PTR [esi+56], eax
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init

; 26   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L20027:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 4
	jmp	??1_Mutex@std@@QAE@XZ			; std::_Mutex::~_Mutex
__ehhandler$??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ:
	mov	eax, OFFSET FLAT:$T20029
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >
PUBLIC	?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Init
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\sstream
;	COMDAT ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Count$ = 12						; size = 4
__State$ = 16						; size = 4
?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Init, COMDAT
; _this$ = ecx

; 266  : 		_Seekhigh = 0;
; 267  : 		_Mystate = _State;

	mov	eax, DWORD PTR __State$[esp-4]
	push	ebx
	push	ebp

; 268  : 
; 269  : 		if (_Count != 0
; 270  : 			&& (_Mystate & (_Noread | _Constant)) != (_Noread | _Constant))

	mov	ebp, DWORD PTR __Count$[esp+4]
	test	ebp, ebp
	mov	ebx, ecx
	mov	DWORD PTR [ebx+60], 0
	mov	DWORD PTR [ebx+64], eax
	je	SHORT $L17273
	and	eax, 6
	cmp	al, 6
	je	SHORT $L17273
	push	esi
	push	edi

; 271  : 			{	// finite buffer that can be read or written, set it up
; 272  : 			_Elem *_Pnew = _Al.allocate(_Count);

	push	ebp
	call	??2@YAPAXI@Z				; operator new

; 273  : 			_Traits::copy(_Pnew, _Ptr, _Count);

	mov	esi, DWORD PTR __Ptr$[esp+16]
	mov	ecx, ebp
	mov	edx, ecx
	shr	ecx, 2
	mov	edi, eax
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb

; 274  : 			_Seekhigh = _Pnew + _Count;

	lea	ecx, DWORD PTR [eax+ebp]
	add	esp, 4
	mov	DWORD PTR [ebx+60], ecx

; 275  : 
; 276  : 			if (!(_Mystate & _Noread))

	test	BYTE PTR [ebx+64], 4
	pop	edi
	pop	esi
	jne	SHORT $L20049

; 277  : 				_Mysb::setg(_Pnew, _Pnew,
; 278  : 					_Pnew + _Count);	// setup read buffer

	mov	edx, DWORD PTR [ebx+16]
	mov	DWORD PTR [edx], eax
	mov	ecx, DWORD PTR [ebx+32]
	mov	DWORD PTR [ecx], eax
	mov	edx, DWORD PTR [ebx+48]
	mov	DWORD PTR [edx], ebp
$L20049:

; 279  : 			if (!(_Mystate & _Constant))

	test	BYTE PTR [ebx+64], 2
	jne	SHORT $L20059

; 280  : 				{	// setup write buffer, and maybe read buffer
; 281  : 				_Mysb::setp(_Pnew, _Pnew + _Count);

	mov	ecx, DWORD PTR [ebx+20]
	mov	DWORD PTR [ecx], eax
	mov	edx, DWORD PTR [ebx+36]
	mov	DWORD PTR [edx], eax
	mov	ecx, DWORD PTR [ebx+52]
	mov	DWORD PTR [ecx], ebp

; 282  : 				if (_Mysb::gptr() == 0)

	mov	edx, DWORD PTR [ebx+32]
	cmp	DWORD PTR [edx], 0
	jne	SHORT $L20059

; 283  : 					_Mysb::setg(_Pnew, 0, _Pnew);

	mov	ecx, DWORD PTR [ebx+16]
	mov	DWORD PTR [ecx], eax
	mov	edx, DWORD PTR [ebx+32]
	mov	DWORD PTR [edx], 0
	mov	ecx, DWORD PTR [ebx+48]
	mov	DWORD PTR [ecx], eax
$L20059:

; 284  : 				}
; 285  : 			_Mystate |= _Allocated;

	or	DWORD PTR [ebx+64], 1
$L17273:
	pop	ebp
	pop	ebx

; 286  : 			}
; 287  : 		}

	ret	12					; 0000000cH
?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Init
_TEXT	ENDS
PUBLIC	?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::max_size
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ
_TEXT	SEGMENT
?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::max_size, COMDAT
; _this$ = ecx

; 1114 : 		size_type _Num = _Mybase::_Alval.max_size();
; 1115 : 		return (_Num <= 1 ? 1 : _Num - 1);

	mov	eax, -2					; fffffffeH

; 1116 : 		}

	ret	0
?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::max_size
_TEXT	ENDS
PUBLIC	??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<char> >
PUBLIC	?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::ctype<char> >::_Psave
PUBLIC	__TI2?AVbad_cast@@
PUBLIC	__CTA2?AVbad_cast@@
PUBLIC	??_R0?AVbad_cast@@@8				; bad_cast `RTTI Type Descriptor'
PUBLIC	__CT??_R0?AVbad_cast@@@8??0bad_cast@@QAE@ABV0@@Z12
PUBLIC	??_R0?AVexception@@@8				; exception `RTTI Type Descriptor'
PUBLIC	__CT??_R0?AVexception@@@8??0exception@@QAE@ABV0@@Z12
PUBLIC	??_C@_08EPJLHIJG@bad?5cast?$AA@			; `string'
EXTRN	?_Register@facet@locale@std@@QAEXXZ:NEAR	; std::locale::facet::_Register
EXTRN	?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z:NEAR	; std::locale::_Getfacet
EXTRN	??0exception@@QAE@ABV0@@Z:NEAR			; exception::exception
EXTRN	??_7type_info@@6B@:DWORD			; type_info::`vftable'
EXTRN	??0bad_cast@@QAE@PBD@Z:NEAR			; bad_cast::bad_cast
EXTRN	??0bad_cast@@QAE@ABV0@@Z:NEAR			; bad_cast::bad_cast
EXTRN	??1bad_cast@@UAE@XZ:NEAR			; bad_cast::~bad_cast
EXTRN	__CxxThrowException@8:NEAR
EXTRN	?id@?$ctype@D@std@@2V0locale@2@A:DWORD		; std::ctype<char>::id
;	COMDAT ?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
_BSS	SEGMENT
?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B DD 01H DUP (?) ; std::_Facetptr<std::ctype<char> >::_Psave
_BSS	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
$T20098	DD	0ffffffffH
	DD	FLAT:$L20080
$T20095	DD	019930520H
	DD	01H
	DD	FLAT:$T20098
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_C@_08EPJLHIJG@bad?5cast?$AA@
CONST	SEGMENT
??_C@_08EPJLHIJG@bad?5cast?$AA@ DB 'bad cast', 00H	; `string'
CONST	ENDS
;	COMDAT __TI2?AVbad_cast@@
xdata$x	SEGMENT
__TI2?AVbad_cast@@ DD 00H
	DD	FLAT:??1bad_cast@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA2?AVbad_cast@@
xdata$x	ENDS
;	COMDAT __CTA2?AVbad_cast@@
xdata$x	SEGMENT
__CTA2?AVbad_cast@@ DD 02H
	DD	FLAT:__CT??_R0?AVbad_cast@@@8??0bad_cast@@QAE@ABV0@@Z12
	DD	FLAT:__CT??_R0?AVexception@@@8??0exception@@QAE@ABV0@@Z12
xdata$x	ENDS
;	COMDAT __CT??_R0?AVbad_cast@@@8??0bad_cast@@QAE@ABV0@@Z12
xdata$x	SEGMENT
__CT??_R0?AVbad_cast@@@8??0bad_cast@@QAE@ABV0@@Z12 DD 00H
	DD	FLAT:??_R0?AVbad_cast@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0bad_cast@@QAE@ABV0@@Z
xdata$x	ENDS
;	COMDAT ??_R0?AVbad_cast@@@8
_DATA	SEGMENT
??_R0?AVbad_cast@@@8 DD FLAT:??_7type_info@@6B@		; bad_cast `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVbad_cast@@', 00H
_DATA	ENDS
;	COMDAT __CT??_R0?AVexception@@@8??0exception@@QAE@ABV0@@Z12
xdata$x	SEGMENT
__CT??_R0?AVexception@@@8??0exception@@QAE@ABV0@@Z12 DD 00H
	DD	FLAT:??_R0?AVexception@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0exception@@QAE@ABV0@@Z
xdata$x	ENDS
;	COMDAT ??_R0?AVexception@@@8
_DATA	SEGMENT
??_R0?AVexception@@@8 DD FLAT:??_7type_info@@6B@	; exception `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVexception@@', 00H
; Function compile flags: /Ogty
_DATA	ENDS
;	COMDAT ??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z
_TEXT	SEGMENT
__Psave$ = -36						; size = 4
__Lock$20091 = -32					; size = 4
__Lock$20085 = -32					; size = 4
__Lock$ = -28						; size = 4
$T20077 = -24						; size = 12
__$EHRec$ = -12						; size = 12
__Loc$ = 8						; size = 4
??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z PROC NEAR ; std::use_facet<std::ctype<char> >, COMDAT

; 315  : 	{	// get facet reference from locale

	push	-1
	push	__ehhandler$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 24					; 00000018H
	push	esi
	push	edi

; 316  : 	_Lockit _Lock(_LOCK_LOCALE);	// the thread lock, make get atomic

	push	0
	lea	ecx, DWORD PTR __Lock$[esp+48]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 317  : 	const locale::facet *_Psave =
; 318  : 		_Facetptr<_Facet>::_Psave;	// static pointer to lazy facet
; 319  : 
; 320  : 	size_t _Id = _Facet::id;

	mov	eax, DWORD PTR ?id@?$ctype@D@std@@2V0locale@2@A ; std::ctype<char>::id
	test	eax, eax
	mov	edi, DWORD PTR ?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::ctype<char> >::_Psave
	mov	DWORD PTR __$EHRec$[esp+52], 0
	mov	DWORD PTR __Psave$[esp+44], edi
	jne	SHORT $L20084
	push	0
	lea	ecx, DWORD PTR __Lock$20085[esp+48]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR ?id@?$ctype@D@std@@2V0locale@2@A ; std::ctype<char>::id
	test	eax, eax
	jne	SHORT $L20086
	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	inc	eax
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR ?id@?$ctype@D@std@@2V0locale@2@A, eax ; std::ctype<char>::id
$L20086:
	lea	ecx, DWORD PTR __Lock$20085[esp+44]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$L20084:

; 321  : 	const locale::facet *_Pf = _Loc._Getfacet(_Id);

	mov	eax, DWORD PTR ?id@?$ctype@D@std@@2V0locale@2@A ; std::ctype<char>::id
	mov	ecx, DWORD PTR __Loc$[esp+40]
	push	eax
	call	?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z ; std::locale::_Getfacet
	mov	esi, eax

; 322  : 
; 323  : 	if (_Pf != 0)

	test	esi, esi
	jne	SHORT $L17672

; 324  : 		;	// got facet from locale
; 325  : 	else if (_Psave != 0)

	test	edi, edi
	je	SHORT $L17658

; 326  : 		_Pf = _Psave;	// lazy facet already allocated

	mov	esi, edi

; 327  : 	else if (_Facet::_Getcat(&_Psave) == (size_t)(-1))

	jmp	SHORT $L17672
$L17658:
	lea	ecx, DWORD PTR __Psave$[esp+44]
	push	ecx
	call	?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z ; std::ctype<char>::_Getcat
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $L17661

; 328  : 
; 329  :  #if _HAS_EXCEPTIONS
; 330  : 		throw bad_cast();	// lazy disallowed

	push	OFFSET FLAT:??_C@_08EPJLHIJG@bad?5cast?$AA@
	lea	ecx, DWORD PTR $T20077[esp+48]
	call	??0bad_cast@@QAE@PBD@Z			; bad_cast::bad_cast
	push	OFFSET FLAT:__TI2?AVbad_cast@@
	lea	edx, DWORD PTR $T20077[esp+48]
	push	edx
	call	__CxxThrowException@8
$L20099:
$L17661:

; 331  : 
; 332  :  #else /* _HAS_EXCEPTIONS */
; 333  : 		abort();	// lazy disallowed
; 334  :  #endif /* _HAS_EXCEPTIONS */
; 335  : 
; 336  : 	else
; 337  : 		{	// queue up lazy facet for destruction
; 338  : 		_Pf = _Psave;

	mov	esi, DWORD PTR __Psave$[esp+44]

; 339  : 		_Facetptr<_Facet>::_Psave = _Psave;
; 340  : 
; 341  : 		locale::facet *_Pfmod = (_Facet *)_Psave;
; 342  : 		_Pfmod->_Incref();

	push	0
	lea	ecx, DWORD PTR __Lock$20091[esp+48]
	mov	DWORD PTR ?_Psave@?$_Facetptr@V?$ctype@D@std@@@std@@2PBVfacet@locale@2@B, esi ; std::_Facetptr<std::ctype<char> >::_Psave
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $L20092
	inc	eax
	mov	DWORD PTR [esi+4], eax
$L20092:
	lea	ecx, DWORD PTR __Lock$20091[esp+44]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 343  : 		_Pfmod->_Register();

	mov	ecx, esi
	call	?_Register@facet@locale@std@@QAEXXZ	; std::locale::facet::_Register
$L17672:

; 344  : 		}
; 345  : 
; 346  : 	return ((const _Facet&)(*_Pf));	// should be dynamic_cast

	lea	ecx, DWORD PTR __Lock$[esp+44]
	mov	DWORD PTR __$EHRec$[esp+52], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 347  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+44]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 36					; 00000024H
	ret	0
$L20097:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L20080:
	lea	ecx, DWORD PTR __Lock$[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z:
	mov	eax, OFFSET FLAT:$T20095
	jmp	___CxxFrameHandler
text$x	ENDS
??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ENDP ; std::use_facet<std::ctype<char> >
PUBLIC	??_7RGHProtect@@6B@				; RGHProtect::`vftable'
PUBLIC	??_GRGHProtect@@UAEPAXI@Z			; RGHProtect::`scalar deleting destructor'
EXTRN	??0ScriptImpClass@@QAE@XZ:NEAR			; ScriptImpClass::ScriptImpClass
EXTRN	?Get_Name@ScriptImpClass@@UAEPADXZ:NEAR		; ScriptImpClass::Get_Name
EXTRN	?Attach@ScriptImpClass@@UAEXPAE@Z:NEAR		; ScriptImpClass::Attach
EXTRN	?Detach@ScriptImpClass@@UAEXPAE@Z:NEAR		; ScriptImpClass::Detach
EXTRN	?Killed@ScriptImpClass@@UAEXPAE0@Z:NEAR		; ScriptImpClass::Killed
EXTRN	?Damaged@ScriptImpClass@@UAEXPAE0M@Z:NEAR	; ScriptImpClass::Damaged
EXTRN	?Custom@ScriptImpClass@@UAEXPAEHH0@Z:NEAR	; ScriptImpClass::Custom
EXTRN	?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z:NEAR ; ScriptImpClass::Sound_Heard
EXTRN	?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z:NEAR	; ScriptImpClass::Enemy_Seen
EXTRN	?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z:NEAR ; ScriptImpClass::Action_Complete
EXTRN	?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z:NEAR ; ScriptImpClass::Animation_Complete
EXTRN	?Poked@ScriptImpClass@@UAEXPAE0@Z:NEAR		; ScriptImpClass::Poked
EXTRN	?Entered@ScriptImpClass@@UAEXPAE0@Z:NEAR	; ScriptImpClass::Entered
EXTRN	?Exited@ScriptImpClass@@UAEXPAE0@Z:NEAR		; ScriptImpClass::Exited
EXTRN	?Owner@ScriptImpClass@@UAEPAEXZ:NEAR		; ScriptImpClass::Owner
EXTRN	?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ:NEAR	; ScriptImpClass::Get_Owner_Ptr
EXTRN	?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z:NEAR ; ScriptImpClass::Set_Parameters_String
EXTRN	?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z:NEAR ; ScriptImpClass::Get_Parameters_String
EXTRN	?Save@ScriptImpClass@@UAEXAAE@Z:NEAR		; ScriptImpClass::Save
EXTRN	?Load@ScriptImpClass@@UAEXAAE@Z:NEAR		; ScriptImpClass::Load
EXTRN	?Save_Data@ScriptImpClass@@UAEXAAE@Z:NEAR	; ScriptImpClass::Save_Data
EXTRN	?Load_Data@ScriptImpClass@@UAEXAAE@Z:NEAR	; ScriptImpClass::Load_Data
EXTRN	?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ:NEAR ; ScriptImpClass::Register_Auto_Save_Variables
EXTRN	??_ERGHProtect@@UAEPAXI@Z:NEAR			; RGHProtect::`vector deleting destructor'
;	COMDAT xdata$x
; File c:\documents and settings\owner\desktop\ssctf\scripts.h
xdata$x	SEGMENT
$T20121	DD	0ffffffffH
	DD	FLAT:$L20110
$T20119	DD	019930520H
	DD	01H
	DD	FLAT:$T20121
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7RGHProtect@@6B@
CONST	SEGMENT
??_7RGHProtect@@6B@ DD FLAT:??_ERGHProtect@@UAEPAXI@Z	; RGHProtect::`vftable'
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@RGHProtect@@EAEXPAE@Z
	DD	FLAT:?Destroyed@RGHProtect@@EAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@ScriptImpClass@@UAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@RGHProtect@@EAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VRGHProtect@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T20107 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VRGHProtect@@@@UAEPAVScriptImpClass@@XZ PROC NEAR ; ScriptRegistrant<RGHProtect>::Create, COMDAT
; _this$ = ecx

; 480  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VRGHProtect@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	push	edi

; 481  : 	ScriptImpClass *scr = new T;

	push	32					; 00000020H
	mov	edi, ecx
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T20107[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L20108
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET FLAT:??_7RGHProtect@@6B@
	jmp	SHORT $L20109
$L20108:
	xor	esi, esi
$L20109:

; 482  : 	scr->SetFactory(this);
; 483  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	DWORD PTR [eax+100]

; 484  : 	return scr;
; 485  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L20110:
	mov	eax, DWORD PTR $T20107[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VRGHProtect@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET FLAT:$T20119
	jmp	___CxxFrameHandler
text$x	ENDS
?Create@?$ScriptRegistrant@VRGHProtect@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<RGHProtect>::Create
PUBLIC	??1RGHProtect@@UAE@XZ				; RGHProtect::~RGHProtect
; Function compile flags: /Ogty
;	COMDAT ??_GRGHProtect@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GRGHProtect@@UAEPAXI@Z PROC NEAR			; RGHProtect::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1RGHProtect@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L20127
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L20127:
	mov	eax, esi
	pop	esi
	ret	4
??_GRGHProtect@@UAEPAXI@Z ENDP				; RGHProtect::`scalar deleting destructor'
_TEXT	ENDS
EXTRN	??1ScriptImpClass@@UAE@XZ:NEAR			; ScriptImpClass::~ScriptImpClass
; Function compile flags: /Ogty
;	COMDAT ??1RGHProtect@@UAE@XZ
_TEXT	SEGMENT
??1RGHProtect@@UAE@XZ PROC NEAR				; RGHProtect::~RGHProtect, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1RGHProtect@@UAE@XZ ENDP				; RGHProtect::~RGHProtect
_TEXT	ENDS
PUBLIC	??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@ ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`vftable'
PUBLIC	??_G?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`scalar deleting destructor'
EXTRN	??_E?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z:NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`vector deleting destructor'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocinfo
xdata$x	SEGMENT
$T20157	DD	0ffffffffH
	DD	FLAT:$L20136
$T20155	DD	019930520H
	DD	01H
	DD	FLAT:$T20157
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@
CONST	SEGMENT
??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@ DD FLAT:??_E?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`vftable'
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
	DD	FLAT:?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
CONST	ENDS
;	COMDAT ??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z
_TEXT	SEGMENT
_this$ = -132						; size = 4
$T20135 = -128						; size = 116
__$EHRec$ = -12						; size = 12
__Refs$ = 8						; size = 4
??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT
; _this$ = ecx

; 210  : 		{	// construct from current locale

	push	-1
	push	__ehhandler$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 120				; 00000078H
	mov	eax, DWORD PTR __Refs$[esp+128]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+136], esi
	mov	DWORD PTR [esi+4], eax

; 211  : 		_Init(_Locinfo());

	push	OFFSET FLAT:??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR $T20135[esp+140]
	mov	DWORD PTR __$EHRec$[esp+148], 0
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@
	call	??0_Locinfo@std@@QAE@PBD@Z		; std::_Locinfo::_Locinfo
	call	__Getcvt
	lea	ecx, DWORD PTR $T20135[esp+136]
	mov	DWORD PTR [esi+8], eax
	mov	DWORD PTR [esi+12], edx
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo

; 212  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+136]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 132				; 00000084H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L20136:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1facet@locale@std@@UAE@XZ		; std::locale::facet::~facet
__ehhandler$??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z:
	mov	eax, OFFSET FLAT:$T20155
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
PUBLIC	??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::~num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
; Function compile flags: /Ogty
;	COMDAT ??_G?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::~num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L20163
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L20163:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAEPAXI@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ
_TEXT	SEGMENT
??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::~num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT
; _this$ = ecx

; 197  : 		}

	mov	DWORD PTR [ecx], OFFSET FLAT:??_7facet@locale@std@@6B@
	ret	0
??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MAE@XZ ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::~num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
_TEXT	ENDS
PUBLIC	??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_istream<char,std::char_traits<char> >::sentry::~sentry
; Function compile flags: /Ogty
;	COMDAT ??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT
??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::sentry::~sentry, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	je	SHORT $L20192
	lea	ecx, DWORD PTR [eax+4]
	jmp	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L20192:
	ret	0
??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::basic_istream<char,std::char_traits<char> >::sentry::~sentry
_TEXT	ENDS
PUBLIC	?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char> >::flush
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ostream
;	COMDAT ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ
_TEXT	SEGMENT
?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::flush, COMDAT
; _this$ = ecx

; 511  : 		{	// flush output stream

	push	esi
	mov	esi, ecx

; 512  : 		ios_base::iostate _State = ios_base::goodbit;
; 513  : 		if (!ios_base::fail() && _Myios::rdbuf()->pubsync() == -1)

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	lea	eax, DWORD PTR [ecx+esi]
	mov	cl, BYTE PTR [eax+8]
	push	edi
	xor	edi, edi
	test	cl, 6
	jne	SHORT $L15996
	mov	eax, DWORD PTR [eax+40]
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	call	DWORD PTR [edx+44]
	cmp	eax, -1
	jne	SHORT $L15996

; 514  : 			_State |= ios_base::badbit;	// sync failed

	mov	edi, 4
$L15996:

; 515  : 		_Myios::setstate(_State);

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	add	ecx, esi
	test	edi, edi
	je	SHORT $L20238
	mov	eax, DWORD PTR [ecx+8]
	mov	edx, DWORD PTR [ecx+40]
	or	eax, edi
	test	edx, edx
	jne	SHORT $L20236
	or	eax, 4
$L20236:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L20238:
	pop	edi

; 516  : 		return (*this);

	mov	eax, esi
	pop	esi

; 517  : 		}

	ret	0
?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::flush
_TEXT	ENDS
PUBLIC	?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::snextc
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
;	COMDAT ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ
_TEXT	SEGMENT
?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::snextc, COMDAT
; _this$ = ecx

; 117  : 		{	// point to next character and return it

	push	esi
	mov	esi, ecx

; 118  : 		return (_Traits::eq_int_type(_Traits::eof(), sbumpc())
; 119  : 			? _Traits::eof() : sgetc());

	mov	eax, DWORD PTR [esi+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $L20269
	mov	edx, DWORD PTR [esi+48]
	mov	ecx, eax
	mov	eax, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [edx]
	add	ecx, eax
	cmp	eax, ecx
	jae	SHORT $L20269
	mov	eax, edx
	dec	DWORD PTR [eax]
	mov	eax, DWORD PTR [esi+32]
	mov	ecx, DWORD PTR [eax]
	lea	edx, DWORD PTR [ecx+1]
	mov	DWORD PTR [eax], edx
	movzx	eax, BYTE PTR [ecx]
	jmp	SHORT $L20270
$L20269:
	mov	eax, DWORD PTR [esi]
	mov	ecx, esi
	call	DWORD PTR [eax+20]
$L20270:
	cmp	eax, -1
	jne	SHORT $L20244
	or	eax, eax
	pop	esi

; 120  : 		}

	ret	0
$L20244:

; 118  : 		return (_Traits::eq_int_type(_Traits::eof(), sbumpc())
; 119  : 			? _Traits::eof() : sgetc());

	mov	ecx, DWORD PTR [esi+32]
	mov	eax, DWORD PTR [ecx]
	test	eax, eax
	je	SHORT $L20312
	mov	edx, ecx
	mov	ecx, DWORD PTR [edx]
	mov	edx, DWORD PTR [esi+48]
	mov	edx, DWORD PTR [edx]
	add	edx, ecx
	cmp	ecx, edx
	jae	SHORT $L20312
	movzx	eax, BYTE PTR [eax]
	pop	esi

; 120  : 		}

	ret	0

; 118  : 		return (_Traits::eq_int_type(_Traits::eof(), sbumpc())
; 119  : 			? _Traits::eof() : sgetc());

$L20312:
	mov	eax, DWORD PTR [esi]
	mov	ecx, esi
	pop	esi
	jmp	DWORD PTR [eax+16]
?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::snextc
_TEXT	ENDS
PUBLIC	??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vftable'
PUBLIC	??_G?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor'
EXTRN	??_E?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z:NEAR ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vector deleting destructor'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
xdata$x	SEGMENT
$T20359	DD	0ffffffffH
	DD	FLAT:$L20329
$T20357	DD	019930520H
	DD	01H
	DD	FLAT:$T20359
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@
CONST	SEGMENT
??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ DD FLAT:??_E?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vftable'
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\sstream
CONST	ENDS
;	COMDAT ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ PROC NEAR ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 483  : 		{	// destroy the object

	push	-1
	push	__ehhandler$??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	mov	eax, DWORD PTR [ecx-84]
	mov	edx, DWORD PTR [eax+4]
	push	esi
	mov	DWORD PTR _this$[esp+20], ecx
	mov	DWORD PTR [edx+ecx-84], OFFSET FLAT:??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@

; 484  : 		}

	lea	esi, DWORD PTR [ecx-72]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@
	call	?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::_Tidy
	mov	ecx, esi
	call	??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
	mov	eax, DWORD PTR [esi-12]
	mov	ecx, DWORD PTR [eax+4]
	lea	edx, DWORD PTR [esi-12]
	test	edx, edx
	mov	DWORD PTR [ecx+esi-12], OFFSET FLAT:??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@
	je	SHORT $L20349
	lea	eax, DWORD PTR [esi-4]
	jmp	SHORT $L20350
$L20349:
	xor	eax, eax
$L20350:
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	DWORD PTR [edx+eax], OFFSET FLAT:??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@
	mov	eax, DWORD PTR [esi-12]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+esi-12], OFFSET FLAT:??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L20329:
	mov	ecx, DWORD PTR _this$[ebp]
	sub	ecx, 72					; 00000048H
	jmp	??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_iostream<char,std::char_traits<char> >::~basic_iostream<char,std::char_traits<char> >
__ehhandler$??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ:
	mov	eax, OFFSET FLAT:$T20357
	jmp	___CxxFrameHandler
text$x	ENDS
??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ENDP ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogty
;	COMDAT ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z
_TEXT	SEGMENT
__Oldsize$16517 = -8					; size = 4
__Newsize$16518 = -4					; size = 4
__Meta$ = 8						; size = 4
?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::overflow, COMDAT
; _this$ = ecx

; 82   : 		{	// put an element to stream

	sub	esp, 8
	push	ebp
	mov	ebp, ecx

; 83   : 		if (_Mystate & _Append
; 84   : 			&& _Mysb::pptr() != 0 && _Mysb::pptr() < _Seekhigh)

	test	BYTE PTR [ebp+64], 8
	push	esi
	je	SHORT $L20528
	mov	esi, DWORD PTR [ebp+36]
	mov	edx, DWORD PTR [esi]
	test	edx, edx
	je	SHORT $L20528
	mov	ecx, DWORD PTR [ebp+60]
	cmp	edx, ecx
	jae	SHORT $L20528

; 85   : 			_Mysb::setp(_Mysb::pbase(), _Seekhigh, _Mysb::epptr());

	mov	eax, DWORD PTR [ebp+52]
	mov	eax, DWORD PTR [eax]
	add	eax, edx
	mov	DWORD PTR [esi], ecx
	sub	eax, ecx
	mov	ecx, DWORD PTR [ebp+52]
	mov	DWORD PTR [ecx], eax
$L20528:

; 86   : 
; 87   : 		if (_Traits::eq_int_type(_Traits::eof(), _Meta))

	mov	eax, DWORD PTR __Meta$[esp+12]
	cmp	eax, -1
	jne	SHORT $L16511
	pop	esi

; 88   : 			return (_Traits::not_eof(_Meta));	// EOF, return success code

	xor	eax, eax
	pop	ebp

; 143  : 			return (_Meta);
; 144  : 			}
; 145  : 		}

	add	esp, 8
	ret	4
$L16511:

; 89   : 		else if (_Mysb::pptr() != 0
; 90   : 			&& _Mysb::pptr() < _Mysb::epptr())

	mov	edx, DWORD PTR [ebp+36]
	mov	esi, DWORD PTR [edx]
	test	esi, esi
	push	edi
	je	SHORT $L16513
	mov	ecx, DWORD PTR [ebp+52]
	mov	edi, DWORD PTR [ecx]
	mov	edx, esi
	add	edi, edx
	cmp	edx, edi

; 91   : 			{	// room in buffer, store it
; 92   : 			*_Mysb::_Pninc() = _Traits::to_char_type(_Meta);
; 93   : 			return (_Meta);

	jb	$L20530
$L16513:

; 94   : 			}
; 95   : 		else if (_Mystate & _Constant)

	test	BYTE PTR [ebp+64], 2
	je	SHORT $L16515
	pop	edi
	pop	esi

; 96   : 			return (_Traits::eof());	// array nonmutable, fail

	or	eax, -1
	pop	ebp

; 143  : 			return (_Meta);
; 144  : 			}
; 145  : 		}

	add	esp, 8
	ret	4
$L16515:

; 97   : 		else
; 98   : 			{	// grow buffer and store element
; 99   : 			size_t _Oldsize = _Mysb::pptr() == 0
; 100  : 				? 0 : _Mysb::epptr() - _Mysb::eback();

	test	esi, esi
	jne	SHORT $L20366
	xor	edx, edx
	mov	DWORD PTR __Oldsize$16517[esp+20], edx
	jmp	SHORT $L20367
$L20366:
	mov	edx, DWORD PTR [ebp+16]
	mov	ecx, DWORD PTR [ebp+52]
	mov	ecx, DWORD PTR [ecx]
	sub	ecx, DWORD PTR [edx]
	add	ecx, esi
	mov	DWORD PTR __Oldsize$16517[esp+20], ecx
	mov	edx, ecx
$L20367:

; 101  : 			size_t _Newsize = _Oldsize;
; 102  : 			size_t _Inc = _Newsize / 2 < _MINSIZE
; 103  : 				? _MINSIZE : _Newsize / 2;	// grow by 50 per cent

	mov	ecx, edx
	shr	ecx, 1
	cmp	ecx, 32					; 00000020H
	mov	DWORD PTR __Newsize$16518[esp+20], edx
	jae	SHORT $L20369
	mov	ecx, 32					; 00000020H
$L20369:
	push	ebx

; 104  : 			_Elem *_Ptr = 0;

	xor	ebx, ebx

; 105  : 
; 106  : 			while (0 < _Inc && INT_MAX - _Inc < _Newsize)

	test	ecx, ecx
	jbe	SHORT $L16524
$L16522:
	mov	esi, 2147483647				; 7fffffffH
	sub	esi, ecx
	cmp	esi, edx
	jae	SHORT $L16523

; 107  : 				_Inc /= 2;	// increment causes overflow, halve it

	shr	ecx, 1
	test	ecx, ecx
	ja	SHORT $L16522

; 108  : 			if (0 < _Inc)

	jmp	SHORT $L16524
$L16523:
	test	ecx, ecx
	jbe	SHORT $L16524

; 109  : 				{	// finite increment, allocate new character array
; 110  : 				_Newsize += _Inc;

	add	ecx, edx

; 111  : 				_Ptr = _Al.allocate(_Newsize);

	push	ecx
	mov	DWORD PTR __Newsize$16518[esp+28], ecx
	call	??2@YAPAXI@Z				; operator new
	mov	edx, DWORD PTR __Oldsize$16517[esp+28]
	mov	ebx, eax
	mov	eax, DWORD PTR __Meta$[esp+24]
	add	esp, 4
$L16524:

; 112  : 				}
; 113  : 
; 114  : 			if (0 < _Oldsize)

	test	edx, edx
	jbe	SHORT $L20458

; 115  : 				_Traits::copy(_Ptr, _Mysb::eback(), _Oldsize);

	mov	eax, DWORD PTR [ebp+16]
	mov	esi, DWORD PTR [eax]
	mov	ecx, edx
	mov	eax, ecx
	shr	ecx, 2
	mov	edi, ebx
	rep movsd
	mov	ecx, eax
	mov	eax, DWORD PTR __Meta$[esp+20]
	and	ecx, 3
	rep movsb
$L20458:

; 116  : 			if (_Mystate & _Allocated)

	test	BYTE PTR [ebp+64], 1
	je	SHORT $L20465

; 117  : 				_Al.deallocate(_Mysb::eback(), _Oldsize);

	mov	ecx, DWORD PTR [ebp+16]
	mov	edx, DWORD PTR [ecx]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	mov	eax, DWORD PTR __Meta$[esp+24]
	mov	edx, DWORD PTR __Oldsize$16517[esp+28]
	add	esp, 4
$L20465:

; 118  : 			_Mystate |= _Allocated;

	mov	esi, DWORD PTR [ebp+64]
	or	esi, 1

; 119  : 
; 120  : 			if (_Oldsize == 0)

	test	edx, edx
	mov	DWORD PTR [ebp+64], esi
	jne	SHORT $L16527

; 121  : 				{	// first growth, set up pointers
; 122  : 				_Seekhigh = _Ptr;
; 123  : 				_Mysb::setp(_Ptr, _Ptr + _Newsize);

	mov	ecx, DWORD PTR [ebp+20]
	mov	DWORD PTR [ebp+60], ebx
	mov	DWORD PTR [ecx], ebx
	mov	edx, DWORD PTR [ebp+36]
	mov	DWORD PTR [edx], ebx
	mov	ecx, DWORD PTR [ebp+52]
	mov	edx, DWORD PTR __Newsize$16518[esp+24]
	mov	DWORD PTR [ecx], edx

; 124  : 				if (_Mystate & _Noread)

	test	BYTE PTR [ebp+64], 4
	je	SHORT $L16528

; 125  : 					_Mysb::setg(_Ptr, 0, _Ptr);

	mov	ecx, DWORD PTR [ebp+16]
	mov	DWORD PTR [ecx], ebx
	mov	edx, DWORD PTR [ebp+32]
	mov	DWORD PTR [edx], 0
	mov	ecx, DWORD PTR [ebp+48]
	mov	DWORD PTR [ecx], ebx

; 126  : 				else

	jmp	$L20517
$L16528:

; 127  : 					_Mysb::setg(_Ptr, _Ptr, _Ptr + 1);

	mov	edx, DWORD PTR [ebp+16]
	mov	DWORD PTR [edx], ebx
	mov	ecx, DWORD PTR [ebp+32]
	mov	DWORD PTR [ecx], ebx
	mov	edx, DWORD PTR [ebp+48]
	mov	DWORD PTR [edx], 1

; 128  : 				}
; 129  : 			else

	jmp	SHORT $L20517
$L16527:

; 130  : 				{	// not first growth, adjust pointers
; 131  : 				_Seekhigh = _Seekhigh - _Mysb::eback() + _Ptr;

	mov	ecx, DWORD PTR [ebp+16]
	mov	edi, DWORD PTR [ecx]
	mov	esi, DWORD PTR [ebp+60]
	mov	edx, ebx
	sub	edx, edi
	add	esi, edx
	mov	DWORD PTR [ebp+60], esi

; 132  : 				_Mysb::setp(_Mysb::pbase() - _Mysb::eback() + _Ptr,
; 133  : 					_Mysb::pptr() - _Mysb::eback() + _Ptr, _Ptr + _Newsize);

	mov	edx, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [ebp+36]
	mov	ecx, DWORD PTR [ecx]
	mov	esi, DWORD PTR [ebp+20]
	sub	ecx, edx
	mov	edi, ebx
	sub	edi, edx
	add	DWORD PTR [esi], edi
	mov	edx, DWORD PTR [ebp+36]
	mov	esi, DWORD PTR __Newsize$16518[esp+24]
	add	ecx, ebx
	mov	DWORD PTR [edx], ecx
	mov	edx, ebx
	sub	edx, ecx
	mov	ecx, DWORD PTR [ebp+52]
	add	edx, esi
	mov	DWORD PTR [ecx], edx

; 134  : 				if (_Mystate & _Noread)

	test	BYTE PTR [ebp+64], 4
	je	SHORT $L16531

; 135  : 					_Mysb::setg(_Ptr, 0, _Ptr);

	mov	edx, DWORD PTR [ebp+16]
	mov	DWORD PTR [edx], ebx
	mov	ecx, DWORD PTR [ebp+32]
	mov	DWORD PTR [ecx], 0
	mov	edx, DWORD PTR [ebp+48]
	mov	DWORD PTR [edx], ebx

; 136  : 				else

	jmp	SHORT $L20517
$L16531:

; 137  : 					_Mysb::setg(_Ptr,
; 138  : 						_Mysb::gptr() - _Mysb::eback() + _Ptr,
; 139  : 						_Mysb::pptr() + 1);

	mov	ecx, DWORD PTR [ebp+36]
	mov	edx, DWORD PTR [ecx]
	mov	esi, DWORD PTR [ebp+16]
	mov	ecx, DWORD PTR [ebp+32]
	mov	ecx, DWORD PTR [ecx]
	sub	ecx, DWORD PTR [esi]
	add	ecx, ebx
	mov	DWORD PTR [esi], ebx
	mov	esi, DWORD PTR [ebp+32]
	sub	edx, ecx
	mov	DWORD PTR [esi], ecx
	mov	ecx, DWORD PTR [ebp+48]
	inc	edx
	mov	DWORD PTR [ecx], edx
$L20517:

; 140  : 				}
; 141  : 
; 142  : 			*_Mysb::_Pninc() = _Traits::to_char_type(_Meta);

	mov	ecx, DWORD PTR [ebp+52]
	pop	ebx
$L20530:
	dec	DWORD PTR [ecx]
	mov	ebp, DWORD PTR [ebp+36]
	mov	ecx, DWORD PTR [ebp]
	pop	edi
	lea	edx, DWORD PTR [ecx+1]
	mov	DWORD PTR [ebp], edx
	pop	esi
	mov	BYTE PTR [ecx], al
	pop	ebp

; 143  : 			return (_Meta);
; 144  : 			}
; 145  : 		}

	add	esp, 8
	ret	4
?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::overflow
_TEXT	ENDS
PUBLIC	?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z
_TEXT	SEGMENT
__Built$ = 8						; size = 1
__Newsize$ = 12						; size = 4
?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy, COMDAT
; _this$ = ecx

; 1510 : 		if (!_Built)

	mov	al, BYTE PTR __Built$[esp-4]
	test	al, al
	push	ebx
	push	ebp
	mov	ebp, DWORD PTR __Newsize$[esp+4]
	mov	ebx, ecx
	je	SHORT $L20539

; 1511 : 			;
; 1512 : 		else if (_BUF_SIZE <= _Myres)

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	jb	SHORT $L20539

; 1513 : 			{	// copy any leftovers to small buffer and deallocate
; 1514 : 			_Elem *_Ptr = _Bx._Ptr;
; 1515 : 			if (0 < _Newsize)

	test	ebp, ebp
	mov	eax, DWORD PTR [ebx+4]
	push	edi
	lea	edi, DWORD PTR [ebx+4]
	jbe	SHORT $L20535
	push	esi

; 1516 : 				_Traits::copy(_Bx._Buf, _Ptr, _Newsize);

	mov	ecx, ebp
	mov	edx, ecx
	shr	ecx, 2
	mov	esi, eax
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb
	pop	esi
$L20535:

; 1517 : 			_Mybase::_Alval.deallocate(_Ptr, _Myres + 1);

	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
	pop	edi
$L20539:

; 1518 : 			}
; 1519 : 		_Myres = _BUF_SIZE - 1;
; 1520 : 		_Eos(_Newsize);

	mov	DWORD PTR [ebx+20], ebp
	mov	DWORD PTR [ebx+24], 15			; 0000000fH
	mov	BYTE PTR [ebx+ebp+4], 0
	pop	ebp
	pop	ebx

; 1521 : 		}

	ret	8
?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy
_TEXT	ENDS
PUBLIC	?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z ; std::basic_istream<char,std::char_traits<char> >::_Ipfx
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
xdata$x	SEGMENT
$T20763	DD	0ffffffffH
	DD	FLAT:$L20569
	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
$T20765	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L20568
$T20764	DD	01H
	DD	01H
	DD	02H
	DD	01H
	DD	FLAT:$T20765
$T20751	DD	019930520H
	DD	03H
	DD	FLAT:$T20763
	DD	01H
	DD	FLAT:$T20764
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
xdata$x	ENDS
;	COMDAT ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z
_TEXT	SEGMENT
__Lock$20613 = -24					; size = 4
_this$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
$T20565 = 8						; size = 4
__Noskip$ = 8						; size = 1
?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::_Ipfx, COMDAT
; _this$ = ecx

; 89   : 		{	// test stream state and skip whitespace as needed

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 12					; 0000000cH
	push	ebx
	push	esi
	mov	esi, ecx

; 90   : 		if (ios_base::good())

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [ecx+esi+8]
	add	ecx, esi
	test	eax, eax
	push	edi
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	DWORD PTR _this$[ebp], esi
	jne	$L16876

; 91   : 			{	// state okay, flush tied stream and skip whitespace
; 92   : 			if (_Myios::tie() != 0)

	mov	ecx, DWORD PTR [ecx+44]
	test	ecx, ecx
	je	SHORT $L16863

; 93   : 				_Myios::tie()->flush();

	call	?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char> >::flush
$L16863:

; 94   : 
; 95   : 			if (!_Noskip && ios_base::flags() & ios_base::skipws)

	mov	al, BYTE PTR __Noskip$[ebp]
	test	al, al
	jne	$L16867
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [edx+esi+16]
	test	cl, 1
	je	$L16867

; 96   : 				{	// skip whitespace
; 97   : 				const _Ctype& _Ctype_fac = _USE(ios_base::getloc(), _Ctype);

	lea	ecx, DWORD PTR $T20565[ebp]
	push	ecx
	mov	ecx, edx
	add	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	DWORD PTR __$EHRec$[ebp+12], 0
	call	??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<char> >
	mov	edi, DWORD PTR $T20565[ebp]
	add	esp, 4
	test	edi, edi
	mov	ebx, eax
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	je	SHORT $L20608
	push	0
	lea	ecx, DWORD PTR __Lock$20613[ebp]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $L20614
	cmp	eax, -1
	jae	SHORT $L20614
	dec	eax
	mov	DWORD PTR [edi+4], eax
$L20614:
	mov	ecx, DWORD PTR [edi+4]
	xor	edx, edx
	test	ecx, ecx
	setne	dl
	lea	ecx, DWORD PTR __Lock$20613[ebp]
	dec	edx
	and	edi, edx
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	edi, edi
	je	SHORT $L20608
	mov	eax, DWORD PTR [edi]
	push	1
	mov	ecx, edi
	call	DWORD PTR [eax]
$L20608:

; 98   : 
; 99   : 				_TRY_IO_BEGIN
; 100  : 				int_type _Meta = _Myios::rdbuf()->sgetc();

	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [edx+esi+40]
	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[ebp+12], 1
	je	SHORT $L20643
	mov	edx, DWORD PTR [ecx+32]
	mov	edi, DWORD PTR [ecx+48]
	mov	edx, DWORD PTR [edx]
	mov	edi, DWORD PTR [edi]
	add	edi, edx
	cmp	edx, edi
	jae	SHORT $L20643
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $L20753
$L20643:
	mov	eax, DWORD PTR [ecx]
	call	DWORD PTR [eax+16]
	npad	3
$L20753:

; 101  : 
; 102  : 				for (; ; _Meta = _Myios::rdbuf()->snextc())
; 103  : 					if (_Traits::eq_int_type(_Traits::eof(), _Meta))

	cmp	eax, -1
	jne	SHORT $L16873

; 104  : 						{	// end of file, quit
; 105  : 						_Myios::setstate(ios_base::eofbit);

	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [ecx+esi+8]
	mov	edx, DWORD PTR [ecx+esi+40]
	add	ecx, esi
	or	eax, 1
	test	edx, edx
	jne	SHORT $L20684
	or	eax, 4
$L20684:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear

; 106  : 						break;

	jmp	SHORT $L16867
$L16873:

; 107  : 						}
; 108  : 					else if (!_Ctype_fac.is(_Ctype::space,
; 109  : 						_Traits::to_char_type(_Meta)))

	movzx	edx, al
	mov	eax, DWORD PTR [ebx+16]
	test	BYTE PTR [eax+edx*2], 72		; 00000048H
	je	SHORT $L16867
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [edx+esi+40]
	call	?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::snextc
	jmp	SHORT $L20753
$L20568:

; 110  : 						break;	// not whitespace, quit
; 111  : 				_CATCH_IO_END

	mov	eax, DWORD PTR _this$[ebp]
	mov	ecx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [ecx+4]
	mov	edx, DWORD PTR [ecx+eax+40]
	add	ecx, eax
	mov	eax, DWORD PTR [ecx+8]
	or	eax, 4
	test	edx, edx
	jne	SHORT $L20713
	or	eax, 4
$L20713:
	push	1
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
	mov	eax, $L20755
	ret	0
$L20755:
	mov	esi, DWORD PTR _this$[ebp]
$L16867:

; 112  : 				}
; 113  : 
; 114  : 			if (ios_base::good())

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	lea	ecx, DWORD PTR [eax+esi]
	mov	eax, DWORD PTR [ecx+8]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	jne	SHORT $L16876

; 115  : 				return (true);

	mov	al, 1

; 118  : 		return (false);
; 119  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	mov	DWORD PTR fs:__except_list, ecx
	pop	edi
	pop	esi
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
$L16876:

; 116  : 			}
; 117  : 		_Myios::setstate(ios_base::failbit);

	mov	eax, DWORD PTR [ecx+8]
	mov	edx, DWORD PTR [ecx+40]
	or	eax, 2
	test	edx, edx
	jne	SHORT $L20745
	or	eax, 4
$L20745:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear

; 118  : 		return (false);
; 119  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	pop	esi
	xor	al, al
	mov	DWORD PTR fs:__except_list, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L20569:
	lea	ecx, DWORD PTR $T20565[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z:
	mov	eax, OFFSET FLAT:$T20751
	jmp	___CxxFrameHandler
text$x	ENDS
?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::_Ipfx
PUBLIC	??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
xdata$x	SEGMENT
$T20831	DD	0ffffffffH
	DD	FLAT:$L20770
$T20829	DD	019930520H
	DD	01H
	DD	FLAT:$T20831
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\sstream
xdata$x	ENDS
;	COMDAT ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Mode$ = 8						; size = 4
??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z PROC NEAR ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 25   : 	explicit basic_stringbuf(ios_base::openmode _Mode =

	push	-1
	push	__ehhandler$??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	mov	esi, ecx
	call	??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::basic_streambuf<char,std::char_traits<char> >

; 26   : 		ios_base::in | ios_base::out)
; 27   : 		{	// construct empty character buffer from mode
; 28   : 		_Init(0, 0, _Getstate(_Mode));

	mov	cl, BYTE PTR __Mode$[esp+16]
	xor	eax, eax
	test	cl, 1
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@
	jne	SHORT $L20778
	mov	eax, 4
$L20778:
	test	cl, 2
	jne	SHORT $L20779
	or	eax, 2
$L20779:
	test	cl, 8
	je	SHORT $L20780
	or	eax, 8
$L20780:

; 29   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	DWORD PTR [esi+64], eax
	mov	DWORD PTR [esi+60], 0
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L20770:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >
__ehhandler$??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z:
	mov	eax, OFFSET FLAT:$T20829
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z ENDP ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ; std::basic_ostream<char,std::char_traits<char> >::sentry::sentry
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xiosbase
xdata$x	SEGMENT
$T20888	DD	0ffffffffH
	DD	FLAT:$L20837
$T20886	DD	019930520H
	DD	01H
	DD	FLAT:$T20888
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ostream
xdata$x	ENDS
;	COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Ostr$ = 8						; size = 4
??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::sentry::sentry, COMDAT
; _this$ = ecx

; 88   : 			{	// construct locking and testing stream

	push	-1
	push	__ehhandler$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	mov	esi, DWORD PTR __Ostr$[esp+16]
	push	edi
	mov	edi, ecx
	mov	DWORD PTR [edi], esi
	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [ecx+esi+40]
	test	eax, eax
	mov	DWORD PTR _this$[esp+24], edi
	je	SHORT $L20856
	lea	ecx, DWORD PTR [eax+4]
	call	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
$L20856:

; 89   : 			if (_Ostr.good() && _Ostr.tie() != 0)

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+4]
	mov	ecx, DWORD PTR [eax+esi+8]
	add	eax, esi
	test	ecx, ecx
	mov	DWORD PTR __$EHRec$[esp+32], 0
	jne	SHORT $L16974
	mov	eax, DWORD PTR [eax+44]
	test	eax, eax
	je	SHORT $L16974

; 90   : 				_Ostr.tie()->flush();

	mov	ecx, eax
	call	?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char> >::flush
$L16974:

; 91   : 			_Ok = _Ostr.good();	// store test only after flushing tie

	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+esi+8]

; 92   : 			}

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	test	eax, eax
	sete	al
	mov	BYTE PTR [edi+4], al
	mov	eax, edi
	pop	edi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L20837:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
__ehhandler$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z:
	mov	eax, OFFSET FLAT:$T20886
	jmp	___CxxFrameHandler
text$x	ENDS
??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ENDP ; std::basic_ostream<char,std::char_traits<char> >::sentry::sentry
PUBLIC	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
EXTRN	?_Xran@_String_base@std@@QBEXXZ:NEAR		; std::_String_base::_Xran
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z
_TEXT	SEGMENT
__Off$ = 8						; size = 4
__Count$ = 12						; size = 4
?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase, COMDAT
; _this$ = ecx

; 792  : 		{	// erase elements [_Off, _Off + _Count)

	push	ebp

; 793  : 		if (_Mysize < _Off)

	mov	ebp, DWORD PTR __Off$[esp]
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+20], ebp
	push	edi
	jae	SHORT $L17225

; 794  : 			_String_base::_Xran();	// _Off off end

	call	?_Xran@_String_base@std@@QBEXXZ		; std::_String_base::_Xran
$L17225:

; 795  : 		if (_Mysize - _Off < _Count)

	mov	eax, DWORD PTR [esi+20]
	mov	edi, DWORD PTR __Count$[esp+8]
	sub	eax, ebp
	cmp	eax, edi
	jae	SHORT $L17226

; 796  : 			_Count = _Mysize - _Off;	// trim _Count

	mov	edi, eax
$L17226:

; 797  : 		if (0 < _Count)

	test	edi, edi
	jbe	SHORT $L20933

; 798  : 			{	// move elements down
; 799  : 			_Traits::move(_Myptr() + _Off, _Myptr() + _Off + _Count,
; 800  : 				_Mysize - _Off - _Count);

	mov	ecx, DWORD PTR [esi+24]
	cmp	ecx, 16					; 00000010H
	push	ebx
	lea	ebx, DWORD PTR [esi+4]
	jb	SHORT $L20898
	mov	edx, DWORD PTR [ebx]
	jmp	SHORT $L20899
$L20898:
	mov	edx, ebx
$L20899:
	cmp	ecx, 16					; 00000010H
	jb	SHORT $L20905
	mov	ecx, DWORD PTR [ebx]
	jmp	SHORT $L20906
$L20905:
	mov	ecx, ebx
$L20906:
	sub	eax, edi

; 803  : 			}
; 804  : 		return (*this);

	add	edx, ebp
	push	eax
	add	edx, edi
	push	edx
	add	ecx, ebp
	push	ecx
	call	_memmove
	mov	eax, DWORD PTR [esi+20]
	mov	ecx, DWORD PTR [esi+24]
	sub	eax, edi
	add	esp, 12					; 0000000cH
	cmp	ecx, 16					; 00000010H
	mov	DWORD PTR [esi+20], eax
	jb	SHORT $L20928

; 801  : 			size_type _Newsize = _Mysize - _Count;
; 802  : 			_Eos(_Newsize);

	mov	ebx, DWORD PTR [ebx]
$L20928:
	mov	BYTE PTR [ebx+eax], 0
	pop	ebx
$L20933:
	pop	edi

; 803  : 			}
; 804  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp

; 805  : 		}

	ret	8
?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
_TEXT	ENDS
PUBLIC	?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_ostream<char,std::char_traits<char> >::_Osfx
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ostream
;	COMDAT ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::_Osfx, COMDAT
; _this$ = ecx

; 133  : 		if (ios_base::flags() & ios_base::unitbuf)

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	test	BYTE PTR [edx+ecx+16], 2
	je	SHORT $L17248

; 134  : 			flush();	// flush stream as needed

	jmp	?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char> >::flush
$L17248:

; 135  : 		}

	ret	0
?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::_Osfx
_TEXT	ENDS
PUBLIC	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
xdata$x	SEGMENT
$T21144	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	01H
	DD	00H
	DD	01H
	DD	00H
$T21146	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L20947
$T21147	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L20945
$T21145	DD	02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:$T21146
	DD	00H
	DD	00H
	DD	03H
	DD	01H
	DD	FLAT:$T21147
$T21139	DD	019930520H
	DD	04H
	DD	FLAT:$T21144
	DD	02H
	DD	FLAT:$T21145
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
xdata$x	ENDS
;	COMDAT ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
_TEXT	SEGMENT
__Newres$ = -24						; size = 4
_this$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Ptr$ = 8						; size = 4
__Newsize$ = 8						; size = 4
__Oldlen$ = 12						; size = 4
?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy, COMDAT
; _this$ = ecx

; 1444 : 		{	// copy _Oldlen elements to newly allocated buffer

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 12					; 0000000cH

; 1445 : 		size_type _Newres = _Newsize | _ALLOC_MASK;

	mov	eax, DWORD PTR __Newsize$[ebp]
	push	ebx
	push	esi
	mov	ebx, eax
	or	ebx, 15					; 0000000fH

; 1446 : 		if (max_size() < _Newres)

	cmp	ebx, -2					; fffffffeH
	push	edi
	mov	esi, ecx
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	DWORD PTR _this$[ebp], esi
	jbe	SHORT $L17526

; 1447 : 			_Newres = _Newsize;	// undo roundup if too big

	mov	ebx, eax

; 1448 : 		else if (_Newres / 3 < _Myres / 2

	jmp	SHORT $L17528
$L17526:

; 1449 : 			&& _Myres <= max_size() - _Myres / 2)

	mov	edi, DWORD PTR [esi+24]
	mov	eax, -1431655765			; aaaaaaabH
	mul	ebx
	mov	ecx, edi
	shr	ecx, 1
	shr	edx, 1
	cmp	edx, ecx
	jae	SHORT $L17528
	mov	eax, -2					; fffffffeH
	sub	eax, ecx
	cmp	edi, eax
	ja	SHORT $L17528

; 1450 : 			_Newres = _Myres + _Myres / 2;	// grow exponentially if possible

	lea	ebx, DWORD PTR [ecx+edi]
$L17528:

; 1451 : 		_Elem *_Ptr;
; 1452 : 
; 1453 : 		_TRY_BEGIN
; 1454 : 			_Ptr = _Mybase::_Alval.allocate(_Newres + 1);

	lea	ecx, DWORD PTR [ebx+1]
	push	ecx
	mov	DWORD PTR __$EHRec$[ebp+12], 0
	call	??2@YAPAXI@Z				; operator new
	mov	edx, eax
	add	esp, 4
	mov	DWORD PTR __Ptr$[ebp], edx
	jmp	SHORT $L17530
$L20945:

; 1455 : 		_CATCH_ALL
; 1456 : 			_Newres = _Newsize;	// allocation failed, undo roundup and retry

	mov	eax, DWORD PTR __Newsize$[ebp]
	mov	DWORD PTR __Newres$[ebp], eax

; 1457 : 			_TRY_BEGIN
; 1458 : 				_Ptr = _Mybase::_Alval.allocate(_Newres + 1);

	inc	eax
	mov	DWORD PTR __$EHRec$[ebp], esp
	push	eax
	mov	BYTE PTR __$EHRec$[ebp+12], 2
	call	??2@YAPAXI@Z				; operator new
	mov	DWORD PTR __Ptr$[ebp], eax
	add	esp, 4

; 1462 : 			_CATCH_END
; 1463 : 		_CATCH_END

	mov	eax, $L21140
	ret	0
$L21140:
	mov	ebx, DWORD PTR __Newres$[ebp]
	mov	esi, DWORD PTR _this$[ebp]
	mov	edx, DWORD PTR __Ptr$[ebp]
$L17530:

; 1464 : 
; 1465 : 		if (0 < _Oldlen)

	mov	ecx, DWORD PTR __Oldlen$[ebp]
	test	ecx, ecx
	jbe	SHORT $L21064

; 1466 : 			_Traits::copy(_Ptr, _Myptr(), _Oldlen);	// copy existing elements

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L21060
	mov	esi, DWORD PTR [esi+4]
	jmp	SHORT $L21061
$L21060:
	add	esi, 4
$L21061:
	mov	eax, ecx
	shr	ecx, 2
	mov	edi, edx
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb
	mov	esi, DWORD PTR _this$[ebp]
	mov	ecx, DWORD PTR __Oldlen$[ebp]
$L21064:

; 1467 : 		_Tidy(true);

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L21106
	mov	ecx, DWORD PTR [esi+4]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	mov	edx, DWORD PTR __Ptr$[ebp]
	mov	ecx, DWORD PTR __Oldlen$[ebp]
	add	esp, 4
$L21106:

; 1468 : 		_Bx._Ptr = _Ptr;
; 1469 : 		_Myres = _Newres;
; 1470 : 		_Eos(_Oldlen);

	cmp	ebx, 16					; 00000010H
	lea	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax], 0
	mov	DWORD PTR [eax], edx
	mov	DWORD PTR [esi+24], ebx
	mov	DWORD PTR [esi+20], ecx
	jb	SHORT $L21133
	mov	eax, edx
$L21133:

; 1471 : 		}

	pop	edi
	mov	BYTE PTR [eax+ecx], 0
	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	8
$L20947:

; 1459 : 			_CATCH_ALL
; 1460 : 			_Tidy(true);	// failed again, discard storage and reraise

	mov	esi, DWORD PTR _this$[ebp]
	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L21045
	mov	edx, DWORD PTR [esi+4]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L21045:

; 1461 : 			_RERAISE;

	push	0
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	DWORD PTR [esi+20], 0
	push	0
	mov	BYTE PTR [esi+4], 0
	call	__CxxThrowException@8
$L21148:
$L21143:
	int	3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z:
	mov	eax, OFFSET FLAT:$T21139
	jmp	___CxxFrameHandler
text$x	ENDS
?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
PUBLIC	?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z ; std::basic_ios<char,std::char_traits<char> >::widen
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	SEGMENT
$T21187	DD	0ffffffffH
	DD	FLAT:$L21154
$T21185	DD	019930520H
	DD	01H
	DD	FLAT:$T21187
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
xdata$x	ENDS
;	COMDAT ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z
_TEXT	SEGMENT
$T21153 = -20						; size = 4
__Lock$21177 = -16					; size = 4
__$EHRec$ = -12						; size = 12
__Byte$ = 8						; size = 1
?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::widen, COMDAT
; _this$ = ecx

; 119  : 		{	// convert _Byte to character using imbued locale

	push	-1
	push	__ehhandler$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 8
	push	esi
	push	edi

; 120  : 		const _Ctype& _Ctype_fac = _USE(getloc(), _Ctype);

	lea	eax, DWORD PTR $T21153[esp+28]
	push	eax
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	DWORD PTR __$EHRec$[esp+40], 0
	call	??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<char> >
	mov	esi, DWORD PTR $T21153[esp+32]
	add	esp, 4
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+36], -1
	je	SHORT $L21174
	push	0
	lea	ecx, DWORD PTR __Lock$21177[esp+32]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L21178
	cmp	eax, -1
	jae	SHORT $L21178
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L21178:
	mov	edx, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	edx, edx
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$21177[esp+28]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L21174
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L21174:

; 121  : 		return (_Ctype_fac.widen(_Byte));

	mov	ecx, DWORD PTR __Byte$[esp+24]
	mov	eax, DWORD PTR [edi]
	push	ecx
	mov	ecx, edi
	call	DWORD PTR [eax+24]

; 122  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 20					; 00000014H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L21154:
	lea	ecx, DWORD PTR $T21153[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z:
	mov	eax, OFFSET FLAT:$T21185
	jmp	___CxxFrameHandler
text$x	ENDS
?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::widen
PUBLIC	?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getcat
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	SEGMENT
$T21203	DD	0ffffffffH
	DD	FLAT:$L21197
$T21199	DD	019930520H
	DD	01H
	DD	FLAT:$T21203
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
xdata$x	ENDS
;	COMDAT ?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
$T21194 = 8						; size = 4
__Ppf$ = 8						; size = 4
?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getcat, COMDAT

; 186  : 		{	// return locale category mask and construct standard facet

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	esi

; 187  : 		if (_Ppf != 0 && *_Ppf == 0)

	mov	esi, DWORD PTR __Ppf$[esp+12]
	test	esi, esi
	je	SHORT $L21201
	cmp	DWORD PTR [esi], 0
	jne	SHORT $L21201

; 188  : 			*_Ppf = _NEW_CRT num_get<_Elem, _InIt>;

	push	16					; 00000010H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4
	mov	DWORD PTR $T21194[esp+12], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $L21195
	push	0
	mov	ecx, eax
	call	??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >
	jmp	SHORT $L21196
$L21195:
	xor	eax, eax
$L21196:
	mov	DWORD PTR [esi], eax
$L21201:

; 189  : 		return (_X_NUMERIC);
; 190  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+16]
	mov	eax, 4
	mov	DWORD PTR fs:__except_list, ecx
	pop	esi
	add	esp, 12					; 0000000cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L21197:
	mov	eax, DWORD PTR $T21194[ebp-4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET FLAT:$T21199
	jmp	___CxxFrameHandler
text$x	ENDS
?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getcat
PUBLIC	??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbase destructor'
; Function compile flags: /Ogty
;	COMDAT ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ
_TEXT	SEGMENT
??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ PROC NEAR ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbase destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx+84]
	mov	ecx, esi
	call	??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
	mov	ecx, esi
	pop	esi
	jmp	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ ENDP ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbase destructor'
_TEXT	ENDS
PUBLIC	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
_TEXT	SEGMENT
??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 456  : 		{	// destroy the string

	push	esi
	mov	esi, ecx

; 457  : 		_Tidy(true);

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L21252
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L21252:
	xor	eax, eax
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	DWORD PTR [esi+20], eax
	mov	BYTE PTR [esi+4], al
	pop	esi

; 458  : 		}

	ret	0
??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
xdata$x	SEGMENT
$T21291	DD	0ffffffffH
	DD	FLAT:$L21266
$T21289	DD	019930520H
	DD	01H
	DD	FLAT:$T21291
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
xdata$x	ENDS
;	COMDAT ??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Istr$ = 8						; size = 4
__Noskip$ = 12						; size = 1
??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry, COMDAT
; _this$ = ecx

; 72   : 			{	// construct locking and calling _Ipfx

	push	-1
	push	__ehhandler$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	mov	eax, DWORD PTR __Istr$[esp+12]
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], eax
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	mov	DWORD PTR _this$[esp+20], esi
	je	SHORT $L21287
	lea	ecx, DWORD PTR [eax+4]
	call	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
$L21287:

; 73   : 			_Ok = this->_Myistr._Ipfx(_Noskip);

	mov	eax, DWORD PTR __Noskip$[esp+16]
	mov	ecx, DWORD PTR [esi]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z ; std::basic_istream<char,std::char_traits<char> >::_Ipfx

; 74   : 			}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	BYTE PTR [esi+4], al
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L21266:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1_Sentry_base@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_istream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
__ehhandler$??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z:
	mov	eax, OFFSET FLAT:$T21289
	jmp	___CxxFrameHandler
text$x	ENDS
??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry
; Function compile flags: /Ogty
;	COMDAT ??_G?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z PROC NEAR ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx-84]
	push	edi
	lea	edi, DWORD PTR [esi+84]
	mov	ecx, edi
	call	??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
	mov	ecx, edi
	call	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
	test	BYTE PTR ___flags$[esp+4], 1
	je	SHORT $L21301
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L21301:
	pop	edi
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAEPAXI@Z ENDP ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry
EXTRN	?uncaught_exception@std@@YA_NXZ:NEAR		; std::uncaught_exception
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
xdata$x	SEGMENT
$T21341	DD	0ffffffffH
	DD	FLAT:$L21305
$T21339	DD	019930520H
	DD	01H
	DD	FLAT:$T21341
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ostream
xdata$x	ENDS
;	COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry, COMDAT
; _this$ = ecx

; 95   : 			{	// destroy the object

	push	-1
	push	__ehhandler$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+20], esi
	mov	DWORD PTR __$EHRec$[esp+28], 0

; 96   : 
; 97   :  #if _HAS_EXCEPTIONS
; 98   : 			if (!uncaught_exception())

	call	?uncaught_exception@std@@YA_NXZ		; std::uncaught_exception
	test	al, al
	jne	SHORT $L21315

; 99   : 				this->_Myostr._Osfx();

	mov	ecx, DWORD PTR [esi]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+4]
	test	BYTE PTR [edx+ecx+16], 2
	je	SHORT $L21315
	call	?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ; std::basic_ostream<char,std::char_traits<char> >::flush
$L21315:

; 100  : 			}

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+28], -1
	pop	esi
	je	SHORT $L21334
	lea	ecx, DWORD PTR [eax+4]
	call	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L21334:
	mov	ecx, DWORD PTR __$EHRec$[esp+16]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L21305:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
__ehhandler$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ:
	mov	eax, OFFSET FLAT:$T21339
	jmp	___CxxFrameHandler
text$x	ENDS
??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ENDP ; std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry
PUBLIC	?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
EXTRN	?_Xlen@_String_base@std@@QBEXXZ:NEAR		; std::_String_base::_Xlen
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z
_TEXT	SEGMENT
__Newsize$ = 8						; size = 4
__Trim$ = 12						; size = 1
?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow, COMDAT
; _this$ = ecx

; 1480 : 		{	// ensure buffer is big enough, trim to size if _Trim is true

	push	ebp
	push	esi

; 1481 : 		if (max_size() < _Newsize)

	mov	esi, DWORD PTR __Newsize$[esp+4]
	cmp	esi, -2					; fffffffeH
	mov	ebp, ecx
	jbe	SHORT $L17234

; 1482 : 			_String_base::_Xlen();	// result too long

	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L17234:

; 1483 : 		if (_Myres < _Newsize)

	mov	eax, DWORD PTR [ebp+24]
	cmp	eax, esi
	jae	SHORT $L17235

; 1484 : 			_Copy(_Newsize, _Mysize);	// reallocate to grow

	mov	eax, DWORD PTR [ebp+20]
	push	eax
	push	esi
	mov	ecx, ebp
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy

; 1490 : 		return (0 < _Newsize);	// return true only if more work to do

	xor	eax, eax
	cmp	eax, esi
	sbb	eax, eax
	pop	esi
	neg	eax
	pop	ebp

; 1491 : 		}

	ret	8
$L17235:

; 1485 : 		else if (_Trim && _Newsize < _BUF_SIZE)

	mov	cl, BYTE PTR __Trim$[esp+4]
	test	cl, cl
	je	SHORT $L17237
	cmp	esi, 16					; 00000010H
	jae	SHORT $L17237
	push	ebx

; 1486 : 			_Tidy(true,	// copy and deallocate if trimming to small string
; 1487 : 				_Newsize < _Mysize ? _Newsize : _Mysize);

	mov	ebx, DWORD PTR [ebp+20]
	cmp	esi, ebx
	jae	SHORT $L21348
	mov	ebx, esi
$L21348:
	cmp	eax, 16					; 00000010H
	jb	SHORT $L21408
	test	ebx, ebx
	mov	eax, DWORD PTR [ebp+4]
	push	edi
	lea	edi, DWORD PTR [ebp+4]
	jbe	SHORT $L21406
	mov	ecx, ebx
	mov	edx, ecx
	shr	ecx, 2
	mov	esi, eax
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb
	mov	esi, DWORD PTR __Newsize$[esp+12]
$L21406:
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
	pop	edi
$L21408:
	mov	DWORD PTR [ebp+20], ebx

; 1490 : 		return (0 < _Newsize);	// return true only if more work to do

	xor	eax, eax
	mov	DWORD PTR [ebp+24], 15			; 0000000fH
	mov	BYTE PTR [ebx+ebp+4], 0
	cmp	eax, esi
	pop	ebx
	sbb	eax, eax
	pop	esi
	neg	eax
	pop	ebp

; 1491 : 		}

	ret	8
$L17237:

; 1488 : 		else if (_Newsize == 0)

	test	esi, esi
	jne	SHORT $L21439

; 1489 : 			_Eos(0);	// new size is zero, just null terminate

	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [ebp+20], esi
	jb	SHORT $L21437
	mov	ebp, DWORD PTR [ebp+4]

; 1490 : 		return (0 < _Newsize);	// return true only if more work to do

	xor	eax, eax
	cmp	eax, esi
	sbb	eax, eax
	pop	esi
	mov	BYTE PTR [ebp], 0
	neg	eax
	pop	ebp

; 1491 : 		}

	ret	8

; 1489 : 			_Eos(0);	// new size is zero, just null terminate

$L21437:
	add	ebp, 4
	mov	BYTE PTR [ebp], 0
$L21439:

; 1490 : 		return (0 < _Newsize);	// return true only if more work to do

	xor	eax, eax
	cmp	eax, esi
	sbb	eax, eax
	pop	esi
	neg	eax
	pop	ebp

; 1491 : 		}

	ret	8
?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow
_TEXT	ENDS
PUBLIC	?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z ; std::basic_ios<char,std::char_traits<char> >::init
EXTRN	?_Addstd@ios_base@std@@QAEXXZ:NEAR		; std::ios_base::_Addstd
EXTRN	?_Init@ios_base@std@@IAEXXZ:NEAR		; std::ios_base::_Init
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
;	COMDAT ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z
_TEXT	SEGMENT
__Strbuf$ = 8						; size = 4
__Isstd$ = 12						; size = 1
?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z PROC NEAR ; std::basic_ios<char,std::char_traits<char> >::init, COMDAT
; _this$ = ecx

; 127  : 		{	// initialize with stream buffer pointer

	push	esi
	mov	esi, ecx

; 128  : 		_Init();	// initialize ios_base

	call	?_Init@ios_base@std@@IAEXXZ		; std::ios_base::_Init

; 129  : 		_Mystrbuf = _Strbuf;

	mov	eax, DWORD PTR __Strbuf$[esp]

; 130  : 		_Tiestr = 0;
; 131  : 		_Fillch = widen(' ');

	push	32					; 00000020H
	mov	ecx, esi
	mov	DWORD PTR [esi+40], eax
	mov	DWORD PTR [esi+44], 0
	call	?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z ; std::basic_ios<char,std::char_traits<char> >::widen
	mov	BYTE PTR [esi+48], al

; 132  : 
; 133  : 		if (_Mystrbuf == 0)

	mov	eax, DWORD PTR [esi+40]
	test	eax, eax
	jne	SHORT $L21463

; 134  : 			setstate(badbit);

	mov	eax, DWORD PTR [esi+8]
	or	eax, 4
	push	0
	push	eax
	mov	ecx, esi
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L21463:

; 135  : 
; 136  : 		if (_Isstd)

	mov	al, BYTE PTR __Isstd$[esp]
	test	al, al
	je	SHORT $L17541

; 137  : 			_Addstd();	// special handling for standard streams

	mov	ecx, esi
	call	?_Addstd@ios_base@std@@QAEXXZ		; std::ios_base::_Addstd
	pop	esi

; 140  : 		}

	ret	8
$L17541:

; 138  : 		else
; 139  : 			_Stdstr = 0;

	mov	DWORD PTR [esi+4], 0
	pop	esi

; 140  : 		}

	ret	8
?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z ENDP ; std::basic_ios<char,std::char_traits<char> >::init
_TEXT	ENDS
PUBLIC	??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ; std::operator<<<char,std::char_traits<char>,std::allocator<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
xdata$x	SEGMENT
$T21908	DD	0ffffffffH
	DD	FLAT:$L21481
	DD	00H
	DD	00H
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	FLAT:$L21735
$T21910	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L21480
$T21909	DD	01H
	DD	01H
	DD	02H
	DD	01H
	DD	FLAT:$T21910
$T21889	DD	019930520H
	DD	04H
	DD	FLAT:$T21908
	DD	01H
	DD	FLAT:$T21909
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\string
xdata$x	ENDS
;	COMDAT ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z
_TEXT	SEGMENT
__Ok$ = -36						; size = 8
__Size$ = -28						; size = 4
__Pad$ = -24						; size = 4
__State$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Ostr$ = 8						; size = 4
__Str$ = 12						; size = 4
??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z PROC NEAR ; std::operator<<<char,std::char_traits<char>,std::allocator<char> >, COMDAT

; 538  : 	{	// insert a string

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 24					; 00000018H
	push	ebx

; 539  : 	typedef basic_ostream<_Elem, _Traits> _Myos;
; 540  : 	typedef basic_string<_Elem, _Traits, _Alloc> _Mystr;
; 541  : 	typedef typename _Mystr::size_type _Mysizt;
; 542  : 
; 543  : 	ios_base::iostate _State = ios_base::goodbit;
; 544  : 	_Mysizt _Size = _Str.size();

	mov	ebx, DWORD PTR __Str$[ebp]
	mov	ecx, DWORD PTR [ebx+20]
	push	esi
	push	edi

; 545  : 	_Mysizt _Pad = _Ostr.width() <= 0 || (_Mysizt)_Ostr.width() <= _Size
; 546  : 			? 0 : (_Mysizt)_Ostr.width() - _Size;

	mov	edi, DWORD PTR __Ostr$[ebp]
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [edx+edi+24]
	xor	esi, esi
	cmp	eax, esi
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	DWORD PTR __State$[ebp], esi
	mov	DWORD PTR __Size$[ebp], ecx
	jle	SHORT $L21470
	cmp	eax, ecx
	jbe	SHORT $L21470
	sub	eax, ecx
	mov	DWORD PTR __Pad$[ebp], eax
	jmp	SHORT $L21471
$L21470:
	mov	DWORD PTR __Pad$[ebp], esi
$L21471:

; 547  : 	const typename _Myos::sentry _Ok(_Ostr);

	push	edi
	lea	ecx, DWORD PTR __Ok$[ebp]
	call	??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@AAV12@@Z ; std::basic_ostream<char,std::char_traits<char> >::sentry::sentry

; 548  : 
; 549  : 	if (!_Ok)

	mov	al, BYTE PTR __Ok$[ebp+4]
	test	al, al
	mov	DWORD PTR __$EHRec$[ebp+12], esi
	jne	SHORT $L17715

; 550  : 		_State |= ios_base::badbit;

	mov	DWORD PTR __State$[ebp], 4

; 551  : 	else

	jmp	$L21685
$L17715:

; 552  : 		{	// state okay, insert characters
; 553  : 	_TRY_IO_BEGIN
; 554  : 		if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left)

	mov	eax, DWORD PTR [edi]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [ecx+edi+16]
	and	eax, 448				; 000001c0H
	cmp	eax, 64					; 00000040H
	mov	BYTE PTR __$EHRec$[ebp+12], 1
	je	SHORT $L17727
$L17719:

; 555  : 			for (; 0 < _Pad; --_Pad)	// pad on left

	mov	eax, DWORD PTR __Pad$[ebp]
	test	eax, eax
	jbe	SHORT $L17721

; 556  : 				if (_Traits::eq_int_type(_Traits::eof(),
; 557  : 					_Ostr.rdbuf()->sputc(_Ostr.fill())))

	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+4]
	lea	ecx, DWORD PTR [eax+edi]
	mov	al, BYTE PTR [ecx+48]
	mov	ecx, DWORD PTR [ecx+40]
	mov	edx, DWORD PTR [ecx+36]
	cmp	DWORD PTR [edx], 0
	je	SHORT $L21538
	mov	esi, DWORD PTR [ecx+52]
	mov	edx, DWORD PTR [edx]
	mov	esi, DWORD PTR [esi]
	add	esi, edx
	cmp	edx, esi
	jae	SHORT $L21538
	mov	edx, DWORD PTR [ecx+52]
	dec	DWORD PTR [edx]
	mov	ecx, DWORD PTR [ecx+36]
	mov	edx, DWORD PTR [ecx]
	lea	esi, DWORD PTR [edx+1]
	mov	DWORD PTR [ecx], esi
	mov	BYTE PTR [edx], al
	movzx	eax, al
	jmp	SHORT $L21540
$L21538:
	mov	edx, DWORD PTR [ecx]
	movzx	eax, al
	push	eax
	call	DWORD PTR [edx+4]
$L21540:
	cmp	eax, -1
	jne	SHORT $L17720

; 558  : 					{	// insertion failed, quit
; 559  : 					_State |= ios_base::badbit;

	or	DWORD PTR __State$[ebp], 4
$L17721:

; 560  : 					break;
; 561  : 					}
; 562  : 
; 563  : 		if (_State == ios_base::goodbit)

	mov	eax, DWORD PTR __State$[ebp]
	xor	esi, esi
	cmp	eax, esi
	jne	$L17736
$L17727:

; 564  : 			for (_Mysizt _Count = 0; _Count < _Size; ++_Count)

	cmp	esi, DWORD PTR __Size$[ebp]
	jae	SHORT $L17729

; 565  : 				if (_Traits::eq_int_type(_Traits::eof(),
; 566  : 					_Ostr.rdbuf()->sputc(_Str[_Count])))

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	jb	SHORT $L21571
	mov	eax, DWORD PTR [ebx+4]
	jmp	SHORT $L21572
$L17720:

; 555  : 			for (; 0 < _Pad; --_Pad)	// pad on left

	dec	DWORD PTR __Pad$[ebp]
	jmp	SHORT $L17719

; 565  : 				if (_Traits::eq_int_type(_Traits::eof(),
; 566  : 					_Ostr.rdbuf()->sputc(_Str[_Count])))

$L21571:
	lea	eax, DWORD PTR [ebx+4]
$L21572:
	mov	ecx, DWORD PTR [edi]
	mov	edx, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [edx+edi+40]
	mov	edx, DWORD PTR [ecx+36]
	cmp	DWORD PTR [edx], 0
	mov	al, BYTE PTR [eax+esi]
	je	SHORT $L21604
	mov	ebx, DWORD PTR [ecx+52]
	mov	edx, DWORD PTR [edx]
	mov	ebx, DWORD PTR [ebx]
	add	ebx, edx
	cmp	edx, ebx
	jae	SHORT $L21902
	mov	edx, DWORD PTR [ecx+52]
	dec	DWORD PTR [edx]
	mov	ecx, DWORD PTR [ecx+36]
	mov	edx, DWORD PTR [ecx]
	lea	ebx, DWORD PTR [edx+1]
	mov	DWORD PTR [ecx], ebx
	mov	ebx, DWORD PTR __Str$[ebp]
	mov	BYTE PTR [edx], al
	movzx	eax, al
	jmp	SHORT $L21606
$L21902:
	mov	ebx, DWORD PTR __Str$[ebp]
$L21604:
	mov	edx, DWORD PTR [ecx]
	movzx	eax, al
	push	eax
	call	DWORD PTR [edx+4]
$L21606:
	cmp	eax, -1
	jne	SHORT $L17728

; 567  : 					{	// insertion failed, quit
; 568  : 					_State |= ios_base::badbit;

	or	DWORD PTR __State$[ebp], 4
$L17729:

; 569  : 					break;
; 570  : 					}
; 571  : 
; 572  : 		if (_State == ios_base::goodbit)

	mov	eax, DWORD PTR __State$[ebp]
	test	eax, eax
	jne	SHORT $L17736
$L17734:

; 573  : 			for (; 0 < _Pad; --_Pad)	// pad on right

	mov	eax, DWORD PTR __Pad$[ebp]
	test	eax, eax
	jbe	SHORT $L17736

; 574  : 				if (_Traits::eq_int_type(_Traits::eof(),
; 575  : 					_Ostr.rdbuf()->sputc(_Ostr.fill())))

	mov	ecx, DWORD PTR [edi]
	mov	edx, DWORD PTR [ecx+4]
	mov	al, BYTE PTR [edx+edi+48]
	lea	ecx, DWORD PTR [edx+edi]
	mov	ecx, DWORD PTR [ecx+40]
	mov	edx, DWORD PTR [ecx+36]
	cmp	DWORD PTR [edx], 0
	je	SHORT $L21660
	mov	esi, DWORD PTR [ecx+52]
	mov	edx, DWORD PTR [edx]
	mov	esi, DWORD PTR [esi]
	add	esi, edx
	cmp	edx, esi
	jae	SHORT $L21660
	mov	edx, DWORD PTR [ecx+52]
	dec	DWORD PTR [edx]
	mov	ecx, DWORD PTR [ecx+36]
	mov	edx, DWORD PTR [ecx]
	lea	esi, DWORD PTR [edx+1]
	mov	DWORD PTR [ecx], esi
	mov	BYTE PTR [edx], al
	movzx	eax, al
	jmp	SHORT $L21662
$L17728:

; 564  : 			for (_Mysizt _Count = 0; _Count < _Size; ++_Count)

	inc	esi
	jmp	$L17727

; 574  : 				if (_Traits::eq_int_type(_Traits::eof(),
; 575  : 					_Ostr.rdbuf()->sputc(_Ostr.fill())))

$L21660:
	mov	edx, DWORD PTR [ecx]
	movzx	eax, al
	push	eax
	call	DWORD PTR [edx+4]
$L21662:
	cmp	eax, -1
	jne	SHORT $L17735

; 576  : 					{	// insertion failed, quit
; 577  : 					_State |= ios_base::badbit;

	or	DWORD PTR __State$[ebp], 4
$L17736:

; 578  : 					break;
; 579  : 					}
; 580  : 		_Ostr.width(0);

	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+4]
	add	eax, edi
	mov	DWORD PTR [eax+24], 0
	jmp	SHORT $L21685
$L17735:

; 573  : 			for (; 0 < _Pad; --_Pad)	// pad on right

	dec	DWORD PTR __Pad$[ebp]
	jmp	SHORT $L17734
$L21480:

; 581  : 		_CATCH_IO_(_Ostr)

	mov	eax, DWORD PTR __Ostr$[ebp]
	mov	ecx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [ecx+4]
	mov	edx, DWORD PTR [ecx+eax+40]
	add	ecx, eax
	mov	eax, DWORD PTR [ecx+8]
	or	eax, 4
	test	edx, edx
	jne	SHORT $L21706
	or	eax, 4
$L21706:
	push	1
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
	mov	eax, $L21897
	ret	0
$L21897:

; 578  : 					break;
; 579  : 					}
; 580  : 		_Ostr.width(0);

	mov	edi, DWORD PTR __Ostr$[ebp]
$L21685:

; 582  : 		}
; 583  : 
; 584  : 	_Ostr.setstate(_State);

	mov	eax, DWORD PTR [edi]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR __State$[ebp]
	add	ecx, edi
	test	edx, edx
	mov	DWORD PTR __$EHRec$[ebp+12], 0
	je	SHORT $L21730
	mov	eax, DWORD PTR [ecx+8]
	or	eax, edx
	mov	edx, DWORD PTR [ecx+40]
	test	edx, edx
	jne	SHORT $L21729
	or	eax, 4
$L21729:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L21730:

; 585  : 	return (_Ostr);

	mov	DWORD PTR __$EHRec$[ebp+12], 3
	call	?uncaught_exception@std@@YA_NXZ		; std::uncaught_exception
	test	al, al
	jne	SHORT $L21869
	mov	ebx, DWORD PTR __Ok$[ebp]
	mov	ecx, DWORD PTR [ebx]
	mov	edx, DWORD PTR [ecx+4]
	mov	cl, BYTE PTR [edx+ebx+16]
	test	cl, 2
	lea	eax, DWORD PTR [edx+ebx]
	je	SHORT $L21869
	mov	cl, BYTE PTR [eax+8]
	xor	esi, esi
	test	cl, 6
	jne	SHORT $L21874
	mov	eax, DWORD PTR [eax+40]
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	call	DWORD PTR [edx+44]
	cmp	eax, -1
	jne	SHORT $L21874
	mov	esi, 4
$L21874:
	mov	eax, DWORD PTR [ebx]
	mov	ecx, DWORD PTR [eax+4]
	add	ecx, ebx
	test	esi, esi
	je	SHORT $L21869
	mov	eax, DWORD PTR [ecx+8]
	mov	edx, DWORD PTR [ecx+40]
	or	eax, esi
	test	edx, edx
	jne	SHORT $L21868
	or	eax, 4
$L21868:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L21869:
	mov	eax, DWORD PTR __Ok$[ebp]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	je	SHORT $L21894
	lea	ecx, DWORD PTR [eax+4]
	call	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L21894:

; 586  : 	}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	mov	eax, edi
	pop	edi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L21481:
	lea	ecx, DWORD PTR __Ok$[ebp]
	jmp	??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::sentry::~sentry
$L21735:
	lea	ecx, DWORD PTR __Ok$[ebp]
	jmp	??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@XZ ; std::basic_ostream<char,std::char_traits<char> >::_Sentry_base::~_Sentry_base
__ehhandler$??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z:
	mov	eax, OFFSET FLAT:$T21889
	jmp	___CxxFrameHandler
text$x	ENDS
??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ENDP ; std::operator<<<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >::_Psave
PUBLIC	??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >
;	COMDAT ?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
_BSS	SEGMENT
?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B DD 01H DUP (?) ; std::_Facetptr<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >::_Psave
_BSS	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
$T21935	DD	0ffffffffH
	DD	FLAT:$L21917
$T21932	DD	019930520H
	DD	01H
	DD	FLAT:$T21935
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
xdata$x	ENDS
;	COMDAT ??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z
_TEXT	SEGMENT
__Psave$ = -36						; size = 4
__Lock$21928 = -32					; size = 4
__Lock$21922 = -32					; size = 4
__Lock$ = -28						; size = 4
$T21915 = -24						; size = 12
__$EHRec$ = -12						; size = 12
__Loc$ = 8						; size = 4
??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z PROC NEAR ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >, COMDAT

; 315  : 	{	// get facet reference from locale

	push	-1
	push	__ehhandler$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 24					; 00000018H
	push	esi
	push	edi

; 316  : 	_Lockit _Lock(_LOCK_LOCALE);	// the thread lock, make get atomic

	push	0
	lea	ecx, DWORD PTR __Lock$[esp+48]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 317  : 	const locale::facet *_Psave =
; 318  : 		_Facetptr<_Facet>::_Psave;	// static pointer to lazy facet
; 319  : 
; 320  : 	size_t _Id = _Facet::id;

	mov	eax, DWORD PTR ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
	test	eax, eax
	mov	edi, DWORD PTR ?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >::_Psave
	mov	DWORD PTR __$EHRec$[esp+52], 0
	mov	DWORD PTR __Psave$[esp+44], edi
	jne	SHORT $L21921
	push	0
	lea	ecx, DWORD PTR __Lock$21922[esp+48]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
	test	eax, eax
	jne	SHORT $L21923
	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	inc	eax
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A, eax ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
$L21923:
	lea	ecx, DWORD PTR __Lock$21922[esp+44]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$L21921:

; 321  : 	const locale::facet *_Pf = _Loc._Getfacet(_Id);

	mov	eax, DWORD PTR ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
	mov	ecx, DWORD PTR __Loc$[esp+40]
	push	eax
	call	?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z ; std::locale::_Getfacet
	mov	esi, eax

; 322  : 
; 323  : 	if (_Pf != 0)

	test	esi, esi
	jne	SHORT $L17773

; 324  : 		;	// got facet from locale
; 325  : 	else if (_Psave != 0)

	test	edi, edi
	je	SHORT $L17767

; 326  : 		_Pf = _Psave;	// lazy facet already allocated

	mov	esi, edi

; 327  : 	else if (_Facet::_Getcat(&_Psave) == (size_t)(-1))

	jmp	SHORT $L17773
$L17767:
	lea	ecx, DWORD PTR __Psave$[esp+44]
	push	ecx
	call	?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SAIPAPBVfacet@locale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getcat
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $L17770

; 328  : 
; 329  :  #if _HAS_EXCEPTIONS
; 330  : 		throw bad_cast();	// lazy disallowed

	push	OFFSET FLAT:??_C@_08EPJLHIJG@bad?5cast?$AA@
	lea	ecx, DWORD PTR $T21915[esp+48]
	call	??0bad_cast@@QAE@PBD@Z			; bad_cast::bad_cast
	push	OFFSET FLAT:__TI2?AVbad_cast@@
	lea	edx, DWORD PTR $T21915[esp+48]
	push	edx
	call	__CxxThrowException@8
$L21936:
$L17770:

; 331  : 
; 332  :  #else /* _HAS_EXCEPTIONS */
; 333  : 		abort();	// lazy disallowed
; 334  :  #endif /* _HAS_EXCEPTIONS */
; 335  : 
; 336  : 	else
; 337  : 		{	// queue up lazy facet for destruction
; 338  : 		_Pf = _Psave;

	mov	esi, DWORD PTR __Psave$[esp+44]

; 339  : 		_Facetptr<_Facet>::_Psave = _Psave;
; 340  : 
; 341  : 		locale::facet *_Pfmod = (_Facet *)_Psave;
; 342  : 		_Pfmod->_Incref();

	push	0
	lea	ecx, DWORD PTR __Lock$21928[esp+48]
	mov	DWORD PTR ?_Psave@?$_Facetptr@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@2PBVfacet@locale@2@B, esi ; std::_Facetptr<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >::_Psave
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $L21929
	inc	eax
	mov	DWORD PTR [esi+4], eax
$L21929:
	lea	ecx, DWORD PTR __Lock$21928[esp+44]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 343  : 		_Pfmod->_Register();

	mov	ecx, esi
	call	?_Register@facet@locale@std@@QAEXXZ	; std::locale::facet::_Register
$L17773:

; 344  : 		}
; 345  : 
; 346  : 	return ((const _Facet&)(*_Pf));	// should be dynamic_cast

	lea	ecx, DWORD PTR __Lock$[esp+44]
	mov	DWORD PTR __$EHRec$[esp+52], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 347  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+44]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 36					; 00000024H
	ret	0
$L21934:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L21917:
	lea	ecx, DWORD PTR __Lock$[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z:
	mov	eax, OFFSET FLAT:$T21932
	jmp	___CxxFrameHandler
text$x	ENDS
??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z ENDP ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >
PUBLIC	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
xdata$x	SEGMENT
$T22091	DD	0ffffffffH
	DD	FLAT:$L21952
	DD	00H
	DD	FLAT:$L21953
	DD	00H
	DD	00H
	DD	00H
	DD	00H
$T22093	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L21951
$T22092	DD	02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:$T22093
$T22083	DD	019930520H
	DD	04H
	DD	FLAT:$T22091
	DD	01H
	DD	FLAT:$T22092
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
xdata$x	ENDS
;	COMDAT ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z
_TEXT	SEGMENT
$T21948 = -60						; size = 8
$T21947 = -60						; size = 8
__Ok$ = -52						; size = 8
__Nget_fac$16065 = -44					; size = 4
$T21946 = -40						; size = 8
__Lock$21980 = -36					; size = 4
$T21943 = -32						; size = 4
__Tmp$16064 = -28					; size = 4
_this$ = -24						; size = 4
__State$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Val$ = 8						; size = 4
??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::operator>>, COMDAT
; _this$ = ecx

; 220  : 		{	// extract an int

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 48					; 00000030H
	push	ebx
	push	esi
	push	edi
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	esi, ecx

; 221  : 		ios_base::iostate _State = ios_base::goodbit;

	xor	edi, edi

; 222  : 		const sentry _Ok(*this);

	push	edi
	push	esi
	lea	ecx, DWORD PTR __Ok$[ebp]
	mov	DWORD PTR _this$[ebp], esi
	mov	DWORD PTR __State$[ebp], edi
	call	??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry

; 223  : 
; 224  : 		if (_Ok)

	mov	al, BYTE PTR __Ok$[ebp+4]
	test	al, al
	mov	DWORD PTR __$EHRec$[ebp+12], edi
	je	$L22088

; 225  : 			{	// state okay, use facet to extract
; 226  : 			long _Tmp = 0;
; 227  : 			const _Nget& _Nget_fac = _USE(ios_base::getloc(), _Nget);

	mov	ecx, DWORD PTR [esi]
	mov	DWORD PTR __Tmp$16064[ebp], edi
	mov	ecx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR $T21943[ebp]
	push	eax
	add	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	BYTE PTR __$EHRec$[ebp+12], 1
	call	??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >
	mov	edi, DWORD PTR $T21943[ebp]
	add	esp, 4
	test	edi, edi
	mov	ebx, eax
	mov	DWORD PTR __Nget_fac$16065[ebp], ebx
	mov	BYTE PTR __$EHRec$[ebp+12], 0
	je	SHORT $L21977
	push	0
	lea	ecx, DWORD PTR __Lock$21980[ebp]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $L21981
	cmp	eax, -1
	jae	SHORT $L21981
	dec	eax
	mov	DWORD PTR [edi+4], eax
$L21981:
	mov	ecx, DWORD PTR [edi+4]
	xor	edx, edx
	test	ecx, ecx
	setne	dl
	lea	ecx, DWORD PTR __Lock$21980[ebp]
	dec	edx
	and	edi, edx
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	edi, edi
	je	SHORT $L21977
	mov	eax, DWORD PTR [edi]
	push	1
	mov	ecx, edi
	call	DWORD PTR [eax]
$L21977:

; 228  : 
; 229  : 			_TRY_IO_BEGIN
; 230  : 			_Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0),
; 231  : 				*this, _State, _Tmp);

	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [edx+esi+40]
	lea	eax, DWORD PTR [edx+esi]
	xor	edi, edi
	test	ecx, ecx
	sete	dl
	mov	BYTE PTR $T21947[ebp+4], dl
	mov	edx, DWORD PTR [ebx]
	lea	ebx, DWORD PTR __Tmp$16064[ebp]
	push	ebx
	lea	ebx, DWORD PTR __State$[ebp]
	push	ebx
	push	eax
	mov	BYTE PTR $T21946[ebp+4], 1
	mov	eax, DWORD PTR $T21946[ebp+4]
	push	eax
	mov	eax, DWORD PTR $T21947[ebp+4]
	push	edi
	push	eax
	push	ecx
	lea	ecx, DWORD PTR $T21948[ebp]
	push	ecx
	mov	ecx, DWORD PTR __Nget_fac$16065[ebp]
	mov	BYTE PTR __$EHRec$[ebp+12], 2
	call	DWORD PTR [edx+32]
	jmp	SHORT $L16071
$L21951:

; 232  : 			_CATCH_IO_END

	mov	eax, DWORD PTR _this$[ebp]
	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx+4]
	mov	edx, DWORD PTR [ecx+eax+40]
	add	ecx, eax
	mov	eax, DWORD PTR [ecx+8]
	or	eax, 4
	test	edx, edx
	jne	SHORT $L22020
	or	eax, 4
$L22020:
	push	1
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
	mov	eax, $L22087
	ret	0
$L22087:
	mov	esi, DWORD PTR _this$[ebp]
$L16071:

; 233  : 
; 234  : 			if (_State & ios_base::failbit
; 235  : 				|| _Tmp < INT_MIN || INT_MAX < _Tmp)

	mov	edx, DWORD PTR __State$[ebp]
	test	dl, 2
	mov	DWORD PTR __$EHRec$[ebp+12], 0
	jne	SHORT $L16293
	mov	eax, DWORD PTR __Tmp$16064[ebp]
	cmp	eax, -2147483648			; 80000000H
	jl	SHORT $L16293
	cmp	eax, 2147483647				; 7fffffffH
	jg	SHORT $L16293

; 237  : 			else
; 238  : 				_Val = _Tmp;

	mov	ecx, DWORD PTR __Val$[ebp]
	mov	DWORD PTR [ecx], eax
	jmp	SHORT $L16294
$L16293:

; 236  : 				_State |= ios_base::failbit;

	or	edx, 2
	mov	DWORD PTR __State$[ebp], edx
	jmp	SHORT $L16294
$L22088:
	mov	edx, DWORD PTR __State$[ebp]
$L16294:

; 239  : 			}
; 240  : 
; 241  : 		_Myios::setstate(_State);

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	add	ecx, esi
	test	edx, edx
	je	SHORT $L22040
	mov	eax, DWORD PTR [ecx+8]
	or	eax, edx
	mov	edx, DWORD PTR [ecx+40]
	test	edx, edx
	jne	SHORT $L22043
	or	eax, 4
$L22043:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L22040:

; 242  : 		return (*this);

	mov	eax, DWORD PTR __Ok$[ebp]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	je	SHORT $L22084
	lea	ecx, DWORD PTR [eax+4]
	call	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L22084:

; 243  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L21952:
	lea	ecx, DWORD PTR __Ok$[ebp]
	jmp	??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
$L21953:
	lea	ecx, DWORD PTR $T21943[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z:
	mov	eax, OFFSET FLAT:$T22083
	jmp	___CxxFrameHandler
text$x	ENDS
??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::operator>>
PUBLIC	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
xdata$x	SEGMENT
$T22246	DD	0ffffffffH
	DD	FLAT:$L22107
	DD	00H
	DD	FLAT:$L22108
	DD	00H
	DD	00H
	DD	00H
	DD	00H
$T22248	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L22106
$T22247	DD	02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:$T22248
$T22238	DD	019930520H
	DD	04H
	DD	FLAT:$T22246
	DD	01H
	DD	FLAT:$T22247
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
xdata$x	ENDS
;	COMDAT ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z
_TEXT	SEGMENT
$T22103 = -56						; size = 8
$T22102 = -56						; size = 8
__Ok$ = -48						; size = 8
__Nget_fac$16301 = -40					; size = 4
$T22101 = -36						; size = 8
__Lock$22135 = -32					; size = 4
$T22098 = -28						; size = 4
__State$ = -24						; size = 4
_this$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Val$ = 8						; size = 4
??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::operator>>, COMDAT
; _this$ = ecx

; 340  : 		{	// extract a float

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 44					; 0000002cH
	push	ebx
	push	esi
	push	edi
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	esi, ecx

; 341  : 		ios_base::iostate _State = ios_base::goodbit;

	xor	edi, edi

; 342  : 		const sentry _Ok(*this);

	push	edi
	push	esi
	lea	ecx, DWORD PTR __Ok$[ebp]
	mov	DWORD PTR _this$[ebp], esi
	mov	DWORD PTR __State$[ebp], edi
	call	??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry

; 343  : 
; 344  : 		if (_Ok)

	mov	al, BYTE PTR __Ok$[ebp+4]
	test	al, al
	mov	DWORD PTR __$EHRec$[ebp+12], edi
	je	$L16303

; 345  : 			{	// state okay, use facet to extract
; 346  : 			const _Nget& _Nget_fac = _USE(ios_base::getloc(), _Nget);

	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR $T22098[ebp]
	push	eax
	add	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	BYTE PTR __$EHRec$[ebp+12], 1
	call	??$use_facet@V?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@@std@@YAABV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@0@ABVlocale@0@@Z ; std::use_facet<std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > > >
	mov	edi, DWORD PTR $T22098[ebp]
	add	esp, 4
	test	edi, edi
	mov	ebx, eax
	mov	DWORD PTR __Nget_fac$16301[ebp], ebx
	mov	BYTE PTR __$EHRec$[ebp+12], 0
	je	SHORT $L22132
	push	0
	lea	ecx, DWORD PTR __Lock$22135[ebp]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $L22136
	cmp	eax, -1
	jae	SHORT $L22136
	dec	eax
	mov	DWORD PTR [edi+4], eax
$L22136:
	mov	ecx, DWORD PTR [edi+4]
	xor	edx, edx
	test	ecx, ecx
	setne	dl
	lea	ecx, DWORD PTR __Lock$22135[ebp]
	dec	edx
	and	edi, edx
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	edi, edi
	je	SHORT $L22132
	mov	eax, DWORD PTR [edi]
	push	1
	mov	ecx, edi
	call	DWORD PTR [eax]
$L22132:

; 347  : 
; 348  : 			_TRY_IO_BEGIN
; 349  : 			_Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0),
; 350  : 				*this, _State, _Val);

	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [edx+esi+40]
	lea	eax, DWORD PTR [edx+esi]
	xor	edi, edi
	test	ecx, ecx
	sete	dl
	mov	BYTE PTR $T22102[ebp+4], dl
	mov	edx, DWORD PTR [ebx]
	mov	ebx, DWORD PTR __Val$[ebp]
	push	ebx
	lea	ebx, DWORD PTR __State$[ebp]
	push	ebx
	push	eax
	mov	BYTE PTR $T22101[ebp+4], 1
	mov	eax, DWORD PTR $T22101[ebp+4]
	push	eax
	mov	eax, DWORD PTR $T22102[ebp+4]
	push	edi
	push	eax
	push	ecx
	lea	ecx, DWORD PTR $T22103[ebp]
	push	ecx
	mov	ecx, DWORD PTR __Nget_fac$16301[ebp]
	mov	BYTE PTR __$EHRec$[ebp+12], 2
	call	DWORD PTR [edx+16]
	jmp	SHORT $L16303
$L22106:

; 351  : 			_CATCH_IO_END

	mov	eax, DWORD PTR _this$[ebp]
	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx+4]
	mov	edx, DWORD PTR [ecx+eax+40]
	add	ecx, eax
	mov	eax, DWORD PTR [ecx+8]
	or	eax, 4
	test	edx, edx
	jne	SHORT $L22177
	or	eax, 4
$L22177:
	push	1
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
	mov	eax, $L22242
	ret	0
$L22242:
	mov	esi, DWORD PTR _this$[ebp]
$L16303:

; 352  : 			}
; 353  : 
; 354  : 		_Myios::setstate(_State);

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR __State$[ebp]
	add	ecx, esi
	test	edx, edx
	mov	DWORD PTR __$EHRec$[ebp+12], 0
	je	SHORT $L22197
	mov	eax, DWORD PTR [ecx+8]
	or	eax, edx
	mov	edx, DWORD PTR [ecx+40]
	test	edx, edx
	jne	SHORT $L22200
	or	eax, 4
$L22200:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L22197:

; 355  : 		return (*this);

	mov	eax, DWORD PTR __Ok$[ebp]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+eax+40]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	je	SHORT $L22239
	lea	ecx, DWORD PTR [eax+4]
	call	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L22239:

; 356  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L22107:
	lea	ecx, DWORD PTR __Ok$[ebp]
	jmp	??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
$L22108:
	lea	ecx, DWORD PTR $T22098[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z:
	mov	eax, OFFSET FLAT:$T22238
	jmp	___CxxFrameHandler
text$x	ENDS
??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::operator>>
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
__Roff$ = 12						; size = 4
__Count$ = 16						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 590  : 		{	// assign _Right [_Roff, _Roff + _Count)

	push	ebx
	push	ebp
	push	esi

; 591  : 		if (_Right.size() < _Roff)

	mov	esi, DWORD PTR __Roff$[esp+8]
	push	edi
	mov	edi, DWORD PTR __Right$[esp+12]
	cmp	DWORD PTR [edi+20], esi
	mov	ebx, ecx
	jae	SHORT $L16696

; 592  : 			_String_base::_Xran();	// _Roff off end

	call	?_Xran@_String_base@std@@QBEXXZ		; std::_String_base::_Xran
$L16696:

; 593  : 		size_type _Num = _Right.size() - _Roff;

	mov	ebp, DWORD PTR [edi+20]

; 594  : 		if (_Count < _Num)

	mov	eax, DWORD PTR __Count$[esp+12]
	sub	ebp, esi
	cmp	eax, ebp
	jae	SHORT $L16698

; 595  : 			_Num = _Count;	// trim _Num to size

	mov	ebp, eax
$L16698:

; 596  : 
; 597  : 		if (this == &_Right)

	cmp	ebx, edi
	jne	SHORT $L16699

; 598  : 			erase((size_type)(_Roff + _Num)), erase(0, _Roff);	// substring

	push	-1
	add	ebp, esi
	push	ebp
	mov	ecx, ebx
	call	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
	push	esi
	push	0
	mov	ecx, ebx
	call	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::erase
	pop	edi
	pop	esi
	pop	ebp

; 603  : 			}
; 604  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 605  : 		}

	ret	12					; 0000000cH
$L16699:

; 599  : 		else if (_Grow(_Num))

	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L22399
	mov	ecx, ebx
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L22399:
	mov	eax, DWORD PTR [ebx+24]
	cmp	eax, ebp
	jae	SHORT $L22401
	mov	eax, DWORD PTR [ebx+20]
	push	eax
	push	ebp
	mov	ecx, ebx
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	ebp, ebp
$L22446:
	jbe	SHORT $L22445

; 600  : 			{	// make room and assign new stuff
; 601  : 			_Traits::copy(_Myptr(), _Right._Myptr() + _Roff, _Num);

	mov	ecx, DWORD PTR [edi+24]
	mov	eax, 16					; 00000010H
	cmp	ecx, eax
	jb	SHORT $L22411
	mov	edx, DWORD PTR [edi+4]
	jmp	SHORT $L22412

; 599  : 		else if (_Grow(_Num))

$L22401:
	test	ebp, ebp
	jne	SHORT $L22446
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L22393
	mov	eax, DWORD PTR [ebx+4]
	pop	edi
	pop	esi
	mov	BYTE PTR [eax], 0
	pop	ebp

; 603  : 			}
; 604  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 605  : 		}

	ret	12					; 0000000cH

; 599  : 		else if (_Grow(_Num))

$L22393:
	pop	edi
	lea	eax, DWORD PTR [ebx+4]
	pop	esi
	mov	BYTE PTR [eax], 0
	pop	ebp

; 603  : 			}
; 604  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 605  : 		}

	ret	12					; 0000000cH

; 600  : 			{	// make room and assign new stuff
; 601  : 			_Traits::copy(_Myptr(), _Right._Myptr() + _Roff, _Num);

$L22411:
	lea	edx, DWORD PTR [edi+4]
$L22412:
	cmp	DWORD PTR [ebx+24], eax
	lea	eax, DWORD PTR [ebx+4]
	jb	SHORT $L22418
	mov	edi, DWORD PTR [eax]
	jmp	SHORT $L22419
$L22418:
	mov	edi, eax
$L22419:
	add	esi, edx
	mov	ecx, ebp
	mov	edx, ecx
	shr	ecx, 2
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb

; 602  : 			_Eos(_Num);

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L22442
	mov	eax, DWORD PTR [eax]
$L22442:
	mov	BYTE PTR [eax+ebp], 0
$L22445:
	pop	edi
	pop	esi
	pop	ebp

; 603  : 			}
; 604  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 605  : 		}

	ret	12					; 0000000cH
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogty
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
__Num$ = 12						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 608  : 		{	// assign [_Ptr, _Ptr + _Num)

	push	ebx
	mov	ebx, ecx

; 609  : 		if (_Inside(_Ptr))

	mov	edx, DWORD PTR [ebx+24]
	cmp	edx, 16					; 00000010H
	push	esi
	push	edi
	jb	SHORT $L22472
	mov	eax, DWORD PTR [ebx+4]
	jmp	SHORT $L22473
$L22472:
	lea	eax, DWORD PTR [ebx+4]
$L22473:
	mov	esi, DWORD PTR __Ptr$[esp+8]
	cmp	esi, eax
	jb	SHORT $L17221
	cmp	edx, 16					; 00000010H
	lea	eax, DWORD PTR [ebx+4]
	jb	SHORT $L22476
	mov	ecx, DWORD PTR [eax]
	jmp	SHORT $L22477
$L22476:
	mov	ecx, eax
$L22477:
	mov	edi, DWORD PTR [ebx+20]
	add	edi, ecx
	cmp	edi, esi
	jbe	SHORT $L17221

; 610  : 			return (assign(*this, _Ptr - _Myptr(), _Num));	// substring

	cmp	edx, 16					; 00000010H
	jb	SHORT $L22485
	mov	eax, DWORD PTR [eax]
$L22485:
	mov	ecx, DWORD PTR __Num$[esp+8]
	push	ecx
	sub	esi, eax
	push	esi
	push	ebx
	mov	ecx, ebx
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	edi
	pop	esi
	pop	ebx

; 618  : 		}

	ret	8
$L17221:
	push	ebp

; 611  : 
; 612  : 		if (_Grow(_Num))

	mov	ebp, DWORD PTR __Num$[esp+12]
	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L22612
	mov	ecx, ebx
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L22612:
	mov	eax, DWORD PTR [ebx+24]
	cmp	eax, ebp
	jae	SHORT $L22613
	mov	edx, DWORD PTR [ebx+20]
	push	edx
	push	ebp
	mov	ecx, ebx
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	ebp, ebp
$L22664:
	jbe	SHORT $L22660

; 613  : 			{	// make room and assign new stuff
; 614  : 			_Traits::copy(_Myptr(), _Ptr, _Num);

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	jb	SHORT $L22635
	mov	edi, DWORD PTR [ebx+4]
	jmp	SHORT $L22636

; 611  : 
; 612  : 		if (_Grow(_Num))

$L22613:
	test	ebp, ebp
	jne	SHORT $L22664
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L22605
	mov	eax, DWORD PTR [ebx+4]
	pop	ebp
	pop	edi
	mov	BYTE PTR [eax], 0
	pop	esi

; 616  : 			}
; 617  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 618  : 		}

	ret	8

; 611  : 
; 612  : 		if (_Grow(_Num))

$L22605:
	pop	ebp
	lea	eax, DWORD PTR [ebx+4]
	pop	edi
	mov	BYTE PTR [eax], 0
	pop	esi

; 616  : 			}
; 617  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 618  : 		}

	ret	8

; 613  : 			{	// make room and assign new stuff
; 614  : 			_Traits::copy(_Myptr(), _Ptr, _Num);

$L22635:
	lea	edi, DWORD PTR [ebx+4]
$L22636:
	mov	ecx, ebp
	mov	eax, ecx
	shr	ecx, 2
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb

; 615  : 			_Eos(_Num);

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L22657
	mov	eax, DWORD PTR [ebx+4]
	mov	BYTE PTR [eax+ebp], 0
	pop	ebp
	pop	edi
	pop	esi

; 616  : 			}
; 617  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 618  : 		}

	ret	8

; 615  : 			_Eos(_Num);

$L22657:
	lea	eax, DWORD PTR [ebx+4]
	mov	BYTE PTR [eax+ebp], 0
$L22660:
	pop	ebp
	pop	edi
	pop	esi

; 616  : 			}
; 617  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 618  : 		}

	ret	8
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z ; std::basic_ostream<char,std::char_traits<char> >::basic_ostream<char,std::char_traits<char> >
PUBLIC	??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ ; std::basic_ostream<char,std::char_traits<char> >::`vbtable'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xiosbase
xdata$x	SEGMENT
$T22683	DD	0ffffffffH
	DD	FLAT:$L22669
$T22681	DD	019930520H
	DD	01H
	DD	FLAT:$T22683
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@
CONST	SEGMENT
??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ DD 00H ; std::basic_ostream<char,std::char_traits<char> >::`vbtable'
	DD	04H
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ostream
CONST	ENDS
;	COMDAT ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z
_TEXT	SEGMENT
$T22668 = -20						; size = 4
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Strbuf$ = 8						; size = 4
__Isstd$ = 12						; size = 1
_$initVBases$ = 16					; size = 4
??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z PROC NEAR ; std::basic_ostream<char,std::char_traits<char> >::basic_ostream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 44   : 	explicit basic_ostream(basic_streambuf<_Elem, _Traits> *_Strbuf,

	push	-1
	push	__ehhandler$??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 8
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _$initVBases$[esp+20]
	xor	eax, eax
	cmp	ecx, eax
	mov	DWORD PTR _this$[esp+24], esi
	mov	DWORD PTR $T22668[esp+24], eax
	je	SHORT $L17245
	mov	DWORD PTR [esi], OFFSET FLAT:??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@
	mov	DWORD PTR [esi+4], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR __$EHRec$[esp+32], eax
	mov	DWORD PTR $T22668[esp+24], 1
$L17245:
	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]

; 45   : 		bool _Isstd = false)
; 46   : 		{	// construct from a stream buffer pointer
; 47   : 		_Myios::init(_Strbuf, _Isstd);

	mov	edx, DWORD PTR __Isstd$[esp+20]
	mov	eax, DWORD PTR __Strbuf$[esp+20]
	mov	DWORD PTR [esi+ecx], OFFSET FLAT:??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@
	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+4]
	push	edx
	push	eax
	add	ecx, esi
	call	?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z ; std::basic_ios<char,std::char_traits<char> >::init

; 48   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 20					; 00000014H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L22669:
	mov	eax, DWORD PTR $T22668[ebp]
	and	eax, 1
	je	$L22670
	and	DWORD PTR $T22668[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 4
	jmp	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
$L22670:
	ret	0
__ehhandler$??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z:
	mov	eax, OFFSET FLAT:$T22681
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z ENDP ; std::basic_ostream<char,std::char_traits<char> >::basic_ostream<char,std::char_traits<char> >
PUBLIC	??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z ; std::basic_istream<char,std::char_traits<char> >::basic_istream<char,std::char_traits<char> >
PUBLIC	??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ ; std::basic_istream<char,std::char_traits<char> >::`vbtable'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xiosbase
xdata$x	SEGMENT
$T22705	DD	0ffffffffH
	DD	FLAT:$L22690
$T22702	DD	019930520H
	DD	01H
	DD	FLAT:$T22705
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@
CONST	SEGMENT
??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ DD 00H ; std::basic_istream<char,std::char_traits<char> >::`vbtable'
	DD	08H
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
CONST	ENDS
;	COMDAT ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z
_TEXT	SEGMENT
$T22689 = -20						; size = 4
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Strbuf$ = 8						; size = 4
__Isstd$ = 12						; size = 1
__Noinit$ = 16						; size = 1
_$initVBases$ = 20					; size = 4
??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z PROC NEAR ; std::basic_istream<char,std::char_traits<char> >::basic_istream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 28   : 		{	// construct from stream buffer pointer

	push	-1
	push	__ehhandler$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 8
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _$initVBases$[esp+20]
	xor	eax, eax
	cmp	ecx, eax
	mov	DWORD PTR _this$[esp+24], esi
	mov	DWORD PTR $T22689[esp+24], eax
	je	SHORT $L17259
	mov	DWORD PTR [esi], OFFSET FLAT:??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@
	mov	DWORD PTR [esi+8], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR __$EHRec$[esp+32], eax
	mov	DWORD PTR $T22689[esp+24], 1
$L17259:
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]

; 29   : 		if (!_Noinit)

	cmp	BYTE PTR __Noinit$[esp+20], al
	mov	DWORD PTR [esi+edx], OFFSET FLAT:??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR [esi+4], eax
	jne	SHORT $L22703

; 30   : 			_Myios::init(_Strbuf, _Isstd);

	mov	eax, DWORD PTR __Isstd$[esp+20]
	mov	ecx, DWORD PTR __Strbuf$[esp+20]
	mov	edx, DWORD PTR [esi]
	push	eax
	push	ecx
	mov	ecx, DWORD PTR [edx+4]
	add	ecx, esi
	call	?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z ; std::basic_ios<char,std::char_traits<char> >::init
$L22703:

; 31   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 20					; 00000014H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L22690:
	mov	eax, DWORD PTR $T22689[ebp]
	and	eax, 1
	je	$L22691
	and	DWORD PTR $T22689[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 8
	jmp	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
$L22691:
	ret	0
__ehhandler$??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z:
	mov	eax, OFFSET FLAT:$T22702
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z ENDP ; std::basic_istream<char,std::char_traits<char> >::basic_istream<char,std::char_traits<char> >
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 621  : 		{	// assign [_Ptr, <null>)

	push	esi

; 622  : 		return (assign(_Ptr, _Traits::length(_Ptr)));

	mov	esi, DWORD PTR __Ptr$[esp]
	mov	eax, esi
	push	edi
	lea	edi, DWORD PTR [eax+1]
	npad	5
$L22714:
	mov	dl, BYTE PTR [eax]
	inc	eax
	test	dl, dl
	jne	SHORT $L22714
	sub	eax, edi
	push	eax
	push	esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	edi
	pop	esi

; 623  : 		}

	ret	4
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z ; std::basic_iostream<char,std::char_traits<char> >::basic_iostream<char,std::char_traits<char> >
PUBLIC	??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ ; std::basic_iostream<char,std::char_traits<char> >::`vbtable'
PUBLIC	??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ ; std::basic_iostream<char,std::char_traits<char> >::`vbtable'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
xdata$x	SEGMENT
$T22881	DD	0ffffffffH
	DD	FLAT:$L22719
	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L22721
	DD	02H
	DD	00H
$T22879	DD	019930520H
	DD	04H
	DD	FLAT:$T22881
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@
CONST	SEGMENT
??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ DD 00H ; std::basic_iostream<char,std::char_traits<char> >::`vbtable'
	DD	0cH
CONST	ENDS
;	COMDAT ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@
CONST	SEGMENT
??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ DD 00H ; std::basic_iostream<char,std::char_traits<char> >::`vbtable'
	DD	04H
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
CONST	ENDS
;	COMDAT ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z
_TEXT	SEGMENT
$T22718 = -20						; size = 4
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Strbuf$ = 8						; size = 4
$T22877 = 12						; size = 4
_$initVBases$ = 12					; size = 4
??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z PROC NEAR ; std::basic_iostream<char,std::char_traits<char> >::basic_iostream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 866  : 		{	// construct from stream buffer pointer

	push	-1
	push	__ehhandler$??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 8
	push	ebx
	xor	ebx, ebx
	push	esi
	mov	DWORD PTR $T22718[esp+28], ebx
	cmp	DWORD PTR _$initVBases$[esp+24], ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR _this$[esp+32], edi
	je	SHORT $L16966
	mov	DWORD PTR [edi], OFFSET FLAT:??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@
	mov	DWORD PTR [edi+8], OFFSET FLAT:??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@
	mov	DWORD PTR [edi+12], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR $T22718[esp+32], 1
$L16966:
	mov	eax, DWORD PTR [edi]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [edi+ecx], OFFSET FLAT:??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR [edi+4], ebx
	mov	edx, DWORD PTR [edi+8]
	mov	ecx, DWORD PTR [edx+4]
	lea	eax, DWORD PTR [edi+8]
	mov	DWORD PTR [eax+ecx], OFFSET FLAT:??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@
	mov	edx, DWORD PTR [eax]
	mov	esi, DWORD PTR [edx+4]
	add	esi, eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+40], 2
	mov	DWORD PTR $T22877[esp+28], eax
	call	?_Init@ios_base@std@@IAEXXZ		; std::ios_base::_Init
	mov	eax, DWORD PTR __Strbuf$[esp+28]
	push	32					; 00000020H
	mov	ecx, esi
	mov	DWORD PTR [esi+40], eax
	mov	DWORD PTR [esi+44], ebx
	call	?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z ; std::basic_ios<char,std::char_traits<char> >::widen
	mov	BYTE PTR [esi+48], al
	cmp	DWORD PTR [esi+40], ebx
	jne	SHORT $L22871
	mov	eax, DWORD PTR [esi+8]
	or	eax, 4
	push	ebx
	push	eax
	mov	ecx, esi
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L22871:
	mov	DWORD PTR [esi+4], ebx
	mov	ecx, DWORD PTR [edi]
	mov	edx, DWORD PTR [ecx+4]

; 867  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	mov	DWORD PTR [edi+edx], OFFSET FLAT:??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@
	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 20					; 00000014H
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L22719:
	mov	eax, DWORD PTR $T22718[ebp]
	and	eax, 1
	je	$L22720
	and	DWORD PTR $T22718[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 12					; 0000000cH
	jmp	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
$L22720:
	ret	0
$L22721:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 8
	jmp	??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_istream<char,std::char_traits<char> >::~basic_istream<char,std::char_traits<char> >
__ehhandler$??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z:
	mov	eax, OFFSET FLAT:$T22879
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z ENDP ; std::basic_iostream<char,std::char_traits<char> >::basic_iostream<char,std::char_traits<char> >
PUBLIC	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 361  : 		_Tidy();
; 362  : 		assign(_Ptr);

	mov	edx, DWORD PTR __Ptr$[esp-4]
	push	esi
	mov	esi, ecx
	mov	eax, edx
	push	edi
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	DWORD PTR [esi+20], 0
	mov	BYTE PTR [esi+4], 0
	lea	edi, DWORD PTR [eax+1]
	npad	1
$L22958:
	mov	cl, BYTE PTR [eax]
	inc	eax
	test	cl, cl
	jne	SHORT $L22958
	sub	eax, edi
	push	eax
	push	edx
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	edi

; 363  : 		}

	mov	eax, esi
	pop	esi
	ret	4
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
_TEXT	ENDS
PUBLIC	??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbtable'
PUBLIC	??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbtable'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xiosbase
xdata$x	SEGMENT
$T22979	DD	0ffffffffH
	DD	FLAT:$L22963
	DD	00H
	DD	FLAT:$L22965
$T22977	DD	019930520H
	DD	02H
	DD	FLAT:$T22979
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@
CONST	SEGMENT
??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ DD 00H ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbtable'
	DD	054H
CONST	ENDS
;	COMDAT ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@
CONST	SEGMENT
??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ DD 00H ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbtable'
	DD	04cH
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\sstream
CONST	ENDS
;	COMDAT ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z
_TEXT	SEGMENT
$T22962 = -20						; size = 4
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Mode$ = 8						; size = 4
_$initVBases$ = 12					; size = 4
??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z PROC NEAR ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 472  : 		{	// construct empty character buffer

	push	-1
	push	__ehhandler$??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 8
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _$initVBases$[esp+20]
	xor	eax, eax
	cmp	ecx, eax
	push	edi
	mov	DWORD PTR _this$[esp+28], esi
	mov	DWORD PTR $T22962[esp+28], eax
	je	SHORT $L16500
	mov	DWORD PTR [esi], OFFSET FLAT:??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@
	mov	DWORD PTR [esi+8], OFFSET FLAT:??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@
	mov	DWORD PTR [esi+84], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR __$EHRec$[esp+36], eax
	mov	DWORD PTR $T22962[esp+28], 1
$L16500:
	push	eax
	lea	edi, DWORD PTR [esi+12]
	push	edi
	mov	ecx, esi
	call	??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z ; std::basic_iostream<char,std::char_traits<char> >::basic_iostream<char,std::char_traits<char> >
	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR __Mode$[esp+24]
	mov	DWORD PTR [esi+ecx], OFFSET FLAT:??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@
	push	edx
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+40], 1
	call	??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z ; std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >

; 473  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 20					; 00000014H
	ret	8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L22963:
	mov	eax, DWORD PTR $T22962[ebp]
	and	eax, 1
	je	$L22964
	and	DWORD PTR $T22962[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 84					; 00000054H
	jmp	??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ios<char,std::char_traits<char> >::~basic_ios<char,std::char_traits<char> >
$L22964:
	ret	0
$L22965:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 12					; 0000000cH
	jmp	??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_iostream<char,std::char_traits<char> >::~basic_iostream<char,std::char_traits<char> >
__ehhandler$??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z:
	mov	eax, OFFSET FLAT:$T22977
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z ENDP ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
PUBLIC	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
PUBLIC	??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ; std::use_facet<std::numpunct<char> >
PUBLIC	?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::falsename
PUBLIC	?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::truename
PUBLIC	??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z ; std::_Getloctxt<char,std::istreambuf_iterator<char,std::char_traits<char> > >
PUBLIC	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
PUBLIC	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
PUBLIC	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
EXTRN	__errno:NEAR
EXTRN	_strtoul:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T23387	DD	0ffffffffH
	DD	FLAT:$L22989
	DD	0ffffffffH
	DD	FLAT:$L22990
	DD	01H
	DD	FLAT:$L22991
	DD	01H
	DD	FLAT:$L22992
	DD	0ffffffffH
	DD	FLAT:$L22993
$T23380	DD	019930520H
	DD	05H
	DD	FLAT:$T23387
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
_TEXT	SEGMENT
__Lock$23024 = -88					; size = 4
$T22988 = -84						; size = 4
__Lock$23372 = -80					; size = 4
__Ep$17066 = -76					; size = 4
__Str$17012 = -72					; size = 28
__Ac$17065 = -44					; size = 32
$T22987 = -44						; size = 28
$T22986 = -44						; size = 28
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T22985 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 306  : 		{	// get bool from [_First, _Last) into _Val

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 76					; 0000004cH
	push	ebp
	push	esi

; 307  : 		int _Ans = -1;	// negative answer indicates failure
; 308  : 
; 309  : 		if (_Iosbase.flags() & ios_base::boolalpha)

	mov	esi, DWORD PTR __Iosbase$[esp+92]
	mov	eax, DWORD PTR [esi+16]
	or	ebp, -1
	test	ah, 64					; 00000040H
	push	edi
	mov	edi, ecx
	je	$L17002

; 310  : 			{	// get false name or true name
; 311  : 			typedef typename _Mystr::size_type _Mystrsize;
; 312  : 			const _Mypunct& _Punct_fac = _USE(_Iosbase.getloc(), _Mypunct);

	lea	eax, DWORD PTR $T22985[esp+96]
	push	eax
	mov	ecx, esi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	mov	DWORD PTR __$EHRec$[esp+112], 0
	call	??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ; std::use_facet<std::numpunct<char> >
	mov	esi, DWORD PTR $T22985[esp+100]
	add	esp, 4
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+108], -1
	je	SHORT $L23381
	push	0
	lea	ecx, DWORD PTR __Lock$23024[esp+104]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L23025
	cmp	eax, -1
	jae	SHORT $L23025
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L23025:
	mov	eax, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	eax, eax
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$23024[esp+100]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L23381
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L23381:

; 313  : 			_Mystr _Str((_Mystrsize)1, (char_type)0);

	push	0
	push	1
	lea	ecx, DWORD PTR __Str$17012[esp+108]
	call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >

; 314  : 			_Str += _Punct_fac.falsename();

	lea	eax, DWORD PTR $T22986[esp+100]
	push	eax
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+112], 1
	call	?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::falsename
	push	-1
	push	0
	push	eax
	lea	ecx, DWORD PTR __Str$17012[esp+112]
	mov	BYTE PTR __$EHRec$[esp+120], 2
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
	mov	eax, DWORD PTR $T22986[esp+124]
	mov	esi, 16					; 00000010H
	cmp	eax, esi
	mov	BYTE PTR __$EHRec$[esp+108], 1
	jb	SHORT $L23163
	mov	ecx, DWORD PTR $T22986[esp+104]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L23163:

; 315  : 			_Str += (char_type)0;

	push	0
	push	1
	lea	ecx, DWORD PTR __Str$17012[esp+108]
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 316  : 			_Str += _Punct_fac.truename();	// construct "\0false\0true"

	lea	edx, DWORD PTR $T22987[esp+100]
	push	edx
	mov	ecx, edi
	call	?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::truename
	push	-1
	push	0
	push	eax
	lea	ecx, DWORD PTR __Str$17012[esp+112]
	mov	BYTE PTR __$EHRec$[esp+120], 3
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
	cmp	DWORD PTR $T22987[esp+124], esi
	mov	BYTE PTR __$EHRec$[esp+108], 1
	jb	SHORT $L23248
	mov	eax, DWORD PTR $T22987[esp+104]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L23248:

; 317  : 			_Ans = _Getloctxt(_First, _Last, (size_t)2, _Str.c_str());

	cmp	DWORD PTR __Str$17012[esp+124], esi
	mov	eax, DWORD PTR __Str$17012[esp+104]
	jae	SHORT $L23272
	lea	eax, DWORD PTR __Str$17012[esp+104]
$L23272:
	push	eax
	push	2
	lea	ecx, DWORD PTR __Last$[esp+104]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+108]
	push	edx
	call	??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z ; std::_Getloctxt<char,std::istreambuf_iterator<char,std::char_traits<char> > >
	mov	ebp, eax

; 318  : 			}

	mov	eax, DWORD PTR __Str$17012[esp+140]
	add	esp, 16					; 00000010H
	cmp	eax, esi
	mov	DWORD PTR __$EHRec$[esp+108], -1
	jb	$L23383
	mov	eax, DWORD PTR __Str$17012[esp+104]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4

; 319  : 		else

	jmp	$L23383
$L17002:

; 320  : 			{	// get zero or nonzero integer
; 321  : 			char _Ac[_MAX_INT_DIG], *_Ep;
; 322  : 			errno = 0;

	call	__errno

; 323  : 			const unsigned long _Ulo = ::strtoul(_Ac, &_Ep,
; 324  : 				_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 325  : 					_Iosbase.getloc()));

	lea	ecx, DWORD PTR $T22988[esp+100]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR [eax], 0
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	esi, DWORD PTR [esi+16]
	push	eax
	push	esi
	lea	edx, DWORD PTR __Last$[esp+104]
	push	edx
	lea	eax, DWORD PTR __First$[esp+108]
	push	eax
	lea	ecx, DWORD PTR __Ac$17065[esp+116]
	push	ecx
	push	edi
	mov	DWORD PTR __$EHRec$[esp+132], 4
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	push	eax
	lea	edx, DWORD PTR __Ep$17066[esp+128]
	push	edx
	lea	eax, DWORD PTR __Ac$17065[esp+132]
	push	eax
	call	_strtoul
	mov	esi, DWORD PTR $T22988[esp+136]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+108], -1
	je	SHORT $L23382
	push	0
	lea	ecx, DWORD PTR __Lock$23372[esp+104]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L23373
	cmp	eax, -1
	jae	SHORT $L23373
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L23373:
	mov	edx, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	edx, edx
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$23372[esp+100]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L23382
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L23382:

; 326  : 			if (_Ep != _Ac && errno == 0 && _Ulo <= 1)

	mov	ecx, DWORD PTR __Ep$17066[esp+100]
	lea	eax, DWORD PTR __Ac$17065[esp+100]
	cmp	ecx, eax
	je	SHORT $L23383
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L23383
	cmp	edi, 1
	ja	SHORT $L23383

; 327  : 				_Ans = _Ulo;

	mov	ebp, edi
$L23383:

; 328  : 			}
; 329  : 
; 330  : 		if (_First == _Last)

	lea	ecx, DWORD PTR __Last$[esp+96]
	push	ecx
	lea	ecx, DWORD PTR __First$[esp+100]
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	eax, DWORD PTR __State$[esp+96]
	je	SHORT $L17076

; 331  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$L17076:

; 332  : 		if (_Ans < 0)

	test	ebp, ebp
	jge	SHORT $L23386

; 333  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2

; 334  : 		else

	jmp	SHORT $L17078
$L23386:

; 335  : 			_Val = _Ans != 0;	// deliver value

	mov	eax, DWORD PTR __Val$[esp+96]
	setne	dl
	mov	BYTE PTR [eax], dl
$L17078:

; 336  : 		return (_First);

	mov	ecx, DWORD PTR __First$[esp+96]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+96]
	mov	edx, DWORD PTR __First$[esp+100]
	pop	edi
	mov	DWORD PTR [eax], ecx

; 337  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+96]
	pop	esi
	mov	DWORD PTR [eax+4], edx
	pop	ebp
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 88					; 00000058H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L22989:
	lea	ecx, DWORD PTR $T22985[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
$L22990:
	lea	ecx, DWORD PTR __Str$17012[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L22991:
	lea	ecx, DWORD PTR $T22986[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L22992:
	lea	ecx, DWORD PTR $T22987[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L22993:
	lea	ecx, DWORD PTR $T22988[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z:
	mov	eax, OFFSET FLAT:$T23380
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_N@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
;	COMDAT ?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z PROC NEAR ; std::istreambuf_iterator<char,std::char_traits<char> >::equal, COMDAT
; _this$ = ecx

; 899  : 		{	// test for equality

	push	esi
	push	edi
	mov	edi, ecx

; 900  : 		if (!_Got)

	mov	al, BYTE PTR [edi+4]
	test	al, al
	jne	SHORT $L17876

; 901  : 			((_Myt *)this)->_Peek();

	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L17876:

; 902  : 		if (!_Right._Got)

	mov	esi, DWORD PTR __Right$[esp+4]
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L17878

; 903  : 			((_Myt *)&_Right)->_Peek();

	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L17878:

; 904  : 		return (_Strbuf == 0 && _Right._Strbuf == 0
; 905  : 			|| _Strbuf != 0 && _Right._Strbuf != 0);

	cmp	DWORD PTR [edi], 0
	mov	eax, DWORD PTR [esi]
	jne	SHORT $L23419
	test	eax, eax
	je	SHORT $L23395
$L23394:
	pop	edi
	xor	eax, eax
	pop	esi

; 906  : 		}

	ret	4
$L23419:

; 904  : 		return (_Strbuf == 0 && _Right._Strbuf == 0
; 905  : 			|| _Strbuf != 0 && _Right._Strbuf != 0);

	test	eax, eax
	je	SHORT $L23394
$L23395:
	pop	edi
	mov	eax, 1
	pop	esi

; 906  : 		}

	ret	4
?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ
_TEXT	SEGMENT
?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ PROC NEAR ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek, COMDAT
; _this$ = ecx

; 920  : 		{	// peek at next input element

	push	esi
	mov	esi, ecx

; 921  : 		int_type _Meta;
; 922  : 		if (_Strbuf == 0
; 923  : 			|| traits_type::eq_int_type(traits_type::eof(),
; 924  : 				_Meta = _Strbuf->sgetc()))

	mov	ecx, DWORD PTR [esi]
	test	ecx, ecx
	je	SHORT $L17595
	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	je	SHORT $L23446
	mov	edx, DWORD PTR [ecx+32]
	mov	edx, DWORD PTR [edx]
	push	edi
	mov	edi, DWORD PTR [ecx+48]
	mov	edi, DWORD PTR [edi]
	add	edi, edx
	cmp	edx, edi
	pop	edi
	jae	SHORT $L23446
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $L23447
$L23446:
	mov	eax, DWORD PTR [ecx]
	call	DWORD PTR [eax+16]
$L23447:
	cmp	eax, -1
	je	SHORT $L17595

; 925  : 			_Strbuf = 0;
; 926  : 		else
; 927  : 			_Val = traits_type::to_char_type(_Meta);

	mov	BYTE PTR [esi+5], al

; 928  : 		_Got = true;

	mov	BYTE PTR [esi+4], 1
	pop	esi

; 930  : 		}

	ret	0
$L17595:

; 929  : 		return (_Val);

	mov	al, BYTE PTR [esi+5]
	mov	DWORD PTR [esi], 0
	mov	BYTE PTR [esi+4], 1
	pop	esi

; 930  : 		}

	ret	0
?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
_TEXT	ENDS
;	COMDAT ?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T23474 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC NEAR ; std::numpunct<char>::falsename, COMDAT
; _this$ = ecx

; 53   : 		{	// return name for false

	push	ecx

; 54   : 		return (do_falsename());

	mov	eax, DWORD PTR [ecx]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	esi
	mov	DWORD PTR $T23474[esp+12], 0
	call	DWORD PTR [eax+16]
	mov	eax, esi
	pop	esi

; 55   : 		}

	pop	ecx
	ret	4
?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::falsename
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T23480 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC NEAR ; std::numpunct<char>::truename, COMDAT
; _this$ = ecx

; 58   : 		{	// return name for true

	push	ecx

; 59   : 		return (do_truename());

	mov	eax, DWORD PTR [ecx]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	esi
	mov	DWORD PTR $T23480[esp+12], 0
	call	DWORD PTR [eax+20]
	mov	eax, esi
	pop	esi

; 60   : 		}

	pop	ecx
	ret	4
?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::truename
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
_TEXT	ENDS
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
__Ch$ = 12						; size = 1
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 542  : 		{	// append _Count * _Ch

	push	esi
	mov	esi, ecx

; 543  : 		if (npos - _Mysize <= _Count)

	mov	edx, DWORD PTR [esi+20]
	or	eax, -1
	push	edi
	mov	edi, DWORD PTR __Count$[esp+4]
	sub	eax, edx
	cmp	eax, edi
	ja	SHORT $L17511

; 544  : 			_String_base::_Xlen();	// result too long

	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L17511:

; 545  : 
; 546  : 		size_type _Num;
; 547  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

	test	edi, edi
	jbe	$L23663
	push	ebp
	mov	ebp, DWORD PTR [esi+20]
	add	ebp, edi
	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L23597
	mov	ecx, esi
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L23597:
	mov	eax, DWORD PTR [esi+24]
	cmp	eax, ebp
	jae	SHORT $L23598
	mov	ecx, DWORD PTR [esi+20]
	push	ecx
	push	ebp
	mov	ecx, esi
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	ebp, ebp
$L23665:
	jbe	SHORT $L23662

; 548  : 			{	// make room and append new stuff using assign
; 549  : 			_Traits::assign(_Myptr() + _Mysize, _Count, _Ch);

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L23634
	mov	edx, DWORD PTR [esi+4]
	jmp	SHORT $L23635

; 545  : 
; 546  : 		size_type _Num;
; 547  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$L23598:
	test	ebp, ebp
	jne	SHORT $L23665
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+20], ebp
	jb	SHORT $L23590
	mov	eax, DWORD PTR [esi+4]
	pop	ebp
	mov	BYTE PTR [eax], 0
	pop	edi

; 551  : 			}
; 552  : 		return (*this);

	mov	eax, esi
	pop	esi

; 553  : 		}

	ret	8

; 545  : 
; 546  : 		size_type _Num;
; 547  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$L23590:
	lea	eax, DWORD PTR [esi+4]
	pop	ebp
	mov	BYTE PTR [eax], 0
	pop	edi

; 551  : 			}
; 552  : 		return (*this);

	mov	eax, esi
	pop	esi

; 553  : 		}

	ret	8

; 548  : 			{	// make room and append new stuff using assign
; 549  : 			_Traits::assign(_Myptr() + _Mysize, _Count, _Ch);

$L23634:
	lea	edx, DWORD PTR [esi+4]
$L23635:
	movsx	eax, BYTE PTR __Ch$[esp+8]
	push	ebx
	mov	bl, al
	mov	bh, bl
	mov	ecx, edi
	mov	edi, DWORD PTR [esi+20]
	add	edi, edx
	mov	edx, ecx
	shr	ecx, 2
	mov	eax, ebx
	shl	eax, 16					; 00000010H
	mov	ax, bx
	pop	ebx
	rep stosd
	mov	ecx, edx
	and	ecx, 3
	rep stosb

; 550  : 			_Eos(_Num);

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	mov	DWORD PTR [esi+20], ebp
	jb	SHORT $L23656
	mov	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax+ebp], 0
	pop	ebp
	pop	edi

; 551  : 			}
; 552  : 		return (*this);

	mov	eax, esi
	pop	esi

; 553  : 		}

	ret	8

; 550  : 			_Eos(_Num);

$L23656:
	lea	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax+ebp], 0
$L23662:
	pop	ebp
$L23663:
	pop	edi

; 551  : 			}
; 552  : 		return (*this);

	mov	eax, esi
	pop	esi

; 553  : 		}

	ret	8
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z
_TEXT	SEGMENT
__Right$ = 8						; size = 4
__Roff$ = 12						; size = 4
__Count$ = 16						; size = 4
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append, COMDAT
; _this$ = ecx

; 502  : 		{	// append _Right [_Roff, _Roff + _Count)

	push	ebx
	push	esi

; 503  : 		if (_Right.size() < _Roff)

	mov	esi, DWORD PTR __Roff$[esp+4]
	push	edi
	mov	edi, DWORD PTR __Right$[esp+8]
	cmp	DWORD PTR [edi+20], esi
	mov	ebx, ecx
	jae	SHORT $L17569

; 504  : 			_String_base::_Xran();	// _Roff off end

	call	?_Xran@_String_base@std@@QBEXXZ		; std::_String_base::_Xran
$L17569:

; 505  : 		size_type _Num = _Right.size() - _Roff;

	mov	eax, DWORD PTR [edi+20]
	sub	eax, esi

; 506  : 		if (_Num < _Count)

	mov	esi, DWORD PTR __Count$[esp+8]
	cmp	eax, esi
	jae	SHORT $L17571

; 507  : 			_Count = _Num;	// trim _Count to size

	mov	esi, eax
$L17571:

; 508  : 		if (npos - _Mysize <= _Count)

	mov	edx, DWORD PTR [ebx+20]
	or	eax, -1
	sub	eax, edx
	cmp	eax, esi
	ja	SHORT $L17572

; 509  : 			_String_base::_Xlen();	// result too long

	mov	ecx, ebx
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L17572:

; 510  : 
; 511  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

	test	esi, esi
	jbe	$L23862
	push	ebp
	mov	ebp, DWORD PTR [ebx+20]
	add	ebp, esi
	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L23816
	mov	ecx, ebx
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L23816:
	mov	eax, DWORD PTR [ebx+24]
	cmp	eax, ebp
	jae	SHORT $L23817
	mov	ecx, DWORD PTR [ebx+20]
	push	ecx
	push	ebp
	mov	ecx, ebx
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	ebp, ebp
$L23864:
	jbe	SHORT $L23861

; 512  : 			{	// make room and append new stuff
; 513  : 			_Traits::copy(_Myptr() + _Mysize,
; 514  : 				_Right._Myptr() + _Roff, _Count);

	mov	ecx, DWORD PTR [edi+24]
	mov	eax, 16					; 00000010H
	cmp	ecx, eax
	jb	SHORT $L23826
	mov	edi, DWORD PTR [edi+4]
	jmp	SHORT $L23827

; 510  : 
; 511  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$L23817:
	test	ebp, ebp
	jne	SHORT $L23864
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L23809
	mov	eax, DWORD PTR [ebx+4]
	pop	ebp
	pop	edi
	mov	BYTE PTR [eax], 0
	pop	esi

; 516  : 			}
; 517  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 518  : 		}

	ret	12					; 0000000cH

; 510  : 
; 511  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$L23809:
	pop	ebp
	lea	eax, DWORD PTR [ebx+4]
	pop	edi
	mov	BYTE PTR [eax], 0
	pop	esi

; 516  : 			}
; 517  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 518  : 		}

	ret	12					; 0000000cH

; 512  : 			{	// make room and append new stuff
; 513  : 			_Traits::copy(_Myptr() + _Mysize,
; 514  : 				_Right._Myptr() + _Roff, _Count);

$L23826:
	add	edi, 4
$L23827:
	cmp	DWORD PTR [ebx+24], eax
	lea	edx, DWORD PTR [ebx+4]
	jb	SHORT $L23833
	mov	eax, DWORD PTR [edx]
	jmp	SHORT $L23834
$L23833:
	mov	eax, edx
$L23834:
	mov	ecx, esi
	mov	esi, DWORD PTR __Roff$[esp+12]
	add	esi, edi
	mov	edi, DWORD PTR [ebx+20]
	add	edi, eax
	mov	eax, ecx
	shr	ecx, 2
	rep movsd
	mov	ecx, eax
	and	ecx, 3
	rep movsb

; 515  : 			_Eos(_Num);

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L23856
	mov	edx, DWORD PTR [edx]
$L23856:
	mov	BYTE PTR [edx+ebp], 0
$L23861:
	pop	ebp
$L23862:
	pop	edi
	pop	esi

; 516  : 			}
; 517  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 518  : 		}

	ret	12					; 0000000cH
?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append
_TEXT	ENDS
PUBLIC	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
; Function compile flags: /Ogty
;	COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
__Ch$ = 12						; size = 1
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >, COMDAT
; _this$ = ecx

; 374  : 		{	// construct from _Count * _Ch

	push	esi
	mov	esi, ecx

; 375  : 		_Tidy();
; 376  : 		assign(_Count, _Ch);

	mov	ecx, DWORD PTR __Count$[esp]
	xor	eax, eax
	mov	DWORD PTR [esi+20], eax
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	BYTE PTR [esi+4], al
	mov	eax, DWORD PTR __Ch$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 377  : 		}

	mov	eax, esi
	pop	esi
	ret	8
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z
_TEXT	SEGMENT
__Count$ = 8						; size = 4
__Ch$ = 12						; size = 1
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign, COMDAT
; _this$ = ecx

; 626  : 		{	// assign _Count * _Ch

	push	ebp

; 627  : 		if (_Count == npos)

	mov	ebp, DWORD PTR __Count$[esp]
	cmp	ebp, -1
	push	esi
	mov	esi, ecx
	jne	SHORT $L17516

; 628  : 			_String_base::_Xlen();	// result too long

	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen

; 629  : 
; 630  : 		if (_Grow(_Count))

	jmp	SHORT $L24123
$L17516:
	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L24085
$L24123:
	mov	ecx, esi
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L24085:
	mov	eax, DWORD PTR [esi+24]
	cmp	eax, ebp
	jae	SHORT $L24086
	mov	eax, DWORD PTR [esi+20]
	push	eax
	push	ebp
	mov	ecx, esi
	call	?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy
	test	ebp, ebp
$L24125:
	jbe	SHORT $L24124

; 631  : 			{	// make room and assign new stuff
; 632  : 			_Traits::assign(_Myptr(), _Count, _Ch);

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	push	ebx
	push	edi
	jb	SHORT $L24095
	mov	edi, DWORD PTR [esi+4]
	jmp	SHORT $L24096

; 629  : 
; 630  : 		if (_Grow(_Count))

$L24086:
	test	ebp, ebp
	jne	SHORT $L24125
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+20], ebp
	jb	SHORT $L24078
	mov	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax], 0

; 634  : 			}
; 635  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp

; 636  : 		}

	ret	8

; 629  : 
; 630  : 		if (_Grow(_Count))

$L24078:
	lea	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax], 0

; 634  : 			}
; 635  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp

; 636  : 		}

	ret	8

; 631  : 			{	// make room and assign new stuff
; 632  : 			_Traits::assign(_Myptr(), _Count, _Ch);

$L24095:
	lea	edi, DWORD PTR [esi+4]
$L24096:
	movsx	eax, BYTE PTR __Ch$[esp+12]
	mov	bl, al
	mov	bh, bl
	mov	ecx, ebp
	mov	edx, ecx
	shr	ecx, 2
	mov	eax, ebx
	shl	eax, 16					; 00000010H
	mov	ax, bx
	rep stosd
	mov	ecx, edx
	and	ecx, 3
	rep stosb

; 633  : 			_Eos(_Count);

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	pop	edi
	mov	DWORD PTR [esi+20], ebp
	pop	ebx
	jb	SHORT $L24117
	mov	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax+ebp], 0

; 634  : 			}
; 635  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp

; 636  : 		}

	ret	8

; 633  : 			_Eos(_Count);

$L24117:
	lea	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax+ebp], 0
$L24124:

; 634  : 			}
; 635  : 		return (*this);

	mov	eax, esi
	pop	esi
	pop	ebp

; 636  : 		}

	ret	8
?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
_TEXT	ENDS
PUBLIC	?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::numpunct<char> >::_Psave
PUBLIC	?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z ; std::numpunct<char>::_Getcat
;	COMDAT ?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
_BSS	SEGMENT
?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B DD 01H DUP (?) ; std::_Facetptr<std::numpunct<char> >::_Psave
_BSS	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
$T24167	DD	0ffffffffH
	DD	FLAT:$L24131
$T24164	DD	019930520H
	DD	01H
	DD	FLAT:$T24167
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
xdata$x	ENDS
;	COMDAT ??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z
_TEXT	SEGMENT
__Psave$ = -36						; size = 4
__Lock$24160 = -32					; size = 4
__Lock$24136 = -32					; size = 4
__Lock$ = -28						; size = 4
$T24129 = -24						; size = 12
__$EHRec$ = -12						; size = 12
__Loc$ = 8						; size = 4
??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z PROC NEAR ; std::use_facet<std::numpunct<char> >, COMDAT

; 315  : 	{	// get facet reference from locale

	push	-1
	push	__ehhandler$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 24					; 00000018H

; 316  : 	_Lockit _Lock(_LOCK_LOCALE);	// the thread lock, make get atomic

	push	0
	lea	ecx, DWORD PTR __Lock$[esp+40]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit

; 317  : 	const locale::facet *_Psave =
; 318  : 		_Facetptr<_Facet>::_Psave;	// static pointer to lazy facet

	mov	eax, DWORD PTR ?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::numpunct<char> >::_Psave
	mov	DWORD PTR __Psave$[esp+36], eax

; 319  : 
; 320  : 	size_t _Id = _Facet::id;

	mov	eax, DWORD PTR ?id@?$numpunct@D@std@@2V0locale@2@A ; std::numpunct<char>::id
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+44], 0
	jne	SHORT $L24135
	push	0
	lea	ecx, DWORD PTR __Lock$24136[esp+40]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR ?id@?$numpunct@D@std@@2V0locale@2@A ; std::numpunct<char>::id
	test	eax, eax
	jne	SHORT $L24137
	mov	eax, DWORD PTR ?_Id_cnt@id@locale@std@@0HA ; std::locale::id::_Id_cnt
	inc	eax
	mov	DWORD PTR ?_Id_cnt@id@locale@std@@0HA, eax ; std::locale::id::_Id_cnt
	mov	DWORD PTR ?id@?$numpunct@D@std@@2V0locale@2@A, eax ; std::numpunct<char>::id
$L24137:
	lea	ecx, DWORD PTR __Lock$24136[esp+36]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$L24135:

; 321  : 	const locale::facet *_Pf = _Loc._Getfacet(_Id);

	mov	ecx, DWORD PTR ?id@?$numpunct@D@std@@2V0locale@2@A ; std::numpunct<char>::id
	push	esi
	push	ecx
	mov	ecx, DWORD PTR __Loc$[esp+40]
	call	?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z ; std::locale::_Getfacet
	mov	esi, eax

; 322  : 
; 323  : 	if (_Pf != 0)

	test	esi, esi
	jne	SHORT $L17805

; 324  : 		;	// got facet from locale
; 325  : 	else if (_Psave != 0)

	mov	esi, DWORD PTR __Psave$[esp+40]
	test	esi, esi

; 326  : 		_Pf = _Psave;	// lazy facet already allocated
; 327  : 	else if (_Facet::_Getcat(&_Psave) == (size_t)(-1))

	jne	SHORT $L17805
	lea	edx, DWORD PTR __Psave$[esp+40]
	push	edx
	call	?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z ; std::numpunct<char>::_Getcat
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $L17802

; 328  : 
; 329  :  #if _HAS_EXCEPTIONS
; 330  : 		throw bad_cast();	// lazy disallowed

	push	OFFSET FLAT:??_C@_08EPJLHIJG@bad?5cast?$AA@
	lea	ecx, DWORD PTR $T24129[esp+44]
	call	??0bad_cast@@QAE@PBD@Z			; bad_cast::bad_cast
	push	OFFSET FLAT:__TI2?AVbad_cast@@
	lea	eax, DWORD PTR $T24129[esp+44]
	push	eax
	call	__CxxThrowException@8
$L24168:
$L17802:

; 331  : 
; 332  :  #else /* _HAS_EXCEPTIONS */
; 333  : 		abort();	// lazy disallowed
; 334  :  #endif /* _HAS_EXCEPTIONS */
; 335  : 
; 336  : 	else
; 337  : 		{	// queue up lazy facet for destruction
; 338  : 		_Pf = _Psave;

	mov	eax, DWORD PTR __Psave$[esp+40]
	push	edi

; 339  : 		_Facetptr<_Facet>::_Psave = _Psave;
; 340  : 
; 341  : 		locale::facet *_Pfmod = (_Facet *)_Psave;
; 342  : 		_Pfmod->_Incref();

	push	0
	lea	ecx, DWORD PTR __Lock$24160[esp+48]
	mov	esi, eax
	mov	DWORD PTR ?_Psave@?$_Facetptr@V?$numpunct@D@std@@@std@@2PBVfacet@locale@2@B, eax ; std::_Facetptr<std::numpunct<char> >::_Psave
	mov	edi, eax
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	cmp	eax, -1
	jae	SHORT $L24161
	inc	eax
	mov	DWORD PTR [edi+4], eax
$L24161:
	lea	ecx, DWORD PTR __Lock$24160[esp+44]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 343  : 		_Pfmod->_Register();

	mov	ecx, edi
	call	?_Register@facet@locale@std@@QAEXXZ	; std::locale::facet::_Register
	pop	edi
$L17805:

; 344  : 		}
; 345  : 
; 346  : 	return ((const _Facet&)(*_Pf));	// should be dynamic_cast

	lea	ecx, DWORD PTR __Lock$[esp+40]
	mov	DWORD PTR __$EHRec$[esp+48], -1
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit

; 347  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 36					; 00000024H
	ret	0
$L24166:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L24131:
	lea	ecx, DWORD PTR __Lock$[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z:
	mov	eax, OFFSET FLAT:$T24164
	jmp	___CxxFrameHandler
text$x	ENDS
??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ENDP ; std::use_facet<std::numpunct<char> >
PUBLIC	?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z	; std::numpunct<char>::_Init
PUBLIC	?do_decimal_point@?$numpunct@D@std@@MBEDXZ	; std::numpunct<char>::do_decimal_point
PUBLIC	?do_thousands_sep@?$numpunct@D@std@@MBEDXZ	; std::numpunct<char>::do_thousands_sep
PUBLIC	?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::do_grouping
PUBLIC	?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::do_falsename
PUBLIC	?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::do_truename
PUBLIC	??_7?$numpunct@D@std@@6B@			; std::numpunct<char>::`vftable'
PUBLIC	??_G?$numpunct@D@std@@MAEPAXI@Z			; std::numpunct<char>::`scalar deleting destructor'
EXTRN	??_E?$numpunct@D@std@@MAEPAXI@Z:NEAR		; std::numpunct<char>::`vector deleting destructor'
;	COMDAT xdata$x
xdata$x	SEGMENT
$T24197	DD	0ffffffffH
	DD	FLAT:$L24179
	DD	00H
	DD	FLAT:$L24182
	DD	01H
	DD	FLAT:$L24183
$T24193	DD	019930520H
	DD	03H
	DD	FLAT:$T24197
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7?$numpunct@D@std@@6B@
CONST	SEGMENT
??_7?$numpunct@D@std@@6B@ DD FLAT:??_E?$numpunct@D@std@@MAEPAXI@Z ; std::numpunct<char>::`vftable'
	DD	FLAT:?do_decimal_point@?$numpunct@D@std@@MBEDXZ
	DD	FLAT:?do_thousands_sep@?$numpunct@D@std@@MBEDXZ
	DD	FLAT:?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
	DD	FLAT:?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
	DD	FLAT:?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
CONST	ENDS
;	COMDAT ?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT
$T24176 = -132						; size = 4
$T24189 = -128						; size = 116
__$EHRec$ = -12						; size = 12
__Ppf$ = 8						; size = 4
?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z PROC NEAR ; std::numpunct<char>::_Getcat, COMDAT

; 75   : 		{	// return locale category mask and construct standard facet

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 120				; 00000078H
	push	ebp

; 76   : 		if (_Ppf != 0 && *_Ppf == 0)

	mov	ebp, DWORD PTR __Ppf$[esp+132]
	test	ebp, ebp
	je	SHORT $L24195
	cmp	DWORD PTR [ebp], 0
	jne	SHORT $L24195
	push	esi

; 77   : 			*_Ppf = _NEW_CRT numpunct<_Elem>;

	push	24					; 00000018H
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T24176[esp+140], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+148], 0
	je	SHORT $L24177
	mov	DWORD PTR [esi+4], 0
	push	OFFSET FLAT:??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR $T24189[esp+144]
	mov	BYTE PTR __$EHRec$[esp+152], 1
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$numpunct@D@std@@6B@
	call	??0_Locinfo@std@@QAE@PBD@Z		; std::_Locinfo::_Locinfo
	push	eax
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+152], 2
	call	?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z ; std::numpunct<char>::_Init
	lea	ecx, DWORD PTR $T24189[esp+140]
	mov	BYTE PTR __$EHRec$[esp+148], 1
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo
	jmp	SHORT $L24178
$L24177:
	xor	esi, esi
$L24178:
	mov	DWORD PTR [ebp], esi
	pop	esi
$L24195:

; 78   : 		return (_X_NUMERIC);
; 79   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+136]
	mov	eax, 4
	pop	ebp
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 132				; 00000084H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L24179:
	mov	eax, DWORD PTR $T24176[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
$L24182:
	mov	ecx, DWORD PTR $T24176[ebp]
	jmp	??1facet@locale@std@@UAE@XZ		; std::locale::facet::~facet
$L24183:
	lea	ecx, DWORD PTR $T24189[ebp]
	jmp	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo
__ehhandler$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET FLAT:$T24193
	jmp	___CxxFrameHandler
text$x	ENDS
?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z ENDP ; std::numpunct<char>::_Getcat
; Function compile flags: /Ogty
;	COMDAT ?do_decimal_point@?$numpunct@D@std@@MBEDXZ
_TEXT	SEGMENT
?do_decimal_point@?$numpunct@D@std@@MBEDXZ PROC NEAR	; std::numpunct<char>::do_decimal_point, COMDAT
; _this$ = ecx

; 112  : 		return (_Dp);

	mov	al, BYTE PTR [ecx+12]

; 113  : 		}

	ret	0
?do_decimal_point@?$numpunct@D@std@@MBEDXZ ENDP		; std::numpunct<char>::do_decimal_point
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_thousands_sep@?$numpunct@D@std@@MBEDXZ
_TEXT	SEGMENT
?do_thousands_sep@?$numpunct@D@std@@MBEDXZ PROC NEAR	; std::numpunct<char>::do_thousands_sep, COMDAT
; _this$ = ecx

; 117  : 		return (_Kseparator);

	mov	al, BYTE PTR [ecx+13]

; 118  : 		}

	ret	0
?do_thousands_sep@?$numpunct@D@std@@MBEDXZ ENDP		; std::numpunct<char>::do_thousands_sep
_TEXT	ENDS
PUBLIC	??1?$numpunct@D@std@@MAE@XZ			; std::numpunct<char>::~numpunct<char>
; Function compile flags: /Ogty
;	COMDAT ??_G?$numpunct@D@std@@MAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$numpunct@D@std@@MAEPAXI@Z PROC NEAR		; std::numpunct<char>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$numpunct@D@std@@MAE@XZ		; std::numpunct<char>::~numpunct<char>
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L24209
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L24209:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$numpunct@D@std@@MAEPAXI@Z ENDP			; std::numpunct<char>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?_Tidy@?$numpunct@D@std@@AAEXXZ			; std::numpunct<char>::_Tidy
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	SEGMENT
$T24224	DD	0ffffffffH
	DD	FLAT:$L24213
$T24222	DD	019930520H
	DD	01H
	DD	FLAT:$T24224
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ??1?$numpunct@D@std@@MAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$numpunct@D@std@@MAE@XZ PROC NEAR			; std::numpunct<char>::~numpunct<char>, COMDAT
; _this$ = ecx

; 83   : 		{	// destroy the object

	push	-1
	push	__ehhandler$??1?$numpunct@D@std@@MAE@XZ
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+20], esi
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$numpunct@D@std@@6B@
	mov	DWORD PTR __$EHRec$[esp+28], 0

; 84   : 		_Tidy();

	call	?_Tidy@?$numpunct@D@std@@AAEXXZ		; std::numpunct<char>::_Tidy

; 85   : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	DWORD PTR [esi], OFFSET FLAT:??_7facet@locale@std@@6B@
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L24213:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1facet@locale@std@@UAE@XZ		; std::locale::facet::~facet
__ehhandler$??1?$numpunct@D@std@@MAE@XZ:
	mov	eax, OFFSET FLAT:$T24222
	jmp	___CxxFrameHandler
text$x	ENDS
??1?$numpunct@D@std@@MAE@XZ ENDP			; std::numpunct<char>::~numpunct<char>
; Function compile flags: /Ogty
;	COMDAT ?_Tidy@?$numpunct@D@std@@AAEXXZ
_TEXT	SEGMENT
?_Tidy@?$numpunct@D@std@@AAEXXZ PROC NEAR		; std::numpunct<char>::_Tidy, COMDAT
; _this$ = ecx

; 137  : 		{	// free all storage

	push	esi
	mov	esi, ecx

; 138  : 		_DELETE_CRT_VEC((void *)_Grouping);

	mov	eax, DWORD PTR [esi+8]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]

; 139  : 		_DELETE_CRT_VEC((void *)_Falsename);

	mov	ecx, DWORD PTR [esi+16]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]

; 140  : 		_DELETE_CRT_VEC((void *)_Truename);

	mov	edx, DWORD PTR [esi+20]
	push	edx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 12					; 0000000cH
	pop	esi

; 141  : 		}

	ret	0
?_Tidy@?$numpunct@D@std@@AAEXXZ ENDP			; std::numpunct<char>::_Tidy
_TEXT	ENDS
PUBLIC	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z	; std::_Maklocstr<char>
PUBLIC	??_C@_05LAPONLG@false?$AA@			; `string'
PUBLIC	??_C@_04LOAJBDKD@true?$AA@			; `string'
EXTRN	_localeconv:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	SEGMENT
$T24295	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
$T24297	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L24242
$T24296	DD	00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:$T24297
$T24292	DD	019930520H
	DD	02H
	DD	FLAT:$T24295
	DD	01H
	DD	FLAT:$T24296
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_C@_05LAPONLG@false?$AA@
CONST	SEGMENT
??_C@_05LAPONLG@false?$AA@ DB 'false', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_04LOAJBDKD@true?$AA@
CONST	SEGMENT
??_C@_04LOAJBDKD@true?$AA@ DB 'true', 00H		; `string'
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
CONST	ENDS
;	COMDAT ?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT
$T24238 = -36						; size = 8
$T24237 = -28						; size = 8
$T24236 = -28						; size = 8
_this$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Lobj$ = 8						; size = 4
?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z PROC NEAR	; std::numpunct<char>::_Init, COMDAT
; _this$ = ecx

; 89   : 		{	// initialize from _Lobj

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 24					; 00000018H
	push	ebx
	push	esi
	push	edi
	mov	esi, ecx
	mov	DWORD PTR __$EHRec$[ebp], esp
	mov	DWORD PTR _this$[ebp], esi

; 90   : 		const lconv *_Ptr = _Lobj._Getlconv();

	call	_localeconv

; 91   : 
; 92   : 		_Grouping = 0;

	xor	ebx, ebx
	mov	edi, eax
	mov	DWORD PTR [esi+8], ebx

; 93   : 		_Falsename = 0;

	mov	DWORD PTR [esi+16], ebx

; 94   : 		_Truename = 0;

	mov	DWORD PTR [esi+20], ebx

; 95   : 
; 96   : 		_TRY_BEGIN

	mov	DWORD PTR __$EHRec$[ebp+12], ebx

; 97   : 		_Grouping = _MAKLOCSTR(char, _Ptr->grouping, _Lobj._Getcvt());

	call	__Getcvt
	mov	ecx, DWORD PTR [edi+8]
	mov	DWORD PTR $T24236[ebp], eax
	lea	eax, DWORD PTR $T24236[ebp]
	push	eax
	push	ebx
	push	ecx
	mov	DWORD PTR $T24236[ebp+4], edx
	call	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ; std::_Maklocstr<char>
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [esi+8], eax

; 98   : 		_Falsename = _MAKLOCSTR(_Elem, _Lobj._Getfalse(), _Lobj._Getcvt());

	call	__Getcvt
	mov	DWORD PTR $T24237[ebp+4], edx
	lea	edx, DWORD PTR $T24237[ebp]
	push	edx
	push	ebx
	push	OFFSET FLAT:??_C@_05LAPONLG@false?$AA@
	mov	DWORD PTR $T24237[ebp], eax
	call	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ; std::_Maklocstr<char>
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [esi+16], eax

; 99   : 		_Truename = _MAKLOCSTR(_Elem, _Lobj._Gettrue(), _Lobj._Getcvt());

	call	__Getcvt
	mov	DWORD PTR $T24238[ebp], eax
	lea	eax, DWORD PTR $T24238[ebp]
	push	eax
	push	ebx
	push	OFFSET FLAT:??_C@_04LOAJBDKD@true?$AA@
	mov	DWORD PTR $T24238[ebp+4], edx
	call	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ; std::_Maklocstr<char>
	add	esp, 12					; 0000000cH
	mov	DWORD PTR [esi+20], eax

; 103  : 		_CATCH_END
; 104  : 
; 105  : 		_Dp = _MAKLOCCHR(_Elem, _Ptr->decimal_point[0], _Lobj._Getcvt());

	call	__Getcvt
	mov	ecx, DWORD PTR [edi]
	mov	dl, BYTE PTR [ecx]
	mov	BYTE PTR [esi+12], dl

; 106  : 		_Kseparator =
; 107  : 			_MAKLOCCHR(_Elem, _Ptr->thousands_sep[0], _Lobj._Getcvt());

	call	__Getcvt
	mov	eax, DWORD PTR [edi+4]
	mov	cl, BYTE PTR [eax]
	mov	BYTE PTR [esi+13], cl

; 108  : 		}

	mov	ecx, DWORD PTR __$EHRec$[ebp+4]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
$L24242:

; 100  : 		_CATCH_ALL
; 101  : 		_Tidy();

	mov	ecx, DWORD PTR _this$[ebp]
	call	?_Tidy@?$numpunct@D@std@@AAEXXZ		; std::numpunct<char>::_Tidy

; 102  : 		_RERAISE;

	xor	ebx, ebx
	push	ebx
	push	ebx
	call	__CxxThrowException@8
$L24298:
$L24294:
	int	3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z:
	mov	eax, OFFSET FLAT:$T24292
	jmp	___CxxFrameHandler
text$x	ENDS
?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z ENDP	; std::numpunct<char>::_Init
EXTRN	??_U@YAPAXI@Z:NEAR				; operator new[]
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
;	COMDAT ??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z PROC NEAR ; std::_Maklocstr<char>, COMDAT

; 452  : 	{	// convert C string to _Elem sequence using _Cvtvec

	push	esi
	push	edi

; 453  : 	size_t _Count = ::strlen(_Ptr) + 1;

	mov	edi, DWORD PTR __Ptr$[esp+4]
	mov	eax, edi
	lea	edx, DWORD PTR [eax+1]
	npad	5
$L24306:
	mov	cl, BYTE PTR [eax]
	inc	eax
	test	cl, cl
	jne	SHORT $L24306
	sub	eax, edx
	lea	esi, DWORD PTR [eax+1]

; 454  : 	_Elem *_Ptrdest = _NEW_CRT _Elem[_Count];

	push	esi
	call	??_U@YAPAXI@Z				; operator new[]
	add	esp, 4

; 455  : 
; 456  : 	for (_Elem *_Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr)

	test	esi, esi
	mov	ecx, eax
	jbe	SHORT $L17936
	npad	5
$L17934:

; 457  : 		*_Ptrnext = (_Elem)(unsigned char)*_Ptr;

	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [ecx], dl
	inc	ecx
	inc	edi
	dec	esi
	jne	SHORT $L17934
$L17936:
	pop	edi
	pop	esi

; 458  : 	return (_Ptrdest);
; 459  : 	}

	ret	0
??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ENDP	; std::_Maklocstr<char>
_TEXT	ENDS
PUBLIC	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
xdata$x	SEGMENT
$T24577	DD	0ffffffffH
	DD	FLAT:$L24316
$T24563	DD	019930520H
	DD	01H
	DD	FLAT:$T24577
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	ENDS
;	COMDAT ??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z
_TEXT	SEGMENT
__Ans$ = -44						; size = 4
__Str$ = -40						; size = 28
__$EHRec$ = -12						; size = 12
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Numfields$ = 16					; size = 4
__Prefix$17823 = 20					; size = 1
__Ptr$ = 20						; size = 4
??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z PROC NEAR ; std::_Getloctxt<char,std::istreambuf_iterator<char,std::char_traits<char> > >, COMDAT

; 361  : 	{	// find field at _Ptr that matches longest in [_First, _Last)

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 32					; 00000020H
	push	ebx
	push	ebp

; 362  : 	for (size_t _Off = 0; _Ptr[_Off] != (_Elem)0; ++_Off)

	mov	ebp, DWORD PTR __Ptr$[esp+48]
	mov	dl, BYTE PTR [ebp]
	test	dl, dl
	push	esi
	push	edi
	je	SHORT $L24573

; 365  : 	string _Str(_Numfields, '\0');	// one column counter for each field

	mov	al, dl
	mov	ecx, ebp
	npad	5
$L17813:

; 363  : 		if (_Ptr[_Off] == _Ptr[0])

	cmp	al, dl
	jne	SHORT $L17814

; 364  : 			++_Numfields;	// add fields with leading mark to initial count

	inc	DWORD PTR __Numfields$[esp+56]
$L17814:
	mov	al, BYTE PTR [ecx+1]
	inc	ecx
	test	al, al
	jne	SHORT $L17813
$L24573:

; 365  : 	string _Str(_Numfields, '\0');	// one column counter for each field

	mov	eax, DWORD PTR __Numfields$[esp+56]
	xor	esi, esi
	push	esi
	push	eax
	lea	ecx, DWORD PTR __Str$[esp+68]
	mov	DWORD PTR __Str$[esp+92], 15		; 0000000fH
	mov	DWORD PTR __Str$[esp+88], esi
	mov	BYTE PTR __Str$[esp+72], 0
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	mov	DWORD PTR __$EHRec$[esp+68], esi

; 366  : 
; 367  : 	int _Ans = -2;	// no candidates so far

	mov	DWORD PTR __Ans$[esp+60], -2		; fffffffeH

; 368  : 	for (size_t _Column = 1; ; ++_Column, ++_First, _Ans = -1)

	mov	ebx, 1
$L17820:

; 369  : 		{	// test each element against all viable fields
; 370  : 		bool  _Prefix = false;	// seen at least one valid prefix
; 371  : 		size_t _Off = 0;	// offset into fields
; 372  : 		size_t _Field = 0;	// current field number
; 373  : 
; 374  : 		for (; _Field < _Numfields; ++_Field)

	mov	eax, DWORD PTR __Numfields$[esp+56]
	xor	esi, esi
	xor	edi, edi
	test	eax, eax
	mov	BYTE PTR __Prefix$17823[esp+56], 0
	jbe	$L24575
$L17826:

; 375  : 			{	// test element at _Column in field _Field
; 376  : 			for (; _Ptr[_Off] != (_Elem)0 && _Ptr[_Off] != _Ptr[0]; ++_Off)

	mov	al, BYTE PTR [esi+ebp]
	test	al, al
	je	SHORT $L17832
	mov	cl, BYTE PTR [ebp]
$L17830:
	cmp	al, cl
	je	SHORT $L17832
	mov	al, BYTE PTR [esi+ebp+1]
	inc	esi
	test	al, al
	jne	SHORT $L17830
$L17832:

; 377  : 				;	// find beginning of field
; 378  : 
; 379  : 			if (_Str[_Field] != '\0')

	mov	ecx, DWORD PTR __Str$[esp+84]
	cmp	ecx, 16					; 00000010H
	mov	edx, DWORD PTR __Str$[esp+64]
	mov	eax, edx
	jae	SHORT $L24435
	lea	eax, DWORD PTR __Str$[esp+64]
$L24435:
	cmp	BYTE PTR [eax+edi], 0
	je	SHORT $L17833

; 380  : 				_Off += _Str[_Field];	// skip tested columns in field

	cmp	ecx, 16					; 00000010H
	mov	eax, edx
	jae	SHORT $L24449
	lea	eax, DWORD PTR __Str$[esp+64]
$L24449:
	movsx	ecx, BYTE PTR [eax+edi]
	add	esi, ecx

; 381  : 			else if (_Ptr[_Off += _Column] == _Ptr[0]

	jmp	$L17827
$L17833:

; 382  : 				|| _Ptr[_Off] == (_Elem)0)

	mov	cl, BYTE PTR [ebp]
	add	esi, ebx
	mov	al, BYTE PTR [esi+ebp]
	cmp	al, cl
	je	SHORT $L17837
	test	al, al
	je	SHORT $L17837

; 387  : 				}
; 388  : 			else if (_First == _Last || _Ptr[_Off] != *_First)

	mov	edx, DWORD PTR __Last$[esp+56]
	mov	ecx, DWORD PTR __First$[esp+56]
	push	edx
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L17842
	mov	ecx, DWORD PTR __First$[esp+56]
	mov	al, BYTE PTR [ecx+4]
	test	al, al
	jne	SHORT $L24469
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
	mov	ecx, DWORD PTR __First$[esp+56]
$L24469:
	mov	al, BYTE PTR [esi+ebp]
	cmp	al, BYTE PTR [ecx+5]
	jne	SHORT $L17842

; 392  : 				_Prefix = true;	// still a valid prefix

	mov	BYTE PTR __Prefix$17823[esp+56], 1
	jmp	SHORT $L17827
$L17842:

; 389  : 				_Str[_Field] = (char)(_Column < 127
; 390  : 					? _Column : 127);	// no match, just save skip count

	cmp	ebx, 127				; 0000007fH
	mov	eax, ebx
	jb	SHORT $L24314
	mov	eax, 127				; 0000007fH
$L24314:
	cmp	DWORD PTR __Str$[esp+84], 16		; 00000010H
	mov	ecx, DWORD PTR __Str$[esp+64]
	jae	SHORT $L24485
	lea	ecx, DWORD PTR __Str$[esp+64]
$L24485:
	mov	BYTE PTR [ecx+edi], al

; 391  : 			else

	jmp	SHORT $L17827
$L17837:

; 383  : 				{	// matched all of field, save as possible answer
; 384  : 				_Str[_Field] = (char)(_Column < 127
; 385  : 					? _Column : 127);	// save skip count if small enough

	cmp	ebx, 127				; 0000007fH
	mov	ecx, ebx
	jb	SHORT $L24312
	mov	ecx, 127				; 0000007fH
$L24312:
	cmp	DWORD PTR __Str$[esp+84], 16		; 00000010H
	mov	eax, edx
	jae	SHORT $L24463
	lea	eax, DWORD PTR __Str$[esp+64]
$L24463:
	mov	BYTE PTR [eax+edi], cl

; 386  : 				_Ans = (int)_Field;	// save answer

	mov	DWORD PTR __Ans$[esp+60], edi
$L17827:
	mov	eax, DWORD PTR __Numfields$[esp+56]
	inc	edi
	cmp	edi, eax
	jb	$L17826

; 393  : 			}
; 394  : 
; 395  : 		if (!_Prefix || _First == _Last)

	mov	al, BYTE PTR __Prefix$17823[esp+56]
	test	al, al
	je	SHORT $L24575
	mov	ecx, DWORD PTR __Last$[esp+56]
	mov	esi, DWORD PTR __First$[esp+56]
	push	ecx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L24575
	mov	ecx, esi
	inc	ebx
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	mov	DWORD PTR __Ans$[esp+60], -1
	jmp	$L17820
$L24575:

; 396  : 			break;	// no pending prefixes or no input, give up
; 397  : 		}
; 398  : 	return (_Ans);	// return field number or negative value on failure

	cmp	DWORD PTR __Str$[esp+84], 16		; 00000010H
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	jb	SHORT $L24572
	mov	edx, DWORD PTR __Str$[esp+48]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L24572:

; 399  : 	}

	mov	ecx, DWORD PTR __$EHRec$[esp+44]
	mov	eax, DWORD PTR __Ans$[esp+44]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 44					; 0000002cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L24316:
	lea	ecx, DWORD PTR __Str$[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z:
	mov	eax, OFFSET FLAT:$T24563
	jmp	___CxxFrameHandler
text$x	ENDS
??$_Getloctxt@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@YAHAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@0@0IPBD@Z ENDP ; std::_Getloctxt<char,std::istreambuf_iterator<char,std::char_traits<char> > >
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
;	COMDAT ?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ
_TEXT	SEGMENT
?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ PROC NEAR ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc, COMDAT
; _this$ = ecx

; 910  : 		{	// skip to next input element

	push	esi
	mov	esi, ecx

; 911  : 		if (_Strbuf == 0
; 912  : 			|| traits_type::eq_int_type(traits_type::eof(),
; 913  : 				_Strbuf->sbumpc()))

	mov	ecx, DWORD PTR [esi]
	test	ecx, ecx
	je	SHORT $L17588
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $L24607
	mov	edx, eax
	mov	eax, DWORD PTR [edx]
	mov	edx, DWORD PTR [ecx+48]
	mov	edx, DWORD PTR [edx]
	add	edx, eax
	cmp	eax, edx
	jae	SHORT $L24607
	mov	eax, DWORD PTR [ecx+48]
	dec	DWORD PTR [eax]
	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [ecx]
	lea	edx, DWORD PTR [eax+1]
	mov	DWORD PTR [ecx], edx
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $L24608
$L24607:
	mov	eax, DWORD PTR [ecx]
	call	DWORD PTR [eax+20]
$L24608:
	cmp	eax, -1
	je	SHORT $L17588

; 915  : 		else
; 916  : 			_Got = false;

	mov	BYTE PTR [esi+4], 0
	pop	esi

; 917  : 		}

	ret	0
$L17588:

; 914  : 			_Strbuf = 0, _Got = true;

	mov	DWORD PTR [esi], 0
	mov	BYTE PTR [esi+4], 1
	pop	esi

; 917  : 		}

	ret	0
?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ENDP ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
_TEXT	ENDS
PUBLIC	?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::grouping
PUBLIC	??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@	; `string'
EXTRN	_memchr:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
xdata$x	SEGMENT
$T25408	DD	0ffffffffH
	DD	FLAT:$L24637
	DD	00H
	DD	FLAT:$L24638
$T25390	DD	019930520H
	DD	02H
	DD	FLAT:$T25408
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@
CONST	SEGMENT
??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@ DB '0123456789abcdefABCDEF'
	DB	00H						; `string'
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
CONST	ENDS
;	COMDAT ?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z
_TEXT	SEGMENT
__Nonzero$ = -82					; size = 1
__Kseparator$ = -81					; size = 1
__Ptr$ = -80						; size = 4
__Base$ = -76						; size = 4
__Dlen$ = -72						; size = 4
__Groups$ = -68						; size = 28
__Grouping$ = -40					; size = 28
__$EHRec$ = -12						; size = 12
_this$ = 8						; size = 4
__Ac$ = 12						; size = 4
__First$ = 16						; size = 4
__Last$ = 20						; size = 4
__Seendigit$ = 24					; size = 1
__Basefield$ = 24					; size = 4
__Loc$ = 28						; size = 4
?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld, COMDAT

; 551  : 		{	// get integer field from [_First, _Last) into _Ac

	push	-1
	push	__ehhandler$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 72					; 00000048H

; 552  : 		const _Mypunct& _Punct_fac = _USE(_Loc, _Mypunct);

	mov	eax, DWORD PTR __Loc$[esp+80]
	push	ebx
	push	ebp
	push	esi
	push	edi
	push	eax
	call	??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ; std::use_facet<std::numpunct<char> >
	add	esp, 4

; 553  : 		const string _Grouping = _Punct_fac.grouping();

	lea	ecx, DWORD PTR __Grouping$[esp+100]
	mov	esi, eax
	push	ecx
	mov	ecx, esi
	call	?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::grouping

; 554  : 		const _Elem _Kseparator = _Punct_fac.thousands_sep();

	mov	edx, DWORD PTR [esi]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+108], 0
	call	DWORD PTR [edx+8]

; 555  : 		const _Elem _E0 = _MAKLOCCHR(_Elem, '0', _Cvt);
; 556  : 		char *_Ptr = _Ac;
; 557  : 
; 558  : 		if (_First == _Last)

	mov	esi, DWORD PTR __First$[esp+96]
	mov	ebp, DWORD PTR __Ac$[esp+96]
	mov	BYTE PTR __Kseparator$[esp+100], al
	mov	eax, DWORD PTR __Last$[esp+96]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __Ptr$[esp+104], ebp
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L24669

; 559  : 			;	// empty field
; 560  : 		else if (*_First == _MAKLOCCHR(_Elem, '+', _Cvt))

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L24651
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L24651:
	mov	al, BYTE PTR [esi+5]
	cmp	al, 43					; 0000002bH
	jne	SHORT $L17315

; 561  : 			*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	BYTE PTR [ebp], al

; 562  : 		else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	jmp	SHORT $L25406
$L17315:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L24662
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L24662:
	mov	al, BYTE PTR [esi+5]
	cmp	al, 45					; 0000002dH
	jne	SHORT $L24669

; 563  : 			*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	BYTE PTR [ebp], al
$L25406:
	inc	ebp
	mov	ecx, esi
	mov	DWORD PTR __Ptr$[esp+100], ebp
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
$L24669:

; 564  : 
; 565  : 		_Basefield &= ios_base::basefield;

	mov	eax, DWORD PTR __Basefield$[esp+96]
	and	eax, 3584				; 00000e00H

; 566  : 		int _Base = _Basefield == ios_base::oct ? 8
; 567  : 			: _Basefield == ios_base::hex ? 16
; 568  : 			: _Basefield == ios_base::_Fmtzero ? 0 : 10;

	cmp	eax, 1024				; 00000400H
	jne	SHORT $L24632
	mov	edi, 8
	jmp	SHORT $L25407
$L24632:
	cmp	eax, 2048				; 00000800H
	jne	SHORT $L24630
	mov	edi, 16					; 00000010H
	jmp	SHORT $L25407
$L24630:
	neg	eax
	sbb	eax, eax
	and	eax, 10					; 0000000aH
	mov	edi, eax
$L25407:

; 569  : 
; 570  : 		bool _Seendigit = false;	// seen a digit in input
; 571  : 		bool _Nonzero = false;	// seen a nonzero digit in input
; 572  : 
; 573  : 		if (_First != _Last && *_First == _E0)

	mov	ecx, DWORD PTR __Last$[esp+96]
	xor	bl, bl
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __Base$[esp+104], edi
	mov	BYTE PTR __Seendigit$[esp+100], bl
	mov	BYTE PTR __Nonzero$[esp+104], bl
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	$L17335
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L24681
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L24681:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L17335

; 574  : 			{	// leading zero, look for 0x, 0X
; 575  : 			_Seendigit = true, ++_First;

	mov	bl, 1
	mov	ecx, esi
	mov	BYTE PTR __Seendigit$[esp+96], bl
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc

; 576  : 			if (_First != _Last && (*_First == _MAKLOCCHR(_Elem, 'x', _Cvt)
; 577  : 					|| *_First == _MAKLOCCHR(_Elem, 'X', _Cvt))
; 578  : 				&& (_Base == 0 || _Base == 16))

	mov	edx, DWORD PTR __Last$[esp+96]
	push	edx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L25404
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L24697
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L24697:
	cmp	BYTE PTR [esi+5], 120			; 00000078H
	je	SHORT $L17332
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L24705
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L24705:
	cmp	BYTE PTR [esi+5], 88			; 00000058H
	jne	SHORT $L25404
$L17332:
	test	edi, edi
	je	SHORT $L17333
	cmp	edi, 16					; 00000010H
	jne	SHORT $L25404
$L17333:

; 579  : 				_Base = 16, _Seendigit = false, ++_First;

	xor	bl, bl
	mov	edi, 16					; 00000010H
	mov	ecx, esi
	mov	DWORD PTR __Base$[esp+100], edi
	mov	BYTE PTR __Seendigit$[esp+96], bl
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc

; 580  : 			else if (_Base == 0)

	jmp	SHORT $L25398
$L25404:
	test	edi, edi
	jne	SHORT $L25397

; 581  : 				_Base = 8;

	mov	edi, 8
	mov	DWORD PTR __Base$[esp+100], edi

; 582  : 			}
; 583  : 
; 584  : 		int _Dlen = _Base == 0 || _Base == 10 ? 10
; 585  : 			: _Base == 8 ? 8 : 16 + 6;

	jmp	SHORT $L25398
$L17335:
	test	edi, edi
	je	SHORT $L24634
$L25397:
	cmp	edi, 10					; 0000000aH
	je	SHORT $L24634
$L25398:
	xor	eax, eax
	cmp	edi, 8
	setne	al
	dec	eax
	and	eax, -14				; fffffff2H
	add	eax, 22					; 00000016H
	mov	DWORD PTR __Dlen$[esp+100], eax
	jmp	SHORT $L24635
$L24634:
	mov	DWORD PTR __Dlen$[esp+100], 10		; 0000000aH
$L24635:

; 586  : 		string _Groups((size_t)1, (char)_Seendigit);

	movsx	ecx, bl
	mov	eax, 15					; 0000000fH
	mov	BYTE PTR __Groups$[esp+104], 0
	mov	DWORD PTR __Groups$[esp+124], eax
	mov	BYTE PTR __Groups$[esp+104], cl
	cmp	eax, 16					; 00000010H
	mov	eax, DWORD PTR __Groups$[esp+104]
	mov	ch, cl
	mov	DWORD PTR __Groups$[esp+120], 1
	jae	SHORT $L25115
	lea	eax, DWORD PTR __Groups$[esp+104]
$L25115:
	mov	BYTE PTR [eax+1], 0

; 587  : 		size_t _Group = 0;
; 588  : 
; 589  : 		for (char *const _Pe = &_Ac[_MAX_INT_DIG - 1];
; 590  : 			_First != _Last; ++_First)

	mov	eax, DWORD PTR __Last$[esp+96]
	push	eax
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+112], 1
	xor	edi, edi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	$L25401
	npad	2
$L25122:

; 591  : 			if (::memchr("0123456789abcdefABCDEF",
; 592  : 				*_Ptr = _MAKLOCBYTE(_Elem, *_First, _Cvt), _Dlen) != 0)

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L25134
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L25134:
	mov	al, BYTE PTR [esi+5]
	mov	ecx, DWORD PTR __Dlen$[esp+100]
	movsx	edx, al
	push	ecx
	push	edx
	push	OFFSET FLAT:??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@
	mov	BYTE PTR [ebp], al
	call	_memchr
	add	esp, 12					; 0000000cH
	test	eax, eax
	je	SHORT $L17351

; 593  : 				{	// got a digit, characterize it and add to group size
; 594  : 				if ((_Nonzero || *_Ptr != '0') && _Ptr < _Pe)

	mov	al, BYTE PTR __Nonzero$[esp+100]
	test	al, al
	jne	SHORT $L17354
	cmp	BYTE PTR [ebp], 48			; 00000030H
	je	SHORT $L17353
$L17354:
	mov	eax, DWORD PTR __Ac$[esp+96]
	add	eax, 31					; 0000001fH
	cmp	ebp, eax
	jae	SHORT $L17353

; 595  : 					++_Ptr, _Nonzero = true;

	inc	ebp
	mov	DWORD PTR __Ptr$[esp+100], ebp
	mov	BYTE PTR __Nonzero$[esp+100], 1
$L17353:

; 596  : 				_Seendigit = true;
; 597  : 				if (_Groups[_Group] != CHAR_MAX)

	mov	edx, DWORD PTR __Groups$[esp+124]
	cmp	edx, 16					; 00000010H
	mov	eax, DWORD PTR __Groups$[esp+104]
	mov	BYTE PTR __Seendigit$[esp+96], 1
	mov	ecx, eax
	jae	SHORT $L25152
	lea	ecx, DWORD PTR __Groups$[esp+104]
$L25152:
	cmp	BYTE PTR [ecx+edi], 127			; 0000007fH
	je	SHORT $L17343

; 598  : 					++_Groups[_Group];

	cmp	edx, 16					; 00000010H
	jae	SHORT $L25166
	lea	eax, DWORD PTR __Groups$[esp+104]
$L25166:
	inc	BYTE PTR [eax+edi]

; 599  : 				}
; 600  : 			else if (_Groups[_Group] == '\0'

	jmp	SHORT $L17343
$L17351:

; 601  : 				|| _Kseparator == (_Elem)0
; 602  : 				|| *_First != _Kseparator)

	mov	ebp, DWORD PTR __Groups$[esp+124]
	cmp	ebp, 16					; 00000010H
	mov	ebx, DWORD PTR __Groups$[esp+104]
	mov	eax, ebx
	jae	SHORT $L25180
	lea	eax, DWORD PTR __Groups$[esp+104]
$L25180:
	cmp	BYTE PTR [eax+edi], 0
	je	SHORT $L25393
	mov	al, BYTE PTR __Kseparator$[esp+100]
	test	al, al
	je	SHORT $L25393
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L25184
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
	mov	ebx, DWORD PTR __Groups$[esp+104]
	mov	ebp, DWORD PTR __Groups$[esp+124]
$L25184:
	mov	al, BYTE PTR __Kseparator$[esp+100]
	cmp	BYTE PTR [esi+5], al
	jne	SHORT $L25393

; 603  : 				break;	// not a group separator, done
; 604  : 			else
; 605  : 				{	// add a new group to _Groups string
; 606  : 				_Groups.append((string::size_type)1, '\0');

	push	0
	push	1
	lea	ecx, DWORD PTR __Groups$[esp+108]
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 607  : 				++_Group;

	mov	ebp, DWORD PTR __Ptr$[esp+100]
	inc	edi
$L17343:
	mov	ecx, esi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	mov	ecx, DWORD PTR __Last$[esp+96]
	push	ecx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	je	$L25122
	mov	ebx, DWORD PTR __Groups$[esp+104]
	mov	ebp, DWORD PTR __Groups$[esp+124]
$L25393:

; 608  : 				}
; 609  : 
; 610  : 		if (_Group == 0)

	test	edi, edi
	je	SHORT $L17365

; 611  : 			;	// no thousands separators seen
; 612  : 		else if ('\0' < _Groups[_Group])

	cmp	ebp, 16					; 00000010H
	mov	eax, ebx
	jae	SHORT $L25199
	lea	eax, DWORD PTR __Groups$[esp+104]
$L25199:
	cmp	BYTE PTR [eax+edi], 0
	jle	SHORT $L17364

; 613  : 			++_Group;	// add trailing group to group count

	inc	edi

; 614  : 		else

	jmp	SHORT $L17365
$L17364:

; 615  : 			_Seendigit = false;	// trailing separator, fail

	mov	BYTE PTR __Seendigit$[esp+96], 0
	jmp	SHORT $L17365
$L25401:
	mov	ebx, DWORD PTR __Groups$[esp+104]
	mov	ebp, DWORD PTR __Groups$[esp+124]
$L17365:

; 616  : 
; 617  : 		for (const char *_Pg = _Grouping.c_str(); _Seendigit && 0 < _Group; )

	mov	eax, DWORD PTR __Grouping$[esp+124]
	mov	edx, DWORD PTR __Grouping$[esp+104]
	mov	esi, 16					; 00000010H
	cmp	eax, esi
	jae	SHORT $L25214
	lea	edx, DWORD PTR __Grouping$[esp+104]
$L25214:
	mov	al, BYTE PTR __Seendigit$[esp+96]
	test	al, al
	je	SHORT $L25402
$L17368:
	test	edi, edi
	jbe	SHORT $L25394

; 618  : 			if (*_Pg == CHAR_MAX)

	mov	cl, BYTE PTR [edx]
	cmp	cl, 127					; 0000007fH
	je	SHORT $L25394

; 619  : 				break;	// end of grouping constraints to check
; 620  : 			else if (0 < --_Group && *_Pg != _Groups[_Group]
; 621  : 				|| 0 == _Group && *_Pg < _Groups[_Group])

	dec	edi
	je	SHORT $L17374
	cmp	ebp, esi
	mov	eax, ebx
	jae	SHORT $L25227
	lea	eax, DWORD PTR __Groups$[esp+104]
$L25227:
	cmp	cl, BYTE PTR [eax+edi]
	jne	SHORT $L25402
$L17374:
	test	edi, edi
	jne	SHORT $L17372
	cmp	ebp, esi
	mov	eax, ebx
	jae	SHORT $L25241
	lea	eax, DWORD PTR __Groups$[esp+104]
$L25241:
	cmp	cl, BYTE PTR [eax+edi]
	jl	SHORT $L25402
$L17372:

; 622  : 				_Seendigit = false;	// bad group size, fail
; 623  : 			else if ('\0' < _Pg[1])

	mov	al, BYTE PTR [edx+1]
	test	al, al
	jle	SHORT $L17368

; 616  : 
; 617  : 		for (const char *_Pg = _Grouping.c_str(); _Seendigit && 0 < _Group; )

	inc	edx
	jmp	SHORT $L17368
$L25394:

; 624  : 				++_Pg;	// group size okay, advance to next test
; 625  : 
; 626  : 		if (_Seendigit && !_Nonzero)

	mov	al, BYTE PTR __Nonzero$[esp+100]
	test	al, al

; 627  : 			*_Ptr++ = '0';	// zero field, replace stripped zero(s)

	mov	eax, DWORD PTR __Ptr$[esp+100]
	jne	SHORT $L17379
	mov	BYTE PTR [eax], 48			; 00000030H
	inc	eax

; 628  : 		else if (!_Seendigit)

	jmp	SHORT $L17379
$L25402:

; 629  : 			_Ptr = _Ac;	// roll back pointer to indicate failure

	mov	eax, DWORD PTR __Ac$[esp+96]
$L17379:

; 630  : 		*_Ptr = '\0';
; 631  : 		return (_Base);

	cmp	ebp, esi
	mov	BYTE PTR [eax], 0
	jb	SHORT $L25305
	push	ebx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L25305:
	mov	eax, DWORD PTR __Grouping$[esp+124]
	pop	edi
	cmp	eax, esi
	pop	esi
	pop	ebp
	mov	DWORD PTR __Groups$[esp+112], 15	; 0000000fH
	mov	DWORD PTR __Groups$[esp+108], 0
	mov	BYTE PTR __Groups$[esp+92], 0
	pop	ebx
	jb	SHORT $L25400
	mov	edx, DWORD PTR __Grouping$[esp+88]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L25400:

; 632  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+84]
	mov	eax, DWORD PTR __Base$[esp+84]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 84					; 00000054H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L24637:
	lea	ecx, DWORD PTR __Grouping$[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L24638:
	lea	ecx, DWORD PTR __Groups$[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z:
	mov	eax, OFFSET FLAT:$T25390
	jmp	___CxxFrameHandler
text$x	ENDS
?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
; Function compile flags: /Ogty
;	COMDAT ?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T25415 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC NEAR ; std::numpunct<char>::grouping, COMDAT
; _this$ = ecx

; 48   : 		{	// return grouping string

	push	ecx

; 49   : 		return (do_grouping());

	mov	eax, DWORD PTR [ecx]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	esi
	mov	DWORD PTR $T25415[esp+12], 0
	call	DWORD PTR [eax+12]
	mov	eax, esi
	pop	esi

; 50   : 		}

	pop	ecx
	ret	4
?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::grouping
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T25462	DD	0ffffffffH
	DD	FLAT:$L25425
$T25460	DD	019930520H
	DD	01H
	DD	FLAT:$T25462
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
_TEXT	SEGMENT
__Lock$25452 = -52					; size = 4
__Ep$ = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T25420 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 342  : 		{	// get unsigned short from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 40					; 00000028H
	push	ebp
	push	esi
	push	edi
	mov	esi, ecx

; 343  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 344  : 		errno = 0;

	call	__errno

; 345  : 		int _Base = _Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 346  : 			_Iosbase.getloc());	// gather field into _Ac

	mov	edi, DWORD PTR __Iosbase$[esp+60]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T25420[esp+60]
	push	eax
	mov	ecx, edi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	edi, DWORD PTR [edi+16]
	push	eax
	push	edi
	lea	ecx, DWORD PTR __Last$[esp+68]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+72]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+80]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+96], 0
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	mov	esi, DWORD PTR $T25420[esp+84]
	add	esp, 24					; 00000018H
	test	esi, esi
	mov	ebp, eax
	mov	DWORD PTR __$EHRec$[esp+72], -1
	je	SHORT $L25449
	push	0
	lea	ecx, DWORD PTR __Lock$25452[esp+68]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L25453
	cmp	eax, -1
	jae	SHORT $L25453
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L25453:
	mov	eax, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	eax, eax
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$25452[esp+64]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L25449
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L25449:

; 347  : 		char *_Ptr = _Ac[0] == '-' ? _Ac + 1 : _Ac;	// point past any sign

	cmp	BYTE PTR __Ac$[esp+64], 45		; 0000002dH
	lea	edi, DWORD PTR __Ac$[esp+65]
	je	SHORT $L25422
	lea	edi, DWORD PTR __Ac$[esp+64]
$L25422:

; 348  : 		const unsigned long _Ans =
; 349  : 			::strtoul(_Ptr, &_Ep, _Base);	// convert

	push	ebp
	lea	eax, DWORD PTR __Ep$[esp+68]
	push	eax
	push	edi
	call	_strtoul
	add	esp, 12					; 0000000cH

; 350  : 
; 351  : 		if (_First == _Last)

	lea	ecx, DWORD PTR __Last$[esp+60]
	push	ecx
	lea	ecx, DWORD PTR __First$[esp+64]
	mov	esi, eax
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	ebp, DWORD PTR __State$[esp+60]
	je	SHORT $L17088

; 352  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [ebp], 1
$L17088:

; 353  : 		if (_Ep == _Ptr || errno != 0 || USHRT_MAX < _Ans)

	cmp	DWORD PTR __Ep$[esp+64], edi
	je	SHORT $L17090
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17090
	cmp	esi, 65535				; 0000ffffH
	ja	SHORT $L17090

; 355  : 		else
; 356  : 			_Val = (unsigned short)(_Ac[0] == '-'
; 357  : 				? 0 -_Ans : _Ans);	// deliver value

	cmp	BYTE PTR __Ac$[esp+64], 45		; 0000002dH
	jne	SHORT $L25424
	neg	esi
$L25424:
	mov	edx, DWORD PTR __Val$[esp+60]
	mov	WORD PTR [edx], si
	jmp	SHORT $L17091
$L17090:

; 354  : 			_State |= ios_base::failbit;

	or	DWORD PTR [ebp], 2
$L17091:

; 358  : 		return (_First);

	mov	ecx, DWORD PTR __First$[esp+60]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+60]
	mov	edx, DWORD PTR __First$[esp+64]
	pop	edi
	mov	DWORD PTR [eax], ecx

; 359  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	pop	esi
	mov	DWORD PTR [eax+4], edx
	pop	ebp
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25425:
	lea	ecx, DWORD PTR $T25420[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z:
	mov	eax, OFFSET FLAT:$T25460
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T25510	DD	0ffffffffH
	DD	FLAT:$L25473
$T25508	DD	019930520H
	DD	01H
	DD	FLAT:$T25510
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
_TEXT	SEGMENT
__Lock$25500 = -52					; size = 4
__Ep$ = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T25468 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 364  : 		{	// get unsigned int from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 40					; 00000028H
	push	ebp
	push	esi
	push	edi
	mov	esi, ecx

; 365  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 366  : 		errno = 0;

	call	__errno

; 367  : 		int _Base = _Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 368  : 			_Iosbase.getloc());	// gather field into _Ac

	mov	edi, DWORD PTR __Iosbase$[esp+60]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T25468[esp+60]
	push	eax
	mov	ecx, edi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	edi, DWORD PTR [edi+16]
	push	eax
	push	edi
	lea	ecx, DWORD PTR __Last$[esp+68]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+72]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+80]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+96], 0
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	mov	esi, DWORD PTR $T25468[esp+84]
	add	esp, 24					; 00000018H
	test	esi, esi
	mov	ebp, eax
	mov	DWORD PTR __$EHRec$[esp+72], -1
	je	SHORT $L25497
	push	0
	lea	ecx, DWORD PTR __Lock$25500[esp+68]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L25501
	cmp	eax, -1
	jae	SHORT $L25501
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L25501:
	mov	eax, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	eax, eax
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$25500[esp+64]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L25497
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L25497:

; 369  : 		char *_Ptr = _Ac[0] == '-' ? _Ac + 1 : _Ac;	// point past any sign

	cmp	BYTE PTR __Ac$[esp+64], 45		; 0000002dH
	lea	edi, DWORD PTR __Ac$[esp+65]
	je	SHORT $L25470
	lea	edi, DWORD PTR __Ac$[esp+64]
$L25470:

; 370  : 		const unsigned long _Ans =
; 371  : 			::strtoul(_Ptr, &_Ep, _Base);	// convert

	push	ebp
	lea	eax, DWORD PTR __Ep$[esp+68]
	push	eax
	push	edi
	call	_strtoul
	add	esp, 12					; 0000000cH

; 372  : 
; 373  : 		if (_First == _Last)

	lea	ecx, DWORD PTR __Last$[esp+60]
	push	ecx
	lea	ecx, DWORD PTR __First$[esp+64]
	mov	esi, eax
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	ebp, DWORD PTR __State$[esp+60]
	je	SHORT $L17102

; 374  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [ebp], 1
$L17102:

; 375  : 		if (_Ep == _Ptr || errno != 0 || UINT_MAX < _Ans)

	cmp	DWORD PTR __Ep$[esp+64], edi
	je	SHORT $L17104
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17104
	cmp	esi, -1
	ja	SHORT $L17104

; 377  : 		else
; 378  : 			_Val = _Ac[0] == '-' ? 0 -_Ans : _Ans;	// deliver value

	cmp	BYTE PTR __Ac$[esp+64], 45		; 0000002dH
	jne	SHORT $L25472
	neg	esi
$L25472:
	mov	edx, DWORD PTR __Val$[esp+60]
	mov	DWORD PTR [edx], esi
	jmp	SHORT $L17105
$L17104:

; 376  : 			_State |= ios_base::failbit;

	or	DWORD PTR [ebp], 2
$L17105:

; 379  : 		return (_First);

	mov	ecx, DWORD PTR __First$[esp+60]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+60]
	mov	edx, DWORD PTR __First$[esp+64]
	pop	edi
	mov	DWORD PTR [eax], ecx

; 380  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	pop	esi
	mov	DWORD PTR [eax+4], edx
	pop	ebp
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25473:
	lea	ecx, DWORD PTR $T25468[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z:
	mov	eax, OFFSET FLAT:$T25508
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	_strtol:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T25554	DD	0ffffffffH
	DD	FLAT:$L25517
$T25552	DD	019930520H
	DD	01H
	DD	FLAT:$T25554
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
_TEXT	SEGMENT
__Lock$25544 = -52					; size = 4
__Ep$ = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T25516 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 385  : 		{	// get long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 40					; 00000028H
	push	esi
	push	edi
	mov	esi, ecx

; 386  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 387  : 		errno = 0;

	call	__errno

; 388  : 		const long _Ans = ::strtol(_Ac, &_Ep,
; 389  : 			_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 390  : 				_Iosbase.getloc()));	// gather field, convert

	mov	edi, DWORD PTR __Iosbase$[esp+56]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T25516[esp+56]
	push	eax
	mov	ecx, edi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	edi, DWORD PTR [edi+16]
	push	eax
	push	edi
	lea	ecx, DWORD PTR __Last$[esp+64]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+68]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+76]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+92], 0
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	push	eax
	lea	ecx, DWORD PTR __Ep$[esp+88]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+92]
	push	edx
	call	_strtol
	mov	esi, DWORD PTR $T25516[esp+92]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+68], -1
	je	SHORT $L25541
	push	0
	lea	ecx, DWORD PTR __Lock$25544[esp+64]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L25545
	cmp	eax, -1
	jae	SHORT $L25545
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L25545:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$25544[esp+60]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L25541
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L25541:

; 391  : 
; 392  : 		if (_First == _Last)

	lea	eax, DWORD PTR __Last$[esp+56]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+60]
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	esi, DWORD PTR __State$[esp+56]
	je	SHORT $L17113

; 393  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L17113:

; 394  : 		if (_Ep == _Ac || errno != 0)

	mov	eax, DWORD PTR __Ep$[esp+60]
	lea	ecx, DWORD PTR __Ac$[esp+60]
	cmp	eax, ecx
	je	SHORT $L17115
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17115

; 396  : 		else
; 397  : 			_Val = _Ans;	// deliver value

	mov	edx, DWORD PTR __Val$[esp+56]
	mov	DWORD PTR [edx], edi
	jmp	SHORT $L17116
$L17115:

; 395  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L17116:

; 398  : 		return (_First);

	mov	ecx, DWORD PTR __First$[esp+56]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+56]
	mov	edx, DWORD PTR __First$[esp+60]
	mov	DWORD PTR [eax], ecx

; 399  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	pop	edi
	mov	DWORD PTR [eax+4], edx
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25517:
	lea	ecx, DWORD PTR $T25516[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z:
	mov	eax, OFFSET FLAT:$T25552
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T25598	DD	0ffffffffH
	DD	FLAT:$L25561
$T25596	DD	019930520H
	DD	01H
	DD	FLAT:$T25598
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
_TEXT	SEGMENT
__Lock$25588 = -52					; size = 4
__Ep$ = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T25560 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 404  : 		{	// get unsigned long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 40					; 00000028H
	push	esi
	push	edi
	mov	esi, ecx

; 405  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 406  : 		errno = 0;

	call	__errno

; 407  : 		const unsigned long _Ans = ::strtoul(_Ac, &_Ep,
; 408  : 			_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 409  : 				_Iosbase.getloc()));	// gather field, convert

	mov	edi, DWORD PTR __Iosbase$[esp+56]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T25560[esp+56]
	push	eax
	mov	ecx, edi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	edi, DWORD PTR [edi+16]
	push	eax
	push	edi
	lea	ecx, DWORD PTR __Last$[esp+64]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+68]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+76]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+92], 0
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	push	eax
	lea	ecx, DWORD PTR __Ep$[esp+88]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+92]
	push	edx
	call	_strtoul
	mov	esi, DWORD PTR $T25560[esp+92]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+68], -1
	je	SHORT $L25585
	push	0
	lea	ecx, DWORD PTR __Lock$25588[esp+64]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L25589
	cmp	eax, -1
	jae	SHORT $L25589
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L25589:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$25588[esp+60]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L25585
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L25585:

; 410  : 
; 411  : 		if (_First == _Last)

	lea	eax, DWORD PTR __Last$[esp+56]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+60]
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	esi, DWORD PTR __State$[esp+56]
	je	SHORT $L17124

; 412  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L17124:

; 413  : 		if (_Ep == _Ac || errno != 0)

	mov	eax, DWORD PTR __Ep$[esp+60]
	lea	ecx, DWORD PTR __Ac$[esp+60]
	cmp	eax, ecx
	je	SHORT $L17126
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17126

; 415  : 		else
; 416  : 			_Val = _Ans;	// deliver value

	mov	edx, DWORD PTR __Val$[esp+56]
	mov	DWORD PTR [edx], edi
	jmp	SHORT $L17127
$L17126:

; 414  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L17127:

; 417  : 		return (_First);

	mov	ecx, DWORD PTR __First$[esp+56]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+56]
	mov	edx, DWORD PTR __First$[esp+60]
	mov	DWORD PTR [eax], ecx

; 418  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	pop	edi
	mov	DWORD PTR [eax+4], edx
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25561:
	lea	ecx, DWORD PTR $T25560[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z:
	mov	eax, OFFSET FLAT:$T25596
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__strtoi64:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T25642	DD	0ffffffffH
	DD	FLAT:$L25605
$T25640	DD	019930520H
	DD	01H
	DD	FLAT:$T25642
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
_TEXT	SEGMENT
__Lock$25632 = -52					; size = 4
__Ep$ = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T25604 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 424  : 		{	// get long long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 40					; 00000028H
	push	ebx
	push	esi
	push	edi
	mov	esi, ecx

; 425  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 426  : 		errno = 0;

	call	__errno

; 427  : 		const _LONGLONG _Ans = ::_STOLL(_Ac, &_Ep,

	mov	edi, DWORD PTR __Iosbase$[esp+60]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T25604[esp+60]
	push	eax
	mov	ecx, edi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	edi, DWORD PTR [edi+16]
	push	eax
	push	edi
	lea	ecx, DWORD PTR __Last$[esp+68]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+72]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+80]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+96], 0
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	push	eax
	lea	ecx, DWORD PTR __Ep$[esp+92]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+96]
	push	edx
	call	__strtoi64
	mov	esi, DWORD PTR $T25604[esp+96]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	ebx, edx
	mov	DWORD PTR __$EHRec$[esp+72], -1
	je	SHORT $L25627
	push	0
	lea	ecx, DWORD PTR __Lock$25632[esp+68]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L25633
	cmp	eax, -1
	jae	SHORT $L25633
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L25633:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$25632[esp+64]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L25627
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L25627:

; 428  : 			_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 429  : 				_Iosbase.getloc()));	// gather field, convert
; 430  : 
; 431  : 		if (_First == _Last)

	lea	eax, DWORD PTR __Last$[esp+60]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+64]
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	esi, DWORD PTR __State$[esp+60]
	je	SHORT $L17135

; 432  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L17135:

; 433  : 		if (_Ep == _Ac || errno != 0)

	mov	eax, DWORD PTR __Ep$[esp+64]
	lea	ecx, DWORD PTR __Ac$[esp+64]
	cmp	eax, ecx
	je	SHORT $L17137
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17137

; 435  : 		else
; 436  : 			_Val = _Ans;	// deliver value

	mov	eax, DWORD PTR __Val$[esp+60]
	mov	DWORD PTR [eax], edi
	mov	DWORD PTR [eax+4], ebx
	jmp	SHORT $L17138
$L17137:

; 434  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L17138:

; 437  : 		return (_First);

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+60]
	mov	ecx, DWORD PTR __First$[esp+64]
	mov	edx, DWORD PTR __First$[esp+60]
	pop	edi
	mov	DWORD PTR [eax+4], ecx

; 438  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	pop	esi
	mov	DWORD PTR [eax], edx
	pop	ebx
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25605:
	lea	ecx, DWORD PTR $T25604[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z:
	mov	eax, OFFSET FLAT:$T25640
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_J@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__strtoui64:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T25686	DD	0ffffffffH
	DD	FLAT:$L25649
$T25684	DD	019930520H
	DD	01H
	DD	FLAT:$T25686
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
_TEXT	SEGMENT
__Lock$25676 = -52					; size = 4
__Ep$ = -48						; size = 4
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T25648 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 443  : 		{	// get unsigned long long from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 40					; 00000028H
	push	ebx
	push	esi
	push	edi
	mov	esi, ecx

; 444  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 445  : 		errno = 0;

	call	__errno

; 446  : 		const _ULONGLONG _Ans = ::_STOULL(_Ac, &_Ep,

	mov	edi, DWORD PTR __Iosbase$[esp+60]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T25648[esp+60]
	push	eax
	mov	ecx, edi
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	mov	edi, DWORD PTR [edi+16]
	push	eax
	push	edi
	lea	ecx, DWORD PTR __Last$[esp+68]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+72]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+80]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+96], 0
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	push	eax
	lea	ecx, DWORD PTR __Ep$[esp+92]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+96]
	push	edx
	call	__strtoui64
	mov	esi, DWORD PTR $T25648[esp+96]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	ebx, edx
	mov	DWORD PTR __$EHRec$[esp+72], -1
	je	SHORT $L25671
	push	0
	lea	ecx, DWORD PTR __Lock$25676[esp+68]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L25677
	cmp	eax, -1
	jae	SHORT $L25677
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L25677:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$25676[esp+64]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L25671
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L25671:

; 447  : 			_Getifld(_Ac, _First, _Last, _Iosbase.flags(),
; 448  : 				_Iosbase.getloc()));	// gather field, convert
; 449  : 
; 450  : 		if (_First == _Last)

	lea	eax, DWORD PTR __Last$[esp+60]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+64]
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	esi, DWORD PTR __State$[esp+60]
	je	SHORT $L17146

; 451  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L17146:

; 452  : 		if (_Ep == _Ac || errno != 0)

	mov	eax, DWORD PTR __Ep$[esp+64]
	lea	ecx, DWORD PTR __Ac$[esp+64]
	cmp	eax, ecx
	je	SHORT $L17148
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17148

; 454  : 		else
; 455  : 			_Val = _Ans;	// deliver value

	mov	eax, DWORD PTR __Val$[esp+60]
	mov	DWORD PTR [eax], edi
	mov	DWORD PTR [eax+4], ebx
	jmp	SHORT $L17149
$L17148:

; 453  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L17149:

; 456  : 		return (_First);

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+60]
	mov	ecx, DWORD PTR __First$[esp+64]
	mov	edx, DWORD PTR __First$[esp+60]
	pop	edi
	mov	DWORD PTR [eax+4], ecx

; 457  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+60]
	pop	esi
	mov	DWORD PTR [eax], edx
	pop	ebx
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25649:
	lea	ecx, DWORD PTR $T25648[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z:
	mov	eax, OFFSET FLAT:$T25684
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAA_K@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
PUBLIC	?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
EXTRN	__Stof:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T25726	DD	0ffffffffH
	DD	FLAT:$L25693
$T25724	DD	019930520H
	DD	01H
	DD	FLAT:$T25726
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
_TEXT	SEGMENT
__Lock$25716 = -84					; size = 4
__Ep$ = -80						; size = 4
__Ans$ = -76						; size = 4
__Ac$ = -72						; size = 60
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T25692 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 463  : 		{	// get float from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 72					; 00000048H
	push	esi
	mov	esi, ecx

; 464  : 		char _Ac[_MAX_EXP_DIG + _MAX_SIG_DIG + 16], *_Ep;
; 465  : 		errno = 0;

	call	__errno

; 466  : 		const float _Ans = ::_Stof(_Ac, &_Ep,
; 467  : 			_Getffld(_Ac, _First, _Last,
; 468  : 				_Iosbase.getloc()));	// gather field, convert

	mov	ecx, DWORD PTR __Iosbase$[esp+84]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T25692[esp+84]
	push	eax
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	lea	ecx, DWORD PTR __Last$[esp+88]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+92]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+100]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+116], 0
	call	?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
	push	eax
	lea	ecx, DWORD PTR __Ep$[esp+112]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+116]
	push	edx
	call	__Stof
	fstp	DWORD PTR __Ans$[esp+120]
	mov	esi, DWORD PTR $T25692[esp+116]
	add	esp, 32					; 00000020H
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+96], -1
	je	SHORT $L25711
	push	0
	lea	ecx, DWORD PTR __Lock$25716[esp+92]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L25717
	cmp	eax, -1
	jae	SHORT $L25717
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L25717:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$25716[esp+88]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L25711
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L25711:

; 469  : 
; 470  : 		if (_First == _Last)

	lea	eax, DWORD PTR __Last$[esp+84]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+88]
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	esi, DWORD PTR __State$[esp+84]
	je	SHORT $L17157

; 471  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L17157:

; 472  : 		if (_Ep == _Ac || errno != 0)

	mov	eax, DWORD PTR __Ep$[esp+88]
	lea	ecx, DWORD PTR __Ac$[esp+88]
	cmp	eax, ecx
	je	SHORT $L17159
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17159

; 474  : 		else
; 475  : 			_Val = _Ans;	// deliver value

	fld	DWORD PTR __Ans$[esp+88]
	mov	edx, DWORD PTR __Val$[esp+84]
	fstp	DWORD PTR [edx]
	jmp	SHORT $L17160
$L17159:

; 473  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L17160:

; 476  : 		return (_First);

	mov	ecx, DWORD PTR __First$[esp+84]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+84]
	mov	edx, DWORD PTR __First$[esp+88]
	mov	DWORD PTR [eax], ecx

; 477  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+88]
	mov	DWORD PTR [eax+4], edx
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 84					; 00000054H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25693:
	lea	ecx, DWORD PTR $T25692[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z:
	mov	eax, OFFSET FLAT:$T25724
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
xdata$x	SEGMENT
$T26709	DD	0ffffffffH
	DD	FLAT:$L25733
	DD	00H
	DD	FLAT:$L25734
$T26669	DD	019930520H
	DD	02H
	DD	FLAT:$T26709
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z
_TEXT	SEGMENT
__Seendigit$ = -87					; size = 1
__Bad$ = -86						; size = 1
__Kseparator$17410 = -85				; size = 1
__Ptr$ = -84						; size = 4
__Pten$ = -80						; size = 4
__Significant$ = -76					; size = 4
__Punct_fac$ = -72					; size = 4
__Groups$17412 = -68					; size = 28
__Grouping$ = -40					; size = 28
__$EHRec$ = -12						; size = 12
_this$ = 8						; size = 4
__Ac$ = 12						; size = 4
__First$ = 16						; size = 4
__Last$ = 20						; size = 4
__Loc$ = 24						; size = 4
?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld, COMDAT

; 636  : 		{	// get floating-point field from [_First, _Last) into _Ac

	push	-1
	push	__ehhandler$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 76					; 0000004cH

; 637  : 		const _Mypunct& _Punct_fac = _USE(_Loc, _Mypunct);

	mov	eax, DWORD PTR __Loc$[esp+84]
	push	ebx
	push	ebp
	push	esi
	push	edi
	push	eax
	call	??$use_facet@V?$numpunct@D@std@@@std@@YAABV?$numpunct@D@0@ABVlocale@0@@Z ; std::use_facet<std::numpunct<char> >
	add	esp, 4
	mov	ebx, eax

; 638  : 		const string _Grouping = _Punct_fac.grouping();

	lea	ecx, DWORD PTR __Grouping$[esp+104]
	push	ecx
	mov	ecx, ebx
	mov	DWORD PTR __Punct_fac$[esp+108], ebx
	call	?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ; std::numpunct<char>::grouping

; 639  : 		const _Elem _E0 = _MAKLOCCHR(_Elem, '0', _Cvt);
; 640  : 		char *_Ptr = _Ac;
; 641  : 		bool _Bad = false;
; 642  : 
; 643  : 		if (_First == _Last)

	mov	edx, DWORD PTR __Last$[esp+100]
	mov	esi, DWORD PTR __First$[esp+100]
	mov	edi, DWORD PTR __Ac$[esp+100]
	push	edx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+116], 0
	mov	DWORD PTR __Ptr$[esp+108], edi
	mov	BYTE PTR __Bad$[esp+108], 0
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L25761

; 644  : 			;	// empty field
; 645  : 		else if (*_First == _MAKLOCCHR(_Elem, '+', _Cvt))

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L25743
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L25743:
	cmp	BYTE PTR [esi+5], 43			; 0000002bH
	jne	SHORT $L17393

; 646  : 			*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	BYTE PTR [edi], 43			; 0000002bH

; 647  : 		else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	jmp	SHORT $L26707
$L17393:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L25754
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L25754:
	cmp	BYTE PTR [esi+5], 45			; 0000002dH
	jne	SHORT $L25761

; 648  : 			*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	BYTE PTR [edi], 45			; 0000002dH
$L26707:
	inc	edi
	mov	ecx, esi
	mov	DWORD PTR __Ptr$[esp+104], edi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
$L25761:

; 649  : 
; 650  : 		bool _Seendigit = false;	// seen a digit in input
; 651  : 		int _Significant = 0;	// number of significant digits
; 652  : 		int _Pten = 0;	// power of 10 multiplier
; 653  : 
; 654  : 		if (*_Grouping.c_str() == CHAR_MAX || *_Grouping.c_str() <= '\0')

	mov	ecx, DWORD PTR __Grouping$[esp+128]
	mov	edx, DWORD PTR __Grouping$[esp+108]
	xor	ebp, ebp
	cmp	ecx, 16					; 00000010H
	mov	BYTE PTR __Seendigit$[esp+104], 0
	mov	DWORD PTR __Significant$[esp+104], ebp
	mov	DWORD PTR __Pten$[esp+104], ebp
	mov	eax, edx
	jae	SHORT $L25774
	lea	eax, DWORD PTR __Grouping$[esp+108]
$L25774:
	cmp	BYTE PTR [eax], 127			; 0000007fH
	je	$L17401
	cmp	ecx, 16					; 00000010H
	mov	eax, edx
	jae	SHORT $L25788
	lea	eax, DWORD PTR __Grouping$[esp+108]
$L25788:
	cmp	BYTE PTR [eax], 0
	jle	$L17401

; 666  : 					}
; 667  : 		else
; 668  : 			{	// grouping specified, gather digits and group sizes
; 669  : 			const _Elem _Kseparator = _Punct_fac.thousands_sep();

	mov	eax, DWORD PTR [ebx]
	mov	ecx, ebx
	call	DWORD PTR [eax+8]
	mov	BYTE PTR __Kseparator$17410[esp+104], al

; 670  : 			string _Groups((size_t)1, '\0');

	mov	eax, 15					; 0000000fH
	mov	BYTE PTR __Groups$17412[esp+108], 0
	mov	DWORD PTR __Groups$17412[esp+128], eax
	mov	BYTE PTR __Groups$17412[esp+108], 0
	cmp	eax, 16					; 00000010H
	mov	eax, DWORD PTR __Groups$17412[esp+108]
	mov	DWORD PTR __Groups$17412[esp+124], 1
	jae	SHORT $L26227
	lea	eax, DWORD PTR __Groups$17412[esp+108]
$L26227:
	mov	BYTE PTR [eax+1], 0

; 671  : 			size_t _Group = 0;
; 672  : 
; 673  : 			for (; _First != _Last; ++_First)

	mov	ecx, DWORD PTR __Last$[esp+100]
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+116], 1
	xor	edi, edi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	$L26688
$L26700:

; 674  : 				if (_E0 <= *_First && *_First <= _E0 + 9)

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26246
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26246:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jl	$L17417
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26251
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26251:
	cmp	BYTE PTR [esi+5], 57			; 00000039H
	jg	SHORT $L17417

; 675  : 					{	// got a digit, add to group size
; 676  : 					_Seendigit = true;
; 677  : 					if (_MAX_SIG_DIG <= _Significant)

	cmp	ebp, 36					; 00000024H
	mov	BYTE PTR __Seendigit$[esp+104], 1
	jl	SHORT $L17418

; 678  : 						++_Pten;	// just scale by 10

	inc	DWORD PTR __Pten$[esp+104]

; 679  : 					else if (*_First == _E0 && _Significant == 0)

	jmp	SHORT $L17421
$L17418:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26256
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26256:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L17420
	test	ebp, ebp
	je	SHORT $L17421
$L17420:

; 680  : 						;	// drop leading zeros
; 681  : 					else
; 682  : 						{	// save a significant digit
; 683  : 						*_Ptr++ = (*_First - _E0) + '0';

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26261
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26261:
	mov	ecx, DWORD PTR __Ptr$[esp+104]
	mov	al, BYTE PTR [esi+5]
	mov	BYTE PTR [ecx], al
	inc	ecx

; 684  : 						++_Significant;

	inc	ebp
	mov	DWORD PTR __Ptr$[esp+104], ecx
	mov	DWORD PTR __Significant$[esp+104], ebp
$L17421:

; 685  : 						}
; 686  : 					if (_Groups[_Group] != CHAR_MAX)

	mov	edx, DWORD PTR __Groups$17412[esp+128]
	cmp	edx, 16					; 00000010H
	mov	eax, DWORD PTR __Groups$17412[esp+108]
	mov	ecx, eax
	jae	SHORT $L26276
	lea	ecx, DWORD PTR __Groups$17412[esp+108]
$L26276:
	cmp	BYTE PTR [ecx+edi], 127			; 0000007fH
	je	SHORT $L17415

; 687  : 						++_Groups[_Group];

	cmp	edx, 16					; 00000010H
	jae	SHORT $L26290
	lea	eax, DWORD PTR __Groups$17412[esp+108]
$L26290:
	inc	BYTE PTR [eax+edi]

; 688  : 					}
; 689  : 				else if (_Groups[_Group] == '\0'

	jmp	SHORT $L17415
$L17417:

; 690  : 					|| _Kseparator == (_Elem)0
; 691  : 					|| *_First != _Kseparator)

	mov	ebx, DWORD PTR __Groups$17412[esp+128]
	cmp	ebx, 16					; 00000010H
	mov	ebp, DWORD PTR __Groups$17412[esp+108]
	mov	eax, ebp
	jae	SHORT $L26304
	lea	eax, DWORD PTR __Groups$17412[esp+108]
$L26304:
	cmp	BYTE PTR [eax+edi], 0
	je	SHORT $L26677
	mov	al, BYTE PTR __Kseparator$17410[esp+104]
	test	al, al
	je	SHORT $L26677
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26308
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
	mov	ebp, DWORD PTR __Groups$17412[esp+108]
	mov	ebx, DWORD PTR __Groups$17412[esp+128]
$L26308:
	mov	dl, BYTE PTR __Kseparator$17410[esp+104]
	cmp	BYTE PTR [esi+5], dl
	jne	SHORT $L26677

; 692  : 					break;	// not a group separator, done
; 693  : 				else
; 694  : 					{	// add a new group to _Groups string
; 695  : 					_Groups.append((size_t)1, '\0');

	push	0
	push	1
	lea	ecx, DWORD PTR __Groups$17412[esp+112]
	call	?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::append

; 696  : 					++_Group;

	mov	ebp, DWORD PTR __Significant$[esp+104]
	inc	edi
$L17415:
	mov	ecx, esi
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	mov	eax, DWORD PTR __Last$[esp+100]
	push	eax
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	je	$L26700
	mov	ebp, DWORD PTR __Groups$17412[esp+108]
	mov	ebx, DWORD PTR __Groups$17412[esp+128]
$L26677:

; 697  : 					}
; 698  : 			if (_Group == 0)

	test	edi, edi
	je	SHORT $L17432

; 699  : 				;	// no thousands separators seen
; 700  : 			else if ('\0' < _Groups[_Group])

	cmp	ebx, 16					; 00000010H
	mov	eax, ebp
	jae	SHORT $L26323
	lea	eax, DWORD PTR __Groups$17412[esp+108]
$L26323:
	cmp	BYTE PTR [eax+edi], 0
	jle	SHORT $L17431

; 701  : 				++_Group;	// add trailing group to group count

	inc	edi

; 702  : 			else

	jmp	SHORT $L17432
$L17431:

; 703  : 				_Bad = true;	// trailing separator, fail

	mov	BYTE PTR __Bad$[esp+104], 1
	jmp	SHORT $L17432
$L26688:
	mov	ebp, DWORD PTR __Groups$17412[esp+108]
	mov	ebx, DWORD PTR __Groups$17412[esp+128]
$L17432:

; 704  : 
; 705  : 			for (const char *_Pg = _Grouping.c_str();

	cmp	DWORD PTR __Grouping$[esp+128], 16	; 00000010H
	mov	edx, DWORD PTR __Grouping$[esp+108]
	jae	SHORT $L26338
	lea	edx, DWORD PTR __Grouping$[esp+108]
$L26338:

; 706  : 				!_Bad && 0 < _Group; )

	mov	al, BYTE PTR __Bad$[esp+104]
	test	al, al
	jne	SHORT $L26678
$L17435:
	test	edi, edi
	jbe	SHORT $L26678

; 707  : 				if (*_Pg == CHAR_MAX)

	mov	cl, BYTE PTR [edx]
	cmp	cl, 127					; 0000007fH
	je	SHORT $L26678

; 708  : 					break;	// end of grouping constraints to check
; 709  : 				else if (0 < --_Group && *_Pg != _Groups[_Group]
; 710  : 					|| 0 == _Group && *_Pg < _Groups[_Group])

	dec	edi
	je	SHORT $L17441
	cmp	ebx, 16					; 00000010H
	mov	eax, ebp
	jae	SHORT $L26351
	lea	eax, DWORD PTR __Groups$17412[esp+108]
$L26351:
	cmp	cl, BYTE PTR [eax+edi]
	jne	SHORT $L17440
$L17441:
	test	edi, edi
	jne	SHORT $L17439
	cmp	ebx, 16					; 00000010H
	mov	eax, ebp
	jae	SHORT $L26365
	lea	eax, DWORD PTR __Groups$17412[esp+108]
$L26365:
	cmp	cl, BYTE PTR [eax+edi]
	jl	SHORT $L17440
$L17439:

; 712  : 				else if ('\0' < _Pg[1])

	mov	al, BYTE PTR [edx+1]
	test	al, al
	jle	SHORT $L17435

; 706  : 				!_Bad && 0 < _Group; )

	inc	edx
	jmp	SHORT $L17435
$L17440:

; 711  : 					_Bad = true;	// bad group size, fail

	mov	BYTE PTR __Bad$[esp+104], 1
$L26678:

; 713  : 					++_Pg;	// group size okay, advance to next test
; 714  : 			}

	cmp	ebx, 16					; 00000010H
	mov	BYTE PTR __$EHRec$[esp+112], 0
	jb	SHORT $L26696
	push	ebp
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L26696:

; 715  : 
; 716  : 		if (_Seendigit && _Significant == 0)

	mov	al, BYTE PTR __Seendigit$[esp+104]
	test	al, al
	je	SHORT $L17444
	mov	edi, DWORD PTR __Significant$[esp+104]
$L26684:
	test	edi, edi
	jne	SHORT $L17444

; 717  : 			*_Ptr++ = '0';	// save at least one leading digit

	mov	eax, DWORD PTR __Ptr$[esp+104]
	mov	BYTE PTR [eax], 48			; 00000030H
	inc	eax
	mov	DWORD PTR __Ptr$[esp+104], eax
$L17444:

; 718  : 
; 719  : 		if (_First != _Last && *_First == _Punct_fac.decimal_point())

	mov	ecx, DWORD PTR __Last$[esp+100]
	push	ecx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L26691
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26450
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26450:
	mov	ecx, DWORD PTR __Punct_fac$[esp+104]
	mov	edx, DWORD PTR [ecx]
	mov	bl, BYTE PTR [esi+5]
	call	DWORD PTR [edx+4]
	cmp	bl, al
	jne	SHORT $L26691

; 720  : 			*_Ptr++ = localeconv()->decimal_point[0], ++_First;	// add .

	call	_localeconv
	mov	eax, DWORD PTR [eax]
	mov	cl, BYTE PTR [eax]
	mov	eax, DWORD PTR __Ptr$[esp+104]
	mov	BYTE PTR [eax], cl
	inc	eax
	mov	ecx, esi
	mov	DWORD PTR __Ptr$[esp+104], eax
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
$L26691:

; 721  : 
; 722  : 		if (_Significant == 0)

	mov	eax, DWORD PTR __Significant$[esp+104]
	test	eax, eax
	jne	SHORT $L17450

; 723  : 			{	// 0000. so far
; 724  : 			for (; _First != _Last && *_First == _E0;
; 725  : 				_Seendigit = true, ++_First)

	mov	edx, DWORD PTR __Last$[esp+100]
	push	edx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L17449
	mov	ebx, DWORD PTR __Last$[esp+100]
	mov	edi, DWORD PTR __Pten$[esp+104]
	npad	7
$L26692:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26472
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26472:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L26702
	mov	ecx, esi

; 726  : 				--_Pten;	// just count leading fraction zeros

	dec	edi
	mov	BYTE PTR __Seendigit$[esp+104], 1
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	push	ebx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	je	SHORT $L26692
$L26702:
	mov	DWORD PTR __Pten$[esp+104], edi
$L17449:

; 727  : 			if (_Pten < 0)

	mov	eax, DWORD PTR __Pten$[esp+104]
	test	eax, eax
	jge	SHORT $L17450

; 728  : 				*_Ptr++ = '0', ++_Pten;	// put one back

	mov	eax, DWORD PTR __Ptr$[esp+104]
	mov	BYTE PTR [eax], 48			; 00000030H
	inc	eax
	mov	DWORD PTR __Ptr$[esp+104], eax
	inc	DWORD PTR __Pten$[esp+104]
$L17450:

; 729  : 			}
; 730  : 
; 731  : 		for (; _First != _Last
; 732  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 733  : 				_Seendigit = true, ++_First)

	mov	eax, DWORD PTR __Last$[esp+100]
	push	eax
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	$L17453
	npad	3
$L26693:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26488
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26488:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jl	$L17453
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26493
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26493:
	cmp	BYTE PTR [esi+5], 57			; 00000039H
	jg	$L17453

; 734  : 			if (_Significant < _MAX_SIG_DIG)

	cmp	DWORD PTR __Significant$[esp+104], 36	; 00000024H
	jge	SHORT $L17452

; 735  : 				{	// save a significant fraction digit
; 736  : 				*_Ptr++ = (*_First - _E0) + '0';

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26498
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26498:
	mov	eax, DWORD PTR __Ptr$[esp+104]
	mov	cl, BYTE PTR [esi+5]
	mov	BYTE PTR [eax], cl
	inc	eax
	mov	DWORD PTR __Ptr$[esp+104], eax

; 737  : 				++_Significant;

	inc	DWORD PTR __Significant$[esp+104]
$L17452:
	mov	ecx, esi
	mov	BYTE PTR __Seendigit$[esp+104], 1
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	mov	edx, DWORD PTR __Last$[esp+100]
	push	edx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	je	SHORT $L26693

; 738  : 				}
; 739  : 
; 740  : 		if (_Seendigit && _First != _Last
; 741  : 			&& (*_First == _MAKLOCCHR(_Elem, 'e', _Cvt)
; 742  : 				|| *_First == _MAKLOCCHR(_Elem, 'E', _Cvt)))

	jmp	$L26685
$L17401:

; 655  : 			for (; _First != _Last
; 656  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 657  : 					_Seendigit = true, ++_First)

	mov	ecx, DWORD PTR __Last$[esp+100]
	push	ecx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	$L17444
	npad	4
$L26690:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L25804
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L25804:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jl	$L26696
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L25809
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L25809:
	cmp	BYTE PTR [esi+5], 57			; 00000039H
	jg	$L26696

; 658  : 				if (_MAX_SIG_DIG <= _Significant)

	mov	edi, DWORD PTR __Significant$[esp+104]
	cmp	edi, 36					; 00000024H
	jl	SHORT $L17405

; 659  : 					++_Pten;	// just scale by 10

	inc	DWORD PTR __Pten$[esp+104]

; 660  : 				else if (*_First == _E0 && _Significant == 0)

	jmp	SHORT $L17403
$L17405:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L25814
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L25814:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L26697
	test	edi, edi
	je	SHORT $L17403
$L26697:

; 661  : 					;	// drop leading zeros
; 662  : 				else
; 663  : 					{	// save a significant digit
; 664  : 					*_Ptr++ = (*_First - _E0) + '0';

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L25819
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L25819:
	mov	eax, DWORD PTR __Ptr$[esp+104]
	mov	dl, BYTE PTR [esi+5]
	mov	BYTE PTR [eax], dl
	inc	eax

; 665  : 					++_Significant;

	inc	edi
	mov	DWORD PTR __Ptr$[esp+104], eax
	mov	DWORD PTR __Significant$[esp+104], edi
$L17403:
	mov	ecx, esi
	mov	BYTE PTR __Seendigit$[esp+104], 1
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	mov	eax, DWORD PTR __Last$[esp+100]
	push	eax
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	je	$L26690

; 715  : 
; 716  : 		if (_Seendigit && _Significant == 0)

	jmp	$L26684
$L17453:

; 738  : 				}
; 739  : 
; 740  : 		if (_Seendigit && _First != _Last
; 741  : 			&& (*_First == _MAKLOCCHR(_Elem, 'e', _Cvt)
; 742  : 				|| *_First == _MAKLOCCHR(_Elem, 'E', _Cvt)))

	mov	al, BYTE PTR __Seendigit$[esp+104]
	test	al, al
	je	$L26695
$L26685:
	mov	eax, DWORD PTR __Last$[esp+100]
	push	eax
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	$L26695
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26511
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26511:
	cmp	BYTE PTR [esi+5], 101			; 00000065H
	je	SHORT $L17458
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26519
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26519:
	cmp	BYTE PTR [esi+5], 69			; 00000045H
	jne	$L26695
$L17458:

; 743  : 			{	// 'e' or 'E', collect exponent
; 744  : 			*_Ptr++ = 'e', ++_First;

	mov	ebx, DWORD PTR __Ptr$[esp+104]
	mov	BYTE PTR [ebx], 101			; 00000065H
	inc	ebx
	mov	ecx, esi
	mov	DWORD PTR __Ptr$[esp+104], ebx
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc

; 745  : 			_Seendigit = false, _Significant = 0;
; 746  : 
; 747  : 			if (_First == _Last)

	mov	ebp, DWORD PTR __Last$[esp+100]
	push	ebp
	mov	ecx, esi
	mov	BYTE PTR __Seendigit$[esp+108], 0
	xor	edi, edi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L26675

; 748  : 				;	// 'e' or 'E' is last element
; 749  : 			else if (*_First == _MAKLOCCHR(_Elem, '+', _Cvt))

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26533
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26533:
	cmp	BYTE PTR [esi+5], 43			; 0000002bH
	jne	SHORT $L17462

; 750  : 				*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	BYTE PTR [ebx], 43			; 0000002bH

; 751  : 			else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	jmp	SHORT $L26708
$L17462:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26544
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26544:
	cmp	BYTE PTR [esi+5], 45			; 0000002dH
	jne	SHORT $L26675

; 752  : 				*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	BYTE PTR [ebx], 45			; 0000002dH
$L26708:
	inc	ebx
	mov	ecx, esi
	mov	DWORD PTR __Ptr$[esp+104], ebx
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
$L26675:

; 753  : 			for (; _First != _Last && *_First == _E0; )

	push	ebp
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L17469
	mov	ebx, DWORD PTR __Last$[esp+100]
	npad	1
$L17467:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26563
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26563:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L17468

; 754  : 				_Seendigit = true, ++_First;	// strip leading zeros

	mov	ecx, esi
	mov	BYTE PTR __Seendigit$[esp+104], 1
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	push	ebx
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	je	SHORT $L17467

; 755  : 			if (_Seendigit)

	jmp	SHORT $L26686
$L17468:
	mov	al, BYTE PTR __Seendigit$[esp+104]
	test	al, al
	je	SHORT $L17469
$L26686:

; 756  : 				*_Ptr++ = '0';	// put one back

	mov	eax, DWORD PTR __Ptr$[esp+104]
	mov	BYTE PTR [eax], 48			; 00000030H
	inc	eax
	mov	DWORD PTR __Ptr$[esp+104], eax
$L17469:

; 757  : 			for (; _First != _Last
; 758  : 				&& _E0 <= *_First && *_First <= _E0 + 9;
; 759  : 				_Seendigit = true, ++_First)

	mov	ebp, DWORD PTR __Last$[esp+100]
	push	ebp
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	jne	SHORT $L26695
	mov	ebx, DWORD PTR __Ptr$[esp+104]
$L26570:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26582
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26582:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jl	SHORT $L26705
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26587
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26587:
	cmp	BYTE PTR [esi+5], 57			; 00000039H
	jg	SHORT $L26705

; 760  : 				if (_Significant < _MAX_EXP_DIG)

	cmp	edi, 8
	jge	SHORT $L17471

; 761  : 					{	// save a significant exponent digit
; 762  : 					*_Ptr++ = (*_First - _E0) + '0';

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L26592
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L26592:
	mov	cl, BYTE PTR [esi+5]
	mov	BYTE PTR [ebx], cl
	inc	ebx

; 763  : 					++_Significant;

	inc	edi
$L17471:
	mov	ecx, esi
	mov	BYTE PTR __Seendigit$[esp+104], 1
	call	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
	push	ebp
	mov	ecx, esi
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	je	SHORT $L26570
$L26705:

; 761  : 					{	// save a significant exponent digit
; 762  : 					*_Ptr++ = (*_First - _E0) + '0';

	mov	DWORD PTR __Ptr$[esp+104], ebx
$L26695:

; 764  : 					}
; 765  : 			}
; 766  : 
; 767  : 		if (_Bad || !_Seendigit)

	mov	al, BYTE PTR __Bad$[esp+104]
	test	al, al
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	jne	SHORT $L17475
	mov	al, BYTE PTR __Seendigit$[esp+88]
	test	al, al
	jne	SHORT $L26699
$L17475:

; 768  : 			_Ptr = _Ac;	// roll back pointer to indicate failure

	mov	eax, DWORD PTR __Ac$[esp+84]
	jmp	SHORT $L17474
$L26699:
	mov	eax, DWORD PTR __Ptr$[esp+88]
$L17474:

; 769  : 		*_Ptr = '\0';

	mov	BYTE PTR [eax], 0

; 770  : 		return (_Pten);

	cmp	DWORD PTR __Grouping$[esp+112], 16	; 00000010H
	jb	SHORT $L26687
	mov	edx, DWORD PTR __Grouping$[esp+92]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L26687:

; 771  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+88]
	mov	eax, DWORD PTR __Pten$[esp+88]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 88					; 00000058H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25733:
	lea	ecx, DWORD PTR __Grouping$[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L25734:
	lea	ecx, DWORD PTR __Groups$17412[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z:
	mov	eax, OFFSET FLAT:$T26669
	jmp	___CxxFrameHandler
text$x	ENDS
?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
EXTRN	__Stod:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T26749	DD	0ffffffffH
	DD	FLAT:$L26716
$T26747	DD	019930520H
	DD	01H
	DD	FLAT:$T26749
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
_TEXT	SEGMENT
__Lock$26739 = -88					; size = 4
__Ep$ = -84						; size = 4
__Ans$ = -80						; size = 8
__Ac$ = -72						; size = 60
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T26715 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 482  : 		{	// get double from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 76					; 0000004cH
	push	esi
	mov	esi, ecx

; 483  : 		char _Ac[_MAX_EXP_DIG + _MAX_SIG_DIG + 16], *_Ep;
; 484  : 		errno = 0;

	call	__errno

; 485  : 		const double _Ans = ::_Stod(_Ac, &_Ep,
; 486  : 			_Getffld(_Ac, _First, _Last,
; 487  : 				_Iosbase.getloc()));	// gather field, convert

	mov	ecx, DWORD PTR __Iosbase$[esp+88]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T26715[esp+88]
	push	eax
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	lea	ecx, DWORD PTR __Last$[esp+92]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+96]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+104]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+120], 0
	call	?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
	push	eax
	lea	ecx, DWORD PTR __Ep$[esp+116]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+120]
	push	edx
	call	__Stod
	fstp	QWORD PTR __Ans$[esp+124]
	mov	esi, DWORD PTR $T26715[esp+120]
	add	esp, 32					; 00000020H
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+100], -1
	je	SHORT $L26734
	push	0
	lea	ecx, DWORD PTR __Lock$26739[esp+96]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L26740
	cmp	eax, -1
	jae	SHORT $L26740
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L26740:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$26739[esp+92]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L26734
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L26734:

; 488  : 
; 489  : 		if (_First == _Last)

	lea	eax, DWORD PTR __Last$[esp+88]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+92]
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	esi, DWORD PTR __State$[esp+88]
	je	SHORT $L17168

; 490  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L17168:

; 491  : 		if (_Ep == _Ac || errno != 0)

	mov	eax, DWORD PTR __Ep$[esp+92]
	lea	ecx, DWORD PTR __Ac$[esp+92]
	cmp	eax, ecx
	je	SHORT $L17170
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17170

; 493  : 		else
; 494  : 			_Val = _Ans;	// deliver value

	fld	QWORD PTR __Ans$[esp+92]
	mov	edx, DWORD PTR __Val$[esp+88]
	fstp	QWORD PTR [edx]
	jmp	SHORT $L17171
$L17170:

; 492  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L17171:

; 495  : 		return (_First);

	mov	ecx, DWORD PTR __First$[esp+88]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+88]
	mov	edx, DWORD PTR __First$[esp+92]
	mov	DWORD PTR [eax], ecx

; 496  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+92]
	mov	DWORD PTR [eax+4], edx
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 88					; 00000058H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L26716:
	lea	ecx, DWORD PTR $T26715[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z:
	mov	eax, OFFSET FLAT:$T26747
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAN@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
EXTRN	__Stold:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T26789	DD	0ffffffffH
	DD	FLAT:$L26756
$T26787	DD	019930520H
	DD	01H
	DD	FLAT:$T26789
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
_TEXT	SEGMENT
__Lock$26779 = -88					; size = 4
__Ep$ = -84						; size = 4
__Ans$ = -80						; size = 8
__Ac$ = -72						; size = 60
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T26755 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 501  : 		{	// get long double from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 76					; 0000004cH
	push	esi
	mov	esi, ecx

; 502  : 		char _Ac[_MAX_EXP_DIG + _MAX_SIG_DIG + 16], *_Ep;
; 503  : 		errno = 0;

	call	__errno

; 504  : 		const long double _Ans = ::_Stold(_Ac, &_Ep,
; 505  : 			_Getffld(_Ac, _First, _Last,
; 506  : 				_Iosbase.getloc()));	// gather field, convert

	mov	ecx, DWORD PTR __Iosbase$[esp+88]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T26755[esp+88]
	push	eax
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	lea	ecx, DWORD PTR __Last$[esp+92]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+96]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+104]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+120], 0
	call	?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1ABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getffld
	push	eax
	lea	ecx, DWORD PTR __Ep$[esp+116]
	push	ecx
	lea	edx, DWORD PTR __Ac$[esp+120]
	push	edx
	call	__Stold
	fstp	QWORD PTR __Ans$[esp+124]
	mov	esi, DWORD PTR $T26755[esp+120]
	add	esp, 32					; 00000020H
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+100], -1
	je	SHORT $L26774
	push	0
	lea	ecx, DWORD PTR __Lock$26779[esp+96]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L26780
	cmp	eax, -1
	jae	SHORT $L26780
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L26780:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$26779[esp+92]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L26774
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L26774:

; 507  : 
; 508  : 		if (_First == _Last)

	lea	eax, DWORD PTR __Last$[esp+88]
	push	eax
	lea	ecx, DWORD PTR __First$[esp+92]
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	esi, DWORD PTR __State$[esp+88]
	je	SHORT $L17179

; 509  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L17179:

; 510  : 		if (_Ep == _Ac || errno != 0)

	mov	eax, DWORD PTR __Ep$[esp+92]
	lea	ecx, DWORD PTR __Ac$[esp+92]
	cmp	eax, ecx
	je	SHORT $L17181
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17181

; 512  : 		else
; 513  : 			_Val = _Ans;	// deliver value

	fld	QWORD PTR __Ans$[esp+92]
	mov	edx, DWORD PTR __Val$[esp+88]
	fstp	QWORD PTR [edx]
	jmp	SHORT $L17182
$L17181:

; 511  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L17182:

; 514  : 		return (_First);

	mov	ecx, DWORD PTR __First$[esp+88]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+88]
	mov	edx, DWORD PTR __First$[esp+92]
	mov	DWORD PTR [eax], ecx

; 515  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+92]
	mov	DWORD PTR [eax+4], edx
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 88					; 00000058H
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L26756:
	lea	ecx, DWORD PTR $T26755[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z:
	mov	eax, OFFSET FLAT:$T26787
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAO@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T26831	DD	0ffffffffH
	DD	FLAT:$L26798
$T26829	DD	019930520H
	DD	01H
	DD	FLAT:$T26831
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
xdata$x	ENDS
;	COMDAT ?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
_TEXT	SEGMENT
__Lock$26821 = -60					; size = 4
__Ep$ = -56						; size = 4
__Ans$ = -52						; size = 8
__Ac$ = -44						; size = 32
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T26795 = 28						; size = 4
__Iosbase$ = 28						; size = 4
__State$ = 32						; size = 4
__Val$ = 36						; size = 4
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z PROC NEAR ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get, COMDAT
; _this$ = ecx

; 520  : 		{	// get void pointer from [_First, _Last) into _Val

	push	-1
	push	__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 48					; 00000030H
	push	esi
	push	edi
	mov	esi, ecx

; 521  : 		char _Ac[_MAX_INT_DIG], *_Ep;
; 522  : 		errno = 0;

	call	__errno

; 523  : 
; 524  :  #ifdef _LONGLONG
; 525  : 		int _Base = _Getifld(_Ac, _First, _Last, ios_base::hex,
; 526  : 			_Iosbase.getloc());	// gather field

	mov	ecx, DWORD PTR __Iosbase$[esp+64]
	mov	DWORD PTR [eax], 0
	lea	eax, DWORD PTR $T26795[esp+64]
	push	eax
	call	?getloc@ios_base@std@@QBE?AVlocale@2@XZ	; std::ios_base::getloc
	push	eax
	push	2048					; 00000800H
	lea	ecx, DWORD PTR __Last$[esp+72]
	push	ecx
	lea	edx, DWORD PTR __First$[esp+76]
	push	edx
	lea	eax, DWORD PTR __Ac$[esp+84]
	push	eax
	push	esi
	mov	DWORD PTR __$EHRec$[esp+100], 0
	call	?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@ABAHPADAAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HABVlocale@2@@Z ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getifld
	mov	esi, DWORD PTR $T26795[esp+88]
	add	esp, 24					; 00000018H
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+76], -1
	je	SHORT $L26816
	push	0
	lea	ecx, DWORD PTR __Lock$26821[esp+72]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L26822
	cmp	eax, -1
	jae	SHORT $L26822
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L26822:
	mov	edx, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	edx, edx
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$26821[esp+68]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L26816
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L26816:

; 527  : 		const _ULONGLONG _Ans =
; 528  : 			(sizeof (void *) == sizeof (unsigned long))
; 529  : 				? (_ULONGLONG)::strtoul(_Ac, &_Ep, _Base)
; 530  : 				: ::_STOULL(_Ac, &_Ep, _Base);

	push	edi
	lea	eax, DWORD PTR __Ep$[esp+72]
	push	eax
	lea	ecx, DWORD PTR __Ac$[esp+76]
	push	ecx
	call	_strtoul
	add	esp, 12					; 0000000cH

; 531  : 
; 532  :  #else /* _LONGLONG */
; 533  : 		const unsigned long _Ans = ::strtoul(_Ac, &_Ep,
; 534  : 			_Getifld(_Ac, _First, _Last, ios_base::hex,
; 535  : 				_Iosbase.getloc()));	// gather field, convert
; 536  :  #endif /* _LONGLONG */
; 537  : 
; 538  : 		if (_First == _Last)

	lea	edx, DWORD PTR __Last$[esp+64]
	push	edx
	lea	ecx, DWORD PTR __First$[esp+68]
	mov	edi, eax
	mov	DWORD PTR __Ans$[esp+76], 0
	call	?equal@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@QBE_NABV12@@Z ; std::istreambuf_iterator<char,std::char_traits<char> >::equal
	test	al, al
	mov	esi, DWORD PTR __State$[esp+64]
	je	SHORT $L17194

; 539  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L17194:

; 540  : 		if (_Ep == _Ac || errno != 0)

	mov	ecx, DWORD PTR __Ep$[esp+68]
	lea	eax, DWORD PTR __Ac$[esp+68]
	cmp	ecx, eax
	je	SHORT $L17196
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L17196

; 542  : 		else
; 543  : 			_Val = (void *)(uintptr_t)_Ans;	// deliver value

	mov	ecx, DWORD PTR __Val$[esp+64]
	mov	DWORD PTR [ecx], edi
	jmp	SHORT $L17197
$L17196:

; 541  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L17197:

; 544  : 		return (_First);

	mov	eax, DWORD PTR ___$ReturnUdt$[esp+64]
	mov	ecx, DWORD PTR __First$[esp+68]
	mov	edx, DWORD PTR __First$[esp+64]
	mov	DWORD PTR [eax+4], ecx

; 545  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+68]
	pop	edi
	mov	DWORD PTR [eax], edx
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 60					; 0000003cH
	ret	32					; 00000020H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L26798:
	lea	ecx, DWORD PTR $T26795[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z:
	mov	eax, OFFSET FLAT:$T26829
	jmp	___CxxFrameHandler
text$x	ENDS
?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAPAX@Z ENDP ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::do_get
; Function compile flags: /Ogty
;	COMDAT ?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T26838 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC NEAR ; std::numpunct<char>::do_grouping, COMDAT
; _this$ = ecx

; 121  : 		{	// return grouping string

	push	ecx

; 122  : 		return (string(_Grouping));

	mov	ecx, DWORD PTR [ecx+8]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	mov	eax, ecx
	push	edi
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	DWORD PTR [esi+20], 0
	mov	DWORD PTR $T26838[esp+12], 0
	mov	BYTE PTR [esi+4], 0
	lea	edi, DWORD PTR [eax+1]
	npad	7
$L26946:
	mov	dl, BYTE PTR [eax]
	inc	eax
	test	dl, dl
	jne	SHORT $L26946
	sub	eax, edi
	push	eax
	push	ecx
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	edi
	mov	eax, esi
	pop	esi

; 123  : 		}

	pop	ecx
	ret	4
?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::do_grouping
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T26951 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC NEAR ; std::numpunct<char>::do_falsename, COMDAT
; _this$ = ecx

; 126  : 		{	// return name for false

	push	ecx

; 127  : 		return (string_type(_Falsename));

	mov	ecx, DWORD PTR [ecx+16]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	mov	eax, ecx
	push	edi
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	DWORD PTR [esi+20], 0
	mov	DWORD PTR $T26951[esp+12], 0
	mov	BYTE PTR [esi+4], 0
	lea	edi, DWORD PTR [eax+1]
	npad	7
$L27059:
	mov	dl, BYTE PTR [eax]
	inc	eax
	test	dl, dl
	jne	SHORT $L27059
	sub	eax, edi
	push	eax
	push	ecx
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	edi
	mov	eax, esi
	pop	esi

; 128  : 		}

	pop	ecx
	ret	4
?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::do_falsename
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T27064 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ PROC NEAR ; std::numpunct<char>::do_truename, COMDAT
; _this$ = ecx

; 131  : 		{	// return name for true

	push	ecx

; 132  : 		return (string_type(_Truename));

	mov	ecx, DWORD PTR [ecx+20]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	mov	eax, ecx
	push	edi
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	DWORD PTR [esi+20], 0
	mov	DWORD PTR $T27064[esp+12], 0
	mov	BYTE PTR [esi+4], 0
	lea	edi, DWORD PTR [eax+1]
	npad	7
$L27172:
	mov	dl, BYTE PTR [eax]
	inc	eax
	test	dl, dl
	jne	SHORT $L27172
	sub	eax, edi
	push	eax
	push	ecx
	mov	ecx, esi
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	pop	edi
	mov	eax, esi
	pop	esi

; 133  : 		}

	pop	ecx
	ret	4
?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ ENDP ; std::numpunct<char>::do_truename
_TEXT	ENDS
PUBLIC	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
xdata$x	SEGMENT
$T27193	DD	0ffffffffH
	DD	FLAT:$L27179
$T27191	DD	019930520H
	DD	01H
	DD	FLAT:$T27193
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf\r3v.cpp
xdata$x	ENDS
;	COMDAT ?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
_value$ = -152						; size = 4
_stream$ = -148						; size = 136
__$EHRec$ = -12						; size = 12
_str$ = 8						; size = 4
?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC NEAR ; stringToInt, COMDAT

; 14   : {

	push	-1
	push	__ehhandler$?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 140				; 0000008cH

; 15   : std::stringstream stream;

	push	1
	push	3
	lea	ecx, DWORD PTR _stream$[esp+160]
	call	??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >

; 16   : stream << str;

	mov	eax, DWORD PTR _str$[esp+148]
	push	eax
	lea	ecx, DWORD PTR _stream$[esp+164]
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+168], 0
	call	??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ; std::operator<<<char,std::char_traits<char>,std::allocator<char> >
	add	esp, 8

; 17   : int value;
; 18   : stream >> value;

	lea	edx, DWORD PTR _value$[esp+152]
	push	edx
	lea	ecx, DWORD PTR _stream$[esp+156]
	call	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>

; 19   : return value;

	lea	ecx, DWORD PTR _stream$[esp+236]
	mov	DWORD PTR __$EHRec$[esp+160], -1
	call	??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
	lea	ecx, DWORD PTR _stream$[esp+236]
	mov	DWORD PTR _stream$[esp+236], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	call	??1ios_base@std@@UAE@XZ			; std::ios_base::~ios_base

; 20   : }

	mov	ecx, DWORD PTR __$EHRec$[esp+152]
	mov	eax, DWORD PTR _value$[esp+152]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 152				; 00000098H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L27179:
	lea	ecx, DWORD PTR _stream$[ebp]
	jmp	??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ
__ehhandler$?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z:
	mov	eax, OFFSET FLAT:$T27191
	jmp	___CxxFrameHandler
text$x	ENDS
?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; stringToInt
PUBLIC	?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToFloat
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
xdata$x	SEGMENT
$T27216	DD	0ffffffffH
	DD	FLAT:$L27202
$T27214	DD	019930520H
	DD	01H
	DD	FLAT:$T27216
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf\r3v.cpp
xdata$x	ENDS
;	COMDAT ?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
_TEXT	SEGMENT
$T27201 = -156						; size = 4
_value$ = -152						; size = 4
_stream$ = -148						; size = 136
__$EHRec$ = -12						; size = 12
_str$ = 8						; size = 4
?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z PROC NEAR ; stringToFloat, COMDAT

; 23   : {

	push	-1
	push	__ehhandler$?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 144				; 00000090H

; 24   :  std::stringstream stream;

	push	1
	push	3
	lea	ecx, DWORD PTR _stream$[esp+164]
	call	??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >

; 25   :  stream << str;

	mov	eax, DWORD PTR _str$[esp+152]
	push	eax
	lea	ecx, DWORD PTR _stream$[esp+168]
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+172], 0
	call	??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ; std::operator<<<char,std::char_traits<char>,std::allocator<char> >
	add	esp, 8

; 26   :  float value;
; 27   :  stream >> value;

	lea	edx, DWORD PTR _value$[esp+156]
	push	edx
	lea	ecx, DWORD PTR _stream$[esp+160]
	call	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>

; 28   :  return value;

	mov	eax, DWORD PTR _value$[esp+156]
	lea	ecx, DWORD PTR _stream$[esp+240]
	mov	DWORD PTR $T27201[esp+156], eax
	mov	DWORD PTR __$EHRec$[esp+164], -1
	call	??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ ; std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
	lea	ecx, DWORD PTR _stream$[esp+240]
	mov	DWORD PTR _stream$[esp+240], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	call	??1ios_base@std@@UAE@XZ			; std::ios_base::~ios_base
	fld	DWORD PTR $T27201[esp+156]

; 29   :  }

	mov	ecx, DWORD PTR __$EHRec$[esp+156]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 156				; 0000009cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L27202:
	lea	ecx, DWORD PTR _stream$[ebp]
	jmp	??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ
__ehhandler$?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z:
	mov	eax, OFFSET FLAT:$T27214
	jmp	___CxxFrameHandler
text$x	ENDS
?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ENDP ; stringToFloat
PUBLIC	?DataFromDDE@@YAXQAD@Z				; DataFromDDE
PUBLIC	??_C@_01CLKCMJKC@?5?$AA@			; `string'
PUBLIC	??_C@_0L@IFECALMP@killplayer?$AA@		; `string'
PUBLIC	??_C@_07JOKNDDID@showpos?$AA@			; `string'
PUBLIC	??_C@_0CH@GCBJJPAF@Position?5of?5player?5?$CFd?3?5?$CFfX?5?9?5?$CFfY@ ; `string'
PUBLIC	??_C@_05KGMIOAGB@bring?$AA@			; `string'
PUBLIC	??_C@_06MHNODEGF@setpos?$AA@			; `string'
PUBLIC	??_C@_04MABHPDAO@goto?$AA@			; `string'
PUBLIC	??_C@_09KICPPDHG@givemoney?$AA@			; `string'
PUBLIC	__real@3f800000
EXTRN	?Console_Output@@YAXPBDZZ:NEAR			; Console_Output
EXTRN	_strtok:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
xdata$x	SEGMENT
$T29425	DD	0ffffffffH
	DD	FLAT:$L27240
	DD	0ffffffffH
	DD	FLAT:$L27241
	DD	0ffffffffH
	DD	FLAT:$L27242
	DD	0ffffffffH
	DD	FLAT:$L27243
	DD	0ffffffffH
	DD	FLAT:$L27244
	DD	0ffffffffH
	DD	FLAT:$L27245
	DD	0ffffffffH
	DD	FLAT:$L27246
	DD	0ffffffffH
	DD	FLAT:$L27247
	DD	0ffffffffH
	DD	FLAT:$L27248
	DD	0ffffffffH
	DD	FLAT:$L27249
	DD	0ffffffffH
	DD	FLAT:$L27250
	DD	0ffffffffH
	DD	FLAT:$L27251
$T29401	DD	019930520H
	DD	0cH
	DD	FLAT:$T29425
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_C@_0L@IFECALMP@killplayer?$AA@
CONST	SEGMENT
??_C@_0L@IFECALMP@killplayer?$AA@ DB 'killplayer', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_01CLKCMJKC@?5?$AA@
CONST	SEGMENT
??_C@_01CLKCMJKC@?5?$AA@ DB ' ', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_07JOKNDDID@showpos?$AA@
CONST	SEGMENT
??_C@_07JOKNDDID@showpos?$AA@ DB 'showpos', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0CH@GCBJJPAF@Position?5of?5player?5?$CFd?3?5?$CFfX?5?9?5?$CFfY@
CONST	SEGMENT
??_C@_0CH@GCBJJPAF@Position?5of?5player?5?$CFd?3?5?$CFfX?5?9?5?$CFfY@ DB 'P'
	DB	'osition of player %d: %fX - %fY - %fZ', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_05KGMIOAGB@bring?$AA@
CONST	SEGMENT
??_C@_05KGMIOAGB@bring?$AA@ DB 'bring', 00H		; `string'
CONST	ENDS
;	COMDAT __real@3f800000
CONST	SEGMENT
__real@3f800000 DD 03f800000r			; 1
CONST	ENDS
;	COMDAT ??_C@_06MHNODEGF@setpos?$AA@
CONST	SEGMENT
??_C@_06MHNODEGF@setpos?$AA@ DB 'setpos', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_04MABHPDAO@goto?$AA@
CONST	SEGMENT
??_C@_04MABHPDAO@goto?$AA@ DB 'goto', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_09KICPPDHG@givemoney?$AA@
CONST	SEGMENT
??_C@_09KICPPDHG@givemoney?$AA@ DB 'givemoney', 00H	; `string'
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf\r3v.cpp
CONST	ENDS
;	COMDAT ?DataFromDDE@@YAXQAD@Z
_TEXT	SEGMENT
$T27238 = -612						; size = 28
$T27235 = -612						; size = 28
$T27234 = -612						; size = 28
$T27233 = -612						; size = 28
$T27232 = -612						; size = 28
$T27231 = -612						; size = 28
$T27230 = -612						; size = 28
$T27227 = -612						; size = 28
$T27226 = -612						; size = 28
$T27223 = -612						; size = 28
$T27222 = -612						; size = 28
_pos$15773 = -584					; size = 12
_position$15762 = -584					; size = 12
_position$15755 = -584					; size = 12
_p$15744 = -584						; size = 12
_amount$15779 = -572					; size = 4
_token$ = -572						; size = 4
_seps$ = -568						; size = 2
$T27239 = -564						; size = 28
$T27237 = -536						; size = 12
$T27229 = -536						; size = 12
$T27225 = -536						; size = 12
_Message$15772 = -524					; size = 512
_Message$15761 = -524					; size = 512
_Message$15753 = -524					; size = 512
_Message$15741 = -524					; size = 512
__$EHRec$ = -12						; size = 12
_In$ = 8						; size = 4
?DataFromDDE@@YAXQAD@Z PROC NEAR			; DataFromDDE, COMDAT

; 32   : {

	push	-1
	push	__ehhandler$?DataFromDDE@@YAXQAD@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 600				; 00000258H

; 33   : 	char seps[] = " ";
; 34   :     char *token;
; 35   : 	token = strtok( In, seps );

	mov	ecx, DWORD PTR _In$[esp+608]
	push	ebx
	push	ebp
	push	esi
	push	edi
	lea	eax, DWORD PTR _seps$[esp+628]
	push	eax
	push	ecx
	mov	WORD PTR _seps$[esp+636], 32		; 00000020H
	call	_strtok
	add	esp, 8

; 36   : 	if (strcmp(token,"killplayer") == 0)

	xor	edx, edx
	mov	edi, OFFSET FLAT:??_C@_0L@IFECALMP@killplayer?$AA@
	mov	esi, eax
	mov	ecx, 11					; 0000000bH
	repe cmpsb
	mov	DWORD PTR _token$[esp+628], eax
	mov	ebx, edx
	jne	SHORT $L29422

; 37   : 	{
; 38   : 		int playerid = stringToInt(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27222[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27222[esp+648], ebx
	mov	BYTE PTR $T27222[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
$L29403:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29403
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27222[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	eax, DWORD PTR $T27222[esp+628]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+640], ebx
	call	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
	mov	esi, eax
	mov	eax, DWORD PTR $T27222[esp+656]
	mov	ebp, 16					; 00000010H
	add	esp, 4
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L27420
	mov	ecx, DWORD PTR $T27222[esp+632]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L27420:

; 39   : 		kill_player(playerid);

	push	esi
	call	?kill_player@@YAXH@Z			; kill_player
	add	esp, 4
	jmp	SHORT $L15735
$L29422:
	mov	ebp, 16					; 00000010H
$L15735:

; 40   : 	}
; 41   : 	if (strcmp(token,"showpos") == 0)

	mov	esi, DWORD PTR _token$[esp+628]
	mov	edi, OFFSET FLAT:??_C@_07JOKNDDID@showpos?$AA@
	mov	ecx, 8
	xor	edx, edx
	repe cmpsb
	jne	$L15739

; 42   : 	{
; 43   : 		char Message[512];
; 44   : 		int playerid = stringToInt(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27223[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27223[esp+648], ebx
	mov	BYTE PTR $T27223[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
$L29405:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29405
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27223[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	eax, DWORD PTR $T27223[esp+628]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+640], 1
	call	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
	mov	esi, eax
	mov	eax, DWORD PTR $T27223[esp+656]
	add	esp, 4
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L27599
	mov	ecx, DWORD PTR $T27223[esp+632]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L27599:

; 45   : 		Vector3 p = Commands->Get_Position(Get_GameObj(playerid));

	mov	edi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	esi
	add	edi, 64					; 00000040H
	call	?Get_GameObj@@YAPAEH@Z			; Get_GameObj
	push	eax
	lea	edx, DWORD PTR $T27225[esp+636]
	push	edx
	call	DWORD PTR [edi]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [eax+8]

; 46   : 		sprintf(Message, "Position of player %d: %fX - %fY - %fZ", playerid,p.X,p.Y,p.Z);

	sub	esp, 12					; 0000000cH
	mov	DWORD PTR _p$15744[esp+660], eax
	fld	DWORD PTR _p$15744[esp+660]
	fstp	QWORD PTR [esp+16]
	mov	DWORD PTR _p$15744[esp+656], edx
	fld	DWORD PTR _p$15744[esp+656]
	mov	DWORD PTR _p$15744[esp+652], ecx
	fstp	QWORD PTR [esp+8]
	lea	ecx, DWORD PTR _Message$15741[esp+652]
	fld	DWORD PTR _p$15744[esp+652]
	fstp	QWORD PTR [esp]
	push	esi
	push	OFFSET FLAT:??_C@_0CH@GCBJJPAF@Position?5of?5player?5?$CFd?3?5?$CFfX?5?9?5?$CFfY@
	push	ecx
	call	_sprintf

; 47   : 		Console_Output(Message);

	lea	edx, DWORD PTR _Message$15741[esp+664]
	push	edx
	call	?Console_Output@@YAXPBDZZ		; Console_Output
	add	esp, 40					; 00000028H
$L15739:

; 48   : 	}
; 49   : 	if (strcmp(token,"bring") == 0)

	mov	esi, DWORD PTR _token$[esp+628]
	mov	edi, OFFSET FLAT:??_C@_05KGMIOAGB@bring?$AA@
	mov	ecx, 6
	xor	eax, eax
	repe cmpsb
	jne	$L29423

; 50   : 	{
; 51   : 		int playerid = stringToInt(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27226[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27226[esp+648], ebx
	mov	BYTE PTR $T27226[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
$L29407:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29407
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27226[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	ecx, DWORD PTR $T27226[esp+628]
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+640], 2
	call	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
	mov	ebp, eax
	mov	eax, DWORD PTR $T27226[esp+656]
	mov	edi, 16					; 00000010H
	add	esp, 4
	cmp	eax, edi
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L27772
	mov	edx, DWORD PTR $T27226[esp+632]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L27772:

; 52   : 		int playerid2 = stringToInt(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27227[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27227[esp+648], ebx
	mov	BYTE PTR $T27227[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
	npad	1
$L29408:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29408
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27227[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	eax, DWORD PTR $T27227[esp+628]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+640], 3
	call	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
	mov	esi, eax
	mov	eax, DWORD PTR $T27227[esp+656]
	add	esp, 4
	cmp	eax, edi
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L27951
	mov	ecx, DWORD PTR $T27227[esp+632]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L27951:

; 53   : 		char Message[512];
; 54   : 		sprintf(Message, "eject %d", playerid2);

	push	esi
	lea	edx, DWORD PTR _Message$15753[esp+632]
	push	OFFSET FLAT:??_C@_08IKLAEOOG@eject?5?$CFd?$AA@
	push	edx
	call	_sprintf

; 55   : 		Console_Input(Message);

	lea	eax, DWORD PTR _Message$15753[esp+640]
	push	eax
	call	?Console_Input@@YAXPBD@Z		; Console_Input

; 56   : 		Vector3 position = Commands->Get_Position(Get_GameObj(playerid));

	mov	edi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebp
	add	edi, 64					; 00000040H
	call	?Get_GameObj@@YAPAEH@Z			; Get_GameObj
	push	eax
	lea	ecx, DWORD PTR $T27229[esp+652]
	push	ecx
	call	DWORD PTR [edi]
	mov	edx, DWORD PTR [eax]

; 57   : 		position.X = position.X + 3;
; 58   : 		position.Z = position.Z + 1;
; 59   : 		Commands->Set_Position(Get_GameObj(playerid2), position);

	mov	edi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	DWORD PTR _position$15755[esp+656], edx
	fld	DWORD PTR _position$15755[esp+656]
	mov	ecx, DWORD PTR [eax+4]
	fadd	DWORD PTR __real@40400000
	mov	DWORD PTR _position$15755[esp+660], ecx
	mov	edx, DWORD PTR [eax+8]
	fstp	DWORD PTR _position$15755[esp+656]
	mov	DWORD PTR _position$15755[esp+664], edx
	fld	DWORD PTR _position$15755[esp+664]
	add	esp, 28					; 0000001cH
	fadd	DWORD PTR __real@3f800000
	lea	eax, DWORD PTR _position$15755[esp+628]
	push	eax
	push	esi
	fstp	DWORD PTR _position$15755[esp+644]
	add	edi, 60					; 0000003cH
	call	?Get_GameObj@@YAPAEH@Z			; Get_GameObj
	add	esp, 4
	push	eax
	call	DWORD PTR [edi]
	add	esp, 8
	mov	ebp, 16					; 00000010H
$L29423:

; 60   : 	}
; 61   :     if (strcmp(token,"setpos") == 0)

	mov	esi, DWORD PTR _token$[esp+628]
	mov	edi, OFFSET FLAT:??_C@_06MHNODEGF@setpos?$AA@
	mov	ecx, 7
	xor	edx, edx
	repe cmpsb
	jne	$L15757

; 62   : 	{
; 63   : 		int playerid = stringToInt(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27230[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27230[esp+648], ebx
	mov	BYTE PTR $T27230[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
$L29410:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29410
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27230[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	eax, DWORD PTR $T27230[esp+628]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+640], 4
	call	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
	mov	edi, eax
	mov	eax, DWORD PTR $T27230[esp+656]
	add	esp, 4
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L28130
	mov	ecx, DWORD PTR $T27230[esp+632]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L28130:

; 64   : 	    char Message[512];
; 65   : 		sprintf(Message, "eject %d", playerid);

	push	edi
	lea	edx, DWORD PTR _Message$15761[esp+632]
	push	OFFSET FLAT:??_C@_08IKLAEOOG@eject?5?$CFd?$AA@
	push	edx
	call	_sprintf

; 66   : 		Console_Input(Message);

	lea	eax, DWORD PTR _Message$15761[esp+640]
	push	eax
	call	?Console_Input@@YAXPBD@Z		; Console_Input

; 67   : 		Vector3 position;
; 68   : 		position.X = stringToFloat(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 24					; 00000018H
	mov	DWORD PTR $T27231[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27231[esp+648], ebx
	mov	BYTE PTR $T27231[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
	npad	2
$L29411:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29411
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27231[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	ecx, DWORD PTR $T27231[esp+628]
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+640], 5
	call	?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToFloat
	fstp	DWORD PTR _position$15762[esp+632]
	mov	eax, DWORD PTR $T27231[esp+656]
	add	esp, 4
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L28315
	mov	edx, DWORD PTR $T27231[esp+632]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L28315:

; 69   : 		position.Y = stringToFloat(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27232[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27232[esp+648], ebx
	mov	BYTE PTR $T27232[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
$L29412:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29412
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27232[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	eax, DWORD PTR $T27232[esp+628]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+640], 6
	call	?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToFloat
	fstp	DWORD PTR _position$15762[esp+636]
	mov	eax, DWORD PTR $T27232[esp+656]
	add	esp, 4
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L28494
	mov	ecx, DWORD PTR $T27232[esp+632]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L28494:

; 70   : 		position.Z = stringToFloat(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27233[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27233[esp+648], ebx
	mov	BYTE PTR $T27233[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
	npad	6
$L29413:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29413
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27233[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	edx, DWORD PTR $T27233[esp+628]
	push	edx
	mov	DWORD PTR __$EHRec$[esp+640], 7
	call	?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToFloat
	fstp	DWORD PTR _position$15762[esp+640]
	mov	eax, DWORD PTR $T27233[esp+656]
	add	esp, 4
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L28673
	mov	eax, DWORD PTR $T27233[esp+632]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L28673:

; 71   : 		Commands->Set_Position(Get_GameObj(playerid), position);

	mov	esi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _position$15762[esp+628]
	push	ecx
	push	edi
	add	esi, 60					; 0000003cH
	call	?Get_GameObj@@YAPAEH@Z			; Get_GameObj
	add	esp, 4
	push	eax
	call	DWORD PTR [esi]
	add	esp, 8
$L15757:

; 72   : 	}
; 73   : 	if (strcmp(token,"goto") == 0)

	mov	esi, DWORD PTR _token$[esp+628]
	mov	edi, OFFSET FLAT:??_C@_04MABHPDAO@goto?$AA@
	mov	ecx, 5
	xor	edx, edx
	repe cmpsb
	jne	$L15766

; 74   : 	{
; 75   : 		int playerid = stringToInt(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27234[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27234[esp+648], ebx
	mov	BYTE PTR $T27234[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
	npad	6
$L29415:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29415
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27234[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	eax, DWORD PTR $T27234[esp+628]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+640], 8
	call	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
	mov	ebp, eax
	mov	eax, DWORD PTR $T27234[esp+656]
	add	esp, 4
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L28846
	mov	ecx, DWORD PTR $T27234[esp+632]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L28846:

; 76   : 		int playerid2 = stringToInt(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27235[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27235[esp+648], ebx
	mov	BYTE PTR $T27235[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
$L29416:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29416
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27235[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	edx, DWORD PTR $T27235[esp+628]
	push	edx
	mov	DWORD PTR __$EHRec$[esp+640], 9
	call	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
	mov	edi, eax
	mov	eax, DWORD PTR $T27235[esp+656]
	add	esp, 4
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L29025
	mov	eax, DWORD PTR $T27235[esp+632]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L29025:

; 77   : 		char Message[512];
; 78   : 		sprintf(Message, "eject %d", playerid);

	push	ebp
	lea	ecx, DWORD PTR _Message$15772[esp+632]
	push	OFFSET FLAT:??_C@_08IKLAEOOG@eject?5?$CFd?$AA@
	push	ecx
	call	_sprintf

; 79   : 		Console_Input(Message);

	lea	edx, DWORD PTR _Message$15772[esp+640]
	push	edx
	call	?Console_Input@@YAXPBD@Z		; Console_Input

; 80   : 		Vector3 pos = Commands->Get_Position(Get_GameObj(playerid2));

	mov	esi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	add	esi, 64					; 00000040H
	call	?Get_GameObj@@YAPAEH@Z			; Get_GameObj
	push	eax
	lea	eax, DWORD PTR $T27237[esp+652]
	push	eax
	call	DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax]

; 81   : 		pos.X = pos.X + 3;
; 82   : 		pos.Z = pos.Z + 1;
; 83   : 		Commands->Set_Position(Get_GameObj(playerid), pos);

	mov	esi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	DWORD PTR _pos$15773[esp+656], ecx
	fld	DWORD PTR _pos$15773[esp+656]
	mov	edx, DWORD PTR [eax+4]
	fadd	DWORD PTR __real@40400000
	mov	DWORD PTR _pos$15773[esp+660], edx
	mov	eax, DWORD PTR [eax+8]
	fstp	DWORD PTR _pos$15773[esp+656]
	mov	DWORD PTR _pos$15773[esp+664], eax
	fld	DWORD PTR _pos$15773[esp+664]
	add	esp, 28					; 0000001cH
	fadd	DWORD PTR __real@3f800000
	lea	ecx, DWORD PTR _pos$15773[esp+628]
	push	ecx
	push	ebp
	fstp	DWORD PTR _pos$15773[esp+644]
	add	esi, 60					; 0000003cH
	call	?Get_GameObj@@YAPAEH@Z			; Get_GameObj
	add	esp, 4
	push	eax
	call	DWORD PTR [esi]
	add	esp, 8
	mov	ebp, 16					; 00000010H
$L15766:

; 84   : 	}
; 85   : 	if (strcmp(token,"givemoney") == 0)

	mov	esi, DWORD PTR _token$[esp+628]
	mov	edi, OFFSET FLAT:??_C@_09KICPPDHG@givemoney?$AA@
	mov	ecx, 10					; 0000000aH
	xor	edx, edx
	repe cmpsb
	jne	$L15775

; 86   : 	{
; 87   : 		int playerid = stringToInt(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27238[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27238[esp+648], ebx
	mov	BYTE PTR $T27238[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
$L29418:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29418
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27238[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	eax, DWORD PTR $T27238[esp+628]
	push	eax
	mov	DWORD PTR __$EHRec$[esp+640], 10	; 0000000aH
	call	?stringToInt@@YAHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToInt
	mov	edi, eax
	mov	eax, DWORD PTR $T27238[esp+656]
	add	esp, 4
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L29209
	mov	ecx, DWORD PTR $T27238[esp+632]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L29209:

; 88   : 		float amount = stringToFloat(strtok(NULL," "));

	push	OFFSET FLAT:??_C@_01CLKCMJKC@?5?$AA@
	push	ebx
	call	_strtok
	mov	esi, eax
	mov	ecx, esi
	add	esp, 8
	mov	DWORD PTR $T27239[esp+652], 15		; 0000000fH
	mov	DWORD PTR $T27239[esp+648], ebx
	mov	BYTE PTR $T27239[esp+632], bl
	lea	edx, DWORD PTR [ecx+1]
	npad	7
$L29419:
	mov	al, BYTE PTR [ecx]
	inc	ecx
	cmp	al, bl
	jne	SHORT $L29419
	sub	ecx, edx
	push	ecx
	push	esi
	lea	ecx, DWORD PTR $T27239[esp+636]
	call	?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign
	lea	edx, DWORD PTR $T27239[esp+628]
	push	edx
	mov	DWORD PTR __$EHRec$[esp+640], 11	; 0000000bH
	call	?stringToFloat@@YAMABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ; stringToFloat
	fstp	DWORD PTR _amount$15779[esp+632]
	mov	eax, DWORD PTR $T27239[esp+656]
	add	esp, 4
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+636], -1
	jb	SHORT $L29389
	mov	eax, DWORD PTR $T27239[esp+632]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L29389:

; 89   : 	    Commands->Give_Money(Get_GameObj(playerid),amount,false);

	mov	ecx, DWORD PTR _amount$15779[esp+628]
	mov	esi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	push	ecx
	push	edi
	mov	DWORD PTR $T27239[esp+664], 15		; 0000000fH
	mov	DWORD PTR $T27239[esp+660], ebx
	mov	BYTE PTR $T27239[esp+644], bl
	add	esi, 644				; 00000284H
	call	?Get_GameObj@@YAPAEH@Z			; Get_GameObj
	add	esp, 4
	push	eax
	call	DWORD PTR [esi]
	add	esp, 12					; 0000000cH
$L15775:

; 90   : 	}
; 91   : }

	mov	ecx, DWORD PTR __$EHRec$[esp+628]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 612				; 00000264H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L27240:
	lea	ecx, DWORD PTR $T27222[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27241:
	lea	ecx, DWORD PTR $T27223[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27242:
	lea	ecx, DWORD PTR $T27226[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27243:
	lea	ecx, DWORD PTR $T27227[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27244:
	lea	ecx, DWORD PTR $T27230[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27245:
	lea	ecx, DWORD PTR $T27231[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27246:
	lea	ecx, DWORD PTR $T27232[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27247:
	lea	ecx, DWORD PTR $T27233[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27248:
	lea	ecx, DWORD PTR $T27234[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27249:
	lea	ecx, DWORD PTR $T27235[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27250:
	lea	ecx, DWORD PTR $T27238[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$L27251:
	lea	ecx, DWORD PTR $T27239[ebp]
	jmp	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?DataFromDDE@@YAXQAD@Z:
	mov	eax, OFFSET FLAT:$T29401
	jmp	___CxxFrameHandler
text$x	ENDS
?DataFromDDE@@YAXQAD@Z ENDP				; DataFromDDE
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	??_C@_0L@HLJNJAMO@RGHProtect?$AA@		; `string'
EXTRN	_atexit:NEAR
CRT$XCU	SEGMENT
_$S3	DD	FLAT:_$E1
CRT$XCU	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@HLJNJAMO@RGHProtect?$AA@
CONST	SEGMENT
??_C@_0L@HLJNJAMO@RGHProtect?$AA@ DB 'RGHProtect', 00H	; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT _$E1
text$yc	SEGMENT
_$E1	PROC NEAR					; COMDAT

; 178  : ScriptRegistrant<RGHProtect> RGHProtect_Registrant("RGHProtect","");

	push	OFFSET FLAT:??_C@_00CNPNBAHC@?$AA@
	push	OFFSET FLAT:??_C@_0L@HLJNJAMO@RGHProtect?$AA@
	mov	ecx, OFFSET FLAT:?RGHProtect_Registrant@@3V?$ScriptRegistrant@VRGHProtect@@@@A
	call	??0?$ScriptRegistrant@VRGHProtect@@@@QAE@PAD0@Z ; ScriptRegistrant<RGHProtect>::ScriptRegistrant<RGHProtect>
	push	OFFSET FLAT:_$E2
	call	_atexit
	pop	ecx
	ret	0
_$E1	ENDP
; Function compile flags: /Ogty
text$yc	ENDS
;	COMDAT _$E2
text$yd	SEGMENT
_$E2	PROC NEAR					; COMDAT
	mov	ecx, OFFSET FLAT:?RGHProtect_Registrant@@3V?$ScriptRegistrant@VRGHProtect@@@@A
	jmp	??1?$ScriptRegistrant@VRGHProtect@@@@UAE@XZ
_$E2	ENDP
text$yd	ENDS
PUBLIC	?RGHProtect_Registrant@@3V?$ScriptRegistrant@VRGHProtect@@@@A ; RGHProtect_Registrant
PUBLIC	?id@?$numpunct@D@std@@2V0locale@2@A		; std::numpunct<char>::id
PUBLIC	?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
_BSS	SEGMENT
?RGHProtect_Registrant@@3V?$ScriptRegistrant@VRGHProtect@@@@A DB 010H DUP (?) ; RGHProtect_Registrant
_BSS	ENDS
;	COMDAT ?id@?$numpunct@D@std@@2V0locale@2@A
_BSS	SEGMENT
?id@?$numpunct@D@std@@2V0locale@2@A DD 01H DUP (?)	; std::numpunct<char>::id
_BSS	ENDS
;	COMDAT ?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A
_BSS	SEGMENT
?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A DD 01H DUP (?) ; std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::id
_BSS	ENDS
END
