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

	TITLE	.\nhp.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@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0N@LGDIIJN@Other_Weapon?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0L@EAJLNBCG@Preset_One?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0L@COJLHBMN@Preset_Two?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0N@EPADNPAK@Preset_Three?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0M@GGMOKDDM@Preset_Four?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0M@EEGAMGCP@Preset_Five?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0L@KAHHEDJI@Preset_Six?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0N@MGAAGFJP@Preset_Seven?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0N@IGCPDAGK@Preset_Eight?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_08DFKPLDPN@Distance?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_05HOIAGEJD@Speed?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0L@JCFEAFCJ@Time_Delay?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0M@HPDDLCBF@Money_Limit?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_09MNMLKPFC@Money_Gen?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0O@GMEIBLGN@Money_Waypath?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0M@HEJJGPE@Guard_Limit?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_09DEFEEAH@Guard_Inf?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0N@NDFBCBJN@Attack_Limit?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0M@NIPPNKMI@Attack_Unit?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0P@NIEAFCIF@Sound_Position?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0N@JLPHONAA@Sound_Preset?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0L@HNDGGODA@Check_Team?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$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 ??0ActionParamsStruct@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@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 ?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 ?always_noconv@codecvt_base@std@@QBE_NXZ
_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 ??$_Fgetc@D@std@@YA_NAADPAU_iobuf@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Fputc@D@std@@YA_NDPAU_iobuf@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Ungetc@D@std@@YA_NABDPAU_iobuf@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Created@NHP_Smart_Targetting@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Created@NHP_Guard_Bot@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Created@NHP_Construction_AI@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Created@NHP_Sensorable_Object@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ
_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@VNHP_Construction_AI@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _$E4
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E5
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT ??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _$E7
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E8
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT ??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _$E10
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E11
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT ??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _$E13
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E14
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT ??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ
_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 ??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 ??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_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekpos@?$basic_filebuf@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_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@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_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Sensorable_Object@@@@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 ??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 ?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@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 ?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 ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ
_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 ?_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@ABV01@@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 ??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 ?_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 ?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 ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_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 ?_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_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z
_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 ?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 ??0?$fpos@H@std@@QAE@H_J@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?state@?$fpos@H@std@@QBEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?seekpos@?$fpos@H@std@@QBE_JXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??B?$fpos@H@std@@QBEJXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?in@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?out@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$codecvt@DDH@std@@MAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??Diterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ
_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 ??_G?$codecvt@DDH@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@XZ
_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 ?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 ?_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?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?deallocate@?$allocator@D@std@@QAEXPADI@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 ?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 ?_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_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@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 ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ
_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_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@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 ??Dconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PAD@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 ??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 ?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 ?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 ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@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 ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z
_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 ??0const_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
_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 ?allocate@?$allocator@D@std@@QAEPADI@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 ?_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 ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@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 ??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@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 ??$_Allocate@D@std@@YAPADIPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0NHP_Construction_AI@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0NHP_Smart_Targetting@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0NHP_Guard_Bot@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0NHP_Sensor_Array_Zone@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0NHP_Sensorable_Object@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GNHP_Construction_AI@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GNHP_Smart_Targetting@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GNHP_Guard_Bot@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GNHP_Sensor_Array_Zone@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GNHP_Sensorable_Object@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1NHP_Construction_AI@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1NHP_Smart_Targetting@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1NHP_Guard_Bot@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1NHP_Sensor_Array_Zone@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1NHP_Sensorable_Object@@UAE@XZ
_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@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@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?$codecvt@DDH@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@?$codecvt@DDH@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 _$E16
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E18
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E20
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 ??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@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 ??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@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 ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
;	COMDAT __TI2?AVbad_cast@@
xdata$x	SEGMENT DWORD USE32 PUBLIC 'CONST'
xdata$x	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 ??_R0?AVexception@@@8
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7NHP_Sensor_Array_Zone@@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 ??_7NHP_Construction_AI@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7NHP_Guard_Bot@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7NHP_Sensorable_Object@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT __CTA2?AVbad_cast@@
xdata$x	SEGMENT DWORD USE32 PUBLIC 'CONST'
xdata$x	ENDS
;	COMDAT ??_R0?AVbad_cast@@@8
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7NHP_Smart_Targetting@@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 ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@
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 ?id@?$codecvt@DDH@std@@2V0locale@2@A
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	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 ?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 ?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	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 ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@
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 ??_7?$codecvt@DDH@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 ?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 ?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 ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@
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 ??_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 ?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
;	COMDAT CRT$XCU
CRT$XCU	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCU	ENDS
sxdata	SEGMENT DWORD USE32 'SXDATA'
sxdata	ENDS
FLAT	GROUP _DATA, CONST, _BSS, CRT$XCU, 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	?GetID@GameObjObserverClass@@QAEHXZ		; GameObjObserverClass::GetID
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\scripts.h
;	COMDAT ?GetID@GameObjObserverClass@@QAEHXZ
_TEXT	SEGMENT
?GetID@GameObjObserverClass@@QAEHXZ PROC NEAR		; GameObjObserverClass::GetID, COMDAT
; _this$ = ecx

; 90   : 		return ID;

	mov	eax, DWORD PTR [ecx+4]

; 91   : 	}

	ret	0
?GetID@GameObjObserverClass@@QAEHXZ ENDP		; GameObjObserverClass::GetID
_TEXT	ENDS
PUBLIC	??0ActionParamsStruct@@QAE@XZ			; ActionParamsStruct::ActionParamsStruct
EXTRN	__fltused:NEAR
; Function compile flags: /Ogty
;	COMDAT ??0ActionParamsStruct@@QAE@XZ
_TEXT	SEGMENT
??0ActionParamsStruct@@QAE@XZ PROC NEAR			; ActionParamsStruct::ActionParamsStruct, COMDAT
; _this$ = ecx

; 221  : {

	mov	eax, ecx

; 222  : 	Action_Priority = 0;

	xor	ecx, ecx

; 223  : 	Action_ID = 0;
; 224  : 	Observer_ID = 0;
; 225  : 	varB8.X = 0;
; 226  : 	varB8.Y = 0;
; 227  : 	varB8.Z = 0;
; 228  : 	varAC = 0;
; 229  : 	varA8 = 0;
; 230  : 	Move_Destination.X = 0;
; 231  : 	Move_Destination.Y = 0;
; 232  : 	Move_Destination.Z = 0;
; 233  : 	Move_Target = 0;
; 234  : 	var94.X = 0;
; 235  : 	var94.Y = 0;
; 236  : 	var94.Z = 0;
; 237  : 	Move_Speed = 1.0;
; 238  : 	Move_Arrive_Distance = 1000;
; 239  : 	Move_Backwards = false;
; 240  : 	Move_Following = false;
; 241  : 	Move_Crouch = false;
; 242  : 	Move_Pathfind = true;

	mov	dl, 1
	mov	DWORD PTR [eax], ecx
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+16], ecx
	mov	DWORD PTR [eax+20], ecx
	mov	DWORD PTR [eax+24], ecx
	mov	DWORD PTR [eax+28], ecx
	mov	DWORD PTR [eax+32], ecx
	mov	DWORD PTR [eax+36], ecx
	mov	DWORD PTR [eax+40], ecx
	mov	DWORD PTR [eax+44], ecx
	mov	DWORD PTR [eax+48], ecx
	mov	DWORD PTR [eax+52], ecx
	mov	DWORD PTR [eax+56], ecx
	mov	DWORD PTR [eax+60], 1065353216		; 3f800000H
	mov	DWORD PTR [eax+64], 1148846080		; 447a0000H
	mov	BYTE PTR [eax+68], cl
	mov	BYTE PTR [eax+69], cl
	mov	BYTE PTR [eax+70], cl
	mov	BYTE PTR [eax+71], dl

; 243  : 	var7C = false;

	mov	BYTE PTR [eax+72], cl

; 244  : 	Attack_Range = 20;

	mov	DWORD PTR [eax+76], 1101004800		; 41a00000H

; 245  : 	Attack_Deviation = 0;

	mov	DWORD PTR [eax+80], ecx

; 246  : 	var70 = false;

	mov	BYTE PTR [eax+84], cl

; 247  : 	Attack_Target = 0;

	mov	DWORD PTR [eax+88], ecx

; 248  : 	Attack_Primary = true;

	mov	BYTE PTR [eax+92], dl

; 249  : 	Attack_Crouched = false;

	mov	BYTE PTR [eax+93], cl

; 250  : 	Attack_Location.X = 0;

	mov	DWORD PTR [eax+96], ecx

; 251  : 	Attack_Location.Y = 0;

	mov	DWORD PTR [eax+100], ecx

; 252  : 	Attack_Location.Z = 0;

	mov	DWORD PTR [eax+104], ecx

; 253  : 	Hold_Action = true;

	mov	BYTE PTR [eax+108], dl

; 254  : 	var57 = true;

	mov	BYTE PTR [eax+109], dl

; 255  : 	var56 = false;

	mov	BYTE PTR [eax+110], cl

; 256  : 	var55 = true;

	mov	BYTE PTR [eax+111], dl

; 257  : 	var54 = false;

	mov	BYTE PTR [eax+112], cl

; 258  : 	var53 = false;

	mov	BYTE PTR [eax+113], cl

; 259  : 	Face_Location.X = 0;

	mov	DWORD PTR [eax+116], ecx

; 260  : 	Face_Location.Y = 0;

	mov	DWORD PTR [eax+120], ecx

; 261  : 	Face_Location.Z = 0;

	mov	DWORD PTR [eax+124], ecx

; 262  : 	Face_Time = 2.0;

	mov	DWORD PTR [eax+128], 1073741824		; 40000000H

; 263  : 	var40 = false;

	mov	BYTE PTR [eax+132], cl

; 264  : 	Move_Waypath_ID = 0;

	mov	DWORD PTR [eax+136], ecx

; 265  : 	Move_Waypath_Start_ID = 0;

	mov	DWORD PTR [eax+140], ecx

; 266  : 	Move_Waypath_End_ID = 0;

	mov	DWORD PTR [eax+144], ecx

; 267  : 	Move_Waypath_Splined = false;

	mov	BYTE PTR [eax+148], cl

; 268  : 	Anim_Name = 0;

	mov	DWORD PTR [eax+152], ecx

; 269  : 	Anim_Loop = false;

	mov	BYTE PTR [eax+156], cl

; 270  : 	var24 = 0;

	mov	DWORD PTR [eax+160], ecx

; 271  : 	var20 = 0;

	mov	DWORD PTR [eax+164], ecx

; 272  : 	Soldier_AI_State = -1;

	mov	DWORD PTR [eax+168], -1

; 273  : 	Dock_Location.X = 0;

	mov	DWORD PTR [eax+172], ecx

; 274  : 	Dock_Location.Y = 0;

	mov	DWORD PTR [eax+176], ecx

; 275  : 	Dock_Location.Z = 0;

	mov	DWORD PTR [eax+180], ecx

; 276  : 	Dock_Entrance.X = 0;

	mov	DWORD PTR [eax+184], ecx

; 277  : 	Dock_Entrance.Y = 0;

	mov	DWORD PTR [eax+188], ecx

; 278  : 	Dock_Entrance.Z = 0;

	mov	DWORD PTR [eax+192], ecx

; 279  : }

	ret	0
??0ActionParamsStruct@@QAE@XZ ENDP			; ActionParamsStruct::ActionParamsStruct
_TEXT	ENDS
PUBLIC	?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z ; ActionParamsStruct::Set_Move_Arrive_Distance
; Function compile flags: /Ogty
;	COMDAT ?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z
_TEXT	SEGMENT
_distance$ = 8						; size = 4
?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z PROC NEAR ; ActionParamsStruct::Set_Move_Arrive_Distance, COMDAT
; _this$ = ecx

; 288  : 	Move_Arrive_Distance = distance;

	mov	eax, DWORD PTR _distance$[esp-4]
	mov	DWORD PTR [ecx+64], eax

; 289  : }

	ret	4
?Set_Move_Arrive_Distance@ActionParamsStruct@@QAEXM@Z ENDP ; ActionParamsStruct::Set_Move_Arrive_Distance
_TEXT	ENDS
PUBLIC	?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z ; ActionParamsStruct::Set_Goto_Following
; Function compile flags: /Ogty
;	COMDAT ?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z
_TEXT	SEGMENT
_Target$ = 8						; size = 4
_speed$ = 12						; size = 4
_arrivedistance$ = 16					; size = 4
_following$ = 20					; size = 1
?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z PROC NEAR ; ActionParamsStruct::Set_Goto_Following, COMDAT
; _this$ = ecx

; 303  : 	Move_Target = Target;

	mov	eax, DWORD PTR _Target$[esp-4]

; 304  : 	Move_Speed = speed;

	mov	edx, DWORD PTR _speed$[esp-4]
	mov	DWORD PTR [ecx+44], eax

; 305  : 	Move_Arrive_Distance = arrivedistance;

	mov	eax, DWORD PTR _arrivedistance$[esp-4]
	mov	DWORD PTR [ecx+60], edx

; 306  : 	Move_Following = following;

	mov	dl, BYTE PTR _following$[esp-4]
	mov	DWORD PTR [ecx+64], eax
	mov	BYTE PTR [ecx+69], dl

; 307  : }

	ret	16					; 00000010H
?Set_Goto_Following@ActionParamsStruct@@QAEXPAEMM_N@Z ENDP ; ActionParamsStruct::Set_Goto_Following
_TEXT	ENDS
PUBLIC	?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z ; ActionParamsStruct::Set_Goto_Waypath
; Function compile flags: /Ogty
;	COMDAT ?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z
_TEXT	SEGMENT
_waypathID$ = 8						; size = 4
_splined$ = 12						; size = 1
_v57$ = 16						; size = 1
_Hold$ = 20						; size = 1
?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z PROC NEAR ; ActionParamsStruct::Set_Goto_Waypath, COMDAT
; _this$ = ecx

; 343  : 	Move_Waypath_ID = waypathID;

	mov	eax, DWORD PTR _waypathID$[esp-4]

; 344  : 	Move_Waypath_Splined = splined;

	mov	dl, BYTE PTR _splined$[esp-4]
	mov	DWORD PTR [ecx+136], eax

; 345  : 	var57 = v57;

	mov	al, BYTE PTR _v57$[esp-4]
	mov	BYTE PTR [ecx+148], dl

; 346  : 	Hold_Action = Hold;

	mov	dl, BYTE PTR _Hold$[esp-4]
	mov	BYTE PTR [ecx+109], al
	mov	BYTE PTR [ecx+108], dl

; 347  : }

	ret	16					; 00000010H
?Set_Goto_Waypath@ActionParamsStruct@@QAEXK_N00@Z ENDP	; ActionParamsStruct::Set_Goto_Waypath
_TEXT	ENDS
PUBLIC	?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z ; ActionParamsStruct::Set_Basic
; Function compile flags: /Ogty
;	COMDAT ?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z
_TEXT	SEGMENT
_s$ = 8							; size = 4
_priority$ = 12						; size = 4
_ID$ = 16						; size = 4
_state$ = 20						; size = 4
?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z PROC NEAR ; ActionParamsStruct::Set_Basic, COMDAT
; _this$ = ecx

; 380  : 	ID = s->GetID();

	mov	eax, DWORD PTR _s$[esp-4]
	mov	eax, DWORD PTR [eax+4]

; 381  : 	Action_Priority = priority;

	mov	edx, DWORD PTR _priority$[esp-4]

; 382  : 	Action_ID = ID;

	mov	DWORD PTR [ecx+4], eax

; 383  : 	Soldier_AI_State = state;

	mov	eax, DWORD PTR _state$[esp-4]
	mov	DWORD PTR [ecx], edx
	mov	DWORD PTR [ecx+168], eax

; 384  : }

	ret	16					; 00000010H
?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z ENDP ; ActionParamsStruct::Set_Basic
_TEXT	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	?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	?assign@?$char_traits@D@std@@SAPADPADID@Z	; std::char_traits<char>::assign
; Function compile flags: /Ogty
;	COMDAT ?assign@?$char_traits@D@std@@SAPADPADID@Z
_TEXT	SEGMENT
__First$ = 8						; size = 4
__Count$ = 12						; size = 4
__Ch$ = 16						; size = 1
?assign@?$char_traits@D@std@@SAPADPADID@Z PROC NEAR	; std::char_traits<char>::assign, COMDAT

; 375  : 		return ((_Elem *)::memset(_First, _Ch, _Count));

	movsx	eax, BYTE PTR __Ch$[esp-4]
	mov	ecx, DWORD PTR __Count$[esp-4]
	push	ebx
	mov	bl, al
	mov	bh, bl
	push	esi
	push	edi
	mov	edi, DWORD PTR __First$[esp+8]
	mov	edx, ecx
	mov	esi, edi
	shr	ecx, 2
	mov	eax, ebx
	shl	eax, 16					; 00000010H
	mov	ax, bx
	rep stosd
	mov	ecx, edx
	and	ecx, 3
	rep stosb
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx

; 376  : 		}

	ret	0
?assign@?$char_traits@D@std@@SAPADPADID@Z ENDP		; std::char_traits<char>::assign
_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
$T14961 = -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 $T14961[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$7678 = -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 $L14973

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

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

; 74   : 				if (_Id == 0)

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

; 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
$L7679:

; 76   : 				}

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

; 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 $L7686

; 107  : 				++_Refs;

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

; 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 $L7691
	cmp	eax, -1
	jae	SHORT $L7691

; 115  : 				--_Refs;

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

; 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 $L14997

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

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

; 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 $L15005
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15005:
	mov	eax, esi
	pop	esi
	ret	4
??_Gfacet@locale@std@@UAEPAXI@Z ENDP			; std::locale::facet::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0codecvt_base@std@@QAE@I@Z			; std::codecvt_base::codecvt_base
PUBLIC	?do_always_noconv@codecvt_base@std@@MBE_NXZ	; std::codecvt_base::do_always_noconv
PUBLIC	?do_max_length@codecvt_base@std@@MBEHXZ		; std::codecvt_base::do_max_length
PUBLIC	?do_encoding@codecvt_base@std@@MBEHXZ		; std::codecvt_base::do_encoding
PUBLIC	??_7codecvt_base@std@@6B@			; std::codecvt_base::`vftable'
PUBLIC	??_Gcodecvt_base@std@@UAEPAXI@Z			; std::codecvt_base::`scalar deleting destructor'
EXTRN	??_Ecodecvt_base@std@@UAEPAXI@Z:NEAR		; std::codecvt_base::`vector deleting destructor'
;	COMDAT ??_7codecvt_base@std@@6B@
CONST	SEGMENT
??_7codecvt_base@std@@6B@ DD FLAT:??_Ecodecvt_base@std@@UAEPAXI@Z ; std::codecvt_base::`vftable'
	DD	FLAT:?do_always_noconv@codecvt_base@std@@MBE_NXZ
	DD	FLAT:?do_max_length@codecvt_base@std@@MBEHXZ
	DD	FLAT:?do_encoding@codecvt_base@std@@MBEHXZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0codecvt_base@std@@QAE@I@Z
_TEXT	SEGMENT
__Refs$ = 8						; size = 4
??0codecvt_base@std@@QAE@I@Z PROC NEAR			; std::codecvt_base::codecvt_base, COMDAT
; _this$ = ecx

; 503  : 		{	// default constructor

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

; 504  : 		}

	ret	4
??0codecvt_base@std@@QAE@I@Z ENDP			; std::codecvt_base::codecvt_base
_TEXT	ENDS
PUBLIC	?always_noconv@codecvt_base@std@@QBE_NXZ	; std::codecvt_base::always_noconv
; Function compile flags: /Ogty
;	COMDAT ?always_noconv@codecvt_base@std@@QBE_NXZ
_TEXT	SEGMENT
?always_noconv@codecvt_base@std@@QBE_NXZ PROC NEAR	; std::codecvt_base::always_noconv, COMDAT
; _this$ = ecx

; 508  : 		return (do_always_noconv());

	mov	eax, DWORD PTR [ecx]
	jmp	DWORD PTR [eax+4]
?always_noconv@codecvt_base@std@@QBE_NXZ ENDP		; std::codecvt_base::always_noconv
_TEXT	ENDS
PUBLIC	??1codecvt_base@std@@UAE@XZ			; std::codecvt_base::~codecvt_base
; Function compile flags: /Ogty
;	COMDAT ??1codecvt_base@std@@UAE@XZ
_TEXT	SEGMENT
??1codecvt_base@std@@UAE@XZ PROC NEAR			; std::codecvt_base::~codecvt_base, COMDAT
; _this$ = ecx

; 523  : 		}

	mov	DWORD PTR [ecx], OFFSET FLAT:??_7facet@locale@std@@6B@
	ret	0
??1codecvt_base@std@@UAE@XZ ENDP			; std::codecvt_base::~codecvt_base
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_always_noconv@codecvt_base@std@@MBE_NXZ
_TEXT	SEGMENT
?do_always_noconv@codecvt_base@std@@MBE_NXZ PROC NEAR	; std::codecvt_base::do_always_noconv, COMDAT
; _this$ = ecx

; 528  : 		return (true);

	mov	al, 1

; 529  : 		}

	ret	0
?do_always_noconv@codecvt_base@std@@MBE_NXZ ENDP	; std::codecvt_base::do_always_noconv
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_max_length@codecvt_base@std@@MBEHXZ
_TEXT	SEGMENT
?do_max_length@codecvt_base@std@@MBEHXZ PROC NEAR	; std::codecvt_base::do_max_length, COMDAT
; _this$ = ecx

; 533  : 		return (1);

	mov	eax, 1

; 534  : 		}

	ret	0
?do_max_length@codecvt_base@std@@MBEHXZ ENDP		; std::codecvt_base::do_max_length
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_encoding@codecvt_base@std@@MBEHXZ
_TEXT	SEGMENT
?do_encoding@codecvt_base@std@@MBEHXZ PROC NEAR		; std::codecvt_base::do_encoding, COMDAT
; _this$ = ecx

; 538  : 		return (1);	// -1 ==> state dependent, 0 ==> varying length

	mov	eax, 1

; 539  : 		}

	ret	0
?do_encoding@codecvt_base@std@@MBEHXZ ENDP		; std::codecvt_base::do_encoding
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_Gcodecvt_base@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gcodecvt_base@std@@UAEPAXI@Z PROC NEAR		; std::codecvt_base::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1codecvt_base@std@@UAE@XZ		; std::codecvt_base::~codecvt_base
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L15036
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15036:
	mov	eax, esi
	pop	esi
	ret	4
??_Gcodecvt_base@std@@UAEPAXI@Z ENDP			; std::codecvt_base::`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 $L15054
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15054:
	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
$T15072 = -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 $T15072[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 $L15077

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

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

; 1263 : 		}

	ret	0
$L15077:

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

	jge	SHORT $L8522

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

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

; 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
$T15108 = -4						; size = 4
__Lock$15121 = 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$15121[esp+12]
	mov	DWORD PTR $T15108[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 $L15122
	inc	eax
	mov	DWORD PTR [esi+4], eax
$L15122:
	lea	ecx, DWORD PTR __Lock$15121[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 $L15131
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15131:
	mov	eax, esi
	pop	esi
	ret	4
??_Gios_base@std@@UAEPAXI@Z ENDP			; std::ios_base::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Created@NHP_Smart_Targetting@@EAEXPAE@Z	; NHP_Smart_Targetting::Created
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\nhp.cpp
;	COMDAT ?Created@NHP_Smart_Targetting@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Created@NHP_Smart_Targetting@@EAEXPAE@Z PROC NEAR	; NHP_Smart_Targetting::Created, COMDAT
; _this$ = ecx

; 19   : 	Commands->Enable_Enemy_Seen(obj,true);

	mov	eax, DWORD PTR _obj$[esp-4]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1
	push	eax
	call	DWORD PTR [ecx+300]
	add	esp, 8

; 20   : }

	ret	4
?Created@NHP_Smart_Targetting@@EAEXPAE@Z ENDP		; NHP_Smart_Targetting::Created
_TEXT	ENDS
PUBLIC	?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z	; NHP_Smart_Targetting::Enemy_Seen
PUBLIC	??_C@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@	; `string'
PUBLIC	??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@	; `string'
PUBLIC	??_C@_0N@LGDIIJN@Other_Weapon?$AA@		; `string'
PUBLIC	??_C@_0L@EAJLNBCG@Preset_One?$AA@		; `string'
PUBLIC	??_C@_0L@COJLHBMN@Preset_Two?$AA@		; `string'
PUBLIC	??_C@_0N@EPADNPAK@Preset_Three?$AA@		; `string'
PUBLIC	??_C@_0M@GGMOKDDM@Preset_Four?$AA@		; `string'
PUBLIC	??_C@_0M@EEGAMGCP@Preset_Five?$AA@		; `string'
PUBLIC	??_C@_0L@KAHHEDJI@Preset_Six?$AA@		; `string'
PUBLIC	??_C@_0N@MGAAGFJP@Preset_Seven?$AA@		; `string'
PUBLIC	??_C@_0N@IGCPDAGK@Preset_Eight?$AA@		; `string'
EXTRN	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z:NEAR	; ScriptImpClass::Get_Parameter
EXTRN	_stricmp:NEAR
;	COMDAT ??_C@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@
CONST	SEGMENT
??_C@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@ DB 'Presets_1-4_Weapon', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@
CONST	SEGMENT
??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@ DB 'Presets_5-6_Weapon', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@LGDIIJN@Other_Weapon?$AA@
CONST	SEGMENT
??_C@_0N@LGDIIJN@Other_Weapon?$AA@ DB 'Other_Weapon', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@EAJLNBCG@Preset_One?$AA@
CONST	SEGMENT
??_C@_0L@EAJLNBCG@Preset_One?$AA@ DB 'Preset_One', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@COJLHBMN@Preset_Two?$AA@
CONST	SEGMENT
??_C@_0L@COJLHBMN@Preset_Two?$AA@ DB 'Preset_Two', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@EPADNPAK@Preset_Three?$AA@
CONST	SEGMENT
??_C@_0N@EPADNPAK@Preset_Three?$AA@ DB 'Preset_Three', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@GGMOKDDM@Preset_Four?$AA@
CONST	SEGMENT
??_C@_0M@GGMOKDDM@Preset_Four?$AA@ DB 'Preset_Four', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@EEGAMGCP@Preset_Five?$AA@
CONST	SEGMENT
??_C@_0M@EEGAMGCP@Preset_Five?$AA@ DB 'Preset_Five', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@KAHHEDJI@Preset_Six?$AA@
CONST	SEGMENT
??_C@_0L@KAHHEDJI@Preset_Six?$AA@ DB 'Preset_Six', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@MGAAGFJP@Preset_Seven?$AA@
CONST	SEGMENT
??_C@_0N@MGAAGFJP@Preset_Seven?$AA@ DB 'Preset_Seven', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@IGCPDAGK@Preset_Eight?$AA@
CONST	SEGMENT
??_C@_0N@IGCPDAGK@Preset_Eight?$AA@ DB 'Preset_Eight', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z
_TEXT	SEGMENT
_d$ = -4						; size = 4
_obj$ = 8						; size = 4
_seen$ = 12						; size = 4
?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z PROC NEAR	; NHP_Smart_Targetting::Enemy_Seen, COMDAT
; _this$ = ecx

; 23   : {

	push	ecx
	push	ebx
	push	ebp
	push	esi
	push	edi

; 24   : 
; 25   : 	const char *c;
; 26   : 	const char *b;
; 27   : 	const char *d;
; 28   : 	c = Get_Parameter("Presets_1-4_Weapon");

	push	OFFSET FLAT:??_C@_0BD@GIAAKBJM@Presets_1?94_Weapon?$AA@
	mov	esi, ecx
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 29   : 	b = Get_Parameter("Presets_5-6_Weapon");

	push	OFFSET FLAT:??_C@_0BD@PGCPPKJI@Presets_5?96_Weapon?$AA@
	mov	ecx, esi
	mov	ebx, eax
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 30   : 	d = Get_Parameter("Other_Weapon");

	push	OFFSET FLAT:??_C@_0N@LGDIIJN@Other_Weapon?$AA@
	mov	ecx, esi
	mov	ebp, eax
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 31   : 
; 32   : 	if ((!stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_One"))) || ((!stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Two")))) || ((!stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Three")))) || ((!stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Four")))))

	push	OFFSET FLAT:??_C@_0L@EAJLNBCG@Preset_One?$AA@
	mov	ecx, esi
	mov	DWORD PTR _d$[esp+24], eax
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	edi, DWORD PTR _seen$[esp+16]
	push	eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [eax+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	$L11479
	push	OFFSET FLAT:??_C@_0L@COJLHBMN@Preset_Two?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	push	edi
	call	DWORD PTR [ecx+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	$L11479
	push	OFFSET FLAT:??_C@_0N@EPADNPAK@Preset_Three?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	push	edi
	call	DWORD PTR [edx+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	$L11479
	push	OFFSET FLAT:??_C@_0M@GGMOKDDM@Preset_Four?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [eax+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	$L11479

; 35   : 	}
; 36   : 	else if ((!stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Five"))) || (!stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Six"))) || (!stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Seven"))) || (!stricmp(Commands->Get_Preset_Name(seen),Get_Parameter("Preset_Eight"))))

	push	OFFSET FLAT:??_C@_0M@EEGAMGCP@Preset_Five?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	push	edi
	call	DWORD PTR [ecx+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	$L11486
	push	OFFSET FLAT:??_C@_0L@KAHHEDJI@Preset_Six?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	push	edi
	call	DWORD PTR [edx+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $L11486
	push	OFFSET FLAT:??_C@_0N@MGAAGFJP@Preset_Seven?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [eax+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $L11486
	push	OFFSET FLAT:??_C@_0N@IGCPDAGK@Preset_Eight?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	push	edi
	call	DWORD PTR [ecx+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $L11486

; 39   : 	}
; 40   : 	else
; 41   : 	{
; 42   : 		Commands->Select_Weapon(obj,d);

	mov	edx, DWORD PTR _d$[esp+20]
	mov	eax, DWORD PTR _obj$[esp+16]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	push	eax
	call	DWORD PTR [ecx+136]
	add	esp, 8
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 43   : 	}
; 44   : 
; 45   : }

	pop	ecx
	ret	8
$L11486:

; 37   : 	{
; 38   : 		Commands->Select_Weapon(obj,b);

	mov	edx, DWORD PTR _obj$[esp+16]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebp
	push	edx
	call	DWORD PTR [eax+136]
	add	esp, 8
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 43   : 	}
; 44   : 
; 45   : }

	pop	ecx
	ret	8
$L11479:

; 33   : 	{
; 34   : 		Commands->Select_Weapon(obj,c);

	mov	ecx, DWORD PTR _obj$[esp+16]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	push	ecx
	call	DWORD PTR [edx+136]
	add	esp, 8
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 43   : 	}
; 44   : 
; 45   : }

	pop	ecx
	ret	8
?Enemy_Seen@NHP_Smart_Targetting@@EAEXPAE0@Z ENDP	; NHP_Smart_Targetting::Enemy_Seen
_TEXT	ENDS
PUBLIC	?Created@NHP_Guard_Bot@@EAEXPAE@Z		; NHP_Guard_Bot::Created
; Function compile flags: /Ogty
;	COMDAT ?Created@NHP_Guard_Bot@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Created@NHP_Guard_Bot@@EAEXPAE@Z PROC NEAR		; NHP_Guard_Bot::Created, COMDAT
; _this$ = ecx

; 49   : 	Commands->Enable_HUD_Pokable_Indicator(obj,1);

	mov	eax, DWORD PTR _obj$[esp-4]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1
	push	eax
	call	DWORD PTR [ecx+780]
	add	esp, 8

; 50   : }

	ret	4
?Created@NHP_Guard_Bot@@EAEXPAE@Z ENDP			; NHP_Guard_Bot::Created
_TEXT	ENDS
PUBLIC	?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z		; NHP_Guard_Bot::Damaged
PUBLIC	??_C@_08DFKPLDPN@Distance?$AA@			; `string'
PUBLIC	??_C@_05HOIAGEJD@Speed?$AA@			; `string'
EXTRN	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z:NEAR ; ScriptImpClass::Get_Float_Parameter
;	COMDAT ??_C@_08DFKPLDPN@Distance?$AA@
; File c:\documents and settings\owner\desktop\ssctf 1.3\scripts.h
CONST	SEGMENT
??_C@_08DFKPLDPN@Distance?$AA@ DB 'Distance', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_05HOIAGEJD@Speed?$AA@
CONST	SEGMENT
??_C@_05HOIAGEJD@Speed?$AA@ DB 'Speed', 00H		; `string'
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\nhp.cpp
CONST	ENDS
;	COMDAT ?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z
_TEXT	SEGMENT
_d$ = -204						; size = 4
_s$ = -200						; size = 4
_actionThingy$ = -196					; size = 196
_obj$ = 8						; size = 4
_damager$ = 12						; size = 4
_damage$ = 16						; size = 4
?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z PROC NEAR		; NHP_Guard_Bot::Damaged, COMDAT
; _this$ = ecx

; 53   : {

	sub	esp, 204				; 000000ccH
	push	ebx
	push	esi
	mov	esi, ecx
	push	edi

; 54   : 	ActionParamsStruct actionThingy;

	lea	ecx, DWORD PTR _actionThingy$[esp+216]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 55   : 	float d;
; 56   : 	float s;
; 57   : 	actionThingy.Set_Basic(this,70,1,-1);

	mov	eax, DWORD PTR [esi+4]

; 58   : 	d = Get_Float_Parameter("Distance");

	push	OFFSET FLAT:??_C@_08DFKPLDPN@Distance?$AA@
	mov	ecx, esi
	mov	DWORD PTR _actionThingy$[esp+220], 70	; 00000046H
	mov	DWORD PTR _actionThingy$[esp+224], eax
	mov	DWORD PTR _actionThingy$[esp+388], -1
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fstp	DWORD PTR _d$[esp+216]

; 59   : 	s = Get_Float_Parameter("Speed");

	push	OFFSET FLAT:??_C@_05HOIAGEJD@Speed?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fstp	DWORD PTR _s$[esp+216]

; 60   : 	if (Commands->Get_Player_Type(obj) == Commands->Get_Player_Type(damager))

	mov	esi, DWORD PTR _obj$[esp+212]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	esi
	call	DWORD PTR [ecx+248]
	mov	edi, DWORD PTR _damager$[esp+216]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	mov	ebx, eax
	call	DWORD PTR [edx+248]
	add	esp, 8
	cmp	ebx, eax
	jne	SHORT $L11507

; 61   : 	{
; 62   : 		actionThingy.Set_Goto_Following(damager,s,d,true);

	mov	eax, DWORD PTR _s$[esp+216]
	mov	ecx, DWORD PTR _d$[esp+216]

; 63   : 		Commands->Action_Goto(obj,actionThingy);

	lea	edx, DWORD PTR _actionThingy$[esp+216]
	push	edx
	mov	DWORD PTR _actionThingy$[esp+280], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	esi
	mov	DWORD PTR _actionThingy$[esp+268], edi
	mov	DWORD PTR _actionThingy$[esp+288], ecx
	mov	BYTE PTR _actionThingy$[esp+293], 1
	call	DWORD PTR [eax+16]
	add	esp, 8
$L11507:
	pop	edi
	pop	esi
	pop	ebx

; 64   : 	}
; 65   : }

	add	esp, 204				; 000000ccH
	ret	12					; 0000000cH
?Damaged@NHP_Guard_Bot@@EAEXPAE0M@Z ENDP		; NHP_Guard_Bot::Damaged
_TEXT	ENDS
PUBLIC	?Created@NHP_Construction_AI@@EAEXPAE@Z		; NHP_Construction_AI::Created
PUBLIC	??_C@_0L@JCFEAFCJ@Time_Delay?$AA@		; `string'
;	COMDAT ??_C@_0L@JCFEAFCJ@Time_Delay?$AA@
CONST	SEGMENT
??_C@_0L@JCFEAFCJ@Time_Delay?$AA@ DB 'Time_Delay', 00H	; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Created@NHP_Construction_AI@@EAEXPAE@Z
_TEXT	SEGMENT
_timer$ = -4						; size = 4
_obj$ = 8						; size = 4
?Created@NHP_Construction_AI@@EAEXPAE@Z PROC NEAR	; NHP_Construction_AI::Created, COMDAT
; _this$ = ecx

; 68   : {

	push	ecx
	push	esi

; 69   : 	float timer;
; 70   : 	timer = Get_Float_Parameter("Time_Delay");

	push	OFFSET FLAT:??_C@_0L@JCFEAFCJ@Time_Delay?$AA@
	mov	esi, ecx
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fstp	DWORD PTR _timer$[esp+8]

; 71   : 	Commands->Start_Timer(obj,this,timer,1);

	mov	eax, DWORD PTR _timer$[esp+8]
	mov	ecx, DWORD PTR _obj$[esp+4]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1
	push	eax
	push	esi
	push	ecx
	call	DWORD PTR [edx+128]
	add	esp, 16					; 00000010H

; 72   : 	unitlim1 = 0;

	xor	eax, eax
	mov	DWORD PTR [esi+28], eax

; 73   : 	unitlim2 = 0;

	mov	DWORD PTR [esi+32], eax

; 74   : 	unitlim3 = 0;

	mov	DWORD PTR [esi+36], eax
	pop	esi

; 75   : }

	pop	ecx
	ret	4
?Created@NHP_Construction_AI@@EAEXPAE@Z ENDP		; NHP_Construction_AI::Created
_TEXT	ENDS
PUBLIC	?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z	; NHP_Construction_AI::Timer_Expired
PUBLIC	??_C@_0M@HPDDLCBF@Money_Limit?$AA@		; `string'
PUBLIC	??_C@_09MNMLKPFC@Money_Gen?$AA@			; `string'
PUBLIC	??_C@_0O@GMEIBLGN@Money_Waypath?$AA@		; `string'
PUBLIC	??_C@_0M@HEJJGPE@Guard_Limit?$AA@		; `string'
PUBLIC	??_C@_09DEFEEAH@Guard_Inf?$AA@			; `string'
PUBLIC	??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@		; `string'
PUBLIC	??_C@_0N@NDFBCBJN@Attack_Limit?$AA@		; `string'
PUBLIC	??_C@_0M@NIPPNKMI@Attack_Unit?$AA@		; `string'
PUBLIC	??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@		; `string'
PUBLIC	__real@40a00000
PUBLIC	__real@40000000
EXTRN	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z:NEAR ; ScriptImpClass::Get_Int_Parameter
;	COMDAT __real@40a00000
; File c:\documents and settings\owner\desktop\ssctf 1.3\scripts.h
CONST	SEGMENT
__real@40a00000 DD 040a00000r			; 5
CONST	ENDS
;	COMDAT __real@40000000
CONST	SEGMENT
__real@40000000 DD 040000000r			; 2
CONST	ENDS
;	COMDAT ??_C@_0M@HPDDLCBF@Money_Limit?$AA@
CONST	SEGMENT
??_C@_0M@HPDDLCBF@Money_Limit?$AA@ DB 'Money_Limit', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09MNMLKPFC@Money_Gen?$AA@
CONST	SEGMENT
??_C@_09MNMLKPFC@Money_Gen?$AA@ DB 'Money_Gen', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@GMEIBLGN@Money_Waypath?$AA@
CONST	SEGMENT
??_C@_0O@GMEIBLGN@Money_Waypath?$AA@ DB 'Money_Waypath', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@HEJJGPE@Guard_Limit?$AA@
CONST	SEGMENT
??_C@_0M@HEJJGPE@Guard_Limit?$AA@ DB 'Guard_Limit', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_09DEFEEAH@Guard_Inf?$AA@
CONST	SEGMENT
??_C@_09DEFEEAH@Guard_Inf?$AA@ DB 'Guard_Inf', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@
CONST	SEGMENT
??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@ DB 'Guard_Waypath', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@NDFBCBJN@Attack_Limit?$AA@
CONST	SEGMENT
??_C@_0N@NDFBCBJN@Attack_Limit?$AA@ DB 'Attack_Limit', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@NIPPNKMI@Attack_Unit?$AA@
CONST	SEGMENT
??_C@_0M@NIPPNKMI@Attack_Unit?$AA@ DB 'Attack_Unit', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@
CONST	SEGMENT
??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@ DB 'Attack_Waypath', 00H ; `string'
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\nhp.cpp
CONST	ENDS
;	COMDAT ?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z
_TEXT	SEGMENT
$T15168 = -236						; size = 12
$T15166 = -236						; size = 12
$T15164 = -236						; size = 12
_timer$ = -224						; size = 4
_spawnPos$ = -220					; size = 12
$T15169 = -208						; size = 12
$T15167 = -208						; size = 12
$T15165 = -208						; size = 12
_params$ = -196						; size = 196
_obj$ = 8						; size = 4
_number$ = 12						; size = 4
?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z PROC NEAR ; NHP_Construction_AI::Timer_Expired, COMDAT
; _this$ = ecx

; 78   : {

	sub	esp, 236				; 000000ecH
	push	esi
	mov	esi, ecx
	push	edi

; 79   : 	Vector3 spawnPos;
; 80   : 	ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$[esp+244]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 81   : 	float timer;
; 82   : 	int limit;
; 83   : 	int id;
; 84   : 	const char *unit;
; 85   : 	GameObject *object;
; 86   : 	timer = Get_Float_Parameter("Time_Delay");

	push	OFFSET FLAT:??_C@_0L@JCFEAFCJ@Time_Delay?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fstp	DWORD PTR _timer$[esp+244]

; 87   : 	spawnPos.X = Commands->Get_Position(obj).X + 5;

	mov	edi, DWORD PTR _obj$[esp+240]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T15165[esp+244]
	push	edi
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR $T15164[esp+252], edx
	fld	DWORD PTR $T15164[esp+252]
	mov	edx, DWORD PTR [eax+8]
	fadd	DWORD PTR __real@40a00000

; 88   : 	spawnPos.Y = Commands->Get_Position(obj).Y;

	lea	eax, DWORD PTR $T15167[esp+252]
	mov	DWORD PTR $T15164[esp+256], ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR _spawnPos$[esp+252]
	push	edi
	push	eax
	mov	DWORD PTR $T15164[esp+268], edx
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR $T15166[esp+260], edx
	mov	edx, DWORD PTR [eax+8]
	mov	eax, ecx
	mov	DWORD PTR $T15166[esp+264], ecx

; 89   : 	spawnPos.Z = Commands->Get_Position(obj).Z + 2;

	lea	ecx, DWORD PTR $T15169[esp+260]
	mov	DWORD PTR $T15166[esp+268], edx
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	push	ecx
	mov	DWORD PTR _spawnPos$[esp+272], eax
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR $T15168[esp+276], eax
	fld	DWORD PTR $T15168[esp+276]

; 90   : 	switch (number)

	mov	eax, DWORD PTR _number$[esp+264]
	fadd	DWORD PTR __real@40000000
	add	esp, 24					; 00000018H
	dec	eax
	cmp	eax, 4
	fstp	DWORD PTR _spawnPos$[esp+252]
	mov	DWORD PTR $T15168[esp+244], ecx
	mov	DWORD PTR $T15168[esp+248], edx
	ja	$L11545
	push	ebx
	jmp	DWORD PTR $L15220[eax*4]
$L11533:

; 91   : 	{
; 92   : 	case 1:
; 93   : 	case 5:
; 94   : 			limit = Get_Int_Parameter("Money_Limit");

	push	OFFSET FLAT:??_C@_0M@HPDDLCBF@Money_Limit?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 95   : 			if (unitlim1 < limit)

	mov	ecx, DWORD PTR [esi+28]
	cmp	ecx, eax
	jge	$L15218

; 96   : 			{
; 97   : 				unitlim1++;

	inc	ecx
	mov	DWORD PTR [esi+28], ecx

; 98   : 				unit = Get_Parameter("Money_Gen");

	push	OFFSET FLAT:??_C@_09MNMLKPFC@Money_Gen?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 99   : 				object = Commands->Create_Object(unit,spawnPos);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _spawnPos$[esp+248]
	push	ecx
	push	eax
	call	DWORD PTR [edx+100]
	add	esp, 8

; 100  : 				id = Get_Int_Parameter("Money_Waypath");

	push	OFFSET FLAT:??_C@_0O@GMEIBLGN@Money_Waypath?$AA@
	mov	ecx, esi
	mov	ebx, eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 101  : 				params.Set_Move_Arrive_Distance(100);
; 102  : 				params.Set_Basic(this,100,1,-1);

	mov	ecx, DWORD PTR [esi+4]

; 103  : 				params.Set_Goto_Waypath(id,true,false,false);

	mov	DWORD PTR _params$[esp+384], eax
	xor	al, al

; 104  : 				Commands->Action_Goto(object,params);

	lea	edx, DWORD PTR _params$[esp+248]
	push	edx
	mov	BYTE PTR _params$[esp+361], al
	mov	BYTE PTR _params$[esp+360], al
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	mov	DWORD PTR _params$[esp+320], 1120403456	; 42c80000H
	mov	DWORD PTR _params$[esp+256], 100	; 00000064H
	mov	DWORD PTR _params$[esp+260], ecx
	mov	DWORD PTR _params$[esp+424], -1
	mov	BYTE PTR _params$[esp+404], 1
	call	DWORD PTR [eax+16]

; 105  : 				Commands->Start_Timer(obj,this,timer,2);

	push	2

; 106  : 			}
; 107  : 		break;

	jmp	$L15219
$L11538:

; 108  : 	case 2:
; 109  : 			limit = Get_Int_Parameter("Guard_Limit");

	push	OFFSET FLAT:??_C@_0M@HEJJGPE@Guard_Limit?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 110  : 			if (unitlim2 < limit)

	mov	ecx, DWORD PTR [esi+32]
	cmp	ecx, eax
	jge	$L15218

; 111  : 			{
; 112  : 				unitlim2++;

	inc	ecx
	mov	DWORD PTR [esi+32], ecx

; 113  : 				unit = Get_Parameter("Guard_Inf");

	push	OFFSET FLAT:??_C@_09DEFEEAH@Guard_Inf?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 114  : 				object = Commands->Create_Object(unit,spawnPos);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _spawnPos$[esp+248]
	push	ecx
	push	eax
	call	DWORD PTR [edx+100]
	add	esp, 8

; 115  : 				id = Get_Int_Parameter("Guard_Waypath");

	push	OFFSET FLAT:??_C@_0O@BHCOEFGL@Guard_Waypath?$AA@
	mov	ecx, esi
	mov	ebx, eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 116  : 				params.Set_Basic(this,100,1,-1);

	mov	ecx, DWORD PTR [esi+4]

; 117  : 				params.Set_Goto_Waypath(id,true,false,false);

	mov	DWORD PTR _params$[esp+384], eax
	xor	al, al

; 118  : 				Commands->Action_Goto(object,params);

	lea	edx, DWORD PTR _params$[esp+248]
	push	edx
	mov	BYTE PTR _params$[esp+361], al
	mov	BYTE PTR _params$[esp+360], al
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	mov	DWORD PTR _params$[esp+256], 100	; 00000064H
	mov	DWORD PTR _params$[esp+260], ecx
	mov	DWORD PTR _params$[esp+424], -1
	mov	BYTE PTR _params$[esp+404], 1
	call	DWORD PTR [eax+16]

; 119  : 				Commands->Start_Timer(obj,this,timer,3);

	push	3

; 120  : 			}
; 121  : 		break;

	jmp	$L15219
$L11543:

; 122  : 	case 3:
; 123  : 	case 4:
; 124  : 			limit = Get_Int_Parameter("Attack_Limit");

	push	OFFSET FLAT:??_C@_0N@NDFBCBJN@Attack_Limit?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 125  : 			if (unitlim3 < limit)

	mov	ecx, DWORD PTR [esi+36]
	cmp	ecx, eax
	jge	$L15218

; 126  : 			{
; 127  : 				unitlim3++;

	inc	ecx
	mov	DWORD PTR [esi+36], ecx

; 128  : 				unit = Get_Parameter("Attack_Unit");

	push	OFFSET FLAT:??_C@_0M@NIPPNKMI@Attack_Unit?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter

; 129  : 				object = Commands->Create_Object(unit,spawnPos);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _spawnPos$[esp+248]
	push	ecx
	push	eax
	call	DWORD PTR [edx+100]
	add	esp, 8

; 130  : 				id = Get_Int_Parameter("Attack_Waypath");

	push	OFFSET FLAT:??_C@_0P@PGBEGHLC@Attack_Waypath?$AA@
	mov	ecx, esi
	mov	ebx, eax
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 131  : 				params.Set_Basic(this,100,1,-1);

	mov	ecx, DWORD PTR [esi+4]

; 132  : 				params.Set_Goto_Waypath(id,true,false,false);

	mov	DWORD PTR _params$[esp+384], eax
	xor	al, al

; 133  : 				Commands->Action_Goto(object,params);

	lea	edx, DWORD PTR _params$[esp+248]
	push	edx
	mov	BYTE PTR _params$[esp+361], al
	mov	BYTE PTR _params$[esp+360], al
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	mov	DWORD PTR _params$[esp+256], 100	; 00000064H
	mov	DWORD PTR _params$[esp+260], ecx
	mov	DWORD PTR _params$[esp+424], -1
	mov	BYTE PTR _params$[esp+404], 1
	call	DWORD PTR [eax+16]

; 134  : 				Commands->Start_Timer(obj,this,timer,4);

	push	4
$L15219:
	mov	ecx, DWORD PTR _timer$[esp+260]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	push	esi
	push	edi
	call	DWORD PTR [edx+128]
	add	esp, 24					; 00000018H
$L15218:
	pop	ebx
$L11545:
	pop	edi
	pop	esi

; 135  : 			}
; 136  : 		break;
; 137  : 	}
; 138  : }

	add	esp, 236				; 000000ecH
	ret	8
	npad	3
$L15220:
	DD	$L11533
	DD	$L11538
	DD	$L11543
	DD	$L11543
	DD	$L11533
?Timer_Expired@NHP_Construction_AI@@EAEXPAEH@Z ENDP	; NHP_Construction_AI::Timer_Expired
_TEXT	ENDS
PUBLIC	?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ ; NHP_Construction_AI::Register_Auto_Save_Variables
EXTRN	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z:NEAR ; ScriptImpClass::Auto_Save_Variable
; Function compile flags: /Ogty
;	COMDAT ?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ
_TEXT	SEGMENT
?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ PROC NEAR ; NHP_Construction_AI::Register_Auto_Save_Variables, COMDAT
; _this$ = ecx

; 141  : {

	push	esi
	mov	esi, ecx

; 142  : 	Auto_Save_Variable(1,4,&unitlim1);

	lea	eax, DWORD PTR [esi+28]
	push	eax
	push	4
	push	1
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 143  : 	Auto_Save_Variable(1,4,&unitlim2);

	lea	ecx, DWORD PTR [esi+32]
	push	ecx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 144  : 	Auto_Save_Variable(1,4,&unitlim3);

	lea	edx, DWORD PTR [esi+36]
	push	edx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable
	pop	esi

; 145  : }

	ret	0
?Register_Auto_Save_Variables@NHP_Construction_AI@@EAEXXZ ENDP ; NHP_Construction_AI::Register_Auto_Save_Variables
_TEXT	ENDS
PUBLIC	?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z	; NHP_Sensor_Array_Zone::Created
PUBLIC	??_C@_0P@NIEAFCIF@Sound_Position?$AA@		; `string'
PUBLIC	??_C@_0N@JLPHONAA@Sound_Preset?$AA@		; `string'
EXTRN	?Get_Vector3_Parameter@ScriptImpClass@@QAE?AUVector3@@PBD@Z:NEAR ; ScriptImpClass::Get_Vector3_Parameter
;	COMDAT ??_C@_0P@NIEAFCIF@Sound_Position?$AA@
CONST	SEGMENT
??_C@_0P@NIEAFCIF@Sound_Position?$AA@ DB 'Sound_Position', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@JLPHONAA@Sound_Preset?$AA@
CONST	SEGMENT
??_C@_0N@JLPHONAA@Sound_Preset?$AA@ DB 'Sound_Preset', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z
_TEXT	SEGMENT
$T15227 = -12						; size = 12
_obj$ = 8						; size = 4
?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z PROC NEAR	; NHP_Sensor_Array_Zone::Created, COMDAT
; _this$ = ecx

; 150  : 	count = 0;
; 151  : 	SensorIsAlive = true;
; 152  : 	soundId = Commands->Create_Sound(Get_Parameter("Sound_Preset"),Get_Vector3_Parameter("Sound_Position"),obj);

	mov	eax, DWORD PTR _obj$[esp-4]
	sub	esp, 12					; 0000000cH
	push	esi
	push	edi
	mov	esi, ecx
	push	eax
	push	OFFSET FLAT:??_C@_0P@NIEAFCIF@Sound_Position?$AA@
	lea	ecx, DWORD PTR $T15227[esp+28]
	mov	DWORD PTR [esi+32], 0
	mov	BYTE PTR [esi+28], 1
	mov	edi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	mov	ecx, esi
	add	edi, 172				; 000000acH
	call	?Get_Vector3_Parameter@ScriptImpClass@@QAE?AUVector3@@PBD@Z ; ScriptImpClass::Get_Vector3_Parameter
	push	eax
	push	OFFSET FLAT:??_C@_0N@JLPHONAA@Sound_Preset?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	call	DWORD PTR [edi]
	mov	DWORD PTR [esi+36], eax

; 153  : 	Commands->Stop_Sound(soundId,false);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	eax
	call	DWORD PTR [edx+200]
	add	esp, 20					; 00000014H
	pop	edi
	pop	esi

; 154  : }

	add	esp, 12					; 0000000cH
	ret	4
?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z ENDP		; NHP_Sensor_Array_Zone::Created
_TEXT	ENDS
PUBLIC	?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z	; NHP_Sensor_Array_Zone::Custom
PUBLIC	??_C@_0L@HNDGGODA@Check_Team?$AA@		; `string'
;	COMDAT ??_C@_0L@HNDGGODA@Check_Team?$AA@
CONST	SEGMENT
??_C@_0L@HNDGGODA@Check_Team?$AA@ DB 'Check_Team', 00H	; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_message$ = 12						; size = 4
_param$ = 16						; size = 4
_sender$ = 20						; size = 4
?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z PROC NEAR	; NHP_Sensor_Array_Zone::Custom, COMDAT
; _this$ = ecx

; 158  : 	if (message == 901192102)

	mov	eax, DWORD PTR _message$[esp-4]
	cmp	eax, 901192102				; 35b719a6H
	push	esi
	mov	esi, ecx
	jne	SHORT $L11567

; 159  : 	{
; 160  : 		if (param == 1)

	cmp	DWORD PTR _param$[esp], 1
	sete	al
	mov	BYTE PTR [esi+28], al
	pop	esi

; 174  : 	}
; 175  : }

	ret	16					; 00000010H
$L11567:

; 161  : 			SensorIsAlive = true;
; 162  : 		else
; 163  : 			SensorIsAlive = false;
; 164  : 	}
; 165  : 	if (message == 20103020)

	cmp	eax, 20103020				; 0132bf6cH
	jne	SHORT $L11572
	push	edi

; 166  : 	{
; 167  : 		if (Get_Int_Parameter("Check_Team") == Commands->Get_Player_Type(sender))

	push	OFFSET FLAT:??_C@_0L@HNDGGODA@Check_Team?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	mov	ecx, DWORD PTR _sender$[esp+4]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	mov	edi, eax
	call	DWORD PTR [edx+248]
	add	esp, 4
	cmp	edi, eax
	pop	edi
	je	SHORT $L11572

; 168  : 			return;
; 169  : 		count--;

	dec	DWORD PTR [esi+32]

; 170  : 		if (count < 0)

	jns	SHORT $L11571

; 171  : 			count = 0;

	mov	DWORD PTR [esi+32], 0
$L11571:

; 172  : 		if (!count)

	mov	eax, DWORD PTR [esi+32]
	test	eax, eax
	jne	SHORT $L11572

; 173  : 			Commands->Stop_Sound(soundId,false);

	mov	eax, DWORD PTR [esi+36]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	eax
	call	DWORD PTR [ecx+200]
	add	esp, 8
$L11572:
	pop	esi

; 174  : 	}
; 175  : }

	ret	16					; 00000010H
?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@Z ENDP	; NHP_Sensor_Array_Zone::Custom
_TEXT	ENDS
PUBLIC	?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ ; NHP_Sensor_Array_Zone::Register_Auto_Save_Variables
; Function compile flags: /Ogty
;	COMDAT ?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ
_TEXT	SEGMENT
?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ PROC NEAR ; NHP_Sensor_Array_Zone::Register_Auto_Save_Variables, COMDAT
; _this$ = ecx

; 248  : {

	push	esi
	mov	esi, ecx

; 249  : 	Auto_Save_Variable(1,4,&SensorIsAlive);

	lea	eax, DWORD PTR [esi+28]
	push	eax
	push	4
	push	1
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 250  : 	Auto_Save_Variable(1,4,&count);

	lea	ecx, DWORD PTR [esi+32]
	push	ecx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 251  : 	Auto_Save_Variable(1,4,&soundId);

	lea	edx, DWORD PTR [esi+36]
	push	edx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable
	pop	esi

; 252  : }

	ret	0
?Register_Auto_Save_Variables@NHP_Sensor_Array_Zone@@EAEXXZ ENDP ; NHP_Sensor_Array_Zone::Register_Auto_Save_Variables
_TEXT	ENDS
PUBLIC	?Created@NHP_Sensorable_Object@@EAEXPAE@Z	; NHP_Sensorable_Object::Created
; Function compile flags: /Ogty
;	COMDAT ?Created@NHP_Sensorable_Object@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Created@NHP_Sensorable_Object@@EAEXPAE@Z PROC NEAR	; NHP_Sensorable_Object::Created, COMDAT
; _this$ = ecx

; 257  : 	sensorZone = 0;

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

; 258  : 	insideSensorZone = false;

	mov	BYTE PTR [ecx+28], al

; 259  : }

	ret	4
?Created@NHP_Sensorable_Object@@EAEXPAE@Z ENDP		; NHP_Sensorable_Object::Created
_TEXT	ENDS
PUBLIC	?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z	; NHP_Sensorable_Object::Killed
; Function compile flags: /Ogty
;	COMDAT ?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_shooter$ = 12						; size = 4
?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z PROC NEAR	; NHP_Sensorable_Object::Killed, COMDAT
; _this$ = ecx

; 263  : 	if (insideSensorZone)

	mov	al, BYTE PTR [ecx+28]
	test	al, al
	je	SHORT $L11765

; 264  : 		Commands->Send_Custom_Event(obj,Commands->Find_Object(sensorZone),20103020,1,0);

	mov	ecx, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	esi
	push	0
	push	1
	push	20103020				; 0132bf6cH
	push	ecx
	lea	esi, DWORD PTR [eax+140]
	call	DWORD PTR [eax+96]
	mov	edx, DWORD PTR _obj$[esp+16]
	add	esp, 4
	push	eax
	push	edx
	call	DWORD PTR [esi]
	add	esp, 20					; 00000014H
	pop	esi
$L11765:

; 265  : }

	ret	8
?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z ENDP		; NHP_Sensorable_Object::Killed
_TEXT	ENDS
PUBLIC	?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z	; NHP_Sensorable_Object::Custom
; Function compile flags: /Ogty
;	COMDAT ?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_message$ = 12						; size = 4
_param$ = 16						; size = 4
_sender$ = 20						; size = 4
?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z PROC NEAR	; NHP_Sensorable_Object::Custom, COMDAT
; _this$ = ecx

; 269  : 	if (message == 20103020)

	cmp	DWORD PTR _message$[esp-4], 20103020	; 0132bf6cH
	push	esi
	mov	esi, ecx
	jne	SHORT $L11776

; 270  : 	{
; 271  : 		if (!param)

	mov	eax, DWORD PTR _param$[esp]
	test	eax, eax
	jne	SHORT $L11774

; 272  : 		{
; 273  : 			insideSensorZone = true;
; 274  : 			sensorZone = Commands->Get_ID(sender);

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

; 277  : 		{
; 278  : 			insideSensorZone = false;
; 279  : 			sensorZone = Commands->Get_ID(sender);

	add	esp, 4
	mov	DWORD PTR [esi+32], eax
	pop	esi

; 280  : 		}
; 281  : 	}
; 282  : }

	ret	16					; 00000010H
$L11774:

; 275  : 		}
; 276  : 		else if (param == 1)

	cmp	eax, 1
	jne	SHORT $L11776

; 277  : 		{
; 278  : 			insideSensorZone = false;
; 279  : 			sensorZone = Commands->Get_ID(sender);

	mov	edx, DWORD PTR _sender$[esp]
	mov	BYTE PTR [esi+28], 0
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+108]
	add	esp, 4
	mov	DWORD PTR [esi+32], eax
$L11776:
	pop	esi

; 280  : 		}
; 281  : 	}
; 282  : }

	ret	16					; 00000010H
?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@Z ENDP	; NHP_Sensorable_Object::Custom
_TEXT	ENDS
PUBLIC	?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ ; NHP_Sensorable_Object::Register_Auto_Save_Variables
; Function compile flags: /Ogty
;	COMDAT ?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ
_TEXT	SEGMENT
?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ PROC NEAR ; NHP_Sensorable_Object::Register_Auto_Save_Variables, COMDAT
; _this$ = ecx

; 285  : {

	push	esi
	mov	esi, ecx

; 286  : 	Auto_Save_Variable(1,4,&insideSensorZone);

	lea	eax, DWORD PTR [esi+28]
	push	eax
	push	4
	push	1
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 287  : 	Auto_Save_Variable(1,4,&sensorZone);

	lea	ecx, DWORD PTR [esi+32]
	push	ecx
	push	4
	push	1
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable
	pop	esi

; 288  : }

	ret	0
?Register_Auto_Save_Variables@NHP_Sensorable_Object@@EAEXXZ ENDP ; NHP_Sensorable_Object::Register_Auto_Save_Variables
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ ; ScriptRegistrant<NHP_Construction_AI>::~ScriptRegistrant<NHP_Construction_AI>
EXTRN	??1ScriptFactory@@UAE@XZ:NEAR			; ScriptFactory::~ScriptFactory
; Function compile flags: /Ogty
;	COMDAT ??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ PROC NEAR ; ScriptRegistrant<NHP_Construction_AI>::~ScriptRegistrant<NHP_Construction_AI>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ ENDP ; ScriptRegistrant<NHP_Construction_AI>::~ScriptRegistrant<NHP_Construction_AI>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ ; ScriptRegistrant<NHP_Smart_Targetting>::~ScriptRegistrant<NHP_Smart_Targetting>
; Function compile flags: /Ogty
;	COMDAT ??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ PROC NEAR ; ScriptRegistrant<NHP_Smart_Targetting>::~ScriptRegistrant<NHP_Smart_Targetting>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ ENDP ; ScriptRegistrant<NHP_Smart_Targetting>::~ScriptRegistrant<NHP_Smart_Targetting>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ	; ScriptRegistrant<NHP_Guard_Bot>::~ScriptRegistrant<NHP_Guard_Bot>
; Function compile flags: /Ogty
;	COMDAT ??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ PROC NEAR ; ScriptRegistrant<NHP_Guard_Bot>::~ScriptRegistrant<NHP_Guard_Bot>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ ENDP	; ScriptRegistrant<NHP_Guard_Bot>::~ScriptRegistrant<NHP_Guard_Bot>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ ; ScriptRegistrant<NHP_Sensor_Array_Zone>::~ScriptRegistrant<NHP_Sensor_Array_Zone>
; Function compile flags: /Ogty
;	COMDAT ??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ PROC NEAR ; ScriptRegistrant<NHP_Sensor_Array_Zone>::~ScriptRegistrant<NHP_Sensor_Array_Zone>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ ENDP ; ScriptRegistrant<NHP_Sensor_Array_Zone>::~ScriptRegistrant<NHP_Sensor_Array_Zone>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ ; ScriptRegistrant<NHP_Sensorable_Object>::~ScriptRegistrant<NHP_Sensorable_Object>
; Function compile flags: /Ogty
;	COMDAT ??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ PROC NEAR ; ScriptRegistrant<NHP_Sensorable_Object>::~ScriptRegistrant<NHP_Sensorable_Object>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ ENDP ; ScriptRegistrant<NHP_Sensorable_Object>::~ScriptRegistrant<NHP_Sensorable_Object>
_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_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	??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Construction_AI>::ScriptRegistrant<NHP_Construction_AI>
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Construction_AI>::Create
PUBLIC	??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@ ; ScriptRegistrant<NHP_Construction_AI>::`vftable'
PUBLIC	??_G?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Construction_AI>::`scalar deleting destructor'
EXTRN	??0ScriptFactory@@QAE@PAD0@Z:NEAR		; ScriptFactory::ScriptFactory
EXTRN	??_E?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z:NEAR ; ScriptRegistrant<NHP_Construction_AI>::`vector deleting destructor'
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@
; File c:\documents and settings\owner\desktop\ssctf 1.3\scripts.h
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Construction_AI@@@@6B@ DD FLAT:??_E?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Construction_AI>::`vftable'
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z PROC NEAR ; ScriptRegistrant<NHP_Construction_AI>::ScriptRegistrant<NHP_Construction_AI>, 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@VNHP_Construction_AI@@@@6B@

; 475  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<NHP_Construction_AI>::ScriptRegistrant<NHP_Construction_AI>
_TEXT	ENDS
PUBLIC	??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Smart_Targetting>::ScriptRegistrant<NHP_Smart_Targetting>
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Smart_Targetting>::Create
PUBLIC	??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@ ; ScriptRegistrant<NHP_Smart_Targetting>::`vftable'
PUBLIC	??_G?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Smart_Targetting>::`scalar deleting destructor'
EXTRN	??_E?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z:NEAR ; ScriptRegistrant<NHP_Smart_Targetting>::`vector deleting destructor'
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Smart_Targetting@@@@6B@ DD FLAT:??_E?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Smart_Targetting>::`vftable'
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z PROC NEAR ; ScriptRegistrant<NHP_Smart_Targetting>::ScriptRegistrant<NHP_Smart_Targetting>, 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@VNHP_Smart_Targetting@@@@6B@

; 475  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<NHP_Smart_Targetting>::ScriptRegistrant<NHP_Smart_Targetting>
_TEXT	ENDS
PUBLIC	??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Guard_Bot>::ScriptRegistrant<NHP_Guard_Bot>
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Guard_Bot>::Create
PUBLIC	??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@	; ScriptRegistrant<NHP_Guard_Bot>::`vftable'
PUBLIC	??_G?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Guard_Bot>::`scalar deleting destructor'
EXTRN	??_E?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z:NEAR ; ScriptRegistrant<NHP_Guard_Bot>::`vector deleting destructor'
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Guard_Bot@@@@6B@ DD FLAT:??_E?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Guard_Bot>::`vftable'
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z PROC NEAR ; ScriptRegistrant<NHP_Guard_Bot>::ScriptRegistrant<NHP_Guard_Bot>, 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@VNHP_Guard_Bot@@@@6B@

; 475  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z ENDP	; ScriptRegistrant<NHP_Guard_Bot>::ScriptRegistrant<NHP_Guard_Bot>
_TEXT	ENDS
PUBLIC	??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Sensor_Array_Zone>::ScriptRegistrant<NHP_Sensor_Array_Zone>
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Sensor_Array_Zone>::Create
PUBLIC	??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@ ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`vftable'
PUBLIC	??_G?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`scalar deleting destructor'
EXTRN	??_E?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z:NEAR ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`vector deleting destructor'
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@6B@ DD FLAT:??_E?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`vftable'
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z PROC NEAR ; ScriptRegistrant<NHP_Sensor_Array_Zone>::ScriptRegistrant<NHP_Sensor_Array_Zone>, 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@VNHP_Sensor_Array_Zone@@@@6B@

; 475  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<NHP_Sensor_Array_Zone>::ScriptRegistrant<NHP_Sensor_Array_Zone>
_TEXT	ENDS
PUBLIC	??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Sensorable_Object>::ScriptRegistrant<NHP_Sensorable_Object>
PUBLIC	?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<NHP_Sensorable_Object>::Create
PUBLIC	??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@ ; ScriptRegistrant<NHP_Sensorable_Object>::`vftable'
PUBLIC	??_G?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Sensorable_Object>::`scalar deleting destructor'
EXTRN	??_E?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z:NEAR ; ScriptRegistrant<NHP_Sensorable_Object>::`vector deleting destructor'
;	COMDAT ??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNHP_Sensorable_Object@@@@6B@ DD FLAT:??_E?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z ; ScriptRegistrant<NHP_Sensorable_Object>::`vftable'
	DD	FLAT:?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z PROC NEAR ; ScriptRegistrant<NHP_Sensorable_Object>::ScriptRegistrant<NHP_Sensorable_Object>, 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@VNHP_Sensorable_Object@@@@6B@

; 475  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<NHP_Sensorable_Object>::ScriptRegistrant<NHP_Sensorable_Object>
; 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 $L15306
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15306:
	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 $L15320
	call	?_Decref@facet@locale@std@@QAEPAV123@XZ	; std::locale::facet::_Decref
	test	eax, eax
	je	SHORT $L15320
	mov	edx, DWORD PTR [eax]
	push	1
	mov	ecx, eax
	call	DWORD PTR [edx]
$L15320:
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L15322
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15322:
	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@VNHP_Construction_AI@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z PROC NEAR ; ScriptRegistrant<NHP_Construction_AI>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L15326
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15326:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<NHP_Construction_AI>::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z PROC NEAR ; ScriptRegistrant<NHP_Smart_Targetting>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L15330
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15330:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<NHP_Smart_Targetting>::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z PROC NEAR ; ScriptRegistrant<NHP_Guard_Bot>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L15334
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15334:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAXI@Z ENDP	; ScriptRegistrant<NHP_Guard_Bot>::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z PROC NEAR ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L15338
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15338:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<NHP_Sensor_Array_Zone>::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z PROC NEAR ; ScriptRegistrant<NHP_Sensorable_Object>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L15342
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15342:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<NHP_Sensorable_Object>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@ABV01@@Z		; 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@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	?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 $L15350
	or	eax, 4
$L15350:
	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	?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	?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	?_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	?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::is_open
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
;	COMDAT ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT
?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::is_open, COMDAT
; _this$ = ecx

; 134  : 		return (_Myfile != 0);

	mov	edx, DWORD PTR [ecx+88]
	xor	eax, eax
	test	edx, edx
	setne	al

; 135  : 		}

	ret	0
?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::is_open
_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	??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 $L15389
	mov	eax, DWORD PTR [ecx+4]

; 1533 : 		}

	ret	0
$L15389:

; 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	??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	?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	?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	?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ ; std::basic_streambuf<char,std::char_traits<char> >::getloc
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
;	COMDAT ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ
_TEXT	SEGMENT
$T15404 = -4						; size = 4
__Lock$15417 = 8					; size = 4
___$ReturnUdt$ = 8					; size = 4
?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::getloc, COMDAT
; _this$ = ecx

; 84   : 		{	// get locale

	push	ecx

; 85   : 		return (*_Plocale);

	mov	eax, DWORD PTR [ecx+56]
	push	esi
	mov	esi, DWORD PTR [eax]
	push	edi
	mov	edi, DWORD PTR ___$ReturnUdt$[esp+8]
	push	0
	lea	ecx, DWORD PTR __Lock$15417[esp+12]
	mov	DWORD PTR $T15404[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 $L15418
	inc	eax
	mov	DWORD PTR [esi+4], eax
$L15418:
	lea	ecx, DWORD PTR __Lock$15417[esp+8]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	mov	eax, edi
	pop	edi
	pop	esi

; 86   : 		}

	pop	ecx
	ret	4
?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::getloc
_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
;	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	??Dconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::const_iterator::operator*
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ??Dconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ
_TEXT	SEGMENT
??Dconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::const_iterator::operator*, COMDAT
; _this$ = ecx

; 91   : 
; 92   : 
; 93   : 			return (*_Myptr);

	mov	eax, DWORD PTR [ecx]

; 94   : 			}

	ret	0
??Dconst_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::const_iterator::operator*
_TEXT	ENDS
PUBLIC	?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z	; std::codecvt<char,char,int>::unshift
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
;	COMDAT ?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z
_TEXT	SEGMENT
__State$ = 8						; size = 4
__First2$ = 12						; size = 4
__Last2$ = 16						; size = 4
__Mid2$ = 20						; size = 4
?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z PROC NEAR ; std::codecvt<char,char,int>::unshift, COMDAT
; _this$ = ecx

; 573  : 		return (do_unshift(_State, _First2, _Last2, _Mid2));

	mov	eax, DWORD PTR [ecx]
	jmp	DWORD PTR [eax+24]
?unshift@?$codecvt@DDH@std@@QBEHAAHPAD1AAPAD@Z ENDP	; std::codecvt<char,char,int>::unshift
_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
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
;	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	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z ; std::basic_streambuf<char,std::char_traits<char> >::_Init
; Function compile flags: /Ogty
;	COMDAT ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z
_TEXT	SEGMENT
__Gf$ = 8						; size = 4
__Gn$ = 12						; size = 4
__Gc$ = 16						; size = 4
__Pf$ = 20						; size = 4
__Pn$ = 24						; size = 4
__Pc$ = 28						; size = 4
?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::_Init, COMDAT
; _this$ = ecx

; 260  : 		_IGfirst = _Gf, _IPfirst = _Pf;

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

; 261  : 		_IGnext = _Gn, _IPnext = _Pn;

	mov	eax, DWORD PTR __Gn$[esp-4]
	mov	DWORD PTR [ecx+20], edx
	mov	edx, DWORD PTR __Pn$[esp-4]
	mov	DWORD PTR [ecx+32], eax

; 262  : 		_IGcount = _Gc, _IPcount = _Pc;

	mov	eax, DWORD PTR __Gc$[esp-4]
	mov	DWORD PTR [ecx+36], edx
	mov	edx, DWORD PTR __Pc$[esp-4]
	mov	DWORD PTR [ecx+48], eax
	mov	DWORD PTR [ecx+52], edx

; 263  : 		}

	ret	24					; 00000018H
?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Init
_TEXT	ENDS
PUBLIC	??0const_iterator@?$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> >::const_iterator::const_iterator
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ??0const_iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??0const_iterator@?$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> >::const_iterator::const_iterator, COMDAT
; _this$ = ecx

; 84   : 		const_iterator(_Ctptr _Ptr)

	mov	eax, ecx

; 85   : 			{	// construct with pointer _Ptr
; 86   : 			_Myptr = _Ptr;

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

; 87   : 			}

	ret	4
??0const_iterator@?$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> >::const_iterator::const_iterator
_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	?_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	?_Init@?$codecvt@DDH@std@@IAEXABV_Locinfo@2@@Z	; std::codecvt<char,char,int>::_Init
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
;	COMDAT ?_Init@?$codecvt@DDH@std@@IAEXABV_Locinfo@2@@Z
_TEXT	SEGMENT
__Lobj$ = 8						; size = 4
?_Init@?$codecvt@DDH@std@@IAEXABV_Locinfo@2@@Z PROC NEAR ; std::codecvt<char,char,int>::_Init, COMDAT
; _this$ = ecx

; 611  : 		}

	ret	4
?_Init@?$codecvt@DDH@std@@IAEXABV_Locinfo@2@@Z ENDP	; std::codecvt<char,char,int>::_Init
_TEXT	ENDS
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'
PUBLIC	??_C@_01GFHCPBMG@C?$AA@				; `string'
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
xdata$x	SEGMENT
$T15507	DD	0ffffffffH
	DD	FLAT:$L15464
$T15501	DD	019930520H
	DD	01H
	DD	FLAT:$T15507
	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
$T15487 = -144						; size = 16
$T15463 = -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 $T15463[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 $T15487[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 $T15463[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 $L15502

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

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

; 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
$L15502:

; 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
$L15464:
	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:$T15501
	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 $L15519
	push	edi
	lea	edi, DWORD PTR [ecx+8]
$L8531:

; 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 $L8531
	pop	edi
$L15519:

; 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 $L15528
	push	edi
	lea	edi, DWORD PTR [ecx+8]
$L8543:

; 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 $L8543
	pop	edi
$L15528:

; 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
$T15554	DD	0ffffffffH
	DD	FLAT:$L15548
$T15550	DD	019930520H
	DD	01H
	DD	FLAT:$T15554
	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
$T15545 = 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 $L15552
	cmp	DWORD PTR [esi], 0
	jne	SHORT $L15552

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

	push	24					; 00000018H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4
	mov	DWORD PTR $T15545[esp+12], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $L15546
	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 $L15547
$L15546:
	xor	eax, eax
$L15547:
	mov	DWORD PTR [esi], eax
$L15552:

; 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
$L15548:
	mov	eax, DWORD PTR $T15545[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:$T15550
	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 $L15560
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15560:
	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 $L15582
	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
$L15582:

; 1248 : 		_Tidy();

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

; 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 $L15597

; 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 $L15596
	or	eax, 4
$L15596:
	mov	DWORD PTR __State$[esp-4], eax
	jmp	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L15597:

; 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 $L15612

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

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

; 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$15657 = -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 $L15618
	push	esi
	mov	esi, DWORD PTR [edi]
	test	esi, esi
	je	SHORT $L15652
	push	0
	lea	ecx, DWORD PTR __Lock$15657[esp+20]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L15658
	cmp	eax, -1
	jae	SHORT $L15658
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L15658:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$15657[esp+16]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L15652
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L15652:
	push	edi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
	pop	esi
$L15618:

; 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 $L15696
	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 $L15696
	movzx	eax, BYTE PTR [edx]

; 109  : 		}

	ret	0
$L15696:

; 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 $L15721
	or	eax, eax
	pop	esi

; 289  : 		}

	ret	0
$L15721:

; 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	$L15774
	push	ebp
	mov	ebp, DWORD PTR __Ptr$[esp+12]
	push	esi
	npad	3
$L12310:

; 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 $L12313
	mov	ecx, DWORD PTR [ebx+48]
	mov	eax, DWORD PTR [ecx]
	test	eax, eax
	jle	SHORT $L12313

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

	cmp	edi, eax
	jge	SHORT $L12314

; 301  : 					_Size = _Count;

	mov	eax, edi
$L12314:

; 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 $L12319
$L12313:
	mov	eax, DWORD PTR [ebx]
	mov	ecx, ebx
	call	DWORD PTR [eax+20]
	cmp	eax, -1
	je	SHORT $L15775

; 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
$L12319:

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

	test	edi, edi
	jg	SHORT $L12310
$L15775:

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

	mov	eax, DWORD PTR __Copied$[esp+20]
	pop	esi
	pop	ebp
$L15774:
	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	$L15816
	push	ebp
	mov	ebp, DWORD PTR __Ptr$[esp+12]
	push	edi
	npad	3
$L12325:

; 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 $L12328
	mov	ecx, DWORD PTR [ebx+52]
	mov	eax, DWORD PTR [ecx]
	test	eax, eax
	jle	SHORT $L12328

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

	cmp	esi, eax
	jge	SHORT $L12329

; 329  : 					_Size = _Count;

	mov	eax, esi
$L12329:

; 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 $L12335
$L12328:

; 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 $L15817

; 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
$L12335:

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

	test	esi, esi
	jg	SHORT $L12325
$L15817:

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

	mov	eax, DWORD PTR __Copied$[esp+20]
	pop	edi
	pop	ebp
$L15816:
	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	?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ ; std::basic_ifstream<char,std::char_traits<char> >::is_open
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
;	COMDAT ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ
_TEXT	SEGMENT
?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ PROC NEAR ; std::basic_ifstream<char,std::char_traits<char> >::is_open, COMDAT
; _this$ = ecx

; 533  : 		return (_Filebuffer.is_open());

	mov	edx, DWORD PTR [ecx+96]
	xor	eax, eax
	test	edx, edx
	setne	al

; 534  : 		}

	ret	0
?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ ENDP ; std::basic_ifstream<char,std::char_traits<char> >::is_open
; 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 $L15855
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15855:
	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 $L15859
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L15859:
	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'
_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	??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 $L15880

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

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

; 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 $L15884
	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 $L15884
	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
$L15884:

; 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	??Diterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::iterator::operator*
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ??Diterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ
_TEXT	SEGMENT
??Diterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::iterator::operator*, COMDAT
; _this$ = ecx

; 232  : 			return ((reference)**(const_iterator *)this);

	mov	eax, DWORD PTR [ecx]

; 233  : 			}

	ret	0
??Diterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEAADXZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::iterator::operator*
_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
;	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 $L15920
	mov	ecx, DWORD PTR [ecx+4]
	mov	BYTE PTR [ecx+eax], 0

; 1476 : 		}

	ret	4

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

$L15920:
	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	?_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	?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
PUBLIC	?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf<char,std::char_traits<char> >::_Init
;	COMDAT ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA
_BSS	SEGMENT
?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA DD 01H DUP (?) ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
_BSS	ENDS
;	COMDAT ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z
_TEXT	SEGMENT
__File$ = 8						; size = 4
__Which$ = 12						; size = 4
?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::_Init, COMDAT
; _this$ = ecx

; 392  : 		static typename _Traits::state_type _Stinit;	// initial state
; 393  : 		_Closef = _Which == _Openfl;

	cmp	DWORD PTR __Which$[esp-4], 1
	push	esi
	mov	esi, ecx
	sete	al
	mov	BYTE PTR [esi+84], al

; 394  : 		_Wrotesome = false;

	mov	BYTE PTR [esi+76], 0

; 395  : 
; 396  : 		_Mysb::_Init();	// initialize stream buffer base object

	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init

; 397  : 
; 398  :  #ifndef _IORCNT
; 399  :   #define _IORCNT	_IOCNT	/* read and write counts are the same */
; 400  :   #define _IOWCNT _IOCNT
; 401  :  #endif /* _IORCNT */
; 402  : 
; 403  : 		if (_File != 0 && sizeof (_Elem) == 1)

	mov	eax, DWORD PTR __File$[esp]
	test	eax, eax
	je	SHORT $L15938

; 404  : 			{	// point inside C stream with [first, first + count) buffer
; 405  : 			_Elem **_Pb = (_Elem **)&_File->_IOBASE;

	lea	ecx, DWORD PTR [eax+8]

; 406  : 			_Elem **_Pn = (_Elem **)&_File->_IOPTR;
; 407  : 			int *_Nr = (int *)&_File->_IORCNT;
; 408  : 			int *_Nw = (int *)&_File->_IOWCNT;
; 409  : 			_Mysb::_Init(_Pb, _Pn, _Nr, _Pb, _Pn, _Nw);

	mov	DWORD PTR [esi+16], ecx
	mov	DWORD PTR [esi+20], ecx
	lea	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+32], eax
	mov	DWORD PTR [esi+36], eax
	mov	DWORD PTR [esi+48], ecx
	mov	DWORD PTR [esi+52], ecx
$L15938:

; 410  : 			}
; 411  : 		_Myfile = _File;

	mov	DWORD PTR [esi+88], eax

; 412  : 		_State = _Stinit;

	mov	ecx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+80], ecx

; 413  : 		_State0 = _Stinit;

	mov	edx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+64], edx

; 414  : 		_Pcvt = 0;	// pointer to codecvt facet

	mov	DWORD PTR [esi+60], 0
	pop	esi

; 415  : 		}

	ret	8
?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::_Init
_TEXT	ENDS
PUBLIC	??0iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PAD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::iterator::iterator
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ??0iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PAD@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
??0iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PAD@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::iterator::iterator, COMDAT
; _this$ = ecx

; 227  : 			{	// construct with pointer _Ptr

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

; 228  : 			}

	ret	4
??0iterator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PAD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::iterator::iterator
_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
;	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	?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	??$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	?id@?$ctype@D@std@@2V0locale@2@A:DWORD		; std::ctype<char>::id
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	__CxxThrowException@8:NEAR
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
;	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
$T15989	DD	0ffffffffH
	DD	FLAT:$L15971
$T15986	DD	019930520H
	DD	01H
	DD	FLAT:$T15989
	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$15982 = -32					; size = 4
__Lock$15976 = -32					; size = 4
__Lock$ = -28						; size = 4
$T15968 = -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 $L15975
	push	0
	lea	ecx, DWORD PTR __Lock$15976[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 $L15977
	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
$L15977:
	lea	ecx, DWORD PTR __Lock$15976[esp+44]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$L15975:

; 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 $L13867

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

	test	edi, edi
	je	SHORT $L13853

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

	mov	esi, edi

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

	jmp	SHORT $L13867
$L13853:
	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 $L13856

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

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

; 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$15982[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 $L15983
	inc	eax
	mov	DWORD PTR [esi+4], eax
$L15983:
	lea	ecx, DWORD PTR __Lock$15982[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
$L13867:

; 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
$L15988:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L15971:
	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:$T15986
	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	??_7NHP_Construction_AI@@6B@			; NHP_Construction_AI::`vftable'
PUBLIC	??_GNHP_Construction_AI@@UAEPAXI@Z		; NHP_Construction_AI::`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	?Destroyed@ScriptImpClass@@UAEXPAE@Z:NEAR	; ScriptImpClass::Destroyed
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	??_ENHP_Construction_AI@@UAEPAXI@Z:NEAR		; NHP_Construction_AI::`vector deleting destructor'
;	COMDAT xdata$x
; File c:\documents and settings\owner\desktop\ssctf 1.3\scripts.h
xdata$x	SEGMENT
$T16012	DD	0ffffffffH
	DD	FLAT:$L16001
$T16010	DD	019930520H
	DD	01H
	DD	FLAT:$T16012
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7NHP_Construction_AI@@6B@
CONST	SEGMENT
??_7NHP_Construction_AI@@6B@ DD FLAT:??_ENHP_Construction_AI@@UAEPAXI@Z ; NHP_Construction_AI::`vftable'
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Construction_AI@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@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@NHP_Construction_AI@@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@NHP_Construction_AI@@EAEXXZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T15998 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ PROC NEAR ; ScriptRegistrant<NHP_Construction_AI>::Create, COMDAT
; _this$ = ecx

; 480  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@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	40					; 00000028H
	mov	edi, ecx
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T15998[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L15999
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET FLAT:??_7NHP_Construction_AI@@6B@
	jmp	SHORT $L16000
$L15999:
	xor	esi, esi
$L16000:

; 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
$L16001:
	mov	eax, DWORD PTR $T15998[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET FLAT:$T16010
	jmp	___CxxFrameHandler
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Construction_AI@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Construction_AI>::Create
PUBLIC	??_7NHP_Smart_Targetting@@6B@			; NHP_Smart_Targetting::`vftable'
PUBLIC	??_GNHP_Smart_Targetting@@UAEPAXI@Z		; NHP_Smart_Targetting::`scalar deleting destructor'
EXTRN	?Timer_Expired@ScriptImpClass@@UAEXPAEH@Z:NEAR	; ScriptImpClass::Timer_Expired
EXTRN	??_ENHP_Smart_Targetting@@UAEPAXI@Z:NEAR	; NHP_Smart_Targetting::`vector deleting destructor'
EXTRN	?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ:NEAR ; ScriptImpClass::Register_Auto_Save_Variables
;	COMDAT xdata$x
xdata$x	SEGMENT
$T16033	DD	0ffffffffH
	DD	FLAT:$L16022
$T16031	DD	019930520H
	DD	01H
	DD	FLAT:$T16033
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7NHP_Smart_Targetting@@6B@
CONST	SEGMENT
??_7NHP_Smart_Targetting@@6B@ DD FLAT:??_ENHP_Smart_Targetting@@UAEPAXI@Z ; NHP_Smart_Targetting::`vftable'
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Smart_Targetting@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@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@NHP_Smart_Targetting@@EAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@ScriptImpClass@@UAEXPAEH@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@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T16019 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ PROC NEAR ; ScriptRegistrant<NHP_Smart_Targetting>::Create, COMDAT
; _this$ = ecx

; 480  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@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	28					; 0000001cH
	mov	edi, ecx
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T16019[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L16020
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET FLAT:??_7NHP_Smart_Targetting@@6B@
	jmp	SHORT $L16021
$L16020:
	xor	esi, esi
$L16021:

; 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
$L16022:
	mov	eax, DWORD PTR $T16019[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET FLAT:$T16031
	jmp	___CxxFrameHandler
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Smart_Targetting>::Create
PUBLIC	??_7NHP_Guard_Bot@@6B@				; NHP_Guard_Bot::`vftable'
PUBLIC	??_GNHP_Guard_Bot@@UAEPAXI@Z			; NHP_Guard_Bot::`scalar deleting destructor'
EXTRN	??_ENHP_Guard_Bot@@UAEPAXI@Z:NEAR		; NHP_Guard_Bot::`vector deleting destructor'
;	COMDAT xdata$x
xdata$x	SEGMENT
$T16054	DD	0ffffffffH
	DD	FLAT:$L16043
$T16052	DD	019930520H
	DD	01H
	DD	FLAT:$T16054
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7NHP_Guard_Bot@@6B@
CONST	SEGMENT
??_7NHP_Guard_Bot@@6B@ DD FLAT:??_ENHP_Guard_Bot@@UAEPAXI@Z ; NHP_Guard_Bot::`vftable'
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Guard_Bot@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@NHP_Guard_Bot@@EAEXPAE0M@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@ScriptImpClass@@UAEXPAEH@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@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T16040 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ PROC NEAR ; ScriptRegistrant<NHP_Guard_Bot>::Create, COMDAT
; _this$ = ecx

; 480  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@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	28					; 0000001cH
	mov	edi, ecx
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T16040[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L16041
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET FLAT:??_7NHP_Guard_Bot@@6B@
	jmp	SHORT $L16042
$L16041:
	xor	esi, esi
$L16042:

; 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
$L16043:
	mov	eax, DWORD PTR $T16040[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET FLAT:$T16052
	jmp	___CxxFrameHandler
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Guard_Bot>::Create
PUBLIC	?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z	; NHP_Sensor_Array_Zone::Entered
PUBLIC	?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z	; NHP_Sensor_Array_Zone::Exited
PUBLIC	??_7NHP_Sensor_Array_Zone@@6B@			; NHP_Sensor_Array_Zone::`vftable'
PUBLIC	??_GNHP_Sensor_Array_Zone@@UAEPAXI@Z		; NHP_Sensor_Array_Zone::`scalar deleting destructor'
EXTRN	??_ENHP_Sensor_Array_Zone@@UAEPAXI@Z:NEAR	; NHP_Sensor_Array_Zone::`vector deleting destructor'
;	COMDAT xdata$x
xdata$x	SEGMENT
$T16075	DD	0ffffffffH
	DD	FLAT:$L16064
$T16073	DD	019930520H
	DD	01H
	DD	FLAT:$T16075
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7NHP_Sensor_Array_Zone@@6B@
CONST	SEGMENT
??_7NHP_Sensor_Array_Zone@@6B@ DD FLAT:??_ENHP_Sensor_Array_Zone@@UAEPAXI@Z ; NHP_Sensor_Array_Zone::`vftable'
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Sensor_Array_Zone@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@NHP_Sensor_Array_Zone@@EAEXPAEHH0@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@ScriptImpClass@@UAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	DD	FLAT:?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@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@NHP_Sensor_Array_Zone@@EAEXXZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T16061 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ PROC NEAR ; ScriptRegistrant<NHP_Sensor_Array_Zone>::Create, COMDAT
; _this$ = ecx

; 480  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@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	40					; 00000028H
	mov	edi, ecx
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T16061[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L16062
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET FLAT:??_7NHP_Sensor_Array_Zone@@6B@
	jmp	SHORT $L16063
$L16062:
	xor	esi, esi
$L16063:

; 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
$L16064:
	mov	eax, DWORD PTR $T16061[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET FLAT:$T16073
	jmp	___CxxFrameHandler
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Sensor_Array_Zone>::Create
PUBLIC	??_7NHP_Sensorable_Object@@6B@			; NHP_Sensorable_Object::`vftable'
PUBLIC	??_GNHP_Sensorable_Object@@UAEPAXI@Z		; NHP_Sensorable_Object::`scalar deleting destructor'
EXTRN	??_ENHP_Sensorable_Object@@UAEPAXI@Z:NEAR	; NHP_Sensorable_Object::`vector deleting destructor'
;	COMDAT xdata$x
xdata$x	SEGMENT
$T16096	DD	0ffffffffH
	DD	FLAT:$L16085
$T16094	DD	019930520H
	DD	01H
	DD	FLAT:$T16096
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7NHP_Sensorable_Object@@6B@
CONST	SEGMENT
??_7NHP_Sensorable_Object@@6B@ DD FLAT:??_ENHP_Sensorable_Object@@UAEPAXI@Z ; NHP_Sensorable_Object::`vftable'
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@NHP_Sensorable_Object@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@NHP_Sensorable_Object@@EAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@NHP_Sensorable_Object@@EAEXPAEHH0@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@ScriptImpClass@@UAEXPAEH@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@NHP_Sensorable_Object@@EAEXXZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T16082 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ PROC NEAR ; ScriptRegistrant<NHP_Sensorable_Object>::Create, COMDAT
; _this$ = ecx

; 480  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@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	36					; 00000024H
	mov	edi, ecx
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T16082[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L16083
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET FLAT:??_7NHP_Sensorable_Object@@6B@
	jmp	SHORT $L16084
$L16083:
	xor	esi, esi
$L16084:

; 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
$L16085:
	mov	eax, DWORD PTR $T16082[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET FLAT:$T16094
	jmp	___CxxFrameHandler
text$x	ENDS
?Create@?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<NHP_Sensorable_Object>::Create
PUBLIC	??1NHP_Construction_AI@@UAE@XZ			; NHP_Construction_AI::~NHP_Construction_AI
; Function compile flags: /Ogty
;	COMDAT ??_GNHP_Construction_AI@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Construction_AI@@UAEPAXI@Z PROC NEAR		; NHP_Construction_AI::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1NHP_Construction_AI@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L16102
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L16102:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Construction_AI@@UAEPAXI@Z ENDP			; NHP_Construction_AI::`scalar deleting destructor'
_TEXT	ENDS
EXTRN	??1ScriptImpClass@@UAE@XZ:NEAR			; ScriptImpClass::~ScriptImpClass
; Function compile flags: /Ogty
;	COMDAT ??1NHP_Construction_AI@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Construction_AI@@UAE@XZ PROC NEAR		; NHP_Construction_AI::~NHP_Construction_AI, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Construction_AI@@UAE@XZ ENDP			; NHP_Construction_AI::~NHP_Construction_AI
_TEXT	ENDS
PUBLIC	??1NHP_Smart_Targetting@@UAE@XZ			; NHP_Smart_Targetting::~NHP_Smart_Targetting
; Function compile flags: /Ogty
;	COMDAT ??_GNHP_Smart_Targetting@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Smart_Targetting@@UAEPAXI@Z PROC NEAR		; NHP_Smart_Targetting::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1NHP_Smart_Targetting@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L16110
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L16110:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Smart_Targetting@@UAEPAXI@Z ENDP		; NHP_Smart_Targetting::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??1NHP_Smart_Targetting@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Smart_Targetting@@UAE@XZ PROC NEAR		; NHP_Smart_Targetting::~NHP_Smart_Targetting, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Smart_Targetting@@UAE@XZ ENDP			; NHP_Smart_Targetting::~NHP_Smart_Targetting
_TEXT	ENDS
PUBLIC	??1NHP_Guard_Bot@@UAE@XZ			; NHP_Guard_Bot::~NHP_Guard_Bot
; Function compile flags: /Ogty
;	COMDAT ??_GNHP_Guard_Bot@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Guard_Bot@@UAEPAXI@Z PROC NEAR			; NHP_Guard_Bot::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1NHP_Guard_Bot@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L16118
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L16118:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Guard_Bot@@UAEPAXI@Z ENDP			; NHP_Guard_Bot::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??1NHP_Guard_Bot@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Guard_Bot@@UAE@XZ PROC NEAR			; NHP_Guard_Bot::~NHP_Guard_Bot, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Guard_Bot@@UAE@XZ ENDP				; NHP_Guard_Bot::~NHP_Guard_Bot
_TEXT	ENDS
PUBLIC	??1NHP_Sensor_Array_Zone@@UAE@XZ		; NHP_Sensor_Array_Zone::~NHP_Sensor_Array_Zone
; Function compile flags: /Ogty
;	COMDAT ??_GNHP_Sensor_Array_Zone@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Sensor_Array_Zone@@UAEPAXI@Z PROC NEAR		; NHP_Sensor_Array_Zone::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1NHP_Sensor_Array_Zone@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L16126
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L16126:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Sensor_Array_Zone@@UAEPAXI@Z ENDP		; NHP_Sensor_Array_Zone::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??1NHP_Sensor_Array_Zone@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Sensor_Array_Zone@@UAE@XZ PROC NEAR		; NHP_Sensor_Array_Zone::~NHP_Sensor_Array_Zone, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Sensor_Array_Zone@@UAE@XZ ENDP			; NHP_Sensor_Array_Zone::~NHP_Sensor_Array_Zone
_TEXT	ENDS
PUBLIC	??1NHP_Sensorable_Object@@UAE@XZ		; NHP_Sensorable_Object::~NHP_Sensorable_Object
; Function compile flags: /Ogty
;	COMDAT ??_GNHP_Sensorable_Object@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNHP_Sensorable_Object@@UAEPAXI@Z PROC NEAR		; NHP_Sensorable_Object::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1NHP_Sensorable_Object@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L16134
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L16134:
	mov	eax, esi
	pop	esi
	ret	4
??_GNHP_Sensorable_Object@@UAEPAXI@Z ENDP		; NHP_Sensorable_Object::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??1NHP_Sensorable_Object@@UAE@XZ
_TEXT	SEGMENT
??1NHP_Sensorable_Object@@UAE@XZ PROC NEAR		; NHP_Sensorable_Object::~NHP_Sensorable_Object, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1NHP_Sensorable_Object@@UAE@XZ ENDP			; NHP_Sensorable_Object::~NHP_Sensorable_Object
_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
$T16164	DD	0ffffffffH
	DD	FLAT:$L16143
$T16162	DD	019930520H
	DD	01H
	DD	FLAT:$T16164
	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
$T16142 = -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 $T16142[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 $T16142[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
$L16143:
	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:$T16162
	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 $L16170
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L16170:
	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	??0?$codecvt@DDH@std@@QAE@I@Z			; std::codecvt<char,char,int>::codecvt<char,char,int>
PUBLIC	?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z ; std::codecvt<char,char,int>::do_in
PUBLIC	?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z ; std::codecvt<char,char,int>::do_out
PUBLIC	?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z ; std::codecvt<char,char,int>::do_unshift
PUBLIC	?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z	; std::codecvt<char,char,int>::do_length
PUBLIC	??_7?$codecvt@DDH@std@@6B@			; std::codecvt<char,char,int>::`vftable'
PUBLIC	??_G?$codecvt@DDH@std@@MAEPAXI@Z		; std::codecvt<char,char,int>::`scalar deleting destructor'
EXTRN	??_E?$codecvt@DDH@std@@MAEPAXI@Z:NEAR		; std::codecvt<char,char,int>::`vector deleting destructor'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	SEGMENT
$T16198	DD	0ffffffffH
	DD	FLAT:$L16182
$T16196	DD	019930520H
	DD	01H
	DD	FLAT:$T16198
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7?$codecvt@DDH@std@@6B@
CONST	SEGMENT
??_7?$codecvt@DDH@std@@6B@ DD FLAT:??_E?$codecvt@DDH@std@@MAEPAXI@Z ; std::codecvt<char,char,int>::`vftable'
	DD	FLAT:?do_always_noconv@codecvt_base@std@@MBE_NXZ
	DD	FLAT:?do_max_length@codecvt_base@std@@MBEHXZ
	DD	FLAT:?do_encoding@codecvt_base@std@@MBEHXZ
	DD	FLAT:?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
	DD	FLAT:?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
	DD	FLAT:?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z
	DD	FLAT:?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$codecvt@DDH@std@@QAE@I@Z
_TEXT	SEGMENT
_this$ = -132						; size = 4
$T16181 = -128						; size = 116
__$EHRec$ = -12						; size = 12
__Refs$ = 8						; size = 4
??0?$codecvt@DDH@std@@QAE@I@Z PROC NEAR			; std::codecvt<char,char,int>::codecvt<char,char,int>, COMDAT
; _this$ = ecx

; 586  : 		{	// construct from current locale

	push	-1
	push	__ehhandler$??0?$codecvt@DDH@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

; 587  : 		_Init(_Locinfo());

	push	OFFSET FLAT:??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR $T16181[esp+140]
	mov	DWORD PTR __$EHRec$[esp+148], 0
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$codecvt@DDH@std@@6B@
	call	??0_Locinfo@std@@QAE@PBD@Z		; std::_Locinfo::_Locinfo
	lea	ecx, DWORD PTR $T16181[esp+136]
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo

; 588  : 		}

	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
$L16182:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1codecvt_base@std@@UAE@XZ		; std::codecvt_base::~codecvt_base
__ehhandler$??0?$codecvt@DDH@std@@QAE@I@Z:
	mov	eax, OFFSET FLAT:$T16196
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$codecvt@DDH@std@@QAE@I@Z ENDP			; std::codecvt<char,char,int>::codecvt<char,char,int>
; Function compile flags: /Ogty
;	COMDAT ?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
__First1$ = 12						; size = 4
___formal$ = 16						; size = 4
__Mid1$ = 20						; size = 4
__First2$ = 24						; size = 4
___formal$ = 28						; size = 4
__Mid2$ = 32						; size = 4
?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z PROC NEAR ; std::codecvt<char,char,int>::do_in, COMDAT
; _this$ = ecx

; 617  : 		_Mid1 = _First1, _Mid2 = _First2;

	mov	eax, DWORD PTR __Mid1$[esp-4]
	mov	ecx, DWORD PTR __First1$[esp-4]
	mov	edx, DWORD PTR __Mid2$[esp-4]
	mov	DWORD PTR [eax], ecx
	mov	eax, DWORD PTR __First2$[esp-4]
	mov	DWORD PTR [edx], eax

; 618  : 		return (noconv);	// convert nothing

	mov	eax, 3

; 619  : 		}

	ret	28					; 0000001cH
?do_in@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z ENDP ; std::codecvt<char,char,int>::do_in
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
__First1$ = 12						; size = 4
___formal$ = 16						; size = 4
__Mid1$ = 20						; size = 4
__First2$ = 24						; size = 4
___formal$ = 28						; size = 4
__Mid2$ = 32						; size = 4
?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z PROC NEAR ; std::codecvt<char,char,int>::do_out, COMDAT
; _this$ = ecx

; 625  : 		_Mid1 = _First1, _Mid2 = _First2;

	mov	eax, DWORD PTR __Mid1$[esp-4]
	mov	ecx, DWORD PTR __First1$[esp-4]
	mov	edx, DWORD PTR __Mid2$[esp-4]
	mov	DWORD PTR [eax], ecx
	mov	eax, DWORD PTR __First2$[esp-4]
	mov	DWORD PTR [edx], eax

; 626  : 		return (noconv);	// convert nothing

	mov	eax, 3

; 627  : 		}

	ret	28					; 0000001cH
?do_out@?$codecvt@DDH@std@@MBEHAAHPBD1AAPBDPAD3AAPAD@Z ENDP ; std::codecvt<char,char,int>::do_out
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
___formal$ = 20						; size = 4
?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z PROC NEAR ; std::codecvt<char,char,int>::do_unshift, COMDAT
; _this$ = ecx

; 632  : 		return (noconv);	// convert nothing

	mov	eax, 3

; 633  : 		}

	ret	16					; 00000010H
?do_unshift@?$codecvt@DDH@std@@MBEHAAHPAD1AAPAD@Z ENDP	; std::codecvt<char,char,int>::do_unshift
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
__First1$ = 12						; size = 4
__Last1$ = 16						; size = 4
__Count$ = 20						; size = 4
?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z PROC NEAR	; std::codecvt<char,char,int>::do_length, COMDAT
; _this$ = ecx

; 638  : 		return ((int)(_Count < (size_t)(_Last1 - _First1)
; 639  : 			? _Count : _Last1 - _First1));	// assume 1-to-1 conversion

	mov	ecx, DWORD PTR __First1$[esp-4]
	mov	eax, DWORD PTR __Last1$[esp-4]
	sub	eax, ecx
	mov	ecx, DWORD PTR __Count$[esp-4]
	cmp	ecx, eax
	jae	SHORT $L16214
	mov	eax, ecx
$L16214:

; 640  : 		}

	ret	16					; 00000010H
?do_length@?$codecvt@DDH@std@@MBEHABHPBD1I@Z ENDP	; std::codecvt<char,char,int>::do_length
_TEXT	ENDS
PUBLIC	??1?$codecvt@DDH@std@@MAE@XZ			; std::codecvt<char,char,int>::~codecvt<char,char,int>
; Function compile flags: /Ogty
;	COMDAT ??_G?$codecvt@DDH@std@@MAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$codecvt@DDH@std@@MAEPAXI@Z PROC NEAR		; std::codecvt<char,char,int>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$codecvt@DDH@std@@MAE@XZ		; std::codecvt<char,char,int>::~codecvt<char,char,int>
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L16218
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L16218:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$codecvt@DDH@std@@MAEPAXI@Z ENDP			; std::codecvt<char,char,int>::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??1?$codecvt@DDH@std@@MAE@XZ
_TEXT	SEGMENT
??1?$codecvt@DDH@std@@MAE@XZ PROC NEAR			; std::codecvt<char,char,int>::~codecvt<char,char,int>, COMDAT
; _this$ = ecx

; 606  : 		}

	mov	DWORD PTR [ecx], OFFSET FLAT:??_7facet@locale@std@@6B@
	ret	0
??1?$codecvt@DDH@std@@MAE@XZ ENDP			; std::codecvt<char,char,int>::~codecvt<char,char,int>
_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 $L16252
	lea	ecx, DWORD PTR [eax+4]
	jmp	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L16252:
	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 $L11975
	mov	eax, DWORD PTR [eax+40]
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	call	DWORD PTR [edx+44]
	cmp	eax, -1
	jne	SHORT $L11975

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

	mov	edi, 4
$L11975:

; 515  : 		_Myios::setstate(_State);

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	add	ecx, esi
	test	edi, edi
	je	SHORT $L16298
	mov	eax, DWORD PTR [ecx+8]
	mov	edx, DWORD PTR [ecx+40]
	or	eax, edi
	test	edx, edx
	jne	SHORT $L16296
	or	eax, 4
$L16296:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L16298:
	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 $L16329
	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 $L16329
	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 $L16330
$L16329:
	mov	eax, DWORD PTR [esi]
	mov	ecx, esi
	call	DWORD PTR [eax+20]
$L16330:
	cmp	eax, -1
	jne	SHORT $L16304
	or	eax, eax
	pop	esi

; 120  : 		}

	ret	0
$L16304:

; 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 $L16372
	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 $L16372
	movzx	eax, BYTE PTR [eax]
	pop	esi

; 120  : 		}

	ret	0

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

$L16372:
	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	?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	COMDAT ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin, COMDAT
; _this$ = ecx

; 1025 : 		return (_STRING_ITERATOR(_Myptr()));

	cmp	DWORD PTR [ecx+24], 16			; 00000010H
	mov	eax, DWORD PTR ___$ReturnUdt$[esp-4]
	jb	SHORT $L16393
	mov	ecx, DWORD PTR [ecx+4]
	mov	DWORD PTR [eax], ecx

; 1026 : 		}

	ret	4

; 1025 : 		return (_STRING_ITERATOR(_Myptr()));

$L16393:
	add	ecx, 4
	mov	DWORD PTR [eax], ecx

; 1026 : 		}

	ret	4
?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AViterator@12@XZ ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::begin
_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
;	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 $L16414

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

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

; 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 $L16411
	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
$L16411:

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

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

; 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
$T16638	DD	0ffffffffH
	DD	FLAT:$L16444
	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
$T16640	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L16443
$T16639	DD	01H
	DD	01H
	DD	02H
	DD	01H
	DD	FLAT:$T16640
$T16626	DD	019930520H
	DD	03H
	DD	FLAT:$T16638
	DD	01H
	DD	FLAT:$T16639
	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$16488 = -24					; size = 4
_this$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
$T16440 = 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	$L12997

; 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 $L12984

; 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
$L12984:

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

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

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

	lea	ecx, DWORD PTR $T16440[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 $T16440[ebp]
	add	esp, 4
	test	edi, edi
	mov	ebx, eax
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	je	SHORT $L16483
	push	0
	lea	ecx, DWORD PTR __Lock$16488[ebp]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $L16489
	cmp	eax, -1
	jae	SHORT $L16489
	dec	eax
	mov	DWORD PTR [edi+4], eax
$L16489:
	mov	ecx, DWORD PTR [edi+4]
	xor	edx, edx
	test	ecx, ecx
	setne	dl
	lea	ecx, DWORD PTR __Lock$16488[ebp]
	dec	edx
	and	edi, edx
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	edi, edi
	je	SHORT $L16483
	mov	eax, DWORD PTR [edi]
	push	1
	mov	ecx, edi
	call	DWORD PTR [eax]
$L16483:

; 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 $L16518
	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 $L16518
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $L16628
$L16518:
	mov	eax, DWORD PTR [ecx]
	call	DWORD PTR [eax+16]
	npad	3
$L16628:

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

	cmp	eax, -1
	jne	SHORT $L12994

; 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 $L16559
	or	eax, 4
$L16559:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear

; 106  : 						break;

	jmp	SHORT $L12988
$L12994:

; 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 $L12988
	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 $L16628
$L16443:

; 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 $L16588
	or	eax, 4
$L16588:
	push	1
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
	mov	eax, $L16630
	ret	0
$L16630:
	mov	esi, DWORD PTR _this$[ebp]
$L12988:

; 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 $L12997

; 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
$L12997:

; 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 $L16620
	or	eax, 4
$L16620:
	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
$L16444:
	lea	ecx, DWORD PTR $T16440[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:$T16626
	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_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 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
_TEXT	SEGMENT
??0?$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

; 311  : 		{	// construct empty string

	mov	eax, ecx

; 312  : 		_Tidy();

	xor	ecx, ecx
	mov	DWORD PTR [eax+24], 15			; 0000000fH
	mov	DWORD PTR [eax+20], ecx
	mov	BYTE PTR [eax+4], cl

; 313  : 		}

	ret	0
??0?$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	??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
$T16718	DD	0ffffffffH
	DD	FLAT:$L16714
$T16716	DD	019930520H
	DD	01H
	DD	FLAT:$T16718
	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 $L16712
	mov	ecx, eax
	call	??0locale@std@@QAE@XZ			; std::locale::locale
	jmp	SHORT $L16713
$L16712:
	xor	eax, eax
$L16713:

; 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
$L16714:
	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:$T16716
	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	?_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
$T16924	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	01H
	DD	00H
	DD	01H
	DD	00H
$T16926	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L16727
$T16927	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L16725
$T16925	DD	02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:$T16926
	DD	00H
	DD	00H
	DD	03H
	DD	01H
	DD	FLAT:$T16927
$T16919	DD	019930520H
	DD	04H
	DD	FLAT:$T16924
	DD	02H
	DD	FLAT:$T16925
	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 $L13713

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

	mov	ebx, eax

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

	jmp	SHORT $L13715
$L13713:

; 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 $L13715
	mov	eax, -2					; fffffffeH
	sub	eax, ecx
	cmp	edi, eax
	ja	SHORT $L13715

; 1450 : 			_Newres = _Myres + _Myres / 2;	// grow exponentially if possible

	lea	ebx, DWORD PTR [ecx+edi]
$L13715:

; 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 $L13717
$L16725:

; 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, $L16920
	ret	0
$L16920:
	mov	ebx, DWORD PTR __Newres$[ebp]
	mov	esi, DWORD PTR _this$[ebp]
	mov	edx, DWORD PTR __Ptr$[ebp]
$L13717:

; 1464 : 
; 1465 : 		if (0 < _Oldlen)

	mov	ecx, DWORD PTR __Oldlen$[ebp]
	test	ecx, ecx
	jbe	SHORT $L16844

; 1466 : 			_Traits::copy(_Ptr, _Myptr(), _Oldlen);	// copy existing elements

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L16841
	mov	esi, DWORD PTR [esi+4]
	jmp	SHORT $L16842
$L16841:
	add	esi, 4
$L16842:
	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]
$L16844:

; 1467 : 		_Tidy(true);

	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L16880
	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
$L16880:

; 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 $L16915
	mov	eax, edx
$L16915:

; 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
$L16727:

; 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 $L16819
	mov	edx, DWORD PTR [esi+4]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L16819:

; 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
$L16928:
$L16923:
	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:$T16919
	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
$T16967	DD	0ffffffffH
	DD	FLAT:$L16934
$T16965	DD	019930520H
	DD	01H
	DD	FLAT:$T16967
	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
$T16933 = -20						; size = 4
__Lock$16957 = -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 $T16933[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 $T16933[esp+32]
	add	esp, 4
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+36], -1
	je	SHORT $L16954
	push	0
	lea	ecx, DWORD PTR __Lock$16957[esp+32]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L16958
	cmp	eax, -1
	jae	SHORT $L16958
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L16958:
	mov	edx, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	edx, edx
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$16957[esp+28]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L16954
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L16954:

; 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
$L16934:
	lea	ecx, DWORD PTR $T16933[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:$T16965
	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
$T16983	DD	0ffffffffH
	DD	FLAT:$L16977
$T16979	DD	019930520H
	DD	01H
	DD	FLAT:$T16983
	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
$T16974 = 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 $L16981
	cmp	DWORD PTR [esi], 0
	jne	SHORT $L16981

; 188  : 			*_Ppf = _NEW_CRT num_get<_Elem, _InIt>;

	push	16					; 00000010H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4
	mov	DWORD PTR $T16974[esp+12], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $L16975
	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 $L16976
$L16975:
	xor	eax, eax
$L16976:
	mov	DWORD PTR [esi], eax
$L16981:

; 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
$L16977:
	mov	eax, DWORD PTR $T16974[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:$T16979
	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	?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z ; std::codecvt<char,char,int>::_Getcat
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	SEGMENT
$T16999	DD	0ffffffffH
	DD	FLAT:$L16993
$T16995	DD	019930520H
	DD	01H
	DD	FLAT:$T16999
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
xdata$x	ENDS
;	COMDAT ?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
$T16990 = 8						; size = 4
__Ppf$ = 8						; size = 4
?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z PROC NEAR ; std::codecvt<char,char,int>::_Getcat, COMDAT

; 597  : 		{	// return locale category mask and construct standard facet

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

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

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

; 599  : 			*_Ppf = _NEW_CRT codecvt<_Elem, _Byte, _Statype>;

	push	8
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4
	mov	DWORD PTR $T16990[esp+12], eax
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+24], 0
	je	SHORT $L16991
	push	0
	mov	ecx, eax
	call	??0?$codecvt@DDH@std@@QAE@I@Z		; std::codecvt<char,char,int>::codecvt<char,char,int>
	jmp	SHORT $L16992
$L16991:
	xor	eax, eax
$L16992:
	mov	DWORD PTR [esi], eax
$L16997:

; 600  : 		return (_X_CTYPE);
; 601  : 		}

	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
$L16993:
	mov	eax, DWORD PTR $T16990[ebp-4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET FLAT:$T16995
	jmp	___CxxFrameHandler
text$x	ENDS
?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z ENDP ; std::codecvt<char,char,int>::_Getcat
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 $L17038
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L17038:
	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
$T17083	DD	0ffffffffH
	DD	FLAT:$L17058
$T17081	DD	019930520H
	DD	01H
	DD	FLAT:$T17083
	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 $L17076
	lea	ecx, DWORD PTR [eax+4]
	call	?_Lock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Lock
$L17076:

; 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
$L17058:
	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:$T17081
	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
PUBLIC	??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor'
; Function compile flags: /Ogty
;	COMDAT ??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z PROC NEAR ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L17151
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L17151:
	xor	eax, eax
	mov	DWORD PTR [esi+20], eax
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	BYTE PTR [esi+4], al
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L17162
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L17162:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEPAXI@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z ; std::basic_filebuf<char,std::char_traits<char> >::basic_filebuf<char,std::char_traits<char> >
PUBLIC	?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::overflow
PUBLIC	?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::pbackfail
PUBLIC	?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_filebuf<char,std::char_traits<char> >::underflow
PUBLIC	?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_filebuf<char,std::char_traits<char> >::uflow
PUBLIC	?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::seekoff
PUBLIC	?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z ; std::basic_filebuf<char,std::char_traits<char> >::seekpos
PUBLIC	?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z ; std::basic_filebuf<char,std::char_traits<char> >::setbuf
PUBLIC	?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ; std::basic_filebuf<char,std::char_traits<char> >::sync
PUBLIC	?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ; std::basic_filebuf<char,std::char_traits<char> >::imbue
PUBLIC	??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_filebuf<char,std::char_traits<char> >::`vftable'
PUBLIC	??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_filebuf<char,std::char_traits<char> >::`scalar deleting destructor'
EXTRN	??_E?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:NEAR ; std::basic_filebuf<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
CONST	SEGMENT
??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_E?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_filebuf<char,std::char_traits<char> >::`vftable'
	DD	FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	FLAT:?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	DD	FLAT:?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?uflow@?$basic_filebuf@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_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
	DD	FLAT:?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z
	DD	FLAT:?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z
	DD	FLAT:?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
	DD	FLAT:?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
CONST	ENDS
;	COMDAT ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z
_TEXT	SEGMENT
__File$ = 8						; size = 4
??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::basic_filebuf<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 113  : 		{	// construct from pointer to C stream

	push	ebx
	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> >
	xor	ebx, ebx

; 114  : 		_Init(_File, _Newfl);

	mov	ecx, esi
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR [esi+72], ebx
	mov	BYTE PTR [esi+84], bl
	mov	BYTE PTR [esi+76], bl
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	mov	eax, DWORD PTR __File$[esp+4]
	cmp	eax, ebx
	je	SHORT $L17179
	lea	ecx, DWORD PTR [eax+8]
	mov	DWORD PTR [esi+16], ecx
	mov	DWORD PTR [esi+20], ecx
	lea	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [esi+32], eax
	mov	DWORD PTR [esi+36], eax
	mov	DWORD PTR [esi+48], ecx
	mov	DWORD PTR [esi+52], ecx
$L17179:
	mov	DWORD PTR [esi+88], eax
	mov	eax, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+80], eax
	mov	ecx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+60], ebx
	mov	DWORD PTR [esi+64], ecx

; 115  : 		}

	mov	eax, esi
	pop	esi
	pop	ebx
	ret	4
??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::basic_filebuf<char,std::char_traits<char> >
_TEXT	ENDS
EXTRN	_setvbuf:NEAR
; Function compile flags: /Ogty
;	COMDAT ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z
_TEXT	SEGMENT
__Buffer$ = 8						; size = 4
__Count$ = 12						; size = 4
?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::setbuf, COMDAT
; _this$ = ecx

; 372  : 		{	// offer _Buffer to C stream

	push	edi
	mov	edi, ecx

; 373  : 		return (_Myfile == 0 || setvbuf(_Myfile, (char *)_Buffer,
; 374  : 			_Buffer == 0 && _Count == 0 ? _IONBF : _IOFBF,
; 375  : 			_Count * sizeof (_Elem)) != 0 ? 0 : this);

	mov	ecx, DWORD PTR [edi+88]
	test	ecx, ecx
	je	SHORT $L17186
	mov	edx, DWORD PTR __Buffer$[esp]
	test	edx, edx
	push	esi
	mov	esi, DWORD PTR __Count$[esp+4]
	jne	SHORT $L17184
	test	esi, esi
	jne	SHORT $L17184
	mov	eax, 4
	jmp	SHORT $L17185
$L17184:
	xor	eax, eax
$L17185:
	push	esi
	push	eax
	push	edx
	push	ecx
	call	_setvbuf
	add	esp, 16					; 00000010H
	test	eax, eax
	pop	esi
	jne	SHORT $L17186
	mov	eax, edi
	pop	edi

; 376  : 		}

	ret	8
$L17186:

; 373  : 		return (_Myfile == 0 || setvbuf(_Myfile, (char *)_Buffer,
; 374  : 			_Buffer == 0 && _Count == 0 ? _IONBF : _IOFBF,
; 375  : 			_Count * sizeof (_Elem)) != 0 ? 0 : this);

	xor	eax, eax
	pop	edi

; 376  : 		}

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

; 379  : 		{	// synchronize C stream with external file

	push	esi
	mov	esi, ecx

; 380  : 		return (_Myfile == 0
; 381  : 			|| _Traits::eq_int_type(_Traits::eof(), overflow())
; 382  : 			|| 0 <= fflush(_Myfile) ? 0 : -1);

	mov	eax, DWORD PTR [esi+88]
	test	eax, eax
	je	SHORT $L17193
	mov	eax, DWORD PTR [esi]
	push	-1
	call	DWORD PTR [eax+4]
	cmp	eax, -1
	je	SHORT $L17193
	mov	ecx, DWORD PTR [esi+88]
	push	ecx
	call	_fflush
	add	esp, 4
	test	eax, eax
	jge	SHORT $L17193
	or	eax, -1
	pop	esi

; 383  : 		}

	ret	0
$L17193:

; 380  : 		return (_Myfile == 0
; 381  : 			|| _Traits::eq_int_type(_Traits::eof(), overflow())
; 382  : 			|| 0 <= fflush(_Myfile) ? 0 : -1);

	xor	eax, eax
	pop	esi

; 383  : 		}

	ret	0
?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::sync
_TEXT	ENDS
PUBLIC	?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Gndec
EXTRN	_ungetc:NEAR
; Function compile flags: /Ogty
;	COMDAT ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT
__Meta$ = 8						; size = 4
?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::pbackfail, COMDAT
; _this$ = ecx

; 223  : 		{	// put an element back to stream

	push	ebx

; 224  : 		if (_Mysb::gptr() != 0
; 225  : 			&& _Mysb::eback() < _Mysb::gptr()
; 226  : 			&& (_Traits::eq_int_type(_Traits::eof(), _Meta)
; 227  : 			|| _Traits::eq_int_type(_Traits::to_int_type(_Mysb::gptr()[-1]),
; 228  : 				_Meta)))

	mov	ebx, DWORD PTR __Meta$[esp]
	push	esi
	mov	esi, ecx
	mov	eax, DWORD PTR [esi+32]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	je	SHORT $L12717
	mov	ecx, DWORD PTR [esi+16]
	cmp	DWORD PTR [ecx], eax
	jae	SHORT $L12717
	cmp	ebx, -1
	je	SHORT $L12718
	movzx	edx, BYTE PTR [eax-1]
	cmp	edx, ebx
	jne	SHORT $L12717
$L12718:

; 229  : 			{	// just back up position
; 230  : 			_Mysb::_Gndec();

	mov	ecx, esi
	call	?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Gndec

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

	xor	eax, eax
	cmp	ebx, -1
	sete	al
	pop	esi
	dec	eax
	and	eax, ebx
	pop	ebx

; 242  : 			}
; 243  : 		else
; 244  : 			return (_Traits::eof());	// nowhere to put back
; 245  : 		}

	ret	4
$L12717:

; 232  : 			}
; 233  : 		else if (_Myfile == 0 || _Traits::eq_int_type(_Traits::eof(), _Meta))

	mov	eax, DWORD PTR [esi+88]
	test	eax, eax
	je	SHORT $L12722
	cmp	ebx, -1
	je	SHORT $L12722

; 235  : 		else if (_Pcvt == 0 && _Ungetc(_Traits::to_char_type(_Meta), _Myfile))

	mov	ecx, DWORD PTR [esi+60]
	test	ecx, ecx
	jne	SHORT $L12725
	push	eax
	movzx	eax, bl
	push	eax
	call	_ungetc
	add	esp, 8
	cmp	eax, -1

; 236  : 			return (_Meta);	// no facet and unget succeeded, return

	jne	SHORT $L17287
$L12725:

; 237  : 		else if (_Mysb::gptr() != &_Mychar)

	mov	ecx, DWORD PTR [esi+32]
	mov	edx, DWORD PTR [ecx]
	lea	eax, DWORD PTR [esi+68]
	cmp	edx, eax
	je	SHORT $L12722

; 238  : 			{	// putback to _Mychar
; 239  : 			_Mychar = _Traits::to_char_type(_Meta);
; 240  : 			_Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1);

	mov	edx, DWORD PTR [esi+16]
	mov	BYTE PTR [eax], bl
	mov	DWORD PTR [edx], eax
	mov	ecx, DWORD PTR [esi+32]
	mov	edx, esi
	sub	edx, eax
	mov	DWORD PTR [ecx], eax
	mov	eax, DWORD PTR [esi+48]
	add	edx, 69					; 00000045H
	mov	DWORD PTR [eax], edx
$L17287:
	pop	esi

; 241  : 			return (_Meta);

	mov	eax, ebx
	pop	ebx

; 242  : 			}
; 243  : 		else
; 244  : 			return (_Traits::eof());	// nowhere to put back
; 245  : 		}

	ret	4
$L12722:
	pop	esi

; 234  : 			return (_Traits::eof());	// no open C stream or EOF, fail

	or	eax, -1
	pop	ebx

; 242  : 			}
; 243  : 		else
; 244  : 			return (_Traits::eof());	// nowhere to put back
; 245  : 		}

	ret	4
?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::pbackfail
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
_TEXT	ENDS
;	COMDAT ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ
_TEXT	SEGMENT
?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ PROC NEAR ; std::basic_streambuf<char,std::char_traits<char> >::_Gndec, COMDAT
; _this$ = ecx

; 213  : 		++*_IGcount;

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

; 214  : 		return (--*_IGnext);

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

; 215  : 		}

	ret	0
?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ ENDP ; std::basic_streambuf<char,std::char_traits<char> >::_Gndec
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
_TEXT	ENDS
;	COMDAT ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::underflow, COMDAT
; _this$ = ecx

; 248  : 		{	// get an element from stream, but don't point past it

	push	esi
	mov	esi, ecx

; 249  : 		int_type _Meta;
; 250  : 		if (_Mysb::gptr() != 0
; 251  : 			&& _Mysb::gptr() < _Mysb::egptr())

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

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

	movzx	eax, BYTE PTR [ecx]
	pop	esi

; 259  : 			}
; 260  : 		}

	ret	0
$L12732:

; 253  : 		else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow()))

	mov	eax, DWORD PTR [esi]
	push	edi
	mov	ecx, esi
	call	DWORD PTR [eax+20]
	mov	edi, eax
	cmp	edi, -1
	jne	SHORT $L12735
	pop	edi

; 254  : 			return (_Meta);	// uflow failed, return EOF

	or	eax, eax
	pop	esi

; 259  : 			}
; 260  : 		}

	ret	0
$L12735:

; 255  : 		else
; 256  : 			{	// get a char, don't point past it
; 257  : 			pbackfail(_Meta);

	mov	edx, DWORD PTR [esi]
	push	edi
	mov	ecx, esi
	call	DWORD PTR [edx+8]

; 258  : 			return (_Meta);

	mov	eax, edi
	pop	edi
	pop	esi

; 259  : 			}
; 260  : 		}

	ret	0
?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::underflow
_TEXT	ENDS
PUBLIC	?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z ; std::basic_filebuf<char,std::char_traits<char> >::_Initcvt
; Function compile flags: /Ogty
;	COMDAT ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z
_TEXT	SEGMENT
__Newpcvt$ = 8						; size = 4
?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::_Initcvt, COMDAT
; _this$ = ecx

; 457  : 		{	// initialize codecvt pointer

	push	esi
	push	edi

; 458  : 		if (_Newpcvt->always_noconv())

	mov	edi, DWORD PTR __Newpcvt$[esp+4]
	mov	eax, DWORD PTR [edi]
	mov	esi, ecx
	mov	ecx, edi
	call	DWORD PTR [eax+4]
	test	al, al
	je	SHORT $L13125
	pop	edi

; 459  : 			_Pcvt = 0;	// nothing to do

	mov	DWORD PTR [esi+60], 0
	pop	esi

; 466  : 			}
; 467  : 		}

	ret	4
$L13125:

; 460  : 		else
; 461  : 			{	// set up for nontrivial codecvt facet
; 462  : 			_Pcvt = _Newpcvt;
; 463  : 			_Mysb::_Init();	// reset any buffering

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

; 464  : 			if (_Mystr == 0)

	mov	eax, DWORD PTR [esi+72]
	test	eax, eax
	jne	SHORT $L13127

; 465  : 				_Mystr = _NEW_CRT _STRING_CRT;	// buy conversion buffer

	push	28					; 0000001cH
	call	??2@YAPAXI@Z				; operator new
	add	esp, 4
	test	eax, eax
	je	SHORT $L17325
	mov	DWORD PTR [eax+24], 15			; 0000000fH
	mov	DWORD PTR [eax+20], 0
	mov	BYTE PTR [eax+4], 0
	pop	edi
	mov	DWORD PTR [esi+72], eax
	pop	esi

; 466  : 			}
; 467  : 		}

	ret	4
$L17325:

; 465  : 				_Mystr = _NEW_CRT _STRING_CRT;	// buy conversion buffer

	xor	eax, eax
	mov	DWORD PTR [esi+72], eax
$L13127:
	pop	edi
	pop	esi

; 466  : 			}
; 467  : 		}

	ret	4
?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::_Initcvt
_TEXT	ENDS
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 $L13418

; 1482 : 			_String_base::_Xlen();	// result too long

	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L13418:

; 1483 : 		if (_Myres < _Newsize)

	mov	eax, DWORD PTR [ebp+24]
	cmp	eax, esi
	jae	SHORT $L13419

; 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
$L13419:

; 1485 : 		else if (_Trim && _Newsize < _BUF_SIZE)

	mov	cl, BYTE PTR __Trim$[esp+4]
	test	cl, cl
	je	SHORT $L13421
	cmp	esi, 16					; 00000010H
	jae	SHORT $L13421
	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 $L17428
	mov	ebx, esi
$L17428:
	cmp	eax, 16					; 00000010H
	jb	SHORT $L17483
	test	ebx, ebx
	mov	eax, DWORD PTR [ebp+4]
	push	edi
	lea	edi, DWORD PTR [ebp+4]
	jbe	SHORT $L17481
	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]
$L17481:
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
	pop	edi
$L17483:
	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
$L13421:

; 1488 : 		else if (_Newsize == 0)

	test	esi, esi
	jne	SHORT $L17520

; 1489 : 			_Eos(0);	// new size is zero, just null terminate

	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [ebp+20], esi
	jb	SHORT $L17515
	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

$L17515:
	add	ebp, 4
	mov	BYTE PTR [ebp], 0
$L17520:

; 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 $L17544

; 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
$L17544:

; 135  : 
; 136  : 		if (_Isstd)

	mov	al, BYTE PTR __Isstd$[esp]
	test	al, al
	je	SHORT $L13438

; 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
$L13438:

; 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	??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z ; std::operator>><char,std::char_traits<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\streambuf
xdata$x	SEGMENT
$T17758	DD	0ffffffffH
	DD	FLAT:$L17559
	DD	00H
	DD	FLAT:$L17560
	DD	00H
	DD	00H
	DD	00H
	DD	00H
$T17760	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L17558
$T17759	DD	02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:$T17760
$T17744	DD	019930520H
	DD	04H
	DD	FLAT:$T17758
	DD	01H
	DD	FLAT:$T17759
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
xdata$x	ENDS
;	COMDAT ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z
_TEXT	SEGMENT
__Ok$ = -48						; size = 8
__Str0$ = -40						; size = 4
__Ctype_fac$13907 = -36					; size = 4
__Lock$17587 = -32					; size = 4
$T17550 = -28						; size = 4
__Count$13910 = -24					; size = 4
__State$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Istr$ = 8						; size = 4
__Str$ = 12						; size = 4
??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z PROC NEAR ; std::operator>><char,std::char_traits<char> >, COMDAT

; 888  : 	{	// extract NTBS

	push	ebp
	mov	ebp, esp
	push	-1
	push	__ehhandler$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 36					; 00000024H
	push	ebx

; 889  : 	typedef basic_istream<_Elem, _Traits> _Myis;
; 890  : 	typedef ctype<_Elem> _Ctype;
; 891  : 	ios_base::iostate _State = ios_base::goodbit;
; 892  : 	_Elem *_Str0 = _Str;

	mov	ebx, DWORD PTR __Str$[ebp]
	push	esi

; 893  : 	const typename _Myis::sentry _Ok(_Istr);

	mov	esi, DWORD PTR __Istr$[ebp]
	push	edi
	mov	DWORD PTR __$EHRec$[ebp], esp
	xor	edi, edi
	push	edi
	push	esi
	lea	ecx, DWORD PTR __Ok$[ebp]
	mov	DWORD PTR __State$[ebp], edi
	mov	DWORD PTR __Str0$[ebp], ebx
	call	??0sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@AAV12@_N@Z ; std::basic_istream<char,std::char_traits<char> >::sentry::sentry

; 894  : 
; 895  : 	if (_Ok)

	mov	al, BYTE PTR __Ok$[ebp+4]
	test	al, al
	mov	DWORD PTR __$EHRec$[ebp+12], edi
	je	$L13909

; 896  : 		{	// state okay, extract characters
; 897  : 		const _Ctype& _Ctype_fac = _USE(_Istr.getloc(), _Ctype);

	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR $T17550[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?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z ; std::use_facet<std::ctype<char> >
	mov	edi, DWORD PTR $T17550[ebp]
	add	esp, 4
	test	edi, edi
	mov	DWORD PTR __Ctype_fac$13907[ebp], eax
	mov	BYTE PTR __$EHRec$[ebp+12], 0
	je	SHORT $L17582
	push	0
	lea	ecx, DWORD PTR __Lock$17587[ebp]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $L17588
	cmp	eax, -1
	jae	SHORT $L17588
	dec	eax
	mov	DWORD PTR [edi+4], eax
$L17588:
	mov	ecx, DWORD PTR [edi+4]
	xor	edx, edx
	test	ecx, ecx
	setne	dl
	lea	ecx, DWORD PTR __Lock$17587[ebp]
	dec	edx
	and	edi, edx
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	edi, edi
	je	SHORT $L17582
	mov	eax, DWORD PTR [edi]
	push	1
	mov	ecx, edi
	call	DWORD PTR [eax]
$L17582:

; 898  : 
; 899  : 		_TRY_IO_BEGIN
; 900  : 		streamsize _Count = 0 < _Istr.width() ? _Istr.width() : INT_MAX;

	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [edx+esi+24]
	test	ecx, ecx
	lea	eax, DWORD PTR [edx+esi]
	mov	BYTE PTR __$EHRec$[ebp+12], 2
	jg	SHORT $L17552
	mov	ecx, 2147483647				; 7fffffffH
$L17552:
	mov	edi, ecx

; 901  : 		typename _Myis::int_type _Meta = _Istr.rdbuf()->sgetc();

	mov	ecx, DWORD PTR [eax+40]
	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	mov	DWORD PTR __Count$13910[ebp], edi
	je	SHORT $L17625
	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
	mov	edi, DWORD PTR __Count$13910[ebp]
	jae	SHORT $L17625
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $L17746
$L17625:
	mov	eax, DWORD PTR [ecx]
	call	DWORD PTR [eax+16]
$L17746:

; 902  : 		_Elem _Ch;
; 903  : 		for (; 0 < --_Count; _Meta = _Istr.rdbuf()->snextc())

	dec	edi
	test	edi, edi
	jle	SHORT $L13909

; 904  : 			if (_Traits::eq_int_type(_Traits::eof(), _Meta))

	cmp	eax, -1
	jne	SHORT $L13917

; 905  : 				{	// end of file, quit
; 906  : 				_State |= ios_base::eofbit;

	or	DWORD PTR __State$[ebp], 1

; 907  : 				break;

	jmp	SHORT $L13909
$L13917:

; 908  : 				}
; 909  : 			else if (_Ctype_fac.is(_Ctype::space,
; 910  : 				_Ch = _Traits::to_char_type(_Meta))
; 911  : 					|| _Ch == _Elem())

	mov	edx, DWORD PTR __Ctype_fac$13907[ebp]
	mov	edx, DWORD PTR [edx+16]
	movzx	ecx, al
	test	BYTE PTR [edx+ecx*2], 72		; 00000048H
	jne	SHORT $L13909
	test	al, al
	je	SHORT $L13909

; 912  : 				break;	// whitespace or nul, quit
; 913  : 			else
; 914  : 				*_Str++ = _Traits::to_char_type(_Meta);	// add it to string

	mov	BYTE PTR [ebx], al
	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [ecx+esi+40]
	inc	ebx
	mov	DWORD PTR __Str$[ebp], ebx
	call	?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ ; std::basic_streambuf<char,std::char_traits<char> >::snextc
	jmp	SHORT $L17746
$L17558:

; 915  : 		_CATCH_IO_(_Istr)

	mov	eax, DWORD PTR __Istr$[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 $L17675
	or	eax, 4
$L17675:
	push	1
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
	mov	eax, $L17751
	ret	0
$L17751:
	mov	ebx, DWORD PTR __Str$[ebp]
	mov	esi, DWORD PTR __Istr$[ebp]
$L13909:

; 916  : 		}
; 917  : 
; 918  : 	*_Str = _Elem();	// add terminating null character
; 919  : 	_Istr.width(0);
; 920  : 	_Istr.setstate(_Str == _Str0 ? _State | ios_base::failbit : _State);

	mov	edx, DWORD PTR __State$[ebp]
	mov	BYTE PTR [ebx], 0
	mov	eax, DWORD PTR [esi]
	mov	eax, DWORD PTR [eax+4]
	xor	edi, edi
	add	eax, esi
	mov	DWORD PTR [eax+24], edi
	cmp	ebx, DWORD PTR __Str0$[ebp]
	mov	DWORD PTR __$EHRec$[ebp+12], edi
	jne	SHORT $L17555
	or	edx, 2
$L17555:
	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+4]
	add	ecx, esi
	cmp	edx, edi
	je	SHORT $L17704
	mov	eax, DWORD PTR [ecx+8]
	or	eax, edx
	cmp	DWORD PTR [ecx+40], edi
	jne	SHORT $L17703
	or	eax, 4
$L17703:
	push	edi
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L17704:

; 921  : 	return (_Istr);

	mov	eax, DWORD PTR __Ok$[ebp]
	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx+eax+40]
	cmp	eax, edi
	mov	DWORD PTR __$EHRec$[ebp+12], -1
	je	SHORT $L17748
	lea	ecx, DWORD PTR [eax+4]
	call	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L17748:

; 922  : 	}

	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	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L17559:
	lea	ecx, DWORD PTR __Ok$[ebp]
	jmp	??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
$L17560:
	lea	ecx, DWORD PTR $T17550[ebp]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z:
	mov	eax, OFFSET FLAT:$T17744
	jmp	___CxxFrameHandler
text$x	ENDS
??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z ENDP ; std::operator>><char,std::char_traits<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
$T17785	DD	0ffffffffH
	DD	FLAT:$L17767
$T17782	DD	019930520H
	DD	01H
	DD	FLAT:$T17785
	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$17779 = -32					; size = 4
__Lock$17773 = -32					; size = 4
__Lock$ = -28						; size = 4
$T17765 = -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 $L17772
	push	0
	lea	ecx, DWORD PTR __Lock$17773[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 $L17774
	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
$L17774:
	lea	ecx, DWORD PTR __Lock$17773[esp+44]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$L17772:

; 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 $L13991

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

	test	edi, edi
	je	SHORT $L13985

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

	mov	esi, edi

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

	jmp	SHORT $L13991
$L13985:
	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 $L13988

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

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

; 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$17779[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 $L17780
	inc	eax
	mov	DWORD PTR [esi+4], eax
$L17780:
	lea	ecx, DWORD PTR __Lock$17779[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
$L13991:

; 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
$L17784:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L17767:
	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:$T17782
	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	??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z ; std::use_facet<std::codecvt<char,char,int> >
PUBLIC	?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::codecvt<char,char,int> >::_Psave
;	COMDAT ?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B
_BSS	SEGMENT
?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B DD 01H DUP (?) ; std::_Facetptr<std::codecvt<char,char,int> >::_Psave
_BSS	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
$T17813	DD	0ffffffffH
	DD	FLAT:$L17795
$T17810	DD	019930520H
	DD	01H
	DD	FLAT:$T17813
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
xdata$x	ENDS
;	COMDAT ??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z
_TEXT	SEGMENT
__Psave$ = -36						; size = 4
__Lock$17807 = -32					; size = 4
__Lock$17801 = -32					; size = 4
__Lock$ = -28						; size = 4
$T17793 = -24						; size = 12
__$EHRec$ = -12						; size = 12
__Loc$ = 8						; size = 4
??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z PROC NEAR ; std::use_facet<std::codecvt<char,char,int> >, COMDAT

; 315  : 	{	// get facet reference from locale

	push	-1
	push	__ehhandler$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@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@?$codecvt@DDH@std@@2V0locale@2@A ; std::codecvt<char,char,int>::id
	test	eax, eax
	mov	edi, DWORD PTR ?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B ; std::_Facetptr<std::codecvt<char,char,int> >::_Psave
	mov	DWORD PTR __$EHRec$[esp+52], 0
	mov	DWORD PTR __Psave$[esp+44], edi
	jne	SHORT $L17800
	push	0
	lea	ecx, DWORD PTR __Lock$17801[esp+48]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR ?id@?$codecvt@DDH@std@@2V0locale@2@A ; std::codecvt<char,char,int>::id
	test	eax, eax
	jne	SHORT $L17802
	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@?$codecvt@DDH@std@@2V0locale@2@A, eax ; std::codecvt<char,char,int>::id
$L17802:
	lea	ecx, DWORD PTR __Lock$17801[esp+44]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$L17800:

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

	mov	eax, DWORD PTR ?id@?$codecvt@DDH@std@@2V0locale@2@A ; std::codecvt<char,char,int>::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 $L14020

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

	test	edi, edi
	je	SHORT $L14014

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

	mov	esi, edi

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

	jmp	SHORT $L14020
$L14014:
	lea	ecx, DWORD PTR __Psave$[esp+44]
	push	ecx
	call	?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@@Z ; std::codecvt<char,char,int>::_Getcat
	add	esp, 4
	cmp	eax, -1
	jne	SHORT $L14017

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

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

; 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$17807[esp+48]
	mov	DWORD PTR ?_Psave@?$_Facetptr@V?$codecvt@DDH@std@@@std@@2PBVfacet@locale@2@B, esi ; std::_Facetptr<std::codecvt<char,char,int> >::_Psave
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	cmp	eax, -1
	jae	SHORT $L17808
	inc	eax
	mov	DWORD PTR [esi+4], eax
$L17808:
	lea	ecx, DWORD PTR __Lock$17807[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
$L14020:

; 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
$L17812:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L17795:
	lea	ecx, DWORD PTR __Lock$[ebp]
	jmp	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
__ehhandler$??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z:
	mov	eax, OFFSET FLAT:$T17810
	jmp	___CxxFrameHandler
text$x	ENDS
??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z ENDP ; std::use_facet<std::codecvt<char,char,int> >
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
$T17969	DD	0ffffffffH
	DD	FLAT:$L17830
	DD	00H
	DD	FLAT:$L17831
	DD	00H
	DD	00H
	DD	00H
	DD	00H
$T17971	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L17829
$T17970	DD	02H
	DD	02H
	DD	03H
	DD	01H
	DD	FLAT:$T17971
$T17961	DD	019930520H
	DD	04H
	DD	FLAT:$T17969
	DD	01H
	DD	FLAT:$T17970
	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
$T17826 = -60						; size = 8
$T17825 = -60						; size = 8
__Ok$ = -52						; size = 8
__Nget_fac$12044 = -44					; size = 4
$T17824 = -40						; size = 8
__Lock$17858 = -36					; size = 4
$T17821 = -32						; size = 4
__Tmp$12043 = -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	$L17966

; 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$12043[ebp], edi
	mov	ecx, DWORD PTR [ecx+4]
	lea	eax, DWORD PTR $T17821[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 $T17821[ebp]
	add	esp, 4
	test	edi, edi
	mov	ebx, eax
	mov	DWORD PTR __Nget_fac$12044[ebp], ebx
	mov	BYTE PTR __$EHRec$[ebp+12], 0
	je	SHORT $L17853
	push	0
	lea	ecx, DWORD PTR __Lock$17858[ebp]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $L17859
	cmp	eax, -1
	jae	SHORT $L17859
	dec	eax
	mov	DWORD PTR [edi+4], eax
$L17859:
	mov	ecx, DWORD PTR [edi+4]
	xor	edx, edx
	test	ecx, ecx
	setne	dl
	lea	ecx, DWORD PTR __Lock$17858[ebp]
	dec	edx
	and	edi, edx
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	edi, edi
	je	SHORT $L17853
	mov	eax, DWORD PTR [edi]
	push	1
	mov	ecx, edi
	call	DWORD PTR [eax]
$L17853:

; 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 $T17825[ebp+4], dl
	mov	edx, DWORD PTR [ebx]
	lea	ebx, DWORD PTR __Tmp$12043[ebp]
	push	ebx
	lea	ebx, DWORD PTR __State$[ebp]
	push	ebx
	push	eax
	mov	BYTE PTR $T17824[ebp+4], 1
	mov	eax, DWORD PTR $T17824[ebp+4]
	push	eax
	mov	eax, DWORD PTR $T17825[ebp+4]
	push	edi
	push	eax
	push	ecx
	lea	ecx, DWORD PTR $T17826[ebp]
	push	ecx
	mov	ecx, DWORD PTR __Nget_fac$12044[ebp]
	mov	BYTE PTR __$EHRec$[ebp+12], 2
	call	DWORD PTR [edx+32]
	jmp	SHORT $L12050
$L17829:

; 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 $L17897
	or	eax, 4
$L17897:
	push	1
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
	mov	eax, $L17965
	ret	0
$L17965:
	mov	esi, DWORD PTR _this$[ebp]
$L12050:

; 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 $L12272
	mov	eax, DWORD PTR __Tmp$12043[ebp]
	cmp	eax, -2147483648			; 80000000H
	jl	SHORT $L12272
	cmp	eax, 2147483647				; 7fffffffH
	jg	SHORT $L12272

; 237  : 			else
; 238  : 				_Val = _Tmp;

	mov	ecx, DWORD PTR __Val$[ebp]
	mov	DWORD PTR [ecx], eax
	jmp	SHORT $L12273
$L12272:

; 236  : 				_State |= ios_base::failbit;

	or	edx, 2
	mov	DWORD PTR __State$[ebp], edx
	jmp	SHORT $L12273
$L17966:
	mov	edx, DWORD PTR __State$[ebp]
$L12273:

; 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 $L17921
	mov	eax, DWORD PTR [ecx+8]
	or	eax, edx
	mov	edx, DWORD PTR [ecx+40]
	test	edx, edx
	jne	SHORT $L17920
	or	eax, 4
$L17920:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L17921:

; 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 $L17962
	lea	ecx, DWORD PTR [eax+4]
	call	?_Unlock@_Mutex@std@@QAEXXZ		; std::_Mutex::_Unlock
$L17962:

; 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
$L17830:
	lea	ecx, DWORD PTR __Ok$[ebp]
	jmp	??1sentry@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@XZ
$L17831:
	lea	ecx, DWORD PTR $T17821[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:$T17961
	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>>
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
;	COMDAT ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z
_TEXT	SEGMENT
__Loc$ = 8						; size = 4
?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::imbue, COMDAT
; _this$ = ecx

; 387  : 		_Initcvt((_Cvt *)&_USE(_Loc, _Cvt));

	mov	eax, DWORD PTR __Loc$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z ; std::use_facet<std::codecvt<char,char,int> >
	add	esp, 4
	push	eax
	mov	ecx, esi
	call	?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z ; std::basic_filebuf<char,std::char_traits<char> >::_Initcvt
	pop	esi

; 388  : 		}

	ret	4
?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::imbue
_TEXT	ENDS
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
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xstring
;	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 $L12923

; 544  : 			_String_base::_Xlen();	// result too long

	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L12923:

; 545  : 
; 546  : 		size_type _Num;
; 547  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

	test	edi, edi
	jbe	$L18157
	push	ebp
	mov	ebp, DWORD PTR [esi+20]
	add	ebp, edi
	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L18076
	mov	ecx, esi
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L18076:
	mov	eax, DWORD PTR [esi+24]
	cmp	eax, ebp
	jae	SHORT $L18077
	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
$L18159:
	jbe	SHORT $L18156

; 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 $L18129
	mov	edx, DWORD PTR [esi+4]
	jmp	SHORT $L18130

; 545  : 
; 546  : 		size_type _Num;
; 547  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$L18077:
	test	ebp, ebp
	jne	SHORT $L18159
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+20], ebp
	jb	SHORT $L18120
	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))

$L18120:
	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);

$L18129:
	lea	edx, DWORD PTR [esi+4]
$L18130:
	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 $L18152
	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);

$L18152:
	lea	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax+ebp], 0
$L18156:
	pop	ebp
$L18157:
	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
_TEXT	ENDS
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
$T18179	DD	0ffffffffH
	DD	FLAT:$L18164
$T18176	DD	019930520H
	DD	01H
	DD	FLAT:$T18179
	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
$T18163 = -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 $T18163[esp+24], eax
	je	SHORT $L12979
	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 $T18163[esp+24], 1
$L12979:
	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 $L18177

; 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
$L18177:

; 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
$L18164:
	mov	eax, DWORD PTR $T18163[ebp]
	and	eax, 1
	je	$L18165
	and	DWORD PTR $T18163[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> >
$L18165:
	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:$T18176
	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	?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::open
EXTRN	?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z:NEAR		; std::_Fiopen
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	SEGMENT
$T18230	DD	0ffffffffH
	DD	FLAT:$L18186
$T18228	DD	019930520H
	DD	01H
	DD	FLAT:$T18230
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
xdata$x	ENDS
;	COMDAT ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z
_TEXT	SEGMENT
__$EHRec$ = -12						; size = 12
__Filename$ = 8						; size = 4
__Lock$18223 = 12					; size = 4
__Mode$ = 12						; size = 4
$T18185 = 16						; size = 4
__Prot$ = 16						; size = 4
?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::open, COMDAT
; _this$ = ecx

; 140  : 		{	// open a C stream with specified mode

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	esi
	mov	esi, ecx

; 141  : 		_Filet *_File;
; 142  : 		if (_Myfile != 0 || (_File = _Fiopen(_Filename, _Mode, _Prot)) == 0)

	mov	eax, DWORD PTR [esi+88]
	test	eax, eax
	push	edi
	jne	$L13086
	mov	eax, DWORD PTR __Prot$[esp+16]
	mov	ecx, DWORD PTR __Mode$[esp+16]
	mov	edx, DWORD PTR __Filename$[esp+16]
	push	eax
	push	ecx
	push	edx
	call	?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z	; std::_Fiopen
	mov	edi, eax
	add	esp, 12					; 0000000cH
	test	edi, edi
	je	$L13086

; 143  : 			return (0);	// open failed
; 144  : 
; 145  : 		_Init(_File, _Openfl);

	mov	ecx, esi
	mov	BYTE PTR [esi+84], 1
	mov	BYTE PTR [esi+76], 0
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	lea	eax, DWORD PTR [edi+8]
	lea	ecx, DWORD PTR [edi+4]
	mov	DWORD PTR [esi+48], ecx
	mov	DWORD PTR [esi+52], ecx
	mov	DWORD PTR [esi+16], eax
	mov	DWORD PTR [esi+20], eax
	mov	DWORD PTR [esi+32], edi
	mov	DWORD PTR [esi+36], edi
	mov	DWORD PTR [esi+88], edi
	mov	eax, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+80], eax
	mov	ecx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit

; 146  : 		_Initcvt((_Cvt *)&_USE(_Mysb::getloc(), _Cvt));

	lea	edx, DWORD PTR $T18185[esp+16]
	mov	DWORD PTR [esi+64], ecx
	push	edx
	mov	ecx, esi
	mov	DWORD PTR [esi+60], 0
	call	?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ ; std::basic_streambuf<char,std::char_traits<char> >::getloc
	push	eax
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	??$use_facet@V?$codecvt@DDH@std@@@std@@YAABV?$codecvt@DDH@0@ABVlocale@0@@Z ; std::use_facet<std::codecvt<char,char,int> >
	add	esp, 4
	push	eax
	mov	ecx, esi
	call	?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z ; std::basic_filebuf<char,std::char_traits<char> >::_Initcvt
	mov	edi, DWORD PTR $T18185[esp+16]
	test	edi, edi
	mov	DWORD PTR __$EHRec$[esp+28], -1
	je	SHORT $L18220
	push	0
	lea	ecx, DWORD PTR __Lock$18223[esp+20]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [edi+4]
	test	eax, eax
	jbe	SHORT $L18224
	cmp	eax, -1
	jae	SHORT $L18224
	dec	eax
	mov	DWORD PTR [edi+4], eax
$L18224:
	mov	ecx, DWORD PTR [edi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$18223[esp+16]
	dec	eax
	and	edi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	edi, edi
	je	SHORT $L18220
	mov	edx, DWORD PTR [edi]
	push	1
	mov	ecx, edi
	call	DWORD PTR [edx]
$L18220:

; 147  : 		return (this);	// open succeeded

	mov	eax, esi

; 148  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	DWORD PTR fs:__except_list, ecx
	pop	edi
	pop	esi
	add	esp, 12					; 0000000cH
	ret	12					; 0000000cH
$L13086:
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	edi
	xor	eax, eax
	mov	DWORD PTR fs:__except_list, ecx
	pop	esi
	add	esp, 12					; 0000000cH
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L18186:
	lea	ecx, DWORD PTR $T18185[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
__ehhandler$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z:
	mov	eax, OFFSET FLAT:$T18228
	jmp	___CxxFrameHandler
text$x	ENDS
?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::open
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
; 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@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 $L13411

; 628  : 			_String_base::_Xlen();	// result too long

	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen

; 629  : 
; 630  : 		if (_Grow(_Count))

	jmp	SHORT $L18413
$L13411:
	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L18333
$L18413:
	mov	ecx, esi
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L18333:
	mov	eax, DWORD PTR [esi+24]
	cmp	eax, ebp
	jae	SHORT $L18334
	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
$L18415:
	jbe	SHORT $L18414

; 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 $L18386
	mov	edi, DWORD PTR [esi+4]
	jmp	SHORT $L18387

; 629  : 
; 630  : 		if (_Grow(_Count))

$L18334:
	test	ebp, ebp
	jne	SHORT $L18415
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [esi+20], ebp
	jb	SHORT $L18377
	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))

$L18377:
	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);

$L18386:
	lea	edi, DWORD PTR [esi+4]
$L18387:
	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 $L18409
	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);

$L18409:
	lea	eax, DWORD PTR [esi+4]
	mov	BYTE PTR [eax+ebp], 0
$L18414:

; 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	?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	_fgetc:NEAR
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
;	COMDAT ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ
_TEXT	SEGMENT
__Ch$12749 = -9						; size = 1
__Source$12751 = -8					; size = 4
__Dest$12750 = -4					; size = 4
?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::uflow, COMDAT
; _this$ = ecx

; 263  : 		{	// get an element from stream, point past it

	sub	esp, 12					; 0000000cH
	push	esi
	mov	esi, ecx

; 264  : 		if (_Mysb::gptr() != 0
; 265  : 			&& _Mysb::gptr() < _Mysb::egptr())

	mov	ecx, DWORD PTR [esi+32]
	cmp	DWORD PTR [ecx], 0
	je	SHORT $L12739
	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	add	edx, ecx
	cmp	ecx, edx
	jae	SHORT $L12739

; 266  : 			return (_Traits::to_int_type(
; 267  : 				*_Mysb::_Gninc()));	// return buffered

	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

; 310  : 
; 311  : 				default:
; 312  : 					return (_Traits::eof());	// conversion failed
; 313  : 				}
; 314  : 				}
; 315  : 		}

	add	esp, 12					; 0000000cH
	ret	0
$L12739:

; 268  : 		else if (_Myfile == 0)

	mov	eax, DWORD PTR [esi+88]
	test	eax, eax
	jne	SHORT $L12741
$L18419:

; 269  : 			return (_Traits::eof());	// no open C stream, fail

	or	eax, -1
	pop	esi

; 310  : 
; 311  : 				default:
; 312  : 					return (_Traits::eof());	// conversion failed
; 313  : 				}
; 314  : 				}
; 315  : 		}

	add	esp, 12					; 0000000cH
	ret	0
$L12741:

; 270  : 		else if (_Pcvt == 0)

	mov	ecx, DWORD PTR [esi+60]
	test	ecx, ecx
	jne	SHORT $L12743

; 271  : 			{	// no codecvt facet, just get it
; 272  : 			_Elem _Ch = 0;
; 273  : 			return (_Fgetc(_Ch, _Myfile) ? _Traits::to_int_type(_Ch)
; 274  : 				: _Traits::eof());

	push	eax
	call	_fgetc
	add	esp, 4
	cmp	eax, -1
	je	SHORT $L18419
	movzx	eax, al
	pop	esi

; 310  : 
; 311  : 				default:
; 312  : 					return (_Traits::eof());	// conversion failed
; 313  : 				}
; 314  : 				}
; 315  : 		}

	add	esp, 12					; 0000000cH
	ret	0
$L12743:

; 275  : 			}
; 276  : 		else
; 277  : 			for (_State0 = _State, _Mystr->erase(); ; )

	mov	edx, DWORD PTR [esi+80]
	mov	ecx, DWORD PTR [esi+72]
	push	ebx
	push	ebp
	push	edi
	push	-1
	push	0
	mov	DWORD PTR [esi+64], edx
	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

; 278  : 				{	// get using codecvt facet
; 279  : 				_Elem _Ch, *_Dest;
; 280  : 				const char *_Source;
; 281  : 				ptrdiff_t _Nleft;
; 282  : 				int _Meta = fgetc(_Myfile);

	mov	eax, DWORD PTR [esi+88]
	push	eax
	call	_fgetc
	add	esp, 4

; 283  : 
; 284  : 				if (_Meta == EOF)

	cmp	eax, -1
	je	$L18711
	mov	ebx, 16					; 00000010H
	npad	6
$L12747:

; 286  : 
; 287  : 				_Mystr->append(1, (char)_Meta);	// append byte and convert

	mov	ecx, DWORD PTR [esi+72]
	push	eax
	push	1
	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

; 288  : 				switch (_Pcvt->in(_State,
; 289  : 					&*_Mystr->begin(), &*_Mystr->begin() + _Mystr->size(),
; 290  : 						_Source, &_Ch, &_Ch + 1, _Dest))

	mov	eax, DWORD PTR [esi+72]
	cmp	DWORD PTR [eax+24], ebx
	jb	SHORT $L18502
	mov	edi, DWORD PTR [eax+4]
	jmp	SHORT $L18503
$L18502:
	lea	edi, DWORD PTR [eax+4]
$L18503:
	cmp	DWORD PTR [eax+24], ebx
	mov	edx, DWORD PTR [eax+20]
	jb	SHORT $L18542
	mov	eax, DWORD PTR [eax+4]
	jmp	SHORT $L18543
$L18542:
	add	eax, 4
$L18543:
	mov	ecx, DWORD PTR [esi+60]
	mov	ebx, DWORD PTR [ecx]
	lea	ebp, DWORD PTR __Dest$12750[esp+28]
	push	ebp
	lea	ebp, DWORD PTR __Ch$12749[esp+33]
	push	ebp
	lea	ebp, DWORD PTR __Ch$12749[esp+36]
	push	ebp
	lea	ebp, DWORD PTR __Source$12751[esp+40]
	push	ebp
	add	edi, edx
	push	edi
	push	eax
	lea	eax, DWORD PTR [esi+80]
	push	eax
	call	DWORD PTR [ebx+16]
	sub	eax, 0
	je	$L12771
	dec	eax
	je	SHORT $L12762
	sub	eax, 2
	jne	SHORT $L18711

; 295  : 					break;
; 296  : 
; 297  : 				case codecvt_base::noconv:
; 298  : 					if (_Mystr->size() < sizeof (_Elem))

	mov	ecx, DWORD PTR [esi+72]
	cmp	DWORD PTR [ecx+20], 1
	jae	SHORT $L12768

; 299  : 						break;	// no conversion, but need more chars

	mov	ebx, 16					; 00000010H
	jmp	SHORT $L12759
$L12762:

; 291  : 				{	// test result of converting one element
; 292  : 				case codecvt_base::partial:
; 293  : 					_Mystr->erase((size_t)0,	// partial, not done yet
; 294  : 						(size_t)(_Source - &*_Mystr->begin()));

	mov	ecx, DWORD PTR [esi+72]
	mov	eax, DWORD PTR [ecx+24]
	mov	ebx, 16					; 00000010H
	cmp	eax, ebx
	jb	SHORT $L18585
	mov	eax, DWORD PTR [ecx+4]
	jmp	SHORT $L18586
$L18585:
	lea	eax, DWORD PTR [ecx+4]
$L18586:
	mov	edx, DWORD PTR __Source$12751[esp+28]
	sub	edx, eax
	push	edx
	push	0
	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
$L12759:
	mov	eax, DWORD PTR [esi+88]
	push	eax
	call	_fgetc
	add	esp, 4
	cmp	eax, -1
	jne	$L12747
$L18711:
	pop	edi
	pop	ebp
	pop	ebx

; 285  : 					return (_Traits::eof());	// partial char?

	or	eax, -1
	pop	esi

; 310  : 
; 311  : 				default:
; 312  : 					return (_Traits::eof());	// conversion failed
; 313  : 				}
; 314  : 				}
; 315  : 		}

	add	esp, 12					; 0000000cH
	ret	0
$L12768:

; 300  : 
; 301  : 					memcpy(&_Ch, &*_Mystr->begin(),
; 302  : 						sizeof (_Elem));	// copy raw bytes to element

	mov	esi, DWORD PTR [esi+72]
	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L18644
	mov	esi, DWORD PTR [esi+4]

; 303  : 					return (_Traits::to_int_type(_Ch));	// return result

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

; 310  : 
; 311  : 				default:
; 312  : 					return (_Traits::eof());	// conversion failed
; 313  : 				}
; 314  : 				}
; 315  : 		}

	add	esp, 12					; 0000000cH
	ret	0

; 300  : 
; 301  : 					memcpy(&_Ch, &*_Mystr->begin(),
; 302  : 						sizeof (_Elem));	// copy raw bytes to element

$L18644:

; 303  : 					return (_Traits::to_int_type(_Ch));	// return result

	movzx	eax, BYTE PTR [esi+4]
	pop	edi
	pop	ebp
	add	esi, 4
	pop	ebx
	pop	esi

; 310  : 
; 311  : 				default:
; 312  : 					return (_Traits::eof());	// conversion failed
; 313  : 				}
; 314  : 				}
; 315  : 		}

	add	esp, 12					; 0000000cH
	ret	0
$L12771:

; 304  : 
; 305  : 				case codecvt_base::ok:
; 306  : 					for (_Nleft = &*_Mystr->begin() + _Mystr->size() - _Source;

	mov	eax, DWORD PTR [esi+72]
	cmp	DWORD PTR [eax+24], 16			; 00000010H
	jb	SHORT $L18683
	mov	ecx, DWORD PTR [eax+4]
	jmp	SHORT $L18684
$L18683:
	lea	ecx, DWORD PTR [eax+4]
$L18684:
	mov	edi, DWORD PTR [eax+20]
	sub	edi, DWORD PTR __Source$12751[esp+28]
	add	edi, ecx

; 307  : 						0 < _Nleft; )

	test	edi, edi
	jle	SHORT $L12775
	npad	7
$L12774:

; 308  : 						ungetc(_Source[--_Nleft], _Myfile);

	mov	edx, DWORD PTR __Source$12751[esp+28]
	mov	ecx, DWORD PTR [esi+88]
	movsx	eax, BYTE PTR [edi+edx-1]
	dec	edi
	push	ecx
	push	eax
	call	_ungetc
	add	esp, 8
	test	edi, edi
	jg	SHORT $L12774
$L12775:

; 309  : 					return (_Traits::to_int_type(_Ch));	// return result

	movzx	eax, BYTE PTR __Ch$12749[esp+28]
	pop	edi
	pop	ebp
	pop	ebx
	pop	esi

; 310  : 
; 311  : 				default:
; 312  : 					return (_Traits::eof());	// conversion failed
; 313  : 				}
; 314  : 				}
; 315  : 		}

	add	esp, 12					; 0000000cH
	ret	0
?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::uflow
_TEXT	ENDS
EXTRN	_memmove:NEAR
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 $L12939

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

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

; 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 $L12940

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

	mov	edi, eax
$L12940:

; 797  : 		if (0 < _Count)

	test	edi, edi
	jbe	SHORT $L18761

; 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 $L18727
	mov	edx, DWORD PTR [ebx]
	jmp	SHORT $L18728
$L18727:
	mov	edx, ebx
$L18728:
	cmp	ecx, 16					; 00000010H
	jb	SHORT $L18734
	mov	ecx, DWORD PTR [ebx]
	jmp	SHORT $L18735
$L18734:
	mov	ecx, ebx
$L18735:
	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 $L18758

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

	mov	ebx, DWORD PTR [ebx]
$L18758:
	mov	BYTE PTR [ebx+eax], 0
	pop	ebx
$L18761:
	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	??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> >
; 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> >
_TEXT	ENDS
PUBLIC	?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
EXTRN	_fwrite:NEAR
;	COMDAT xdata$x
xdata$x	SEGMENT
$T19414	DD	0ffffffffH
	DD	FLAT:$L18839
$T19402	DD	019930520H
	DD	01H
	DD	FLAT:$T19414
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
xdata$x	ENDS
;	COMDAT ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ
_TEXT	SEGMENT
__Dest$13099 = -44					; size = 4
__Str$13100 = -40					; size = 28
__$EHRec$ = -12						; size = 12
?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite, COMDAT
; _this$ = ecx

; 418  : 		{	// put shift to initial conversion state, as needed

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 32					; 00000020H
	push	ebx
	push	esi
	mov	esi, ecx

; 419  : 		if (_Pcvt == 0 || !_Wrotesome)

	mov	eax, DWORD PTR [esi+60]
	xor	ebx, ebx
	cmp	eax, ebx
	je	$L13096
	cmp	BYTE PTR [esi+76], bl
	je	$L13096

; 420  : 			return (true);
; 421  : 		else
; 422  : 			{	// may have to put
; 423  : 			const int _STRING_INC = 8;
; 424  : 			char *_Dest;
; 425  : 			overflow();

	mov	eax, DWORD PTR [esi]
	push	-1
	call	DWORD PTR [eax+4]

; 426  : 
; 427  : 			string _Str(_STRING_INC, '\0');

	xor	edx, edx
	mov	eax, 15					; 0000000fH
	cmp	eax, 16					; 00000010H
	mov	ecx, edx
	mov	BYTE PTR __Str$13100[esp+56], bl
	mov	DWORD PTR __Str$13100[esp+76], eax
	mov	DWORD PTR __Str$13100[esp+56], ecx
	mov	DWORD PTR __Str$13100[esp+60], edx
	mov	DWORD PTR __Str$13100[esp+72], 8
	jae	SHORT $L19248
	lea	ecx, DWORD PTR __Str$13100[esp+56]
$L19248:
	push	ebp
	mov	BYTE PTR [ecx+8], bl
	mov	DWORD PTR __$EHRec$[esp+64], ebx
	lea	ebp, DWORD PTR [esi+80]
	push	edi
	npad	1
$L13102:

; 428  : 			for (; ; )
; 429  : 				switch (_Pcvt->unshift(_State,
; 430  : 					&*_Str.begin(), &*_Str.begin() + _Str.size(), _Dest))

	mov	ecx, DWORD PTR __Str$13100[esp+84]
	cmp	ecx, 16					; 00000010H
	mov	eax, DWORD PTR __Str$13100[esp+64]
	mov	edx, eax
	jae	SHORT $L19312
	lea	edx, DWORD PTR __Str$13100[esp+64]
	mov	eax, edx
$L19312:
	mov	ecx, DWORD PTR [esi+60]
	mov	edi, DWORD PTR [ecx]
	lea	ebx, DWORD PTR __Dest$13099[esp+60]
	push	ebx
	mov	ebx, DWORD PTR __Str$13100[esp+84]
	add	ebx, edx
	push	ebx
	push	eax
	push	ebp
	call	DWORD PTR [edi+24]
	sub	eax, 0
	je	SHORT $L13110
	dec	eax
	je	SHORT $L13111
	sub	eax, 2

; 449  : 
; 450  : 				default:
; 451  : 					return (false);	// conversion failed

	lea	ecx, DWORD PTR __Str$13100[esp+60]
	jne	SHORT $L19413
$L13119:

; 444  : 					break;
; 445  : 					}
; 446  : 
; 447  : 				case codecvt_base::noconv:
; 448  : 					return (true);	// nothing to do

	call	??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> >
	pop	edi
	pop	ebp
	pop	esi
	mov	al, 1
	pop	ebx

; 453  : 			}
; 454  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+44]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 44					; 0000002cH
	ret	0
$L13110:

; 431  : 				{	// test result of homing conversion
; 432  : 				case codecvt_base::ok:
; 433  : 					_Wrotesome = false;	// homed successfully

	mov	BYTE PTR [esi+76], 0
$L13111:

; 434  : 
; 435  : 				case codecvt_base::partial:	// can fall through
; 436  : 					{	// put any generated bytes
; 437  : 					size_t _Count = _Dest - &*_Str.begin();

	mov	edx, DWORD PTR __Str$13100[esp+84]
	cmp	edx, 16					; 00000010H
	mov	eax, DWORD PTR __Str$13100[esp+64]
	mov	ecx, eax
	jae	SHORT $L19353
	lea	ecx, DWORD PTR __Str$13100[esp+64]
$L19353:
	mov	edi, DWORD PTR __Dest$13099[esp+60]
	sub	edi, ecx

; 438  : 					if (0 < _Count && _Count !=
; 439  : 						fwrite(&*_Str.begin(), _Count, 1, _Myfile))

	je	SHORT $L19407
	cmp	edx, 16					; 00000010H
	jae	SHORT $L19388
	lea	eax, DWORD PTR __Str$13100[esp+64]
$L19388:
	mov	ecx, DWORD PTR [esi+88]
	push	ecx
	push	1
	push	edi
	push	eax
	call	_fwrite
	add	esp, 16					; 00000010H
	cmp	edi, eax
	jne	SHORT $L19404
$L19407:

; 441  : 					if (!_Wrotesome)

	mov	al, BYTE PTR [esi+76]
	test	al, al

; 442  : 						return (true);
; 443  : 					_Str.append(_STRING_INC, '\0');	// try some more

	lea	ecx, DWORD PTR __Str$13100[esp+60]
	je	SHORT $L13119
	push	0
	push	8
	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

; 452  : 				}

	jmp	$L13102
$L19404:

; 440  : 						return (false);	// write failed

	lea	ecx, DWORD PTR __Str$13100[esp+60]
$L19413:
	call	??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> >
	pop	edi
	pop	ebp
	pop	esi
	xor	al, al
	pop	ebx

; 453  : 			}
; 454  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+44]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 44					; 0000002cH
	ret	0
$L13096:
	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	pop	esi
	mov	al, 1
	pop	ebx
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 44					; 0000002cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L18839:
	lea	ecx, DWORD PTR __Str$13100[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$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ:
	mov	eax, OFFSET FLAT:$T19402
	jmp	___CxxFrameHandler
text$x	ENDS
?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
EXTRN	_fputc:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
xdata$x	SEGMENT
$T20079	DD	0ffffffffH
	DD	FLAT:$L19433
$T20065	DD	019930520H
	DD	01H
	DD	FLAT:$T20079
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
xdata$x	ENDS
;	COMDAT ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
_TEXT	SEGMENT
__Ch$12493 = -49					; size = 1
__Dest$12495 = -48					; size = 4
__Source$12494 = -44					; size = 4
__Str$12496 = -40					; size = 28
__$EHRec$ = -12						; size = 12
__Meta$ = 8						; size = 4
?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::overflow, COMDAT
; _this$ = ecx

; 168  : 		{	// put an element to stream

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 40					; 00000028H
	push	ebx

; 169  : 		if (_Traits::eq_int_type(_Traits::eof(), _Meta))

	mov	ebx, DWORD PTR __Meta$[esp+52]
	cmp	ebx, -1
	push	esi
	mov	esi, ecx
	jne	SHORT $L12484
	pop	esi

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

	xor	eax, eax
	pop	ebx

; 219  : 			}
; 220  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	4
$L12484:

; 171  : 		else if (_Mysb::pptr() != 0
; 172  : 			&& _Mysb::pptr() < _Mysb::epptr())

	mov	eax, DWORD PTR [esi+36]
	mov	ecx, DWORD PTR [eax]
	test	ecx, ecx
	je	SHORT $L12486
	mov	eax, DWORD PTR [esi+52]
	mov	edx, DWORD PTR [eax]
	add	edx, ecx
	cmp	ecx, edx
	jae	SHORT $L12486

; 173  : 			{	// room in buffer, store it
; 174  : 			*_Mysb::_Pninc() = _Traits::to_char_type(_Meta);

	dec	DWORD PTR [eax]
	mov	esi, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [esi]
	lea	ecx, DWORD PTR [eax+1]
	mov	DWORD PTR [esi], ecx
	mov	BYTE PTR [eax], bl
	pop	esi

; 175  : 			return (_Meta);

	mov	eax, ebx
	pop	ebx

; 219  : 			}
; 220  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	4
$L12486:

; 176  : 			}
; 177  : 		else if (_Myfile == 0)

	mov	eax, DWORD PTR [esi+88]
	test	eax, eax
	jne	SHORT $L12488
$L19421:
	pop	esi

; 178  : 			return (_Traits::eof());	// no open C stream, fail

	or	eax, -1
	pop	ebx

; 219  : 			}
; 220  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	4
$L12488:

; 179  : 		else if (_Pcvt == 0)

	mov	ecx, DWORD PTR [esi+60]
	test	ecx, ecx
	jne	SHORT $L12490

; 180  : 			return (_Fputc(_Traits::to_char_type(_Meta), _Myfile)
; 181  : 				? _Meta : _Traits::eof());	// no codecvt facet, put as is

	movsx	edx, bl
	push	eax
	push	edx
	call	_fputc
	add	esp, 8
	cmp	eax, -1
	je	SHORT $L19421
	pop	esi
	mov	eax, ebx
	pop	ebx

; 219  : 			}
; 220  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	4
$L12490:

; 182  : 		else
; 183  : 			{	// put using codecvt facet
; 184  : 			const int _STRING_INC = 8;
; 185  : 			const _Elem _Ch = _Traits::to_char_type(_Meta);
; 186  : 			const _Elem *_Source;
; 187  : 			char *_Dest;
; 188  : 
; 189  : 			_Mystr->erase();

	mov	ecx, DWORD PTR [esi+72]
	push	-1
	push	0
	mov	BYTE PTR __Ch$12493[esp+68], bl
	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

; 190  : 			string _Str(_STRING_INC, '\0');

	xor	edx, edx
	mov	eax, 15					; 0000000fH
	cmp	eax, 16					; 00000010H
	mov	ecx, edx
	mov	BYTE PTR __Str$12496[esp+64], 0
	mov	DWORD PTR __Str$12496[esp+84], eax
	mov	DWORD PTR __Str$12496[esp+64], ecx
	mov	DWORD PTR __Str$12496[esp+68], edx
	mov	DWORD PTR __Str$12496[esp+80], 8
	jae	SHORT $L19896
	lea	ecx, DWORD PTR __Str$12496[esp+64]
$L19896:
	push	ebp
	mov	BYTE PTR [ecx+8], 0
	mov	DWORD PTR __$EHRec$[esp+72], 0
	lea	ebx, DWORD PTR [esi+80]
	push	edi
$L20076:
	mov	eax, DWORD PTR __Str$12496[esp+72]
	mov	ebp, DWORD PTR __Str$12496[esp+92]
$L12577:

; 191  : 			for (; ; )
; 192  : 				switch (_Pcvt->out(_State,
; 193  : 					&_Ch, &_Ch + 1, _Source,
; 194  : 					&*_Str.begin(), &*_Str.begin() + _Str.size(), _Dest))

	cmp	ebp, 16					; 00000010H
	mov	edx, eax
	jae	SHORT $L19960
	lea	edx, DWORD PTR __Str$12496[esp+72]
	mov	eax, edx
$L19960:
	mov	ecx, DWORD PTR [esi+60]
	mov	edi, DWORD PTR [ecx]
	lea	ebp, DWORD PTR __Dest$12495[esp+68]
	push	ebp
	mov	ebp, DWORD PTR __Str$12496[esp+92]
	add	ebp, edx
	push	ebp
	push	eax
	lea	eax, DWORD PTR __Source$12494[esp+80]
	push	eax
	lea	edx, DWORD PTR __Ch$12493[esp+85]
	push	edx
	lea	eax, DWORD PTR __Ch$12493[esp+88]
	push	eax
	push	ebx
	call	DWORD PTR [edi+20]
	test	eax, eax
	jl	$L12711
	cmp	eax, 1
	jg	SHORT $L20067

; 195  : 				{	// test result of converting one element
; 196  : 				case codecvt_base::partial:
; 197  : 				case codecvt_base::ok:
; 198  : 					{	// converted something, try to put it out
; 199  : 					size_t _Count = _Dest - &*_Str.begin();

	mov	ebp, DWORD PTR __Str$12496[esp+92]
	cmp	ebp, 16					; 00000010H
	mov	eax, DWORD PTR __Str$12496[esp+72]
	mov	ecx, eax
	jae	SHORT $L20001
	lea	ecx, DWORD PTR __Str$12496[esp+72]
$L20001:
	mov	edi, DWORD PTR __Dest$12495[esp+68]
	sub	edi, ecx

; 200  : 					if (0 < _Count && _Count !=
; 201  : 						fwrite(&*_Str.begin(), 1, _Count, _Myfile))

	je	SHORT $L12704
	cmp	ebp, 16					; 00000010H
	jae	SHORT $L20036
	lea	eax, DWORD PTR __Str$12496[esp+72]
$L20036:
	mov	ecx, DWORD PTR [esi+88]
	push	ecx
	push	edi
	push	1
	push	eax
	call	_fwrite
	add	esp, 16					; 00000010H
	cmp	edi, eax
	jne	$L12711
	mov	eax, DWORD PTR __Str$12496[esp+72]
	mov	ebp, DWORD PTR __Str$12496[esp+92]
$L12704:

; 202  : 						return (_Traits::eof());	// write failed
; 203  : 
; 204  : 					_Wrotesome = true;	// write succeeded
; 205  : 					if (_Source != &_Ch)

	mov	ecx, DWORD PTR __Source$12494[esp+68]
	lea	edx, DWORD PTR __Ch$12493[esp+68]
	cmp	ecx, edx
	mov	BYTE PTR [esi+76], 1
	jne	$L20069

; 207  : 					if (_Count == 0)

	test	edi, edi
	jne	$L12577

; 208  : 						_Str.append(_STRING_INC, '\0');	// try with more space

	push	edi
	push	8
	lea	ecx, DWORD PTR __Str$12496[esp+76]
	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

; 218  : 				}

	jmp	$L20076
$L20067:

; 191  : 			for (; ; )
; 192  : 				switch (_Pcvt->out(_State,
; 193  : 					&_Ch, &_Ch + 1, _Source,
; 194  : 					&*_Str.begin(), &*_Str.begin() + _Str.size(), _Dest))

	cmp	eax, 3
	jne	$L12711

; 209  : 					break;
; 210  : 					}
; 211  : 
; 212  : 				case codecvt_base::noconv:
; 213  : 					return (_Fputc(_Ch, _Myfile) ? _Meta
; 214  : 						: _Traits::eof());	// no conversion, put as is

	mov	esi, DWORD PTR [esi+88]
	movsx	eax, BYTE PTR __Ch$12493[esp+68]
	push	esi
	push	eax
	call	_fputc
	add	esp, 8
	cmp	eax, -1
	je	SHORT $L19430
	mov	esi, DWORD PTR __Meta$[esp+64]
	lea	ecx, DWORD PTR __Str$12496[esp+68]
	call	??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> >
	pop	edi
	pop	ebp
	mov	eax, esi
	pop	esi
	pop	ebx

; 219  : 			}
; 220  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	4
$L19430:

; 209  : 					break;
; 210  : 					}
; 211  : 
; 212  : 				case codecvt_base::noconv:
; 213  : 					return (_Fputc(_Ch, _Myfile) ? _Meta
; 214  : 						: _Traits::eof());	// no conversion, put as is

	lea	ecx, DWORD PTR __Str$12496[esp+68]
	or	esi, -1
	call	??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> >
	pop	edi
	pop	ebp
	mov	eax, esi
	pop	esi
	pop	ebx

; 219  : 			}
; 220  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	4
$L20069:

; 206  : 						return (_Meta);	// converted whole element

	lea	ecx, DWORD PTR __Str$12496[esp+68]
	call	??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> >
	mov	eax, DWORD PTR __Meta$[esp+64]
	pop	edi
	pop	ebp
	pop	esi
	pop	ebx

; 219  : 			}
; 220  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+52]
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	4
$L12711:

; 215  : 
; 216  : 				default:
; 217  : 					return (_Traits::eof());	// conversion failed

	lea	ecx, DWORD PTR __Str$12496[esp+68]
	call	??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> >

; 219  : 			}
; 220  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+68]
	pop	edi
	pop	ebp
	pop	esi
	or	eax, -1
	pop	ebx
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 52					; 00000034H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L19433:
	lea	ecx, DWORD PTR __Str$12496[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$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z:
	mov	eax, OFFSET FLAT:$T20065
	jmp	___CxxFrameHandler
text$x	ENDS
?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::overflow
EXTRN	_fgetpos:NEAR
EXTRN	_fseek:NEAR
; Function compile flags: /Ogty
;	COMDAT ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z
_TEXT	SEGMENT
__Fileposition$ = -8					; size = 8
___$ReturnUdt$ = 8					; size = 4
__Off$ = 12						; size = 4
__Way$ = 16						; size = 4
___formal$ = 20						; size = 4
?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::seekoff, COMDAT
; _this$ = ecx

; 321  : 		{	// change position by _Off

	sub	esp, 8
	push	ebp

; 322  : 		fpos_t _Fileposition;
; 323  : 
; 324  : 		if (_Mysb::egptr() <= _Mysb::gptr()	// nothing buffered
; 325  : 			|| _Mysb::gptr() != &_Mychar	// nothing putback
; 326  : 			|| _Way != ios_base::cur)		// not a relative seek

	mov	ebp, DWORD PTR __Way$[esp+8]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [esi+32]
	mov	edx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx]
	add	edx, eax
	cmp	edx, eax
	jbe	SHORT $L20135
	mov	edx, DWORD PTR [ecx]
	lea	eax, DWORD PTR [esi+68]
	cmp	edx, eax
	jne	SHORT $L20135
	cmp	ebp, 1
	jne	SHORT $L20135

; 327  : 			;	// don't have to worry about putback character
; 328  : 		else if (_Pcvt == 0)

	mov	eax, DWORD PTR [esi+60]
	test	eax, eax
	jne	SHORT $L12784

; 329  : 			_Off -= (off_type)sizeof (_Elem);	// back up over _Elem bytes

	dec	DWORD PTR __Off$[esp+12]

; 330  : 		else

	jmp	SHORT $L20135
$L12784:

; 331  : 			{	// back up over converted bytes
; 332  : 			for (ptrdiff_t _Nleft = _Mystr->size(); 0 < _Nleft; )

	mov	ecx, DWORD PTR [esi+72]
	push	edi
	mov	edi, DWORD PTR [ecx+20]
	test	edi, edi
	jle	SHORT $L12791
$L12790:

; 333  : 				ungetc(_Mystr->operator[](--_Nleft), _Myfile);

	mov	eax, DWORD PTR [esi+72]
	mov	ecx, DWORD PTR [eax+24]
	dec	edi
	cmp	ecx, 16					; 00000010H
	jb	SHORT $L20111
	mov	eax, DWORD PTR [eax+4]
	jmp	SHORT $L20112
$L20111:
	add	eax, 4
$L20112:
	mov	edx, DWORD PTR [esi+88]
	movsx	eax, BYTE PTR [eax+edi]
	push	edx
	push	eax
	call	_ungetc
	add	esp, 8
	test	edi, edi
	jg	SHORT $L12790
$L12791:

; 334  : 			_Mystr->erase();

	mov	ecx, DWORD PTR [esi+72]
	push	-1
	push	0
	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

; 335  : 			_State = _State0;

	mov	ecx, DWORD PTR [esi+64]
	mov	DWORD PTR [esi+80], ecx
	pop	edi
$L20135:

; 336  : 			}
; 337  : 		if (_Myfile == 0 || !_Endwrite()
; 338  : 			|| (_Off != 0 || _Way != ios_base::cur)
; 339  : 				&& fseek(_Myfile, (long)_Off, _Way) != 0
; 340  : 			|| fgetpos(_Myfile, &_Fileposition) != 0)

	mov	eax, DWORD PTR [esi+88]
	test	eax, eax
	je	$L12794
	mov	ecx, esi
	call	?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
	test	al, al
	je	SHORT $L12794
	mov	eax, DWORD PTR __Off$[esp+12]
	test	eax, eax
	jne	SHORT $L12796
	cmp	ebp, 1
	je	SHORT $L12795
$L12796:
	mov	edx, DWORD PTR [esi+88]
	push	ebp
	push	eax
	push	edx
	call	_fseek
	add	esp, 12					; 0000000cH
	test	eax, eax
	jne	SHORT $L12794
$L12795:
	mov	ecx, DWORD PTR [esi+88]
	lea	eax, DWORD PTR __Fileposition$[esp+16]
	push	eax
	push	ecx
	call	_fgetpos
	add	esp, 8
	test	eax, eax
	jne	SHORT $L12794

; 342  : 		if (_Mysb::gptr() == &_Mychar)

	mov	edx, DWORD PTR [esi+32]
	mov	ecx, DWORD PTR [edx]
	lea	eax, DWORD PTR [esi+68]
	cmp	ecx, eax
	jne	SHORT $L20125

; 343  : 			_Mysb::setg(&_Mychar, &_Mychar, &_Mychar);	// discard any putback

	mov	ecx, DWORD PTR [esi+16]
	mov	DWORD PTR [ecx], eax
	mov	edx, DWORD PTR [esi+32]
	mov	ecx, esi
	mov	DWORD PTR [edx], eax
	mov	edx, DWORD PTR [esi+48]
	sub	ecx, eax
	add	ecx, 68					; 00000044H
	mov	DWORD PTR [edx], ecx
$L20125:

; 344  : 		return (_POS_TYPE_FROM_STATE(pos_type, _State,

	mov	esi, DWORD PTR [esi+80]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+12]
	mov	ecx, DWORD PTR __Fileposition$[esp+16]
	mov	edx, DWORD PTR __Fileposition$[esp+20]
	mov	DWORD PTR [eax+16], esi
	pop	esi
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], edx
	pop	ebp

; 345  : 			_Fileposition));	// return new position
; 346  : 		}

	add	esp, 8
	ret	16					; 00000010H
$L12794:

; 341  : 			return (pos_type(_BADOFF));	// report failure

	mov	ecx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+12]
	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
	pop	esi
	mov	DWORD PTR [eax+16], edx
	pop	ebp

; 345  : 			_Fileposition));	// return new position
; 346  : 		}

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

; 351  : 		{	// change position to _Pos

	sub	esp, 8

; 352  : 		fpos_t _Fileposition = _POS_TYPE_TO_FPOS_T(_Pos);

	mov	eax, DWORD PTR __Pos$[esp+12]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR __Pos$[esp+20]
	mov	DWORD PTR __Fileposition$[esp+12], eax

; 353  : 		off_type _Off = (off_type)_Pos - _FPOSOFF(_Fileposition);
; 354  : 
; 355  : 		if (_Myfile == 0 || !_Endwrite()
; 356  : 			|| fsetpos(_Myfile, &_Fileposition) != 0
; 357  : 			|| _Off != 0 && fseek(_Myfile, (long)_Off, SEEK_CUR) != 0
; 358  : 			|| fgetpos(_Myfile, &_Fileposition) != 0)

	mov	eax, DWORD PTR [esi+88]
	test	eax, eax
	mov	DWORD PTR __Fileposition$[esp+16], ecx
	je	$L12809
	mov	ecx, esi
	call	?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
	test	al, al
	je	$L12809
	mov	eax, DWORD PTR [esi+88]
	lea	edx, DWORD PTR __Fileposition$[esp+12]
	push	edx
	push	eax
	call	_fsetpos
	add	esp, 8
	test	eax, eax
	jne	$L12809
	mov	eax, DWORD PTR __Pos$[esp+8]
	test	eax, eax
	je	SHORT $L12810
	mov	ecx, DWORD PTR [esi+88]
	push	1
	push	eax
	push	ecx
	call	_fseek
	add	esp, 12					; 0000000cH
	test	eax, eax
	jne	SHORT $L12809
$L12810:
	mov	eax, DWORD PTR [esi+88]
	lea	edx, DWORD PTR __Fileposition$[esp+12]
	push	edx
	push	eax
	call	_fgetpos
	add	esp, 8
	test	eax, eax
	jne	SHORT $L12809

; 360  : 		if (_Mystr != 0)

	mov	ecx, DWORD PTR [esi+72]
	test	ecx, ecx
	je	SHORT $L12812

; 361  : 			{	// restore state
; 362  : 			_State = _POS_TYPE_TO_STATE(_Pos);

	mov	edx, DWORD PTR __Pos$[esp+24]

; 363  : 			_Mystr->erase();

	push	-1
	push	eax
	mov	DWORD PTR [esi+80], edx
	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
$L12812:

; 364  : 			}
; 365  : 		if (_Mysb::gptr() == &_Mychar)

	mov	ecx, DWORD PTR [esi+32]
	mov	edx, DWORD PTR [ecx]
	lea	eax, DWORD PTR [esi+68]
	cmp	edx, eax
	jne	SHORT $L20160

; 366  : 			_Mysb::setg(&_Mychar, &_Mychar, &_Mychar);	// discard any putback

	mov	edx, DWORD PTR [esi+16]
	mov	DWORD PTR [edx], eax
	mov	ecx, DWORD PTR [esi+32]
	mov	edx, esi
	sub	edx, eax
	mov	DWORD PTR [ecx], eax
	mov	eax, DWORD PTR [esi+48]
	add	edx, 68					; 00000044H
	mov	DWORD PTR [eax], edx
$L20160:

; 367  : 		return (_POS_TYPE_FROM_STATE(pos_type, _State,

	mov	esi, DWORD PTR [esi+80]
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+8]
	mov	ecx, DWORD PTR __Fileposition$[esp+12]
	mov	edx, DWORD PTR __Fileposition$[esp+16]
	mov	DWORD PTR [eax+16], esi
	mov	DWORD PTR [eax], 0
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], edx
	pop	esi

; 368  : 			_Fileposition));	// return new position
; 369  : 		}

	add	esp, 8
	ret	32					; 00000020H
$L12809:

; 359  : 			return (pos_type(_BADOFF));	// report failure

	mov	ecx, DWORD PTR ?_BADOFF@std@@3JB	; std::_BADOFF
	mov	eax, DWORD PTR ___$ReturnUdt$[esp+8]
	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
	pop	esi

; 368  : 			_Fileposition));	// return new position
; 369  : 		}

	add	esp, 8
	ret	32					; 00000020H
?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::seekpos
_TEXT	ENDS
PUBLIC	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
EXTRN	_fclose:NEAR
; Function compile flags: /Ogty
;	COMDAT ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ
_TEXT	SEGMENT
?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::close, COMDAT
; _this$ = ecx

; 156  : 		{	// close the C stream

	push	ebx
	push	esi
	mov	esi, ecx

; 157  : 		if (_Myfile != 0 && _Endwrite() && fclose(_Myfile) == 0)

	mov	eax, DWORD PTR [esi+88]
	xor	ebx, ebx
	cmp	eax, ebx
	je	SHORT $L13091
	call	?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ ; std::basic_filebuf<char,std::char_traits<char> >::_Endwrite
	test	al, al
	je	SHORT $L13091
	mov	eax, DWORD PTR [esi+88]
	push	eax
	call	_fclose
	add	esp, 4
	test	eax, eax
	jne	SHORT $L13091

; 158  : 			{	// close succeeded, tidy up
; 159  : 			_Init(0, _Closefl);

	mov	ecx, esi
	mov	BYTE PTR [esi+84], bl
	mov	BYTE PTR [esi+76], bl
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	mov	DWORD PTR [esi+88], ebx
	mov	ecx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+80], ecx
	mov	edx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+60], ebx
	mov	DWORD PTR [esi+64], edx

; 160  : 			return (this);

	mov	eax, esi
	pop	esi
	pop	ebx

; 164  : 		}

	ret	0
$L13091:
	pop	esi

; 161  : 			}
; 162  : 		else
; 163  : 			return (0);

	xor	eax, eax
	pop	ebx

; 164  : 		}

	ret	0
?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::close
_TEXT	ENDS
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	??$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
EXTRN	__errno:NEAR
EXTRN	_strtoul:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T20934	DD	0ffffffffH
	DD	FLAT:$L20192
	DD	0ffffffffH
	DD	FLAT:$L20193
	DD	01H
	DD	FLAT:$L20194
	DD	01H
	DD	FLAT:$L20195
	DD	0ffffffffH
	DD	FLAT:$L20196
$T20927	DD	019930520H
	DD	05H
	DD	FLAT:$T20934
	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$20227 = -88					; size = 4
$T20191 = -84						; size = 4
__Lock$20919 = -80					; size = 4
__Ep$13222 = -76					; size = 4
__Str$13168 = -72					; size = 28
__Ac$13221 = -44					; size = 32
$T20190 = -44						; size = 28
$T20189 = -44						; size = 28
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
__First$ = 12						; size = 8
__Last$ = 20						; size = 8
$T20188 = 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	$L13158

; 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 $T20188[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 $T20188[esp+100]
	add	esp, 4
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+108], -1
	je	SHORT $L20928
	push	0
	lea	ecx, DWORD PTR __Lock$20227[esp+104]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L20228
	cmp	eax, -1
	jae	SHORT $L20228
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L20228:
	mov	eax, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	eax, eax
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$20227[esp+100]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L20928
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L20928:

; 313  : 			_Mystr _Str((_Mystrsize)1, (char_type)0);

	mov	eax, 15					; 0000000fH
	mov	BYTE PTR __Str$13168[esp+104], 0
	mov	esi, 16					; 00000010H
	mov	ebp, 1
	mov	DWORD PTR __Str$13168[esp+124], eax
	mov	BYTE PTR __Str$13168[esp+104], 0
	cmp	eax, esi
	mov	eax, DWORD PTR __Str$13168[esp+104]
	mov	DWORD PTR __Str$13168[esp+120], ebp
	jae	SHORT $L20601
	lea	eax, DWORD PTR __Str$13168[esp+104]
$L20601:
	mov	BYTE PTR [eax+1], 0

; 314  : 			_Str += _Punct_fac.falsename();

	lea	eax, DWORD PTR $T20189[esp+100]
	push	eax
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+112], ebp
	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$13168[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
	cmp	DWORD PTR $T20189[esp+124], esi
	mov	BYTE PTR __$EHRec$[esp+108], 1
	jb	SHORT $L20703
	mov	ecx, DWORD PTR $T20189[esp+104]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L20703:

; 315  : 			_Str += (char_type)0;

	push	0
	push	ebp
	lea	ecx, DWORD PTR __Str$13168[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 $T20190[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$13168[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 $T20190[esp+124], esi
	mov	BYTE PTR __$EHRec$[esp+108], 1
	jb	SHORT $L20788
	mov	eax, DWORD PTR $T20190[esp+104]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L20788:

; 317  : 			_Ans = _Getloctxt(_First, _Last, (size_t)2, _Str.c_str());

	cmp	DWORD PTR __Str$13168[esp+124], esi
	mov	eax, DWORD PTR __Str$13168[esp+104]
	jae	SHORT $L20817
	lea	eax, DWORD PTR __Str$13168[esp+104]
$L20817:
	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$13168[esp+140]
	add	esp, 16					; 00000010H
	cmp	eax, esi
	mov	DWORD PTR __$EHRec$[esp+108], -1
	jb	$L20930
	mov	eax, DWORD PTR __Str$13168[esp+104]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4

; 319  : 		else

	jmp	$L20930
$L13158:

; 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 $T20191[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$13221[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$13222[esp+128]
	push	edx
	lea	eax, DWORD PTR __Ac$13221[esp+132]
	push	eax
	call	_strtoul
	mov	esi, DWORD PTR $T20191[esp+136]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+108], -1
	je	SHORT $L20929
	push	0
	lea	ecx, DWORD PTR __Lock$20919[esp+104]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L20920
	cmp	eax, -1
	jae	SHORT $L20920
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L20920:
	mov	edx, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	edx, edx
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$20919[esp+100]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L20929
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L20929:

; 326  : 			if (_Ep != _Ac && errno == 0 && _Ulo <= 1)

	mov	ecx, DWORD PTR __Ep$13222[esp+100]
	lea	eax, DWORD PTR __Ac$13221[esp+100]
	cmp	ecx, eax
	je	SHORT $L20930
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L20930
	cmp	edi, 1
	ja	SHORT $L20930

; 327  : 				_Ans = _Ulo;

	mov	ebp, edi
$L20930:

; 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 $L13232

; 331  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [eax], 1
$L13232:

; 332  : 		if (_Ans < 0)

	test	ebp, ebp
	jge	SHORT $L20933

; 333  : 			_State |= ios_base::failbit;

	or	DWORD PTR [eax], 2

; 334  : 		else

	jmp	SHORT $L13234
$L20933:

; 335  : 			_Val = _Ans != 0;	// deliver value

	mov	eax, DWORD PTR __Val$[esp+96]
	setne	dl
	mov	BYTE PTR [eax], dl
$L13234:

; 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
$L20192:
	lea	ecx, DWORD PTR $T20188[ebp-4]
	jmp	??1locale@std@@QAE@XZ			; std::locale::~locale
$L20193:
	lea	ecx, DWORD PTR __Str$13168[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> >
$L20194:
	lea	ecx, DWORD PTR $T20189[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> >
$L20195:
	lea	ecx, DWORD PTR $T20190[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> >
$L20196:
	lea	ecx, DWORD PTR $T20191[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:$T20927
	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 $L14150

; 901  : 			((_Myt *)this)->_Peek();

	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L14150:

; 902  : 		if (!_Right._Got)

	mov	esi, DWORD PTR __Right$[esp+4]
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L14152

; 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
$L14152:

; 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 $L20966
	test	eax, eax
	je	SHORT $L20942
$L20941:
	pop	edi
	xor	eax, eax
	pop	esi

; 906  : 		}

	ret	4
$L20966:

; 904  : 		return (_Strbuf == 0 && _Right._Strbuf == 0
; 905  : 			|| _Strbuf != 0 && _Right._Strbuf != 0);

	test	eax, eax
	je	SHORT $L20941
$L20942:
	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 $L13790
	mov	eax, DWORD PTR [ecx+32]
	mov	eax, DWORD PTR [eax]
	test	eax, eax
	je	SHORT $L20993
	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 $L20993
	movzx	eax, BYTE PTR [eax]
	jmp	SHORT $L20994
$L20993:
	mov	eax, DWORD PTR [ecx]
	call	DWORD PTR [eax+16]
$L20994:
	cmp	eax, -1
	je	SHORT $L13790

; 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
$L13790:

; 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
$T21021 = -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 $T21021[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
$T21027 = -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 $T21027[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@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 $L13760

; 504  : 			_String_base::_Xran();	// _Roff off end

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

; 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 $L13762

; 507  : 			_Count = _Num;	// trim _Count to size

	mov	esi, eax
$L13762:

; 508  : 		if (npos - _Mysize <= _Count)

	mov	edx, DWORD PTR [ebx+20]
	or	eax, -1
	sub	eax, edx
	cmp	eax, esi
	ja	SHORT $L13763

; 509  : 			_String_base::_Xlen();	// result too long

	mov	ecx, ebx
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L13763:

; 510  : 
; 511  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

	test	esi, esi
	jbe	$L21225
	push	ebp
	mov	ebp, DWORD PTR [ebx+20]
	add	ebp, esi
	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L21137
	mov	ecx, ebx
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L21137:
	mov	eax, DWORD PTR [ebx+24]
	cmp	eax, ebp
	jae	SHORT $L21138
	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
$L21227:
	jbe	SHORT $L21224

; 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 $L21190
	mov	edi, DWORD PTR [edi+4]
	jmp	SHORT $L21191

; 510  : 
; 511  : 		if (0 < _Count && _Grow(_Num = _Mysize + _Count))

$L21138:
	test	ebp, ebp
	jne	SHORT $L21227
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L21181
	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))

$L21181:
	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);

$L21190:
	add	edi, 4
$L21191:
	cmp	DWORD PTR [ebx+24], eax
	lea	edx, DWORD PTR [ebx+4]
	jb	SHORT $L21197
	mov	eax, DWORD PTR [edx]
	jmp	SHORT $L21198
$L21197:
	mov	eax, edx
$L21198:
	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 $L21221
	mov	edx, DWORD PTR [edx]
$L21221:
	mov	BYTE PTR [edx+ebp], 0
$L21224:
	pop	ebp
$L21225:
	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	?_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
$T21269	DD	0ffffffffH
	DD	FLAT:$L21233
$T21266	DD	019930520H
	DD	01H
	DD	FLAT:$T21269
	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$21262 = -32					; size = 4
__Lock$21238 = -32					; size = 4
__Lock$ = -28						; size = 4
$T21231 = -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 $L21237
	push	0
	lea	ecx, DWORD PTR __Lock$21238[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 $L21239
	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
$L21239:
	lea	ecx, DWORD PTR __Lock$21238[esp+36]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
$L21237:

; 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 $L14048

; 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 $L14048
	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 $L14045

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

	push	OFFSET FLAT:??_C@_08EPJLHIJG@bad?5cast?$AA@
	lea	ecx, DWORD PTR $T21231[esp+44]
	call	??0bad_cast@@QAE@PBD@Z			; bad_cast::bad_cast
	push	OFFSET FLAT:__TI2?AVbad_cast@@
	lea	eax, DWORD PTR $T21231[esp+44]
	push	eax
	call	__CxxThrowException@8
$L21270:
$L14045:

; 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$21262[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 $L21263
	inc	eax
	mov	DWORD PTR [edi+4], eax
$L21263:
	lea	ecx, DWORD PTR __Lock$21262[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
$L14048:

; 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
$L21268:
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L21233:
	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:$T21266
	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
$T21299	DD	0ffffffffH
	DD	FLAT:$L21281
	DD	00H
	DD	FLAT:$L21284
	DD	01H
	DD	FLAT:$L21285
$T21295	DD	019930520H
	DD	03H
	DD	FLAT:$T21299
	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
$T21278 = -132						; size = 4
$T21290 = -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 $L21297
	cmp	DWORD PTR [ebp], 0
	jne	SHORT $L21297
	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 $T21278[esp+140], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+148], 0
	je	SHORT $L21279
	mov	DWORD PTR [esi+4], 0
	push	OFFSET FLAT:??_C@_01GFHCPBMG@C?$AA@
	lea	ecx, DWORD PTR $T21290[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 $T21290[esp+140]
	mov	BYTE PTR __$EHRec$[esp+148], 1
	call	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo
	jmp	SHORT $L21280
$L21279:
	xor	esi, esi
$L21280:
	mov	DWORD PTR [ebp], esi
	pop	esi
$L21297:

; 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
$L21281:
	mov	eax, DWORD PTR $T21278[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
$L21284:
	mov	ecx, DWORD PTR $T21278[ebp]
	jmp	??1facet@locale@std@@UAE@XZ		; std::locale::facet::~facet
$L21285:
	lea	ecx, DWORD PTR $T21290[ebp]
	jmp	??1_Locinfo@std@@QAE@XZ			; std::_Locinfo::~_Locinfo
__ehhandler$?_Getcat@?$numpunct@D@std@@SAIPAPBVfacet@locale@2@@Z:
	mov	eax, OFFSET FLAT:$T21295
	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 $L21311
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L21311:
	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
$T21326	DD	0ffffffffH
	DD	FLAT:$L21315
$T21324	DD	019930520H
	DD	01H
	DD	FLAT:$T21326
	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
$L21315:
	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:$T21324
	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	??_C@_05LAPONLG@false?$AA@			; `string'
PUBLIC	??_C@_04LOAJBDKD@true?$AA@			; `string'
PUBLIC	??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z	; std::_Maklocstr<char>
EXTRN	_localeconv:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocale
xdata$x	SEGMENT
$T21397	DD	0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
$T21399	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L21344
$T21398	DD	00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:$T21399
$T21394	DD	019930520H
	DD	02H
	DD	FLAT:$T21397
	DD	01H
	DD	FLAT:$T21398
	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
$T21340 = -36						; size = 8
$T21339 = -28						; size = 8
$T21338 = -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 $T21338[ebp], eax
	lea	eax, DWORD PTR $T21338[ebp]
	push	eax
	push	ebx
	push	ecx
	mov	DWORD PTR $T21338[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 $T21339[ebp+4], edx
	lea	edx, DWORD PTR $T21339[ebp]
	push	edx
	push	ebx
	push	OFFSET FLAT:??_C@_05LAPONLG@false?$AA@
	mov	DWORD PTR $T21339[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 $T21340[ebp], eax
	lea	eax, DWORD PTR $T21340[ebp]
	push	eax
	push	ebx
	push	OFFSET FLAT:??_C@_04LOAJBDKD@true?$AA@
	mov	DWORD PTR $T21340[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
$L21344:

; 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
$L21400:
$L21396:
	int	3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?_Init@?$numpunct@D@std@@IAEXABV_Locinfo@2@@Z:
	mov	eax, OFFSET FLAT:$T21394
	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
$L21408:
	mov	cl, BYTE PTR [eax]
	inc	eax
	test	cl, cl
	jne	SHORT $L21408
	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 $L14228
	npad	5
$L14226:

; 457  : 		*_Ptrnext = (_Elem)(unsigned char)*_Ptr;

	mov	dl, BYTE PTR [edi]
	mov	BYTE PTR [ecx], dl
	inc	ecx
	inc	edi
	dec	esi
	jne	SHORT $L14226
$L14228:
	pop	edi
	pop	esi

; 458  : 	return (_Ptrdest);
; 459  : 	}

	ret	0
??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z ENDP	; std::_Maklocstr<char>
_TEXT	ENDS
PUBLIC	??_C@_0BH@HHDGIIFB@0123456789abcdefABCDEF?$AA@	; `string'
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	?_Inc@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEXXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Inc
EXTRN	_memchr:NEAR
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
xdata$x	SEGMENT
$T22200	DD	0ffffffffH
	DD	FLAT:$L21420
	DD	00H
	DD	FLAT:$L21421
$T22182	DD	019930520H
	DD	02H
	DD	FLAT:$T22200
	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 $L21451

; 559  : 			;	// empty field
; 560  : 		else if (*_First == _MAKLOCCHR(_Elem, '+', _Cvt))

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L21433
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L21433:
	mov	al, BYTE PTR [esi+5]
	cmp	al, 43					; 0000002bH
	jne	SHORT $L13504

; 561  : 			*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	BYTE PTR [ebp], al

; 562  : 		else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	jmp	SHORT $L22198
$L13504:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L21444
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L21444:
	mov	al, BYTE PTR [esi+5]
	cmp	al, 45					; 0000002dH
	jne	SHORT $L21451

; 563  : 			*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	BYTE PTR [ebp], al
$L22198:
	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
$L21451:

; 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 $L21415
	mov	edi, 8
	jmp	SHORT $L22199
$L21415:
	cmp	eax, 2048				; 00000800H
	jne	SHORT $L21413
	mov	edi, 16					; 00000010H
	jmp	SHORT $L22199
$L21413:
	neg	eax
	sbb	eax, eax
	and	eax, 10					; 0000000aH
	mov	edi, eax
$L22199:

; 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	$L13524
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L21463
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L21463:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L13524

; 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 $L22196
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L21479
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L21479:
	cmp	BYTE PTR [esi+5], 120			; 00000078H
	je	SHORT $L13521
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L21487
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L21487:
	cmp	BYTE PTR [esi+5], 88			; 00000058H
	jne	SHORT $L22196
$L13521:
	test	edi, edi
	je	SHORT $L13522
	cmp	edi, 16					; 00000010H
	jne	SHORT $L22196
$L13522:

; 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 $L22190
$L22196:
	test	edi, edi
	jne	SHORT $L22189

; 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 $L22190
$L13524:
	test	edi, edi
	je	SHORT $L21417
$L22189:
	cmp	edi, 10					; 0000000aH
	je	SHORT $L21417
$L22190:
	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 $L21418
$L21417:
	mov	DWORD PTR __Dlen$[esp+100], 10		; 0000000aH
$L21418:

; 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 $L21909
	lea	eax, DWORD PTR __Groups$[esp+104]
$L21909:
	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	$L22193
	npad	2
$L21915:

; 591  : 			if (::memchr("0123456789abcdefABCDEF",
; 592  : 				*_Ptr = _MAKLOCBYTE(_Elem, *_First, _Cvt), _Dlen) != 0)

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L21927
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L21927:
	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 $L13540

; 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 $L13543
	cmp	BYTE PTR [ebp], 48			; 00000030H
	je	SHORT $L13542
$L13543:
	mov	eax, DWORD PTR __Ac$[esp+96]
	add	eax, 31					; 0000001fH
	cmp	ebp, eax
	jae	SHORT $L13542

; 595  : 					++_Ptr, _Nonzero = true;

	inc	ebp
	mov	DWORD PTR __Ptr$[esp+100], ebp
	mov	BYTE PTR __Nonzero$[esp+100], 1
$L13542:

; 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 $L21944
	lea	ecx, DWORD PTR __Groups$[esp+104]
$L21944:
	cmp	BYTE PTR [ecx+edi], 127			; 0000007fH
	je	SHORT $L13532

; 598  : 					++_Groups[_Group];

	cmp	edx, 16					; 00000010H
	jae	SHORT $L21958
	lea	eax, DWORD PTR __Groups$[esp+104]
$L21958:
	inc	BYTE PTR [eax+edi]

; 599  : 				}
; 600  : 			else if (_Groups[_Group] == '\0'

	jmp	SHORT $L13532
$L13540:

; 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 $L21972
	lea	eax, DWORD PTR __Groups$[esp+104]
$L21972:
	cmp	BYTE PTR [eax+edi], 0
	je	SHORT $L22185
	mov	al, BYTE PTR __Kseparator$[esp+100]
	test	al, al
	je	SHORT $L22185
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L21976
	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]
$L21976:
	mov	al, BYTE PTR __Kseparator$[esp+100]
	cmp	BYTE PTR [esi+5], al
	jne	SHORT $L22185

; 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
$L13532:
	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	$L21915
	mov	ebx, DWORD PTR __Groups$[esp+104]
	mov	ebp, DWORD PTR __Groups$[esp+124]
$L22185:

; 608  : 				}
; 609  : 
; 610  : 		if (_Group == 0)

	test	edi, edi
	je	SHORT $L13554

; 611  : 			;	// no thousands separators seen
; 612  : 		else if ('\0' < _Groups[_Group])

	cmp	ebp, 16					; 00000010H
	mov	eax, ebx
	jae	SHORT $L21991
	lea	eax, DWORD PTR __Groups$[esp+104]
$L21991:
	cmp	BYTE PTR [eax+edi], 0
	jle	SHORT $L13553

; 613  : 			++_Group;	// add trailing group to group count

	inc	edi

; 614  : 		else

	jmp	SHORT $L13554
$L13553:

; 615  : 			_Seendigit = false;	// trailing separator, fail

	mov	BYTE PTR __Seendigit$[esp+96], 0
	jmp	SHORT $L13554
$L22193:
	mov	ebx, DWORD PTR __Groups$[esp+104]
	mov	ebp, DWORD PTR __Groups$[esp+124]
$L13554:

; 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 $L22004
	lea	edx, DWORD PTR __Grouping$[esp+104]
$L22004:
	mov	al, BYTE PTR __Seendigit$[esp+96]
	test	al, al
	je	SHORT $L22194
$L13557:
	test	edi, edi
	jbe	SHORT $L22186

; 618  : 			if (*_Pg == CHAR_MAX)

	mov	cl, BYTE PTR [edx]
	cmp	cl, 127					; 0000007fH
	je	SHORT $L22186

; 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 $L13563
	cmp	ebp, esi
	mov	eax, ebx
	jae	SHORT $L22019
	lea	eax, DWORD PTR __Groups$[esp+104]
$L22019:
	cmp	cl, BYTE PTR [eax+edi]
	jne	SHORT $L22194
$L13563:
	test	edi, edi
	jne	SHORT $L13561
	cmp	ebp, esi
	mov	eax, ebx
	jae	SHORT $L22033
	lea	eax, DWORD PTR __Groups$[esp+104]
$L22033:
	cmp	cl, BYTE PTR [eax+edi]
	jl	SHORT $L22194
$L13561:

; 622  : 				_Seendigit = false;	// bad group size, fail
; 623  : 			else if ('\0' < _Pg[1])

	mov	al, BYTE PTR [edx+1]
	test	al, al
	jle	SHORT $L13557

; 616  : 
; 617  : 		for (const char *_Pg = _Grouping.c_str(); _Seendigit && 0 < _Group; )

	inc	edx
	jmp	SHORT $L13557
$L22186:

; 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 $L13568
	mov	BYTE PTR [eax], 48			; 00000030H
	inc	eax

; 628  : 		else if (!_Seendigit)

	jmp	SHORT $L13568
$L22194:

; 629  : 			_Ptr = _Ac;	// roll back pointer to indicate failure

	mov	eax, DWORD PTR __Ac$[esp+96]
$L13568:

; 630  : 		*_Ptr = '\0';
; 631  : 		return (_Base);

	cmp	ebp, esi
	mov	BYTE PTR [eax], 0
	jb	SHORT $L22090
	push	ebx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L22090:
	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 $L22192
	mov	edx, DWORD PTR __Grouping$[esp+88]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L22192:

; 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
$L21420:
	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> >
$L21421:
	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:$T22182
	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
; 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 $L13783
	mov	eax, DWORD PTR [ecx+32]
	cmp	DWORD PTR [eax], 0
	je	SHORT $L22230
	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 $L22230
	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 $L22231
$L22230:
	mov	eax, DWORD PTR [ecx]
	call	DWORD PTR [eax+20]
$L22231:
	cmp	eax, -1
	je	SHORT $L13783

; 915  : 		else
; 916  : 			_Got = false;

	mov	BYTE PTR [esi+4], 0
	pop	esi

; 917  : 		}

	ret	0
$L13783:

; 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
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
_TEXT	ENDS
;	COMDAT ?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T22254 = -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 $T22254[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\iosfwd
xdata$x	SEGMENT
$T22516	DD	0ffffffffH
	DD	FLAT:$L22264
$T22502	DD	019930520H
	DD	01H
	DD	FLAT:$T22516
	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$14066 = 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 $L22512

; 365  : 	string _Str(_Numfields, '\0');	// one column counter for each field

	mov	al, dl
	mov	ecx, ebp
	npad	5
$L14056:

; 363  : 		if (_Ptr[_Off] == _Ptr[0])

	cmp	al, dl
	jne	SHORT $L14057

; 364  : 			++_Numfields;	// add fields with leading mark to initial count

	inc	DWORD PTR __Numfields$[esp+56]
$L14057:
	mov	al, BYTE PTR [ecx+1]
	inc	ecx
	test	al, al
	jne	SHORT $L14056
$L22512:

; 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
$L14063:

; 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$14066[esp+56], 0
	jbe	$L22514
$L14069:

; 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 $L14075
	mov	cl, BYTE PTR [ebp]
$L14073:
	cmp	al, cl
	je	SHORT $L14075
	mov	al, BYTE PTR [esi+ebp+1]
	inc	esi
	test	al, al
	jne	SHORT $L14073
$L14075:

; 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 $L22374
	lea	eax, DWORD PTR __Str$[esp+64]
$L22374:
	cmp	BYTE PTR [eax+edi], 0
	je	SHORT $L14076

; 380  : 				_Off += _Str[_Field];	// skip tested columns in field

	cmp	ecx, 16					; 00000010H
	mov	eax, edx
	jae	SHORT $L22388
	lea	eax, DWORD PTR __Str$[esp+64]
$L22388:
	movsx	ecx, BYTE PTR [eax+edi]
	add	esi, ecx

; 381  : 			else if (_Ptr[_Off += _Column] == _Ptr[0]

	jmp	$L14070
$L14076:

; 382  : 				|| _Ptr[_Off] == (_Elem)0)

	mov	cl, BYTE PTR [ebp]
	add	esi, ebx
	mov	al, BYTE PTR [esi+ebp]
	cmp	al, cl
	je	SHORT $L14080
	test	al, al
	je	SHORT $L14080

; 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 $L14085
	mov	ecx, DWORD PTR __First$[esp+56]
	mov	al, BYTE PTR [ecx+4]
	test	al, al
	jne	SHORT $L22408
	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]
$L22408:
	mov	al, BYTE PTR [esi+ebp]
	cmp	al, BYTE PTR [ecx+5]
	jne	SHORT $L14085

; 392  : 				_Prefix = true;	// still a valid prefix

	mov	BYTE PTR __Prefix$14066[esp+56], 1
	jmp	SHORT $L14070
$L14085:

; 389  : 				_Str[_Field] = (char)(_Column < 127
; 390  : 					? _Column : 127);	// no match, just save skip count

	cmp	ebx, 127				; 0000007fH
	mov	eax, ebx
	jb	SHORT $L22262
	mov	eax, 127				; 0000007fH
$L22262:
	cmp	DWORD PTR __Str$[esp+84], 16		; 00000010H
	mov	ecx, DWORD PTR __Str$[esp+64]
	jae	SHORT $L22424
	lea	ecx, DWORD PTR __Str$[esp+64]
$L22424:
	mov	BYTE PTR [ecx+edi], al

; 391  : 			else

	jmp	SHORT $L14070
$L14080:

; 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 $L22260
	mov	ecx, 127				; 0000007fH
$L22260:
	cmp	DWORD PTR __Str$[esp+84], 16		; 00000010H
	mov	eax, edx
	jae	SHORT $L22402
	lea	eax, DWORD PTR __Str$[esp+64]
$L22402:
	mov	BYTE PTR [eax+edi], cl

; 386  : 				_Ans = (int)_Field;	// save answer

	mov	DWORD PTR __Ans$[esp+60], edi
$L14070:
	mov	eax, DWORD PTR __Numfields$[esp+56]
	inc	edi
	cmp	edi, eax
	jb	$L14069

; 393  : 			}
; 394  : 
; 395  : 		if (!_Prefix || _First == _Last)

	mov	al, BYTE PTR __Prefix$14066[esp+56]
	test	al, al
	je	SHORT $L22514
	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 $L22514
	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	$L14063
$L22514:

; 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 $L22511
	mov	edx, DWORD PTR __Str$[esp+48]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L22511:

; 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
$L22264:
	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:$T22502
	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> > >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xutility
xdata$x	SEGMENT
$T22564	DD	0ffffffffH
	DD	FLAT:$L22527
$T22562	DD	019930520H
	DD	01H
	DD	FLAT:$T22564
	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$22554 = -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
$T22522 = 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 $T22522[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 $T22522[esp+84]
	add	esp, 24					; 00000018H
	test	esi, esi
	mov	ebp, eax
	mov	DWORD PTR __$EHRec$[esp+72], -1
	je	SHORT $L22549
	push	0
	lea	ecx, DWORD PTR __Lock$22554[esp+68]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L22555
	cmp	eax, -1
	jae	SHORT $L22555
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L22555:
	mov	eax, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	eax, eax
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$22554[esp+64]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L22549
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L22549:

; 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 $L22524
	lea	edi, DWORD PTR __Ac$[esp+64]
$L22524:

; 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 $L13244

; 352  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [ebp], 1
$L13244:

; 353  : 		if (_Ep == _Ptr || errno != 0 || USHRT_MAX < _Ans)

	cmp	DWORD PTR __Ep$[esp+64], edi
	je	SHORT $L13246
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13246
	cmp	esi, 65535				; 0000ffffH
	ja	SHORT $L13246

; 355  : 		else
; 356  : 			_Val = (unsigned short)(_Ac[0] == '-'
; 357  : 				? 0 -_Ans : _Ans);	// deliver value

	cmp	BYTE PTR __Ac$[esp+64], 45		; 0000002dH
	jne	SHORT $L22526
	neg	esi
$L22526:
	mov	edx, DWORD PTR __Val$[esp+60]
	mov	WORD PTR [edx], si
	jmp	SHORT $L13247
$L13246:

; 354  : 			_State |= ios_base::failbit;

	or	DWORD PTR [ebp], 2
$L13247:

; 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
$L22527:
	lea	ecx, DWORD PTR $T22522[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:$T22562
	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
$T22612	DD	0ffffffffH
	DD	FLAT:$L22575
$T22610	DD	019930520H
	DD	01H
	DD	FLAT:$T22612
	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$22602 = -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
$T22570 = 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 $T22570[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 $T22570[esp+84]
	add	esp, 24					; 00000018H
	test	esi, esi
	mov	ebp, eax
	mov	DWORD PTR __$EHRec$[esp+72], -1
	je	SHORT $L22597
	push	0
	lea	ecx, DWORD PTR __Lock$22602[esp+68]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L22603
	cmp	eax, -1
	jae	SHORT $L22603
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L22603:
	mov	eax, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	eax, eax
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$22602[esp+64]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L22597
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L22597:

; 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 $L22572
	lea	edi, DWORD PTR __Ac$[esp+64]
$L22572:

; 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 $L13258

; 374  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [ebp], 1
$L13258:

; 375  : 		if (_Ep == _Ptr || errno != 0 || UINT_MAX < _Ans)

	cmp	DWORD PTR __Ep$[esp+64], edi
	je	SHORT $L13260
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13260
	cmp	esi, -1
	ja	SHORT $L13260

; 377  : 		else
; 378  : 			_Val = _Ac[0] == '-' ? 0 -_Ans : _Ans;	// deliver value

	cmp	BYTE PTR __Ac$[esp+64], 45		; 0000002dH
	jne	SHORT $L22574
	neg	esi
$L22574:
	mov	edx, DWORD PTR __Val$[esp+60]
	mov	DWORD PTR [edx], esi
	jmp	SHORT $L13261
$L13260:

; 376  : 			_State |= ios_base::failbit;

	or	DWORD PTR [ebp], 2
$L13261:

; 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
$L22575:
	lea	ecx, DWORD PTR $T22570[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:$T22610
	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
$T22656	DD	0ffffffffH
	DD	FLAT:$L22619
$T22654	DD	019930520H
	DD	01H
	DD	FLAT:$T22656
	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$22646 = -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
$T22618 = 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 $T22618[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 $T22618[esp+92]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+68], -1
	je	SHORT $L22641
	push	0
	lea	ecx, DWORD PTR __Lock$22646[esp+64]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L22647
	cmp	eax, -1
	jae	SHORT $L22647
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L22647:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$22646[esp+60]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L22641
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L22641:

; 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 $L13269

; 393  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L13269:

; 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 $L13271
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13271

; 396  : 		else
; 397  : 			_Val = _Ans;	// deliver value

	mov	edx, DWORD PTR __Val$[esp+56]
	mov	DWORD PTR [edx], edi
	jmp	SHORT $L13272
$L13271:

; 395  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L13272:

; 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
$L22619:
	lea	ecx, DWORD PTR $T22618[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:$T22654
	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
$T22700	DD	0ffffffffH
	DD	FLAT:$L22663
$T22698	DD	019930520H
	DD	01H
	DD	FLAT:$T22700
	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$22690 = -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
$T22662 = 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 $T22662[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 $T22662[esp+92]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+68], -1
	je	SHORT $L22685
	push	0
	lea	ecx, DWORD PTR __Lock$22690[esp+64]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L22691
	cmp	eax, -1
	jae	SHORT $L22691
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L22691:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$22690[esp+60]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L22685
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L22685:

; 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 $L13280

; 412  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L13280:

; 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 $L13282
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13282

; 415  : 		else
; 416  : 			_Val = _Ans;	// deliver value

	mov	edx, DWORD PTR __Val$[esp+56]
	mov	DWORD PTR [edx], edi
	jmp	SHORT $L13283
$L13282:

; 414  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L13283:

; 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
$L22663:
	lea	ecx, DWORD PTR $T22662[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:$T22698
	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
$T22744	DD	0ffffffffH
	DD	FLAT:$L22707
$T22742	DD	019930520H
	DD	01H
	DD	FLAT:$T22744
	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$22734 = -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
$T22706 = 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 $T22706[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 $T22706[esp+96]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	ebx, edx
	mov	DWORD PTR __$EHRec$[esp+72], -1
	je	SHORT $L22729
	push	0
	lea	ecx, DWORD PTR __Lock$22734[esp+68]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L22735
	cmp	eax, -1
	jae	SHORT $L22735
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L22735:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$22734[esp+64]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L22729
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L22729:

; 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 $L13291

; 432  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L13291:

; 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 $L13293
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13293

; 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 $L13294
$L13293:

; 434  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L13294:

; 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
$L22707:
	lea	ecx, DWORD PTR $T22706[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:$T22742
	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
$T22788	DD	0ffffffffH
	DD	FLAT:$L22751
$T22786	DD	019930520H
	DD	01H
	DD	FLAT:$T22788
	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$22778 = -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
$T22750 = 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 $T22750[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 $T22750[esp+96]
	add	esp, 36					; 00000024H
	test	esi, esi
	mov	edi, eax
	mov	ebx, edx
	mov	DWORD PTR __$EHRec$[esp+72], -1
	je	SHORT $L22773
	push	0
	lea	ecx, DWORD PTR __Lock$22778[esp+68]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L22779
	cmp	eax, -1
	jae	SHORT $L22779
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L22779:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$22778[esp+64]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L22773
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L22773:

; 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 $L13302

; 451  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L13302:

; 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 $L13304
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13304

; 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 $L13305
$L13304:

; 453  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L13305:

; 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
$L22751:
	lea	ecx, DWORD PTR $T22750[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:$T22786
	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
$T22828	DD	0ffffffffH
	DD	FLAT:$L22795
$T22826	DD	019930520H
	DD	01H
	DD	FLAT:$T22828
	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$22818 = -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
$T22794 = 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 $T22794[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 $T22794[esp+116]
	add	esp, 32					; 00000020H
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+96], -1
	je	SHORT $L22813
	push	0
	lea	ecx, DWORD PTR __Lock$22818[esp+92]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L22819
	cmp	eax, -1
	jae	SHORT $L22819
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L22819:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$22818[esp+88]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L22813
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L22813:

; 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 $L13313

; 471  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L13313:

; 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 $L13315
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13315

; 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 $L13316
$L13315:

; 473  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L13316:

; 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
$L22795:
	lea	ecx, DWORD PTR $T22794[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:$T22826
	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
$T23811	DD	0ffffffffH
	DD	FLAT:$L22835
	DD	00H
	DD	FLAT:$L22836
$T23771	DD	019930520H
	DD	02H
	DD	FLAT:$T23811
	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$13599 = -85				; size = 1
__Ptr$ = -84						; size = 4
__Pten$ = -80						; size = 4
__Significant$ = -76					; size = 4
__Punct_fac$ = -72					; size = 4
__Groups$13601 = -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 $L22864

; 644  : 			;	// empty field
; 645  : 		else if (*_First == _MAKLOCCHR(_Elem, '+', _Cvt))

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L22846
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L22846:
	cmp	BYTE PTR [esi+5], 43			; 0000002bH
	jne	SHORT $L13582

; 646  : 			*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	BYTE PTR [edi], 43			; 0000002bH

; 647  : 		else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	jmp	SHORT $L23809
$L13582:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L22857
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L22857:
	cmp	BYTE PTR [esi+5], 45			; 0000002dH
	jne	SHORT $L22864

; 648  : 			*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	BYTE PTR [edi], 45			; 0000002dH
$L23809:
	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
$L22864:

; 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 $L22876
	lea	eax, DWORD PTR __Grouping$[esp+108]
$L22876:
	cmp	BYTE PTR [eax], 127			; 0000007fH
	je	$L13590
	cmp	ecx, 16					; 00000010H
	mov	eax, edx
	jae	SHORT $L22890
	lea	eax, DWORD PTR __Grouping$[esp+108]
$L22890:
	cmp	BYTE PTR [eax], 0
	jle	$L13590

; 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$13599[esp+104], al

; 670  : 			string _Groups((size_t)1, '\0');

	mov	eax, 15					; 0000000fH
	mov	BYTE PTR __Groups$13601[esp+108], 0
	mov	DWORD PTR __Groups$13601[esp+128], eax
	mov	BYTE PTR __Groups$13601[esp+108], 0
	cmp	eax, 16					; 00000010H
	mov	eax, DWORD PTR __Groups$13601[esp+108]
	mov	DWORD PTR __Groups$13601[esp+124], 1
	jae	SHORT $L23332
	lea	eax, DWORD PTR __Groups$13601[esp+108]
$L23332:
	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	$L23790
$L23802:

; 674  : 				if (_E0 <= *_First && *_First <= _E0 + 9)

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23348
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23348:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jl	$L13606
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23353
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23353:
	cmp	BYTE PTR [esi+5], 57			; 00000039H
	jg	SHORT $L13606

; 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 $L13607

; 678  : 						++_Pten;	// just scale by 10

	inc	DWORD PTR __Pten$[esp+104]

; 679  : 					else if (*_First == _E0 && _Significant == 0)

	jmp	SHORT $L13610
$L13607:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23358
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23358:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L13609
	test	ebp, ebp
	je	SHORT $L13610
$L13609:

; 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 $L23363
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23363:
	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
$L13610:

; 685  : 						}
; 686  : 					if (_Groups[_Group] != CHAR_MAX)

	mov	edx, DWORD PTR __Groups$13601[esp+128]
	cmp	edx, 16					; 00000010H
	mov	eax, DWORD PTR __Groups$13601[esp+108]
	mov	ecx, eax
	jae	SHORT $L23379
	lea	ecx, DWORD PTR __Groups$13601[esp+108]
$L23379:
	cmp	BYTE PTR [ecx+edi], 127			; 0000007fH
	je	SHORT $L13604

; 687  : 						++_Groups[_Group];

	cmp	edx, 16					; 00000010H
	jae	SHORT $L23393
	lea	eax, DWORD PTR __Groups$13601[esp+108]
$L23393:
	inc	BYTE PTR [eax+edi]

; 688  : 					}
; 689  : 				else if (_Groups[_Group] == '\0'

	jmp	SHORT $L13604
$L13606:

; 690  : 					|| _Kseparator == (_Elem)0
; 691  : 					|| *_First != _Kseparator)

	mov	ebx, DWORD PTR __Groups$13601[esp+128]
	cmp	ebx, 16					; 00000010H
	mov	ebp, DWORD PTR __Groups$13601[esp+108]
	mov	eax, ebp
	jae	SHORT $L23407
	lea	eax, DWORD PTR __Groups$13601[esp+108]
$L23407:
	cmp	BYTE PTR [eax+edi], 0
	je	SHORT $L23779
	mov	al, BYTE PTR __Kseparator$13599[esp+104]
	test	al, al
	je	SHORT $L23779
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23410
	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$13601[esp+108]
	mov	ebx, DWORD PTR __Groups$13601[esp+128]
$L23410:
	mov	dl, BYTE PTR __Kseparator$13599[esp+104]
	cmp	BYTE PTR [esi+5], dl
	jne	SHORT $L23779

; 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$13601[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
$L13604:
	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	$L23802
	mov	ebp, DWORD PTR __Groups$13601[esp+108]
	mov	ebx, DWORD PTR __Groups$13601[esp+128]
$L23779:

; 697  : 					}
; 698  : 			if (_Group == 0)

	test	edi, edi
	je	SHORT $L13621

; 699  : 				;	// no thousands separators seen
; 700  : 			else if ('\0' < _Groups[_Group])

	cmp	ebx, 16					; 00000010H
	mov	eax, ebp
	jae	SHORT $L23426
	lea	eax, DWORD PTR __Groups$13601[esp+108]
$L23426:
	cmp	BYTE PTR [eax+edi], 0
	jle	SHORT $L13620

; 701  : 				++_Group;	// add trailing group to group count

	inc	edi

; 702  : 			else

	jmp	SHORT $L13621
$L13620:

; 703  : 				_Bad = true;	// trailing separator, fail

	mov	BYTE PTR __Bad$[esp+104], 1
	jmp	SHORT $L13621
$L23790:
	mov	ebp, DWORD PTR __Groups$13601[esp+108]
	mov	ebx, DWORD PTR __Groups$13601[esp+128]
$L13621:

; 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 $L23440
	lea	edx, DWORD PTR __Grouping$[esp+108]
$L23440:

; 706  : 				!_Bad && 0 < _Group; )

	mov	al, BYTE PTR __Bad$[esp+104]
	test	al, al
	jne	SHORT $L23780
$L13624:
	test	edi, edi
	jbe	SHORT $L23780

; 707  : 				if (*_Pg == CHAR_MAX)

	mov	cl, BYTE PTR [edx]
	cmp	cl, 127					; 0000007fH
	je	SHORT $L23780

; 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 $L13630
	cmp	ebx, 16					; 00000010H
	mov	eax, ebp
	jae	SHORT $L23454
	lea	eax, DWORD PTR __Groups$13601[esp+108]
$L23454:
	cmp	cl, BYTE PTR [eax+edi]
	jne	SHORT $L13629
$L13630:
	test	edi, edi
	jne	SHORT $L13628
	cmp	ebx, 16					; 00000010H
	mov	eax, ebp
	jae	SHORT $L23468
	lea	eax, DWORD PTR __Groups$13601[esp+108]
$L23468:
	cmp	cl, BYTE PTR [eax+edi]
	jl	SHORT $L13629
$L13628:

; 712  : 				else if ('\0' < _Pg[1])

	mov	al, BYTE PTR [edx+1]
	test	al, al
	jle	SHORT $L13624

; 706  : 				!_Bad && 0 < _Group; )

	inc	edx
	jmp	SHORT $L13624
$L13629:

; 711  : 					_Bad = true;	// bad group size, fail

	mov	BYTE PTR __Bad$[esp+104], 1
$L23780:

; 713  : 					++_Pg;	// group size okay, advance to next test
; 714  : 			}

	cmp	ebx, 16					; 00000010H
	mov	BYTE PTR __$EHRec$[esp+112], 0
	jb	SHORT $L23798
	push	ebp
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L23798:

; 715  : 
; 716  : 		if (_Seendigit && _Significant == 0)

	mov	al, BYTE PTR __Seendigit$[esp+104]
	test	al, al
	je	SHORT $L13633
	mov	edi, DWORD PTR __Significant$[esp+104]
$L23786:
	test	edi, edi
	jne	SHORT $L13633

; 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
$L13633:

; 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 $L23793
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23552
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23552:
	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 $L23793

; 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
$L23793:

; 721  : 
; 722  : 		if (_Significant == 0)

	mov	eax, DWORD PTR __Significant$[esp+104]
	test	eax, eax
	jne	SHORT $L13639

; 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 $L13638
	mov	ebx, DWORD PTR __Last$[esp+100]
	mov	edi, DWORD PTR __Pten$[esp+104]
	npad	7
$L23794:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23575
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23575:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L23804
	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 $L23794
$L23804:
	mov	DWORD PTR __Pten$[esp+104], edi
$L13638:

; 727  : 			if (_Pten < 0)

	mov	eax, DWORD PTR __Pten$[esp+104]
	test	eax, eax
	jge	SHORT $L13639

; 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]
$L13639:

; 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	$L13642
	npad	3
$L23795:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23591
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23591:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jl	$L13642
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23596
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23596:
	cmp	BYTE PTR [esi+5], 57			; 00000039H
	jg	$L13642

; 734  : 			if (_Significant < _MAX_SIG_DIG)

	cmp	DWORD PTR __Significant$[esp+104], 36	; 00000024H
	jge	SHORT $L13641

; 735  : 				{	// save a significant fraction digit
; 736  : 				*_Ptr++ = (*_First - _E0) + '0';

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23601
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23601:
	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]
$L13641:
	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 $L23795

; 738  : 				}
; 739  : 
; 740  : 		if (_Seendigit && _First != _Last
; 741  : 			&& (*_First == _MAKLOCCHR(_Elem, 'e', _Cvt)
; 742  : 				|| *_First == _MAKLOCCHR(_Elem, 'E', _Cvt)))

	jmp	$L23787
$L13590:

; 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	$L13633
	npad	4
$L23792:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L22907
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L22907:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jl	$L23798
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L22912
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L22912:
	cmp	BYTE PTR [esi+5], 57			; 00000039H
	jg	$L23798

; 658  : 				if (_MAX_SIG_DIG <= _Significant)

	mov	edi, DWORD PTR __Significant$[esp+104]
	cmp	edi, 36					; 00000024H
	jl	SHORT $L13594

; 659  : 					++_Pten;	// just scale by 10

	inc	DWORD PTR __Pten$[esp+104]

; 660  : 				else if (*_First == _E0 && _Significant == 0)

	jmp	SHORT $L13592
$L13594:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L22917
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L22917:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L23799
	test	edi, edi
	je	SHORT $L13592
$L23799:

; 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 $L22922
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L22922:
	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
$L13592:
	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	$L23792

; 715  : 
; 716  : 		if (_Seendigit && _Significant == 0)

	jmp	$L23786
$L13642:

; 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	$L23797
$L23787:
	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	$L23797
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23614
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23614:
	cmp	BYTE PTR [esi+5], 101			; 00000065H
	je	SHORT $L13647
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23622
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23622:
	cmp	BYTE PTR [esi+5], 69			; 00000045H
	jne	$L23797
$L13647:

; 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 $L23777

; 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 $L23636
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23636:
	cmp	BYTE PTR [esi+5], 43			; 0000002bH
	jne	SHORT $L13651

; 750  : 				*_Ptr++ = '+', ++_First;	// gather plus sign

	mov	BYTE PTR [ebx], 43			; 0000002bH

; 751  : 			else if (*_First == _MAKLOCCHR(_Elem, '-', _Cvt))

	jmp	SHORT $L23810
$L13651:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23647
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23647:
	cmp	BYTE PTR [esi+5], 45			; 0000002dH
	jne	SHORT $L23777

; 752  : 				*_Ptr++ = '-', ++_First;	// gather minus sign

	mov	BYTE PTR [ebx], 45			; 0000002dH
$L23810:
	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
$L23777:

; 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 $L13658
	mov	ebx, DWORD PTR __Last$[esp+100]
	npad	1
$L13656:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23666
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23666:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jne	SHORT $L13657

; 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 $L13656

; 755  : 			if (_Seendigit)

	jmp	SHORT $L23788
$L13657:
	mov	al, BYTE PTR __Seendigit$[esp+104]
	test	al, al
	je	SHORT $L13658
$L23788:

; 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
$L13658:

; 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 $L23797
	mov	ebx, DWORD PTR __Ptr$[esp+104]
$L23673:
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23685
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23685:
	cmp	BYTE PTR [esi+5], 48			; 00000030H
	jl	SHORT $L23807
	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23690
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23690:
	cmp	BYTE PTR [esi+5], 57			; 00000039H
	jg	SHORT $L23807

; 760  : 				if (_Significant < _MAX_EXP_DIG)

	cmp	edi, 8
	jge	SHORT $L13660

; 761  : 					{	// save a significant exponent digit
; 762  : 					*_Ptr++ = (*_First - _E0) + '0';

	mov	al, BYTE PTR [esi+4]
	test	al, al
	jne	SHORT $L23695
	mov	ecx, esi
	call	?_Peek@?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@AAEDXZ ; std::istreambuf_iterator<char,std::char_traits<char> >::_Peek
$L23695:
	mov	cl, BYTE PTR [esi+5]
	mov	BYTE PTR [ebx], cl
	inc	ebx

; 763  : 					++_Significant;

	inc	edi
$L13660:
	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 $L23673
$L23807:

; 761  : 					{	// save a significant exponent digit
; 762  : 					*_Ptr++ = (*_First - _E0) + '0';

	mov	DWORD PTR __Ptr$[esp+104], ebx
$L23797:

; 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 $L13664
	mov	al, BYTE PTR __Seendigit$[esp+88]
	test	al, al
	jne	SHORT $L23801
$L13664:

; 768  : 			_Ptr = _Ac;	// roll back pointer to indicate failure

	mov	eax, DWORD PTR __Ac$[esp+84]
	jmp	SHORT $L13663
$L23801:
	mov	eax, DWORD PTR __Ptr$[esp+88]
$L13663:

; 769  : 		*_Ptr = '\0';

	mov	BYTE PTR [eax], 0

; 770  : 		return (_Pten);

	cmp	DWORD PTR __Grouping$[esp+112], 16	; 00000010H
	jb	SHORT $L23789
	mov	edx, DWORD PTR __Grouping$[esp+92]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L23789:

; 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
$L22835:
	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> >
$L22836:
	lea	ecx, DWORD PTR __Groups$13601[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:$T23771
	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
$T23851	DD	0ffffffffH
	DD	FLAT:$L23818
$T23849	DD	019930520H
	DD	01H
	DD	FLAT:$T23851
	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$23841 = -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
$T23817 = 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 $T23817[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 $T23817[esp+120]
	add	esp, 32					; 00000020H
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+100], -1
	je	SHORT $L23836
	push	0
	lea	ecx, DWORD PTR __Lock$23841[esp+96]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L23842
	cmp	eax, -1
	jae	SHORT $L23842
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L23842:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$23841[esp+92]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L23836
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L23836:

; 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 $L13324

; 490  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L13324:

; 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 $L13326
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13326

; 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 $L13327
$L13326:

; 492  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L13327:

; 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
$L23818:
	lea	ecx, DWORD PTR $T23817[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:$T23849
	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
$T23891	DD	0ffffffffH
	DD	FLAT:$L23858
$T23889	DD	019930520H
	DD	01H
	DD	FLAT:$T23891
	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$23881 = -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
$T23857 = 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 $T23857[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 $T23857[esp+120]
	add	esp, 32					; 00000020H
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+100], -1
	je	SHORT $L23876
	push	0
	lea	ecx, DWORD PTR __Lock$23881[esp+96]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L23882
	cmp	eax, -1
	jae	SHORT $L23882
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L23882:
	mov	ecx, DWORD PTR [esi+4]
	xor	eax, eax
	test	ecx, ecx
	setne	al
	lea	ecx, DWORD PTR __Lock$23881[esp+92]
	dec	eax
	and	esi, eax
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L23876
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L23876:

; 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 $L13335

; 509  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L13335:

; 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 $L13337
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13337

; 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 $L13338
$L13337:

; 511  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L13338:

; 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
$L23858:
	lea	ecx, DWORD PTR $T23857[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:$T23889
	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
$T23933	DD	0ffffffffH
	DD	FLAT:$L23900
$T23931	DD	019930520H
	DD	01H
	DD	FLAT:$T23933
	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$23923 = -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
$T23897 = 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 $T23897[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 $T23897[esp+88]
	add	esp, 24					; 00000018H
	test	esi, esi
	mov	edi, eax
	mov	DWORD PTR __$EHRec$[esp+76], -1
	je	SHORT $L23918
	push	0
	lea	ecx, DWORD PTR __Lock$23923[esp+72]
	call	??0_Lockit@std@@QAE@H@Z			; std::_Lockit::_Lockit
	mov	eax, DWORD PTR [esi+4]
	test	eax, eax
	jbe	SHORT $L23924
	cmp	eax, -1
	jae	SHORT $L23924
	dec	eax
	mov	DWORD PTR [esi+4], eax
$L23924:
	mov	edx, DWORD PTR [esi+4]
	xor	ecx, ecx
	test	edx, edx
	setne	cl
	dec	ecx
	and	esi, ecx
	lea	ecx, DWORD PTR __Lock$23923[esp+68]
	call	??1_Lockit@std@@QAE@XZ			; std::_Lockit::~_Lockit
	test	esi, esi
	je	SHORT $L23918
	mov	edx, DWORD PTR [esi]
	push	1
	mov	ecx, esi
	call	DWORD PTR [edx]
$L23918:

; 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 $L13350

; 539  : 			_State |= ios_base::eofbit;

	or	DWORD PTR [esi], 1
$L13350:

; 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 $L13352
	call	__errno
	cmp	DWORD PTR [eax], 0
	jne	SHORT $L13352

; 542  : 		else
; 543  : 			_Val = (void *)(uintptr_t)_Ans;	// deliver value

	mov	ecx, DWORD PTR __Val$[esp+64]
	mov	DWORD PTR [ecx], edi
	jmp	SHORT $L13353
$L13352:

; 541  : 			_State |= ios_base::failbit;

	or	DWORD PTR [esi], 2
$L13353:

; 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
$L23900:
	lea	ecx, DWORD PTR $T23897[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:$T23931
	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
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
;	COMDAT ?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
_TEXT	SEGMENT
$T23940 = -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	eax, DWORD PTR [ecx+8]
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR $T23940[esp+12], 0
	call	??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> >
	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
_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
; 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
$L24208:
	mov	cl, BYTE PTR [eax]
	inc	eax
	test	cl, cl
	jne	SHORT $L24208
	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	?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
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
;	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
	push	esi

; 609  : 		if (_Inside(_Ptr))

	mov	esi, DWORD PTR __Ptr$[esp+4]
	push	esi
	mov	ebx, ecx
	call	?_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
	test	al, al
	je	SHORT $L13407

; 610  : 			return (assign(*this, _Ptr - _Myptr(), _Num));	// substring

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	jb	SHORT $L24232
	mov	eax, DWORD PTR [ebx+4]
	mov	ecx, DWORD PTR __Num$[esp+4]
	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	esi
	pop	ebx

; 618  : 		}

	ret	8

; 610  : 			return (assign(*this, _Ptr - _Myptr(), _Num));	// substring

$L24232:
	mov	ecx, DWORD PTR __Num$[esp+4]
	lea	eax, DWORD PTR [ebx+4]
	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	esi
	pop	ebx

; 618  : 		}

	ret	8
$L13407:
	push	ebp

; 611  : 
; 612  : 		if (_Grow(_Num))

	mov	ebp, DWORD PTR __Num$[esp+8]
	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L24354
	mov	ecx, ebx
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L24354:
	mov	eax, DWORD PTR [ebx+24]
	cmp	eax, ebp
	jae	SHORT $L24355
	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
$L24434:
	jbe	SHORT $L24432

; 613  : 			{	// make room and assign new stuff
; 614  : 			_Traits::copy(_Myptr(), _Ptr, _Num);

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	push	edi
	lea	eax, DWORD PTR [ebx+4]
	jb	SHORT $L24407
	mov	edi, DWORD PTR [eax]
	jmp	SHORT $L24408

; 611  : 
; 612  : 		if (_Grow(_Num))

$L24355:
	test	ebp, ebp
	jne	SHORT $L24434
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L24398
	mov	eax, DWORD PTR [ebx+4]
	pop	ebp
	mov	BYTE PTR [eax], 0
	pop	esi

; 616  : 			}
; 617  : 		return (*this);

	mov	eax, ebx
	pop	ebx

; 618  : 		}

	ret	8

; 611  : 
; 612  : 		if (_Grow(_Num))

$L24398:
	lea	eax, DWORD PTR [ebx+4]
	pop	ebp
	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);

$L24407:
	mov	edi, eax
$L24408:
	mov	ecx, ebp
	mov	edx, ecx
	shr	ecx, 2
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb

; 615  : 			_Eos(_Num);

	cmp	DWORD PTR [ebx+24], 16			; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	pop	edi
	jb	SHORT $L24431
	mov	eax, DWORD PTR [eax]
$L24431:
	mov	BYTE PTR [eax+ebp], 0
$L24432:
	pop	ebp
	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
; Function compile flags: /Ogty
_TEXT	ENDS
;	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 $L24443
	mov	edx, DWORD PTR [eax]
	jmp	SHORT $L24444
$L24443:
	mov	edx, eax
$L24444:
	mov	edi, DWORD PTR __Ptr$[esp+4]
	cmp	edi, edx
	jb	SHORT $L13723
	cmp	esi, 16					; 00000010H
	jb	SHORT $L24451
	mov	eax, DWORD PTR [eax]
$L24451:
	mov	ecx, DWORD PTR [ecx+20]
	add	ecx, eax
	cmp	ecx, edi
	jbe	SHORT $L13723
	pop	edi

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

	mov	al, 1
	pop	esi

; 1499 : 		}

	ret	4
$L13723:
	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
; Function compile flags: /Ogty
_TEXT	ENDS
;	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 $L12928

; 592  : 			_String_base::_Xran();	// _Roff off end

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

; 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 $L12930

; 595  : 			_Num = _Count;	// trim _Num to size

	mov	ebp, eax
$L12930:

; 596  : 
; 597  : 		if (this == &_Right)

	cmp	ebx, edi
	jne	SHORT $L12931

; 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
$L12931:

; 599  : 		else if (_Grow(_Num))

	cmp	ebp, -2					; fffffffeH
	jbe	SHORT $L24560
	mov	ecx, ebx
	call	?_Xlen@_String_base@std@@QBEXXZ		; std::_String_base::_Xlen
$L24560:
	mov	eax, DWORD PTR [ebx+24]
	cmp	eax, ebp
	jae	SHORT $L24561
	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
$L24648:
	jbe	SHORT $L24647

; 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 $L24612
	mov	edx, DWORD PTR [edi+4]
	jmp	SHORT $L24613

; 599  : 		else if (_Grow(_Num))

$L24561:
	test	ebp, ebp
	jne	SHORT $L24648
	cmp	eax, 16					; 00000010H
	mov	DWORD PTR [ebx+20], ebp
	jb	SHORT $L24604
	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))

$L24604:
	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);

$L24612:
	lea	edx, DWORD PTR [edi+4]
$L24613:
	cmp	DWORD PTR [ebx+24], eax
	lea	eax, DWORD PTR [ebx+4]
	jb	SHORT $L24619
	mov	edi, DWORD PTR [eax]
	jmp	SHORT $L24620
$L24619:
	mov	edi, eax
$L24620:
	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 $L24642
	mov	eax, DWORD PTR [eax]
$L24642:
	mov	BYTE PTR [eax+ebp], 0
$L24647:
	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
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\xlocnum
_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
$T24653 = -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 $T24653[esp+12], 0
	mov	BYTE PTR [esi+4], 0
	lea	edi, DWORD PTR [eax+1]
	npad	7
$L24761:
	mov	dl, BYTE PTR [eax]
	inc	eax
	test	dl, dl
	jne	SHORT $L24761
	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
$T24766 = -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 $T24766[esp+12], 0
	mov	BYTE PTR [esi+4], 0
	lea	edi, DWORD PTR [eax+1]
	npad	7
$L24874:
	mov	dl, BYTE PTR [eax]
	inc	eax
	test	dl, dl
	jne	SHORT $L24874
	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	?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_ifstream<char,std::char_traits<char> >::close
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
;	COMDAT ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ PROC NEAR ; std::basic_ifstream<char,std::char_traits<char> >::close, COMDAT
; _this$ = ecx

; 550  : 		{	// close the C stream

	push	esi
	mov	esi, ecx

; 551  : 		if (_Filebuffer.close() == 0)

	lea	ecx, DWORD PTR [esi+8]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	SHORT $L24897

; 552  : 			_Myios::setstate(ios_base::failbit);

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

; 553  : 		}

	ret	0
?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_ifstream<char,std::char_traits<char> >::close
_TEXT	ENDS
PUBLIC	??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\iosfwd
xdata$x	SEGMENT
$T25011	DD	0ffffffffH
	DD	FLAT:$L24908
$T25009	DD	019930520H
	DD	01H
	DD	FLAT:$T25011
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
xdata$x	ENDS
;	COMDAT ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 105  : 		{	// destroy the object

	push	-1
	push	__ehhandler$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	push	edi
	mov	edi, ecx
	mov	DWORD PTR _this$[esp+24], edi
	mov	DWORD PTR [edi], OFFSET FLAT:??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@

; 106  : 		if (_Closef)

	mov	al, BYTE PTR [edi+84]
	test	al, al
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L12478

; 107  : 			close();

	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
$L12478:

; 108  : 		_DELETE_CRT(_Mystr);

	mov	esi, DWORD PTR [edi+72]
	test	esi, esi
	je	SHORT $L24906
	cmp	DWORD PTR [esi+24], 16			; 00000010H
	jb	SHORT $L24988
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L24988:
	mov	DWORD PTR [esi+24], 15			; 0000000fH
	mov	DWORD PTR [esi+20], 0
	push	esi
	mov	BYTE PTR [esi+4], 0
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L24906:

; 109  : 		}

	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	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	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L24908:
	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$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ:
	mov	eax, OFFSET FLAT:$T25009
	jmp	___CxxFrameHandler
text$x	ENDS
??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
; Function compile flags: /Ogty
;	COMDAT ??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC NEAR ; std::basic_filebuf<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L25017
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L25017:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_filebuf<char,std::char_traits<char> >::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >
PUBLIC	??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ifstream<char,std::char_traits<char> >::`vftable'
PUBLIC	??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ ; std::basic_ifstream<char,std::char_traits<char> >::`vbtable'
PUBLIC	??_G?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_ifstream<char,std::char_traits<char> >::`scalar deleting destructor'
EXTRN	??_E?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z:NEAR ; std::basic_ifstream<char,std::char_traits<char> >::`vector deleting destructor'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
xdata$x	SEGMENT
$T25165	DD	0ffffffffH
	DD	FLAT:$L25022
	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:$L25024
	DD	02H
	DD	FLAT:$L25025
$T25162	DD	019930520H
	DD	04H
	DD	FLAT:$T25165
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@
CONST	SEGMENT
??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ DD 00H ; std::basic_ifstream<char,std::char_traits<char> >::`vbtable'
	DD	064H
CONST	ENDS
;	COMDAT ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@
CONST	SEGMENT
??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ DD FLAT:??_E?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ; std::basic_ifstream<char,std::char_traits<char> >::`vftable'
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
CONST	ENDS
;	COMDAT ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z
_TEXT	SEGMENT
$T25021 = -20						; size = 4
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
__Filename$ = 8						; size = 4
__Mode$ = 12						; size = 4
__Prot$ = 16						; size = 4
_$initVBases$ = 20					; size = 4
??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z PROC NEAR ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 512  : 		{	// construct with named file and specified mode

	push	-1
	push	__ehhandler$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 8
	mov	eax, DWORD PTR _$initVBases$[esp+16]
	push	ebx
	xor	ebx, ebx
	cmp	eax, ebx
	push	ebp
	mov	ebp, ecx
	mov	DWORD PTR _this$[esp+28], ebp
	mov	DWORD PTR $T25021[esp+28], ebx
	je	SHORT $L12467
	mov	DWORD PTR [ebp], OFFSET FLAT:??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@
	mov	DWORD PTR [ebp+100], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR __$EHRec$[esp+36], ebx
	mov	DWORD PTR $T25021[esp+28], 1
$L12467:
	mov	eax, DWORD PTR [ebp]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+ebp], OFFSET FLAT:??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@
	mov	edx, DWORD PTR [ebp]
	push	esi
	push	edi
	mov	DWORD PTR [ebp+4], ebx
	mov	edi, DWORD PTR [edx+4]
	add	edi, ebp
	mov	ecx, edi
	call	?_Init@ios_base@std@@IAEXXZ		; std::ios_base::_Init
	lea	esi, DWORD PTR [ebp+8]
	push	32					; 00000020H
	mov	ecx, edi
	mov	DWORD PTR [edi+40], esi
	mov	DWORD PTR [edi+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 [edi+48], al
	cmp	DWORD PTR [edi+40], ebx
	jne	SHORT $L25101
	mov	eax, DWORD PTR [edi+8]
	or	eax, 4
	or	eax, 4
	push	ebx
	push	eax
	mov	ecx, edi
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L25101:
	mov	DWORD PTR [edi+4], ebx
	mov	eax, DWORD PTR [ebp]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+ebp], OFFSET FLAT:??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+44], 2
	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> >
	mov	ecx, esi
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@
	mov	DWORD PTR [esi+72], ebx
	mov	BYTE PTR [esi+84], bl
	mov	BYTE PTR [esi+76], bl
	call	?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ ; std::basic_streambuf<char,std::char_traits<char> >::_Init
	mov	DWORD PTR [esi+88], ebx
	mov	edx, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+80], edx
	mov	eax, DWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA ; `std::basic_filebuf<char,std::char_traits<char> >::_Init'::`2'::_Stinit
	mov	DWORD PTR [esi+64], eax
	mov	DWORD PTR [esi+60], ebx

; 513  : 		if (_Filebuffer.open(_Filename, _Mode | ios_base::in, _Prot) == 0)

	mov	ecx, DWORD PTR __Prot$[esp+32]
	mov	edx, DWORD PTR __Mode$[esp+32]
	mov	eax, DWORD PTR __Filename$[esp+32]
	push	ecx
	or	edx, 1
	push	edx
	push	eax
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+56], 3
	call	?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z ; std::basic_filebuf<char,std::char_traits<char> >::open
	test	eax, eax
	pop	edi
	pop	esi
	jne	SHORT $L25163

; 514  : 			_Myios::setstate(ios_base::failbit);

	mov	ecx, DWORD PTR [ebp]
	mov	ecx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [ecx+ebp+8]
	mov	edx, DWORD PTR [ecx+ebp+40]
	add	ecx, ebp
	or	eax, 2
	cmp	edx, ebx
	jne	SHORT $L25156
	or	eax, 4
$L25156:
	push	ebx
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L25163:

; 515  : 		}

	mov	ecx, DWORD PTR __$EHRec$[esp+28]
	mov	eax, ebp
	pop	ebp
	pop	ebx
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 20					; 00000014H
	ret	16					; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25022:
	mov	eax, DWORD PTR $T25021[ebp]
	and	eax, 1
	je	$L25023
	and	DWORD PTR $T25021[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 100				; 00000064H
	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> >
$L25023:
	ret	0
$L25024:
	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> >
$L25025:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 8
	jmp	??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
__ehhandler$??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z:
	mov	eax, OFFSET FLAT:$T25162
	jmp	___CxxFrameHandler
text$x	ENDS
??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z ENDP ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >
PUBLIC	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\istream
xdata$x	SEGMENT
$T25180	DD	0ffffffffH
	DD	FLAT:$L25171
$T25178	DD	019930520H
	DD	01H
	DD	FLAT:$T25180
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\program files\microsoft visual studio .net 2003\vc7\include\fstream
xdata$x	ENDS
;	COMDAT ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ PROC NEAR ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >, COMDAT
; _this$ = ecx

; 523  : 		{	// destroy the object

	push	-1
	push	__ehhandler$??1?$basic_ifstream@DU?$char_traits@D@std@@@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-100]
	mov	edx, DWORD PTR [eax+4]
	push	esi
	mov	DWORD PTR _this$[esp+20], ecx
	mov	DWORD PTR [edx+ecx-100], OFFSET FLAT:??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@

; 524  : 		}

	lea	esi, DWORD PTR [ecx-92]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >
	mov	eax, DWORD PTR [esi-8]
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+esi-8], 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
$L25171:
	mov	ecx, DWORD PTR _this$[ebp]
	sub	ecx, 92					; 0000005cH
	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$??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ:
	mov	eax, OFFSET FLAT:$T25178
	jmp	___CxxFrameHandler
text$x	ENDS
??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ENDP ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
PUBLIC	??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ ; std::basic_ifstream<char,std::char_traits<char> >::`vbase destructor'
; Function compile flags: /Ogty
;	COMDAT ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
_TEXT	SEGMENT
??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ PROC NEAR ; std::basic_ifstream<char,std::char_traits<char> >::`vbase destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx+100]
	mov	ecx, esi
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<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_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ ENDP ; std::basic_ifstream<char,std::char_traits<char> >::`vbase destructor'
_TEXT	ENDS
PUBLIC	??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@	; `string'
PUBLIC	??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@ ; `string'
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
xdata$x	SEGMENT
$T25313	DD	0ffffffffH
	DD	FLAT:$L25190
$T25302	DD	019930520H
	DD	01H
	DD	FLAT:$T25313
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@
CONST	SEGMENT
??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@ DB 'Sensor_List_File', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@
CONST	SEGMENT
??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@ DB 'ERROR! '
	DB	'Sensor can not find file for sensor list', 00H ; `string'
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\nhp.cpp
CONST	ENDS
;	COMDAT ?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
_TEXT	SEGMENT
_detectCount$ = -268					; size = 4
_sensorFile$ = -264					; size = 152
_detectName$ = -112					; size = 100
__$EHRec$ = -12						; size = 12
_obj$ = 8						; size = 4
_exit$ = 12						; size = 4
?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z PROC NEAR	; NHP_Sensor_Array_Zone::Exited, COMDAT
; _this$ = ecx

; 212  : {

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 256				; 00000100H
	push	esi
	mov	esi, ecx

; 213  : 	if (!SensorIsAlive)

	mov	al, BYTE PTR [esi+28]
	test	al, al
	je	$L11739
	push	ebx
	push	edi

; 214  : 		return;
; 215  : 	if (Get_Int_Parameter("Check_Team") == Commands->Get_Player_Type(exit))

	push	OFFSET FLAT:??_C@_0L@HNDGGODA@Check_Team?$AA@
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	mov	ebx, DWORD PTR _exit$[esp+276]
	mov	edi, eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	call	DWORD PTR [eax+248]
	add	esp, 4
	cmp	edi, eax
	je	$L25308

; 216  : 		return;
; 217  : 	std::ifstream sensorFile(Get_Parameter("Sensor_List_File"));

	push	1
	push	438					; 000001b6H
	push	1
	push	OFFSET FLAT:??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	lea	ecx, DWORD PTR _sensorFile$[esp+296]
	call	??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >

; 218  : 	int detectCount;
; 219  : 	char detectName[100];
; 220  : 	if (!sensorFile.is_open())

	mov	eax, DWORD PTR _sensorFile$[esp+376]
	xor	edi, edi
	cmp	eax, edi
	mov	DWORD PTR __$EHRec$[esp+288], edi
	jne	SHORT $L11745

; 221  : 	{
; 222  : 		Commands->Display_Int(0,"ERROR! Sensor can not find file for sensor list");

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	OFFSET FLAT:??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@
	push	edi
	call	DWORD PTR [ecx+316]
	add	esp, 8

; 223  : 		return;

	lea	ecx, DWORD PTR _sensorFile$[esp+380]
	mov	DWORD PTR __$EHRec$[esp+288], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	ecx, DWORD PTR _sensorFile$[esp+380]
	mov	DWORD PTR _sensorFile$[esp+380], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	call	??1ios_base@std@@UAE@XZ			; std::ios_base::~ios_base
	jmp	$L25308
$L11745:
	push	ebp

; 224  : 	}
; 225  : 	sensorFile >> detectCount;

	lea	edx, DWORD PTR _detectCount$[esp+284]
	push	edx
	lea	ecx, DWORD PTR _sensorFile$[esp+288]
	call	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>

; 226  : 	for (int i=0;i<=detectCount;i++)

	mov	ebp, DWORD PTR _detectCount$[esp+284]
	test	ebp, ebp
	jl	SHORT $L11749
	npad	5
$L11747:

; 227  : 	{
; 228  : 		sensorFile >> detectName;

	lea	eax, DWORD PTR _detectName$[esp+284]
	push	eax
	lea	ecx, DWORD PTR _sensorFile$[esp+288]
	push	ecx
	call	??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z ; std::operator>><char,std::char_traits<char> >

; 229  : 		if (!stricmp(Commands->Get_Preset_Name(exit),detectName))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	add	esp, 8
	lea	edx, DWORD PTR _detectName$[esp+284]
	push	edx
	push	ebx
	call	DWORD PTR [eax+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $L25304
	inc	edi
	cmp	edi, ebp
	jle	SHORT $L11747
$L11749:

; 242  : 		}
; 243  : 	}
; 244  : 	sensorFile.close();

	lea	ecx, DWORD PTR _sensorFile$[esp+292]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	SHORT $L25285
	mov	eax, DWORD PTR _sensorFile$[esp+284]
	mov	ecx, DWORD PTR [eax+4]
$L25312:
	mov	eax, DWORD PTR _sensorFile$[esp+ecx+292]
	mov	edx, DWORD PTR _sensorFile$[esp+ecx+324]
	lea	ecx, DWORD PTR _sensorFile$[esp+ecx+284]
	or	eax, 2
	test	edx, edx
	jne	SHORT $L25288
	or	eax, 4
$L25288:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L25285:

; 245  : }

	lea	ecx, DWORD PTR _sensorFile$[esp+384]
	mov	DWORD PTR __$EHRec$[esp+292], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	ecx, DWORD PTR _sensorFile$[esp+384]
	mov	DWORD PTR _sensorFile$[esp+384], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	call	??1ios_base@std@@UAE@XZ			; std::ios_base::~ios_base
	pop	ebp
$L25308:
	pop	edi
	pop	ebx
$L11739:
	mov	ecx, DWORD PTR __$EHRec$[esp+272]
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 268				; 0000010cH
	ret	8
$L25304:

; 230  : 		{
; 231  : 			count--;

	dec	DWORD PTR [esi+32]

; 232  : 			if (count < 0)

	jns	SHORT $L25306

; 233  : 				count = 0;

	mov	DWORD PTR [esi+32], 0
$L25306:

; 234  : 			if (!count)

	mov	eax, DWORD PTR [esi+32]
	test	eax, eax
	jne	SHORT $L11752

; 235  : 			{
; 236  : 				Commands->Stop_Sound(soundId,false);

	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	ecx
	call	DWORD PTR [edx+200]
	add	esp, 8
$L11752:

; 237  : 			}
; 238  : 			//Tell the object that it has left
; 239  : 			Commands->Send_Custom_Event(obj,exit,20103020,1,0);

	mov	eax, DWORD PTR _obj$[esp+280]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	1
	push	20103020				; 0132bf6cH
	push	ebx
	push	eax
	call	DWORD PTR [ecx+140]
	add	esp, 20					; 00000014H

; 240  : 			sensorFile.close();

	lea	ecx, DWORD PTR _sensorFile$[esp+292]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	$L25285
	mov	edx, DWORD PTR _sensorFile$[esp+284]
	mov	ecx, DWORD PTR [edx+4]

; 241  : 			return;

	jmp	$L25312
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25190:
	lea	ecx, DWORD PTR _sensorFile$[ebp]
	jmp	??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
__ehhandler$?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z:
	mov	eax, OFFSET FLAT:$T25302
	jmp	___CxxFrameHandler
text$x	ENDS
?Exited@NHP_Sensor_Array_Zone@@EAEXPAE0@Z ENDP		; NHP_Sensor_Array_Zone::Exited
; Function compile flags: /Ogty
;	COMDAT ??_G?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z PROC NEAR ; std::basic_ifstream<char,std::char_traits<char> >::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	lea	esi, DWORD PTR [ecx-100]
	push	edi
	lea	edi, DWORD PTR [esi+100]
	mov	ecx, edi
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<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 $L25323
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L25323:
	pop	edi
	mov	eax, esi
	pop	esi
	ret	4
??_G?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAEPAXI@Z ENDP ; std::basic_ifstream<char,std::char_traits<char> >::`scalar deleting destructor'
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\program files\microsoft visual studio .net 2003\vc7\include\ios
xdata$x	SEGMENT
$T25449	DD	0ffffffffH
	DD	FLAT:$L25327
$T25439	DD	019930520H
	DD	01H
	DD	FLAT:$T25449
	DD	2 DUP(00H)
	DD	2 DUP(00H)
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\nhp.cpp
xdata$x	ENDS
;	COMDAT ?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
_TEXT	SEGMENT
_detectCount$ = -268					; size = 4
_sensorFile$ = -264					; size = 152
_detectName$ = -112					; size = 100
__$EHRec$ = -12						; size = 12
_obj$ = 8						; size = 4
_enter$ = 12						; size = 4
?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z PROC NEAR	; NHP_Sensor_Array_Zone::Entered, COMDAT
; _this$ = ecx

; 178  : {

	mov	eax, DWORD PTR fs:__except_list
	push	-1
	push	__ehhandler$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	sub	esp, 256				; 00000100H
	push	esi
	mov	esi, ecx

; 179  : 	if (!SensorIsAlive)

	mov	al, BYTE PTR [esi+28]
	test	al, al
	je	$L11577
	push	ebp
	push	edi

; 180  : 		return;
; 181  : 	if (Get_Int_Parameter("Check_Team") == Commands->Get_Player_Type(enter))

	push	OFFSET FLAT:??_C@_0L@HNDGGODA@Check_Team?$AA@
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	mov	ebp, DWORD PTR _enter$[esp+276]
	mov	edi, eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebp
	call	DWORD PTR [eax+248]
	add	esp, 4
	cmp	edi, eax
	je	$L25444

; 182  : 		return;
; 183  : 	std::ifstream sensorFile(Get_Parameter("Sensor_List_File"));

	push	1
	push	438					; 000001b6H
	push	1
	push	OFFSET FLAT:??_C@_0BB@CEMOLLEK@Sensor_List_File?$AA@
	mov	ecx, esi
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	lea	ecx, DWORD PTR _sensorFile$[esp+296]
	call	??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z ; std::basic_ifstream<char,std::char_traits<char> >::basic_ifstream<char,std::char_traits<char> >

; 184  : 	int detectCount;
; 185  : 	char detectName[100];
; 186  : 	if (!sensorFile.is_open())

	mov	eax, DWORD PTR _sensorFile$[esp+376]
	xor	edi, edi
	cmp	eax, edi
	mov	DWORD PTR __$EHRec$[esp+288], edi
	jne	SHORT $L11689

; 187  : 	{
; 188  : 		Commands->Display_Int(0,"ERROR! Sensor can not find file for sensor list");

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	OFFSET FLAT:??_C@_0DA@PBCPBJNG@ERROR?$CB?5Sensor?5can?5not?5find?5file?5@
	push	edi
	call	DWORD PTR [ecx+316]
	add	esp, 8

; 189  : 		return;

	lea	ecx, DWORD PTR _sensorFile$[esp+380]
	mov	DWORD PTR __$EHRec$[esp+288], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	ecx, DWORD PTR _sensorFile$[esp+380]
	mov	DWORD PTR _sensorFile$[esp+380], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	call	??1ios_base@std@@UAE@XZ			; std::ios_base::~ios_base
	jmp	$L25444
$L11689:
	push	ebx

; 190  : 	}
; 191  : 	sensorFile >> detectCount;

	lea	edx, DWORD PTR _detectCount$[esp+284]
	push	edx
	lea	ecx, DWORD PTR _sensorFile$[esp+288]
	call	??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z ; std::basic_istream<char,std::char_traits<char> >::operator>>

; 192  : 	for (int i=0;i<=detectCount;i++)

	mov	ebx, DWORD PTR _detectCount$[esp+284]
	test	ebx, ebx
	jl	SHORT $L11724
	npad	5
$L11722:

; 193  : 	{
; 194  : 		sensorFile >> detectName;

	lea	eax, DWORD PTR _detectName$[esp+284]
	push	eax
	lea	ecx, DWORD PTR _sensorFile$[esp+288]
	push	ecx
	call	??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z ; std::operator>><char,std::char_traits<char> >

; 195  : 		if (!stricmp(Commands->Get_Preset_Name(enter),detectName))

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	add	esp, 8
	lea	edx, DWORD PTR _detectName$[esp+284]
	push	edx
	push	ebp
	call	DWORD PTR [eax+116]
	add	esp, 4
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $L25441
	inc	edi
	cmp	edi, ebx
	jle	SHORT $L11722
$L11724:

; 206  : 		}
; 207  : 	}
; 208  : 	sensorFile.close();

	lea	ecx, DWORD PTR _sensorFile$[esp+292]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	SHORT $L25424
	mov	eax, DWORD PTR _sensorFile$[esp+284]
	mov	ecx, DWORD PTR [eax+4]
$L25448:
	mov	eax, DWORD PTR _sensorFile$[esp+ecx+292]
	mov	edx, DWORD PTR _sensorFile$[esp+ecx+324]
	lea	ecx, DWORD PTR _sensorFile$[esp+ecx+284]
	or	eax, 2
	test	edx, edx
	jne	SHORT $L25427
	or	eax, 4
$L25427:
	push	0
	push	eax
	call	?clear@ios_base@std@@QAEXH_N@Z		; std::ios_base::clear
$L25424:

; 209  : }

	lea	ecx, DWORD PTR _sensorFile$[esp+384]
	mov	DWORD PTR __$EHRec$[esp+292], -1
	call	??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ ; std::basic_ifstream<char,std::char_traits<char> >::~basic_ifstream<char,std::char_traits<char> >
	lea	ecx, DWORD PTR _sensorFile$[esp+384]
	mov	DWORD PTR _sensorFile$[esp+384], OFFSET FLAT:??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@
	call	??1ios_base@std@@UAE@XZ			; std::ios_base::~ios_base
	pop	ebx
$L25444:
	pop	edi
	pop	ebp
$L11577:
	mov	ecx, DWORD PTR __$EHRec$[esp+272]
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 268				; 0000010cH
	ret	8
$L25441:

; 196  : 		{
; 197  : 			count++;

	mov	ecx, DWORD PTR [esi+32]
	inc	ecx

; 198  : 			if (count == 1)

	mov	eax, ecx
	cmp	eax, 1
	mov	DWORD PTR [esi+32], ecx
	jne	SHORT $L11732

; 199  : 			{
; 200  : 				Commands->Start_Sound(soundId);

	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+196]
	add	esp, 4
$L11732:

; 201  : 			}
; 202  : 			//Tell the object that it has entered
; 203  : 			Commands->Send_Custom_Event(obj,enter,20103020,0,0);

	mov	eax, DWORD PTR _obj$[esp+280]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	0
	push	20103020				; 0132bf6cH
	push	ebp
	push	eax
	call	DWORD PTR [ecx+140]
	add	esp, 20					; 00000014H

; 204  : 			sensorFile.close();

	lea	ecx, DWORD PTR _sensorFile$[esp+292]
	call	?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ ; std::basic_filebuf<char,std::char_traits<char> >::close
	test	eax, eax
	jne	$L25424
	mov	edx, DWORD PTR _sensorFile$[esp+284]
	mov	ecx, DWORD PTR [edx+4]

; 205  : 			return;

	jmp	$L25448
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L25327:
	lea	ecx, DWORD PTR _sensorFile$[ebp]
	jmp	??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ
__ehhandler$?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z:
	mov	eax, OFFSET FLAT:$T25439
	jmp	___CxxFrameHandler
text$x	ENDS
?Entered@NHP_Sensor_Array_Zone@@EAEXPAE0@Z ENDP		; NHP_Sensor_Array_Zone::Entered
PUBLIC	??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@ ; `string'
PUBLIC	??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@	; `string'
EXTRN	_atexit:NEAR
CRT$XCU	SEGMENT
_$S3	DD	FLAT:_$E1
CRT$XCU	ENDS
;	COMDAT ??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@
CONST	SEGMENT
??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@ DB 'Money_Gen:str'
	DB	'ing,Guard_Inf:string,Attack_Unit:string,Money_Limit:int,Guard'
	DB	'_Limit:int,Attack_Limit:int,Time_Delay:float,Money_Waypath:in'
	DB	't,Guard_Waypath:int,Attack_Waypath:int', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@
CONST	SEGMENT
??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@ DB 'NHP_Construction_AI', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT _$E1
text$yc	SEGMENT
_$E1	PROC NEAR					; COMDAT

; 290  : ScriptRegistrant<NHP_Construction_AI> NHP_Construction_AI_Registrant("NHP_Construction_AI","Money_Gen:string,Guard_Inf:string,Attack_Unit:string,Money_Limit:int,Guard_Limit:int,Attack_Limit:int,Time_Delay:float,Money_Waypath:int,Guard_Waypath:int,Attack_Waypath:int");

	push	OFFSET FLAT:??_C@_0KO@JACCPGEM@Money_Gen?3string?0Guard_Inf?3strin@
	push	OFFSET FLAT:??_C@_0BE@PNFNPKL@NHP_Construction_AI?$AA@
	mov	ecx, OFFSET FLAT:?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A
	call	??0?$ScriptRegistrant@VNHP_Construction_AI@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Construction_AI>::ScriptRegistrant<NHP_Construction_AI>
	push	OFFSET FLAT:_$E2
	call	_atexit
	pop	ecx
	ret	0
_$E1	ENDP
text$yc	ENDS
PUBLIC	??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@ ; `string'
PUBLIC	??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@	; `string'
CRT$XCU	SEGMENT
_$S6	DD	FLAT:_$E4
CRT$XCU	ENDS
;	COMDAT ??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@
CONST	SEGMENT
??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@ DB 'Presets_1-4_W'
	DB	'eapon:string,Presets_5-6_Weapon:string,Other_Weapon:string,Pr'
	DB	'eset_One:string,Preset_Two:string,Preset_Three:string,Preset_'
	DB	'Four:string,Preset_Five:string,Preset_Six:string,Preset_Seven'
	DB	':string,Preset_Eight:string', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@
CONST	SEGMENT
??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@ DB 'NHP_Smart_Targetting', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT _$E4
text$yc	SEGMENT
_$E4	PROC NEAR					; COMDAT

; 291  : ScriptRegistrant<NHP_Smart_Targetting> NHP_Smart_Targetting_Registrant("NHP_Smart_Targetting","Presets_1-4_Weapon:string,Presets_5-6_Weapon:string,Other_Weapon:string,Preset_One:string,Preset_Two:string,Preset_Three:string,Preset_Four:string,Preset_Five:string,Preset_Six:string,Preset_Seven:string,Preset_Eight:string");

	push	OFFSET FLAT:??_C@_0OA@JEOKLGIA@Presets_1?94_Weapon?3string?0Preset@
	push	OFFSET FLAT:??_C@_0BF@HJIAEKLM@NHP_Smart_Targetting?$AA@
	mov	ecx, OFFSET FLAT:?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A
	call	??0?$ScriptRegistrant@VNHP_Smart_Targetting@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Smart_Targetting>::ScriptRegistrant<NHP_Smart_Targetting>
	push	OFFSET FLAT:_$E5
	call	_atexit
	pop	ecx
	ret	0
_$E4	ENDP
text$yc	ENDS
PUBLIC	??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@ ; `string'
PUBLIC	??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@		; `string'
CRT$XCU	SEGMENT
_$S9	DD	FLAT:_$E7
CRT$XCU	ENDS
;	COMDAT ??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@
CONST	SEGMENT
??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@ DB 'Distance:float,'
	DB	'Speed:float', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@
CONST	SEGMENT
??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@ DB 'NHP_Guard_Bot', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT _$E7
text$yc	SEGMENT
_$E7	PROC NEAR					; COMDAT

; 292  : ScriptRegistrant<NHP_Guard_Bot> NHP_Guard_Bot_Registrant("NHP_Guard_Bot","Distance:float,Speed:float");

	push	OFFSET FLAT:??_C@_0BL@IAJHMGBA@Distance?3float?0Speed?3float?$AA@
	push	OFFSET FLAT:??_C@_0O@CFNCFLAK@NHP_Guard_Bot?$AA@
	mov	ecx, OFFSET FLAT:?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A
	call	??0?$ScriptRegistrant@VNHP_Guard_Bot@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Guard_Bot>::ScriptRegistrant<NHP_Guard_Bot>
	push	OFFSET FLAT:_$E8
	call	_atexit
	pop	ecx
	ret	0
_$E7	ENDP
text$yc	ENDS
PUBLIC	??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@ ; `string'
PUBLIC	??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@	; `string'
CRT$XCU	SEGMENT
_$S12	DD	FLAT:_$E10
CRT$XCU	ENDS
;	COMDAT ??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@
CONST	SEGMENT
??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@ DB 'Sensor_List_Fi'
	DB	'le:string,Sound_Preset:string,Sound_Position:vector3,Check_Te'
	DB	'am:int', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@
CONST	SEGMENT
??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@ DB 'NHP_Sensor_Array_Zone', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT _$E10
text$yc	SEGMENT
_$E10	PROC NEAR					; COMDAT

; 293  : ScriptRegistrant<NHP_Sensor_Array_Zone> NHP_Sensor_Array_Zone_Registrant("NHP_Sensor_Array_Zone","Sensor_List_File:string,Sound_Preset:string,Sound_Position:vector3,Check_Team:int");

	push	OFFSET FLAT:??_C@_0FC@FILLCJII@Sensor_List_File?3string?0Sound_Pr@
	push	OFFSET FLAT:??_C@_0BG@BOLOBHNN@NHP_Sensor_Array_Zone?$AA@
	mov	ecx, OFFSET FLAT:?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A
	call	??0?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Sensor_Array_Zone>::ScriptRegistrant<NHP_Sensor_Array_Zone>
	push	OFFSET FLAT:_$E11
	call	_atexit
	pop	ecx
	ret	0
_$E10	ENDP
text$yc	ENDS
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$AA@	; `string'
CRT$XCU	SEGMENT
_$S15	DD	FLAT:_$E13
CRT$XCU	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$AA@
CONST	SEGMENT
??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$AA@ DB 'NHP_Sensorable_Object', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT _$E13
text$yc	SEGMENT
_$E13	PROC NEAR					; COMDAT

; 294  : ScriptRegistrant<NHP_Sensorable_Object> NHP_Sensorable_Object_Registrant("NHP_Sensorable_Object","");

	push	OFFSET FLAT:??_C@_00CNPNBAHC@?$AA@
	push	OFFSET FLAT:??_C@_0BG@HLJDKIAH@NHP_Sensorable_Object?$AA@
	mov	ecx, OFFSET FLAT:?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A
	call	??0?$ScriptRegistrant@VNHP_Sensorable_Object@@@@QAE@PAD0@Z ; ScriptRegistrant<NHP_Sensorable_Object>::ScriptRegistrant<NHP_Sensorable_Object>
	push	OFFSET FLAT:_$E14
	call	_atexit
	pop	ecx
	ret	0
_$E13	ENDP
; Function compile flags: /Ogty
text$yc	ENDS
;	COMDAT _$E2
text$yd	SEGMENT
_$E2	PROC NEAR					; COMDAT
	mov	ecx, OFFSET FLAT:?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A
	jmp	??1?$ScriptRegistrant@VNHP_Construction_AI@@@@UAE@XZ
_$E2	ENDP
; Function compile flags: /Ogty
text$yd	ENDS
;	COMDAT _$E5
text$yd	SEGMENT
_$E5	PROC NEAR					; COMDAT
	mov	ecx, OFFSET FLAT:?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A
	jmp	??1?$ScriptRegistrant@VNHP_Smart_Targetting@@@@UAE@XZ
_$E5	ENDP
; Function compile flags: /Ogty
text$yd	ENDS
;	COMDAT _$E8
text$yd	SEGMENT
_$E8	PROC NEAR					; COMDAT
	mov	ecx, OFFSET FLAT:?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A
	jmp	??1?$ScriptRegistrant@VNHP_Guard_Bot@@@@UAE@XZ
_$E8	ENDP
; Function compile flags: /Ogty
text$yd	ENDS
;	COMDAT _$E11
text$yd	SEGMENT
_$E11	PROC NEAR					; COMDAT
	mov	ecx, OFFSET FLAT:?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A
	jmp	??1?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@UAE@XZ
_$E11	ENDP
; Function compile flags: /Ogty
text$yd	ENDS
;	COMDAT _$E14
text$yd	SEGMENT
_$E14	PROC NEAR					; COMDAT
	mov	ecx, OFFSET FLAT:?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A
	jmp	??1?$ScriptRegistrant@VNHP_Sensorable_Object@@@@UAE@XZ
_$E14	ENDP
text$yd	ENDS
PUBLIC	?id@?$codecvt@DDH@std@@2V0locale@2@A		; std::codecvt<char,char,int>::id
PUBLIC	?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A ; NHP_Construction_AI_Registrant
PUBLIC	?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A ; NHP_Smart_Targetting_Registrant
PUBLIC	?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A ; NHP_Guard_Bot_Registrant
PUBLIC	?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A ; NHP_Sensor_Array_Zone_Registrant
PUBLIC	?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A ; NHP_Sensorable_Object_Registrant
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
PUBLIC	?id@?$numpunct@D@std@@2V0locale@2@A		; std::numpunct<char>::id
;	COMDAT ?id@?$codecvt@DDH@std@@2V0locale@2@A
_BSS	SEGMENT
?id@?$codecvt@DDH@std@@2V0locale@2@A DD 01H DUP (?)	; std::codecvt<char,char,int>::id
_BSS	ENDS
_BSS	SEGMENT
?NHP_Construction_AI_Registrant@@3V?$ScriptRegistrant@VNHP_Construction_AI@@@@A DB 010H DUP (?) ; NHP_Construction_AI_Registrant
?NHP_Smart_Targetting_Registrant@@3V?$ScriptRegistrant@VNHP_Smart_Targetting@@@@A DB 010H DUP (?) ; NHP_Smart_Targetting_Registrant
?NHP_Guard_Bot_Registrant@@3V?$ScriptRegistrant@VNHP_Guard_Bot@@@@A DB 010H DUP (?) ; NHP_Guard_Bot_Registrant
?NHP_Sensor_Array_Zone_Registrant@@3V?$ScriptRegistrant@VNHP_Sensor_Array_Zone@@@@A DB 010H DUP (?) ; NHP_Sensor_Array_Zone_Registrant
?NHP_Sensorable_Object_Registrant@@3V?$ScriptRegistrant@VNHP_Sensorable_Object@@@@A DB 010H DUP (?) ; NHP_Sensorable_Object_Registrant
_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
;	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
END
