You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7884 lines
255 KiB
7884 lines
255 KiB
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1
|
|
|
|
include listing.inc
|
|
|
|
INCLUDELIB MSVCRTD
|
|
INCLUDELIB OLDNAMES
|
|
|
|
msvcjmc SEGMENT
|
|
__B2D2BA86_ctype@h DB 01H
|
|
__79C7FC57_basetsd@h DB 01H
|
|
__1FEB9909_corecrt_memcpy_s@h DB 01H
|
|
__A751F051_corecrt_memory@h DB 01H
|
|
__9200769A_corecrt_wstring@h DB 01H
|
|
__32E5F013_string@h DB 01H
|
|
__D545DD43_guiddef@h DB 01H
|
|
__D5DDFBF3_winnt@h DB 01H
|
|
__439612F0_processthreadsapi@h DB 01H
|
|
__5733279A_memoryapi@h DB 01H
|
|
__D4435474_winerror@h DB 01H
|
|
__B3ED30D4_winbase@h DB 01H
|
|
__DB057BA3_winuser@h DB 01H
|
|
__A7113148_winioctl@h DB 01H
|
|
__B49664B7_stdlib@h DB 01H
|
|
__EC5BC72C_propidl@h DB 01H
|
|
__6DA674A0_oleauto@h DB 01H
|
|
__A118E6DC_stralign@h DB 01H
|
|
__02E23235_vcruntime_new@h DB 01H
|
|
__A2143F22_corecrt_stdio_config@h DB 01H
|
|
__829E1958_corecrt_wstdio@h DB 01H
|
|
__6DFAE8B8_stdio@h DB 01H
|
|
__C6E16F6F_corecrt_wconio@h DB 01H
|
|
__6D390390_corecrt_wio@h DB 01H
|
|
__1157D6BA_corecrt_wtime@h DB 01H
|
|
__1DC1E279_stat@h DB 01H
|
|
__93DC0B45_wchar@h DB 01H
|
|
__256B8DBF_cstddef DB 01H
|
|
__741AE07E_corecrt_math@h DB 01H
|
|
__80A05712_cstdlib DB 01H
|
|
__44860E64_limits DB 01H
|
|
__D1154D4E_type_traits DB 01H
|
|
__20BB4341_malloc@h DB 01H
|
|
__BDCC0984_vcruntime_exception@h DB 01H
|
|
__89F7010A_exception DB 01H
|
|
__7CE971A6_xutility DB 01H
|
|
__DD38B15A_xmemory DB 01H
|
|
__CB45C7EF_tuple DB 01H
|
|
__3033C7F7_xpolymorphic_allocator@h DB 01H
|
|
__A9EB37C6_xstring DB 01H
|
|
__8CFB8476_string DB 01H
|
|
__6D66DEAE_cmath DB 01H
|
|
__00B93B57_stdexcept DB 01H
|
|
__79ECA8A5_xcall_once@h DB 01H
|
|
__A0B61CF9_time@h DB 01H
|
|
__8476F639_xthreads@h DB 01H
|
|
__2FB352A6_atomic DB 01H
|
|
__C6B1BA85_system_error DB 01H
|
|
__65F43743_vcruntime_typeinfo@h DB 01H
|
|
__0C3682BF_typeinfo DB 01H
|
|
__F82802EA_memory DB 01H
|
|
__D46D55E5_xfacet DB 01H
|
|
__13BF6177_xlocinfo DB 01H
|
|
__76D543F7_xlocale DB 01H
|
|
__2A5A1664_xiosbase DB 01H
|
|
__E85225E0_xlocnum DB 01H
|
|
__FD1AE8DD_ios DB 01H
|
|
__C33030D8_xlocmon DB 01H
|
|
__B7A2C865_xloctime DB 01H
|
|
__8660297E_xed-util@h DB 01H
|
|
__F79B480A_xed-iform-map@h DB 01H
|
|
__F5B5218E_xed-inst@h DB 01H
|
|
__68D74A7D_xed-flags@h DB 01H
|
|
__A4B65E9F_xed-operand-accessors@h DB 01H
|
|
__E8B35E51_xed-state@h DB 01H
|
|
__1E3F2A25_xed-encode@h DB 01H
|
|
__1C89993E_xed-encoder-hl@h DB 01H
|
|
__0AA8C18B_xed-decoded-inst-api@h DB 01H
|
|
__0A045E7B_NativeCode@h DB 01H
|
|
__8546B33E_Jit@cpp DB 01H
|
|
__092B7E84_vector DB 01H
|
|
__0615AC09_istream DB 01H
|
|
__65C59933_ostream DB 01H
|
|
__021983EB_streambuf DB 01H
|
|
__6D45C6E6_iterator DB 01H
|
|
__886FDBE2_iosfwd DB 01H
|
|
__B7ADD299_utility DB 01H
|
|
__40B2458B_xstddef DB 01H
|
|
__83FB8DDC_xatomic@h DB 01H
|
|
msvcjmc ENDS
|
|
PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete
|
|
PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete
|
|
PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete
|
|
PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete
|
|
PUBLIC wmemcpy
|
|
PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned
|
|
PUBLIC ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all
|
|
PUBLIC ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked
|
|
PUBLIC ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked
|
|
PUBLIC ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr<wchar_t>
|
|
PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs
|
|
PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr<char>
|
|
PUBLIC ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getvals<wchar_t>
|
|
PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t> > >::_Getvals<wchar_t>
|
|
PUBLIC ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ; _NATIVE_CODE_LINK::`scalar deleting destructor'
|
|
PUBLIC ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator<unsigned long>::deallocate
|
|
PUBLIC ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector<unsigned long,std::allocator<unsigned long> >::~vector<unsigned long,std::allocator<unsigned long> >
|
|
PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector<unsigned long,std::allocator<unsigned long> >::_Destroy
|
|
PUBLIC ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector<unsigned long,std::allocator<unsigned long> >::_Tidy
|
|
PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector<unsigned long,std::allocator<unsigned long> >::_Getal
|
|
PUBLIC ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair<std::allocator<unsigned long>,std::_Vector_val<std::_Simple_types<unsigned long> >,1>::_Get_first
|
|
PUBLIC ??1_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK
|
|
PUBLIC ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ; _NATIVE_CODE_BLOCK::`scalar deleting destructor'
|
|
PUBLIC ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst
|
|
PUBLIC ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst
|
|
PUBLIC ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions
|
|
PUBLIC ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger
|
|
PUBLIC ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; JitDoesInstOverriteConditionFlags
|
|
PUBLIC ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; JitAreFlagsClobberedBeforeUse
|
|
PUBLIC ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ; JitMutateInstForXor
|
|
PUBLIC ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ; JitMutateInstForOr
|
|
PUBLIC ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ; JitMutateInstForAnd
|
|
PUBLIC ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov
|
|
PUBLIC ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPostRipMov
|
|
PUBLIC ?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ; JitEmitPreRipBitwiseOp
|
|
PUBLIC ?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ; JitEmitPostRipBitwiseOp
|
|
PUBLIC ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD
|
|
PUBLIC ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW
|
|
PUBLIC ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB
|
|
PUBLIC ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator<std::_Container_proxy>::allocator<std::_Container_proxy><unsigned long>
|
|
PUBLIC ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange<std::_Container_proxy *,std::nullptr_t>
|
|
PUBLIC ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal<std::allocator<std::_Container_proxy> >
|
|
PUBLIC ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range<std::allocator<unsigned long> >
|
|
PUBLIC ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0>
|
|
PUBLIC ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain<std::allocator<std::_Container_proxy> >
|
|
PUBLIC ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits<std::allocator<std::_Container_proxy> >::deallocate
|
|
PUBLIC __JustMyCode_Default
|
|
PUBLIC ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var
|
|
PUBLIC ??_C@_0BB@FCMFBGOM@invalid?5argument@ ; `string'
|
|
PUBLIC ??_C@_02DKCKIIND@?$CFs@ ; `string'
|
|
PUBLIC ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string'
|
|
PUBLIC ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string'
|
|
PUBLIC ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ ; `string'
|
|
PUBLIC ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ ; `string'
|
|
PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string'
|
|
PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var
|
|
PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string'
|
|
PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string'
|
|
PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string'
|
|
EXTRN ??2@YAPEAX_K@Z:PROC ; operator new
|
|
EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete
|
|
EXTRN __imp__invalid_parameter:PROC
|
|
EXTRN memcpy:PROC
|
|
EXTRN __imp_wcslen:PROC
|
|
EXTRN strlen:PROC
|
|
EXTRN __imp_rand:PROC
|
|
EXTRN __imp__calloc_dbg:PROC
|
|
EXTRN __imp__CrtDbgReport:PROC
|
|
EXTRN __imp_??0_Lockit@std@@QEAA@H@Z:PROC
|
|
EXTRN __imp_??1_Lockit@std@@QEAA@XZ:PROC
|
|
EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc
|
|
EXTRN _Mbrtowc:PROC
|
|
EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC
|
|
EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC
|
|
EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC
|
|
EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC
|
|
EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC
|
|
EXTRN xed_simple_flag_get_read_flag_set:PROC
|
|
EXTRN xed_simple_flag_get_written_flag_set:PROC
|
|
EXTRN xed_simple_flag_get_undefined_flag_set:PROC
|
|
EXTRN xed_decode:PROC
|
|
EXTRN xed_decoded_inst_get_rflags_info:PROC
|
|
EXTRN ??0_NATIVE_CODE_LINK@@QEAA@XZ:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
EXTRN ??1_NATIVE_CODE_LINK@@QEAA@XZ:PROC ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK
|
|
EXTRN ??0_NATIVE_CODE_BLOCK@@QEAA@XZ:PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK
|
|
EXTRN ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcAppendToBlock
|
|
EXTRN ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDeleteBlock
|
|
EXTRN ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeXorD
|
|
EXTRN ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeXorW
|
|
EXTRN ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeXorB
|
|
EXTRN ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeAndD
|
|
EXTRN ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeAndW
|
|
EXTRN ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeAndB
|
|
EXTRN ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeOrD
|
|
EXTRN ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeOrW
|
|
EXTRN ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z:PROC ; JitEmitRipRelativeOrB
|
|
EXTRN ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z:PROC ; JitEmitRipRelativeMovD
|
|
EXTRN ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z:PROC ; JitEmitRipRelativeMovW
|
|
EXTRN ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z:PROC ; JitEmitRipRelativeMovB
|
|
EXTRN _RTC_CheckStackVars:PROC
|
|
EXTRN _RTC_InitBase:PROC
|
|
EXTRN _RTC_Shutdown:PROC
|
|
EXTRN __CheckForDebuggerJustMyCode:PROC
|
|
EXTRN __CxxFrameHandler4:PROC
|
|
EXTRN __GSHandlerCheck:PROC
|
|
EXTRN __GSHandlerCheck_EH4:PROC
|
|
EXTRN __security_check_cookie:PROC
|
|
EXTRN __security_cookie:QWORD
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3
|
|
DD imagerel $LN3+41
|
|
DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3
|
|
DD imagerel $LN3+46
|
|
DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3
|
|
DD imagerel $LN3+46
|
|
DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3
|
|
DD imagerel $LN3+51
|
|
DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$wmemcpy DD imagerel $LN3
|
|
DD imagerel $LN3+83
|
|
DD imagerel $unwind$wmemcpy
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21
|
|
DD imagerel $LN21+453
|
|
DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4
|
|
DD imagerel $LN4+66
|
|
DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6
|
|
DD imagerel $LN6+123
|
|
DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3
|
|
DD imagerel $LN3+151
|
|
DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12
|
|
DD imagerel $LN12+586
|
|
DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4
|
|
DD imagerel $LN4+142
|
|
DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7
|
|
DD imagerel $LN7+200
|
|
DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5
|
|
DD imagerel $LN5+356
|
|
DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5
|
|
DD imagerel $LN5+356
|
|
DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4
|
|
DD imagerel $LN4+82
|
|
DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3
|
|
DD imagerel $LN3+77
|
|
DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3
|
|
DD imagerel $LN3+203
|
|
DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3
|
|
DD imagerel $LN3+85
|
|
DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4
|
|
DD imagerel $LN4+257
|
|
DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3
|
|
DD imagerel $LN3+56
|
|
DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3
|
|
DD imagerel $LN3+48
|
|
DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3
|
|
DD imagerel $LN3+48
|
|
DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4
|
|
DD imagerel $LN4+82
|
|
DD imagerel $unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6
|
|
DD imagerel $LN6+280
|
|
DD imagerel $unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA
|
|
DD imagerel ?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+44
|
|
DD imagerel $unwind$?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6
|
|
DD imagerel $LN6+280
|
|
DD imagerel $unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA
|
|
DD imagerel ?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+44
|
|
DD imagerel $unwind$?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD imagerel $LN11
|
|
DD imagerel $LN11+376
|
|
DD imagerel $unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD imagerel $LN9
|
|
DD imagerel $LN9+285
|
|
DD imagerel $unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN5
|
|
DD imagerel $LN5+211
|
|
DD imagerel $unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN9
|
|
DD imagerel $LN9+331
|
|
DD imagerel $unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN7
|
|
DD imagerel $LN7+308
|
|
DD imagerel $unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN3
|
|
DD imagerel $LN3+46
|
|
DD imagerel $unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN3
|
|
DD imagerel $LN3+46
|
|
DD imagerel $unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25
|
|
DD imagerel $LN25+1033
|
|
DD imagerel $unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
DD imagerel ?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA+44
|
|
DD imagerel $unwind$?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD imagerel ?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
DD imagerel ?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA+44
|
|
DD imagerel $unwind$?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25
|
|
DD imagerel $LN25+1243
|
|
DD imagerel $unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
DD imagerel ?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA+44
|
|
DD imagerel $unwind$?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD imagerel ?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
DD imagerel ?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA+44
|
|
DD imagerel $unwind$?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD imagerel $LN29
|
|
DD imagerel $LN29+1109
|
|
DD imagerel $unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA
|
|
DD imagerel ?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA+44
|
|
DD imagerel $unwind$?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD imagerel $LN29
|
|
DD imagerel $LN29+1243
|
|
DD imagerel $unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD imagerel ?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA
|
|
DD imagerel ?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA+44
|
|
DD imagerel $unwind$?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8
|
|
DD imagerel $LN8+175
|
|
DD imagerel $unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8
|
|
DD imagerel $LN8+175
|
|
DD imagerel $unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8
|
|
DD imagerel $LN8+175
|
|
DD imagerel $unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3
|
|
DD imagerel $LN3+53
|
|
DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3
|
|
DD imagerel $LN3+84
|
|
DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3
|
|
DD imagerel $LN3+65
|
|
DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3
|
|
DD imagerel $LN3+51
|
|
DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4
|
|
DD imagerel $LN4+98
|
|
DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3
|
|
DD imagerel $LN3+72
|
|
DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3
|
|
DD imagerel $LN3+74
|
|
DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z
|
|
pdata ENDS
|
|
; COMDAT rtc$TMZ
|
|
rtc$TMZ SEGMENT
|
|
_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown
|
|
rtc$TMZ ENDS
|
|
; COMDAT rtc$IMZ
|
|
rtc$IMZ SEGMENT
|
|
_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase
|
|
rtc$IMZ ENDS
|
|
; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@
|
|
CONST SEGMENT
|
|
??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':'
|
|
DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H
|
|
DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@
|
|
CONST SEGMENT
|
|
??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
CONST SEGMENT
|
|
??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro'
|
|
DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To'
|
|
DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA
|
|
_DATA SEGMENT
|
|
?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var
|
|
_DATA ENDS
|
|
; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
CONST SEGMENT
|
|
??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog'
|
|
DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too'
|
|
DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@
|
|
CONST SEGMENT
|
|
??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ DB '"'
|
|
DB 00H, 'i', 00H, 'n', 00H, 'v', 00H, 'a', 00H, 'l', 00H, 'i', 00H
|
|
DB 'd', 00H, ' ', 00H, 'a', 00H, 'r', 00H, 'g', 00H, 'u', 00H, 'm'
|
|
DB 00H, 'e', 00H, 'n', 00H, 't', 00H, '"', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@
|
|
CONST SEGMENT
|
|
??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ DB 's'
|
|
DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'A', 00H
|
|
DB 'd', 00H, 'j', 00H, 'u', 00H, 's', 00H, 't', 00H, '_', 00H, 'm'
|
|
DB 00H, 'a', 00H, 'n', 00H, 'u', 00H, 'a', 00H, 'l', 00H, 'l', 00H
|
|
DB 'y', 00H, '_', 00H, 'v', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o'
|
|
DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H
|
|
DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@
|
|
CONST SEGMENT
|
|
??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C'
|
|
DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H
|
|
DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l'
|
|
DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H
|
|
DB '6', 00H, ')', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H, 'r'
|
|
DB 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' ', 00H
|
|
DB 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H, ' '
|
|
DB 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o', 00H
|
|
DB '\', 00H, '2', 00H, '0', 00H, '1', 00H, '9', 00H, '\', 00H, 'C'
|
|
DB 00H, 'o', 00H, 'm', 00H, 'm', 00H, 'u', 00H, 'n', 00H, 'i', 00H
|
|
DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T'
|
|
DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H
|
|
DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.'
|
|
DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H
|
|
DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l'
|
|
DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H
|
|
DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
CONST SEGMENT
|
|
??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro'
|
|
DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To'
|
|
DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_02DKCKIIND@?$CFs@
|
|
CONST SEGMENT
|
|
??_C@_02DKCKIIND@?$CFs@ DB '%s', 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ??_C@_0BB@FCMFBGOM@invalid?5argument@
|
|
CONST SEGMENT
|
|
??_C@_0BB@FCMFBGOM@invalid?5argument@ DB 'invalid argument', 00H ; `string'
|
|
CONST ENDS
|
|
; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA
|
|
_DATA SEGMENT
|
|
?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var
|
|
_DATA ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025051d01H
|
|
DD 0118231dH
|
|
DD 07011001dH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H
|
|
DB 00H
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H
|
|
DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051819H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
DD imagerel __CxxFrameHandler4
|
|
DD imagerel $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H
|
|
DB 00H
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H
|
|
DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
DD imagerel __CxxFrameHandler4
|
|
DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H
|
|
DD 0118231dH
|
|
DD 07011001dH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c0021H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H
|
|
DD 011c2321H
|
|
DD 07015001fH
|
|
DD 05014H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H
|
|
DD 011c2321H
|
|
DD 07015001fH
|
|
DD 05014H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H
|
|
DD 011c2321H
|
|
DD 07015001fH
|
|
DD 05014H
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 00H
|
|
DB 05H
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD 031001H
|
|
DD 0700c4210H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 06H
|
|
DB 00H
|
|
DB 00H
|
|
DB 'M', 02H
|
|
DB 02H
|
|
DB 'p'
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$stateUnwindMap$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 02H
|
|
DB 0eH
|
|
DD imagerel ?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 028H
|
|
DD imagerel $stateUnwindMap$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
DD imagerel $ip2state$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025052211H
|
|
DD 011d2322H
|
|
DD 070160059H
|
|
DD 05015H
|
|
DD imagerel __CxxFrameHandler4
|
|
DD imagerel $cppxdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 00H
|
|
DB 05H
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA DD 031001H
|
|
DD 0700c4210H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 06H
|
|
DB 00H
|
|
DB 00H
|
|
DB 'M', 02H
|
|
DB 02H
|
|
DB 'p'
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$stateUnwindMap$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 02H
|
|
DB 0eH
|
|
DD imagerel ?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DB 028H
|
|
DD imagerel $stateUnwindMap$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
DD imagerel $ip2state$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025052211H
|
|
DD 011d2322H
|
|
DD 070160059H
|
|
DD 05015H
|
|
DD imagerel __CxxFrameHandler4
|
|
DD imagerel $cppxdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 00H
|
|
DB 05H
|
|
voltbl ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 00H
|
|
DB 05H
|
|
voltbl ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DW 03aH
|
|
DW 04c2H
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H
|
|
DD 0700c4210H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H
|
|
DD 0700c4210H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH
|
|
DB 00H
|
|
DB 00H
|
|
DB 0c9H, 02H
|
|
DB 02H
|
|
DB 'p'
|
|
DB 00H
|
|
DB '8'
|
|
DB 04H
|
|
DB 'p'
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$stateUnwindMap$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 04H
|
|
DB 0eH
|
|
DD imagerel ?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
DB 036H
|
|
DD imagerel ?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 028H
|
|
DD imagerel $stateUnwindMap$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
DD imagerel $ip2state$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025054119H
|
|
DD 01122317H
|
|
DD 0700b007fH
|
|
DD 0500aH
|
|
DD imagerel __GSHandlerCheck_EH4
|
|
DD imagerel $cppxdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
DD 03e2H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcName$0 DB 05aH ; JitEmitPostRipMov
|
|
DB 065H
|
|
DB 072H
|
|
DB 06fH
|
|
DB 056H
|
|
DB 061H
|
|
DB 06cH
|
|
DB 075H
|
|
DB 065H
|
|
DB 00H
|
|
ORG $+6
|
|
?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcVarDesc DD 0a4H ; JitEmitPostRipMov
|
|
DD 04H
|
|
DQ FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcName$0
|
|
ORG $+48
|
|
?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcFrameData DD 01H ; JitEmitPostRipMov
|
|
DD 00H
|
|
DQ FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcVarDesc
|
|
CONST ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 00H
|
|
DB 05H
|
|
voltbl ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 00H
|
|
DB 05H
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H
|
|
DD 0700c4210H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA DD 031001H
|
|
DD 0700c4210H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH
|
|
DB 00H
|
|
DB 00H
|
|
DB '!', 02H
|
|
DB 02H
|
|
DB 'p'
|
|
DB 00H
|
|
DB '8'
|
|
DB 04H
|
|
DB 'p'
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$stateUnwindMap$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 04H
|
|
DB 0eH
|
|
DD imagerel ?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
DB 036H
|
|
DD imagerel ?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 028H
|
|
DD imagerel $stateUnwindMap$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
DD imagerel $ip2state$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025051711H
|
|
DD 01122317H
|
|
DD 0700b007dH
|
|
DD 0500aH
|
|
DD imagerel __CxxFrameHandler4
|
|
DD imagerel $cppxdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c002dH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DW 036H
|
|
DW 0132H
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053d19H
|
|
DD 010e2313H
|
|
DD 070070031H
|
|
DD 05006H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 0178H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcName$0 DB 04cH ; JitAreFlagsClobberedBeforeUse
|
|
DB 065H
|
|
DB 064H
|
|
DB 067H
|
|
DB 065H
|
|
DB 072H
|
|
DB 00H
|
|
ORG $+9
|
|
?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcVarDesc DD 024H ; JitAreFlagsClobberedBeforeUse
|
|
DD 04H
|
|
DQ FLAT:?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcName$0
|
|
ORG $+48
|
|
?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcFrameData DD 01H ; JitAreFlagsClobberedBeforeUse
|
|
DD 00H
|
|
DQ FLAT:?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcVarDesc
|
|
CONST ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H
|
|
DD 010e2313H
|
|
DD 070070029H
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD 025051701H
|
|
DD 01122317H
|
|
DD 0700b001fH
|
|
DD 0500aH
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 00H
|
|
DB 05H
|
|
voltbl ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DW 036H
|
|
DW 0ffH
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H
|
|
DD 0700c4210H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H
|
|
DB 00H
|
|
DB 00H
|
|
DB 0bcH
|
|
DB 02H
|
|
DB 09eH
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$stateUnwindMap$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 02H
|
|
DB 0eH
|
|
DD imagerel ?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H
|
|
DD imagerel $stateUnwindMap$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
DD imagerel $ip2state$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H
|
|
DD 010e3313H
|
|
DD 070070031H
|
|
DD 05006H
|
|
DD imagerel __GSHandlerCheck_EH4
|
|
DD imagerel $cppxdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
DD 0172H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 DB 052H ; JitEmitPopfqInst
|
|
DB 061H
|
|
DB 077H
|
|
DB 044H
|
|
DB 061H
|
|
DB 074H
|
|
DB 061H
|
|
DB 00H
|
|
ORG $+8
|
|
?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc DD 034H ; JitEmitPopfqInst
|
|
DD 01H
|
|
DQ FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0
|
|
ORG $+48
|
|
?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData DD 01H ; JitEmitPopfqInst
|
|
DD 00H
|
|
DQ FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc
|
|
CONST ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 00H
|
|
DB 05H
|
|
voltbl ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DW 036H
|
|
DW 0ffH
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H
|
|
DD 0700c4210H
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H
|
|
DB 00H
|
|
DB 00H
|
|
DB 0bcH
|
|
DB 02H
|
|
DB 09eH
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$stateUnwindMap$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 02H
|
|
DB 0eH
|
|
DD imagerel ?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H
|
|
DD imagerel $stateUnwindMap$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
DD imagerel $ip2state$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H
|
|
DD 010e3313H
|
|
DD 070070031H
|
|
DD 05006H
|
|
DD imagerel __GSHandlerCheck_EH4
|
|
DD imagerel $cppxdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
DD 0172H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 DB 052H ; JitEmitPushfqInst
|
|
DB 061H
|
|
DB 077H
|
|
DB 044H
|
|
DB 061H
|
|
DB 074H
|
|
DB 061H
|
|
DB 00H
|
|
ORG $+8
|
|
?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc DD 034H ; JitEmitPushfqInst
|
|
DD 01H
|
|
DQ FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0
|
|
ORG $+48
|
|
?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData DD 01H ; JitEmitPushfqInst
|
|
DD 00H
|
|
DQ FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc
|
|
CONST ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025051701H
|
|
DD 01122317H
|
|
DD 0700b001dH
|
|
DD 0500aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H
|
|
DD 010e2313H
|
|
DD 07007001dH
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H
|
|
DD 010e2313H
|
|
DD 07007001dH
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H
|
|
DD 010e2313H
|
|
DD 07007001dH
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 02H
|
|
DB 00H
|
|
DB 00H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H
|
|
DD imagerel $ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H
|
|
DD 010e2313H
|
|
DD 07007002fH
|
|
DD 05006H
|
|
DD imagerel __CxxFrameHandler4
|
|
DD imagerel $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H
|
|
DD 0118231dH
|
|
DD 07011001dH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 036H
|
|
DB 0b2H
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053d19H
|
|
DD 010e2313H
|
|
DD 070070029H
|
|
DD 05006H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 0138H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::vector<unsigned long,std::allocator<unsigned long> >::~vector<unsigned long,std::allocator<unsigned long> >
|
|
DB 053H
|
|
DB 031H
|
|
DB 00H
|
|
ORG $+12
|
|
??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc DD 044H ; std::vector<unsigned long,std::allocator<unsigned long> >::~vector<unsigned long,std::allocator<unsigned long> >
|
|
DD 01H
|
|
DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0
|
|
ORG $+48
|
|
??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::vector<unsigned long,std::allocator<unsigned long> >::~vector<unsigned long,std::allocator<unsigned long> >
|
|
DD 00H
|
|
DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc
|
|
CONST ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H
|
|
DD 0118231dH
|
|
DD 07011001dH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H
|
|
DD 01122317H
|
|
DD 0700b001dH
|
|
DD 0500aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H
|
|
DD 0119231eH
|
|
DD 070120026H
|
|
DD 050106011H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H
|
|
DD 0119231eH
|
|
DD 070120026H
|
|
DD 050106011H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H
|
|
DD 0118331dH
|
|
DD 07011002bH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H
|
|
DD 010e3313H
|
|
DD 070070027H
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DW 040H
|
|
DW 0231H
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H
|
|
DD 0118331dH
|
|
DD 070110047H
|
|
DD 05010H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 0228H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr<wchar_t>
|
|
DB 057H
|
|
DB 063H
|
|
DB 00H
|
|
??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr<wchar_t>
|
|
DB 04dH
|
|
DB 062H
|
|
DB 073H
|
|
DB 074H
|
|
DB 031H
|
|
DB 00H
|
|
ORG $+1
|
|
??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr<wchar_t>
|
|
DB 04dH
|
|
DB 062H
|
|
DB 073H
|
|
DB 074H
|
|
DB 032H
|
|
DB 00H
|
|
ORG $+13
|
|
??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr<wchar_t>
|
|
DD 08H
|
|
DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2
|
|
DD 0f8H
|
|
DD 08H
|
|
DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1
|
|
DD 0d4H
|
|
DD 02H
|
|
DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0
|
|
ORG $+144
|
|
??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr<wchar_t>
|
|
DD 00H
|
|
DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc
|
|
CONST ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 036H
|
|
DB 07eH
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H
|
|
DD 010e2313H
|
|
DD 070070021H
|
|
DD 05006H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 0f8H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked
|
|
DB 04cH
|
|
DB 06fH
|
|
DB 063H
|
|
DB 06bH
|
|
DB 00H
|
|
ORG $+10
|
|
?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked
|
|
DD 04H
|
|
DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0
|
|
ORG $+48
|
|
?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked
|
|
DD 00H
|
|
DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc
|
|
CONST ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H
|
|
DD 010e2313H
|
|
DD 070070021H
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H
|
|
DD 010e2313H
|
|
DD 07007001dH
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H
|
|
DD 01133318H
|
|
DD 0700c002fH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$wmemcpy DD 025051d01H
|
|
DD 0118231dH
|
|
DD 07011001dH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H
|
|
DD 0118231dH
|
|
DD 07011001dH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H
|
|
DD 01132318H
|
|
DD 0700c001dH
|
|
DD 0500bH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H
|
|
DD 010e2313H
|
|
DD 07007001dH
|
|
DD 05006H
|
|
xdata ENDS
|
|
; Function compile flags: /Odt
|
|
; COMDAT __JustMyCode_Default
|
|
_TEXT SEGMENT
|
|
__JustMyCode_Default PROC ; COMDAT
|
|
00000 c2 00 00 ret 0
|
|
__JustMyCode_Default ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z
|
|
_TEXT SEGMENT
|
|
_Al$ = 224
|
|
_Ptr$ = 232
|
|
_Count$ = 240
|
|
?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits<std::allocator<std::_Container_proxy> >::deallocate, COMDAT
|
|
|
|
; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) {
|
|
|
|
$LN3:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 57 push rdi
|
|
00011 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 694 : // no overflow check on the following multiply; we assume _Allocate did that check
|
|
; 695 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532
|
|
; 696 : if (_STD is_constant_evaluated()) {
|
|
; 697 : _Al.deallocate(_Ptr, _Count);
|
|
; 698 : } else
|
|
; 699 : #endif // __cpp_lib_constexpr_dynamic_alloc
|
|
; 700 : {
|
|
; 701 : (void) _Al;
|
|
; 702 : _Deallocate<_New_alignof<value_type>>(_Ptr, sizeof(value_type) * _Count);
|
|
|
|
00029 48 6b 85 f0 00
|
|
00 00 10 imul rax, QWORD PTR _Count$[rbp], 16
|
|
00031 48 8b d0 mov rdx, rax
|
|
00034 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR _Ptr$[rbp]
|
|
0003b e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0>
|
|
|
|
; 703 : }
|
|
; 704 : }
|
|
|
|
00040 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00047 5f pop rdi
|
|
00048 5d pop rbp
|
|
00049 c3 ret 0
|
|
?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits<std::allocator<std::_Container_proxy> >::deallocate
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z
|
|
_TEXT SEGMENT
|
|
_Al$ = 224
|
|
_Ptr$ = 232
|
|
??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Deallocate_plain<std::allocator<std::_Container_proxy> >, COMDAT
|
|
|
|
; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept {
|
|
|
|
$LN3:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 986 : // deallocate a plain pointer using an allocator
|
|
; 987 : using _Alloc_traits = allocator_traits<_Alloc>;
|
|
; 988 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) {
|
|
; 989 : _Alloc_traits::deallocate(_Al, _Ptr, 1);
|
|
|
|
00024 41 b8 01 00 00
|
|
00 mov r8d, 1
|
|
0002a 48 8b 95 e8 00
|
|
00 00 mov rdx, QWORD PTR _Ptr$[rbp]
|
|
00031 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR _Al$[rbp]
|
|
00038 e8 00 00 00 00 call ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ; std::_Default_allocator_traits<std::allocator<std::_Container_proxy> >::deallocate
|
|
0003d 90 npad 1
|
|
|
|
; 990 : } else {
|
|
; 991 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>;
|
|
; 992 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1);
|
|
; 993 : }
|
|
; 994 : }
|
|
|
|
0003e 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00045 5f pop rdi
|
|
00046 5d pop rbp
|
|
00047 c3 ret 0
|
|
??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Deallocate_plain<std::allocator<std::_Container_proxy> >
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z
|
|
_TEXT SEGMENT
|
|
_Ptr$ = 224
|
|
_Bytes$ = 232
|
|
??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT
|
|
|
|
; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept {
|
|
|
|
$LN4:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 252 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__
|
|
; 253 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532
|
|
; 254 : if (_STD is_constant_evaluated()) {
|
|
; 255 : ::operator delete(_Ptr);
|
|
; 256 : } else
|
|
; 257 : #endif // __cpp_lib_constexpr_dynamic_alloc
|
|
; 258 : {
|
|
; 259 : #if defined(_M_IX86) || defined(_M_X64)
|
|
; 260 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization
|
|
|
|
00024 48 81 bd e8 00
|
|
00 00 00 10 00
|
|
00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H
|
|
0002f 72 13 jb SHORT $LN2@Deallocate
|
|
|
|
; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes);
|
|
|
|
00031 48 8d 95 e8 00
|
|
00 00 lea rdx, QWORD PTR _Bytes$[rbp]
|
|
00038 48 8d 8d e0 00
|
|
00 00 lea rcx, QWORD PTR _Ptr$[rbp]
|
|
0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned
|
|
$LN2@Deallocate:
|
|
|
|
; 262 : }
|
|
; 263 : #endif // defined(_M_IX86) || defined(_M_X64)
|
|
; 264 : ::operator delete(_Ptr, _Bytes);
|
|
|
|
00044 48 8b 95 e8 00
|
|
00 00 mov rdx, QWORD PTR _Bytes$[rbp]
|
|
0004b 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR _Ptr$[rbp]
|
|
00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00057 90 npad 1
|
|
|
|
; 265 : }
|
|
; 266 : }
|
|
|
|
00058 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0005f 5f pop rdi
|
|
00060 5d pop rbp
|
|
00061 c3 ret 0
|
|
??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0>
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z
|
|
_TEXT SEGMENT
|
|
_First$ = 224
|
|
_Last$ = 232
|
|
_Al$ = 240
|
|
??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range<std::allocator<unsigned long> >, COMDAT
|
|
|
|
; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept {
|
|
|
|
$LN3:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 57 push rdi
|
|
00011 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 946 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this
|
|
; 947 : using _Ty = typename _Alloc::value_type;
|
|
; 948 : if constexpr (!conjunction_v<is_trivially_destructible<_Ty>, _Uses_default_destroy<_Alloc, _Ty*>>) {
|
|
; 949 : for (; _First != _Last; ++_First) {
|
|
; 950 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First));
|
|
; 951 : }
|
|
; 952 : }
|
|
; 953 : }
|
|
|
|
00029 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00030 5f pop rdi
|
|
00031 5d pop rbp
|
|
00032 c3 ret 0
|
|
??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range<std::allocator<unsigned long> >
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z
|
|
_TEXT SEGMENT
|
|
_Al$ = 224
|
|
_Ptr$ = 232
|
|
??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z PROC ; std::_Delete_plain_internal<std::allocator<std::_Container_proxy> >, COMDAT
|
|
|
|
; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept {
|
|
|
|
$LN3:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 999 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name
|
|
; 1000 : using _Ty = typename _Alloc::value_type;
|
|
; 1001 : _Ptr->~_Ty();
|
|
; 1002 : _Deallocate_plain(_Al, _Ptr);
|
|
|
|
00024 48 8b 95 e8 00
|
|
00 00 mov rdx, QWORD PTR _Ptr$[rbp]
|
|
0002b 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR _Al$[rbp]
|
|
00032 e8 00 00 00 00 call ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Deallocate_plain<std::allocator<std::_Container_proxy> >
|
|
|
|
; 1003 : }
|
|
|
|
00037 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0003e 5f pop rdi
|
|
0003f 5d pop rbp
|
|
00040 c3 ret 0
|
|
??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ENDP ; std::_Delete_plain_internal<std::allocator<std::_Container_proxy> >
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility
|
|
; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z
|
|
_TEXT SEGMENT
|
|
_Old_val$ = 8
|
|
_Val$ = 256
|
|
_New_val$ = 264
|
|
??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange<std::_Container_proxy *,std::nullptr_t>, COMDAT
|
|
|
|
; 614 : conjunction_v<is_nothrow_move_constructible<_Ty>, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ {
|
|
|
|
$LN3:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec 08 01
|
|
00 00 sub rsp, 264 ; 00000108H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 615 : // assign _New_val to _Val, return previous _Val
|
|
; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val);
|
|
|
|
00024 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR _Val$[rbp]
|
|
0002b 48 8b 00 mov rax, QWORD PTR [rax]
|
|
0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax
|
|
|
|
; 617 : _Val = static_cast<_Other&&>(_New_val);
|
|
|
|
00032 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR _Val$[rbp]
|
|
00039 48 8b 8d 08 01
|
|
00 00 mov rcx, QWORD PTR _New_val$[rbp]
|
|
00040 48 8b 09 mov rcx, QWORD PTR [rcx]
|
|
00043 48 89 08 mov QWORD PTR [rax], rcx
|
|
|
|
; 618 : return _Old_val;
|
|
|
|
00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp]
|
|
|
|
; 619 : }
|
|
|
|
0004a 48 8d a5 e8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+232]
|
|
00051 5f pop rdi
|
|
00052 5d pop rbp
|
|
00053 c3 ret 0
|
|
??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ENDP ; std::exchange<std::_Container_proxy *,std::nullptr_t>
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
__formal$ = 232
|
|
??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator<std::_Container_proxy>::allocator<std::_Container_proxy><unsigned long>, COMDAT
|
|
|
|
; 829 : constexpr allocator(const allocator<_Other>&) noexcept {}
|
|
|
|
$LN3:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
0002b 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00032 5f pop rdi
|
|
00033 5d pop rbp
|
|
00034 c3 ret 0
|
|
??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ENDP ; std::allocator<std::_Container_proxy>::allocator<std::_Container_proxy><unsigned long>
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z
|
|
_TEXT SEGMENT
|
|
tv64 = 192
|
|
OpType$ = 240
|
|
Block$ = 248
|
|
RipDelta$ = 256
|
|
Value$ = 264
|
|
?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z PROC ; JitiEmitWrapperB, COMDAT
|
|
|
|
; 286 : {
|
|
|
|
$LN8:
|
|
00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d
|
|
00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d
|
|
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000f 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
|
|
00013 55 push rbp
|
|
00014 57 push rdi
|
|
00015 48 81 ec f8 00
|
|
00 00 sub rsp, 248 ; 000000f8H
|
|
0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00021 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 287 : switch (OpType)
|
|
|
|
0002d 8b 85 f0 00 00
|
|
00 mov eax, DWORD PTR OpType$[rbp]
|
|
00033 89 85 c0 00 00
|
|
00 mov DWORD PTR tv64[rbp], eax
|
|
00039 83 bd c0 00 00
|
|
00 00 cmp DWORD PTR tv64[rbp], 0
|
|
00040 74 14 je SHORT $LN4@JitiEmitWr
|
|
00042 83 bd c0 00 00
|
|
00 01 cmp DWORD PTR tv64[rbp], 1
|
|
00049 74 26 je SHORT $LN5@JitiEmitWr
|
|
0004b 83 bd c0 00 00
|
|
00 02 cmp DWORD PTR tv64[rbp], 2
|
|
00052 74 38 je SHORT $LN6@JitiEmitWr
|
|
00054 eb 4f jmp SHORT $LN2@JitiEmitWr
|
|
$LN4@JitiEmitWr:
|
|
|
|
; 288 : {
|
|
; 289 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorB(Block, RipDelta, Value);
|
|
|
|
00056 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
0005d 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
00063 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB
|
|
0006f eb 34 jmp SHORT $LN1@JitiEmitWr
|
|
$LN5@JitiEmitWr:
|
|
|
|
; 290 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndB(Block, RipDelta, Value);
|
|
|
|
00071 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
00078 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
0007e 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB
|
|
0008a eb 19 jmp SHORT $LN1@JitiEmitWr
|
|
$LN6@JitiEmitWr:
|
|
|
|
; 291 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrB(Block, RipDelta, Value);
|
|
|
|
0008c 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
00093 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
00099 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB
|
|
$LN2@JitiEmitWr:
|
|
$LN1@JitiEmitWr:
|
|
|
|
; 292 : }
|
|
; 293 : }
|
|
|
|
000a5 48 8d a5 d8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+216]
|
|
000ac 5f pop rdi
|
|
000ad 5d pop rbp
|
|
000ae c3 ret 0
|
|
?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperB
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z
|
|
_TEXT SEGMENT
|
|
tv64 = 192
|
|
OpType$ = 240
|
|
Block$ = 248
|
|
RipDelta$ = 256
|
|
Value$ = 264
|
|
?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z PROC ; JitiEmitWrapperW, COMDAT
|
|
|
|
; 277 : {
|
|
|
|
$LN8:
|
|
00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d
|
|
00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d
|
|
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000f 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
|
|
00013 55 push rbp
|
|
00014 57 push rdi
|
|
00015 48 81 ec f8 00
|
|
00 00 sub rsp, 248 ; 000000f8H
|
|
0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00021 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 278 : switch (OpType)
|
|
|
|
0002d 8b 85 f0 00 00
|
|
00 mov eax, DWORD PTR OpType$[rbp]
|
|
00033 89 85 c0 00 00
|
|
00 mov DWORD PTR tv64[rbp], eax
|
|
00039 83 bd c0 00 00
|
|
00 00 cmp DWORD PTR tv64[rbp], 0
|
|
00040 74 14 je SHORT $LN4@JitiEmitWr
|
|
00042 83 bd c0 00 00
|
|
00 01 cmp DWORD PTR tv64[rbp], 1
|
|
00049 74 26 je SHORT $LN5@JitiEmitWr
|
|
0004b 83 bd c0 00 00
|
|
00 02 cmp DWORD PTR tv64[rbp], 2
|
|
00052 74 38 je SHORT $LN6@JitiEmitWr
|
|
00054 eb 4f jmp SHORT $LN2@JitiEmitWr
|
|
$LN4@JitiEmitWr:
|
|
|
|
; 279 : {
|
|
; 280 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorW(Block, RipDelta, Value);
|
|
|
|
00056 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
0005d 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
00063 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW
|
|
0006f eb 34 jmp SHORT $LN1@JitiEmitWr
|
|
$LN5@JitiEmitWr:
|
|
|
|
; 281 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndW(Block, RipDelta, Value);
|
|
|
|
00071 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
00078 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
0007e 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW
|
|
0008a eb 19 jmp SHORT $LN1@JitiEmitWr
|
|
$LN6@JitiEmitWr:
|
|
|
|
; 282 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrW(Block, RipDelta, Value);
|
|
|
|
0008c 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
00093 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
00099 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW
|
|
$LN2@JitiEmitWr:
|
|
$LN1@JitiEmitWr:
|
|
|
|
; 283 : }
|
|
; 284 : }
|
|
|
|
000a5 48 8d a5 d8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+216]
|
|
000ac 5f pop rdi
|
|
000ad 5d pop rbp
|
|
000ae c3 ret 0
|
|
?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperW
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z
|
|
_TEXT SEGMENT
|
|
tv64 = 192
|
|
OpType$ = 240
|
|
Block$ = 248
|
|
RipDelta$ = 256
|
|
Value$ = 264
|
|
?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z PROC ; JitiEmitWrapperD, COMDAT
|
|
|
|
; 268 : {
|
|
|
|
$LN8:
|
|
00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d
|
|
00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d
|
|
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000f 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
|
|
00013 55 push rbp
|
|
00014 57 push rdi
|
|
00015 48 81 ec f8 00
|
|
00 00 sub rsp, 248 ; 000000f8H
|
|
0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00021 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 269 : switch (OpType)
|
|
|
|
0002d 8b 85 f0 00 00
|
|
00 mov eax, DWORD PTR OpType$[rbp]
|
|
00033 89 85 c0 00 00
|
|
00 mov DWORD PTR tv64[rbp], eax
|
|
00039 83 bd c0 00 00
|
|
00 00 cmp DWORD PTR tv64[rbp], 0
|
|
00040 74 14 je SHORT $LN4@JitiEmitWr
|
|
00042 83 bd c0 00 00
|
|
00 01 cmp DWORD PTR tv64[rbp], 1
|
|
00049 74 26 je SHORT $LN5@JitiEmitWr
|
|
0004b 83 bd c0 00 00
|
|
00 02 cmp DWORD PTR tv64[rbp], 2
|
|
00052 74 38 je SHORT $LN6@JitiEmitWr
|
|
00054 eb 4f jmp SHORT $LN2@JitiEmitWr
|
|
$LN4@JitiEmitWr:
|
|
|
|
; 270 : {
|
|
; 271 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorD(Block, RipDelta, Value);
|
|
|
|
00056 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
0005d 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
00063 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD
|
|
0006f eb 34 jmp SHORT $LN1@JitiEmitWr
|
|
$LN5@JitiEmitWr:
|
|
|
|
; 272 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndD(Block, RipDelta, Value);
|
|
|
|
00071 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
00078 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
0007e 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndD
|
|
0008a eb 19 jmp SHORT $LN1@JitiEmitWr
|
|
$LN6@JitiEmitWr:
|
|
|
|
; 273 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrD(Block, RipDelta, Value);
|
|
|
|
0008c 44 8b 85 08 01
|
|
00 00 mov r8d, DWORD PTR Value$[rbp]
|
|
00093 8b 95 00 01 00
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
00099 48 8b 8d f8 00
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD
|
|
$LN2@JitiEmitWr:
|
|
$LN1@JitiEmitWr:
|
|
|
|
; 274 : }
|
|
; 275 : }
|
|
|
|
000a5 48 8d a5 d8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+216]
|
|
000ac 5f pop rdi
|
|
000ad 5d pop rbp
|
|
000ae c3 ret 0
|
|
?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperD
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
_TEXT SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
Count$ = 132
|
|
RipDelta$1 = 164
|
|
RipDelta$2 = 196
|
|
RipDelta$3 = 228
|
|
$T4 = 456
|
|
$T5 = 488
|
|
$T6 = 520
|
|
$T7 = 552
|
|
$T8 = 584
|
|
$T9 = 616
|
|
$T10 = 648
|
|
tv224 = 664
|
|
tv214 = 664
|
|
tv185 = 664
|
|
tv158 = 664
|
|
tv128 = 664
|
|
tv86 = 664
|
|
Link$ = 704
|
|
JitData$ = 712
|
|
OpType$ = 720
|
|
SaveFlags$ = 728
|
|
Delta$ = 736
|
|
?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z PROC ; JitEmitPostRipBitwiseOp, COMDAT
|
|
|
|
; 370 : {
|
|
|
|
$LN29:
|
|
00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d
|
|
00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d
|
|
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00014 55 push rbp
|
|
00015 57 push rdi
|
|
00016 48 81 ec c8 02
|
|
00 00 sub rsp, 712 ; 000002c8H
|
|
0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00022 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 371 : ULONG FourByte = Link->RawDataSize / 4;
|
|
|
|
0002e 33 d2 xor edx, edx
|
|
00030 48 8b 85 c0 02
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
00037 8b 40 28 mov eax, DWORD PTR [rax+40]
|
|
0003a b9 04 00 00 00 mov ecx, 4
|
|
0003f f7 f1 div ecx
|
|
00041 89 45 04 mov DWORD PTR FourByte$[rbp], eax
|
|
|
|
; 372 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2;
|
|
|
|
00044 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00047 c1 e0 02 shl eax, 2
|
|
0004a 48 8b 8d c0 02
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00051 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00054 2b c8 sub ecx, eax
|
|
00056 8b c1 mov eax, ecx
|
|
00058 33 d2 xor edx, edx
|
|
0005a b9 02 00 00 00 mov ecx, 2
|
|
0005f f7 f1 div ecx
|
|
00061 89 45 24 mov DWORD PTR TwoByte$[rbp], eax
|
|
|
|
; 373 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2));
|
|
|
|
00064 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00067 c1 e0 02 shl eax, 2
|
|
0006a 48 8b 8d c0 02
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00071 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00074 2b c8 sub ecx, eax
|
|
00076 8b c1 mov eax, ecx
|
|
00078 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
0007b d1 e1 shl ecx, 1
|
|
0007d 2b c1 sub eax, ecx
|
|
0007f 89 45 44 mov DWORD PTR OneByte$[rbp], eax
|
|
|
|
; 374 :
|
|
; 375 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK;
|
|
|
|
00082 b9 30 00 00 00 mov ecx, 48 ; 00000030H
|
|
00087 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
0008c 48 89 85 e8 01
|
|
00 00 mov QWORD PTR $T5[rbp], rax
|
|
00093 48 83 bd e8 01
|
|
00 00 00 cmp QWORD PTR $T5[rbp], 0
|
|
0009b 74 15 je SHORT $LN16@JitEmitPos
|
|
0009d 48 8b 8d e8 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
000a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK
|
|
000a9 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv86[rbp], rax
|
|
000b0 eb 0b jmp SHORT $LN17@JitEmitPos
|
|
$LN16@JitEmitPos:
|
|
000b2 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv86[rbp], 0
|
|
$LN17@JitEmitPos:
|
|
000bd 48 8b 85 98 02
|
|
00 00 mov rax, QWORD PTR tv86[rbp]
|
|
000c4 48 89 85 c8 01
|
|
00 00 mov QWORD PTR $T4[rbp], rax
|
|
000cb 48 8b 85 c8 01
|
|
00 00 mov rax, QWORD PTR $T4[rbp]
|
|
000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax
|
|
|
|
; 376 : if (!Block)
|
|
|
|
000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0
|
|
000db 75 07 jne SHORT $LN4@JitEmitPos
|
|
|
|
; 377 : return NULL;
|
|
|
|
000dd 33 c0 xor eax, eax
|
|
000df e9 ed 03 00 00 jmp $LN1@JitEmitPos
|
|
$LN4@JitEmitPos:
|
|
|
|
; 378 :
|
|
; 379 : if (SaveFlags && !JitEmitPushfqInst(Block))
|
|
|
|
000e4 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
000eb 74 57 je SHORT $LN5@JitEmitPos
|
|
000ed 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
000f1 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst
|
|
000f6 85 c0 test eax, eax
|
|
000f8 75 4a jne SHORT $LN5@JitEmitPos
|
|
|
|
; 380 : {
|
|
; 381 : NcDeleteBlock(Block);
|
|
|
|
000fa 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
000fe e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 382 : delete Block;
|
|
|
|
00103 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00107 48 89 85 08 02
|
|
00 00 mov QWORD PTR $T6[rbp], rax
|
|
0010e 48 83 bd 08 02
|
|
00 00 00 cmp QWORD PTR $T6[rbp], 0
|
|
00116 74 1a je SHORT $LN18@JitEmitPos
|
|
00118 ba 01 00 00 00 mov edx, 1
|
|
0011d 48 8b 8d 08 02
|
|
00 00 mov rcx, QWORD PTR $T6[rbp]
|
|
00124 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
00129 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv128[rbp], rax
|
|
00130 eb 0b jmp SHORT $LN19@JitEmitPos
|
|
$LN18@JitEmitPos:
|
|
00132 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv128[rbp], 0
|
|
$LN19@JitEmitPos:
|
|
|
|
; 383 : return NULL;
|
|
|
|
0013d 33 c0 xor eax, eax
|
|
0013f e9 8d 03 00 00 jmp $LN1@JitEmitPos
|
|
$LN5@JitEmitPos:
|
|
|
|
; 384 : }
|
|
; 385 :
|
|
; 386 : ULONG Count = FourByte;
|
|
|
|
00144 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00147 89 85 84 00 00
|
|
00 mov DWORD PTR Count$[rbp], eax
|
|
$LN2@JitEmitPos:
|
|
|
|
; 387 : while (Count)
|
|
|
|
0014d 83 bd 84 00 00
|
|
00 00 cmp DWORD PTR Count$[rbp], 0
|
|
00154 0f 84 11 01 00
|
|
00 je $LN3@JitEmitPos
|
|
|
|
; 388 : {
|
|
; 389 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4);
|
|
|
|
0015a 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
00160 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
00163 2b c8 sub ecx, eax
|
|
00165 8b c1 mov eax, ecx
|
|
00167 c1 e0 02 shl eax, 2
|
|
0016a 48 8b 8d c0 02
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00171 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00174 2b c8 sub ecx, eax
|
|
00176 8b c1 mov eax, ecx
|
|
00178 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 390 : if (SaveFlags)
|
|
|
|
0017e 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
00185 74 0e je SHORT $LN6@JitEmitPos
|
|
|
|
; 391 : RipDelta += 1;
|
|
|
|
00187 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$1[rbp]
|
|
0018d ff c0 inc eax
|
|
0018f 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
$LN6@JitEmitPos:
|
|
|
|
; 392 : RipDelta += (FourByte - (Count - 1)) * DWORD_RIP_INST_LENGTH;
|
|
|
|
00195 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
0019b ff c8 dec eax
|
|
0019d 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
001a0 2b c8 sub ecx, eax
|
|
001a2 8b c1 mov eax, ecx
|
|
001a4 6b c0 0a imul eax, eax, 10
|
|
001a7 8b 8d a4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$1[rbp]
|
|
001ad 03 c8 add ecx, eax
|
|
001af 8b c1 mov eax, ecx
|
|
001b1 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 393 : RipDelta *= (-1);
|
|
|
|
001b7 6b 85 a4 00 00
|
|
00 ff imul eax, DWORD PTR RipDelta$1[rbp], -1
|
|
001be 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 394 : RipDelta += Delta;
|
|
|
|
001c4 8b 85 e0 02 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
001ca 8b 8d a4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$1[rbp]
|
|
001d0 03 c8 add ecx, eax
|
|
001d2 8b c1 mov eax, ecx
|
|
001d4 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 395 : if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count]))
|
|
|
|
001da 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
001e0 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
001e3 2b c8 sub ecx, eax
|
|
001e5 8b c1 mov eax, ecx
|
|
001e7 8b c0 mov eax, eax
|
|
001e9 48 8b 8d c8 02
|
|
00 00 mov rcx, QWORD PTR JitData$[rbp]
|
|
001f0 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4]
|
|
001f4 44 8b 85 a4 00
|
|
00 00 mov r8d, DWORD PTR RipDelta$1[rbp]
|
|
001fb 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp]
|
|
001ff 8b 8d d0 02 00
|
|
00 mov ecx, DWORD PTR OpType$[rbp]
|
|
00205 e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD
|
|
0020a 85 c0 test eax, eax
|
|
0020c 75 4a jne SHORT $LN7@JitEmitPos
|
|
|
|
; 396 : {
|
|
; 397 : NcDeleteBlock(Block);
|
|
|
|
0020e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
00212 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 398 : delete Block;
|
|
|
|
00217 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
0021b 48 89 85 28 02
|
|
00 00 mov QWORD PTR $T7[rbp], rax
|
|
00222 48 83 bd 28 02
|
|
00 00 00 cmp QWORD PTR $T7[rbp], 0
|
|
0022a 74 1a je SHORT $LN20@JitEmitPos
|
|
0022c ba 01 00 00 00 mov edx, 1
|
|
00231 48 8b 8d 28 02
|
|
00 00 mov rcx, QWORD PTR $T7[rbp]
|
|
00238 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
0023d 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv158[rbp], rax
|
|
00244 eb 0b jmp SHORT $LN21@JitEmitPos
|
|
$LN20@JitEmitPos:
|
|
00246 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv158[rbp], 0
|
|
$LN21@JitEmitPos:
|
|
|
|
; 399 : return NULL;
|
|
|
|
00251 33 c0 xor eax, eax
|
|
00253 e9 79 02 00 00 jmp $LN1@JitEmitPos
|
|
$LN7@JitEmitPos:
|
|
|
|
; 400 : }
|
|
; 401 : --Count;
|
|
|
|
00258 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
0025e ff c8 dec eax
|
|
00260 89 85 84 00 00
|
|
00 mov DWORD PTR Count$[rbp], eax
|
|
|
|
; 402 : }
|
|
|
|
00266 e9 e2 fe ff ff jmp $LN2@JitEmitPos
|
|
$LN3@JitEmitPos:
|
|
|
|
; 403 :
|
|
; 404 : if (TwoByte)
|
|
|
|
0026b 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0
|
|
0026f 0f 84 ef 00 00
|
|
00 je $LN8@JitEmitPos
|
|
|
|
; 405 : {
|
|
; 406 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4);
|
|
|
|
00275 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00278 c1 e0 02 shl eax, 2
|
|
0027b 48 8b 8d c0 02
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00282 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00285 2b c8 sub ecx, eax
|
|
00287 8b c1 mov eax, ecx
|
|
00289 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 407 : if (SaveFlags)
|
|
|
|
0028f 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
00296 74 0e je SHORT $LN9@JitEmitPos
|
|
|
|
; 408 : RipDelta += 1;
|
|
|
|
00298 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$2[rbp]
|
|
0029e ff c0 inc eax
|
|
002a0 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
$LN9@JitEmitPos:
|
|
|
|
; 409 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH);
|
|
|
|
002a6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10
|
|
002aa 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$2[rbp]
|
|
002b0 03 c8 add ecx, eax
|
|
002b2 8b c1 mov eax, ecx
|
|
002b4 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 410 : RipDelta += WORD_RIP_INST_LENGTH;
|
|
|
|
002ba 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$2[rbp]
|
|
002c0 83 c0 09 add eax, 9
|
|
002c3 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 411 : RipDelta *= (-1);
|
|
|
|
002c9 6b 85 c4 00 00
|
|
00 ff imul eax, DWORD PTR RipDelta$2[rbp], -1
|
|
002d0 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 412 : RipDelta += Delta;
|
|
|
|
002d6 8b 85 e0 02 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
002dc 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$2[rbp]
|
|
002e2 03 c8 add ecx, eax
|
|
002e4 8b c1 mov eax, ecx
|
|
002e6 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 413 : if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3]))
|
|
|
|
002ec b8 04 00 00 00 mov eax, 4
|
|
002f1 48 6b c0 03 imul rax, rax, 3
|
|
002f5 48 8b 8d c8 02
|
|
00 00 mov rcx, QWORD PTR JitData$[rbp]
|
|
002fc 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax]
|
|
00300 44 8b 85 c4 00
|
|
00 00 mov r8d, DWORD PTR RipDelta$2[rbp]
|
|
00307 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp]
|
|
0030b 8b 8d d0 02 00
|
|
00 mov ecx, DWORD PTR OpType$[rbp]
|
|
00311 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW
|
|
00316 85 c0 test eax, eax
|
|
00318 75 4a jne SHORT $LN8@JitEmitPos
|
|
|
|
; 414 : {
|
|
; 415 : NcDeleteBlock(Block);
|
|
|
|
0031a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0031e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 416 : delete Block;
|
|
|
|
00323 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00327 48 89 85 48 02
|
|
00 00 mov QWORD PTR $T8[rbp], rax
|
|
0032e 48 83 bd 48 02
|
|
00 00 00 cmp QWORD PTR $T8[rbp], 0
|
|
00336 74 1a je SHORT $LN22@JitEmitPos
|
|
00338 ba 01 00 00 00 mov edx, 1
|
|
0033d 48 8b 8d 48 02
|
|
00 00 mov rcx, QWORD PTR $T8[rbp]
|
|
00344 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
00349 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv185[rbp], rax
|
|
00350 eb 0b jmp SHORT $LN23@JitEmitPos
|
|
$LN22@JitEmitPos:
|
|
00352 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv185[rbp], 0
|
|
$LN23@JitEmitPos:
|
|
|
|
; 417 : return NULL;
|
|
|
|
0035d 33 c0 xor eax, eax
|
|
0035f e9 6d 01 00 00 jmp $LN1@JitEmitPos
|
|
$LN8@JitEmitPos:
|
|
|
|
; 418 : }
|
|
; 419 : }
|
|
; 420 :
|
|
; 421 : if (OneByte)
|
|
|
|
00364 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0
|
|
00368 0f 84 02 01 00
|
|
00 je $LN11@JitEmitPos
|
|
|
|
; 422 : {
|
|
; 423 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2);
|
|
|
|
0036e 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00371 c1 e0 02 shl eax, 2
|
|
00374 48 8b 8d c0 02
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
0037b 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
0037e 2b c8 sub ecx, eax
|
|
00380 8b c1 mov eax, ecx
|
|
00382 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
00385 d1 e1 shl ecx, 1
|
|
00387 2b c1 sub eax, ecx
|
|
00389 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 424 : if (SaveFlags)
|
|
|
|
0038f 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
00396 74 0e je SHORT $LN12@JitEmitPos
|
|
|
|
; 425 : RipDelta += 1;
|
|
|
|
00398 8b 85 e4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$3[rbp]
|
|
0039e ff c0 inc eax
|
|
003a0 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
$LN12@JitEmitPos:
|
|
|
|
; 426 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH);
|
|
|
|
003a6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10
|
|
003aa 8b 8d e4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$3[rbp]
|
|
003b0 03 c8 add ecx, eax
|
|
003b2 8b c1 mov eax, ecx
|
|
003b4 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 427 : RipDelta += WORD_RIP_INST_LENGTH;
|
|
|
|
003ba 8b 85 e4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$3[rbp]
|
|
003c0 83 c0 09 add eax, 9
|
|
003c3 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 428 : RipDelta += BYTE_RIP_INST_LENGTH;
|
|
|
|
003c9 8b 85 e4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$3[rbp]
|
|
003cf 83 c0 07 add eax, 7
|
|
003d2 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 429 : RipDelta *= (-1);
|
|
|
|
003d8 6b 85 e4 00 00
|
|
00 ff imul eax, DWORD PTR RipDelta$3[rbp], -1
|
|
003df 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 430 : RipDelta += Delta;
|
|
|
|
003e5 8b 85 e0 02 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
003eb 8b 8d e4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$3[rbp]
|
|
003f1 03 c8 add ecx, eax
|
|
003f3 8b c1 mov eax, ecx
|
|
003f5 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 431 : if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4]))
|
|
|
|
003fb b8 04 00 00 00 mov eax, 4
|
|
00400 48 6b c0 04 imul rax, rax, 4
|
|
00404 48 8b 8d c8 02
|
|
00 00 mov rcx, QWORD PTR JitData$[rbp]
|
|
0040b 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax]
|
|
0040f 44 8b 85 e4 00
|
|
00 00 mov r8d, DWORD PTR RipDelta$3[rbp]
|
|
00416 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp]
|
|
0041a 8b 8d d0 02 00
|
|
00 mov ecx, DWORD PTR OpType$[rbp]
|
|
00420 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB
|
|
00425 85 c0 test eax, eax
|
|
00427 75 47 jne SHORT $LN11@JitEmitPos
|
|
|
|
; 432 : {
|
|
; 433 : NcDeleteBlock(Block);
|
|
|
|
00429 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0042d e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 434 : delete Block;
|
|
|
|
00432 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00436 48 89 85 68 02
|
|
00 00 mov QWORD PTR $T9[rbp], rax
|
|
0043d 48 83 bd 68 02
|
|
00 00 00 cmp QWORD PTR $T9[rbp], 0
|
|
00445 74 1a je SHORT $LN24@JitEmitPos
|
|
00447 ba 01 00 00 00 mov edx, 1
|
|
0044c 48 8b 8d 68 02
|
|
00 00 mov rcx, QWORD PTR $T9[rbp]
|
|
00453 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
00458 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv214[rbp], rax
|
|
0045f eb 0b jmp SHORT $LN25@JitEmitPos
|
|
$LN24@JitEmitPos:
|
|
00461 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv214[rbp], 0
|
|
$LN25@JitEmitPos:
|
|
|
|
; 435 : return NULL;
|
|
|
|
0046c 33 c0 xor eax, eax
|
|
0046e eb 61 jmp SHORT $LN1@JitEmitPos
|
|
$LN11@JitEmitPos:
|
|
|
|
; 436 : }
|
|
; 437 : }
|
|
; 438 :
|
|
; 439 : if (SaveFlags && !JitEmitPopfqInst(Block))
|
|
|
|
00470 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
00477 74 54 je SHORT $LN14@JitEmitPos
|
|
00479 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0047d e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst
|
|
00482 85 c0 test eax, eax
|
|
00484 75 47 jne SHORT $LN14@JitEmitPos
|
|
|
|
; 440 : {
|
|
; 441 : NcDeleteBlock(Block);
|
|
|
|
00486 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0048a e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 442 : delete Block;
|
|
|
|
0048f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00493 48 89 85 88 02
|
|
00 00 mov QWORD PTR $T10[rbp], rax
|
|
0049a 48 83 bd 88 02
|
|
00 00 00 cmp QWORD PTR $T10[rbp], 0
|
|
004a2 74 1a je SHORT $LN26@JitEmitPos
|
|
004a4 ba 01 00 00 00 mov edx, 1
|
|
004a9 48 8b 8d 88 02
|
|
00 00 mov rcx, QWORD PTR $T10[rbp]
|
|
004b0 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
004b5 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv224[rbp], rax
|
|
004bc eb 0b jmp SHORT $LN27@JitEmitPos
|
|
$LN26@JitEmitPos:
|
|
004be 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv224[rbp], 0
|
|
$LN27@JitEmitPos:
|
|
|
|
; 443 : return NULL;
|
|
|
|
004c9 33 c0 xor eax, eax
|
|
004cb eb 04 jmp SHORT $LN1@JitEmitPos
|
|
$LN14@JitEmitPos:
|
|
|
|
; 444 : }
|
|
; 445 :
|
|
; 446 : return Block;
|
|
|
|
004cd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
$LN1@JitEmitPos:
|
|
|
|
; 447 : }
|
|
|
|
004d1 48 8d a5 a8 02
|
|
00 00 lea rsp, QWORD PTR [rbp+680]
|
|
004d8 5f pop rdi
|
|
004d9 5d pop rbp
|
|
004da c3 ret 0
|
|
?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ENDP ; JitEmitPostRipBitwiseOp
|
|
_TEXT ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
Count$ = 132
|
|
RipDelta$1 = 164
|
|
RipDelta$2 = 196
|
|
RipDelta$3 = 228
|
|
$T4 = 456
|
|
$T5 = 488
|
|
$T6 = 520
|
|
$T7 = 552
|
|
$T8 = 584
|
|
$T9 = 616
|
|
$T10 = 648
|
|
tv224 = 664
|
|
tv214 = 664
|
|
tv185 = 664
|
|
tv158 = 664
|
|
tv128 = 664
|
|
tv86 = 664
|
|
Link$ = 704
|
|
JitData$ = 712
|
|
OpType$ = 720
|
|
SaveFlags$ = 728
|
|
Delta$ = 736
|
|
?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA PROC ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00019 48 8b 8d e8 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
Count$ = 132
|
|
RipDelta$1 = 164
|
|
RipDelta$2 = 196
|
|
RipDelta$3 = 228
|
|
$T4 = 456
|
|
$T5 = 488
|
|
$T6 = 520
|
|
$T7 = 552
|
|
$T8 = 584
|
|
$T9 = 616
|
|
$T10 = 648
|
|
tv224 = 664
|
|
tv214 = 664
|
|
tv185 = 664
|
|
tv158 = 664
|
|
tv128 = 664
|
|
tv86 = 664
|
|
Link$ = 704
|
|
JitData$ = 712
|
|
OpType$ = 720
|
|
SaveFlags$ = 728
|
|
Delta$ = 736
|
|
?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA PROC ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00019 48 8b 8d e8 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPostRipBitwiseOp'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z
|
|
_TEXT SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
Count$ = 132
|
|
RipDelta$1 = 164
|
|
RipDelta$2 = 196
|
|
RipDelta$3 = 228
|
|
$T4 = 456
|
|
$T5 = 488
|
|
$T6 = 520
|
|
$T7 = 552
|
|
$T8 = 584
|
|
$T9 = 616
|
|
$T10 = 648
|
|
tv214 = 664
|
|
tv204 = 664
|
|
tv181 = 664
|
|
tv158 = 664
|
|
tv128 = 664
|
|
tv86 = 664
|
|
Link$ = 704
|
|
JitData$ = 712
|
|
OpType$ = 720
|
|
SaveFlags$ = 728
|
|
Delta$ = 736
|
|
?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z PROC ; JitEmitPreRipBitwiseOp, COMDAT
|
|
|
|
; 296 : {
|
|
|
|
$LN29:
|
|
00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d
|
|
00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d
|
|
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00014 55 push rbp
|
|
00015 57 push rdi
|
|
00016 48 81 ec c8 02
|
|
00 00 sub rsp, 712 ; 000002c8H
|
|
0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00022 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 297 : ULONG FourByte = Link->RawDataSize / 4;
|
|
|
|
0002e 33 d2 xor edx, edx
|
|
00030 48 8b 85 c0 02
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
00037 8b 40 28 mov eax, DWORD PTR [rax+40]
|
|
0003a b9 04 00 00 00 mov ecx, 4
|
|
0003f f7 f1 div ecx
|
|
00041 89 45 04 mov DWORD PTR FourByte$[rbp], eax
|
|
|
|
; 298 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2;
|
|
|
|
00044 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00047 c1 e0 02 shl eax, 2
|
|
0004a 48 8b 8d c0 02
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00051 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00054 2b c8 sub ecx, eax
|
|
00056 8b c1 mov eax, ecx
|
|
00058 33 d2 xor edx, edx
|
|
0005a b9 02 00 00 00 mov ecx, 2
|
|
0005f f7 f1 div ecx
|
|
00061 89 45 24 mov DWORD PTR TwoByte$[rbp], eax
|
|
|
|
; 299 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2));
|
|
|
|
00064 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00067 c1 e0 02 shl eax, 2
|
|
0006a 48 8b 8d c0 02
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00071 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00074 2b c8 sub ecx, eax
|
|
00076 8b c1 mov eax, ecx
|
|
00078 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
0007b 03 c9 add ecx, ecx
|
|
0007d 2b c1 sub eax, ecx
|
|
0007f 89 45 44 mov DWORD PTR OneByte$[rbp], eax
|
|
|
|
; 300 :
|
|
; 301 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK;
|
|
|
|
00082 b9 30 00 00 00 mov ecx, 48 ; 00000030H
|
|
00087 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
0008c 48 89 85 e8 01
|
|
00 00 mov QWORD PTR $T5[rbp], rax
|
|
00093 48 83 bd e8 01
|
|
00 00 00 cmp QWORD PTR $T5[rbp], 0
|
|
0009b 74 15 je SHORT $LN16@JitEmitPre
|
|
0009d 48 8b 8d e8 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
000a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK
|
|
000a9 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv86[rbp], rax
|
|
000b0 eb 0b jmp SHORT $LN17@JitEmitPre
|
|
$LN16@JitEmitPre:
|
|
000b2 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv86[rbp], 0
|
|
$LN17@JitEmitPre:
|
|
000bd 48 8b 85 98 02
|
|
00 00 mov rax, QWORD PTR tv86[rbp]
|
|
000c4 48 89 85 c8 01
|
|
00 00 mov QWORD PTR $T4[rbp], rax
|
|
000cb 48 8b 85 c8 01
|
|
00 00 mov rax, QWORD PTR $T4[rbp]
|
|
000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax
|
|
|
|
; 302 : if (!Block)
|
|
|
|
000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0
|
|
000db 75 07 jne SHORT $LN4@JitEmitPre
|
|
|
|
; 303 : return NULL;
|
|
|
|
000dd 33 c0 xor eax, eax
|
|
000df e9 67 03 00 00 jmp $LN1@JitEmitPre
|
|
$LN4@JitEmitPre:
|
|
|
|
; 304 :
|
|
; 305 : if (SaveFlags && !JitEmitPushfqInst(Block))
|
|
|
|
000e4 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
000eb 74 57 je SHORT $LN5@JitEmitPre
|
|
000ed 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
000f1 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst
|
|
000f6 85 c0 test eax, eax
|
|
000f8 75 4a jne SHORT $LN5@JitEmitPre
|
|
|
|
; 306 : {
|
|
; 307 : NcDeleteBlock(Block);
|
|
|
|
000fa 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
000fe e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 308 : delete Block;
|
|
|
|
00103 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00107 48 89 85 08 02
|
|
00 00 mov QWORD PTR $T6[rbp], rax
|
|
0010e 48 83 bd 08 02
|
|
00 00 00 cmp QWORD PTR $T6[rbp], 0
|
|
00116 74 1a je SHORT $LN18@JitEmitPre
|
|
00118 ba 01 00 00 00 mov edx, 1
|
|
0011d 48 8b 8d 08 02
|
|
00 00 mov rcx, QWORD PTR $T6[rbp]
|
|
00124 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
00129 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv128[rbp], rax
|
|
00130 eb 0b jmp SHORT $LN19@JitEmitPre
|
|
$LN18@JitEmitPre:
|
|
00132 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv128[rbp], 0
|
|
$LN19@JitEmitPre:
|
|
|
|
; 309 : return NULL;
|
|
|
|
0013d 33 c0 xor eax, eax
|
|
0013f e9 07 03 00 00 jmp $LN1@JitEmitPre
|
|
$LN5@JitEmitPre:
|
|
|
|
; 310 : }
|
|
; 311 :
|
|
; 312 : ULONG Count = FourByte;
|
|
|
|
00144 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00147 89 85 84 00 00
|
|
00 mov DWORD PTR Count$[rbp], eax
|
|
$LN2@JitEmitPre:
|
|
|
|
; 313 : while (Count)
|
|
|
|
0014d 83 bd 84 00 00
|
|
00 00 cmp DWORD PTR Count$[rbp], 0
|
|
00154 0f 84 f7 00 00
|
|
00 je $LN3@JitEmitPre
|
|
|
|
; 314 : {
|
|
; 315 : INT32 RipDelta = (((Count - 1) * DWORD_RIP_INST_LENGTH) + (TwoByte * WORD_RIP_INST_LENGTH) + (OneByte * BYTE_RIP_INST_LENGTH));
|
|
|
|
0015a 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
00160 ff c8 dec eax
|
|
00162 6b c0 0a imul eax, eax, 10
|
|
00165 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9
|
|
00169 03 c1 add eax, ecx
|
|
0016b 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7
|
|
0016f 03 c1 add eax, ecx
|
|
00171 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 316 : if (SaveFlags)
|
|
|
|
00177 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
0017e 74 0e je SHORT $LN6@JitEmitPre
|
|
|
|
; 317 : RipDelta += 1;
|
|
|
|
00180 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$1[rbp]
|
|
00186 ff c0 inc eax
|
|
00188 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
$LN6@JitEmitPre:
|
|
|
|
; 318 : RipDelta += ((FourByte - Count) * 4);
|
|
|
|
0018e 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
00194 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
00197 2b c8 sub ecx, eax
|
|
00199 8b c1 mov eax, ecx
|
|
0019b 8b 8d a4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$1[rbp]
|
|
001a1 8d 04 81 lea eax, DWORD PTR [rcx+rax*4]
|
|
001a4 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 319 : RipDelta += Delta;
|
|
|
|
001aa 8b 85 e0 02 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
001b0 8b 8d a4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$1[rbp]
|
|
001b6 03 c8 add ecx, eax
|
|
001b8 8b c1 mov eax, ecx
|
|
001ba 89 85 a4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 320 : if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count]))
|
|
|
|
001c0 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
001c6 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
001c9 2b c8 sub ecx, eax
|
|
001cb 8b c1 mov eax, ecx
|
|
001cd 8b c0 mov eax, eax
|
|
001cf 48 8b 8d c8 02
|
|
00 00 mov rcx, QWORD PTR JitData$[rbp]
|
|
001d6 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4]
|
|
001da 44 8b 85 a4 00
|
|
00 00 mov r8d, DWORD PTR RipDelta$1[rbp]
|
|
001e1 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp]
|
|
001e5 8b 8d d0 02 00
|
|
00 mov ecx, DWORD PTR OpType$[rbp]
|
|
001eb e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD
|
|
001f0 85 c0 test eax, eax
|
|
001f2 75 4a jne SHORT $LN7@JitEmitPre
|
|
|
|
; 321 : {
|
|
; 322 : NcDeleteBlock(Block);
|
|
|
|
001f4 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
001f8 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 323 : delete Block;
|
|
|
|
001fd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00201 48 89 85 28 02
|
|
00 00 mov QWORD PTR $T7[rbp], rax
|
|
00208 48 83 bd 28 02
|
|
00 00 00 cmp QWORD PTR $T7[rbp], 0
|
|
00210 74 1a je SHORT $LN20@JitEmitPre
|
|
00212 ba 01 00 00 00 mov edx, 1
|
|
00217 48 8b 8d 28 02
|
|
00 00 mov rcx, QWORD PTR $T7[rbp]
|
|
0021e e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
00223 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv158[rbp], rax
|
|
0022a eb 0b jmp SHORT $LN21@JitEmitPre
|
|
$LN20@JitEmitPre:
|
|
0022c 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv158[rbp], 0
|
|
$LN21@JitEmitPre:
|
|
|
|
; 324 : return NULL;
|
|
|
|
00237 33 c0 xor eax, eax
|
|
00239 e9 0d 02 00 00 jmp $LN1@JitEmitPre
|
|
$LN7@JitEmitPre:
|
|
|
|
; 325 : }
|
|
; 326 : --Count;
|
|
|
|
0023e 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
00244 ff c8 dec eax
|
|
00246 89 85 84 00 00
|
|
00 mov DWORD PTR Count$[rbp], eax
|
|
|
|
; 327 : }
|
|
|
|
0024c e9 fc fe ff ff jmp $LN2@JitEmitPre
|
|
$LN3@JitEmitPre:
|
|
|
|
; 328 :
|
|
; 329 : if (TwoByte)
|
|
|
|
00251 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0
|
|
00255 0f 84 c1 00 00
|
|
00 je $LN8@JitEmitPre
|
|
|
|
; 330 : {
|
|
; 331 : INT32 RipDelta = (OneByte * BYTE_RIP_INST_LENGTH);
|
|
|
|
0025b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7
|
|
0025f 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 332 : if (SaveFlags)
|
|
|
|
00265 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
0026c 74 0e je SHORT $LN9@JitEmitPre
|
|
|
|
; 333 : RipDelta += 1;
|
|
|
|
0026e 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$2[rbp]
|
|
00274 ff c0 inc eax
|
|
00276 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
$LN9@JitEmitPre:
|
|
|
|
; 334 : RipDelta += (FourByte * 4);
|
|
|
|
0027c 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$2[rbp]
|
|
00282 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
00285 8d 04 88 lea eax, DWORD PTR [rax+rcx*4]
|
|
00288 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 335 : RipDelta += Delta;
|
|
|
|
0028e 8b 85 e0 02 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
00294 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$2[rbp]
|
|
0029a 03 c8 add ecx, eax
|
|
0029c 8b c1 mov eax, ecx
|
|
0029e 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 336 : if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3]))
|
|
|
|
002a4 b8 04 00 00 00 mov eax, 4
|
|
002a9 48 6b c0 03 imul rax, rax, 3
|
|
002ad 48 8b 8d c8 02
|
|
00 00 mov rcx, QWORD PTR JitData$[rbp]
|
|
002b4 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax]
|
|
002b8 44 8b 85 c4 00
|
|
00 00 mov r8d, DWORD PTR RipDelta$2[rbp]
|
|
002bf 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp]
|
|
002c3 8b 8d d0 02 00
|
|
00 mov ecx, DWORD PTR OpType$[rbp]
|
|
002c9 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW
|
|
002ce 85 c0 test eax, eax
|
|
002d0 75 4a jne SHORT $LN8@JitEmitPre
|
|
|
|
; 337 : {
|
|
; 338 : NcDeleteBlock(Block);
|
|
|
|
002d2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
002d6 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 339 : delete Block;
|
|
|
|
002db 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
002df 48 89 85 48 02
|
|
00 00 mov QWORD PTR $T8[rbp], rax
|
|
002e6 48 83 bd 48 02
|
|
00 00 00 cmp QWORD PTR $T8[rbp], 0
|
|
002ee 74 1a je SHORT $LN22@JitEmitPre
|
|
002f0 ba 01 00 00 00 mov edx, 1
|
|
002f5 48 8b 8d 48 02
|
|
00 00 mov rcx, QWORD PTR $T8[rbp]
|
|
002fc e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
00301 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv181[rbp], rax
|
|
00308 eb 0b jmp SHORT $LN23@JitEmitPre
|
|
$LN22@JitEmitPre:
|
|
0030a 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv181[rbp], 0
|
|
$LN23@JitEmitPre:
|
|
|
|
; 340 : return NULL;
|
|
|
|
00315 33 c0 xor eax, eax
|
|
00317 e9 2f 01 00 00 jmp $LN1@JitEmitPre
|
|
$LN8@JitEmitPre:
|
|
|
|
; 341 : }
|
|
; 342 : }
|
|
; 343 :
|
|
; 344 : if (OneByte)
|
|
|
|
0031c 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0
|
|
00320 0f 84 c4 00 00
|
|
00 je $LN11@JitEmitPre
|
|
|
|
; 345 : {
|
|
; 346 : INT32 RipDelta = 0;
|
|
|
|
00326 c7 85 e4 00 00
|
|
00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0
|
|
|
|
; 347 : if (SaveFlags)
|
|
|
|
00330 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
00337 74 0e je SHORT $LN12@JitEmitPre
|
|
|
|
; 348 : RipDelta += 1;
|
|
|
|
00339 8b 85 e4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$3[rbp]
|
|
0033f ff c0 inc eax
|
|
00341 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
$LN12@JitEmitPre:
|
|
|
|
; 349 : RipDelta += (FourByte * 4) + (TwoByte * 2);
|
|
|
|
00347 8b 85 e4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$3[rbp]
|
|
0034d 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
00350 8d 04 88 lea eax, DWORD PTR [rax+rcx*4]
|
|
00353 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
00356 8d 04 48 lea eax, DWORD PTR [rax+rcx*2]
|
|
00359 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 350 : RipDelta += Delta;
|
|
|
|
0035f 8b 85 e0 02 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
00365 8b 8d e4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$3[rbp]
|
|
0036b 03 c8 add ecx, eax
|
|
0036d 8b c1 mov eax, ecx
|
|
0036f 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 351 : if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4]))
|
|
|
|
00375 b8 04 00 00 00 mov eax, 4
|
|
0037a 48 6b c0 04 imul rax, rax, 4
|
|
0037e 48 8b 8d c8 02
|
|
00 00 mov rcx, QWORD PTR JitData$[rbp]
|
|
00385 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax]
|
|
00389 44 8b 85 e4 00
|
|
00 00 mov r8d, DWORD PTR RipDelta$3[rbp]
|
|
00390 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp]
|
|
00394 8b 8d d0 02 00
|
|
00 mov ecx, DWORD PTR OpType$[rbp]
|
|
0039a e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB
|
|
0039f 85 c0 test eax, eax
|
|
003a1 75 47 jne SHORT $LN11@JitEmitPre
|
|
|
|
; 352 : {
|
|
; 353 : NcDeleteBlock(Block);
|
|
|
|
003a3 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
003a7 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 354 : delete Block;
|
|
|
|
003ac 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
003b0 48 89 85 68 02
|
|
00 00 mov QWORD PTR $T9[rbp], rax
|
|
003b7 48 83 bd 68 02
|
|
00 00 00 cmp QWORD PTR $T9[rbp], 0
|
|
003bf 74 1a je SHORT $LN24@JitEmitPre
|
|
003c1 ba 01 00 00 00 mov edx, 1
|
|
003c6 48 8b 8d 68 02
|
|
00 00 mov rcx, QWORD PTR $T9[rbp]
|
|
003cd e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
003d2 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv204[rbp], rax
|
|
003d9 eb 0b jmp SHORT $LN25@JitEmitPre
|
|
$LN24@JitEmitPre:
|
|
003db 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv204[rbp], 0
|
|
$LN25@JitEmitPre:
|
|
|
|
; 355 : return NULL;
|
|
|
|
003e6 33 c0 xor eax, eax
|
|
003e8 eb 61 jmp SHORT $LN1@JitEmitPre
|
|
$LN11@JitEmitPre:
|
|
|
|
; 356 : }
|
|
; 357 : }
|
|
; 358 :
|
|
; 359 : if (SaveFlags && !JitEmitPopfqInst(Block))
|
|
|
|
003ea 83 bd d8 02 00
|
|
00 00 cmp DWORD PTR SaveFlags$[rbp], 0
|
|
003f1 74 54 je SHORT $LN14@JitEmitPre
|
|
003f3 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
003f7 e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst
|
|
003fc 85 c0 test eax, eax
|
|
003fe 75 47 jne SHORT $LN14@JitEmitPre
|
|
|
|
; 360 : {
|
|
; 361 : NcDeleteBlock(Block);
|
|
|
|
00400 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
00404 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 362 : delete Block;
|
|
|
|
00409 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
0040d 48 89 85 88 02
|
|
00 00 mov QWORD PTR $T10[rbp], rax
|
|
00414 48 83 bd 88 02
|
|
00 00 00 cmp QWORD PTR $T10[rbp], 0
|
|
0041c 74 1a je SHORT $LN26@JitEmitPre
|
|
0041e ba 01 00 00 00 mov edx, 1
|
|
00423 48 8b 8d 88 02
|
|
00 00 mov rcx, QWORD PTR $T10[rbp]
|
|
0042a e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
0042f 48 89 85 98 02
|
|
00 00 mov QWORD PTR tv214[rbp], rax
|
|
00436 eb 0b jmp SHORT $LN27@JitEmitPre
|
|
$LN26@JitEmitPre:
|
|
00438 48 c7 85 98 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv214[rbp], 0
|
|
$LN27@JitEmitPre:
|
|
|
|
; 363 : return NULL;
|
|
|
|
00443 33 c0 xor eax, eax
|
|
00445 eb 04 jmp SHORT $LN1@JitEmitPre
|
|
$LN14@JitEmitPre:
|
|
|
|
; 364 : }
|
|
; 365 :
|
|
; 366 : return Block;
|
|
|
|
00447 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
$LN1@JitEmitPre:
|
|
|
|
; 367 : }
|
|
|
|
0044b 48 8d a5 a8 02
|
|
00 00 lea rsp, QWORD PTR [rbp+680]
|
|
00452 5f pop rdi
|
|
00453 5d pop rbp
|
|
00454 c3 ret 0
|
|
?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z ENDP ; JitEmitPreRipBitwiseOp
|
|
_TEXT ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
Count$ = 132
|
|
RipDelta$1 = 164
|
|
RipDelta$2 = 196
|
|
RipDelta$3 = 228
|
|
$T4 = 456
|
|
$T5 = 488
|
|
$T6 = 520
|
|
$T7 = 552
|
|
$T8 = 584
|
|
$T9 = 616
|
|
$T10 = 648
|
|
tv214 = 664
|
|
tv204 = 664
|
|
tv181 = 664
|
|
tv158 = 664
|
|
tv128 = 664
|
|
tv86 = 664
|
|
Link$ = 704
|
|
JitData$ = 712
|
|
OpType$ = 720
|
|
SaveFlags$ = 728
|
|
Delta$ = 736
|
|
?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA PROC ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00019 48 8b 8d e8 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
Count$ = 132
|
|
RipDelta$1 = 164
|
|
RipDelta$2 = 196
|
|
RipDelta$3 = 228
|
|
$T4 = 456
|
|
$T5 = 488
|
|
$T6 = 520
|
|
$T7 = 552
|
|
$T8 = 584
|
|
$T9 = 616
|
|
$T10 = 648
|
|
tv214 = 664
|
|
tv204 = 664
|
|
tv181 = 664
|
|
tv158 = 664
|
|
tv128 = 664
|
|
tv86 = 664
|
|
Link$ = 704
|
|
JitData$ = 712
|
|
OpType$ = 720
|
|
SaveFlags$ = 728
|
|
Delta$ = 736
|
|
?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA PROC ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00019 48 8b 8d e8 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z@4HA ENDP ; `JitEmitPreRipBitwiseOp'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
_TEXT SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
ZeroValue$ = 132
|
|
Count$ = 164
|
|
RipDelta$4 = 196
|
|
RipDelta$5 = 228
|
|
RipDelta$6 = 260
|
|
StartLink$ = 296
|
|
$T7 = 712
|
|
$T8 = 744
|
|
$T9 = 776
|
|
$T10 = 808
|
|
$T11 = 840
|
|
$T12 = 872
|
|
$T13 = 904
|
|
$T14 = 936
|
|
tv213 = 952
|
|
tv200 = 952
|
|
tv175 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
__$ArrayPad$ = 960
|
|
Link$ = 1008
|
|
Delta$ = 1016
|
|
?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z PROC ; JitEmitPostRipMov, COMDAT
|
|
|
|
; 199 : {
|
|
|
|
$LN25:
|
|
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
|
|
00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00009 55 push rbp
|
|
0000a 57 push rdi
|
|
0000b 48 81 ec f8 03
|
|
00 00 sub rsp, 1016 ; 000003f8H
|
|
00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
|
|
0001c b9 96 00 00 00 mov ecx, 150 ; 00000096H
|
|
00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00026 f3 ab rep stosd
|
|
00028 48 8b 8c 24 18
|
|
04 00 00 mov rcx, QWORD PTR [rsp+1048]
|
|
00030 48 8b 05 00 00
|
|
00 00 mov rax, QWORD PTR __security_cookie
|
|
00037 48 33 c5 xor rax, rbp
|
|
0003a 48 89 85 c0 03
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
00041 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 200 : ULONG FourByte = Link->RawDataSize / 4;
|
|
|
|
0004d 33 d2 xor edx, edx
|
|
0004f 48 8b 85 f0 03
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
00056 8b 40 28 mov eax, DWORD PTR [rax+40]
|
|
00059 b9 04 00 00 00 mov ecx, 4
|
|
0005e f7 f1 div ecx
|
|
00060 89 45 04 mov DWORD PTR FourByte$[rbp], eax
|
|
|
|
; 201 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2;
|
|
|
|
00063 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00066 c1 e0 02 shl eax, 2
|
|
00069 48 8b 8d f0 03
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00070 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00073 2b c8 sub ecx, eax
|
|
00075 8b c1 mov eax, ecx
|
|
00077 33 d2 xor edx, edx
|
|
00079 b9 02 00 00 00 mov ecx, 2
|
|
0007e f7 f1 div ecx
|
|
00080 89 45 24 mov DWORD PTR TwoByte$[rbp], eax
|
|
|
|
; 202 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2));
|
|
|
|
00083 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00086 c1 e0 02 shl eax, 2
|
|
00089 48 8b 8d f0 03
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00090 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00093 2b c8 sub ecx, eax
|
|
00095 8b c1 mov eax, ecx
|
|
00097 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
0009a d1 e1 shl ecx, 1
|
|
0009c 2b c1 sub eax, ecx
|
|
0009e 89 45 44 mov DWORD PTR OneByte$[rbp], eax
|
|
|
|
; 203 :
|
|
; 204 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK;
|
|
|
|
000a1 b9 30 00 00 00 mov ecx, 48 ; 00000030H
|
|
000a6 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
000ab 48 89 85 e8 02
|
|
00 00 mov QWORD PTR $T8[rbp], rax
|
|
000b2 48 83 bd e8 02
|
|
00 00 00 cmp QWORD PTR $T8[rbp], 0
|
|
000ba 74 15 je SHORT $LN11@JitEmitPos
|
|
000bc 48 8b 8d e8 02
|
|
00 00 mov rcx, QWORD PTR $T8[rbp]
|
|
000c3 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK
|
|
000c8 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv86[rbp], rax
|
|
000cf eb 0b jmp SHORT $LN12@JitEmitPos
|
|
$LN11@JitEmitPos:
|
|
000d1 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv86[rbp], 0
|
|
$LN12@JitEmitPos:
|
|
000dc 48 8b 85 b8 03
|
|
00 00 mov rax, QWORD PTR tv86[rbp]
|
|
000e3 48 89 85 c8 02
|
|
00 00 mov QWORD PTR $T7[rbp], rax
|
|
000ea 48 8b 85 c8 02
|
|
00 00 mov rax, QWORD PTR $T7[rbp]
|
|
000f1 48 89 45 68 mov QWORD PTR Block$[rbp], rax
|
|
|
|
; 205 :
|
|
; 206 : Block->Start = Block->End = new NATIVE_CODE_LINK;
|
|
|
|
000f5 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H
|
|
000fa e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
000ff 48 89 85 28 03
|
|
00 00 mov QWORD PTR $T10[rbp], rax
|
|
00106 48 83 bd 28 03
|
|
00 00 00 cmp QWORD PTR $T10[rbp], 0
|
|
0010e 74 15 je SHORT $LN13@JitEmitPos
|
|
00110 48 8b 8d 28 03
|
|
00 00 mov rcx, QWORD PTR $T10[rbp]
|
|
00117 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
0011c 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv131[rbp], rax
|
|
00123 eb 0b jmp SHORT $LN14@JitEmitPos
|
|
$LN13@JitEmitPos:
|
|
00125 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv131[rbp], 0
|
|
$LN14@JitEmitPos:
|
|
00130 48 8b 85 b8 03
|
|
00 00 mov rax, QWORD PTR tv131[rbp]
|
|
00137 48 89 85 08 03
|
|
00 00 mov QWORD PTR $T9[rbp], rax
|
|
0013e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00142 48 8b 8d 08 03
|
|
00 00 mov rcx, QWORD PTR $T9[rbp]
|
|
00149 48 89 48 08 mov QWORD PTR [rax+8], rcx
|
|
0014d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00151 48 8b 8d 08 03
|
|
00 00 mov rcx, QWORD PTR $T9[rbp]
|
|
00158 48 89 08 mov QWORD PTR [rax], rcx
|
|
|
|
; 207 : ULONG ZeroValue = 0;
|
|
|
|
0015b c7 85 84 00 00
|
|
00 00 00 00 00 mov DWORD PTR ZeroValue$[rbp], 0
|
|
|
|
; 208 : ULONG Count = FourByte;
|
|
|
|
00165 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00168 89 85 a4 00 00
|
|
00 mov DWORD PTR Count$[rbp], eax
|
|
$LN2@JitEmitPos:
|
|
|
|
; 209 : while (Count)
|
|
|
|
0016e 83 bd a4 00 00
|
|
00 00 cmp DWORD PTR Count$[rbp], 0
|
|
00175 0f 84 ec 00 00
|
|
00 je $LN3@JitEmitPos
|
|
|
|
; 210 : {
|
|
; 211 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4);
|
|
|
|
0017b 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
00181 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
00184 2b c8 sub ecx, eax
|
|
00186 8b c1 mov eax, ecx
|
|
00188 c1 e0 02 shl eax, 2
|
|
0018b 48 8b 8d f0 03
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00192 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00195 2b c8 sub ecx, eax
|
|
00197 8b c1 mov eax, ecx
|
|
00199 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$4[rbp], eax
|
|
|
|
; 212 : RipDelta += (FourByte - (Count - 1)) * DWORD_MOV_INST_LENGTH;
|
|
|
|
0019f 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
001a5 ff c8 dec eax
|
|
001a7 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
001aa 2b c8 sub ecx, eax
|
|
001ac 8b c1 mov eax, ecx
|
|
001ae 6b c0 0a imul eax, eax, 10
|
|
001b1 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$4[rbp]
|
|
001b7 03 c8 add ecx, eax
|
|
001b9 8b c1 mov eax, ecx
|
|
001bb 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$4[rbp], eax
|
|
|
|
; 213 : RipDelta *= (-1);
|
|
|
|
001c1 6b 85 c4 00 00
|
|
00 ff imul eax, DWORD PTR RipDelta$4[rbp], -1
|
|
001c8 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$4[rbp], eax
|
|
|
|
; 214 : RipDelta += Delta;
|
|
|
|
001ce 8b 85 f8 03 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
001d4 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$4[rbp]
|
|
001da 03 c8 add ecx, eax
|
|
001dc 8b c1 mov eax, ecx
|
|
001de 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$4[rbp], eax
|
|
|
|
; 215 : ZeroValue = rand();
|
|
|
|
001e4 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_rand
|
|
001ea 89 85 84 00 00
|
|
00 mov DWORD PTR ZeroValue$[rbp], eax
|
|
|
|
; 216 : if (!JitEmitRipRelativeMovD(Block, RipDelta, (PUCHAR)&ZeroValue))
|
|
|
|
001f0 4c 8d 85 84 00
|
|
00 00 lea r8, QWORD PTR ZeroValue$[rbp]
|
|
001f7 8b 95 c4 00 00
|
|
00 mov edx, DWORD PTR RipDelta$4[rbp]
|
|
001fd 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
00201 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD
|
|
00206 85 c0 test eax, eax
|
|
00208 75 4a jne SHORT $LN4@JitEmitPos
|
|
|
|
; 217 : {
|
|
; 218 : NcDeleteBlock(Block);
|
|
|
|
0020a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0020e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 219 : delete Block;
|
|
|
|
00213 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00217 48 89 85 48 03
|
|
00 00 mov QWORD PTR $T11[rbp], rax
|
|
0021e 48 83 bd 48 03
|
|
00 00 00 cmp QWORD PTR $T11[rbp], 0
|
|
00226 74 1a je SHORT $LN15@JitEmitPos
|
|
00228 ba 01 00 00 00 mov edx, 1
|
|
0022d 48 8b 8d 48 03
|
|
00 00 mov rcx, QWORD PTR $T11[rbp]
|
|
00234 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
00239 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv153[rbp], rax
|
|
00240 eb 0b jmp SHORT $LN16@JitEmitPos
|
|
$LN15@JitEmitPos:
|
|
00242 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv153[rbp], 0
|
|
$LN16@JitEmitPos:
|
|
|
|
; 220 : return NULL;
|
|
|
|
0024d 33 c0 xor eax, eax
|
|
0024f e9 58 02 00 00 jmp $LN1@JitEmitPos
|
|
$LN4@JitEmitPos:
|
|
|
|
; 221 : }
|
|
; 222 : --Count;
|
|
|
|
00254 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
0025a ff c8 dec eax
|
|
0025c 89 85 a4 00 00
|
|
00 mov DWORD PTR Count$[rbp], eax
|
|
|
|
; 223 : }
|
|
|
|
00262 e9 07 ff ff ff jmp $LN2@JitEmitPos
|
|
$LN3@JitEmitPos:
|
|
|
|
; 224 :
|
|
; 225 : if (TwoByte)
|
|
|
|
00267 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0
|
|
0026b 0f 84 d0 00 00
|
|
00 je $LN5@JitEmitPos
|
|
|
|
; 226 : {
|
|
; 227 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4);
|
|
|
|
00271 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00274 c1 e0 02 shl eax, 2
|
|
00277 48 8b 8d f0 03
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
0027e 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00281 2b c8 sub ecx, eax
|
|
00283 8b c1 mov eax, ecx
|
|
00285 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$5[rbp], eax
|
|
|
|
; 228 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH);
|
|
|
|
0028b 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10
|
|
0028f 8b 8d e4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$5[rbp]
|
|
00295 03 c8 add ecx, eax
|
|
00297 8b c1 mov eax, ecx
|
|
00299 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$5[rbp], eax
|
|
|
|
; 229 : RipDelta += WORD_MOV_INST_LENGTH;
|
|
|
|
0029f 8b 85 e4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$5[rbp]
|
|
002a5 83 c0 09 add eax, 9
|
|
002a8 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$5[rbp], eax
|
|
|
|
; 230 : RipDelta *= (-1);
|
|
|
|
002ae 6b 85 e4 00 00
|
|
00 ff imul eax, DWORD PTR RipDelta$5[rbp], -1
|
|
002b5 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$5[rbp], eax
|
|
|
|
; 231 : RipDelta += Delta;
|
|
|
|
002bb 8b 85 f8 03 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
002c1 8b 8d e4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$5[rbp]
|
|
002c7 03 c8 add ecx, eax
|
|
002c9 8b c1 mov eax, ecx
|
|
002cb 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$5[rbp], eax
|
|
|
|
; 232 : ZeroValue = rand();
|
|
|
|
002d1 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_rand
|
|
002d7 89 85 84 00 00
|
|
00 mov DWORD PTR ZeroValue$[rbp], eax
|
|
|
|
; 233 : if (!JitEmitRipRelativeMovW(Block, RipDelta, (PUCHAR)&ZeroValue))
|
|
|
|
002dd 4c 8d 85 84 00
|
|
00 00 lea r8, QWORD PTR ZeroValue$[rbp]
|
|
002e4 8b 95 e4 00 00
|
|
00 mov edx, DWORD PTR RipDelta$5[rbp]
|
|
002ea 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
002ee e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW
|
|
002f3 85 c0 test eax, eax
|
|
002f5 75 4a jne SHORT $LN5@JitEmitPos
|
|
|
|
; 234 : {
|
|
; 235 : NcDeleteBlock(Block);
|
|
|
|
002f7 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
002fb e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 236 : delete Block;
|
|
|
|
00300 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00304 48 89 85 68 03
|
|
00 00 mov QWORD PTR $T12[rbp], rax
|
|
0030b 48 83 bd 68 03
|
|
00 00 00 cmp QWORD PTR $T12[rbp], 0
|
|
00313 74 1a je SHORT $LN17@JitEmitPos
|
|
00315 ba 01 00 00 00 mov edx, 1
|
|
0031a 48 8b 8d 68 03
|
|
00 00 mov rcx, QWORD PTR $T12[rbp]
|
|
00321 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
00326 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv175[rbp], rax
|
|
0032d eb 0b jmp SHORT $LN18@JitEmitPos
|
|
$LN17@JitEmitPos:
|
|
0032f 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv175[rbp], 0
|
|
$LN18@JitEmitPos:
|
|
|
|
; 237 : return NULL;
|
|
|
|
0033a 33 c0 xor eax, eax
|
|
0033c e9 6b 01 00 00 jmp $LN1@JitEmitPos
|
|
$LN5@JitEmitPos:
|
|
|
|
; 238 : }
|
|
; 239 : }
|
|
; 240 :
|
|
; 241 : if (OneByte)
|
|
|
|
00341 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0
|
|
00345 0f 84 e8 00 00
|
|
00 je $LN7@JitEmitPos
|
|
|
|
; 242 : {
|
|
; 243 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2);
|
|
|
|
0034b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
0034e c1 e0 02 shl eax, 2
|
|
00351 48 8b 8d f0 03
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00358 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
0035b 2b c8 sub ecx, eax
|
|
0035d 8b c1 mov eax, ecx
|
|
0035f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
00362 d1 e1 shl ecx, 1
|
|
00364 2b c1 sub eax, ecx
|
|
00366 89 85 04 01 00
|
|
00 mov DWORD PTR RipDelta$6[rbp], eax
|
|
|
|
; 244 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH);
|
|
|
|
0036c 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10
|
|
00370 8b 8d 04 01 00
|
|
00 mov ecx, DWORD PTR RipDelta$6[rbp]
|
|
00376 03 c8 add ecx, eax
|
|
00378 8b c1 mov eax, ecx
|
|
0037a 89 85 04 01 00
|
|
00 mov DWORD PTR RipDelta$6[rbp], eax
|
|
|
|
; 245 : RipDelta += (TwoByte * WORD_MOV_INST_LENGTH);
|
|
|
|
00380 6b 45 24 09 imul eax, DWORD PTR TwoByte$[rbp], 9
|
|
00384 8b 8d 04 01 00
|
|
00 mov ecx, DWORD PTR RipDelta$6[rbp]
|
|
0038a 03 c8 add ecx, eax
|
|
0038c 8b c1 mov eax, ecx
|
|
0038e 89 85 04 01 00
|
|
00 mov DWORD PTR RipDelta$6[rbp], eax
|
|
|
|
; 246 : RipDelta += BYTE_MOV_INST_LENGTH;
|
|
|
|
00394 8b 85 04 01 00
|
|
00 mov eax, DWORD PTR RipDelta$6[rbp]
|
|
0039a 83 c0 07 add eax, 7
|
|
0039d 89 85 04 01 00
|
|
00 mov DWORD PTR RipDelta$6[rbp], eax
|
|
|
|
; 247 : RipDelta *= (-1);
|
|
|
|
003a3 6b 85 04 01 00
|
|
00 ff imul eax, DWORD PTR RipDelta$6[rbp], -1
|
|
003aa 89 85 04 01 00
|
|
00 mov DWORD PTR RipDelta$6[rbp], eax
|
|
|
|
; 248 : RipDelta += Delta;
|
|
|
|
003b0 8b 85 f8 03 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
003b6 8b 8d 04 01 00
|
|
00 mov ecx, DWORD PTR RipDelta$6[rbp]
|
|
003bc 03 c8 add ecx, eax
|
|
003be 8b c1 mov eax, ecx
|
|
003c0 89 85 04 01 00
|
|
00 mov DWORD PTR RipDelta$6[rbp], eax
|
|
|
|
; 249 : ZeroValue = rand();
|
|
|
|
003c6 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_rand
|
|
003cc 89 85 84 00 00
|
|
00 mov DWORD PTR ZeroValue$[rbp], eax
|
|
|
|
; 250 : if (!JitEmitRipRelativeMovB(Block, RipDelta, (PUCHAR)&ZeroValue))
|
|
|
|
003d2 4c 8d 85 84 00
|
|
00 00 lea r8, QWORD PTR ZeroValue$[rbp]
|
|
003d9 8b 95 04 01 00
|
|
00 mov edx, DWORD PTR RipDelta$6[rbp]
|
|
003df 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
003e3 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB
|
|
003e8 85 c0 test eax, eax
|
|
003ea 75 47 jne SHORT $LN7@JitEmitPos
|
|
|
|
; 251 : {
|
|
; 252 : NcDeleteBlock(Block);
|
|
|
|
003ec 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
003f0 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 253 : delete Block;
|
|
|
|
003f5 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
003f9 48 89 85 88 03
|
|
00 00 mov QWORD PTR $T13[rbp], rax
|
|
00400 48 83 bd 88 03
|
|
00 00 00 cmp QWORD PTR $T13[rbp], 0
|
|
00408 74 1a je SHORT $LN19@JitEmitPos
|
|
0040a ba 01 00 00 00 mov edx, 1
|
|
0040f 48 8b 8d 88 03
|
|
00 00 mov rcx, QWORD PTR $T13[rbp]
|
|
00416 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
0041b 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv200[rbp], rax
|
|
00422 eb 0b jmp SHORT $LN20@JitEmitPos
|
|
$LN19@JitEmitPos:
|
|
00424 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv200[rbp], 0
|
|
$LN20@JitEmitPos:
|
|
|
|
; 254 : return NULL;
|
|
|
|
0042f 33 c0 xor eax, eax
|
|
00431 eb 79 jmp SHORT $LN1@JitEmitPos
|
|
$LN7@JitEmitPos:
|
|
|
|
; 255 : }
|
|
; 256 : }
|
|
; 257 :
|
|
; 258 : PNATIVE_CODE_LINK StartLink = Block->Start;
|
|
|
|
00433 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00437 48 8b 00 mov rax, QWORD PTR [rax]
|
|
0043a 48 89 85 28 01
|
|
00 00 mov QWORD PTR StartLink$[rbp], rax
|
|
|
|
; 259 : Block->Start = Block->Start->Next;
|
|
|
|
00441 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00445 48 8b 00 mov rax, QWORD PTR [rax]
|
|
00448 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0044c 48 8b 00 mov rax, QWORD PTR [rax]
|
|
0044f 48 89 01 mov QWORD PTR [rcx], rax
|
|
|
|
; 260 : if (Block->Start)
|
|
|
|
00452 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00456 48 83 38 00 cmp QWORD PTR [rax], 0
|
|
0045a 74 0f je SHORT $LN9@JitEmitPos
|
|
|
|
; 261 : Block->Start->Prev = NULL;
|
|
|
|
0045c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00460 48 8b 00 mov rax, QWORD PTR [rax]
|
|
00463 48 c7 40 08 00
|
|
00 00 00 mov QWORD PTR [rax+8], 0
|
|
$LN9@JitEmitPos:
|
|
|
|
; 262 : delete StartLink;
|
|
|
|
0046b 48 8b 85 28 01
|
|
00 00 mov rax, QWORD PTR StartLink$[rbp]
|
|
00472 48 89 85 a8 03
|
|
00 00 mov QWORD PTR $T14[rbp], rax
|
|
00479 48 83 bd a8 03
|
|
00 00 00 cmp QWORD PTR $T14[rbp], 0
|
|
00481 74 1a je SHORT $LN21@JitEmitPos
|
|
00483 ba 01 00 00 00 mov edx, 1
|
|
00488 48 8b 8d a8 03
|
|
00 00 mov rcx, QWORD PTR $T14[rbp]
|
|
0048f e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z
|
|
00494 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv213[rbp], rax
|
|
0049b eb 0b jmp SHORT $LN22@JitEmitPos
|
|
$LN21@JitEmitPos:
|
|
0049d 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv213[rbp], 0
|
|
$LN22@JitEmitPos:
|
|
|
|
; 263 :
|
|
; 264 : return Block;
|
|
|
|
004a8 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
$LN1@JitEmitPos:
|
|
|
|
; 265 : }
|
|
|
|
004ac 48 8b f8 mov rdi, rax
|
|
004af 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
004b3 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcFrameData
|
|
004ba e8 00 00 00 00 call _RTC_CheckStackVars
|
|
004bf 48 8b c7 mov rax, rdi
|
|
004c2 48 8b 8d c0 03
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
004c9 48 33 cd xor rcx, rbp
|
|
004cc e8 00 00 00 00 call __security_check_cookie
|
|
004d1 48 8d a5 d8 03
|
|
00 00 lea rsp, QWORD PTR [rbp+984]
|
|
004d8 5f pop rdi
|
|
004d9 5d pop rbp
|
|
004da c3 ret 0
|
|
?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPostRipMov
|
|
_TEXT ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
ZeroValue$ = 132
|
|
Count$ = 164
|
|
RipDelta$4 = 196
|
|
RipDelta$5 = 228
|
|
RipDelta$6 = 260
|
|
StartLink$ = 296
|
|
$T7 = 712
|
|
$T8 = 744
|
|
$T9 = 776
|
|
$T10 = 808
|
|
$T11 = 840
|
|
$T12 = 872
|
|
$T13 = 904
|
|
$T14 = 936
|
|
tv213 = 952
|
|
tv200 = 952
|
|
tv175 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
__$ArrayPad$ = 960
|
|
Link$ = 1008
|
|
Delta$ = 1016
|
|
?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPostRipMov'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00019 48 8b 8d e8 02
|
|
00 00 mov rcx, QWORD PTR $T8[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$0
|
|
text$x ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
ZeroValue$ = 132
|
|
Count$ = 164
|
|
RipDelta$4 = 196
|
|
RipDelta$5 = 228
|
|
RipDelta$6 = 260
|
|
StartLink$ = 296
|
|
$T7 = 712
|
|
$T8 = 744
|
|
$T9 = 776
|
|
$T10 = 808
|
|
$T11 = 840
|
|
$T12 = 872
|
|
$T13 = 904
|
|
$T14 = 936
|
|
tv213 = 952
|
|
tv200 = 952
|
|
tv175 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
__$ArrayPad$ = 960
|
|
Link$ = 1008
|
|
Delta$ = 1016
|
|
?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPostRipMov'::`1'::dtor$1
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00019 48 8b 8d 28 03
|
|
00 00 mov rcx, QWORD PTR $T10[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$1
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
ZeroValue$ = 132
|
|
Count$ = 164
|
|
RipDelta$4 = 196
|
|
RipDelta$5 = 228
|
|
RipDelta$6 = 260
|
|
StartLink$ = 296
|
|
$T7 = 712
|
|
$T8 = 744
|
|
$T9 = 776
|
|
$T10 = 808
|
|
$T11 = 840
|
|
$T12 = 872
|
|
$T13 = 904
|
|
$T14 = 936
|
|
tv213 = 952
|
|
tv200 = 952
|
|
tv175 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
__$ArrayPad$ = 960
|
|
Link$ = 1008
|
|
Delta$ = 1016
|
|
?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPostRipMov'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00019 48 8b 8d e8 02
|
|
00 00 mov rcx, QWORD PTR $T8[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
ZeroValue$ = 132
|
|
Count$ = 164
|
|
RipDelta$4 = 196
|
|
RipDelta$5 = 228
|
|
RipDelta$6 = 260
|
|
StartLink$ = 296
|
|
$T7 = 712
|
|
$T8 = 744
|
|
$T9 = 776
|
|
$T10 = 808
|
|
$T11 = 840
|
|
$T12 = 872
|
|
$T13 = 904
|
|
$T14 = 936
|
|
tv213 = 952
|
|
tv200 = 952
|
|
tv175 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
__$ArrayPad$ = 960
|
|
Link$ = 1008
|
|
Delta$ = 1016
|
|
?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPostRipMov'::`1'::dtor$1
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00019 48 8b 8d 28 03
|
|
00 00 mov rcx, QWORD PTR $T10[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$1@?0??JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPostRipMov'::`1'::dtor$1
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z
|
|
_TEXT SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
DataOffset$ = 136
|
|
Count$ = 164
|
|
RipDelta$1 = 196
|
|
RipDelta$2 = 228
|
|
RipDelta$3 = 260
|
|
StartLink$ = 296
|
|
$T4 = 712
|
|
$T5 = 744
|
|
$T6 = 776
|
|
$T7 = 808
|
|
$T8 = 840
|
|
$T9 = 872
|
|
$T10 = 904
|
|
$T11 = 936
|
|
tv202 = 952
|
|
tv189 = 952
|
|
tv171 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
Link$ = 992
|
|
Delta$ = 1000
|
|
?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z PROC ; JitEmitPreRipMov, COMDAT
|
|
|
|
; 134 : {
|
|
|
|
$LN25:
|
|
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
|
|
00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00009 55 push rbp
|
|
0000a 57 push rdi
|
|
0000b 48 81 ec e8 03
|
|
00 00 sub rsp, 1000 ; 000003e8H
|
|
00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00017 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 135 : ULONG FourByte = Link->RawDataSize / 4;
|
|
|
|
00023 33 d2 xor edx, edx
|
|
00025 48 8b 85 e0 03
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
0002c 8b 40 28 mov eax, DWORD PTR [rax+40]
|
|
0002f b9 04 00 00 00 mov ecx, 4
|
|
00034 f7 f1 div ecx
|
|
00036 89 45 04 mov DWORD PTR FourByte$[rbp], eax
|
|
|
|
; 136 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2;
|
|
|
|
00039 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
0003c c1 e0 02 shl eax, 2
|
|
0003f 48 8b 8d e0 03
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00046 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00049 2b c8 sub ecx, eax
|
|
0004b 8b c1 mov eax, ecx
|
|
0004d 33 d2 xor edx, edx
|
|
0004f b9 02 00 00 00 mov ecx, 2
|
|
00054 f7 f1 div ecx
|
|
00056 89 45 24 mov DWORD PTR TwoByte$[rbp], eax
|
|
|
|
; 137 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2));
|
|
|
|
00059 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
0005c c1 e0 02 shl eax, 2
|
|
0005f 48 8b 8d e0 03
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00066 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
00069 2b c8 sub ecx, eax
|
|
0006b 8b c1 mov eax, ecx
|
|
0006d 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
00070 03 c9 add ecx, ecx
|
|
00072 2b c1 sub eax, ecx
|
|
00074 89 45 44 mov DWORD PTR OneByte$[rbp], eax
|
|
|
|
; 138 :
|
|
; 139 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK;
|
|
|
|
00077 b9 30 00 00 00 mov ecx, 48 ; 00000030H
|
|
0007c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
00081 48 89 85 e8 02
|
|
00 00 mov QWORD PTR $T5[rbp], rax
|
|
00088 48 83 bd e8 02
|
|
00 00 00 cmp QWORD PTR $T5[rbp], 0
|
|
00090 74 15 je SHORT $LN11@JitEmitPre
|
|
00092 48 8b 8d e8 02
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00099 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK
|
|
0009e 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv86[rbp], rax
|
|
000a5 eb 0b jmp SHORT $LN12@JitEmitPre
|
|
$LN11@JitEmitPre:
|
|
000a7 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv86[rbp], 0
|
|
$LN12@JitEmitPre:
|
|
000b2 48 8b 85 b8 03
|
|
00 00 mov rax, QWORD PTR tv86[rbp]
|
|
000b9 48 89 85 c8 02
|
|
00 00 mov QWORD PTR $T4[rbp], rax
|
|
000c0 48 8b 85 c8 02
|
|
00 00 mov rax, QWORD PTR $T4[rbp]
|
|
000c7 48 89 45 68 mov QWORD PTR Block$[rbp], rax
|
|
|
|
; 140 :
|
|
; 141 : Block->Start = Block->End = new NATIVE_CODE_LINK;
|
|
|
|
000cb b9 f0 00 00 00 mov ecx, 240 ; 000000f0H
|
|
000d0 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
000d5 48 89 85 28 03
|
|
00 00 mov QWORD PTR $T7[rbp], rax
|
|
000dc 48 83 bd 28 03
|
|
00 00 00 cmp QWORD PTR $T7[rbp], 0
|
|
000e4 74 15 je SHORT $LN13@JitEmitPre
|
|
000e6 48 8b 8d 28 03
|
|
00 00 mov rcx, QWORD PTR $T7[rbp]
|
|
000ed e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
000f2 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv131[rbp], rax
|
|
000f9 eb 0b jmp SHORT $LN14@JitEmitPre
|
|
$LN13@JitEmitPre:
|
|
000fb 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv131[rbp], 0
|
|
$LN14@JitEmitPre:
|
|
00106 48 8b 85 b8 03
|
|
00 00 mov rax, QWORD PTR tv131[rbp]
|
|
0010d 48 89 85 08 03
|
|
00 00 mov QWORD PTR $T6[rbp], rax
|
|
00114 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00118 48 8b 8d 08 03
|
|
00 00 mov rcx, QWORD PTR $T6[rbp]
|
|
0011f 48 89 48 08 mov QWORD PTR [rax+8], rcx
|
|
00123 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00127 48 8b 8d 08 03
|
|
00 00 mov rcx, QWORD PTR $T6[rbp]
|
|
0012e 48 89 08 mov QWORD PTR [rax], rcx
|
|
|
|
; 142 : PUCHAR DataOffset = Link->RawData;
|
|
|
|
00131 48 8b 85 e0 03
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
00138 48 8b 40 20 mov rax, QWORD PTR [rax+32]
|
|
0013c 48 89 85 88 00
|
|
00 00 mov QWORD PTR DataOffset$[rbp], rax
|
|
|
|
; 143 : ULONG Count = FourByte;
|
|
|
|
00143 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
00146 89 85 a4 00 00
|
|
00 mov DWORD PTR Count$[rbp], eax
|
|
$LN2@JitEmitPre:
|
|
|
|
; 144 : while (Count)
|
|
|
|
0014c 83 bd a4 00 00
|
|
00 00 cmp DWORD PTR Count$[rbp], 0
|
|
00153 0f 84 d8 00 00
|
|
00 je $LN3@JitEmitPre
|
|
|
|
; 145 : {
|
|
; 146 : //Account for remaining MOVs
|
|
; 147 : INT32 RipDelta = (((Count - 1) * DWORD_MOV_INST_LENGTH) + (TwoByte * WORD_MOV_INST_LENGTH) + (OneByte * BYTE_MOV_INST_LENGTH));
|
|
|
|
00159 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
0015f ff c8 dec eax
|
|
00161 6b c0 0a imul eax, eax, 10
|
|
00164 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9
|
|
00168 03 c1 add eax, ecx
|
|
0016a 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7
|
|
0016e 03 c1 add eax, ecx
|
|
00170 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 148 : //Account for already MOVd instructions
|
|
; 149 : RipDelta += ((FourByte - Count) * 4);
|
|
|
|
00176 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
0017c 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
0017f 2b c8 sub ecx, eax
|
|
00181 8b c1 mov eax, ecx
|
|
00183 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$1[rbp]
|
|
00189 8d 04 81 lea eax, DWORD PTR [rcx+rax*4]
|
|
0018c 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 150 : RipDelta += Delta;
|
|
|
|
00192 8b 85 e8 03 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
00198 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$1[rbp]
|
|
0019e 03 c8 add ecx, eax
|
|
001a0 8b c1 mov eax, ecx
|
|
001a2 89 85 c4 00 00
|
|
00 mov DWORD PTR RipDelta$1[rbp], eax
|
|
|
|
; 151 : //Add the actual instruction
|
|
; 152 : if (!JitEmitRipRelativeMovD(Block, RipDelta, DataOffset))
|
|
|
|
001a8 4c 8b 85 88 00
|
|
00 00 mov r8, QWORD PTR DataOffset$[rbp]
|
|
001af 8b 95 c4 00 00
|
|
00 mov edx, DWORD PTR RipDelta$1[rbp]
|
|
001b5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
001b9 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD
|
|
001be 85 c0 test eax, eax
|
|
001c0 75 4a jne SHORT $LN4@JitEmitPre
|
|
|
|
; 153 : {
|
|
; 154 : NcDeleteBlock(Block);
|
|
|
|
001c2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
001c6 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 155 : delete Block;
|
|
|
|
001cb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
001cf 48 89 85 48 03
|
|
00 00 mov QWORD PTR $T8[rbp], rax
|
|
001d6 48 83 bd 48 03
|
|
00 00 00 cmp QWORD PTR $T8[rbp], 0
|
|
001de 74 1a je SHORT $LN15@JitEmitPre
|
|
001e0 ba 01 00 00 00 mov edx, 1
|
|
001e5 48 8b 8d 48 03
|
|
00 00 mov rcx, QWORD PTR $T8[rbp]
|
|
001ec e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
001f1 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv153[rbp], rax
|
|
001f8 eb 0b jmp SHORT $LN16@JitEmitPre
|
|
$LN15@JitEmitPre:
|
|
001fa 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv153[rbp], 0
|
|
$LN16@JitEmitPre:
|
|
|
|
; 156 : return NULL;
|
|
|
|
00205 33 c0 xor eax, eax
|
|
00207 e9 f3 01 00 00 jmp $LN1@JitEmitPre
|
|
$LN4@JitEmitPre:
|
|
|
|
; 157 : }
|
|
; 158 : DataOffset += 4;
|
|
|
|
0020c 48 8b 85 88 00
|
|
00 00 mov rax, QWORD PTR DataOffset$[rbp]
|
|
00213 48 83 c0 04 add rax, 4
|
|
00217 48 89 85 88 00
|
|
00 00 mov QWORD PTR DataOffset$[rbp], rax
|
|
|
|
; 159 : --Count;
|
|
|
|
0021e 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR Count$[rbp]
|
|
00224 ff c8 dec eax
|
|
00226 89 85 a4 00 00
|
|
00 mov DWORD PTR Count$[rbp], eax
|
|
|
|
; 160 : }
|
|
|
|
0022c e9 1b ff ff ff jmp $LN2@JitEmitPre
|
|
$LN3@JitEmitPre:
|
|
|
|
; 161 :
|
|
; 162 : if (TwoByte)
|
|
|
|
00231 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0
|
|
00235 0f 84 a8 00 00
|
|
00 je $LN5@JitEmitPre
|
|
|
|
; 163 : {
|
|
; 164 : INT32 RipDelta = (OneByte * BYTE_MOV_INST_LENGTH);
|
|
|
|
0023b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7
|
|
0023f 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 165 : RipDelta += (FourByte * 4);
|
|
|
|
00245 8b 85 e4 00 00
|
|
00 mov eax, DWORD PTR RipDelta$2[rbp]
|
|
0024b 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
0024e 8d 04 88 lea eax, DWORD PTR [rax+rcx*4]
|
|
00251 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 166 : RipDelta += Delta;
|
|
|
|
00257 8b 85 e8 03 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
0025d 8b 8d e4 00 00
|
|
00 mov ecx, DWORD PTR RipDelta$2[rbp]
|
|
00263 03 c8 add ecx, eax
|
|
00265 8b c1 mov eax, ecx
|
|
00267 89 85 e4 00 00
|
|
00 mov DWORD PTR RipDelta$2[rbp], eax
|
|
|
|
; 167 : if (!JitEmitRipRelativeMovW(Block, RipDelta, DataOffset))
|
|
|
|
0026d 4c 8b 85 88 00
|
|
00 00 mov r8, QWORD PTR DataOffset$[rbp]
|
|
00274 8b 95 e4 00 00
|
|
00 mov edx, DWORD PTR RipDelta$2[rbp]
|
|
0027a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0027e e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW
|
|
00283 85 c0 test eax, eax
|
|
00285 75 4a jne SHORT $LN6@JitEmitPre
|
|
|
|
; 168 : {
|
|
; 169 : NcDeleteBlock(Block);
|
|
|
|
00287 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0028b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 170 : delete Block;
|
|
|
|
00290 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00294 48 89 85 68 03
|
|
00 00 mov QWORD PTR $T9[rbp], rax
|
|
0029b 48 83 bd 68 03
|
|
00 00 00 cmp QWORD PTR $T9[rbp], 0
|
|
002a3 74 1a je SHORT $LN17@JitEmitPre
|
|
002a5 ba 01 00 00 00 mov edx, 1
|
|
002aa 48 8b 8d 68 03
|
|
00 00 mov rcx, QWORD PTR $T9[rbp]
|
|
002b1 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
002b6 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv171[rbp], rax
|
|
002bd eb 0b jmp SHORT $LN18@JitEmitPre
|
|
$LN17@JitEmitPre:
|
|
002bf 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv171[rbp], 0
|
|
$LN18@JitEmitPre:
|
|
|
|
; 171 : return NULL;
|
|
|
|
002ca 33 c0 xor eax, eax
|
|
002cc e9 2e 01 00 00 jmp $LN1@JitEmitPre
|
|
$LN6@JitEmitPre:
|
|
|
|
; 172 : }
|
|
; 173 : DataOffset += 2;
|
|
|
|
002d1 48 8b 85 88 00
|
|
00 00 mov rax, QWORD PTR DataOffset$[rbp]
|
|
002d8 48 83 c0 02 add rax, 2
|
|
002dc 48 89 85 88 00
|
|
00 00 mov QWORD PTR DataOffset$[rbp], rax
|
|
$LN5@JitEmitPre:
|
|
|
|
; 174 : }
|
|
; 175 :
|
|
; 176 : if (OneByte)
|
|
|
|
002e3 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0
|
|
002e7 0f 84 99 00 00
|
|
00 je $LN7@JitEmitPre
|
|
|
|
; 177 : {
|
|
; 178 : INT32 RipDelta = 0;
|
|
|
|
002ed c7 85 04 01 00
|
|
00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0
|
|
|
|
; 179 : RipDelta += (FourByte * 4) + (TwoByte * 2);
|
|
|
|
002f7 8b 85 04 01 00
|
|
00 mov eax, DWORD PTR RipDelta$3[rbp]
|
|
002fd 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp]
|
|
00300 8d 04 88 lea eax, DWORD PTR [rax+rcx*4]
|
|
00303 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
00306 8d 04 48 lea eax, DWORD PTR [rax+rcx*2]
|
|
00309 89 85 04 01 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 180 : RipDelta += Delta;
|
|
|
|
0030f 8b 85 e8 03 00
|
|
00 mov eax, DWORD PTR Delta$[rbp]
|
|
00315 8b 8d 04 01 00
|
|
00 mov ecx, DWORD PTR RipDelta$3[rbp]
|
|
0031b 03 c8 add ecx, eax
|
|
0031d 8b c1 mov eax, ecx
|
|
0031f 89 85 04 01 00
|
|
00 mov DWORD PTR RipDelta$3[rbp], eax
|
|
|
|
; 181 : if (!JitEmitRipRelativeMovB(Block, RipDelta, DataOffset))
|
|
|
|
00325 4c 8b 85 88 00
|
|
00 00 mov r8, QWORD PTR DataOffset$[rbp]
|
|
0032c 8b 95 04 01 00
|
|
00 mov edx, DWORD PTR RipDelta$3[rbp]
|
|
00332 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
00336 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB
|
|
0033b 85 c0 test eax, eax
|
|
0033d 75 47 jne SHORT $LN7@JitEmitPre
|
|
|
|
; 182 : {
|
|
; 183 : NcDeleteBlock(Block);
|
|
|
|
0033f 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
00343 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock
|
|
|
|
; 184 : delete Block;
|
|
|
|
00348 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
0034c 48 89 85 88 03
|
|
00 00 mov QWORD PTR $T10[rbp], rax
|
|
00353 48 83 bd 88 03
|
|
00 00 00 cmp QWORD PTR $T10[rbp], 0
|
|
0035b 74 1a je SHORT $LN19@JitEmitPre
|
|
0035d ba 01 00 00 00 mov edx, 1
|
|
00362 48 8b 8d 88 03
|
|
00 00 mov rcx, QWORD PTR $T10[rbp]
|
|
00369 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
0036e 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv189[rbp], rax
|
|
00375 eb 0b jmp SHORT $LN20@JitEmitPre
|
|
$LN19@JitEmitPre:
|
|
00377 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv189[rbp], 0
|
|
$LN20@JitEmitPre:
|
|
|
|
; 185 : return NULL;
|
|
|
|
00382 33 c0 xor eax, eax
|
|
00384 eb 79 jmp SHORT $LN1@JitEmitPre
|
|
$LN7@JitEmitPre:
|
|
|
|
; 186 : }
|
|
; 187 : }
|
|
; 188 :
|
|
; 189 : PNATIVE_CODE_LINK StartLink = Block->Start;
|
|
|
|
00386 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
0038a 48 8b 00 mov rax, QWORD PTR [rax]
|
|
0038d 48 89 85 28 01
|
|
00 00 mov QWORD PTR StartLink$[rbp], rax
|
|
|
|
; 190 : Block->Start = Block->Start->Next;
|
|
|
|
00394 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
00398 48 8b 00 mov rax, QWORD PTR [rax]
|
|
0039b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp]
|
|
0039f 48 8b 00 mov rax, QWORD PTR [rax]
|
|
003a2 48 89 01 mov QWORD PTR [rcx], rax
|
|
|
|
; 191 : if (Block->Start)
|
|
|
|
003a5 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
003a9 48 83 38 00 cmp QWORD PTR [rax], 0
|
|
003ad 74 0f je SHORT $LN9@JitEmitPre
|
|
|
|
; 192 : Block->Start->Prev = NULL;
|
|
|
|
003af 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
003b3 48 8b 00 mov rax, QWORD PTR [rax]
|
|
003b6 48 c7 40 08 00
|
|
00 00 00 mov QWORD PTR [rax+8], 0
|
|
$LN9@JitEmitPre:
|
|
|
|
; 193 : delete StartLink;
|
|
|
|
003be 48 8b 85 28 01
|
|
00 00 mov rax, QWORD PTR StartLink$[rbp]
|
|
003c5 48 89 85 a8 03
|
|
00 00 mov QWORD PTR $T11[rbp], rax
|
|
003cc 48 83 bd a8 03
|
|
00 00 00 cmp QWORD PTR $T11[rbp], 0
|
|
003d4 74 1a je SHORT $LN21@JitEmitPre
|
|
003d6 ba 01 00 00 00 mov edx, 1
|
|
003db 48 8b 8d a8 03
|
|
00 00 mov rcx, QWORD PTR $T11[rbp]
|
|
003e2 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z
|
|
003e7 48 89 85 b8 03
|
|
00 00 mov QWORD PTR tv202[rbp], rax
|
|
003ee eb 0b jmp SHORT $LN22@JitEmitPre
|
|
$LN21@JitEmitPre:
|
|
003f0 48 c7 85 b8 03
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv202[rbp], 0
|
|
$LN22@JitEmitPre:
|
|
|
|
; 194 :
|
|
; 195 : return Block;
|
|
|
|
003fb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp]
|
|
$LN1@JitEmitPre:
|
|
|
|
; 196 : }
|
|
|
|
003ff 48 8d a5 c8 03
|
|
00 00 lea rsp, QWORD PTR [rbp+968]
|
|
00406 5f pop rdi
|
|
00407 5d pop rbp
|
|
00408 c3 ret 0
|
|
?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPreRipMov
|
|
_TEXT ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
DataOffset$ = 136
|
|
Count$ = 164
|
|
RipDelta$1 = 196
|
|
RipDelta$2 = 228
|
|
RipDelta$3 = 260
|
|
StartLink$ = 296
|
|
$T4 = 712
|
|
$T5 = 744
|
|
$T6 = 776
|
|
$T7 = 808
|
|
$T8 = 840
|
|
$T9 = 872
|
|
$T10 = 904
|
|
$T11 = 936
|
|
tv202 = 952
|
|
tv189 = 952
|
|
tv171 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
Link$ = 992
|
|
Delta$ = 1000
|
|
?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPreRipMov'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00019 48 8b 8d e8 02
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPreRipMov'::`1'::dtor$0
|
|
text$x ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
DataOffset$ = 136
|
|
Count$ = 164
|
|
RipDelta$1 = 196
|
|
RipDelta$2 = 228
|
|
RipDelta$3 = 260
|
|
StartLink$ = 296
|
|
$T4 = 712
|
|
$T5 = 744
|
|
$T6 = 776
|
|
$T7 = 808
|
|
$T8 = 840
|
|
$T9 = 872
|
|
$T10 = 904
|
|
$T11 = 936
|
|
tv202 = 952
|
|
tv189 = 952
|
|
tv171 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
Link$ = 992
|
|
Delta$ = 1000
|
|
?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPreRipMov'::`1'::dtor$1
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00019 48 8b 8d 28 03
|
|
00 00 mov rcx, QWORD PTR $T7[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPreRipMov'::`1'::dtor$1
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
DataOffset$ = 136
|
|
Count$ = 164
|
|
RipDelta$1 = 196
|
|
RipDelta$2 = 228
|
|
RipDelta$3 = 260
|
|
StartLink$ = 296
|
|
$T4 = 712
|
|
$T5 = 744
|
|
$T6 = 776
|
|
$T7 = 808
|
|
$T8 = 840
|
|
$T9 = 872
|
|
$T10 = 904
|
|
$T11 = 936
|
|
tv202 = 952
|
|
tv189 = 952
|
|
tv171 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
Link$ = 992
|
|
Delta$ = 1000
|
|
?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPreRipMov'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00019 48 8b 8d e8 02
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPreRipMov'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Block$ = 104
|
|
DataOffset$ = 136
|
|
Count$ = 164
|
|
RipDelta$1 = 196
|
|
RipDelta$2 = 228
|
|
RipDelta$3 = 260
|
|
StartLink$ = 296
|
|
$T4 = 712
|
|
$T5 = 744
|
|
$T6 = 776
|
|
$T7 = 808
|
|
$T8 = 840
|
|
$T9 = 872
|
|
$T10 = 904
|
|
$T11 = 936
|
|
tv202 = 952
|
|
tv189 = 952
|
|
tv171 = 952
|
|
tv153 = 952
|
|
tv131 = 952
|
|
tv86 = 952
|
|
Link$ = 992
|
|
Delta$ = 1000
|
|
?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA PROC ; `JitEmitPreRipMov'::`1'::dtor$1
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32]
|
|
00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00019 48 8b 8d 28 03
|
|
00 00 mov rcx, QWORD PTR $T7[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$1@?0??JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z@4HA ENDP ; `JitEmitPreRipMov'::`1'::dtor$1
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z
|
|
_TEXT SEGMENT
|
|
Link$ = 224
|
|
XorData$ = 232
|
|
?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z PROC ; JitMutateInstForAnd, COMDAT
|
|
|
|
; 129 : {
|
|
|
|
$LN3:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 130 :
|
|
; 131 : }
|
|
|
|
00024 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0002b 5f pop rdi
|
|
0002c 5d pop rbp
|
|
0002d c3 ret 0
|
|
?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForAnd
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z
|
|
_TEXT SEGMENT
|
|
Link$ = 224
|
|
XorData$ = 232
|
|
?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z PROC ; JitMutateInstForOr, COMDAT
|
|
|
|
; 124 : {
|
|
|
|
$LN3:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 125 :
|
|
; 126 : }
|
|
|
|
00024 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0002b 5f pop rdi
|
|
0002c 5d pop rbp
|
|
0002d c3 ret 0
|
|
?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForOr
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z
|
|
_TEXT SEGMENT
|
|
FourByte$ = 4
|
|
TwoByte$ = 36
|
|
OneByte$ = 68
|
|
Buffer$ = 104
|
|
Link$ = 352
|
|
JitData$ = 360
|
|
?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z PROC ; JitMutateInstForXor, COMDAT
|
|
|
|
; 99 : {
|
|
|
|
$LN7:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec 68 01
|
|
00 00 sub rsp, 360 ; 00000168H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 100 : ULONG FourByte = Link->RawDataSize / 4;
|
|
|
|
00024 33 d2 xor edx, edx
|
|
00026 48 8b 85 60 01
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
0002d 8b 40 28 mov eax, DWORD PTR [rax+40]
|
|
00030 b9 04 00 00 00 mov ecx, 4
|
|
00035 f7 f1 div ecx
|
|
00037 89 45 04 mov DWORD PTR FourByte$[rbp], eax
|
|
|
|
; 101 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2;
|
|
|
|
0003a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
0003d c1 e0 02 shl eax, 2
|
|
00040 48 8b 8d 60 01
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00047 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
0004a 2b c8 sub ecx, eax
|
|
0004c 8b c1 mov eax, ecx
|
|
0004e 33 d2 xor edx, edx
|
|
00050 b9 02 00 00 00 mov ecx, 2
|
|
00055 f7 f1 div ecx
|
|
00057 89 45 24 mov DWORD PTR TwoByte$[rbp], eax
|
|
|
|
; 102 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2));
|
|
|
|
0005a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
0005d c1 e0 02 shl eax, 2
|
|
00060 48 8b 8d 60 01
|
|
00 00 mov rcx, QWORD PTR Link$[rbp]
|
|
00067 8b 49 28 mov ecx, DWORD PTR [rcx+40]
|
|
0006a 2b c8 sub ecx, eax
|
|
0006c 8b c1 mov eax, ecx
|
|
0006e 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp]
|
|
00071 d1 e1 shl ecx, 1
|
|
00073 2b c1 sub eax, ecx
|
|
00075 89 45 44 mov DWORD PTR OneByte$[rbp], eax
|
|
|
|
; 103 :
|
|
; 104 : PUCHAR Buffer = Link->RawData;
|
|
|
|
00078 48 8b 85 60 01
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
0007f 48 8b 40 20 mov rax, QWORD PTR [rax+32]
|
|
00083 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax
|
|
$LN2@JitMutateI:
|
|
|
|
; 105 : while (FourByte)
|
|
|
|
00087 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0
|
|
0008b 74 3a je SHORT $LN3@JitMutateI
|
|
|
|
; 106 : {
|
|
; 107 : *(PULONG)Buffer ^= JitData->Data[2 - FourByte];
|
|
|
|
0008d b8 02 00 00 00 mov eax, 2
|
|
00092 2b 45 04 sub eax, DWORD PTR FourByte$[rbp]
|
|
00095 8b c0 mov eax, eax
|
|
00097 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp]
|
|
0009b 48 8b 95 68 01
|
|
00 00 mov rdx, QWORD PTR JitData$[rbp]
|
|
000a2 8b 04 82 mov eax, DWORD PTR [rdx+rax*4]
|
|
000a5 8b 09 mov ecx, DWORD PTR [rcx]
|
|
000a7 33 c8 xor ecx, eax
|
|
000a9 8b c1 mov eax, ecx
|
|
000ab 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp]
|
|
000af 89 01 mov DWORD PTR [rcx], eax
|
|
|
|
; 108 : Buffer += 4;
|
|
|
|
000b1 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp]
|
|
000b5 48 83 c0 04 add rax, 4
|
|
000b9 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax
|
|
|
|
; 109 : FourByte--;
|
|
|
|
000bd 8b 45 04 mov eax, DWORD PTR FourByte$[rbp]
|
|
000c0 ff c8 dec eax
|
|
000c2 89 45 04 mov DWORD PTR FourByte$[rbp], eax
|
|
|
|
; 110 : }
|
|
|
|
000c5 eb c0 jmp SHORT $LN2@JitMutateI
|
|
$LN3@JitMutateI:
|
|
|
|
; 111 :
|
|
; 112 : if (TwoByte)
|
|
|
|
000c7 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0
|
|
000cb 74 32 je SHORT $LN4@JitMutateI
|
|
|
|
; 113 : {
|
|
; 114 : *(PUSHORT)Buffer ^= (USHORT)JitData->Data[3];
|
|
|
|
000cd b8 04 00 00 00 mov eax, 4
|
|
000d2 48 6b c0 03 imul rax, rax, 3
|
|
000d6 48 8b 8d 68 01
|
|
00 00 mov rcx, QWORD PTR JitData$[rbp]
|
|
000dd 0f b7 04 01 movzx eax, WORD PTR [rcx+rax]
|
|
000e1 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp]
|
|
000e5 0f b7 09 movzx ecx, WORD PTR [rcx]
|
|
000e8 33 c8 xor ecx, eax
|
|
000ea 8b c1 mov eax, ecx
|
|
000ec 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp]
|
|
000f0 66 89 01 mov WORD PTR [rcx], ax
|
|
|
|
; 115 : Buffer += 2;
|
|
|
|
000f3 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp]
|
|
000f7 48 83 c0 02 add rax, 2
|
|
000fb 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax
|
|
$LN4@JitMutateI:
|
|
|
|
; 116 : }
|
|
; 117 :
|
|
; 118 : if (OneByte)
|
|
|
|
000ff 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0
|
|
00103 74 25 je SHORT $LN5@JitMutateI
|
|
|
|
; 119 : *(PUCHAR)Buffer ^= (UCHAR)JitData->Data[3];
|
|
|
|
00105 b8 04 00 00 00 mov eax, 4
|
|
0010a 48 6b c0 03 imul rax, rax, 3
|
|
0010e 48 8b 8d 68 01
|
|
00 00 mov rcx, QWORD PTR JitData$[rbp]
|
|
00115 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
00119 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp]
|
|
0011d 0f b6 09 movzx ecx, BYTE PTR [rcx]
|
|
00120 33 c8 xor ecx, eax
|
|
00122 8b c1 mov eax, ecx
|
|
00124 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp]
|
|
00128 88 01 mov BYTE PTR [rcx], al
|
|
$LN5@JitMutateI:
|
|
|
|
; 120 :
|
|
; 121 : }
|
|
|
|
0012a 48 8d a5 48 01
|
|
00 00 lea rsp, QWORD PTR [rbp+328]
|
|
00131 5f pop rdi
|
|
00132 5d pop rbp
|
|
00133 c3 ret 0
|
|
?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForXor
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z
|
|
_TEXT SEGMENT
|
|
Ledger$ = 4
|
|
T$4 = 40
|
|
SimpleFlags$5 = 72
|
|
FlagsRead$6 = 104
|
|
FlagsWritten$7 = 136
|
|
__$ArrayPad$ = 344
|
|
Link$ = 384
|
|
?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z PROC ; JitAreFlagsClobberedBeforeUse, COMDAT
|
|
|
|
; 69 : {
|
|
|
|
$LN9:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 88 01
|
|
00 00 sub rsp, 392 ; 00000188H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
|
|
00018 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH
|
|
0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00022 f3 ab rep stosd
|
|
00024 48 8b 8c 24 a8
|
|
01 00 00 mov rcx, QWORD PTR [rsp+424]
|
|
0002c 48 8b 05 00 00
|
|
00 00 mov rax, QWORD PTR __security_cookie
|
|
00033 48 33 c5 xor rax, rbp
|
|
00036 48 89 85 58 01
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
0003d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 70 : XED_FLAG_SET Ledger;
|
|
; 71 : Ledger.s.zf = TRUE;
|
|
|
|
00049 8b 45 04 mov eax, DWORD PTR Ledger$[rbp]
|
|
0004c 83 c8 40 or eax, 64 ; 00000040H
|
|
0004f 89 45 04 mov DWORD PTR Ledger$[rbp], eax
|
|
|
|
; 72 : Ledger.s.sf = TRUE;
|
|
|
|
00052 8b 45 04 mov eax, DWORD PTR Ledger$[rbp]
|
|
00055 0f ba e8 07 bts eax, 7
|
|
00059 89 45 04 mov DWORD PTR Ledger$[rbp], eax
|
|
|
|
; 73 : Ledger.s.pf = TRUE;
|
|
|
|
0005c 8b 45 04 mov eax, DWORD PTR Ledger$[rbp]
|
|
0005f 83 c8 04 or eax, 4
|
|
00062 89 45 04 mov DWORD PTR Ledger$[rbp], eax
|
|
|
|
; 74 : Ledger.s.of = TRUE;
|
|
|
|
00065 8b 45 04 mov eax, DWORD PTR Ledger$[rbp]
|
|
00068 0f ba e8 0b bts eax, 11
|
|
0006c 89 45 04 mov DWORD PTR Ledger$[rbp], eax
|
|
|
|
; 75 : Ledger.s.cf = TRUE;
|
|
|
|
0006f 8b 45 04 mov eax, DWORD PTR Ledger$[rbp]
|
|
00072 83 c8 01 or eax, 1
|
|
00075 89 45 04 mov DWORD PTR Ledger$[rbp], eax
|
|
|
|
; 76 : Ledger.s.af = TRUE;
|
|
|
|
00078 8b 45 04 mov eax, DWORD PTR Ledger$[rbp]
|
|
0007b 83 c8 10 or eax, 16
|
|
0007e 89 45 04 mov DWORD PTR Ledger$[rbp], eax
|
|
|
|
; 77 :
|
|
; 78 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next)
|
|
|
|
00081 48 8b 85 80 01
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
00088 48 8b 00 mov rax, QWORD PTR [rax]
|
|
0008b 48 89 45 28 mov QWORD PTR T$4[rbp], rax
|
|
0008f eb 0b jmp SHORT $LN4@JitAreFlag
|
|
$LN2@JitAreFlag:
|
|
00091 48 8b 45 28 mov rax, QWORD PTR T$4[rbp]
|
|
00095 48 8b 00 mov rax, QWORD PTR [rax]
|
|
00098 48 89 45 28 mov QWORD PTR T$4[rbp], rax
|
|
$LN4@JitAreFlag:
|
|
0009c 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0
|
|
000a1 74 77 je SHORT $LN3@JitAreFlag
|
|
|
|
; 79 : {
|
|
; 80 : if (T->Flags & CODE_FLAG_IS_LABEL)
|
|
|
|
000a3 48 8b 45 28 mov rax, QWORD PTR T$4[rbp]
|
|
000a7 8b 40 18 mov eax, DWORD PTR [rax+24]
|
|
000aa 83 e0 01 and eax, 1
|
|
000ad 85 c0 test eax, eax
|
|
000af 74 02 je SHORT $LN5@JitAreFlag
|
|
|
|
; 81 : continue;
|
|
|
|
000b1 eb de jmp SHORT $LN2@JitAreFlag
|
|
$LN5@JitAreFlag:
|
|
|
|
; 82 :
|
|
; 83 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction);
|
|
|
|
000b3 48 8b 45 28 mov rax, QWORD PTR T$4[rbp]
|
|
000b7 48 83 c0 30 add rax, 48 ; 00000030H
|
|
000bb 48 8b c8 mov rcx, rax
|
|
000be e8 00 00 00 00 call xed_decoded_inst_get_rflags_info
|
|
000c3 48 89 45 48 mov QWORD PTR SimpleFlags$5[rbp], rax
|
|
|
|
; 84 : CONST XED_FLAG_SET* FlagsRead = XedSimpleFlagGetReadFlagSet(SimpleFlags);
|
|
|
|
000c7 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp]
|
|
000cb e8 00 00 00 00 call xed_simple_flag_get_read_flag_set
|
|
000d0 48 89 45 68 mov QWORD PTR FlagsRead$6[rbp], rax
|
|
|
|
; 85 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags);
|
|
|
|
000d4 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp]
|
|
000d8 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set
|
|
000dd 48 89 85 88 00
|
|
00 00 mov QWORD PTR FlagsWritten$7[rbp], rax
|
|
|
|
; 86 :
|
|
; 87 : if (JitCheckFlagCollisions(FlagsRead, Ledger))
|
|
|
|
000e4 8b 55 04 mov edx, DWORD PTR Ledger$[rbp]
|
|
000e7 48 8b 4d 68 mov rcx, QWORD PTR FlagsRead$6[rbp]
|
|
000eb e8 00 00 00 00 call ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions
|
|
000f0 85 c0 test eax, eax
|
|
000f2 74 04 je SHORT $LN6@JitAreFlag
|
|
|
|
; 88 : return FALSE;
|
|
|
|
000f4 33 c0 xor eax, eax
|
|
000f6 eb 24 jmp SHORT $LN1@JitAreFlag
|
|
$LN6@JitAreFlag:
|
|
|
|
; 89 :
|
|
; 90 : JitUpdateConFlagsLedger(FlagsWritten, &Ledger);
|
|
|
|
000f8 48 8d 55 04 lea rdx, QWORD PTR Ledger$[rbp]
|
|
000fc 48 8b 8d 88 00
|
|
00 00 mov rcx, QWORD PTR FlagsWritten$7[rbp]
|
|
00103 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger
|
|
|
|
; 91 :
|
|
; 92 : if (Ledger.flat == 0)
|
|
|
|
00108 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0
|
|
0010c 75 07 jne SHORT $LN7@JitAreFlag
|
|
|
|
; 93 : return TRUE;
|
|
|
|
0010e b8 01 00 00 00 mov eax, 1
|
|
00113 eb 07 jmp SHORT $LN1@JitAreFlag
|
|
$LN7@JitAreFlag:
|
|
|
|
; 94 : }
|
|
|
|
00115 e9 77 ff ff ff jmp $LN2@JitAreFlag
|
|
$LN3@JitAreFlag:
|
|
|
|
; 95 : return FALSE;
|
|
|
|
0011a 33 c0 xor eax, eax
|
|
$LN1@JitAreFlag:
|
|
|
|
; 96 : }
|
|
|
|
0011c 48 8b f8 mov rdi, rax
|
|
0011f 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
00123 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcFrameData
|
|
0012a e8 00 00 00 00 call _RTC_CheckStackVars
|
|
0012f 48 8b c7 mov rax, rdi
|
|
00132 48 8b 8d 58 01
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
00139 48 33 cd xor rcx, rbp
|
|
0013c e8 00 00 00 00 call __security_check_cookie
|
|
00141 48 8d a5 68 01
|
|
00 00 lea rsp, QWORD PTR [rbp+360]
|
|
00148 5f pop rdi
|
|
00149 5d pop rbp
|
|
0014a c3 ret 0
|
|
?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitAreFlagsClobberedBeforeUse
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z
|
|
_TEXT SEGMENT
|
|
SimpleFlags$ = 8
|
|
FlagsWritten$ = 40
|
|
FlagsUndefined$ = 72
|
|
tv132 = 276
|
|
Link$ = 320
|
|
?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z PROC ; JitDoesInstOverriteConditionFlags, COMDAT
|
|
|
|
; 54 : {
|
|
|
|
$LN5:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 48 01
|
|
00 00 sub rsp, 328 ; 00000148H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 55 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&Link->XedInstruction);
|
|
|
|
0001f 48 8b 85 40 01
|
|
00 00 mov rax, QWORD PTR Link$[rbp]
|
|
00026 48 83 c0 30 add rax, 48 ; 00000030H
|
|
0002a 48 8b c8 mov rcx, rax
|
|
0002d e8 00 00 00 00 call xed_decoded_inst_get_rflags_info
|
|
00032 48 89 45 08 mov QWORD PTR SimpleFlags$[rbp], rax
|
|
|
|
; 56 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags);
|
|
|
|
00036 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp]
|
|
0003a e8 00 00 00 00 call xed_simple_flag_get_written_flag_set
|
|
0003f 48 89 45 28 mov QWORD PTR FlagsWritten$[rbp], rax
|
|
|
|
; 57 : CONST XED_FLAG_SET* FlagsUndefined = XedSimpleFlagGetUndefinedFlagSet(SimpleFlags);
|
|
|
|
00043 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp]
|
|
00047 e8 00 00 00 00 call xed_simple_flag_get_undefined_flag_set
|
|
0004c 48 89 45 48 mov QWORD PTR FlagsUndefined$[rbp], rax
|
|
|
|
; 58 :
|
|
; 59 : return (FlagsWritten->s.zf &&
|
|
|
|
00050 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
00054 8b 00 mov eax, DWORD PTR [rax]
|
|
00056 c1 e8 06 shr eax, 6
|
|
00059 83 e0 01 and eax, 1
|
|
0005c 85 c0 test eax, eax
|
|
0005e 74 59 je SHORT $LN3@JitDoesIns
|
|
00060 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
00064 8b 00 mov eax, DWORD PTR [rax]
|
|
00066 c1 e8 07 shr eax, 7
|
|
00069 83 e0 01 and eax, 1
|
|
0006c 85 c0 test eax, eax
|
|
0006e 74 49 je SHORT $LN3@JitDoesIns
|
|
00070 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
00074 8b 00 mov eax, DWORD PTR [rax]
|
|
00076 c1 e8 02 shr eax, 2
|
|
00079 83 e0 01 and eax, 1
|
|
0007c 85 c0 test eax, eax
|
|
0007e 74 39 je SHORT $LN3@JitDoesIns
|
|
00080 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
00084 8b 00 mov eax, DWORD PTR [rax]
|
|
00086 c1 e8 0b shr eax, 11
|
|
00089 83 e0 01 and eax, 1
|
|
0008c 85 c0 test eax, eax
|
|
0008e 74 29 je SHORT $LN3@JitDoesIns
|
|
00090 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
00094 8b 00 mov eax, DWORD PTR [rax]
|
|
00096 83 e0 01 and eax, 1
|
|
00099 85 c0 test eax, eax
|
|
0009b 74 1c je SHORT $LN3@JitDoesIns
|
|
0009d 48 8b 45 48 mov rax, QWORD PTR FlagsUndefined$[rbp]
|
|
000a1 8b 00 mov eax, DWORD PTR [rax]
|
|
000a3 c1 e8 04 shr eax, 4
|
|
000a6 83 e0 01 and eax, 1
|
|
000a9 85 c0 test eax, eax
|
|
000ab 74 0c je SHORT $LN3@JitDoesIns
|
|
000ad c7 85 14 01 00
|
|
00 01 00 00 00 mov DWORD PTR tv132[rbp], 1
|
|
000b7 eb 0a jmp SHORT $LN4@JitDoesIns
|
|
$LN3@JitDoesIns:
|
|
000b9 c7 85 14 01 00
|
|
00 00 00 00 00 mov DWORD PTR tv132[rbp], 0
|
|
$LN4@JitDoesIns:
|
|
000c3 8b 85 14 01 00
|
|
00 mov eax, DWORD PTR tv132[rbp]
|
|
|
|
; 60 : FlagsWritten->s.sf &&
|
|
; 61 : FlagsWritten->s.pf &&
|
|
; 62 : FlagsWritten->s.of &&
|
|
; 63 : FlagsWritten->s.cf &&
|
|
; 64 : FlagsUndefined->s.af
|
|
; 65 : );
|
|
; 66 : }
|
|
|
|
000c9 48 8d a5 28 01
|
|
00 00 lea rsp, QWORD PTR [rbp+296]
|
|
000d0 5f pop rdi
|
|
000d1 5d pop rbp
|
|
000d2 c3 ret 0
|
|
?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitDoesInstOverriteConditionFlags
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z
|
|
_TEXT SEGMENT
|
|
FlagsWritten$ = 224
|
|
Ledger$ = 232
|
|
?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z PROC ; JitUpdateConFlagsLedger, COMDAT
|
|
|
|
; 38 : {
|
|
|
|
$LN9:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 39 : if (FlagsWritten->s.zf)
|
|
|
|
00024 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
0002b 8b 00 mov eax, DWORD PTR [rax]
|
|
0002d c1 e8 06 shr eax, 6
|
|
00030 83 e0 01 and eax, 1
|
|
00033 85 c0 test eax, eax
|
|
00035 74 15 je SHORT $LN2@JitUpdateC
|
|
|
|
; 40 : Ledger->s.zf = FALSE;
|
|
|
|
00037 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR Ledger$[rbp]
|
|
0003e 8b 00 mov eax, DWORD PTR [rax]
|
|
00040 83 e0 bf and eax, -65 ; ffffffbfH
|
|
00043 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR Ledger$[rbp]
|
|
0004a 89 01 mov DWORD PTR [rcx], eax
|
|
$LN2@JitUpdateC:
|
|
|
|
; 41 : if (FlagsWritten->s.sf)
|
|
|
|
0004c 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
00053 8b 00 mov eax, DWORD PTR [rax]
|
|
00055 c1 e8 07 shr eax, 7
|
|
00058 83 e0 01 and eax, 1
|
|
0005b 85 c0 test eax, eax
|
|
0005d 74 16 je SHORT $LN3@JitUpdateC
|
|
|
|
; 42 : Ledger->s.sf = FALSE;
|
|
|
|
0005f 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR Ledger$[rbp]
|
|
00066 8b 00 mov eax, DWORD PTR [rax]
|
|
00068 0f ba f0 07 btr eax, 7
|
|
0006c 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR Ledger$[rbp]
|
|
00073 89 01 mov DWORD PTR [rcx], eax
|
|
$LN3@JitUpdateC:
|
|
|
|
; 43 : if (FlagsWritten->s.pf)
|
|
|
|
00075 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
0007c 8b 00 mov eax, DWORD PTR [rax]
|
|
0007e c1 e8 02 shr eax, 2
|
|
00081 83 e0 01 and eax, 1
|
|
00084 85 c0 test eax, eax
|
|
00086 74 15 je SHORT $LN4@JitUpdateC
|
|
|
|
; 44 : Ledger->s.pf = FALSE;
|
|
|
|
00088 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR Ledger$[rbp]
|
|
0008f 8b 00 mov eax, DWORD PTR [rax]
|
|
00091 83 e0 fb and eax, -5 ; fffffffbH
|
|
00094 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR Ledger$[rbp]
|
|
0009b 89 01 mov DWORD PTR [rcx], eax
|
|
$LN4@JitUpdateC:
|
|
|
|
; 45 : if (FlagsWritten->s.of)
|
|
|
|
0009d 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
000a4 8b 00 mov eax, DWORD PTR [rax]
|
|
000a6 c1 e8 0b shr eax, 11
|
|
000a9 83 e0 01 and eax, 1
|
|
000ac 85 c0 test eax, eax
|
|
000ae 74 16 je SHORT $LN5@JitUpdateC
|
|
|
|
; 46 : Ledger->s.of = FALSE;
|
|
|
|
000b0 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR Ledger$[rbp]
|
|
000b7 8b 00 mov eax, DWORD PTR [rax]
|
|
000b9 0f ba f0 0b btr eax, 11
|
|
000bd 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR Ledger$[rbp]
|
|
000c4 89 01 mov DWORD PTR [rcx], eax
|
|
$LN5@JitUpdateC:
|
|
|
|
; 47 : if (FlagsWritten->s.cf)
|
|
|
|
000c6 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
000cd 8b 00 mov eax, DWORD PTR [rax]
|
|
000cf 83 e0 01 and eax, 1
|
|
000d2 85 c0 test eax, eax
|
|
000d4 74 15 je SHORT $LN6@JitUpdateC
|
|
|
|
; 48 : Ledger->s.cf = FALSE;
|
|
|
|
000d6 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR Ledger$[rbp]
|
|
000dd 8b 00 mov eax, DWORD PTR [rax]
|
|
000df 83 e0 fe and eax, -2 ; fffffffeH
|
|
000e2 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR Ledger$[rbp]
|
|
000e9 89 01 mov DWORD PTR [rcx], eax
|
|
$LN6@JitUpdateC:
|
|
|
|
; 49 : if (FlagsWritten->s.af)
|
|
|
|
000eb 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR FlagsWritten$[rbp]
|
|
000f2 8b 00 mov eax, DWORD PTR [rax]
|
|
000f4 c1 e8 04 shr eax, 4
|
|
000f7 83 e0 01 and eax, 1
|
|
000fa 85 c0 test eax, eax
|
|
000fc 74 15 je SHORT $LN7@JitUpdateC
|
|
|
|
; 50 : Ledger->s.af = FALSE;
|
|
|
|
000fe 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR Ledger$[rbp]
|
|
00105 8b 00 mov eax, DWORD PTR [rax]
|
|
00107 83 e0 ef and eax, -17 ; ffffffefH
|
|
0010a 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR Ledger$[rbp]
|
|
00111 89 01 mov DWORD PTR [rcx], eax
|
|
$LN7@JitUpdateC:
|
|
|
|
; 51 : }
|
|
|
|
00113 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0011a 5f pop rdi
|
|
0011b 5d pop rbp
|
|
0011c c3 ret 0
|
|
?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ENDP ; JitUpdateConFlagsLedger
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z
|
|
_TEXT SEGMENT
|
|
tv165 = 192
|
|
FlagsRead$ = 240
|
|
Ledger$ = 248
|
|
?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z PROC ; JitCheckFlagCollisions, COMDAT
|
|
|
|
; 27 : {
|
|
|
|
$LN11:
|
|
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
|
|
00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00009 55 push rbp
|
|
0000a 57 push rdi
|
|
0000b 48 81 ec f8 00
|
|
00 00 sub rsp, 248 ; 000000f8H
|
|
00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00017 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 28 : return ((FlagsRead->s.zf && FlagsRead->s.zf == Ledger.s.zf) ||
|
|
|
|
00023 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
0002a 8b 00 mov eax, DWORD PTR [rax]
|
|
0002c c1 e8 06 shr eax, 6
|
|
0002f 83 e0 01 and eax, 1
|
|
00032 85 c0 test eax, eax
|
|
00034 74 23 je SHORT $LN3@JitCheckFl
|
|
00036 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
0003d 8b 00 mov eax, DWORD PTR [rax]
|
|
0003f c1 e8 06 shr eax, 6
|
|
00042 83 e0 01 and eax, 1
|
|
00045 8b 8d f8 00 00
|
|
00 mov ecx, DWORD PTR Ledger$[rbp]
|
|
0004b c1 e9 06 shr ecx, 6
|
|
0004e 83 e1 01 and ecx, 1
|
|
00051 3b c1 cmp eax, ecx
|
|
00053 0f 84 05 01 00
|
|
00 je $LN5@JitCheckFl
|
|
$LN3@JitCheckFl:
|
|
00059 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
00060 8b 00 mov eax, DWORD PTR [rax]
|
|
00062 c1 e8 07 shr eax, 7
|
|
00065 83 e0 01 and eax, 1
|
|
00068 85 c0 test eax, eax
|
|
0006a 74 23 je SHORT $LN4@JitCheckFl
|
|
0006c 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
00073 8b 00 mov eax, DWORD PTR [rax]
|
|
00075 c1 e8 07 shr eax, 7
|
|
00078 83 e0 01 and eax, 1
|
|
0007b 8b 8d f8 00 00
|
|
00 mov ecx, DWORD PTR Ledger$[rbp]
|
|
00081 c1 e9 07 shr ecx, 7
|
|
00084 83 e1 01 and ecx, 1
|
|
00087 3b c1 cmp eax, ecx
|
|
00089 0f 84 cf 00 00
|
|
00 je $LN5@JitCheckFl
|
|
$LN4@JitCheckFl:
|
|
0008f 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
00096 8b 00 mov eax, DWORD PTR [rax]
|
|
00098 c1 e8 02 shr eax, 2
|
|
0009b 83 e0 01 and eax, 1
|
|
0009e 85 c0 test eax, eax
|
|
000a0 74 23 je SHORT $LN6@JitCheckFl
|
|
000a2 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
000a9 8b 00 mov eax, DWORD PTR [rax]
|
|
000ab c1 e8 02 shr eax, 2
|
|
000ae 83 e0 01 and eax, 1
|
|
000b1 8b 8d f8 00 00
|
|
00 mov ecx, DWORD PTR Ledger$[rbp]
|
|
000b7 c1 e9 02 shr ecx, 2
|
|
000ba 83 e1 01 and ecx, 1
|
|
000bd 3b c1 cmp eax, ecx
|
|
000bf 0f 84 99 00 00
|
|
00 je $LN5@JitCheckFl
|
|
$LN6@JitCheckFl:
|
|
000c5 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
000cc 8b 00 mov eax, DWORD PTR [rax]
|
|
000ce c1 e8 0b shr eax, 11
|
|
000d1 83 e0 01 and eax, 1
|
|
000d4 85 c0 test eax, eax
|
|
000d6 74 1f je SHORT $LN7@JitCheckFl
|
|
000d8 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
000df 8b 00 mov eax, DWORD PTR [rax]
|
|
000e1 c1 e8 0b shr eax, 11
|
|
000e4 83 e0 01 and eax, 1
|
|
000e7 8b 8d f8 00 00
|
|
00 mov ecx, DWORD PTR Ledger$[rbp]
|
|
000ed c1 e9 0b shr ecx, 11
|
|
000f0 83 e1 01 and ecx, 1
|
|
000f3 3b c1 cmp eax, ecx
|
|
000f5 74 67 je SHORT $LN5@JitCheckFl
|
|
$LN7@JitCheckFl:
|
|
000f7 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
000fe 8b 00 mov eax, DWORD PTR [rax]
|
|
00100 83 e0 01 and eax, 1
|
|
00103 85 c0 test eax, eax
|
|
00105 74 19 je SHORT $LN8@JitCheckFl
|
|
00107 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
0010e 8b 00 mov eax, DWORD PTR [rax]
|
|
00110 83 e0 01 and eax, 1
|
|
00113 8b 8d f8 00 00
|
|
00 mov ecx, DWORD PTR Ledger$[rbp]
|
|
00119 83 e1 01 and ecx, 1
|
|
0011c 3b c1 cmp eax, ecx
|
|
0011e 74 3e je SHORT $LN5@JitCheckFl
|
|
$LN8@JitCheckFl:
|
|
00120 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
00127 8b 00 mov eax, DWORD PTR [rax]
|
|
00129 c1 e8 04 shr eax, 4
|
|
0012c 83 e0 01 and eax, 1
|
|
0012f 85 c0 test eax, eax
|
|
00131 74 1f je SHORT $LN9@JitCheckFl
|
|
00133 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR FlagsRead$[rbp]
|
|
0013a 8b 00 mov eax, DWORD PTR [rax]
|
|
0013c c1 e8 04 shr eax, 4
|
|
0013f 83 e0 01 and eax, 1
|
|
00142 8b 8d f8 00 00
|
|
00 mov ecx, DWORD PTR Ledger$[rbp]
|
|
00148 c1 e9 04 shr ecx, 4
|
|
0014b 83 e1 01 and ecx, 1
|
|
0014e 3b c1 cmp eax, ecx
|
|
00150 74 0c je SHORT $LN5@JitCheckFl
|
|
$LN9@JitCheckFl:
|
|
00152 c7 85 c0 00 00
|
|
00 00 00 00 00 mov DWORD PTR tv165[rbp], 0
|
|
0015c eb 0a jmp SHORT $LN10@JitCheckFl
|
|
$LN5@JitCheckFl:
|
|
0015e c7 85 c0 00 00
|
|
00 01 00 00 00 mov DWORD PTR tv165[rbp], 1
|
|
$LN10@JitCheckFl:
|
|
00168 8b 85 c0 00 00
|
|
00 mov eax, DWORD PTR tv165[rbp]
|
|
|
|
; 29 : (FlagsRead->s.sf && FlagsRead->s.sf == Ledger.s.sf) ||
|
|
; 30 : (FlagsRead->s.pf && FlagsRead->s.pf == Ledger.s.pf) ||
|
|
; 31 : (FlagsRead->s.of && FlagsRead->s.of == Ledger.s.of) ||
|
|
; 32 : (FlagsRead->s.cf && FlagsRead->s.cf == Ledger.s.cf) ||
|
|
; 33 : (FlagsRead->s.af && FlagsRead->s.af == Ledger.s.af)
|
|
; 34 : );
|
|
; 35 : }
|
|
|
|
0016e 48 8d a5 d8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+216]
|
|
00175 5f pop rdi
|
|
00176 5d pop rbp
|
|
00177 c3 ret 0
|
|
?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ENDP ; JitCheckFlagCollisions
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
_TEXT SEGMENT
|
|
RawData$ = 4
|
|
Link$ = 40
|
|
$T4 = 264
|
|
$T5 = 296
|
|
tv79 = 312
|
|
__$ArrayPad$ = 320
|
|
Block$ = 368
|
|
?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; JitEmitPopfqInst, COMDAT
|
|
|
|
; 18 : {
|
|
|
|
$LN6:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 88 01
|
|
00 00 sub rsp, 392 ; 00000188H
|
|
0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
|
|
00013 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48]
|
|
00018 b9 26 00 00 00 mov ecx, 38 ; 00000026H
|
|
0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00022 f3 ab rep stosd
|
|
00024 48 8b 8c 24 a8
|
|
01 00 00 mov rcx, QWORD PTR [rsp+424]
|
|
0002c 48 8b 05 00 00
|
|
00 00 mov rax, QWORD PTR __security_cookie
|
|
00033 48 33 c5 xor rax, rbp
|
|
00036 48 89 85 40 01
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
0003d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 19 : UCHAR RawData[] = { 0x9D };
|
|
|
|
00049 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH
|
|
|
|
; 20 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1);
|
|
|
|
0004d b9 f0 00 00 00 mov ecx, 240 ; 000000f0H
|
|
00052 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
00057 48 89 85 28 01
|
|
00 00 mov QWORD PTR $T5[rbp], rax
|
|
0005e 48 83 bd 28 01
|
|
00 00 00 cmp QWORD PTR $T5[rbp], 0
|
|
00066 74 2c je SHORT $LN3@JitEmitPop
|
|
00068 c7 44 24 20 00
|
|
00 00 00 mov DWORD PTR [rsp+32], 0
|
|
00070 41 b9 01 00 00
|
|
00 mov r9d, 1
|
|
00076 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp]
|
|
0007a ba 04 00 00 00 mov edx, 4
|
|
0007f 48 8b 8d 28 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00086 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
0008b 48 89 85 38 01
|
|
00 00 mov QWORD PTR tv79[rbp], rax
|
|
00092 eb 0b jmp SHORT $LN4@JitEmitPop
|
|
$LN3@JitEmitPop:
|
|
00094 48 c7 85 38 01
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv79[rbp], 0
|
|
$LN4@JitEmitPop:
|
|
0009f 48 8b 85 38 01
|
|
00 00 mov rax, QWORD PTR tv79[rbp]
|
|
000a6 48 89 85 08 01
|
|
00 00 mov QWORD PTR $T4[rbp], rax
|
|
000ad 48 8b 85 08 01
|
|
00 00 mov rax, QWORD PTR $T4[rbp]
|
|
000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax
|
|
|
|
; 21 : XedDecode(&Link->XedInstruction, Link->RawData, 1);
|
|
|
|
000b8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp]
|
|
000bc 48 83 c0 30 add rax, 48 ; 00000030H
|
|
000c0 41 b8 01 00 00
|
|
00 mov r8d, 1
|
|
000c6 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp]
|
|
000ca 48 8b 51 20 mov rdx, QWORD PTR [rcx+32]
|
|
000ce 48 8b c8 mov rcx, rax
|
|
000d1 e8 00 00 00 00 call xed_decode
|
|
|
|
; 22 : NcAppendToBlock(Block, Link);
|
|
|
|
000d6 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp]
|
|
000da 48 8b 8d 70 01
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock
|
|
|
|
; 23 : return TRUE;
|
|
|
|
000e6 b8 01 00 00 00 mov eax, 1
|
|
|
|
; 24 : }
|
|
|
|
000eb 8b f8 mov edi, eax
|
|
000ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48]
|
|
000f1 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData
|
|
000f8 e8 00 00 00 00 call _RTC_CheckStackVars
|
|
000fd 8b c7 mov eax, edi
|
|
000ff 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
00106 48 33 cd xor rcx, rbp
|
|
00109 e8 00 00 00 00 call __security_check_cookie
|
|
0010e 48 8d a5 58 01
|
|
00 00 lea rsp, QWORD PTR [rbp+344]
|
|
00115 5f pop rdi
|
|
00116 5d pop rbp
|
|
00117 c3 ret 0
|
|
?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPopfqInst
|
|
_TEXT ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
RawData$ = 4
|
|
Link$ = 40
|
|
$T4 = 264
|
|
$T5 = 296
|
|
tv79 = 312
|
|
__$ArrayPad$ = 320
|
|
Block$ = 368
|
|
?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `JitEmitPopfqInst'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48]
|
|
00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00019 48 8b 8d 28 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPopfqInst'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
RawData$ = 4
|
|
Link$ = 40
|
|
$T4 = 264
|
|
$T5 = 296
|
|
tv79 = 312
|
|
__$ArrayPad$ = 320
|
|
Block$ = 368
|
|
?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `JitEmitPopfqInst'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48]
|
|
00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00019 48 8b 8d 28 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPopfqInst'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z
|
|
_TEXT SEGMENT
|
|
RawData$ = 4
|
|
Link$ = 40
|
|
$T4 = 264
|
|
$T5 = 296
|
|
tv79 = 312
|
|
__$ArrayPad$ = 320
|
|
Block$ = 368
|
|
?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; JitEmitPushfqInst, COMDAT
|
|
|
|
; 9 : {
|
|
|
|
$LN6:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 88 01
|
|
00 00 sub rsp, 392 ; 00000188H
|
|
0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
|
|
00013 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48]
|
|
00018 b9 26 00 00 00 mov ecx, 38 ; 00000026H
|
|
0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00022 f3 ab rep stosd
|
|
00024 48 8b 8c 24 a8
|
|
01 00 00 mov rcx, QWORD PTR [rsp+424]
|
|
0002c 48 8b 05 00 00
|
|
00 00 mov rax, QWORD PTR __security_cookie
|
|
00033 48 33 c5 xor rax, rbp
|
|
00036 48 89 85 40 01
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
0003d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 10 : UCHAR RawData[] = { 0x9C };
|
|
|
|
00049 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH
|
|
|
|
; 11 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1);
|
|
|
|
0004d b9 f0 00 00 00 mov ecx, 240 ; 000000f0H
|
|
00052 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
00057 48 89 85 28 01
|
|
00 00 mov QWORD PTR $T5[rbp], rax
|
|
0005e 48 83 bd 28 01
|
|
00 00 00 cmp QWORD PTR $T5[rbp], 0
|
|
00066 74 2c je SHORT $LN3@JitEmitPus
|
|
00068 c7 44 24 20 00
|
|
00 00 00 mov DWORD PTR [rsp+32], 0
|
|
00070 41 b9 01 00 00
|
|
00 mov r9d, 1
|
|
00076 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp]
|
|
0007a ba 04 00 00 00 mov edx, 4
|
|
0007f 48 8b 8d 28 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00086 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
0008b 48 89 85 38 01
|
|
00 00 mov QWORD PTR tv79[rbp], rax
|
|
00092 eb 0b jmp SHORT $LN4@JitEmitPus
|
|
$LN3@JitEmitPus:
|
|
00094 48 c7 85 38 01
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tv79[rbp], 0
|
|
$LN4@JitEmitPus:
|
|
0009f 48 8b 85 38 01
|
|
00 00 mov rax, QWORD PTR tv79[rbp]
|
|
000a6 48 89 85 08 01
|
|
00 00 mov QWORD PTR $T4[rbp], rax
|
|
000ad 48 8b 85 08 01
|
|
00 00 mov rax, QWORD PTR $T4[rbp]
|
|
000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax
|
|
|
|
; 12 : XedDecode(&Link->XedInstruction, Link->RawData, 1);
|
|
|
|
000b8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp]
|
|
000bc 48 83 c0 30 add rax, 48 ; 00000030H
|
|
000c0 41 b8 01 00 00
|
|
00 mov r8d, 1
|
|
000c6 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp]
|
|
000ca 48 8b 51 20 mov rdx, QWORD PTR [rcx+32]
|
|
000ce 48 8b c8 mov rcx, rax
|
|
000d1 e8 00 00 00 00 call xed_decode
|
|
|
|
; 13 : NcAppendToBlock(Block, Link);
|
|
|
|
000d6 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp]
|
|
000da 48 8b 8d 70 01
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock
|
|
|
|
; 14 : return TRUE;
|
|
|
|
000e6 b8 01 00 00 00 mov eax, 1
|
|
|
|
; 15 : }
|
|
|
|
000eb 8b f8 mov edi, eax
|
|
000ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48]
|
|
000f1 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData
|
|
000f8 e8 00 00 00 00 call _RTC_CheckStackVars
|
|
000fd 8b c7 mov eax, edi
|
|
000ff 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
00106 48 33 cd xor rcx, rbp
|
|
00109 e8 00 00 00 00 call __security_check_cookie
|
|
0010e 48 8d a5 58 01
|
|
00 00 lea rsp, QWORD PTR [rbp+344]
|
|
00115 5f pop rdi
|
|
00116 5d pop rbp
|
|
00117 c3 ret 0
|
|
?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPushfqInst
|
|
_TEXT ENDS
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
RawData$ = 4
|
|
Link$ = 40
|
|
$T4 = 264
|
|
$T5 = 296
|
|
tv79 = 312
|
|
__$ArrayPad$ = 320
|
|
Block$ = 368
|
|
?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `JitEmitPushfqInst'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48]
|
|
00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00019 48 8b 8d 28 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPushfqInst'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT text$x
|
|
text$x SEGMENT
|
|
RawData$ = 4
|
|
Link$ = 40
|
|
$T4 = 264
|
|
$T5 = 296
|
|
tv79 = 312
|
|
__$ArrayPad$ = 320
|
|
Block$ = 368
|
|
?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `JitEmitPushfqInst'::`1'::dtor$0
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 83 ec 28 sub rsp, 40 ; 00000028H
|
|
00010 48 8d 6a 30 lea rbp, QWORD PTR [rdx+48]
|
|
00014 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00019 48 8b 8d 28 01
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
00025 48 83 c4 28 add rsp, 40 ; 00000028H
|
|
00029 5f pop rdi
|
|
0002a 5d pop rbp
|
|
0002b c3 ret 0
|
|
?dtor$0@?0??JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `JitEmitPushfqInst'::`1'::dtor$0
|
|
text$x ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
__flags$ = 232
|
|
??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_BLOCK::`scalar deleting destructor', COMDAT
|
|
$LN4:
|
|
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
|
|
00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00009 55 push rbp
|
|
0000a 57 push rdi
|
|
0000b 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00017 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0001e e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ
|
|
00023 8b 85 e8 00 00
|
|
00 mov eax, DWORD PTR __flags$[rbp]
|
|
00029 83 e0 01 and eax, 1
|
|
0002c 85 c0 test eax, eax
|
|
0002e 74 11 je SHORT $LN2@scalar
|
|
00030 ba 30 00 00 00 mov edx, 48 ; 00000030H
|
|
00035 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
$LN2@scalar:
|
|
00041 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00048 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0004f 5f pop rdi
|
|
00050 5d pop rbp
|
|
00051 c3 ret 0
|
|
??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_BLOCK::`scalar deleting destructor'
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT ??1_NATIVE_CODE_BLOCK@@QEAA@XZ
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
??1_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK, COMDAT
|
|
$LN3:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
0001a 48 83 c0 10 add rax, 16
|
|
0001e 48 8b c8 mov rcx, rax
|
|
00021 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector<unsigned long,std::allocator<unsigned long> >::~vector<unsigned long,std::allocator<unsigned long> >
|
|
00026 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0002d 5f pop rdi
|
|
0002e 5d pop rbp
|
|
0002f c3 ret 0
|
|
??1_NATIVE_CODE_BLOCK@@QEAA@XZ ENDP ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ PROC ; std::_Compressed_pair<std::allocator<unsigned long>,std::_Vector_val<std::_Simple_types<unsigned long> >,1>::_Get_first, COMDAT
|
|
|
|
; 1377 : constexpr _Ty1& _Get_first() noexcept {
|
|
|
|
$LN3:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 1378 : return *this;
|
|
|
|
0001f 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
|
|
; 1379 : }
|
|
|
|
00026 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0002d 5f pop rdi
|
|
0002e 5d pop rbp
|
|
0002f c3 ret 0
|
|
?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair<std::allocator<unsigned long>,std::_Vector_val<std::_Simple_types<unsigned long> >,1>::_Get_first
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector
|
|
; COMDAT ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector<unsigned long,std::allocator<unsigned long> >::_Getal, COMDAT
|
|
|
|
; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept {
|
|
|
|
$LN3:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__092B7E84_vector
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 1818 : return _Mypair._Get_first();
|
|
|
|
0001f 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00026 48 8b c8 mov rcx, rax
|
|
00029 e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ ; std::_Compressed_pair<std::allocator<unsigned long>,std::_Vector_val<std::_Simple_types<unsigned long> >,1>::_Get_first
|
|
|
|
; 1819 : }
|
|
|
|
0002e 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00035 5f pop rdi
|
|
00036 5d pop rbp
|
|
00037 c3 ret 0
|
|
?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ENDP ; std::vector<unsigned long,std::allocator<unsigned long> >::_Getal
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector
|
|
; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ
|
|
_TEXT SEGMENT
|
|
_My_data$ = 8
|
|
_Myfirst$ = 40
|
|
_Mylast$ = 72
|
|
_Myend$ = 104
|
|
tv90 = 312
|
|
tv88 = 320
|
|
tv86 = 328
|
|
this$ = 368
|
|
?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector<unsigned long,std::allocator<unsigned long> >::_Tidy, COMDAT
|
|
|
|
; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage
|
|
|
|
$LN4:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 78 01
|
|
00 00 sub rsp, 376 ; 00000178H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__092B7E84_vector
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 1756 : auto& _My_data = _Mypair._Myval2;
|
|
|
|
0001f 48 8b 85 70 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax
|
|
|
|
; 1757 : pointer& _Myfirst = _My_data._Myfirst;
|
|
|
|
0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp]
|
|
0002e 48 83 c0 08 add rax, 8
|
|
00032 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax
|
|
|
|
; 1758 : pointer& _Mylast = _My_data._Mylast;
|
|
|
|
00036 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp]
|
|
0003a 48 83 c0 10 add rax, 16
|
|
0003e 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax
|
|
|
|
; 1759 : pointer& _Myend = _My_data._Myend;
|
|
|
|
00042 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp]
|
|
00046 48 83 c0 18 add rax, 24
|
|
0004a 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax
|
|
|
|
; 1760 :
|
|
; 1761 : _My_data._Orphan_all();
|
|
|
|
0004e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp]
|
|
00052 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all
|
|
|
|
; 1762 :
|
|
; 1763 : if (_Myfirst) { // destroy and deallocate old array
|
|
|
|
00057 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp]
|
|
0005b 48 83 38 00 cmp QWORD PTR [rax], 0
|
|
0005f 0f 84 92 00 00
|
|
00 je $LN2@Tidy
|
|
|
|
; 1764 : _Destroy(_Myfirst, _Mylast);
|
|
|
|
00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp]
|
|
00069 4c 8b 00 mov r8, QWORD PTR [rax]
|
|
0006c 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp]
|
|
00070 48 8b 10 mov rdx, QWORD PTR [rax]
|
|
00073 48 8b 8d 70 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0007a e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector<unsigned long,std::allocator<unsigned long> >::_Destroy
|
|
|
|
; 1765 : _Getal().deallocate(_Myfirst, static_cast<size_type>(_Myend - _Myfirst));
|
|
|
|
0007f 48 8b 8d 70 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00086 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector<unsigned long,std::allocator<unsigned long> >::_Getal
|
|
0008b 48 89 85 38 01
|
|
00 00 mov QWORD PTR tv90[rbp], rax
|
|
00092 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp]
|
|
00096 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp]
|
|
0009a 48 8b 09 mov rcx, QWORD PTR [rcx]
|
|
0009d 48 8b 00 mov rax, QWORD PTR [rax]
|
|
000a0 48 2b c1 sub rax, rcx
|
|
000a3 48 c1 f8 02 sar rax, 2
|
|
000a7 48 89 85 40 01
|
|
00 00 mov QWORD PTR tv88[rbp], rax
|
|
000ae 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp]
|
|
000b2 48 8b 00 mov rax, QWORD PTR [rax]
|
|
000b5 48 89 85 48 01
|
|
00 00 mov QWORD PTR tv86[rbp], rax
|
|
000bc 4c 8b 85 40 01
|
|
00 00 mov r8, QWORD PTR tv88[rbp]
|
|
000c3 48 8b 95 48 01
|
|
00 00 mov rdx, QWORD PTR tv86[rbp]
|
|
000ca 48 8b 8d 38 01
|
|
00 00 mov rcx, QWORD PTR tv90[rbp]
|
|
000d1 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator<unsigned long>::deallocate
|
|
|
|
; 1766 :
|
|
; 1767 : _Myfirst = nullptr;
|
|
|
|
000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp]
|
|
000da 48 c7 00 00 00
|
|
00 00 mov QWORD PTR [rax], 0
|
|
|
|
; 1768 : _Mylast = nullptr;
|
|
|
|
000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp]
|
|
000e5 48 c7 00 00 00
|
|
00 00 mov QWORD PTR [rax], 0
|
|
|
|
; 1769 : _Myend = nullptr;
|
|
|
|
000ec 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp]
|
|
000f0 48 c7 00 00 00
|
|
00 00 mov QWORD PTR [rax], 0
|
|
$LN2@Tidy:
|
|
|
|
; 1770 : }
|
|
; 1771 : }
|
|
|
|
000f7 48 8d a5 58 01
|
|
00 00 lea rsp, QWORD PTR [rbp+344]
|
|
000fe 5f pop rdi
|
|
000ff 5d pop rbp
|
|
00100 c3 ret 0
|
|
?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector<unsigned long,std::allocator<unsigned long> >::_Tidy
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector
|
|
; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
_First$ = 232
|
|
_Last$ = 240
|
|
?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector<unsigned long,std::allocator<unsigned long> >::_Destroy, COMDAT
|
|
|
|
; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) {
|
|
|
|
$LN3:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 57 push rdi
|
|
00011 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__092B7E84_vector
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 1679 : // destroy [_First, _Last) using allocator
|
|
; 1680 : _Destroy_range(_First, _Last, _Getal());
|
|
|
|
00029 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector<unsigned long,std::allocator<unsigned long> >::_Getal
|
|
00035 4c 8b c0 mov r8, rax
|
|
00038 48 8b 95 f0 00
|
|
00 00 mov rdx, QWORD PTR _Last$[rbp]
|
|
0003f 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR _First$[rbp]
|
|
00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range<std::allocator<unsigned long> >
|
|
|
|
; 1681 : }
|
|
|
|
0004b 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00052 5f pop rdi
|
|
00053 5d pop rbp
|
|
00054 c3 ret 0
|
|
?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector<unsigned long,std::allocator<unsigned long> >::_Destroy
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector
|
|
; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ
|
|
_TEXT SEGMENT
|
|
_Alproxy$ = 8
|
|
$S1$ = 36
|
|
$T4 = 260
|
|
__$ArrayPad$ = 280
|
|
this$ = 320
|
|
??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector<unsigned long,std::allocator<unsigned long> >::~vector<unsigned long,std::allocator<unsigned long> >, COMDAT
|
|
|
|
; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept {
|
|
|
|
$LN3:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 48 01
|
|
00 00 sub rsp, 328 ; 00000148H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
|
|
00018 b9 1a 00 00 00 mov ecx, 26
|
|
0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00022 f3 ab rep stosd
|
|
00024 48 8b 8c 24 68
|
|
01 00 00 mov rcx, QWORD PTR [rsp+360]
|
|
0002c 48 8b 05 00 00
|
|
00 00 mov rax, QWORD PTR __security_cookie
|
|
00033 48 33 c5 xor rax, rbp
|
|
00036 48 89 85 18 01
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
0003d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__092B7E84_vector
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 712 : _Tidy();
|
|
|
|
00049 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector<unsigned long,std::allocator<unsigned long> >::_Tidy
|
|
|
|
; 713 : #if _ITERATOR_DEBUG_LEVEL != 0
|
|
; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal());
|
|
|
|
00055 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0005c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector<unsigned long,std::allocator<unsigned long> >::_Getal
|
|
00061 48 8b d0 mov rdx, rax
|
|
00064 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp]
|
|
00068 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator<std::_Container_proxy>::allocator<std::_Container_proxy><unsigned long>
|
|
0006d 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp]
|
|
00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax
|
|
|
|
; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr));
|
|
|
|
00075 48 c7 85 04 01
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR $T4[rbp], 0
|
|
00080 48 8b 85 40 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00087 48 8d 95 04 01
|
|
00 00 lea rdx, QWORD PTR $T4[rbp]
|
|
0008e 48 8b c8 mov rcx, rax
|
|
00091 e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange<std::_Container_proxy *,std::nullptr_t>
|
|
00096 48 8b d0 mov rdx, rax
|
|
00099 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp]
|
|
0009d e8 00 00 00 00 call ??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z ; std::_Delete_plain_internal<std::allocator<std::_Container_proxy> >
|
|
|
|
; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0
|
|
; 717 : }
|
|
|
|
000a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
000a6 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData
|
|
000ad e8 00 00 00 00 call _RTC_CheckStackVars
|
|
000b2 48 8b 8d 18 01
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
000b9 48 33 cd xor rcx, rbp
|
|
000bc e8 00 00 00 00 call __security_check_cookie
|
|
000c1 48 8d a5 28 01
|
|
00 00 lea rsp, QWORD PTR [rbp+296]
|
|
000c8 5f pop rdi
|
|
000c9 5d pop rbp
|
|
000ca c3 ret 0
|
|
??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector<unsigned long,std::allocator<unsigned long> >::~vector<unsigned long,std::allocator<unsigned long> >
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
_Ptr$ = 232
|
|
_Count$ = 240
|
|
?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator<unsigned long>::deallocate, COMDAT
|
|
|
|
; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) {
|
|
|
|
$LN3:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 57 push rdi
|
|
00011 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 834 : // no overflow check on the following multiply; we assume _Allocate did that check
|
|
; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count);
|
|
|
|
00029 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR _Count$[rbp]
|
|
00030 48 c1 e0 02 shl rax, 2
|
|
00034 48 8b d0 mov rdx, rax
|
|
00037 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR _Ptr$[rbp]
|
|
0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0>
|
|
|
|
; 836 : }
|
|
|
|
00043 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0004a 5f pop rdi
|
|
0004b 5d pop rbp
|
|
0004c c3 ret 0
|
|
?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator<unsigned long>::deallocate
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; COMDAT ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
__flags$ = 232
|
|
??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z PROC ; _NATIVE_CODE_LINK::`scalar deleting destructor', COMDAT
|
|
$LN4:
|
|
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
|
|
00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00009 55 push rbp
|
|
0000a 57 push rdi
|
|
0000b 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00017 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK
|
|
00023 8b 85 e8 00 00
|
|
00 mov eax, DWORD PTR __flags$[rbp]
|
|
00029 83 e0 01 and eax, 1
|
|
0002c 85 c0 test eax, eax
|
|
0002e 74 11 je SHORT $LN2@scalar
|
|
00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H
|
|
00035 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
|
|
$LN2@scalar:
|
|
00041 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00048 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0004f 5f pop rdi
|
|
00050 5d pop rbp
|
|
00051 c3 ret 0
|
|
??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor'
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime
|
|
; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z
|
|
_TEXT SEGMENT
|
|
$T1 = 200
|
|
tv93 = 264
|
|
tv85 = 264
|
|
this$ = 304
|
|
__formal$ = 312
|
|
_Lobj$ = 320
|
|
??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t> > >::_Getvals<wchar_t>, COMDAT
|
|
|
|
; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values
|
|
|
|
$LN5:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 56 push rsi
|
|
00011 57 push rdi
|
|
00012 48 81 ec 30 01
|
|
00 00 sub rsp, 304 ; 00000130H
|
|
00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001e 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime
|
|
00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 174 : _Cvt = _Lobj._Getcvt();
|
|
|
|
0002a 48 8d 95 c8 00
|
|
00 00 lea rdx, QWORD PTR $T1[rbp]
|
|
00031 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
00038 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ
|
|
0003e 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44]
|
|
00049 48 8b f0 mov rsi, rax
|
|
0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH
|
|
00051 f3 a4 rep movsb
|
|
|
|
; 175 :
|
|
; 176 : if (is_same_v<_Elem2, wchar_t>) {
|
|
|
|
00053 33 c0 xor eax, eax
|
|
00055 83 f8 01 cmp eax, 1
|
|
00058 74 5c je SHORT $LN2@Getvals
|
|
|
|
; 177 : _Days = reinterpret_cast<const _Elem*>(_Maklocwcs(reinterpret_cast<const wchar_t*>(_Lobj._W_Getdays())));
|
|
|
|
0005a 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
00061 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ
|
|
00067 48 8b c8 mov rcx, rax
|
|
0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs
|
|
0006f 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00076 48 89 41 10 mov QWORD PTR [rcx+16], rax
|
|
|
|
; 178 : _Months =
|
|
|
|
0007a 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
00081 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ
|
|
00087 48 8b c8 mov rcx, rax
|
|
0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs
|
|
0008f 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00096 48 89 41 18 mov QWORD PTR [rcx+24], rax
|
|
|
|
; 179 : reinterpret_cast<const _Elem*>(_Maklocwcs(reinterpret_cast<const wchar_t*>(_Lobj._W_Getmonths())));
|
|
; 180 : _Ampm = reinterpret_cast<const _Elem*>(_Maklocwcs(L":AM:am:PM:pm"));
|
|
|
|
0009a 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@
|
|
000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs
|
|
000a6 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax
|
|
|
|
; 181 : } else {
|
|
|
|
000b1 e9 a3 00 00 00 jmp $LN3@Getvals
|
|
$LN2@Getvals:
|
|
|
|
; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt);
|
|
|
|
000b6 48 8b 85 30 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
000bd 48 83 c0 2c add rax, 44 ; 0000002cH
|
|
000c1 48 89 85 08 01
|
|
00 00 mov QWORD PTR tv85[rbp], rax
|
|
000c8 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
000cf ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ
|
|
000d5 48 8b 8d 08 01
|
|
00 00 mov rcx, QWORD PTR tv85[rbp]
|
|
000dc 4c 8b c1 mov r8, rcx
|
|
000df 33 d2 xor edx, edx
|
|
000e1 48 8b c8 mov rcx, rax
|
|
000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr<wchar_t>
|
|
000e9 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax
|
|
|
|
; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt);
|
|
|
|
000f4 48 8b 85 30 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
000fb 48 83 c0 2c add rax, 44 ; 0000002cH
|
|
000ff 48 89 85 08 01
|
|
00 00 mov QWORD PTR tv93[rbp], rax
|
|
00106 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
0010d ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ
|
|
00113 48 8b 8d 08 01
|
|
00 00 mov rcx, QWORD PTR tv93[rbp]
|
|
0011a 4c 8b c1 mov r8, rcx
|
|
0011d 33 d2 xor edx, edx
|
|
0011f 48 8b c8 mov rcx, rax
|
|
00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr<wchar_t>
|
|
00127 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax
|
|
|
|
; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt);
|
|
|
|
00132 48 8b 85 30 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00139 48 83 c0 2c add rax, 44 ; 0000002cH
|
|
0013d 4c 8b c0 mov r8, rax
|
|
00140 33 d2 xor edx, edx
|
|
00142 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@
|
|
00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr<wchar_t>
|
|
0014e 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00155 48 89 41 20 mov QWORD PTR [rcx+32], rax
|
|
$LN3@Getvals:
|
|
|
|
; 185 : }
|
|
; 186 : }
|
|
|
|
00159 48 8d a5 10 01
|
|
00 00 lea rsp, QWORD PTR [rbp+272]
|
|
00160 5f pop rdi
|
|
00161 5e pop rsi
|
|
00162 5d pop rbp
|
|
00163 c3 ret 0
|
|
??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t> > >::_Getvals<wchar_t>
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime
|
|
; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z
|
|
_TEXT SEGMENT
|
|
$T1 = 200
|
|
tv93 = 264
|
|
tv85 = 264
|
|
this$ = 304
|
|
__formal$ = 312
|
|
_Lobj$ = 320
|
|
??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getvals<wchar_t>, COMDAT
|
|
|
|
; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values
|
|
|
|
$LN5:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 56 push rsi
|
|
00011 57 push rdi
|
|
00012 48 81 ec 30 01
|
|
00 00 sub rsp, 304 ; 00000130H
|
|
00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001e 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime
|
|
00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 174 : _Cvt = _Lobj._Getcvt();
|
|
|
|
0002a 48 8d 95 c8 00
|
|
00 00 lea rdx, QWORD PTR $T1[rbp]
|
|
00031 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
00038 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ
|
|
0003e 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44]
|
|
00049 48 8b f0 mov rsi, rax
|
|
0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH
|
|
00051 f3 a4 rep movsb
|
|
|
|
; 175 :
|
|
; 176 : if (is_same_v<_Elem2, wchar_t>) {
|
|
|
|
00053 33 c0 xor eax, eax
|
|
00055 83 f8 01 cmp eax, 1
|
|
00058 74 5c je SHORT $LN2@Getvals
|
|
|
|
; 177 : _Days = reinterpret_cast<const _Elem*>(_Maklocwcs(reinterpret_cast<const wchar_t*>(_Lobj._W_Getdays())));
|
|
|
|
0005a 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
00061 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ
|
|
00067 48 8b c8 mov rcx, rax
|
|
0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs
|
|
0006f 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00076 48 89 41 10 mov QWORD PTR [rcx+16], rax
|
|
|
|
; 178 : _Months =
|
|
|
|
0007a 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
00081 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ
|
|
00087 48 8b c8 mov rcx, rax
|
|
0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs
|
|
0008f 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00096 48 89 41 18 mov QWORD PTR [rcx+24], rax
|
|
|
|
; 179 : reinterpret_cast<const _Elem*>(_Maklocwcs(reinterpret_cast<const wchar_t*>(_Lobj._W_Getmonths())));
|
|
; 180 : _Ampm = reinterpret_cast<const _Elem*>(_Maklocwcs(L":AM:am:PM:pm"));
|
|
|
|
0009a 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@
|
|
000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs
|
|
000a6 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax
|
|
|
|
; 181 : } else {
|
|
|
|
000b1 e9 a3 00 00 00 jmp $LN3@Getvals
|
|
$LN2@Getvals:
|
|
|
|
; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt);
|
|
|
|
000b6 48 8b 85 30 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
000bd 48 83 c0 2c add rax, 44 ; 0000002cH
|
|
000c1 48 89 85 08 01
|
|
00 00 mov QWORD PTR tv85[rbp], rax
|
|
000c8 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
000cf ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ
|
|
000d5 48 8b 8d 08 01
|
|
00 00 mov rcx, QWORD PTR tv85[rbp]
|
|
000dc 4c 8b c1 mov r8, rcx
|
|
000df 33 d2 xor edx, edx
|
|
000e1 48 8b c8 mov rcx, rax
|
|
000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr<char>
|
|
000e9 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax
|
|
|
|
; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt);
|
|
|
|
000f4 48 8b 85 30 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
000fb 48 83 c0 2c add rax, 44 ; 0000002cH
|
|
000ff 48 89 85 08 01
|
|
00 00 mov QWORD PTR tv93[rbp], rax
|
|
00106 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Lobj$[rbp]
|
|
0010d ff 15 00 00 00
|
|
00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ
|
|
00113 48 8b 8d 08 01
|
|
00 00 mov rcx, QWORD PTR tv93[rbp]
|
|
0011a 4c 8b c1 mov r8, rcx
|
|
0011d 33 d2 xor edx, edx
|
|
0011f 48 8b c8 mov rcx, rax
|
|
00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr<char>
|
|
00127 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax
|
|
|
|
; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt);
|
|
|
|
00132 48 8b 85 30 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00139 48 83 c0 2c add rax, 44 ; 0000002cH
|
|
0013d 4c 8b c0 mov r8, rax
|
|
00140 33 d2 xor edx, edx
|
|
00142 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@
|
|
00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr<char>
|
|
0014e 48 8b 8d 30 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00155 48 89 41 20 mov QWORD PTR [rcx+32], rax
|
|
$LN3@Getvals:
|
|
|
|
; 185 : }
|
|
; 186 : }
|
|
|
|
00159 48 8d a5 10 01
|
|
00 00 lea rsp, QWORD PTR [rbp+272]
|
|
00160 5f pop rdi
|
|
00161 5e pop rsi
|
|
00162 5d pop rbp
|
|
00163 c3 ret 0
|
|
??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char> > >::_Getvals<wchar_t>
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale
|
|
; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z
|
|
_TEXT SEGMENT
|
|
_Count$ = 8
|
|
_Ptrdest$ = 40
|
|
_Ptrnext$1 = 72
|
|
_Ptr$ = 320
|
|
__formal$ = 328
|
|
__formal$ = 336
|
|
??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr<char>, COMDAT
|
|
|
|
; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) {
|
|
|
|
$LN7:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 57 push rdi
|
|
00011 48 81 ec 58 01
|
|
00 00 sub rsp, 344 ; 00000158H
|
|
00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
|
|
0001d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 523 : // convert C string to _Elem sequence using _Cvtvec
|
|
; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1;
|
|
|
|
00029 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Ptr$[rbp]
|
|
00030 e8 00 00 00 00 call strlen
|
|
00035 48 ff c0 inc rax
|
|
00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax
|
|
|
|
; 525 :
|
|
; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__));
|
|
|
|
0003c c7 44 24 20 0e
|
|
02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH
|
|
00044 4c 8d 0d 00 00
|
|
00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
0004b 41 b8 02 00 00
|
|
00 mov r8d, 2
|
|
00051 ba 01 00 00 00 mov edx, 1
|
|
00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp]
|
|
0005a ff 15 00 00 00
|
|
00 call QWORD PTR __imp__calloc_dbg
|
|
00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax
|
|
|
|
; 527 :
|
|
; 528 : if (!_Ptrdest) {
|
|
|
|
00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0
|
|
00069 75 05 jne SHORT $LN5@Maklocstr
|
|
|
|
; 529 : _Xbad_alloc();
|
|
|
|
0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc
|
|
$LN5@Maklocstr:
|
|
|
|
; 530 : }
|
|
; 531 :
|
|
; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) {
|
|
|
|
00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp]
|
|
00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax
|
|
00078 eb 27 jmp SHORT $LN4@Maklocstr
|
|
$LN2@Maklocstr:
|
|
0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp]
|
|
0007e 48 ff c8 dec rax
|
|
00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax
|
|
00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp]
|
|
00089 48 ff c0 inc rax
|
|
0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax
|
|
00090 48 8b 85 40 01
|
|
00 00 mov rax, QWORD PTR _Ptr$[rbp]
|
|
00097 48 ff c0 inc rax
|
|
0009a 48 89 85 40 01
|
|
00 00 mov QWORD PTR _Ptr$[rbp], rax
|
|
$LN4@Maklocstr:
|
|
000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0
|
|
000a6 76 12 jbe SHORT $LN3@Maklocstr
|
|
|
|
; 533 : *_Ptrnext = static_cast<_Elem>(static_cast<unsigned char>(*_Ptr));
|
|
|
|
000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp]
|
|
000ac 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR _Ptr$[rbp]
|
|
000b3 0f b6 09 movzx ecx, BYTE PTR [rcx]
|
|
000b6 88 08 mov BYTE PTR [rax], cl
|
|
|
|
; 534 : }
|
|
|
|
000b8 eb c0 jmp SHORT $LN2@Maklocstr
|
|
$LN3@Maklocstr:
|
|
|
|
; 535 :
|
|
; 536 : return _Ptrdest;
|
|
|
|
000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp]
|
|
$LN6@Maklocstr:
|
|
|
|
; 537 : }
|
|
|
|
000be 48 8d a5 28 01
|
|
00 00 lea rsp, QWORD PTR [rbp+296]
|
|
000c5 5f pop rdi
|
|
000c6 5d pop rbp
|
|
000c7 c3 ret 0
|
|
??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr<char>
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocnum
|
|
; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z
|
|
_TEXT SEGMENT
|
|
_Count$ = 8
|
|
_Ptrdest$ = 40
|
|
_Ptr$ = 288
|
|
?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT
|
|
|
|
; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage
|
|
|
|
$LN4:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 38 01
|
|
00 00 sub rsp, 312 ; 00000138H
|
|
0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
|
|
00013 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1;
|
|
|
|
0001f 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR _Ptr$[rbp]
|
|
00026 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_wcslen
|
|
0002c 48 ff c0 inc rax
|
|
0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax
|
|
|
|
; 92 :
|
|
; 93 : wchar_t* _Ptrdest = static_cast<wchar_t*>(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__));
|
|
|
|
00033 8b 05 00 00 00
|
|
00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA
|
|
00039 83 c0 03 add eax, 3
|
|
0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax
|
|
00040 4c 8d 0d 00 00
|
|
00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
00047 41 b8 02 00 00
|
|
00 mov r8d, 2
|
|
0004d ba 02 00 00 00 mov edx, 2
|
|
00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp]
|
|
00056 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__calloc_dbg
|
|
0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax
|
|
|
|
; 94 :
|
|
; 95 : if (!_Ptrdest) {
|
|
|
|
00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0
|
|
00065 75 05 jne SHORT $LN2@Maklocwcs
|
|
|
|
; 96 : _Xbad_alloc();
|
|
|
|
00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc
|
|
$LN2@Maklocwcs:
|
|
|
|
; 97 : }
|
|
; 98 :
|
|
; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count);
|
|
|
|
0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp]
|
|
00070 48 8b 95 20 01
|
|
00 00 mov rdx, QWORD PTR _Ptr$[rbp]
|
|
00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp]
|
|
0007b e8 00 00 00 00 call wmemcpy
|
|
|
|
; 100 : return _Ptrdest;
|
|
|
|
00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp]
|
|
$LN3@Maklocwcs:
|
|
|
|
; 101 : }
|
|
|
|
00084 48 8d a5 08 01
|
|
00 00 lea rsp, QWORD PTR [rbp+264]
|
|
0008b 5f pop rdi
|
|
0008c 5d pop rbp
|
|
0008d c3 ret 0
|
|
?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale
|
|
; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z
|
|
_TEXT SEGMENT
|
|
_Count$ = 8
|
|
_Count1$ = 40
|
|
_Wchars$ = 72
|
|
_Ptr1$ = 104
|
|
_Bytes$ = 132
|
|
_Wc$ = 164
|
|
_Mbst1$ = 200
|
|
_Ptrdest$ = 232
|
|
_Ptrnext$ = 264
|
|
_Mbst2$ = 296
|
|
__$ArrayPad$ = 504
|
|
_Ptr$ = 544
|
|
__formal$ = 552
|
|
_Cvt$ = 560
|
|
??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr<wchar_t>, COMDAT
|
|
|
|
; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) {
|
|
|
|
$LN12:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 57 push rdi
|
|
00011 48 81 ec 38 02
|
|
00 00 sub rsp, 568 ; 00000238H
|
|
00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
|
|
0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48]
|
|
00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H
|
|
00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
0002c f3 ab rep stosd
|
|
0002e 48 8b 8c 24 58
|
|
02 00 00 mov rcx, QWORD PTR [rsp+600]
|
|
00036 48 8b 05 00 00
|
|
00 00 mov rax, QWORD PTR __security_cookie
|
|
0003d 48 33 c5 xor rax, rbp
|
|
00040 48 89 85 f8 01
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
00047 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale
|
|
0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 541 : // convert C string to wchar_t sequence using _Cvtvec
|
|
; 542 : size_t _Count;
|
|
; 543 : size_t _Count1;
|
|
; 544 : size_t _Wchars;
|
|
; 545 : const char* _Ptr1;
|
|
; 546 : int _Bytes;
|
|
; 547 : wchar_t _Wc;
|
|
; 548 : mbstate_t _Mbst1 = {};
|
|
|
|
00053 48 8d 85 c8 00
|
|
00 00 lea rax, QWORD PTR _Mbst1$[rbp]
|
|
0005a 48 8b f8 mov rdi, rax
|
|
0005d 33 c0 xor eax, eax
|
|
0005f b9 08 00 00 00 mov ecx, 8
|
|
00064 f3 aa rep stosb
|
|
|
|
; 549 :
|
|
; 550 : _Count1 = _CSTD strlen(_Ptr) + 1;
|
|
|
|
00066 48 8b 8d 20 02
|
|
00 00 mov rcx, QWORD PTR _Ptr$[rbp]
|
|
0006d e8 00 00 00 00 call strlen
|
|
00072 48 ff c0 inc rax
|
|
00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax
|
|
|
|
; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) {
|
|
|
|
00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp]
|
|
0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax
|
|
00081 48 c7 45 48 00
|
|
00 00 00 mov QWORD PTR _Wchars$[rbp], 0
|
|
00089 48 8b 85 20 02
|
|
00 00 mov rax, QWORD PTR _Ptr$[rbp]
|
|
00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax
|
|
00094 eb 35 jmp SHORT $LN4@Maklocstr
|
|
$LN2@Maklocstr:
|
|
00096 48 63 85 84 00
|
|
00 00 movsxd rax, DWORD PTR _Bytes$[rbp]
|
|
0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp]
|
|
000a1 48 2b c8 sub rcx, rax
|
|
000a4 48 8b c1 mov rax, rcx
|
|
000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax
|
|
000ab 48 63 85 84 00
|
|
00 00 movsxd rax, DWORD PTR _Bytes$[rbp]
|
|
000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp]
|
|
000b6 48 03 c8 add rcx, rax
|
|
000b9 48 8b c1 mov rax, rcx
|
|
000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax
|
|
000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp]
|
|
000c4 48 ff c0 inc rax
|
|
000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax
|
|
$LN4@Maklocstr:
|
|
000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0
|
|
000d0 76 3a jbe SHORT $LN3@Maklocstr
|
|
|
|
; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) {
|
|
|
|
000d2 48 8b 85 30 02
|
|
00 00 mov rax, QWORD PTR _Cvt$[rbp]
|
|
000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax
|
|
000de 4c 8d 8d c8 00
|
|
00 00 lea r9, QWORD PTR _Mbst1$[rbp]
|
|
000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp]
|
|
000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp]
|
|
000ed 48 8d 8d a4 00
|
|
00 00 lea rcx, QWORD PTR _Wc$[rbp]
|
|
000f4 e8 00 00 00 00 call _Mbrtowc
|
|
000f9 89 85 84 00 00
|
|
00 mov DWORD PTR _Bytes$[rbp], eax
|
|
000ff 83 bd 84 00 00
|
|
00 00 cmp DWORD PTR _Bytes$[rbp], 0
|
|
00106 7f 02 jg SHORT $LN8@Maklocstr
|
|
|
|
; 553 : break;
|
|
|
|
00108 eb 02 jmp SHORT $LN3@Maklocstr
|
|
$LN8@Maklocstr:
|
|
|
|
; 554 : }
|
|
; 555 : }
|
|
|
|
0010a eb 8a jmp SHORT $LN2@Maklocstr
|
|
$LN3@Maklocstr:
|
|
|
|
; 556 :
|
|
; 557 : ++_Wchars; // count terminating nul
|
|
|
|
0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp]
|
|
00110 48 ff c0 inc rax
|
|
00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax
|
|
|
|
; 558 :
|
|
; 559 : wchar_t* _Ptrdest = static_cast<wchar_t*>(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__));
|
|
|
|
00117 c7 44 24 20 2f
|
|
02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH
|
|
0011f 4c 8d 0d 00 00
|
|
00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
00126 41 b8 02 00 00
|
|
00 mov r8d, 2
|
|
0012c ba 02 00 00 00 mov edx, 2
|
|
00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp]
|
|
00135 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__calloc_dbg
|
|
0013b 48 89 85 e8 00
|
|
00 00 mov QWORD PTR _Ptrdest$[rbp], rax
|
|
|
|
; 560 :
|
|
; 561 : if (!_Ptrdest) {
|
|
|
|
00142 48 83 bd e8 00
|
|
00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0
|
|
0014a 75 05 jne SHORT $LN9@Maklocstr
|
|
|
|
; 562 : _Xbad_alloc();
|
|
|
|
0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc
|
|
$LN9@Maklocstr:
|
|
|
|
; 563 : }
|
|
; 564 :
|
|
; 565 : wchar_t* _Ptrnext = _Ptrdest;
|
|
|
|
00151 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR _Ptrdest$[rbp]
|
|
00158 48 89 85 08 01
|
|
00 00 mov QWORD PTR _Ptrnext$[rbp], rax
|
|
|
|
; 566 : mbstate_t _Mbst2 = {};
|
|
|
|
0015f 48 8d 85 28 01
|
|
00 00 lea rax, QWORD PTR _Mbst2$[rbp]
|
|
00166 48 8b f8 mov rdi, rax
|
|
00169 33 c0 xor eax, eax
|
|
0016b b9 08 00 00 00 mov ecx, 8
|
|
00170 f3 aa rep stosb
|
|
|
|
; 567 :
|
|
; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) {
|
|
|
|
00172 eb 4d jmp SHORT $LN7@Maklocstr
|
|
$LN5@Maklocstr:
|
|
00174 48 63 85 84 00
|
|
00 00 movsxd rax, DWORD PTR _Bytes$[rbp]
|
|
0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp]
|
|
0017f 48 2b c8 sub rcx, rax
|
|
00182 48 8b c1 mov rax, rcx
|
|
00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax
|
|
00189 48 63 85 84 00
|
|
00 00 movsxd rax, DWORD PTR _Bytes$[rbp]
|
|
00190 48 8b 8d 20 02
|
|
00 00 mov rcx, QWORD PTR _Ptr$[rbp]
|
|
00197 48 03 c8 add rcx, rax
|
|
0019a 48 8b c1 mov rax, rcx
|
|
0019d 48 89 85 20 02
|
|
00 00 mov QWORD PTR _Ptr$[rbp], rax
|
|
001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp]
|
|
001a8 48 ff c8 dec rax
|
|
001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax
|
|
001af 48 8b 85 08 01
|
|
00 00 mov rax, QWORD PTR _Ptrnext$[rbp]
|
|
001b6 48 83 c0 02 add rax, 2
|
|
001ba 48 89 85 08 01
|
|
00 00 mov QWORD PTR _Ptrnext$[rbp], rax
|
|
$LN7@Maklocstr:
|
|
001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0
|
|
001c6 76 40 jbe SHORT $LN6@Maklocstr
|
|
|
|
; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) {
|
|
|
|
001c8 48 8b 85 30 02
|
|
00 00 mov rax, QWORD PTR _Cvt$[rbp]
|
|
001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax
|
|
001d4 4c 8d 8d 28 01
|
|
00 00 lea r9, QWORD PTR _Mbst2$[rbp]
|
|
001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp]
|
|
001df 48 8b 95 20 02
|
|
00 00 mov rdx, QWORD PTR _Ptr$[rbp]
|
|
001e6 48 8b 8d 08 01
|
|
00 00 mov rcx, QWORD PTR _Ptrnext$[rbp]
|
|
001ed e8 00 00 00 00 call _Mbrtowc
|
|
001f2 89 85 84 00 00
|
|
00 mov DWORD PTR _Bytes$[rbp], eax
|
|
001f8 83 bd 84 00 00
|
|
00 00 cmp DWORD PTR _Bytes$[rbp], 0
|
|
001ff 7f 02 jg SHORT $LN10@Maklocstr
|
|
|
|
; 570 : break;
|
|
|
|
00201 eb 05 jmp SHORT $LN6@Maklocstr
|
|
$LN10@Maklocstr:
|
|
|
|
; 571 : }
|
|
; 572 : }
|
|
|
|
00203 e9 6c ff ff ff jmp $LN5@Maklocstr
|
|
$LN6@Maklocstr:
|
|
|
|
; 573 :
|
|
; 574 : *_Ptrnext = L'\0';
|
|
|
|
00208 33 c0 xor eax, eax
|
|
0020a 48 8b 8d 08 01
|
|
00 00 mov rcx, QWORD PTR _Ptrnext$[rbp]
|
|
00211 66 89 01 mov WORD PTR [rcx], ax
|
|
|
|
; 575 :
|
|
; 576 : return _Ptrdest;
|
|
|
|
00214 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR _Ptrdest$[rbp]
|
|
$LN11@Maklocstr:
|
|
|
|
; 577 : }
|
|
|
|
0021b 48 8b f8 mov rdi, rax
|
|
0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48]
|
|
00222 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData
|
|
00229 e8 00 00 00 00 call _RTC_CheckStackVars
|
|
0022e 48 8b c7 mov rax, rdi
|
|
00231 48 8b 8d f8 01
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
00238 48 33 cd xor rcx, rbp
|
|
0023b e8 00 00 00 00 call __security_check_cookie
|
|
00240 48 8d a5 08 02
|
|
00 00 lea rsp, QWORD PTR [rbp+520]
|
|
00247 5f pop rdi
|
|
00248 5d pop rbp
|
|
00249 c3 ret 0
|
|
??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr<wchar_t>
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ
|
|
_TEXT SEGMENT
|
|
_Lock$ = 4
|
|
__$ArrayPad$ = 216
|
|
this$ = 256
|
|
?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT
|
|
|
|
; 1095 : void _Orphan_all_locked() noexcept {
|
|
|
|
$LN3:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 08 01
|
|
00 00 sub rsp, 264 ; 00000108H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
|
|
00018 b9 0a 00 00 00 mov ecx, 10
|
|
0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00022 f3 ab rep stosd
|
|
00024 48 8b 8c 24 28
|
|
01 00 00 mov rcx, QWORD PTR [rsp+296]
|
|
0002c 48 8b 05 00 00
|
|
00 00 mov rax, QWORD PTR __security_cookie
|
|
00033 48 33 c5 xor rax, rbp
|
|
00036 48 89 85 d8 00
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
0003d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 1096 : _Lockit _Lock(_LOCK_DEBUG);
|
|
|
|
00049 ba 03 00 00 00 mov edx, 3
|
|
0004e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp]
|
|
00052 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z
|
|
|
|
; 1097 : _Orphan_all_unlocked();
|
|
|
|
00058 48 8b 8d 00 01
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
0005f e8 00 00 00 00 call ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_unlocked
|
|
|
|
; 1098 : }
|
|
|
|
00064 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp]
|
|
00068 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ
|
|
0006e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
00072 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData
|
|
00079 e8 00 00 00 00 call _RTC_CheckStackVars
|
|
0007e 48 8b 8d d8 00
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
00085 48 33 cd xor rcx, rbp
|
|
00088 e8 00 00 00 00 call __security_check_cookie
|
|
0008d 48 8d a5 e8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+232]
|
|
00094 5f pop rdi
|
|
00095 5d pop rbp
|
|
00096 c3 ret 0
|
|
?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_locked
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ
|
|
_TEXT SEGMENT
|
|
_Pnext$1 = 8
|
|
this$ = 256
|
|
?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT
|
|
|
|
; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept {
|
|
|
|
$LN6:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec 08 01
|
|
00 00 sub rsp, 264 ; 00000108H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037
|
|
|
|
0001f 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00026 48 8b 00 mov rax, QWORD PTR [rax]
|
|
00029 48 83 c0 08 add rax, 8
|
|
0002d 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax
|
|
00031 eb 12 jmp SHORT $LN4@Orphan_all
|
|
$LN2@Orphan_all:
|
|
00033 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp]
|
|
00037 48 8b 00 mov rax, QWORD PTR [rax]
|
|
0003a 48 8b 4d 08 mov rcx, QWORD PTR _Pnext$1[rbp]
|
|
0003e 48 8b 40 08 mov rax, QWORD PTR [rax+8]
|
|
00042 48 89 01 mov QWORD PTR [rcx], rax
|
|
$LN4@Orphan_all:
|
|
00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp]
|
|
00049 48 83 38 00 cmp QWORD PTR [rax], 0
|
|
0004d 74 10 je SHORT $LN3@Orphan_all
|
|
|
|
; 1222 : _Pnext->_Myproxy = nullptr;
|
|
|
|
0004f 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp]
|
|
00053 48 8b 00 mov rax, QWORD PTR [rax]
|
|
00056 48 c7 00 00 00
|
|
00 00 mov QWORD PTR [rax], 0
|
|
|
|
; 1223 : }
|
|
|
|
0005d eb d4 jmp SHORT $LN2@Orphan_all
|
|
$LN3@Orphan_all:
|
|
|
|
; 1224 : _Myproxy->_Myfirstiter = nullptr;
|
|
|
|
0005f 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00066 48 8b 00 mov rax, QWORD PTR [rax]
|
|
00069 48 c7 40 08 00
|
|
00 00 00 mov QWORD PTR [rax+8], 0
|
|
|
|
; 1225 : }
|
|
|
|
00071 48 8d a5 e8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+232]
|
|
00078 5f pop rdi
|
|
00079 5d pop rbp
|
|
0007a c3 ret 0
|
|
?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ
|
|
_TEXT SEGMENT
|
|
this$ = 224
|
|
?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT
|
|
|
|
; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept {
|
|
|
|
$LN4:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2
|
|
; 1229 : if (_Myproxy) { // proxy allocated, drain it
|
|
|
|
0001f 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR this$[rbp]
|
|
00026 48 83 38 00 cmp QWORD PTR [rax], 0
|
|
0002a 74 0c je SHORT $LN2@Orphan_all
|
|
|
|
; 1230 : #ifdef __cpp_lib_constexpr_dynamic_alloc
|
|
; 1231 : if (_STD is_constant_evaluated()) {
|
|
; 1232 : _Orphan_all_unlocked();
|
|
; 1233 : } else
|
|
; 1234 : #endif // __cpp_lib_constexpr_dynamic_alloc
|
|
; 1235 : {
|
|
; 1236 : _Orphan_all_locked();
|
|
|
|
0002c 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR this$[rbp]
|
|
00033 e8 00 00 00 00 call ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ ; std::_Container_base12::_Orphan_all_locked
|
|
$LN2@Orphan_all:
|
|
|
|
; 1237 : }
|
|
; 1238 : }
|
|
; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2
|
|
; 1240 : }
|
|
|
|
00038 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0003f 5f pop rdi
|
|
00040 5d pop rbp
|
|
00041 c3 ret 0
|
|
?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory
|
|
; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z
|
|
_TEXT SEGMENT
|
|
_Ptr_user$ = 8
|
|
_Ptr_container$ = 40
|
|
_Min_back_shift$ = 72
|
|
_Back_shift$ = 104
|
|
_Ptr$ = 352
|
|
_Bytes$ = 360
|
|
?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT
|
|
|
|
; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) {
|
|
|
|
$LN21:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec 78 01
|
|
00 00 sub rsp, 376 ; 00000178H
|
|
00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete
|
|
; 155 : _Bytes += _Non_user_size;
|
|
|
|
00024 48 8b 85 68 01
|
|
00 00 mov rax, QWORD PTR _Bytes$[rbp]
|
|
0002b 48 8b 00 mov rax, QWORD PTR [rax]
|
|
0002e 48 83 c0 2f add rax, 47 ; 0000002fH
|
|
00032 48 8b 8d 68 01
|
|
00 00 mov rcx, QWORD PTR _Bytes$[rbp]
|
|
00039 48 89 01 mov QWORD PTR [rcx], rax
|
|
|
|
; 156 :
|
|
; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast<uintptr_t*>(_Ptr);
|
|
|
|
0003c 48 8b 85 60 01
|
|
00 00 mov rax, QWORD PTR _Ptr$[rbp]
|
|
00043 48 8b 00 mov rax, QWORD PTR [rax]
|
|
00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax
|
|
|
|
; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1];
|
|
|
|
0004a b8 08 00 00 00 mov eax, 8
|
|
0004f 48 6b c0 ff imul rax, rax, -1
|
|
00053 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp]
|
|
00057 48 8b 04 01 mov rax, QWORD PTR [rcx+rax]
|
|
0005b 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax
|
|
$LN4@Adjust_man:
|
|
|
|
; 159 :
|
|
; 160 : // If the following asserts, it likely means that we are performing
|
|
; 161 : // an aligned delete on memory coming from an unaligned allocation.
|
|
; 162 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument");
|
|
|
|
0005f b8 08 00 00 00 mov eax, 8
|
|
00064 48 6b c0 fe imul rax, rax, -2
|
|
00068 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp]
|
|
0006c 48 ba fa fa fa
|
|
fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH
|
|
00076 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx
|
|
0007a 75 02 jne SHORT $LN14@Adjust_man
|
|
0007c eb 77 jmp SHORT $LN15@Adjust_man
|
|
$LN14@Adjust_man:
|
|
$LN7@Adjust_man:
|
|
0007e 8b 05 00 00 00
|
|
00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA
|
|
00084 83 c0 09 add eax, 9
|
|
00087 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@
|
|
0008e 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx
|
|
00093 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@
|
|
0009a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx
|
|
0009f 45 33 c9 xor r9d, r9d
|
|
000a2 44 8b c0 mov r8d, eax
|
|
000a5 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
000ac b9 02 00 00 00 mov ecx, 2
|
|
000b1 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__CrtDbgReport
|
|
000b7 83 f8 01 cmp eax, 1
|
|
000ba 75 03 jne SHORT $LN19@Adjust_man
|
|
000bc cc int 3
|
|
000bd 33 c0 xor eax, eax
|
|
$LN19@Adjust_man:
|
|
000bf 8b 05 00 00 00
|
|
00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA
|
|
000c5 83 c0 09 add eax, 9
|
|
000c8 48 c7 44 24 20
|
|
00 00 00 00 mov QWORD PTR [rsp+32], 0
|
|
000d1 44 8b c8 mov r9d, eax
|
|
000d4 4c 8d 05 00 00
|
|
00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@
|
|
000db 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@
|
|
000e2 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@
|
|
000e9 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__invalid_parameter
|
|
000ef 33 c0 xor eax, eax
|
|
000f1 85 c0 test eax, eax
|
|
000f3 75 89 jne SHORT $LN7@Adjust_man
|
|
$LN15@Adjust_man:
|
|
000f5 33 c0 xor eax, eax
|
|
000f7 85 c0 test eax, eax
|
|
000f9 0f 85 60 ff ff
|
|
ff jne $LN4@Adjust_man
|
|
|
|
; 163 :
|
|
; 164 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is
|
|
; 165 : // in range [_Min_back_shift, _Non_user_size]
|
|
; 166 : #ifdef _DEBUG
|
|
; 167 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*);
|
|
|
|
000ff 48 c7 45 48 10
|
|
00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16
|
|
|
|
; 168 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv
|
|
; 169 : constexpr uintptr_t _Min_back_shift = sizeof(void*);
|
|
; 170 : #endif // _DEBUG
|
|
; 171 : const uintptr_t _Back_shift = reinterpret_cast<uintptr_t>(_Ptr) - _Ptr_container;
|
|
|
|
00107 48 8b 85 60 01
|
|
00 00 mov rax, QWORD PTR _Ptr$[rbp]
|
|
0010e 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp]
|
|
00112 48 8b 00 mov rax, QWORD PTR [rax]
|
|
00115 48 2b c1 sub rax, rcx
|
|
00118 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax
|
|
$LN10@Adjust_man:
|
|
|
|
; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument");
|
|
|
|
0011c 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16
|
|
00121 72 09 jb SHORT $LN16@Adjust_man
|
|
00123 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH
|
|
00128 77 02 ja SHORT $LN16@Adjust_man
|
|
0012a eb 77 jmp SHORT $LN17@Adjust_man
|
|
$LN16@Adjust_man:
|
|
$LN13@Adjust_man:
|
|
0012c 8b 05 00 00 00
|
|
00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA
|
|
00132 83 c0 13 add eax, 19
|
|
00135 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@
|
|
0013c 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx
|
|
00141 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@
|
|
00148 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx
|
|
0014d 45 33 c9 xor r9d, r9d
|
|
00150 44 8b c0 mov r8d, eax
|
|
00153 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
0015a b9 02 00 00 00 mov ecx, 2
|
|
0015f ff 15 00 00 00
|
|
00 call QWORD PTR __imp__CrtDbgReport
|
|
00165 83 f8 01 cmp eax, 1
|
|
00168 75 03 jne SHORT $LN20@Adjust_man
|
|
0016a cc int 3
|
|
0016b 33 c0 xor eax, eax
|
|
$LN20@Adjust_man:
|
|
0016d 8b 05 00 00 00
|
|
00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA
|
|
00173 83 c0 13 add eax, 19
|
|
00176 48 c7 44 24 20
|
|
00 00 00 00 mov QWORD PTR [rsp+32], 0
|
|
0017f 44 8b c8 mov r9d, eax
|
|
00182 4c 8d 05 00 00
|
|
00 00 lea r8, OFFSET FLAT:??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@
|
|
00189 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@
|
|
00190 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@
|
|
00197 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__invalid_parameter
|
|
0019d 33 c0 xor eax, eax
|
|
0019f 85 c0 test eax, eax
|
|
001a1 75 89 jne SHORT $LN13@Adjust_man
|
|
$LN17@Adjust_man:
|
|
001a3 33 c0 xor eax, eax
|
|
001a5 85 c0 test eax, eax
|
|
001a7 0f 85 6f ff ff
|
|
ff jne $LN10@Adjust_man
|
|
|
|
; 173 : _Ptr = reinterpret_cast<void*>(_Ptr_container);
|
|
|
|
001ad 48 8b 85 60 01
|
|
00 00 mov rax, QWORD PTR _Ptr$[rbp]
|
|
001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp]
|
|
001b8 48 89 08 mov QWORD PTR [rax], rcx
|
|
|
|
; 174 : }
|
|
|
|
001bb 48 8d a5 48 01
|
|
00 00 lea rsp, QWORD PTR [rbp+328]
|
|
001c2 5f pop rdi
|
|
001c3 5d pop rbp
|
|
001c4 c3 ret 0
|
|
?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h
|
|
; COMDAT wmemcpy
|
|
_TEXT SEGMENT
|
|
_S1$ = 224
|
|
_S2$ = 232
|
|
_N$ = 240
|
|
wmemcpy PROC ; COMDAT
|
|
|
|
; 234 : {
|
|
|
|
$LN3:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 57 push rdi
|
|
00011 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
; 235 : #pragma warning(suppress: 6386) // Buffer overrun
|
|
; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t));
|
|
|
|
00029 48 8b 85 f0 00
|
|
00 00 mov rax, QWORD PTR _N$[rbp]
|
|
00030 48 d1 e0 shl rax, 1
|
|
00033 4c 8b c0 mov r8, rax
|
|
00036 48 8b 95 e8 00
|
|
00 00 mov rdx, QWORD PTR _S2$[rbp]
|
|
0003d 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR _S1$[rbp]
|
|
00044 e8 00 00 00 00 call memcpy
|
|
|
|
; 237 : }
|
|
|
|
00049 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00050 5f pop rdi
|
|
00051 5d pop rbp
|
|
00052 c3 ret 0
|
|
wmemcpy ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z
|
|
_TEXT SEGMENT
|
|
__formal$ = 224
|
|
__formal$ = 232
|
|
__formal$ = 240
|
|
?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT
|
|
|
|
$LN3:
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000f 55 push rbp
|
|
00010 57 push rdi
|
|
00011 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00030 5f pop rdi
|
|
00031 5d pop rbp
|
|
00032 c3 ret 0
|
|
?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z
|
|
_TEXT SEGMENT
|
|
__formal$ = 224
|
|
__formal$ = 232
|
|
?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT
|
|
|
|
$LN3:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0002b 5f pop rdi
|
|
0002c 5d pop rbp
|
|
0002d c3 ret 0
|
|
?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z
|
|
_TEXT SEGMENT
|
|
__formal$ = 224
|
|
__formal$ = 232
|
|
?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT
|
|
|
|
$LN3:
|
|
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
0000a 55 push rbp
|
|
0000b 57 push rdi
|
|
0000c 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00018 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0002b 5f pop rdi
|
|
0002c 5d pop rbp
|
|
0002d c3 ret 0
|
|
?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp
|
|
; COMDAT ?__empty_global_delete@@YAXPEAX@Z
|
|
_TEXT SEGMENT
|
|
__formal$ = 224
|
|
?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT
|
|
|
|
$LN3:
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
00005 55 push rbp
|
|
00006 57 push rdi
|
|
00007 48 81 ec e8 00
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00013 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00026 5f pop rdi
|
|
00027 5d pop rbp
|
|
00028 c3 ret 0
|
|
?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete
|
|
_TEXT ENDS
|
|
END
|